pci: Abort early if bus does not exist
authorThierry Reding <treding@nvidia.com>
Thu, 13 Nov 2014 01:26:48 +0000 (18:26 -0700)
committerTom Rini <trini@ti.com>
Sun, 23 Nov 2014 11:49:01 +0000 (06:49 -0500)
When listing the devices on a PCI bus, the current code will blindly try
to access all devices. Internally this causes pci_bus_to_hose() to be
repeatedly called and output an error message every time. Prevent this
by calling pci_bus_to_hose() once and abort early if no bus was found.

Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Simon Glass <sjg@chromium.org>
common/cmd_pci.c

index a1ba42e2f3a2c3a4abc625af674a4599af451f38..5a6048c9260476300d8ab79ca1ef6cb8efa7cfb6 100644 (file)
@@ -42,12 +42,16 @@ void pci_header_show_brief(pci_dev_t dev);
  */
 void pciinfo(int BusNum, int ShortPCIListing)
 {
+       struct pci_controller *hose = pci_bus_to_hose(BusNum);
        int Device;
        int Function;
        unsigned char HeaderType;
        unsigned short VendorID;
        pci_dev_t dev;
 
+       if (!hose)
+               return;
+
        printf("Scanning PCI devices on bus %d\n", BusNum);
 
        if (ShortPCIListing) {