add sysfs misc class [4/5]
PATCH 1/1 add sysfs misc class [4/5]
Add sysfs misc class support, and fix bug where misc_init() was being called to late in the boot process.
drivers/char/misc.c +15 -2
@@ -47,7 +47,7 @@#include <linux/devfs_fs_kernel.h> #include <linux/stat.h> #include <linux/init.h> - +#include <linux/device.h> #include <linux/tty.h> #include <linux/kmod.h>
@@ -180,6 +180,15 @@return err; } +/* +* TODO for 2.7: +* - add a struct class_device to struct miscdevice and make all usages of +* them dynamic. +*/ +static struct class misc_class = { + .name ="misc" , +}; +static struct file_operations misc_fops = { .owner =THIS_MODULE , .open = misc_open,
@@ -234,6 +243,8 @@ "misc/%s", misc->name); } +simple_add_class_device (&misc_class,MKDEV (MISC_MAJOR , misc->minor), + misc->dev, misc->name);devfs_mk_cdev (MKDEV (MISC_MAJOR , misc->minor),S_IFCHR |S_IRUSR |S_IWUSR |S_IRGRP , misc->devfs_name);
@@ -265,6 +276,7 @@down (&misc_sem);list_del (&misc->list); +simple_remove_class_device (MKDEV (MISC_MAJOR , misc->minor));devfs_remove (misc->devfs_name);if (i <DYNAMIC_MINORS && i>0 ) { misc_minors[i>>3 ] &= ~(1 << (misc->minor &7 ));
@@ -285,6 +297,7 @@if (ent) ent->proc_fops = &misc_proc_fops;#endif +class_register (&misc_class);#ifdef CONFIG_MVME16xrtc_MK48T08_init ();#endif
@@ -319,4 +332,4 @@ }return 0 ; } -module_init (misc_init); +subsys_initcall (misc_init);
include/linux/miscdevice.h +3 -0
@@ -36,12 +36,15 @@#define TUN_MINOR 200 +struct device ; +struct miscdevice {int minor;const char *name;struct file_operations *fops;struct list_head list; +struct device *dev;char devfs_name[64 ]; };
-------------------------------------------------------
This SF.net email is sponsored by: IBM Linux Tutorials. Become an expert in LINUX or just sharpen your skills. Sign up for IBM's Free Linux Tutorials. Learn everything from the bash shell to sys admin. Click now! http://ads.osdn.com/?ad_id78&alloc_id371&op=click
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel