1 // SPDX-License-Identifier: GPL-2.0 !! 1 2 #include <linux/init.h> !! 2 #include <asm/hwrpb.h> >> 3 #include <linux/device.h> 3 #include <linux/cpu.h> 4 #include <linux/cpu.h> 4 #include <asm/bugs.h> << 5 #include <asm/proc-fns.h> << 6 5 7 void check_other_bugs(void) !! 6 >> 7 #ifdef CONFIG_SYSFS >> 8 >> 9 static int cpu_is_ev6_or_later(void) 8 { 10 { 9 #ifdef MULTI_CPU !! 11 struct percpu_struct *cpu; 10 if (cpu_check_bugs) !! 12 unsigned long cputype; 11 cpu_check_bugs(); !! 13 12 #endif !! 14 cpu = (struct percpu_struct *)((char *)hwrpb + hwrpb->processor_offset); >> 15 cputype = cpu->type & 0xffffffff; >> 16 /* Include all of EV6, EV67, EV68, EV7, EV79 and EV69. */ >> 17 return (cputype == EV6_CPU) || ((cputype >= EV67_CPU) && (cputype <= EV69_CPU)); >> 18 } >> 19 >> 20 ssize_t cpu_show_meltdown(struct device *dev, >> 21 struct device_attribute *attr, char *buf) >> 22 { >> 23 if (cpu_is_ev6_or_later()) >> 24 return sprintf(buf, "Vulnerable\n"); >> 25 else >> 26 return sprintf(buf, "Not affected\n"); >> 27 } >> 28 >> 29 ssize_t cpu_show_spectre_v1(struct device *dev, >> 30 struct device_attribute *attr, char *buf) >> 31 { >> 32 if (cpu_is_ev6_or_later()) >> 33 return sprintf(buf, "Vulnerable\n"); >> 34 else >> 35 return sprintf(buf, "Not affected\n"); 13 } 36 } 14 37 15 void __init arch_cpu_finalize_init(void) !! 38 ssize_t cpu_show_spectre_v2(struct device *dev, >> 39 struct device_attribute *attr, char *buf) 16 { 40 { 17 check_writebuffer_bugs(); !! 41 if (cpu_is_ev6_or_later()) 18 check_other_bugs(); !! 42 return sprintf(buf, "Vulnerable\n"); >> 43 else >> 44 return sprintf(buf, "Not affected\n"); 19 } 45 } >> 46 #endif 20 47
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.