Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/arch/alpha/kernel/bugs.c
26424 views
1
2
#include <asm/hwrpb.h>
3
#include <linux/device.h>
4
#include <linux/cpu.h>
5
6
7
#ifdef CONFIG_SYSFS
8
9
static int cpu_is_ev6_or_later(void)
10
{
11
struct percpu_struct *cpu;
12
unsigned long cputype;
13
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");
36
}
37
38
ssize_t cpu_show_spectre_v2(struct device *dev,
39
struct device_attribute *attr, char *buf)
40
{
41
if (cpu_is_ev6_or_later())
42
return sprintf(buf, "Vulnerable\n");
43
else
44
return sprintf(buf, "Not affected\n");
45
}
46
#endif
47
48