.. | .. |
---|
7 | 7 | |
---|
8 | 8 | #include "cpu.h" |
---|
9 | 9 | |
---|
| 10 | +#ifdef CONFIG_X86_VMX_FEATURE_NAMES |
---|
| 11 | +extern const char * const x86_vmx_flags[NVMXINTS*32]; |
---|
| 12 | +#endif |
---|
| 13 | + |
---|
10 | 14 | /* |
---|
11 | 15 | * Get CPU information for use by the procfs. |
---|
12 | 16 | */ |
---|
.. | .. |
---|
35 | 39 | "fpu_exception\t: %s\n" |
---|
36 | 40 | "cpuid level\t: %d\n" |
---|
37 | 41 | "wp\t\t: yes\n", |
---|
38 | | - static_cpu_has_bug(X86_BUG_FDIV) ? "yes" : "no", |
---|
39 | | - static_cpu_has_bug(X86_BUG_F00F) ? "yes" : "no", |
---|
40 | | - static_cpu_has_bug(X86_BUG_COMA) ? "yes" : "no", |
---|
41 | | - static_cpu_has(X86_FEATURE_FPU) ? "yes" : "no", |
---|
42 | | - static_cpu_has(X86_FEATURE_FPU) ? "yes" : "no", |
---|
| 42 | + boot_cpu_has_bug(X86_BUG_FDIV) ? "yes" : "no", |
---|
| 43 | + boot_cpu_has_bug(X86_BUG_F00F) ? "yes" : "no", |
---|
| 44 | + boot_cpu_has_bug(X86_BUG_COMA) ? "yes" : "no", |
---|
| 45 | + boot_cpu_has(X86_FEATURE_FPU) ? "yes" : "no", |
---|
| 46 | + boot_cpu_has(X86_FEATURE_FPU) ? "yes" : "no", |
---|
43 | 47 | c->cpuid_level); |
---|
44 | 48 | } |
---|
45 | 49 | #else |
---|
.. | .. |
---|
102 | 106 | if (cpu_has(c, i) && x86_cap_flags[i] != NULL) |
---|
103 | 107 | seq_printf(m, " %s", x86_cap_flags[i]); |
---|
104 | 108 | |
---|
| 109 | +#ifdef CONFIG_X86_VMX_FEATURE_NAMES |
---|
| 110 | + if (cpu_has(c, X86_FEATURE_VMX) && c->vmx_capability[0]) { |
---|
| 111 | + seq_puts(m, "\nvmx flags\t:"); |
---|
| 112 | + for (i = 0; i < 32*NVMXINTS; i++) { |
---|
| 113 | + if (test_bit(i, (unsigned long *)c->vmx_capability) && |
---|
| 114 | + x86_vmx_flags[i] != NULL) |
---|
| 115 | + seq_printf(m, " %s", x86_vmx_flags[i]); |
---|
| 116 | + } |
---|
| 117 | + } |
---|
| 118 | +#endif |
---|
| 119 | + |
---|
105 | 120 | seq_puts(m, "\nbugs\t\t:"); |
---|
106 | 121 | for (i = 0; i < 32*NBUGINTS; i++) { |
---|
107 | 122 | unsigned int bug_bit = 32*NCAPINTS + i; |
---|