diff options
Diffstat (limited to 'arch/x86/kernel/cpuid.c')
-rw-r--r-- | arch/x86/kernel/cpuid.c | 22 |
1 files changed, 3 insertions, 19 deletions
diff --git a/arch/x86/kernel/cpuid.c b/arch/x86/kernel/cpuid.c index dffb102fb8c7..70dcf912d9fb 100644 --- a/arch/x86/kernel/cpuid.c +++ b/arch/x86/kernel/cpuid.c | |||
@@ -43,8 +43,6 @@ | |||
43 | 43 | ||
44 | static struct class *cpuid_class; | 44 | static struct class *cpuid_class; |
45 | 45 | ||
46 | #ifdef CONFIG_SMP | ||
47 | |||
48 | struct cpuid_command { | 46 | struct cpuid_command { |
49 | u32 reg; | 47 | u32 reg; |
50 | u32 *data; | 48 | u32 *data; |
@@ -62,25 +60,11 @@ static inline void do_cpuid(int cpu, u32 reg, u32 * data) | |||
62 | { | 60 | { |
63 | struct cpuid_command cmd; | 61 | struct cpuid_command cmd; |
64 | 62 | ||
65 | preempt_disable(); | 63 | cmd.reg = reg; |
66 | if (cpu == smp_processor_id()) { | 64 | cmd.data = data; |
67 | cpuid(reg, &data[0], &data[1], &data[2], &data[3]); | ||
68 | } else { | ||
69 | cmd.reg = reg; | ||
70 | cmd.data = data; | ||
71 | 65 | ||
72 | smp_call_function_single(cpu, cpuid_smp_cpuid, &cmd, 1, 1); | 66 | smp_call_function_single(cpu, cpuid_smp_cpuid, &cmd, 1, 1); |
73 | } | ||
74 | preempt_enable(); | ||
75 | } | 67 | } |
76 | #else /* ! CONFIG_SMP */ | ||
77 | |||
78 | static inline void do_cpuid(int cpu, u32 reg, u32 * data) | ||
79 | { | ||
80 | cpuid(reg, &data[0], &data[1], &data[2], &data[3]); | ||
81 | } | ||
82 | |||
83 | #endif /* ! CONFIG_SMP */ | ||
84 | 68 | ||
85 | static loff_t cpuid_seek(struct file *file, loff_t offset, int orig) | 69 | static loff_t cpuid_seek(struct file *file, loff_t offset, int orig) |
86 | { | 70 | { |