diff options
Diffstat (limited to 'drivers/xen/xenbus/xenbus_probe_backend.c')
| -rw-r--r-- | drivers/xen/xenbus/xenbus_probe_backend.c | 5 | 
1 files changed, 3 insertions, 2 deletions
| diff --git a/drivers/xen/xenbus/xenbus_probe_backend.c b/drivers/xen/xenbus/xenbus_probe_backend.c index 791f6fe01e91..9b2fbe69bccc 100644 --- a/drivers/xen/xenbus/xenbus_probe_backend.c +++ b/drivers/xen/xenbus/xenbus_probe_backend.c @@ -45,6 +45,7 @@  #include <linux/mm.h>  #include <linux/notifier.h>  #include <linux/export.h> +#include <linux/semaphore.h>  #include <asm/page.h>  #include <asm/pgtable.h> @@ -257,10 +258,10 @@ static int backend_reclaim_memory(struct device *dev, void *data)  	drv = to_xenbus_driver(dev->driver);  	if (drv && drv->reclaim_memory) {  		xdev = to_xenbus_device(dev); -		if (!spin_trylock(&xdev->reclaim_lock)) +		if (down_trylock(&xdev->reclaim_sem))  			return 0;  		drv->reclaim_memory(xdev); -		spin_unlock(&xdev->reclaim_lock); +		up(&xdev->reclaim_sem);  	}  	return 0;  } |