diff options
Diffstat (limited to 'drivers/acpi/pci_root.c')
| -rw-r--r-- | drivers/acpi/pci_root.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/acpi/pci_root.c b/drivers/acpi/pci_root.c index 31122214e0ec..1af808171d46 100644 --- a/drivers/acpi/pci_root.c +++ b/drivers/acpi/pci_root.c | |||
| @@ -389,6 +389,17 @@ struct pci_dev *acpi_get_pci_dev(acpi_handle handle) | |||
| 389 | 389 | ||
| 390 | pbus = pdev->subordinate; | 390 | pbus = pdev->subordinate; |
| 391 | pci_dev_put(pdev); | 391 | pci_dev_put(pdev); |
| 392 | |||
| 393 | /* | ||
| 394 | * This function may be called for a non-PCI device that has a | ||
| 395 | * PCI parent (eg. a disk under a PCI SATA controller). In that | ||
| 396 | * case pdev->subordinate will be NULL for the parent. | ||
| 397 | */ | ||
| 398 | if (!pbus) { | ||
| 399 | dev_dbg(&pdev->dev, "Not a PCI-to-PCI bridge\n"); | ||
| 400 | pdev = NULL; | ||
| 401 | break; | ||
| 402 | } | ||
| 392 | } | 403 | } |
| 393 | out: | 404 | out: |
| 394 | list_for_each_entry_safe(node, tmp, &device_list, node) | 405 | list_for_each_entry_safe(node, tmp, &device_list, node) |
