diff options
author | Yu Zhao <yu.zhao@intel.com> | 2009-06-26 02:04:46 -0400 |
---|---|---|
committer | Jesse Barnes <jbarnes@virtuousgeek.org> | 2009-06-29 15:13:13 -0400 |
commit | 654b75e044119bf8e7d773bce41ea039281bbfbe (patch) | |
tree | 5c749390a41cbbd59617d5dd1cee5160392b5feb /drivers/pci | |
parent | 977badb2f385db14d8ba3fcf02fbd7ead8e63d0f (diff) |
PCI: check if bus has a proper bridge device before triggering SBR
For devices attached to the root bus, we can't trigger Secondary Bus
Reset because there is no bridge device associated with the bus. So
need to check bus->self again NULL first before using it.
Reviewed-by: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
Signed-off-by: Yu Zhao <yu.zhao@intel.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Diffstat (limited to 'drivers/pci')
-rw-r--r-- | drivers/pci/pci.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index 6c93af5ced18..d5d6f5667d83 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c | |||
@@ -2171,7 +2171,7 @@ static int pci_parent_bus_reset(struct pci_dev *dev, int probe) | |||
2171 | u16 ctrl; | 2171 | u16 ctrl; |
2172 | struct pci_dev *pdev; | 2172 | struct pci_dev *pdev; |
2173 | 2173 | ||
2174 | if (dev->subordinate) | 2174 | if (pci_is_root_bus(dev->bus) || dev->subordinate || !dev->bus->self) |
2175 | return -ENOTTY; | 2175 | return -ENOTTY; |
2176 | 2176 | ||
2177 | list_for_each_entry(pdev, &dev->bus->devices, bus_list) | 2177 | list_for_each_entry(pdev, &dev->bus->devices, bus_list) |