Merge branch 'for-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq
[firefly-linux-kernel-4.4.55.git] / include / linux / device.h
index ee10d4e7be1ae6da83f1ccab69f2e90b283abdb2..711793b145ff60f19962aa8400a9a05b5ec4a464 100644 (file)
@@ -25,6 +25,7 @@
 #include <linux/pm.h>
 #include <linux/atomic.h>
 #include <linux/ratelimit.h>
+#include <linux/uidgid.h>
 #include <asm/device.h>
 
 struct device;
@@ -111,17 +112,11 @@ struct bus_type {
        struct iommu_ops *iommu_ops;
 
        struct subsys_private *p;
+       struct lock_class_key lock_key;
 };
 
-/* This is a #define to keep the compiler from merging different
- * instances of the __key variable */
-#define bus_register(subsys)                   \
-({                                             \
-       static struct lock_class_key __key;     \
-       __bus_register(subsys, &__key); \
-})
-extern int __must_check __bus_register(struct bus_type *bus,
-                                      struct lock_class_key *key);
+extern int __must_check bus_register(struct bus_type *bus);
+
 extern void bus_unregister(struct bus_type *bus);
 
 extern int __must_check bus_rescan_devices(struct bus_type *bus);
@@ -473,7 +468,8 @@ 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, umode_t *mode);
+       char *(*devnode)(struct device *dev, umode_t *mode,
+                        kuid_t *uid, kgid_t *gid);
        void (*release)(struct device *dev);
 
        const struct dev_pm_ops *pm;
@@ -851,7 +847,8 @@ 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,
-                                     umode_t *mode, const char **tmp);
+                                     umode_t *mode, kuid_t *uid, kgid_t *gid,
+                                     const char **tmp);
 extern void *dev_get_drvdata(const struct device *dev);
 extern int dev_set_drvdata(struct device *dev, void *data);