aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband
diff options
context:
space:
mode:
authorRoland Dreier <roland@purestorage.com>2011-05-23 14:10:05 -0400
committerRoland Dreier <roland@purestorage.com>2011-05-23 14:10:05 -0400
commit71c29bd5c23559c9cabcca3bfb3152ecc5efcd75 (patch)
treed4c1e56584e664b0bad103370955a6883f247cf3 /drivers/infiniband
parent257313b2a87795e07a0bdf58d0fffbdba8b31051 (diff)
IB/uverbs: Add devnode method to set path/mode
We want udev to create a device node under /dev/infiniband with permission 0666 for uverbsX devices, so add a devnode method to set the appropriate info. Signed-off-by: Roland Dreier <roland@purestorage.com>
Diffstat (limited to 'drivers/infiniband')
-rw-r--r--drivers/infiniband/core/uverbs_main.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/infiniband/core/uverbs_main.c b/drivers/infiniband/core/uverbs_main.c
index ec83e9fe387b..e49a85f8a44d 100644
--- a/drivers/infiniband/core/uverbs_main.c
+++ b/drivers/infiniband/core/uverbs_main.c
@@ -824,6 +824,12 @@ static void ib_uverbs_remove_one(struct ib_device *device)
824 kfree(uverbs_dev); 824 kfree(uverbs_dev);
825} 825}
826 826
827static char *uverbs_devnode(struct device *dev, mode_t *mode)
828{
829 *mode = 0666;
830 return kasprintf(GFP_KERNEL, "infiniband/%s", dev_name(dev));
831}
832
827static int __init ib_uverbs_init(void) 833static int __init ib_uverbs_init(void)
828{ 834{
829 int ret; 835 int ret;
@@ -842,6 +848,8 @@ static int __init ib_uverbs_init(void)
842 goto out_chrdev; 848 goto out_chrdev;
843 } 849 }
844 850
851 uverbs_class->devnode = uverbs_devnode;
852
845 ret = class_create_file(uverbs_class, &class_attr_abi_version.attr); 853 ret = class_create_file(uverbs_class, &class_attr_abi_version.attr);
846 if (ret) { 854 if (ret) {
847 printk(KERN_ERR "user_verbs: couldn't create abi_version attribute\n"); 855 printk(KERN_ERR "user_verbs: couldn't create abi_version attribute\n");