switch device_get_devnode() and ->devnode() to umode_t *
Al Viro [Sun, 24 Jul 2011 00:24:48 +0000 (20:24 -0400)]
both callers of device_get_devnode() are only interested in lower 16bits
and nobody tries to return anything wider than 16bit anyway.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

31 files changed:
arch/x86/kernel/cpuid.c
arch/x86/kernel/msr.c
block/bsg.c
block/genhd.c
drivers/base/core.c
drivers/base/devtmpfs.c
drivers/block/aoe/aoechr.c
drivers/block/pktcdvd.c
drivers/char/mem.c
drivers/char/misc.c
drivers/char/raw.c
drivers/char/tile-srom.c
drivers/gpu/drm/drm_sysfs.c
drivers/hid/usbhid/hiddev.c
drivers/infiniband/core/cm.c
drivers/infiniband/core/user_mad.c
drivers/infiniband/core/uverbs_main.c
drivers/input/input.c
drivers/media/dvb/ddbridge/ddbridge-core.c
drivers/media/dvb/dvb-core/dvbdev.c
drivers/media/rc/rc-main.c
drivers/tty/tty_io.c
drivers/usb/class/usblp.c
drivers/usb/core/file.c
drivers/usb/core/usb.c
drivers/usb/misc/iowarrior.c
drivers/usb/misc/legousbtower.c
include/linux/device.h
include/linux/genhd.h
include/linux/usb.h
sound/sound_core.c

index 212a6a4..a524353 100644 (file)
@@ -177,7 +177,7 @@ static struct notifier_block __refdata cpuid_class_cpu_notifier =
        .notifier_call = cpuid_class_cpu_callback,
 };
 
-static char *cpuid_devnode(struct device *dev, mode_t *mode)
+static char *cpuid_devnode(struct device *dev, umode_t *mode)
 {
        return kasprintf(GFP_KERNEL, "cpu/%u/cpuid", MINOR(dev->devt));
 }
index 12fcbe2..9635676 100644 (file)
@@ -236,7 +236,7 @@ static struct notifier_block __refdata msr_class_cpu_notifier = {
        .notifier_call = msr_class_cpu_callback,
 };
 
-static char *msr_devnode(struct device *dev, mode_t *mode)
+static char *msr_devnode(struct device *dev, umode_t *mode)
 {
        return kasprintf(GFP_KERNEL, "cpu/%u/msr", MINOR(dev->devt));
 }
index 702f131..9651ec7 100644 (file)
@@ -1070,7 +1070,7 @@ EXPORT_SYMBOL_GPL(bsg_register_queue);
 
 static struct cdev bsg_cdev;
 
-static char *bsg_devnode(struct device *dev, mode_t *mode)
+static char *bsg_devnode(struct device *dev, umode_t *mode)
 {
        return kasprintf(GFP_KERNEL, "bsg/%s", dev_name(dev));
 }
index 02e9fca..80578f3 100644 (file)
@@ -1109,7 +1109,7 @@ struct class block_class = {
        .name           = "block",
 };
 
-static char *block_devnode(struct device *dev, mode_t *mode)
+static char *block_devnode(struct device *dev, umode_t *mode)
 {
        struct gendisk *disk = dev_to_disk(dev);
 
index 919daa7..1dfa1d6 100644 (file)
@@ -198,7 +198,7 @@ static int dev_uevent(struct kset *kset, struct kobject *kobj,
        if (MAJOR(dev->devt)) {
                const char *tmp;
                const char *name;
-               mode_t mode = 0;
+               umode_t mode = 0;
 
                add_uevent_var(env, "MAJOR=%u", MAJOR(dev->devt));
                add_uevent_var(env, "MINOR=%u", MINOR(dev->devt));
@@ -1182,7 +1182,7 @@ static struct device *next_device(struct klist_iter *i)
  * freed by the caller.
  */
 const char *device_get_devnode(struct device *dev,
-                              mode_t *mode, const char **tmp)
+                              umode_t *mode, const char **tmp)
 {
        char *s;
 
index a4760e0..3990f68 100644 (file)
@@ -40,7 +40,7 @@ static struct req {
        struct completion done;
        int err;
        const char *name;
-       mode_t mode;    /* 0 => delete */
+       umode_t mode;   /* 0 => delete */
        struct device *dev;
 } *requests;
 
index 5f8e39c..e86d206 100644 (file)
@@ -270,7 +270,7 @@ static const struct file_operations aoe_fops = {
        .llseek = noop_llseek,
 };
 
-static char *aoe_devnode(struct device *dev, mode_t *mode)
+static char *aoe_devnode(struct device *dev, umode_t *mode)
 {
        return kasprintf(GFP_KERNEL, "etherd/%s", dev_name(dev));
 }
index a63b0a2..d59edea 100644 (file)
@@ -2817,7 +2817,7 @@ static const struct block_device_operations pktcdvd_ops = {
        .check_events =         pkt_check_events,
 };
 
-static char *pktcdvd_devnode(struct gendisk *gd, mode_t *mode)
+static char *pktcdvd_devnode(struct gendisk *gd, umode_t *mode)
 {
        return kasprintf(GFP_KERNEL, "pktcdvd/%s", gd->disk_name);
 }
index 1451790..d6e9d08 100644 (file)
@@ -847,7 +847,7 @@ static const struct file_operations kmsg_fops = {
 
 static const struct memdev {
        const char *name;
-       mode_t mode;
+       umode_t mode;
        const struct file_operations *fops;
        struct backing_dev_info *dev_info;
 } devlist[] = {
@@ -901,7 +901,7 @@ static const struct file_operations memory_fops = {
        .llseek = noop_llseek,
 };
 
-static char *mem_devnode(struct device *dev, mode_t *mode)
+static char *mem_devnode(struct device *dev, umode_t *mode)
 {
        if (mode && devlist[MINOR(dev->devt)].mode)
                *mode = devlist[MINOR(dev->devt)].mode;
index 778273c..522136d 100644 (file)
@@ -258,7 +258,7 @@ int misc_deregister(struct miscdevice *misc)
 EXPORT_SYMBOL(misc_register);
 EXPORT_SYMBOL(misc_deregister);
 
-static char *misc_devnode(struct device *dev, mode_t *mode)
+static char *misc_devnode(struct device *dev, umode_t *mode)
 {
        struct miscdevice *c = dev_get_drvdata(dev);
 
index b6de2c0..54a3a6d 100644 (file)
@@ -308,7 +308,7 @@ static const struct file_operations raw_ctl_fops = {
 
 static struct cdev raw_cdev;
 
-static char *raw_devnode(struct device *dev, mode_t *mode)
+static char *raw_devnode(struct device *dev, umode_t *mode)
 {
        return kasprintf(GFP_KERNEL, "raw/%s", dev_name(dev));
 }
index cf3ee00..4dc0194 100644 (file)
@@ -329,7 +329,7 @@ static struct device_attribute srom_dev_attrs[] = {
        __ATTR_NULL
 };
 
-static char *srom_devnode(struct device *dev, mode_t *mode)
+static char *srom_devnode(struct device *dev, umode_t *mode)
 {
        *mode = S_IRUGO | S_IWUSR;
        return kasprintf(GFP_KERNEL, "srom/%s", dev_name(dev));
index 0f9ef9b..62c3675 100644 (file)
@@ -72,7 +72,7 @@ static int drm_class_resume(struct device *dev)
        return 0;
 }
 
-static char *drm_devnode(struct device *dev, mode_t *mode)
+static char *drm_devnode(struct device *dev, umode_t *mode)
 {
        return kasprintf(GFP_KERNEL, "dri/%s", dev_name(dev));
 }
index 4ef02b2..7c297d3 100644 (file)
@@ -859,7 +859,7 @@ static const struct file_operations hiddev_fops = {
        .llseek         = noop_llseek,
 };
 
-static char *hiddev_devnode(struct device *dev, mode_t *mode)
+static char *hiddev_devnode(struct device *dev, umode_t *mode)
 {
        return kasprintf(GFP_KERNEL, "usb/%s", dev_name(dev));
 }
index 8b72f39..c889aae 100644 (file)
@@ -3659,7 +3659,7 @@ static struct kobj_type cm_port_obj_type = {
        .release = cm_release_port_obj
 };
 
-static char *cm_devnode(struct device *dev, mode_t *mode)
+static char *cm_devnode(struct device *dev, umode_t *mode)
 {
        if (mode)
                *mode = 0666;
index 07db229..f0d588f 100644 (file)
@@ -1175,7 +1175,7 @@ static void ib_umad_remove_one(struct ib_device *device)
        kref_put(&umad_dev->ref, ib_umad_release_dev);
 }
 
-static char *umad_devnode(struct device *dev, mode_t *mode)
+static char *umad_devnode(struct device *dev, umode_t *mode)
 {
        return kasprintf(GFP_KERNEL, "infiniband/%s", dev_name(dev));
 }
index 8796367..604556d 100644 (file)
@@ -846,7 +846,7 @@ static void ib_uverbs_remove_one(struct ib_device *device)
        kfree(uverbs_dev);
 }
 
-static char *uverbs_devnode(struct device *dev, mode_t *mode)
+static char *uverbs_devnode(struct device *dev, umode_t *mode)
 {
        if (mode)
                *mode = 0666;
index da38d97..1f78c95 100644 (file)
@@ -1624,7 +1624,7 @@ static struct device_type input_dev_type = {
 #endif
 };
 
-static char *input_devnode(struct device *dev, mode_t *mode)
+static char *input_devnode(struct device *dev, umode_t *mode)
 {
        return kasprintf(GFP_KERNEL, "input/%s", dev_name(dev));
 }
index ba9a643..d1e91bc 100644 (file)
@@ -1480,7 +1480,7 @@ static const struct file_operations ddb_fops = {
        .open           = ddb_open,
 };
 
-static char *ddb_devnode(struct device *device, mode_t *mode)
+static char *ddb_devnode(struct device *device, umode_t *mode)
 {
        struct ddb *dev = dev_get_drvdata(device);
 
index f732877..00a6732 100644 (file)
@@ -450,7 +450,7 @@ static int dvb_uevent(struct device *dev, struct kobj_uevent_env *env)
        return 0;
 }
 
-static char *dvb_devnode(struct device *dev, mode_t *mode)
+static char *dvb_devnode(struct device *dev, umode_t *mode)
 {
        struct dvb_device *dvbdev = dev_get_drvdata(dev);
 
index 29f9000..f5db8b9 100644 (file)
@@ -715,7 +715,7 @@ static void ir_close(struct input_dev *idev)
 }
 
 /* class for /sys/class/rc */
-static char *ir_devnode(struct device *dev, mode_t *mode)
+static char *ir_devnode(struct device *dev, umode_t *mode)
 {
        return kasprintf(GFP_KERNEL, "rc/%s", dev_name(dev));
 }
index 05085be..3fdebd3 100644 (file)
@@ -3267,7 +3267,7 @@ void __init console_init(void)
        }
 }
 
-static char *tty_devnode(struct device *dev, mode_t *mode)
+static char *tty_devnode(struct device *dev, umode_t *mode)
 {
        if (!mode)
                return NULL;
index cb3a932..bc5089f 100644 (file)
@@ -1045,7 +1045,7 @@ static const struct file_operations usblp_fops = {
        .llseek =       noop_llseek,
 };
 
-static char *usblp_devnode(struct device *dev, mode_t *mode)
+static char *usblp_devnode(struct device *dev, umode_t *mode)
 {
        return kasprintf(GFP_KERNEL, "usb/%s", dev_name(dev));
 }
index 99458c8..d95760d 100644 (file)
@@ -66,7 +66,7 @@ static struct usb_class {
        struct class *class;
 } *usb_class;
 
-static char *usb_devnode(struct device *dev, mode_t *mode)
+static char *usb_devnode(struct device *dev, umode_t *mode)
 {
        struct usb_class_driver *drv;
 
index 73cd900..1382c90 100644 (file)
@@ -326,7 +326,7 @@ static const struct dev_pm_ops usb_device_pm_ops = {
 #endif /* CONFIG_PM */
 
 
-static char *usb_devnode(struct device *dev, mode_t *mode)
+static char *usb_devnode(struct device *dev, umode_t *mode)
 {
        struct usb_device *usb_dev;
 
index 8145790..5bd4b05 100644 (file)
@@ -734,7 +734,7 @@ static const struct file_operations iowarrior_fops = {
        .llseek = noop_llseek,
 };
 
-static char *iowarrior_devnode(struct device *dev, mode_t *mode)
+static char *iowarrior_devnode(struct device *dev, umode_t *mode)
 {
        return kasprintf(GFP_KERNEL, "usb/%s", dev_name(dev));
 }
index a989356..94f6566 100644 (file)
@@ -269,7 +269,7 @@ static const struct file_operations tower_fops = {
        .llseek =       tower_llseek,
 };
 
-static char *legousbtower_devnode(struct device *dev, mode_t *mode)
+static char *legousbtower_devnode(struct device *dev, umode_t *mode)
 {
        return kasprintf(GFP_KERNEL, "usb/%s", dev_name(dev));
 }
index 3136ede..2fe0005 100644 (file)
@@ -294,7 +294,7 @@ struct class {
        struct kobject                  *dev_kobj;
 
        int (*dev_uevent)(struct device *dev, struct kobj_uevent_env *env);
-       char *(*devnode)(struct device *dev, mode_t *mode);
+       char *(*devnode)(struct device *dev, umode_t *mode);
 
        void (*class_release)(struct class *class);
        void (*dev_release)(struct device *dev);
@@ -423,7 +423,7 @@ struct device_type {
        const char *name;
        const struct attribute_group **groups;
        int (*uevent)(struct device *dev, struct kobj_uevent_env *env);
-       char *(*devnode)(struct device *dev, mode_t *mode);
+       char *(*devnode)(struct device *dev, umode_t *mode);
        void (*release)(struct device *dev);
 
        const struct dev_pm_ops *pm;
@@ -720,7 +720,7 @@ extern int device_rename(struct device *dev, const char *new_name);
 extern int device_move(struct device *dev, struct device *new_parent,
                       enum dpm_order dpm_order);
 extern const char *device_get_devnode(struct device *dev,
-                                     mode_t *mode, const char **tmp);
+                                     umode_t *mode, const char **tmp);
 extern void *dev_get_drvdata(const struct device *dev);
 extern int dev_set_drvdata(struct device *dev, void *data);
 
index 6d18f35..fe23ee7 100644 (file)
@@ -163,7 +163,7 @@ struct gendisk {
                                          * disks that can't be partitioned. */
 
        char disk_name[DISK_NAME_LEN];  /* name of major driver */
-       char *(*devnode)(struct gendisk *gd, mode_t *mode);
+       char *(*devnode)(struct gendisk *gd, umode_t *mode);
 
        unsigned int events;            /* supported events */
        unsigned int async_events;      /* async events, subset of all */
index d3d0c13..a593217 100644 (file)
@@ -935,7 +935,7 @@ extern struct bus_type usb_bus_type;
  */
 struct usb_class_driver {
        char *name;
-       char *(*devnode)(struct device *dev, mode_t *mode);
+       char *(*devnode)(struct device *dev, umode_t *mode);
        const struct file_operations *fops;
        int minor_base;
 };
index 6ce2778..c6e81fb 100644 (file)
@@ -29,7 +29,7 @@ MODULE_DESCRIPTION("Core sound module");
 MODULE_AUTHOR("Alan Cox");
 MODULE_LICENSE("GPL");
 
-static char *sound_devnode(struct device *dev, mode_t *mode)
+static char *sound_devnode(struct device *dev, umode_t *mode)
 {
        if (MAJOR(dev->devt) == SOUND_MAJOR)
                return NULL;