linux/drivers/pci/host
Arnd Bergmann 9f55cf5654 PCI: hisi: Fix deferred probing
The hisi_pcie_probe() function is incorrectly marked as __init, as Kconfig
tells us:

  WARNING: drivers/pci/host/built-in.o(.data+0x7780): Section mismatch in reference from the variable hisi_pcie_driver to the function .init.text:hisi_pcie_probe()

If the probe for this device gets deferred past the point where __init
functions are removed, or the device is unbound and then reattached to the
driver, we branch into uninitialized memory, which is bad.

Remove the __init annotation from hisi_pcie_probe() and
hisi_add_pcie_port().

Fixes: 500a1d9a43 ("PCI: hisi: Add HiSilicon SoC Hip05 PCIe driver")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Hanjun Guo <hanjun.guo@linaro.org>
Acked-by: Zhou Wang <wangzhou1@hisilicon.com>
2015-11-24 15:38:07 -06:00
..
Kconfig Merge branch 'pci/host-layerscape' into next 2015-11-03 08:39:32 -06:00
Makefile Merge branch 'pci/host-hisi' into next 2015-11-03 08:39:19 -06:00
pci-dra7xx.c Revert "PCI: designware: Program ATU with untranslated address" 2015-11-02 14:49:18 -06:00
pci-exynos.c PCI: designware: Simplify dw_pcie_cfg_read/write() interfaces 2015-11-02 14:48:45 -06:00
pci-host-generic.c PCI: generic: Fix address window calculation for non-zero starting bus 2015-10-09 18:18:35 -05:00
pci-imx6.c PCI: imx6: Add PCIE_PHY_RX_ASIC_OUT_VALID definition 2015-09-24 17:12:57 -05:00
pci-keystone-dw.c PCI: designware: Use of_pci_get_host_bridge_resources() to parse DT 2015-11-02 14:49:18 -06:00
pci-keystone.c genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
pci-keystone.h PCI: designware: Make get_msi_addr() return phys_addr_t, not u32 2015-09-18 13:58:35 -05:00
pci-layerscape.c PCI: layerscape: Add ls_pcie_msi_host_init() 2015-11-02 15:38:39 -06:00
pci-mvebu.c PCI: mvebu: Remove code restricting accesses to slot 0 2015-10-09 11:23:37 -05:00
pci-rcar-gen2.c PCI: rcar: Add R8A7794 support 2015-09-24 17:06:32 -05:00
pci-tegra.c PCI: tegra: Wrap static pgprot_t initializer with __pgprot() 2015-09-14 11:43:01 -05:00
pci-versatile.c Merge branches 'pci/host-exynos', 'pci/host-iproc', 'pci/host-keystone', 'pci/host-layerscape', 'pci/host-mvebu', 'pci/host-rcar' and 'pci/host-versatile' into next 2015-04-10 08:26:54 -05:00
pci-xgene-msi.c irqdomain/msi: Use fwnode instead of of_node 2015-10-13 19:01:25 +02:00
pci-xgene.c PCI/MSI: xgene: Remove msi_controller assignment 2015-09-25 18:24:28 -05:00
pcie-altera-msi.c PCI changes for the v4.4 merge window: 2015-11-06 11:29:53 -08:00
pcie-altera.c PCI: altera: Add Altera PCIe host controller driver 2015-10-23 13:24:56 -05:00
pcie-designware.c PCI: designware: Remove incorrect io_base assignment 2015-11-24 14:06:41 -06:00
pcie-designware.h PCI: designware: Make driver arch-agnostic 2015-11-02 14:49:18 -06:00
pcie-hisi.c PCI: hisi: Fix deferred probing 2015-11-24 15:38:07 -06:00
pcie-iproc-bcma.c PCI: iproc: Free resource list after registration 2015-05-27 18:34:05 -05:00
pcie-iproc-platform.c PCI: iproc: Add outbound mapping support 2015-10-16 08:18:24 -05:00
pcie-iproc.c PCI: iproc: Fix header comment "Corporation" misspelling 2015-10-22 13:53:13 -05:00
pcie-iproc.h PCI: iproc: Add outbound mapping support 2015-10-16 08:18:24 -05:00
pcie-rcar.c PCI: rcar: Fix I/O offset for multiple host bridges 2015-10-30 08:23:15 -05:00
pcie-spear13xx.c PCI: designware: Simplify dw_pcie_cfg_read/write() interfaces 2015-11-02 14:48:45 -06:00
pcie-xilinx.c Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2015-09-01 14:33:35 -07:00