[PATCH][2.6.0-test3] i386 cpuid.c devfs support 2/2

From: Andrey Borzenkov
Date: Sun Aug 10 2003 - 04:21:40 EST


the same question about default permissions as for msr.c; the same problem
with module unload.

-andrey--- linux-2.6.0-test3-smp/arch/i386/kernel/cpuid.c.devfs 2003-05-05 03:52:48.000000000 +0400
+++ linux-2.6.0-test3-smp/arch/i386/kernel/cpuid.c 2003-08-09 22:30:39.000000000 +0400
@@ -39,6 +39,8 @@
#include <linux/smp_lock.h>
#include <linux/fs.h>

+#include <linux/devfs_fs_kernel.h>
+
#include <asm/processor.h>
#include <asm/msr.h>
#include <asm/uaccess.h>
@@ -156,17 +158,27 @@ static struct file_operations cpuid_fops

int __init cpuid_init(void)
{
+ int i;
+
if (register_chrdev(CPUID_MAJOR, "cpu/cpuid", &cpuid_fops)) {
printk(KERN_ERR "cpuid: unable to get major %d for cpuid\n",
CPUID_MAJOR);
return -EBUSY;
}

+ for (i = 0; i < NR_CPUS; i++)
+ devfs_mk_cdev(MKDEV(CPUID_MAJOR, i), S_IFCHR | S_IRUGO, "cpu/%d/cpuid", i);
+
return 0;
}

void __exit cpuid_exit(void)
{
+ int i;
+
+ for (i = 0; i < NR_CPUS; i++)
+ devfs_remove("cpu/%d/cpuid", i);
+
unregister_chrdev(CPUID_MAJOR, "cpu/cpuid");
}