diff options
Diffstat (limited to 'drivers/pci')
-rw-r--r-- | drivers/pci/search.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/drivers/pci/search.c b/drivers/pci/search.c index 4edfc4731bd4..5af8bd538149 100644 --- a/drivers/pci/search.c +++ b/drivers/pci/search.c | |||
@@ -166,6 +166,7 @@ struct pci_dev *pci_find_device(unsigned int vendor, unsigned int device, | |||
166 | { | 166 | { |
167 | struct pci_dev *pdev; | 167 | struct pci_dev *pdev; |
168 | 168 | ||
169 | pci_dev_get(from); | ||
169 | pdev = pci_get_subsys(vendor, device, PCI_ANY_ID, PCI_ANY_ID, from); | 170 | pdev = pci_get_subsys(vendor, device, PCI_ANY_ID, PCI_ANY_ID, from); |
170 | pci_dev_put(pdev); | 171 | pci_dev_put(pdev); |
171 | return pdev; | 172 | return pdev; |
@@ -270,12 +271,8 @@ static struct pci_dev *pci_get_dev_by_id(const struct pci_device_id *id, | |||
270 | struct pci_dev *pdev = NULL; | 271 | struct pci_dev *pdev = NULL; |
271 | 272 | ||
272 | WARN_ON(in_interrupt()); | 273 | WARN_ON(in_interrupt()); |
273 | if (from) { | 274 | if (from) |
274 | /* FIXME | 275 | dev_start = &from->dev; |
275 | * take the cast off, when bus_find_device is made const. | ||
276 | */ | ||
277 | dev_start = (struct device *)&from->dev; | ||
278 | } | ||
279 | dev = bus_find_device(&pci_bus_type, dev_start, (void *)id, | 276 | dev = bus_find_device(&pci_bus_type, dev_start, (void *)id, |
280 | match_pci_dev_by_id); | 277 | match_pci_dev_by_id); |
281 | if (dev) | 278 | if (dev) |