Commit 432983d2 authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'pm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6

* 'pm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6:
  PM: fix irq enable/disable in runtime PM code
parents f8a2cee0 862f89b3
...@@ -328,11 +328,11 @@ int __pm_runtime_resume(struct device *dev, bool from_wq) ...@@ -328,11 +328,11 @@ int __pm_runtime_resume(struct device *dev, bool from_wq)
* necessary. * necessary.
*/ */
parent = dev->parent; parent = dev->parent;
spin_unlock_irq(&dev->power.lock); spin_unlock(&dev->power.lock);
pm_runtime_get_noresume(parent); pm_runtime_get_noresume(parent);
spin_lock_irq(&parent->power.lock); spin_lock(&parent->power.lock);
/* /*
* We can resume if the parent's run-time PM is disabled or it * We can resume if the parent's run-time PM is disabled or it
* is set to ignore children. * is set to ignore children.
...@@ -343,9 +343,9 @@ int __pm_runtime_resume(struct device *dev, bool from_wq) ...@@ -343,9 +343,9 @@ int __pm_runtime_resume(struct device *dev, bool from_wq)
if (parent->power.runtime_status != RPM_ACTIVE) if (parent->power.runtime_status != RPM_ACTIVE)
retval = -EBUSY; retval = -EBUSY;
} }
spin_unlock_irq(&parent->power.lock); spin_unlock(&parent->power.lock);
spin_lock_irq(&dev->power.lock); spin_lock(&dev->power.lock);
if (retval) if (retval)
goto out; goto out;
goto repeat; goto repeat;
...@@ -777,7 +777,7 @@ int __pm_runtime_set_status(struct device *dev, unsigned int status) ...@@ -777,7 +777,7 @@ int __pm_runtime_set_status(struct device *dev, unsigned int status)
} }
if (parent) { if (parent) {
spin_lock_irq(&parent->power.lock); spin_lock(&parent->power.lock);
/* /*
* It is invalid to put an active child under a parent that is * It is invalid to put an active child under a parent that is
...@@ -793,7 +793,7 @@ int __pm_runtime_set_status(struct device *dev, unsigned int status) ...@@ -793,7 +793,7 @@ int __pm_runtime_set_status(struct device *dev, unsigned int status)
atomic_inc(&parent->power.child_count); atomic_inc(&parent->power.child_count);
} }
spin_unlock_irq(&parent->power.lock); spin_unlock(&parent->power.lock);
if (error) if (error)
goto out; goto out;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment