diff options
author | Bjorn Helgaas <bhelgaas@google.com> | 2016-01-27 07:35:07 -0600 |
---|---|---|
committer | Bjorn Helgaas <bhelgaas@google.com> | 2016-02-05 14:56:57 -0600 |
commit | ab1a187bba5c4e5ed8aa6e7bb7dcd7cd7e065aef (patch) | |
tree | e724eb5be84d0c98fcbccc0c78b475bd0174350a /drivers/pci/bus.c | |
parent | 92e963f50fc74041b5e9e744c330dca48e04f08d (diff) | |
download | linux-ab1a187bba5c4e5ed8aa6e7bb7dcd7cd7e065aef.tar.gz linux-ab1a187bba5c4e5ed8aa6e7bb7dcd7cd7e065aef.tar.bz2 linux-ab1a187bba5c4e5ed8aa6e7bb7dcd7cd7e065aef.zip |
PCI: Check device_attach() return value always
Previously we checked the device_attach() return value only when
CONFIG_BUG=y. That caused this warning in builds where CONFIG_BUG is not
set:
drivers/pci/bus.c:237:6: warning: variable 'retval' set but not used [-Wunused-but-set-variable]
Check the return value of device_attach() always and clean up after
failure.
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'drivers/pci/bus.c')
-rw-r--r-- | drivers/pci/bus.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/pci/bus.c b/drivers/pci/bus.c index 89b3befc7155..f2187d491475 100644 --- a/drivers/pci/bus.c +++ b/drivers/pci/bus.c @@ -291,7 +291,12 @@ void pci_bus_add_device(struct pci_dev *dev) dev->match_driver = true; retval = device_attach(&dev->dev); - WARN_ON(retval < 0); + if (retval < 0) { + dev_warn(&dev->dev, "device attach failed (%d)\n", retval); + pci_proc_detach_device(dev); + pci_remove_sysfs_dev_files(dev); + return; + } dev->is_added = 1; } |