diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-08-21 14:18:10 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-08-21 14:18:10 -0400 |
commit | e45fc85a2f371f388ff3804271375a1aedbe3744 (patch) | |
tree | 15092167edd99476f3b867ee8b2255709c10cb21 | |
parent | 00f76410461fe7abdd2e579ca21e4818f7be0843 (diff) | |
parent | 45ea2a5fed6dacb9bb0558d8b21eacc1c45d5bb4 (diff) |
Merge tag 'pci-v4.2-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci
Pull PCI fixes from Bjorn Helgaas:
"These are fixes for ASPM-related NULL pointer dereference crashes on
Sparc and PowerPC and 64-bit PCI address-related HPMC crashes on
PA-RISC. These are both caused by things we merged in the v4.2 merge
window. Details:
Resource management
- Don't use 64-bit bus addresses on PA-RISC
Miscellaneous
- Tolerate hierarchies with no Root Port"
* tag 'pci-v4.2-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
PCI: Don't use 64-bit bus addresses on PA-RISC
PCI: Tolerate hierarchies with no Root Port
-rw-r--r-- | drivers/pci/Kconfig | 2 | ||||
-rw-r--r-- | drivers/pci/probe.c | 7 |
2 files changed, 7 insertions, 2 deletions
diff --git a/drivers/pci/Kconfig b/drivers/pci/Kconfig index 73de4efcbe6e..944f50015ed0 100644 --- a/drivers/pci/Kconfig +++ b/drivers/pci/Kconfig | |||
@@ -2,7 +2,7 @@ | |||
2 | # PCI configuration | 2 | # PCI configuration |
3 | # | 3 | # |
4 | config PCI_BUS_ADDR_T_64BIT | 4 | config PCI_BUS_ADDR_T_64BIT |
5 | def_bool y if (ARCH_DMA_ADDR_T_64BIT || 64BIT) | 5 | def_bool y if (ARCH_DMA_ADDR_T_64BIT || (64BIT && !PARISC)) |
6 | depends on PCI | 6 | depends on PCI |
7 | 7 | ||
8 | config PCI_MSI | 8 | config PCI_MSI |
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c index cefd636681b6..b978bbfe044c 100644 --- a/drivers/pci/probe.c +++ b/drivers/pci/probe.c | |||
@@ -997,7 +997,12 @@ void set_pcie_port_type(struct pci_dev *pdev) | |||
997 | else if (type == PCI_EXP_TYPE_UPSTREAM || | 997 | else if (type == PCI_EXP_TYPE_UPSTREAM || |
998 | type == PCI_EXP_TYPE_DOWNSTREAM) { | 998 | type == PCI_EXP_TYPE_DOWNSTREAM) { |
999 | parent = pci_upstream_bridge(pdev); | 999 | parent = pci_upstream_bridge(pdev); |
1000 | if (!parent->has_secondary_link) | 1000 | |
1001 | /* | ||
1002 | * Usually there's an upstream device (Root Port or Switch | ||
1003 | * Downstream Port), but we can't assume one exists. | ||
1004 | */ | ||
1005 | if (parent && !parent->has_secondary_link) | ||
1001 | pdev->has_secondary_link = 1; | 1006 | pdev->has_secondary_link = 1; |
1002 | } | 1007 | } |
1003 | } | 1008 | } |