]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - drivers/char/misc.c
Driver-Core: extend devnode callbacks to provide permissions
[net-next-2.6.git] / drivers / char / misc.c
index 62c99fa59e2b5bf09ee792652648eab4760f37bc..1ee27cc23426d2f96de2000411cafadb06030c4a 100644 (file)
@@ -263,12 +263,14 @@ int misc_deregister(struct miscdevice *misc)
 EXPORT_SYMBOL(misc_register);
 EXPORT_SYMBOL(misc_deregister);
 
-static char *misc_nodename(struct device *dev)
+static char *misc_devnode(struct device *dev, mode_t *mode)
 {
        struct miscdevice *c = dev_get_drvdata(dev);
 
-       if (c->devnode)
-               return kstrdup(c->devnode, GFP_KERNEL);
+       if (mode && c->mode)
+               *mode = c->mode;
+       if (c->nodename)
+               return kstrdup(c->nodename, GFP_KERNEL);
        return NULL;
 }
 
@@ -287,7 +289,7 @@ static int __init misc_init(void)
        err = -EIO;
        if (register_chrdev(MISC_MAJOR,"misc",&misc_fops))
                goto fail_printk;
-       misc_class->nodename = misc_nodename;
+       misc_class->devnode = misc_devnode;
        return 0;
 
 fail_printk: