diff options
| -rw-r--r-- | arch/x86/kernel/msr.c | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/arch/x86/kernel/msr.c b/arch/x86/kernel/msr.c index 7dd950094178..c00610963238 100644 --- a/arch/x86/kernel/msr.c +++ b/arch/x86/kernel/msr.c | |||
| @@ -174,21 +174,17 @@ static int msr_open(struct inode *inode, struct file *file) | |||
| 174 | { | 174 | { |
| 175 | unsigned int cpu = iminor(file->f_path.dentry->d_inode); | 175 | unsigned int cpu = iminor(file->f_path.dentry->d_inode); |
| 176 | struct cpuinfo_x86 *c = &cpu_data(cpu); | 176 | struct cpuinfo_x86 *c = &cpu_data(cpu); |
| 177 | int ret = 0; | ||
| 178 | 177 | ||
| 179 | lock_kernel(); | ||
| 180 | cpu = iminor(file->f_path.dentry->d_inode); | 178 | cpu = iminor(file->f_path.dentry->d_inode); |
| 181 | 179 | ||
| 182 | if (cpu >= nr_cpu_ids || !cpu_online(cpu)) { | 180 | if (cpu >= nr_cpu_ids || !cpu_online(cpu)) |
| 183 | ret = -ENXIO; /* No such CPU */ | 181 | return -ENXIO; /* No such CPU */ |
| 184 | goto out; | 182 | |
| 185 | } | ||
| 186 | c = &cpu_data(cpu); | 183 | c = &cpu_data(cpu); |
| 187 | if (!cpu_has(c, X86_FEATURE_MSR)) | 184 | if (!cpu_has(c, X86_FEATURE_MSR)) |
| 188 | ret = -EIO; /* MSR not supported */ | 185 | return -EIO; /* MSR not supported */ |
| 189 | out: | 186 | |
| 190 | unlock_kernel(); | 187 | return 0; |
| 191 | return ret; | ||
| 192 | } | 188 | } |
| 193 | 189 | ||
| 194 | /* | 190 | /* |
