From: Greg KH <greg@kroah.com>

Adds support for mem class devices.  Hopefully one day the
/proc/sys/kernel/random files will move under sysfs into the location
created by this patch (yeah, I know about the sysctl logic...)



 25-akpm/drivers/char/mem.c |    9 +++++++++
 1 files changed, 9 insertions(+)

diff -puN drivers/char/mem.c~sysfs-add-mem-device-support drivers/char/mem.c
--- 25/drivers/char/mem.c~sysfs-add-mem-device-support	Tue Dec 23 13:43:30 2003
+++ 25-akpm/drivers/char/mem.c	Tue Dec 23 13:43:30 2003
@@ -24,6 +24,7 @@
 #include <linux/smp_lock.h>
 #include <linux/devfs_fs_kernel.h>
 #include <linux/ptrace.h>
+#include <linux/device.h>
 
 #include <asm/uaccess.h>
 #include <asm/io.h>
@@ -675,6 +676,10 @@ static const struct {
 	{11,"kmsg",    S_IRUGO | S_IWUSR,           &kmsg_fops},
 };
 
+static struct class mem_class = {
+	.name	= "mem",
+};
+
 static int __init chr_dev_init(void)
 {
 	int i;
@@ -682,7 +687,11 @@ static int __init chr_dev_init(void)
 	if (register_chrdev(MEM_MAJOR,"mem",&memory_fops))
 		printk("unable to get major %d for memory devs\n", MEM_MAJOR);
 
+	class_register(&mem_class);
 	for (i = 0; i < ARRAY_SIZE(devlist); i++) {
+		simple_add_class_device(&mem_class,
+					MKDEV(MEM_MAJOR, devlist[i].minor),
+					NULL, devlist[i].name);
 		devfs_mk_cdev(MKDEV(MEM_MAJOR, devlist[i].minor),
 				S_IFCHR | devlist[i].mode, devlist[i].name);
 	}

_