summaryrefslogtreecommitdiffstats
path: root/drivers/pci/pcie/pme.c
diff options
context:
space:
mode:
authorJ. Bruce Fields <bfields@redhat.com>2014-11-19 18:06:30 +0100
committerJ. Bruce Fields <bfields@redhat.com>2014-11-19 18:06:30 +0100
commit56429e9b3be567a173bd05f5594faf8522c34d3a (patch)
treed218d430ed992cdfa42da084bf36e5aa3c2ecb26 /drivers/pci/pcie/pme.c
parentnfsd: convert nfs4_file searches to use RCU (diff)
parentSUNRPC: Fix locking around callback channel reply receive (diff)
downloadlinux-56429e9b3be567a173bd05f5594faf8522c34d3a.tar.xz
linux-56429e9b3be567a173bd05f5594faf8522c34d3a.zip
merge nfs bugfixes into nfsd for-3.19 branch
In addition to nfsd bugfixes, there are some fixes in -rc5 for client bugs that can interfere with my testing.
Diffstat (limited to 'drivers/pci/pcie/pme.c')
-rw-r--r--drivers/pci/pcie/pme.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/pci/pcie/pme.c b/drivers/pci/pcie/pme.c
index a9f9c46e5022..63fc63911295 100644
--- a/drivers/pci/pcie/pme.c
+++ b/drivers/pci/pcie/pme.c
@@ -397,6 +397,7 @@ static int pcie_pme_suspend(struct pcie_device *srv)
struct pcie_pme_service_data *data = get_service_data(srv);
struct pci_dev *port = srv->port;
bool wakeup;
+ int ret;
if (device_may_wakeup(&port->dev)) {
wakeup = true;
@@ -407,9 +408,10 @@ static int pcie_pme_suspend(struct pcie_device *srv)
}
spin_lock_irq(&data->lock);
if (wakeup) {
- enable_irq_wake(srv->irq);
+ ret = enable_irq_wake(srv->irq);
data->suspend_level = PME_SUSPEND_WAKEUP;
- } else {
+ }
+ if (!wakeup || ret) {
struct pci_dev *port = srv->port;
pcie_pme_interrupt_enable(port, false);