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/firmware/dcdbas.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/firmware/dcdbas.c')
-rw-r--r-- | drivers/firmware/dcdbas.c | 19 |
1 files changed, 2 insertions, 17 deletions
diff --git a/drivers/firmware/dcdbas.c b/drivers/firmware/dcdbas.c index 8e77c02edb24..ff080ee20197 100644 --- a/drivers/firmware/dcdbas.c +++ b/drivers/firmware/dcdbas.c | |||
@@ -535,11 +535,12 @@ static struct attribute *dcdbas_dev_attrs[] = { | |||
535 | 535 | ||
536 | static struct attribute_group dcdbas_attr_group = { | 536 | static struct attribute_group dcdbas_attr_group = { |
537 | .attrs = dcdbas_dev_attrs, | 537 | .attrs = dcdbas_dev_attrs, |
538 | .bin_attrs = dcdbas_bin_attrs, | ||
538 | }; | 539 | }; |
539 | 540 | ||
540 | static int dcdbas_probe(struct platform_device *dev) | 541 | static int dcdbas_probe(struct platform_device *dev) |
541 | { | 542 | { |
542 | int i, error; | 543 | int error; |
543 | 544 | ||
544 | host_control_action = HC_ACTION_NONE; | 545 | host_control_action = HC_ACTION_NONE; |
545 | host_control_smi_type = HC_SMITYPE_NONE; | 546 | host_control_smi_type = HC_SMITYPE_NONE; |
@@ -555,18 +556,6 @@ static int dcdbas_probe(struct platform_device *dev) | |||
555 | if (error) | 556 | if (error) |
556 | return error; | 557 | return error; |
557 | 558 | ||
558 | for (i = 0; dcdbas_bin_attrs[i]; i++) { | ||
559 | error = sysfs_create_bin_file(&dev->dev.kobj, | ||
560 | dcdbas_bin_attrs[i]); | ||
561 | if (error) { | ||
562 | while (--i >= 0) | ||
563 | sysfs_remove_bin_file(&dev->dev.kobj, | ||
564 | dcdbas_bin_attrs[i]); | ||
565 | sysfs_remove_group(&dev->dev.kobj, &dcdbas_attr_group); | ||
566 | return error; | ||
567 | } | ||
568 | } | ||
569 | |||
570 | register_reboot_notifier(&dcdbas_reboot_nb); | 559 | register_reboot_notifier(&dcdbas_reboot_nb); |
571 | 560 | ||
572 | dev_info(&dev->dev, "%s (version %s)\n", | 561 | dev_info(&dev->dev, "%s (version %s)\n", |
@@ -577,11 +566,7 @@ static int dcdbas_probe(struct platform_device *dev) | |||
577 | 566 | ||
578 | static int dcdbas_remove(struct platform_device *dev) | 567 | static int dcdbas_remove(struct platform_device *dev) |
579 | { | 568 | { |
580 | int i; | ||
581 | |||
582 | unregister_reboot_notifier(&dcdbas_reboot_nb); | 569 | unregister_reboot_notifier(&dcdbas_reboot_nb); |
583 | for (i = 0; dcdbas_bin_attrs[i]; i++) | ||
584 | sysfs_remove_bin_file(&dev->dev.kobj, dcdbas_bin_attrs[i]); | ||
585 | sysfs_remove_group(&dev->dev.kobj, &dcdbas_attr_group); | 570 | sysfs_remove_group(&dev->dev.kobj, &dcdbas_attr_group); |
586 | 571 | ||
587 | return 0; | 572 | return 0; |