aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2018-06-29 10:22:46 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2018-06-29 10:22:46 -0400
commitcd993fc4316d5268f42ab991e9a2c8a6e6cd8dc1 (patch)
treedb7e48b33c10938abe7d91baf248a23f62a8da6b
parent5e4e8c55c9fca8c5e06befc16d56800773fb3128 (diff)
parent925d31668d5b6c9849c50167f31f9b5cf9eec892 (diff)
Merge tag 'pci-v4.18-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci
Pull PCI fixes from Bjorn Helgaas: - Fix crash caused by endpoint library initialization order change (Alan Douglas) - Fix shpchp NULL pointer dereference regression on non-ACPI platforms (Bjorn Helgaas) - Move PCI_DOMAINS selection to fix build regression (Lorenzo Pieralisi) * tag 'pci-v4.18-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: PCI: controller: Move PCI_DOMAINS selection to arch Kconfig PCI: Initialize endpoint library before controllers PCI: shpchp: Manage SHPC unconditionally on non-ACPI systems
-rw-r--r--arch/arm/Kconfig8
-rw-r--r--arch/arm/mach-bcm/Kconfig1
-rw-r--r--arch/arm/mach-socfpga/Kconfig1
-rw-r--r--drivers/pci/Makefile6
-rw-r--r--drivers/pci/controller/Kconfig3
-rw-r--r--drivers/pci/hotplug/acpi_pcihp.c10
6 files changed, 21 insertions, 8 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 54eeb8d00bc6..843edfd000be 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1245,8 +1245,14 @@ config PCI
1245 VESA. If you have PCI, say Y, otherwise N. 1245 VESA. If you have PCI, say Y, otherwise N.
1246 1246
1247config PCI_DOMAINS 1247config PCI_DOMAINS
1248 bool 1248 bool "Support for multiple PCI domains"
1249 depends on PCI 1249 depends on PCI
1250 help
1251 Enable PCI domains kernel management. Say Y if your machine
1252 has a PCI bus hierarchy that requires more than one PCI
1253 domain (aka segment) to be correctly managed. Say N otherwise.
1254
1255 If you don't know what to do here, say N.
1250 1256
1251config PCI_DOMAINS_GENERIC 1257config PCI_DOMAINS_GENERIC
1252 def_bool PCI_DOMAINS 1258 def_bool PCI_DOMAINS
diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-bcm/Kconfig
index c46a728df44e..25aac6ee2ab1 100644
--- a/arch/arm/mach-bcm/Kconfig
+++ b/arch/arm/mach-bcm/Kconfig
@@ -20,6 +20,7 @@ config ARCH_BCM_IPROC
20 select GPIOLIB 20 select GPIOLIB
21 select ARM_AMBA 21 select ARM_AMBA
22 select PINCTRL 22 select PINCTRL
23 select PCI_DOMAINS if PCI
23 help 24 help
24 This enables support for systems based on Broadcom IPROC architected SoCs. 25 This enables support for systems based on Broadcom IPROC architected SoCs.
25 The IPROC complex contains one or more ARM CPUs along with common 26 The IPROC complex contains one or more ARM CPUs along with common
diff --git a/arch/arm/mach-socfpga/Kconfig b/arch/arm/mach-socfpga/Kconfig
index d0f62eacf59d..4adb901dd5eb 100644
--- a/arch/arm/mach-socfpga/Kconfig
+++ b/arch/arm/mach-socfpga/Kconfig
@@ -10,6 +10,7 @@ menuconfig ARCH_SOCFPGA
10 select HAVE_ARM_SCU 10 select HAVE_ARM_SCU
11 select HAVE_ARM_TWD if SMP 11 select HAVE_ARM_TWD if SMP
12 select MFD_SYSCON 12 select MFD_SYSCON
13 select PCI_DOMAINS if PCI
13 14
14if ARCH_SOCFPGA 15if ARCH_SOCFPGA
15config SOCFPGA_SUSPEND 16config SOCFPGA_SUSPEND
diff --git a/drivers/pci/Makefile b/drivers/pci/Makefile
index 535201984b8b..1b2cfe51e8d7 100644
--- a/drivers/pci/Makefile
+++ b/drivers/pci/Makefile
@@ -28,10 +28,10 @@ obj-$(CONFIG_PCI_PF_STUB) += pci-pf-stub.o
28obj-$(CONFIG_PCI_ECAM) += ecam.o 28obj-$(CONFIG_PCI_ECAM) += ecam.o
29obj-$(CONFIG_XEN_PCIDEV_FRONTEND) += xen-pcifront.o 29obj-$(CONFIG_XEN_PCIDEV_FRONTEND) += xen-pcifront.o
30 30
31obj-y += controller/
32obj-y += switch/
33
34# Endpoint library must be initialized before its users 31# Endpoint library must be initialized before its users
35obj-$(CONFIG_PCI_ENDPOINT) += endpoint/ 32obj-$(CONFIG_PCI_ENDPOINT) += endpoint/
36 33
34obj-y += controller/
35obj-y += switch/
36
37ccflags-$(CONFIG_PCI_DEBUG) := -DDEBUG 37ccflags-$(CONFIG_PCI_DEBUG) := -DDEBUG
diff --git a/drivers/pci/controller/Kconfig b/drivers/pci/controller/Kconfig
index 18fa09b3ac8f..cc9fa02d32a0 100644
--- a/drivers/pci/controller/Kconfig
+++ b/drivers/pci/controller/Kconfig
@@ -96,7 +96,6 @@ config PCI_HOST_GENERIC
96 depends on OF 96 depends on OF
97 select PCI_HOST_COMMON 97 select PCI_HOST_COMMON
98 select IRQ_DOMAIN 98 select IRQ_DOMAIN
99 select PCI_DOMAINS
100 help 99 help
101 Say Y here if you want to support a simple generic PCI host 100 Say Y here if you want to support a simple generic PCI host
102 controller, such as the one emulated by kvmtool. 101 controller, such as the one emulated by kvmtool.
@@ -138,7 +137,6 @@ config PCI_VERSATILE
138 137
139config PCIE_IPROC 138config PCIE_IPROC
140 tristate 139 tristate
141 select PCI_DOMAINS
142 help 140 help
143 This enables the iProc PCIe core controller support for Broadcom's 141 This enables the iProc PCIe core controller support for Broadcom's
144 iProc family of SoCs. An appropriate bus interface driver needs 142 iProc family of SoCs. An appropriate bus interface driver needs
@@ -176,7 +174,6 @@ config PCIE_IPROC_MSI
176config PCIE_ALTERA 174config PCIE_ALTERA
177 bool "Altera PCIe controller" 175 bool "Altera PCIe controller"
178 depends on ARM || NIOS2 || COMPILE_TEST 176 depends on ARM || NIOS2 || COMPILE_TEST
179 select PCI_DOMAINS
180 help 177 help
181 Say Y here if you want to enable PCIe controller support on Altera 178 Say Y here if you want to enable PCIe controller support on Altera
182 FPGA. 179 FPGA.
diff --git a/drivers/pci/hotplug/acpi_pcihp.c b/drivers/pci/hotplug/acpi_pcihp.c
index 3979f89b250a..5bd6c1573295 100644
--- a/drivers/pci/hotplug/acpi_pcihp.c
+++ b/drivers/pci/hotplug/acpi_pcihp.c
@@ -7,7 +7,6 @@
7 * All rights reserved. 7 * All rights reserved.
8 * 8 *
9 * Send feedback to <kristen.c.accardi@intel.com> 9 * Send feedback to <kristen.c.accardi@intel.com>
10 *
11 */ 10 */
12 11
13#include <linux/module.h> 12#include <linux/module.h>
@@ -87,8 +86,17 @@ int acpi_get_hp_hw_control_from_firmware(struct pci_dev *pdev)
87 return 0; 86 return 0;
88 87
89 /* If _OSC exists, we should not evaluate OSHP */ 88 /* If _OSC exists, we should not evaluate OSHP */
89
90 /*
91 * If there's no ACPI host bridge (i.e., ACPI support is compiled
92 * into the kernel but the hardware platform doesn't support ACPI),
93 * there's nothing to do here.
94 */
90 host = pci_find_host_bridge(pdev->bus); 95 host = pci_find_host_bridge(pdev->bus);
91 root = acpi_pci_find_root(ACPI_HANDLE(&host->dev)); 96 root = acpi_pci_find_root(ACPI_HANDLE(&host->dev));
97 if (!root)
98 return 0;
99
92 if (root->osc_support_set) 100 if (root->osc_support_set)
93 goto no_control; 101 goto no_control;
94 102