aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pci
diff options
context:
space:
mode:
authorAlan Stern <stern@rowland.harvard.edu>2006-02-23 17:12:51 -0500
committerGreg Kroah-Hartman <gregkh@suse.de>2006-03-23 17:35:14 -0500
commitb89b7ea05a8f71426bd36ed12e6cd73179d0f720 (patch)
treedb1212d7f74c7d1e98614fb593bcfb8801f5e8b0 /drivers/pci
parent8c4b2cf9af9b4ecc29d4f0ec4ecc8e94dc4432d7 (diff)
[PATCH] PCI: Move pci_dev_put outside a spinlock
This patch (as659) fixes a might_sleep problem in the PCI core, by moving a call to pci_dev_put() outside the scope of a spinlock. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/pci')
-rw-r--r--drivers/pci/search.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/pci/search.c b/drivers/pci/search.c
index 05fa91a31c62..ce7dd6e7be60 100644
--- a/drivers/pci/search.c
+++ b/drivers/pci/search.c
@@ -246,9 +246,9 @@ pci_get_subsys(unsigned int vendor, unsigned int device,
246 } 246 }
247 dev = NULL; 247 dev = NULL;
248exit: 248exit:
249 pci_dev_put(from);
250 dev = pci_dev_get(dev); 249 dev = pci_dev_get(dev);
251 spin_unlock(&pci_bus_lock); 250 spin_unlock(&pci_bus_lock);
251 pci_dev_put(from);
252 return dev; 252 return dev;
253} 253}
254 254
@@ -339,9 +339,9 @@ struct pci_dev *pci_get_class(unsigned int class, struct pci_dev *from)
339 } 339 }
340 dev = NULL; 340 dev = NULL;
341exit: 341exit:
342 pci_dev_put(from);
343 dev = pci_dev_get(dev); 342 dev = pci_dev_get(dev);
344 spin_unlock(&pci_bus_lock); 343 spin_unlock(&pci_bus_lock);
344 pci_dev_put(from);
345 return dev; 345 return dev;
346} 346}
347 347