mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 04:08:54 +00:00
6e8d023785
... and missing externs in proto.h Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Acked-by: Paul E. McKenney <paulmck@kernel.org> Acked-by: Matt Turner <mattst88@gmail.com> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
47 lines
1.1 KiB
C
47 lines
1.1 KiB
C
|
|
#include <asm/hwrpb.h>
|
|
#include <linux/device.h>
|
|
#include <linux/cpu.h>
|
|
|
|
|
|
#ifdef CONFIG_SYSFS
|
|
|
|
static int cpu_is_ev6_or_later(void)
|
|
{
|
|
struct percpu_struct *cpu;
|
|
unsigned long cputype;
|
|
|
|
cpu = (struct percpu_struct *)((char *)hwrpb + hwrpb->processor_offset);
|
|
cputype = cpu->type & 0xffffffff;
|
|
/* Include all of EV6, EV67, EV68, EV7, EV79 and EV69. */
|
|
return (cputype == EV6_CPU) || ((cputype >= EV67_CPU) && (cputype <= EV69_CPU));
|
|
}
|
|
|
|
ssize_t cpu_show_meltdown(struct device *dev,
|
|
struct device_attribute *attr, char *buf)
|
|
{
|
|
if (cpu_is_ev6_or_later())
|
|
return sprintf(buf, "Vulnerable\n");
|
|
else
|
|
return sprintf(buf, "Not affected\n");
|
|
}
|
|
|
|
ssize_t cpu_show_spectre_v1(struct device *dev,
|
|
struct device_attribute *attr, char *buf)
|
|
{
|
|
if (cpu_is_ev6_or_later())
|
|
return sprintf(buf, "Vulnerable\n");
|
|
else
|
|
return sprintf(buf, "Not affected\n");
|
|
}
|
|
|
|
ssize_t cpu_show_spectre_v2(struct device *dev,
|
|
struct device_attribute *attr, char *buf)
|
|
{
|
|
if (cpu_is_ev6_or_later())
|
|
return sprintf(buf, "Vulnerable\n");
|
|
else
|
|
return sprintf(buf, "Not affected\n");
|
|
}
|
|
#endif
|