Commit 0610d50c authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds

[PATCH] Lindent arch/i386/kernel/cpuid.c

From: Hanna Linder <hannal@us.ibm.com>

Per Greg's request this is a patch of having run Lindent on cpuid.c.  The
tabs were not the right number of spaces before.  I have verified it still
compiles and boots with this "change".
parent b5c64411
...@@ -10,7 +10,6 @@ ...@@ -10,7 +10,6 @@
* *
* ----------------------------------------------------------------------- */ * ----------------------------------------------------------------------- */
/* /*
* cpuid.c * cpuid.c
* *
...@@ -46,131 +45,132 @@ ...@@ -46,131 +45,132 @@
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
struct cpuid_command { struct cpuid_command {
int cpu; int cpu;
u32 reg; u32 reg;
u32 *data; u32 *data;
}; };
static void cpuid_smp_cpuid(void *cmd_block) static void cpuid_smp_cpuid(void *cmd_block)
{ {
struct cpuid_command *cmd = (struct cpuid_command *) cmd_block; struct cpuid_command *cmd = (struct cpuid_command *)cmd_block;
if ( cmd->cpu == smp_processor_id() ) if (cmd->cpu == smp_processor_id())
cpuid(cmd->reg, &cmd->data[0], &cmd->data[1], &cmd->data[2], &cmd->data[3]); cpuid(cmd->reg, &cmd->data[0], &cmd->data[1], &cmd->data[2],
&cmd->data[3]);
} }
static inline void do_cpuid(int cpu, u32 reg, u32 *data) static inline void do_cpuid(int cpu, u32 reg, u32 * data)
{ {
struct cpuid_command cmd; struct cpuid_command cmd;
preempt_disable(); preempt_disable();
if ( cpu == smp_processor_id() ) { if (cpu == smp_processor_id()) {
cpuid(reg, &data[0], &data[1], &data[2], &data[3]); cpuid(reg, &data[0], &data[1], &data[2], &data[3]);
} else { } else {
cmd.cpu = cpu; cmd.cpu = cpu;
cmd.reg = reg; cmd.reg = reg;
cmd.data = data; cmd.data = data;
smp_call_function(cpuid_smp_cpuid, &cmd, 1, 1); smp_call_function(cpuid_smp_cpuid, &cmd, 1, 1);
} }
preempt_enable(); preempt_enable();
} }
#else /* ! CONFIG_SMP */ #else /* ! CONFIG_SMP */
static inline void do_cpuid(int cpu, u32 reg, u32 *data) static inline void do_cpuid(int cpu, u32 reg, u32 * data)
{ {
cpuid(reg, &data[0], &data[1], &data[2], &data[3]); cpuid(reg, &data[0], &data[1], &data[2], &data[3]);
} }
#endif /* ! CONFIG_SMP */ #endif /* ! CONFIG_SMP */
static loff_t cpuid_seek(struct file *file, loff_t offset, int orig) static loff_t cpuid_seek(struct file *file, loff_t offset, int orig)
{ {
loff_t ret; loff_t ret;
lock_kernel(); lock_kernel();
switch (orig) { switch (orig) {
case 0: case 0:
file->f_pos = offset; file->f_pos = offset;
ret = file->f_pos; ret = file->f_pos;
break; break;
case 1: case 1:
file->f_pos += offset; file->f_pos += offset;
ret = file->f_pos; ret = file->f_pos;
break; break;
default: default:
ret = -EINVAL; ret = -EINVAL;
} }
unlock_kernel(); unlock_kernel();
return ret; return ret;
} }
static ssize_t cpuid_read(struct file * file, char * buf, static ssize_t cpuid_read(struct file *file, char *buf,
size_t count, loff_t *ppos) size_t count, loff_t * ppos)
{ {
u32 *tmp = (u32 *)buf; u32 *tmp = (u32 *) buf;
u32 data[4]; u32 data[4];
size_t rv; size_t rv;
u32 reg = *ppos; u32 reg = *ppos;
int cpu = iminor(file->f_dentry->d_inode); int cpu = iminor(file->f_dentry->d_inode);
if ( count % 16 ) if (count % 16)
return -EINVAL; /* Invalid chunk size */ return -EINVAL; /* Invalid chunk size */
for ( rv = 0 ; count ; count -= 16 ) { for (rv = 0; count; count -= 16) {
do_cpuid(cpu, reg, data); do_cpuid(cpu, reg, data);
if ( copy_to_user(tmp,&data,16) ) if (copy_to_user(tmp, &data, 16))
return -EFAULT; return -EFAULT;
tmp += 4; tmp += 4;
*ppos = reg++; *ppos = reg++;
} }
return ((char *)tmp) - buf; return ((char *)tmp) - buf;
} }
static int cpuid_open(struct inode *inode, struct file *file) static int cpuid_open(struct inode *inode, struct file *file)
{ {
int cpu = iminor(file->f_dentry->d_inode); int cpu = iminor(file->f_dentry->d_inode);
struct cpuinfo_x86 *c = &(cpu_data)[cpu]; struct cpuinfo_x86 *c = &(cpu_data)[cpu];
if (!cpu_online(cpu)) if (!cpu_online(cpu))
return -ENXIO; /* No such CPU */ return -ENXIO; /* No such CPU */
if ( c->cpuid_level < 0 ) if (c->cpuid_level < 0)
return -EIO; /* CPUID not supported */ return -EIO; /* CPUID not supported */
return 0; return 0;
} }
/* /*
* File operations we support * File operations we support
*/ */
static struct file_operations cpuid_fops = { static struct file_operations cpuid_fops = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.llseek = cpuid_seek, .llseek = cpuid_seek,
.read = cpuid_read, .read = cpuid_read,
.open = cpuid_open, .open = cpuid_open,
}; };
int __init cpuid_init(void) int __init cpuid_init(void)
{ {
if (register_chrdev(CPUID_MAJOR, "cpu/cpuid", &cpuid_fops)) { if (register_chrdev(CPUID_MAJOR, "cpu/cpuid", &cpuid_fops)) {
printk(KERN_ERR "cpuid: unable to get major %d for cpuid\n", printk(KERN_ERR "cpuid: unable to get major %d for cpuid\n",
CPUID_MAJOR); CPUID_MAJOR);
return -EBUSY; return -EBUSY;
} }
return 0; return 0;
} }
void __exit cpuid_exit(void) void __exit cpuid_exit(void)
{ {
unregister_chrdev(CPUID_MAJOR, "cpu/cpuid"); unregister_chrdev(CPUID_MAJOR, "cpu/cpuid");
} }
module_init(cpuid_init); module_init(cpuid_init);
module_exit(cpuid_exit) module_exit(cpuid_exit);
MODULE_AUTHOR("H. Peter Anvin <hpa@zytor.com>"); MODULE_AUTHOR("H. Peter Anvin <hpa@zytor.com>");
MODULE_DESCRIPTION("x86 generic CPUID driver"); MODULE_DESCRIPTION("x86 generic CPUID driver");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment