diff options
Diffstat (limited to 'drivers/ieee1394')
-rw-r--r-- | drivers/ieee1394/nodemgr.c | 8 |
1 files changed, 0 insertions, 8 deletions
diff --git a/drivers/ieee1394/nodemgr.c b/drivers/ieee1394/nodemgr.c index 1644e6fd2c89..dbeba45a031e 100644 --- a/drivers/ieee1394/nodemgr.c +++ b/drivers/ieee1394/nodemgr.c | |||
@@ -370,9 +370,7 @@ static ssize_t fw_set_ignore_driver(struct device *dev, struct device_attribute | |||
370 | 370 | ||
371 | if (state == 1) { | 371 | if (state == 1) { |
372 | ud->ignore_driver = 1; | 372 | ud->ignore_driver = 1; |
373 | down_write(&ieee1394_bus_type.subsys.rwsem); | ||
374 | device_release_driver(dev); | 373 | device_release_driver(dev); |
375 | up_write(&ieee1394_bus_type.subsys.rwsem); | ||
376 | } else if (state == 0) | 374 | } else if (state == 0) |
377 | ud->ignore_driver = 0; | 375 | ud->ignore_driver = 0; |
378 | 376 | ||
@@ -1391,12 +1389,10 @@ static void nodemgr_suspend_ne(struct node_entry *ne) | |||
1391 | if (ud->ne != ne) | 1389 | if (ud->ne != ne) |
1392 | continue; | 1390 | continue; |
1393 | 1391 | ||
1394 | down_write(&ieee1394_bus_type.subsys.rwsem); | ||
1395 | if (ud->device.driver && | 1392 | if (ud->device.driver && |
1396 | (!ud->device.driver->suspend || | 1393 | (!ud->device.driver->suspend || |
1397 | ud->device.driver->suspend(&ud->device, PMSG_SUSPEND))) | 1394 | ud->device.driver->suspend(&ud->device, PMSG_SUSPEND))) |
1398 | device_release_driver(&ud->device); | 1395 | device_release_driver(&ud->device); |
1399 | up_write(&ieee1394_bus_type.subsys.rwsem); | ||
1400 | } | 1396 | } |
1401 | up(&nodemgr_ud_class.sem); | 1397 | up(&nodemgr_ud_class.sem); |
1402 | } | 1398 | } |
@@ -1416,10 +1412,8 @@ static void nodemgr_resume_ne(struct node_entry *ne) | |||
1416 | if (ud->ne != ne) | 1412 | if (ud->ne != ne) |
1417 | continue; | 1413 | continue; |
1418 | 1414 | ||
1419 | down_read(&ieee1394_bus_type.subsys.rwsem); | ||
1420 | if (ud->device.driver && ud->device.driver->resume) | 1415 | if (ud->device.driver && ud->device.driver->resume) |
1421 | ud->device.driver->resume(&ud->device); | 1416 | ud->device.driver->resume(&ud->device); |
1422 | up_read(&ieee1394_bus_type.subsys.rwsem); | ||
1423 | } | 1417 | } |
1424 | up(&nodemgr_ud_class.sem); | 1418 | up(&nodemgr_ud_class.sem); |
1425 | 1419 | ||
@@ -1440,7 +1434,6 @@ static void nodemgr_update_pdrv(struct node_entry *ne) | |||
1440 | if (ud->ne != ne) | 1434 | if (ud->ne != ne) |
1441 | continue; | 1435 | continue; |
1442 | 1436 | ||
1443 | down_write(&ieee1394_bus_type.subsys.rwsem); | ||
1444 | if (ud->device.driver) { | 1437 | if (ud->device.driver) { |
1445 | pdrv = container_of(ud->device.driver, | 1438 | pdrv = container_of(ud->device.driver, |
1446 | struct hpsb_protocol_driver, | 1439 | struct hpsb_protocol_driver, |
@@ -1448,7 +1441,6 @@ static void nodemgr_update_pdrv(struct node_entry *ne) | |||
1448 | if (pdrv->update && pdrv->update(ud)) | 1441 | if (pdrv->update && pdrv->update(ud)) |
1449 | device_release_driver(&ud->device); | 1442 | device_release_driver(&ud->device); |
1450 | } | 1443 | } |
1451 | up_write(&ieee1394_bus_type.subsys.rwsem); | ||
1452 | } | 1444 | } |
1453 | up(&nodemgr_ud_class.sem); | 1445 | up(&nodemgr_ud_class.sem); |
1454 | } | 1446 | } |