aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThierry Reding2014-11-12 18:26:48 -0700
committerTom Rini2014-11-23 06:49:01 -0500
commit042b83d4c502d17db40f1fa4f6d9b6cb86c653d2 (patch)
tree86cbfb791811558f5834e5570dec666e9bc8fe29
parent1eebd14b79024f34925b79cb264242fac1bdc1b9 (diff)
pci: Abort early if bus does not exist
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>
-rw-r--r--common/cmd_pci.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/common/cmd_pci.c b/common/cmd_pci.c
index a1ba42e2f3a..5a6048c9260 100644
--- a/common/cmd_pci.c
+++ b/common/cmd_pci.c
@@ -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) {