aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/base/platform.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-09-03 14:37:15 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2013-09-03 14:37:15 -0400
commit542a086ac72fb193cbc1b996963a572269e57743 (patch)
treeb137c08037cca4ffc8a156a891a01113b3b8edce /drivers/base/platform.c
parent1d1fdd95df681f0c065d90ffaafa215a0e8825e2 (diff)
parent1eeeef153c02f5856ec109fa532eb5f31c39f85c (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.c14
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}
675static DEVICE_ATTR_RO(modalias);
675 676
676static struct device_attribute platform_dev_attrs[] = { 677static struct attribute *platform_dev_attrs[] = {
677 __ATTR_RO(modalias), 678 &dev_attr_modalias.attr,
678 __ATTR_NULL, 679 NULL,
679}; 680};
681ATTRIBUTE_GROUPS(platform_dev);
680 682
681static int platform_uevent(struct device *dev, struct kobj_uevent_env *env) 683static 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
894struct bus_type platform_bus_type = { 896struct 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 */
1057static __init struct platform_device * 1059static struct platform_device * __init
1058early_platform_match(struct early_platform_driver *epdrv, int id) 1060early_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 */
1075static __init int early_platform_left(struct early_platform_driver *epdrv, 1077static 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;