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 /mm/backing-dev.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 'mm/backing-dev.c')
-rw-r--r-- | mm/backing-dev.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/mm/backing-dev.c b/mm/backing-dev.c index e04454cdb33f..37d9edcd14cf 100644 --- a/mm/backing-dev.c +++ b/mm/backing-dev.c | |||
@@ -180,7 +180,8 @@ static ssize_t name##_show(struct device *dev, \ | |||
180 | struct backing_dev_info *bdi = dev_get_drvdata(dev); \ | 180 | struct backing_dev_info *bdi = dev_get_drvdata(dev); \ |
181 | \ | 181 | \ |
182 | return snprintf(page, PAGE_SIZE-1, "%lld\n", (long long)expr); \ | 182 | return snprintf(page, PAGE_SIZE-1, "%lld\n", (long long)expr); \ |
183 | } | 183 | } \ |
184 | static DEVICE_ATTR_RW(name); | ||
184 | 185 | ||
185 | BDI_SHOW(read_ahead_kb, K(bdi->ra_pages)) | 186 | BDI_SHOW(read_ahead_kb, K(bdi->ra_pages)) |
186 | 187 | ||
@@ -231,14 +232,16 @@ static ssize_t stable_pages_required_show(struct device *dev, | |||
231 | return snprintf(page, PAGE_SIZE-1, "%d\n", | 232 | return snprintf(page, PAGE_SIZE-1, "%d\n", |
232 | bdi_cap_stable_pages_required(bdi) ? 1 : 0); | 233 | bdi_cap_stable_pages_required(bdi) ? 1 : 0); |
233 | } | 234 | } |
235 | static DEVICE_ATTR_RO(stable_pages_required); | ||
234 | 236 | ||
235 | static struct device_attribute bdi_dev_attrs[] = { | 237 | static struct attribute *bdi_dev_attrs[] = { |
236 | __ATTR_RW(read_ahead_kb), | 238 | &dev_attr_read_ahead_kb.attr, |
237 | __ATTR_RW(min_ratio), | 239 | &dev_attr_min_ratio.attr, |
238 | __ATTR_RW(max_ratio), | 240 | &dev_attr_max_ratio.attr, |
239 | __ATTR_RO(stable_pages_required), | 241 | &dev_attr_stable_pages_required.attr, |
240 | __ATTR_NULL, | 242 | NULL, |
241 | }; | 243 | }; |
244 | ATTRIBUTE_GROUPS(bdi_dev); | ||
242 | 245 | ||
243 | static __init int bdi_class_init(void) | 246 | static __init int bdi_class_init(void) |
244 | { | 247 | { |
@@ -246,7 +249,7 @@ static __init int bdi_class_init(void) | |||
246 | if (IS_ERR(bdi_class)) | 249 | if (IS_ERR(bdi_class)) |
247 | return PTR_ERR(bdi_class); | 250 | return PTR_ERR(bdi_class); |
248 | 251 | ||
249 | bdi_class->dev_attrs = bdi_dev_attrs; | 252 | bdi_class->dev_groups = bdi_dev_groups; |
250 | bdi_debug_init(); | 253 | bdi_debug_init(); |
251 | return 0; | 254 | return 0; |
252 | } | 255 | } |