diff options
Diffstat (limited to 'drivers/ieee1394/nodemgr.c')
-rw-r--r-- | drivers/ieee1394/nodemgr.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/ieee1394/nodemgr.c b/drivers/ieee1394/nodemgr.c index f087f7e2b691..3e7974c57443 100644 --- a/drivers/ieee1394/nodemgr.c +++ b/drivers/ieee1394/nodemgr.c | |||
@@ -1352,6 +1352,7 @@ static void nodemgr_resume_ne(struct node_entry *ne) | |||
1352 | ne->in_limbo = 0; | 1352 | ne->in_limbo = 0; |
1353 | device_remove_file(&ne->device, &dev_attr_ne_in_limbo); | 1353 | device_remove_file(&ne->device, &dev_attr_ne_in_limbo); |
1354 | 1354 | ||
1355 | down_read(&nodemgr_ud_class.subsys.rwsem); | ||
1355 | down_read(&ne->device.bus->subsys.rwsem); | 1356 | down_read(&ne->device.bus->subsys.rwsem); |
1356 | list_for_each_entry(cdev, &nodemgr_ud_class.children, node) { | 1357 | list_for_each_entry(cdev, &nodemgr_ud_class.children, node) { |
1357 | ud = container_of(cdev, struct unit_directory, class_dev); | 1358 | ud = container_of(cdev, struct unit_directory, class_dev); |
@@ -1363,6 +1364,7 @@ static void nodemgr_resume_ne(struct node_entry *ne) | |||
1363 | ud->device.driver->resume(&ud->device); | 1364 | ud->device.driver->resume(&ud->device); |
1364 | } | 1365 | } |
1365 | up_read(&ne->device.bus->subsys.rwsem); | 1366 | up_read(&ne->device.bus->subsys.rwsem); |
1367 | up_read(&nodemgr_ud_class.subsys.rwsem); | ||
1366 | 1368 | ||
1367 | HPSB_DEBUG("Node resumed: ID:BUS[" NODE_BUS_FMT "] GUID[%016Lx]", | 1369 | HPSB_DEBUG("Node resumed: ID:BUS[" NODE_BUS_FMT "] GUID[%016Lx]", |
1368 | NODE_BUS_ARGS(ne->host, ne->nodeid), (unsigned long long)ne->guid); | 1370 | NODE_BUS_ARGS(ne->host, ne->nodeid), (unsigned long long)ne->guid); |