From: Kristian Høgsberg Date: Mon, 19 Mar 2007 15:37:16 +0000 (-0400) Subject: firewire: Grab dev->sem when doing the update callback. X-Git-Tag: v2.6.22-rc1~111^2~44 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=015b066f4e5dbd301144c2de1c53329178f67a01;p=linux-2.6 firewire: Grab dev->sem when doing the update callback. This serializes the update callback with the probe and remove callback from the driver core and prevents remove from being called while update is running for the same device. Signed-off-by: Kristian Høgsberg Signed-off-by: Stefan Richter --- diff --git a/drivers/firewire/fw-device.c b/drivers/firewire/fw-device.c index 4877cdbc58..15721a776c 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; }