diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2018-06-29 10:22:46 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2018-06-29 10:22:46 -0400 |
| commit | cd993fc4316d5268f42ab991e9a2c8a6e6cd8dc1 (patch) | |
| tree | db7e48b33c10938abe7d91baf248a23f62a8da6b | |
| parent | 5e4e8c55c9fca8c5e06befc16d56800773fb3128 (diff) | |
| parent | 925d31668d5b6c9849c50167f31f9b5cf9eec892 (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/Kconfig | 8 | ||||
| -rw-r--r-- | arch/arm/mach-bcm/Kconfig | 1 | ||||
| -rw-r--r-- | arch/arm/mach-socfpga/Kconfig | 1 | ||||
| -rw-r--r-- | drivers/pci/Makefile | 6 | ||||
| -rw-r--r-- | drivers/pci/controller/Kconfig | 3 | ||||
| -rw-r--r-- | drivers/pci/hotplug/acpi_pcihp.c | 10 |
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 | ||
| 1247 | config PCI_DOMAINS | 1247 | config 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 | ||
| 1251 | config PCI_DOMAINS_GENERIC | 1257 | config 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 | ||
| 14 | if ARCH_SOCFPGA | 15 | if ARCH_SOCFPGA |
| 15 | config SOCFPGA_SUSPEND | 16 | config 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 | |||
| 28 | obj-$(CONFIG_PCI_ECAM) += ecam.o | 28 | obj-$(CONFIG_PCI_ECAM) += ecam.o |
| 29 | obj-$(CONFIG_XEN_PCIDEV_FRONTEND) += xen-pcifront.o | 29 | obj-$(CONFIG_XEN_PCIDEV_FRONTEND) += xen-pcifront.o |
| 30 | 30 | ||
| 31 | obj-y += controller/ | ||
| 32 | obj-y += switch/ | ||
| 33 | |||
| 34 | # Endpoint library must be initialized before its users | 31 | # Endpoint library must be initialized before its users |
| 35 | obj-$(CONFIG_PCI_ENDPOINT) += endpoint/ | 32 | obj-$(CONFIG_PCI_ENDPOINT) += endpoint/ |
| 36 | 33 | ||
| 34 | obj-y += controller/ | ||
| 35 | obj-y += switch/ | ||
| 36 | |||
| 37 | ccflags-$(CONFIG_PCI_DEBUG) := -DDEBUG | 37 | ccflags-$(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 | ||
| 139 | config PCIE_IPROC | 138 | config 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 | |||
| 176 | config PCIE_ALTERA | 174 | config 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 | ||
