lkml.org 
[lkml]   [2018]   [Sep]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH 3.16 003/131] x86/bugs: Concentrate bug reporting into a separate function
    3.16.59-rc1 review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>

    commit d1059518b4789cabe34bb4b714d07e6089c82ca1 upstream.

    Those SysFS functions have a similar preamble, as such make common
    code to handle them.

    Suggested-by: Borislav Petkov <bp@suse.de>
    Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Reviewed-by: Borislav Petkov <bp@suse.de>
    Reviewed-by: Ingo Molnar <mingo@kernel.org>
    [bwh: Backported to 3.16: s/X86_FEATURE_PTI/X86_FEATURE_KAISER/]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    ---
    arch/x86/kernel/cpu/bugs.c | 46 ++++++++++++++++++++++++++------------
    1 file changed, 32 insertions(+), 14 deletions(-)

    --- a/arch/x86/kernel/cpu/bugs.c
    +++ b/arch/x86/kernel/cpu/bugs.c
    @@ -352,30 +352,48 @@ retpoline_auto:
    #undef pr_fmt

    #ifdef CONFIG_SYSFS
    -ssize_t cpu_show_meltdown(struct device *dev, struct device_attribute *attr, char *buf)
    +
    +ssize_t cpu_show_common(struct device *dev, struct device_attribute *attr,
    + char *buf, unsigned int bug)
    {
    - if (!boot_cpu_has_bug(X86_BUG_CPU_MELTDOWN))
    + if (!boot_cpu_has_bug(bug))
    return sprintf(buf, "Not affected\n");
    - if (boot_cpu_has(X86_FEATURE_KAISER))
    - return sprintf(buf, "Mitigation: PTI\n");
    +
    + switch (bug) {
    + case X86_BUG_CPU_MELTDOWN:
    + if (boot_cpu_has(X86_FEATURE_KAISER))
    + return sprintf(buf, "Mitigation: PTI\n");
    +
    + break;
    +
    + case X86_BUG_SPECTRE_V1:
    + return sprintf(buf, "Mitigation: __user pointer sanitization\n");
    +
    + case X86_BUG_SPECTRE_V2:
    + return sprintf(buf, "%s%s%s%s\n", spectre_v2_strings[spectre_v2_enabled],
    + boot_cpu_has(X86_FEATURE_USE_IBPB) ? ", IBPB" : "",
    + boot_cpu_has(X86_FEATURE_USE_IBRS_FW) ? ", IBRS_FW" : "",
    + spectre_v2_module_string());
    +
    + default:
    + break;
    + }
    +
    return sprintf(buf, "Vulnerable\n");
    }

    +ssize_t cpu_show_meltdown(struct device *dev, struct device_attribute *attr, char *buf)
    +{
    + return cpu_show_common(dev, attr, buf, X86_BUG_CPU_MELTDOWN);
    +}
    +
    ssize_t cpu_show_spectre_v1(struct device *dev, struct device_attribute *attr, char *buf)
    {
    - if (!boot_cpu_has_bug(X86_BUG_SPECTRE_V1))
    - return sprintf(buf, "Not affected\n");
    - return sprintf(buf, "Mitigation: __user pointer sanitization\n");
    + return cpu_show_common(dev, attr, buf, X86_BUG_SPECTRE_V1);
    }

    ssize_t cpu_show_spectre_v2(struct device *dev, struct device_attribute *attr, char *buf)
    {
    - if (!boot_cpu_has_bug(X86_BUG_SPECTRE_V2))
    - return sprintf(buf, "Not affected\n");
    -
    - return sprintf(buf, "%s%s%s%s\n", spectre_v2_strings[spectre_v2_enabled],
    - boot_cpu_has(X86_FEATURE_USE_IBPB) ? ", IBPB" : "",
    - boot_cpu_has(X86_FEATURE_USE_IBRS_FW) ? ", IBRS_FW" : "",
    - spectre_v2_module_string());
    + return cpu_show_common(dev, attr, buf, X86_BUG_SPECTRE_V2);
    }
    #endif
    \
     
     \ /
      Last update: 2018-09-29 23:49    [W:3.457 / U:0.032 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site