On Sun, Jan 07, 2018 at 10:48:01PM +0100, Thomas Gleixner wrote:
> Implement the CPU vulnerabilty show functions for meltdown, spectre_v1 and
> spectre_v2.
> 
> Signed-off-by: Thomas Gleixner <t...@linutronix.de>

Reviewed-by: Konrad Rzeszutek Wilk <konrad.w...@oracle.com>

Thank you!
> ---
>  arch/x86/Kconfig           |    1 +
>  arch/x86/kernel/cpu/bugs.c |   29 +++++++++++++++++++++++++++++
>  2 files changed, 30 insertions(+)
> 
> --- a/arch/x86/Kconfig
> +++ b/arch/x86/Kconfig
> @@ -89,6 +89,7 @@ config X86
>       select GENERIC_CLOCKEVENTS_MIN_ADJUST
>       select GENERIC_CMOS_UPDATE
>       select GENERIC_CPU_AUTOPROBE
> +     select GENERIC_CPU_VULNERABILITIES
>       select GENERIC_EARLY_IOREMAP
>       select GENERIC_FIND_FIRST_BIT
>       select GENERIC_IOMAP
> --- a/arch/x86/kernel/cpu/bugs.c
> +++ b/arch/x86/kernel/cpu/bugs.c
> @@ -10,6 +10,7 @@
>   */
>  #include <linux/init.h>
>  #include <linux/utsname.h>
> +#include <linux/cpu.h>
>  #include <asm/bugs.h>
>  #include <asm/processor.h>
>  #include <asm/processor-flags.h>
> @@ -60,3 +61,31 @@ void __init check_bugs(void)
>               set_memory_4k((unsigned long)__va(0), 1);
>  #endif
>  }
> +
> +#ifdef CONFIG_SYSFS
> +ssize_t cpu_show_meltdown(struct device *dev,
> +                       struct device_attribute *attr, char *buf)
> +{
> +     if (!boot_cpu_has_bug(X86_BUG_CPU_MELTDOWN))
> +             return sprintf(buf, "Not affected\n");
> +     if (boot_cpu_has(X86_FEATURE_PTI))
> +             return sprintf(buf, "Mitigation: PTI\n");
> +     return sprintf(buf, "Vulnerable\n");
> +}
> +
> +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, "Vulnerable\n");
> +}
> +
> +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, "Vulnerable\n");
> +}
> +#endif
> 
> 

Reply via email to