diff --git a/drivers/firewire/fw-device.c b/drivers/firewire/fw-device.c index 4877cdbc58cca8e7b5757234e9de81c57dec21de..15721a776cd44e3dd52edf67c3c8ed8ee6294e1d 100644 --- a/drivers/firewire/fw-device.c +++ b/drivers/firewire/fw-device.c @@ -562,8 +562,11 @@ static int update_unit(struct device *dev, void *data) struct fw_unit *unit = fw_unit(dev); struct fw_driver *driver = (struct fw_driver *)dev->driver; - if (is_fw_unit(dev) && driver != NULL && driver->update != NULL) + if (is_fw_unit(dev) && driver != NULL && driver->update != NULL) { + down(&dev->sem); driver->update(unit); + up(&dev->sem); + } return 0; }