On Fri, Apr 19, 2019 at 09:46:39PM +0800, YueHaibing wrote: > On 2019/4/19 21:31, Bjorn Helgaas wrote: > > On Fri, Apr 19, 2019 at 10:58:55AM +0800, Yue Haibing wrote: > >> From: YueHaibing <yuehaibing@xxxxxxxxxx> > >> > >> During randconfig builds, I occasionally run into an invalid configuration > >> > >> drivers/pci/controller/dwc/pci-keystone.o: In function `ks_pcie_link_up': > >> pci-keystone.c:(.text+0x90): undefined reference to `__dw_pcie_read_dbi' > >> pci-keystone.c:(.text+0x90): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `__dw_pcie_read_dbi' > >> drivers/pci/controller/dwc/pci-keystone.o: In function `ks_pcie_v3_65_scan_bus': > >> pci-keystone.c:(.text+0x4f0): undefined reference to `__dw_pcie_write_dbi' > >> pci-keystone.c:(.text+0x4f0): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `__dw_pcie_write_dbi' > >> > >> while CONFIG_PCI_KEYSTONE is selected but CONFIG_PCIE_DW > >> is not set, the building failed like this. This patch > >> selects PCIE_DW to fix it. > >> > >> Reported-by: Hulk Robot <hulkci@xxxxxxxxxx> > >> Fixes: 5709114f0a97 ("PCI: keystone: Add support for PCIe EP in AM654x Platforms") > >> Signed-off-by: YueHaibing <yuehaibing@xxxxxxxxxx> > >> --- > >> drivers/pci/controller/dwc/Kconfig | 1 + > >> 1 file changed, 1 insertion(+) > >> > >> diff --git a/drivers/pci/controller/dwc/Kconfig b/drivers/pci/controller/dwc/Kconfig > >> index b450ad2..641fa0f 100644 > >> --- a/drivers/pci/controller/dwc/Kconfig > >> +++ b/drivers/pci/controller/dwc/Kconfig > >> @@ -105,6 +105,7 @@ config PCIE_SPEAR13XX > >> config PCI_KEYSTONE > >> bool "TI Keystone PCIe controller" > >> depends on ARCH_KEYSTONE || ARCH_K3 || ((ARM || ARM64) && COMPILE_TEST) > >> + select PCIE_DW > > > > What version are you building? In v5.0, PCI_KEYSTONE already selects > > PCIE_DW_HOST: > > > > $ git grep -A4 PCI_KEYSTONE v5.0:drivers/pci/controller/dwc/Kconfig | cat > > v5.0:drivers/pci/controller/dwc/Kconfig:config PCI_KEYSTONE > > v5.0:drivers/pci/controller/dwc/Kconfig- bool "TI Keystone PCIe controller" > > v5.0:drivers/pci/controller/dwc/Kconfig- depends on ARCH_KEYSTONE || (ARM && COMPILE_TEST) > > v5.0:drivers/pci/controller/dwc/Kconfig- depends on PCI_MSI_IRQ_DOMAIN > > v5.0:drivers/pci/controller/dwc/Kconfig- select PCIE_DW_HOST > > 08:30:42 ~/history (master)$ > > This patch based on linux-next: > > https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=5709114f0a97 Oh, yep, looks like this was broken by ad5ca801bd7e ("PCI: keystone: Add support for PCIe EP in AM654x Platforms"), which added PCI_KEYSTONE_HOST and PCI_KEYSTONE_EP. Those select PCIE_DW_HOST and PCIE_DW_EP, respectively, which in turn select PCIE_DW. But I guess it's possible to enable PCI_KEYSTONE by itself without either PCI_KEYSTONE_HOST or PCI_KEYSTONE_EP. I'm not sure what that would mean, but we would still try to build pci-keystone.o I'm hoping we can amend that commit before the merge window. Bjorn