diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-20 15:55:39 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-20 15:55:39 -0700 |
commit | a57c21c7159e07c27e317ea3513dfb382be3f153 (patch) | |
tree | d70427d2d2f44b9d973aa21e7eef93f30f17515d /drivers/char/misc.c | |
parent | e11c675ede0d42a405ae595528bf0b29ce1ae56f (diff) | |
parent | e454cea20bdcff10ee698d11b8882662a0153a47 (diff) | |
download | blackbird-op-linux-a57c21c7159e07c27e317ea3513dfb382be3f153.tar.gz blackbird-op-linux-a57c21c7159e07c27e317ea3513dfb382be3f153.zip |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6:
Driver-Core: extend devnode callbacks to provide permissions
Diffstat (limited to 'drivers/char/misc.c')
-rw-r--r-- | drivers/char/misc.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/char/misc.c b/drivers/char/misc.c index 62c99fa59e2b..1ee27cc23426 100644 --- a/drivers/char/misc.c +++ b/drivers/char/misc.c @@ -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: |