diff options
Diffstat (limited to 'drivers/ieee1394/nodemgr.c')
| -rw-r--r-- | drivers/ieee1394/nodemgr.c | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/drivers/ieee1394/nodemgr.c b/drivers/ieee1394/nodemgr.c index 83e66ed97ab5..32abb6dda888 100644 --- a/drivers/ieee1394/nodemgr.c +++ b/drivers/ieee1394/nodemgr.c | |||
| @@ -220,7 +220,7 @@ struct device nodemgr_dev_template_host = { | |||
| 220 | 220 | ||
| 221 | 221 | ||
| 222 | #define fw_attr(class, class_type, field, type, format_string) \ | 222 | #define fw_attr(class, class_type, field, type, format_string) \ |
| 223 | static ssize_t fw_show_##class##_##field (struct device *dev, char *buf)\ | 223 | static ssize_t fw_show_##class##_##field (struct device *dev, struct device_attribute *attr, char *buf)\ |
| 224 | { \ | 224 | { \ |
| 225 | class_type *class; \ | 225 | class_type *class; \ |
| 226 | class = container_of(dev, class_type, device); \ | 226 | class = container_of(dev, class_type, device); \ |
| @@ -232,7 +232,7 @@ static struct device_attribute dev_attr_##class##_##field = { \ | |||
| 232 | }; | 232 | }; |
| 233 | 233 | ||
| 234 | #define fw_attr_td(class, class_type, td_kv) \ | 234 | #define fw_attr_td(class, class_type, td_kv) \ |
| 235 | static ssize_t fw_show_##class##_##td_kv (struct device *dev, char *buf)\ | 235 | static ssize_t fw_show_##class##_##td_kv (struct device *dev, struct device_attribute *attr, char *buf)\ |
| 236 | { \ | 236 | { \ |
| 237 | int len; \ | 237 | int len; \ |
| 238 | class_type *class = container_of(dev, class_type, device); \ | 238 | class_type *class = container_of(dev, class_type, device); \ |
| @@ -265,7 +265,7 @@ static struct driver_attribute driver_attr_drv_##field = { \ | |||
| 265 | }; | 265 | }; |
| 266 | 266 | ||
| 267 | 267 | ||
| 268 | static ssize_t fw_show_ne_bus_options(struct device *dev, char *buf) | 268 | static ssize_t fw_show_ne_bus_options(struct device *dev, struct device_attribute *attr, char *buf) |
| 269 | { | 269 | { |
| 270 | struct node_entry *ne = container_of(dev, struct node_entry, device); | 270 | struct node_entry *ne = container_of(dev, struct node_entry, device); |
| 271 | 271 | ||
| @@ -281,7 +281,7 @@ static ssize_t fw_show_ne_bus_options(struct device *dev, char *buf) | |||
| 281 | static DEVICE_ATTR(bus_options,S_IRUGO,fw_show_ne_bus_options,NULL); | 281 | static DEVICE_ATTR(bus_options,S_IRUGO,fw_show_ne_bus_options,NULL); |
| 282 | 282 | ||
| 283 | 283 | ||
| 284 | static ssize_t fw_show_ne_tlabels_free(struct device *dev, char *buf) | 284 | static ssize_t fw_show_ne_tlabels_free(struct device *dev, struct device_attribute *attr, char *buf) |
| 285 | { | 285 | { |
| 286 | struct node_entry *ne = container_of(dev, struct node_entry, device); | 286 | struct node_entry *ne = container_of(dev, struct node_entry, device); |
| 287 | return sprintf(buf, "%d\n", atomic_read(&ne->tpool->count.count) + 1); | 287 | return sprintf(buf, "%d\n", atomic_read(&ne->tpool->count.count) + 1); |
| @@ -289,7 +289,7 @@ static ssize_t fw_show_ne_tlabels_free(struct device *dev, char *buf) | |||
| 289 | static DEVICE_ATTR(tlabels_free,S_IRUGO,fw_show_ne_tlabels_free,NULL); | 289 | static DEVICE_ATTR(tlabels_free,S_IRUGO,fw_show_ne_tlabels_free,NULL); |
| 290 | 290 | ||
| 291 | 291 | ||
| 292 | static ssize_t fw_show_ne_tlabels_allocations(struct device *dev, char *buf) | 292 | static ssize_t fw_show_ne_tlabels_allocations(struct device *dev, struct device_attribute *attr, char *buf) |
| 293 | { | 293 | { |
| 294 | struct node_entry *ne = container_of(dev, struct node_entry, device); | 294 | struct node_entry *ne = container_of(dev, struct node_entry, device); |
| 295 | return sprintf(buf, "%u\n", ne->tpool->allocations); | 295 | return sprintf(buf, "%u\n", ne->tpool->allocations); |
| @@ -297,7 +297,7 @@ static ssize_t fw_show_ne_tlabels_allocations(struct device *dev, char *buf) | |||
| 297 | static DEVICE_ATTR(tlabels_allocations,S_IRUGO,fw_show_ne_tlabels_allocations,NULL); | 297 | static DEVICE_ATTR(tlabels_allocations,S_IRUGO,fw_show_ne_tlabels_allocations,NULL); |
| 298 | 298 | ||
| 299 | 299 | ||
| 300 | static ssize_t fw_show_ne_tlabels_mask(struct device *dev, char *buf) | 300 | static ssize_t fw_show_ne_tlabels_mask(struct device *dev, struct device_attribute *attr, char *buf) |
| 301 | { | 301 | { |
| 302 | struct node_entry *ne = container_of(dev, struct node_entry, device); | 302 | struct node_entry *ne = container_of(dev, struct node_entry, device); |
| 303 | #if (BITS_PER_LONG <= 32) | 303 | #if (BITS_PER_LONG <= 32) |
| @@ -309,7 +309,7 @@ static ssize_t fw_show_ne_tlabels_mask(struct device *dev, char *buf) | |||
| 309 | static DEVICE_ATTR(tlabels_mask, S_IRUGO, fw_show_ne_tlabels_mask, NULL); | 309 | static DEVICE_ATTR(tlabels_mask, S_IRUGO, fw_show_ne_tlabels_mask, NULL); |
| 310 | 310 | ||
| 311 | 311 | ||
| 312 | static ssize_t fw_set_ignore_driver(struct device *dev, const char *buf, size_t count) | 312 | static ssize_t fw_set_ignore_driver(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) |
| 313 | { | 313 | { |
| 314 | struct unit_directory *ud = container_of(dev, struct unit_directory, device); | 314 | struct unit_directory *ud = container_of(dev, struct unit_directory, device); |
| 315 | int state = simple_strtoul(buf, NULL, 10); | 315 | int state = simple_strtoul(buf, NULL, 10); |
| @@ -324,7 +324,7 @@ static ssize_t fw_set_ignore_driver(struct device *dev, const char *buf, size_t | |||
| 324 | 324 | ||
| 325 | return count; | 325 | return count; |
| 326 | } | 326 | } |
| 327 | static ssize_t fw_get_ignore_driver(struct device *dev, char *buf) | 327 | static ssize_t fw_get_ignore_driver(struct device *dev, struct device_attribute *attr, char *buf) |
| 328 | { | 328 | { |
| 329 | struct unit_directory *ud = container_of(dev, struct unit_directory, device); | 329 | struct unit_directory *ud = container_of(dev, struct unit_directory, device); |
| 330 | 330 | ||
| @@ -695,14 +695,15 @@ static void nodemgr_remove_ne(struct node_entry *ne) | |||
| 695 | put_device(dev); | 695 | put_device(dev); |
| 696 | } | 696 | } |
| 697 | 697 | ||
| 698 | static int __nodemgr_remove_host_dev(struct device *dev, void *data) | ||
| 699 | { | ||
| 700 | nodemgr_remove_ne(container_of(dev, struct node_entry, device)); | ||
| 701 | return 0; | ||
| 702 | } | ||
| 698 | 703 | ||
| 699 | static void nodemgr_remove_host_dev(struct device *dev) | 704 | static void nodemgr_remove_host_dev(struct device *dev) |
| 700 | { | 705 | { |
| 701 | struct device *ne_dev, *next; | 706 | device_for_each_child(dev, NULL, __nodemgr_remove_host_dev); |
| 702 | |||
| 703 | list_for_each_entry_safe(ne_dev, next, &dev->children, node) | ||
| 704 | nodemgr_remove_ne(container_of(ne_dev, struct node_entry, device)); | ||
| 705 | |||
| 706 | sysfs_remove_link(&dev->kobj, "irm_id"); | 707 | sysfs_remove_link(&dev->kobj, "irm_id"); |
| 707 | sysfs_remove_link(&dev->kobj, "busmgr_id"); | 708 | sysfs_remove_link(&dev->kobj, "busmgr_id"); |
| 708 | sysfs_remove_link(&dev->kobj, "host_id"); | 709 | sysfs_remove_link(&dev->kobj, "host_id"); |
