|
@@ -370,9 +370,7 @@ static ssize_t fw_set_ignore_driver(struct device *dev, struct device_attribute
|
|
|
|
|
|
if (state == 1) {
|
|
|
ud->ignore_driver = 1;
|
|
|
- down_write(&ieee1394_bus_type.subsys.rwsem);
|
|
|
device_release_driver(dev);
|
|
|
- up_write(&ieee1394_bus_type.subsys.rwsem);
|
|
|
} else if (state == 0)
|
|
|
ud->ignore_driver = 0;
|
|
|
|
|
@@ -1391,12 +1389,10 @@ static void nodemgr_suspend_ne(struct node_entry *ne)
|
|
|
if (ud->ne != ne)
|
|
|
continue;
|
|
|
|
|
|
- down_write(&ieee1394_bus_type.subsys.rwsem);
|
|
|
if (ud->device.driver &&
|
|
|
(!ud->device.driver->suspend ||
|
|
|
ud->device.driver->suspend(&ud->device, PMSG_SUSPEND)))
|
|
|
device_release_driver(&ud->device);
|
|
|
- up_write(&ieee1394_bus_type.subsys.rwsem);
|
|
|
}
|
|
|
up(&nodemgr_ud_class.sem);
|
|
|
}
|
|
@@ -1416,10 +1412,8 @@ static void nodemgr_resume_ne(struct node_entry *ne)
|
|
|
if (ud->ne != ne)
|
|
|
continue;
|
|
|
|
|
|
- down_read(&ieee1394_bus_type.subsys.rwsem);
|
|
|
if (ud->device.driver && ud->device.driver->resume)
|
|
|
ud->device.driver->resume(&ud->device);
|
|
|
- up_read(&ieee1394_bus_type.subsys.rwsem);
|
|
|
}
|
|
|
up(&nodemgr_ud_class.sem);
|
|
|
|
|
@@ -1440,7 +1434,6 @@ static void nodemgr_update_pdrv(struct node_entry *ne)
|
|
|
if (ud->ne != ne)
|
|
|
continue;
|
|
|
|
|
|
- down_write(&ieee1394_bus_type.subsys.rwsem);
|
|
|
if (ud->device.driver) {
|
|
|
pdrv = container_of(ud->device.driver,
|
|
|
struct hpsb_protocol_driver,
|
|
@@ -1448,7 +1441,6 @@ static void nodemgr_update_pdrv(struct node_entry *ne)
|
|
|
if (pdrv->update && pdrv->update(ud))
|
|
|
device_release_driver(&ud->device);
|
|
|
}
|
|
|
- up_write(&ieee1394_bus_type.subsys.rwsem);
|
|
|
}
|
|
|
up(&nodemgr_ud_class.sem);
|
|
|
}
|