Merge branch 'bugzilla-14129' into release
authorLen Brown <len.brown@intel.com>
Thu, 15 Oct 2009 04:45:37 +0000 (00:45 -0400)
committerLen Brown <len.brown@intel.com>
Thu, 15 Oct 2009 04:45:37 +0000 (00:45 -0400)
drivers/acpi/pci_root.c

index 31122214e0ec68c92b7da6020789fcb61daed48e..1af808171d4682be716b0e7613980ed0c3fe8dc8 100644 (file)
@@ -389,6 +389,17 @@ struct pci_dev *acpi_get_pci_dev(acpi_handle handle)
 
                pbus = pdev->subordinate;
                pci_dev_put(pdev);
+
+               /*
+                * This function may be called for a non-PCI device that has a
+                * PCI parent (eg. a disk under a PCI SATA controller).  In that
+                * case pdev->subordinate will be NULL for the parent.
+                */
+               if (!pbus) {
+                       dev_dbg(&pdev->dev, "Not a PCI-to-PCI bridge\n");
+                       pdev = NULL;
+                       break;
+               }
        }
 out:
        list_for_each_entry_safe(node, tmp, &device_list, node)