[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>
This commit is contained in:
parent
8c4b2cf9af
commit
b89b7ea05a
|
@ -246,9 +246,9 @@ pci_get_subsys(unsigned int vendor, unsigned int device,
|
|||
}
|
||||
dev = NULL;
|
||||
exit:
|
||||
pci_dev_put(from);
|
||||
dev = pci_dev_get(dev);
|
||||
spin_unlock(&pci_bus_lock);
|
||||
pci_dev_put(from);
|
||||
return dev;
|
||||
}
|
||||
|
||||
|
@ -339,9 +339,9 @@ struct pci_dev *pci_get_class(unsigned int class, struct pci_dev *from)
|
|||
}
|
||||
dev = NULL;
|
||||
exit:
|
||||
pci_dev_put(from);
|
||||
dev = pci_dev_get(dev);
|
||||
spin_unlock(&pci_bus_lock);
|
||||
pci_dev_put(from);
|
||||
return dev;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue