diff options
Diffstat (limited to 'arch/x86/kernel/cpuid.c')
| -rw-r--r-- | arch/x86/kernel/cpuid.c | 17 | 
1 files changed, 6 insertions, 11 deletions
diff --git a/arch/x86/kernel/cpuid.c b/arch/x86/kernel/cpuid.c index 6a52d4b36a3..7ef24a79699 100644 --- a/arch/x86/kernel/cpuid.c +++ b/arch/x86/kernel/cpuid.c @@ -116,21 +116,16 @@ static int cpuid_open(struct inode *inode, struct file *file)  {  	unsigned int cpu;  	struct cpuinfo_x86 *c; -	int ret = 0; - -	lock_kernel();  	cpu = iminor(file->f_path.dentry->d_inode); -	if (cpu >= nr_cpu_ids || !cpu_online(cpu)) { -		ret = -ENXIO;	/* No such CPU */ -		goto out; -	} +	if (cpu >= nr_cpu_ids || !cpu_online(cpu)) +		return -ENXIO;	/* No such CPU */ +  	c = &cpu_data(cpu);  	if (c->cpuid_level < 0) -		ret = -EIO;	/* CPUID not supported */ -out: -	unlock_kernel(); -	return ret; +		return -EIO;	/* CPUID not supported */ + +	return 0;  }  /*  |