diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-09-03 14:37:15 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-09-03 14:37:15 -0400 |
commit | 542a086ac72fb193cbc1b996963a572269e57743 (patch) | |
tree | b137c08037cca4ffc8a156a891a01113b3b8edce /drivers/base/platform.c | |
parent | 1d1fdd95df681f0c065d90ffaafa215a0e8825e2 (diff) | |
parent | 1eeeef153c02f5856ec109fa532eb5f31c39f85c (diff) |
Merge tag 'driver-core-3.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
Pull driver core patches from Greg KH:
"Here's the big driver core pull request for 3.12-rc1.
Lots of tiny changes here fixing up the way sysfs attributes are
created, to try to make drivers simpler, and fix a whole class race
conditions with creations of device attributes after the device was
announced to userspace.
All the various pieces are acked by the different subsystem
maintainers"
* tag 'driver-core-3.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (119 commits)
firmware loader: fix pending_fw_head list corruption
drivers/base/memory.c: introduce help macro to_memory_block
dynamic debug: line queries failing due to uninitialized local variable
sysfs: sysfs_create_groups returns a value.
debugfs: provide debugfs_create_x64() when disabled
rbd: convert bus code to use bus_groups
firmware: dcdbas: use binary attribute groups
sysfs: add sysfs_create/remove_groups for when SYSFS is not enabled
driver core: add #include <linux/sysfs.h> to core files.
HID: convert bus code to use dev_groups
Input: serio: convert bus code to use drv_groups
Input: gameport: convert bus code to use drv_groups
driver core: firmware: use __ATTR_RW()
driver core: core: use DEVICE_ATTR_RO
driver core: bus: use DRIVER_ATTR_WO()
driver core: create write-only attribute macros for devices and drivers
sysfs: create __ATTR_WO()
driver-core: platform: convert bus code to use dev_groups
workqueue: convert bus code to use dev_groups
MEI: convert bus code to use dev_groups
...
Diffstat (limited to 'drivers/base/platform.c')
-rw-r--r-- | drivers/base/platform.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/drivers/base/platform.c b/drivers/base/platform.c index 3c3197a8de41..4f8bef3eb5a8 100644 --- a/drivers/base/platform.c +++ b/drivers/base/platform.c | |||
@@ -672,11 +672,13 @@ static ssize_t modalias_show(struct device *dev, struct device_attribute *a, | |||
672 | 672 | ||
673 | return (len >= PAGE_SIZE) ? (PAGE_SIZE - 1) : len; | 673 | return (len >= PAGE_SIZE) ? (PAGE_SIZE - 1) : len; |
674 | } | 674 | } |
675 | static DEVICE_ATTR_RO(modalias); | ||
675 | 676 | ||
676 | static struct device_attribute platform_dev_attrs[] = { | 677 | static struct attribute *platform_dev_attrs[] = { |
677 | __ATTR_RO(modalias), | 678 | &dev_attr_modalias.attr, |
678 | __ATTR_NULL, | 679 | NULL, |
679 | }; | 680 | }; |
681 | ATTRIBUTE_GROUPS(platform_dev); | ||
680 | 682 | ||
681 | static int platform_uevent(struct device *dev, struct kobj_uevent_env *env) | 683 | static int platform_uevent(struct device *dev, struct kobj_uevent_env *env) |
682 | { | 684 | { |
@@ -893,7 +895,7 @@ static const struct dev_pm_ops platform_dev_pm_ops = { | |||
893 | 895 | ||
894 | struct bus_type platform_bus_type = { | 896 | struct bus_type platform_bus_type = { |
895 | .name = "platform", | 897 | .name = "platform", |
896 | .dev_attrs = platform_dev_attrs, | 898 | .dev_groups = platform_dev_groups, |
897 | .match = platform_match, | 899 | .match = platform_match, |
898 | .uevent = platform_uevent, | 900 | .uevent = platform_uevent, |
899 | .pm = &platform_dev_pm_ops, | 901 | .pm = &platform_dev_pm_ops, |
@@ -1054,7 +1056,7 @@ void __init early_platform_driver_register_all(char *class_str) | |||
1054 | * @epdrv: early platform driver structure | 1056 | * @epdrv: early platform driver structure |
1055 | * @id: id to match against | 1057 | * @id: id to match against |
1056 | */ | 1058 | */ |
1057 | static __init struct platform_device * | 1059 | static struct platform_device * __init |
1058 | early_platform_match(struct early_platform_driver *epdrv, int id) | 1060 | early_platform_match(struct early_platform_driver *epdrv, int id) |
1059 | { | 1061 | { |
1060 | struct platform_device *pd; | 1062 | struct platform_device *pd; |
@@ -1072,7 +1074,7 @@ early_platform_match(struct early_platform_driver *epdrv, int id) | |||
1072 | * @epdrv: early platform driver structure | 1074 | * @epdrv: early platform driver structure |
1073 | * @id: return true if id or above exists | 1075 | * @id: return true if id or above exists |
1074 | */ | 1076 | */ |
1075 | static __init int early_platform_left(struct early_platform_driver *epdrv, | 1077 | static int __init early_platform_left(struct early_platform_driver *epdrv, |
1076 | int id) | 1078 | int id) |
1077 | { | 1079 | { |
1078 | struct platform_device *pd; | 1080 | struct platform_device *pd; |