diff options
Diffstat (limited to 'drivers/base/power/runtime.c')
| -rw-r--r-- | drivers/base/power/runtime.c | 10 | 
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/base/power/runtime.c b/drivers/base/power/runtime.c index 8dc247c974a..acb3f83b807 100644 --- a/drivers/base/power/runtime.c +++ b/drivers/base/power/runtime.c @@ -226,11 +226,17 @@ static int rpm_idle(struct device *dev, int rpmflags)  		callback = NULL;  	if (callback) { -		spin_unlock_irq(&dev->power.lock); +		if (dev->power.irq_safe) +			spin_unlock(&dev->power.lock); +		else +			spin_unlock_irq(&dev->power.lock);  		callback(dev); -		spin_lock_irq(&dev->power.lock); +		if (dev->power.irq_safe) +			spin_lock(&dev->power.lock); +		else +			spin_lock_irq(&dev->power.lock);  	}  	dev->power.idle_notification = false;  |