diff options
Diffstat (limited to 'drivers/xen/xenbus/xenbus_probe.c')
| -rw-r--r-- | drivers/xen/xenbus/xenbus_probe.c | 10 | 
1 files changed, 5 insertions, 5 deletions
| diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbus_probe.c index 66975da4f3b6..8c4d05b687b7 100644 --- a/drivers/xen/xenbus/xenbus_probe.c +++ b/drivers/xen/xenbus/xenbus_probe.c @@ -239,9 +239,9 @@ int xenbus_dev_probe(struct device *_dev)  		goto fail;  	} -	spin_lock(&dev->reclaim_lock); +	down(&dev->reclaim_sem);  	err = drv->probe(dev, id); -	spin_unlock(&dev->reclaim_lock); +	up(&dev->reclaim_sem);  	if (err)  		goto fail_put; @@ -271,9 +271,9 @@ int xenbus_dev_remove(struct device *_dev)  	free_otherend_watch(dev);  	if (drv->remove) { -		spin_lock(&dev->reclaim_lock); +		down(&dev->reclaim_sem);  		drv->remove(dev); -		spin_unlock(&dev->reclaim_lock); +		up(&dev->reclaim_sem);  	}  	module_put(drv->driver.owner); @@ -473,7 +473,7 @@ int xenbus_probe_node(struct xen_bus_type *bus,  		goto fail;  	dev_set_name(&xendev->dev, "%s", devname); -	spin_lock_init(&xendev->reclaim_lock); +	sema_init(&xendev->reclaim_sem, 1);  	/* Register with generic device framework. */  	err = device_register(&xendev->dev); |