linux/arch/powerpc/platforms
Benjamin Herrenschmidt db2173198b powerpc/powernv/pci: Work around races in PCI bridge enabling
The generic code is racy when multiple children of a PCI bridge try to
enable it simultaneously.

This leads to drivers trying to access a device through a
not-yet-enabled bridge, and this EEH errors under various
circumstances when using parallel driver probing.

There is work going on to fix that properly in the PCI core but it
will take some time.

x86 gets away with it because (outside of hotplug), the BIOS enables
all the bridges at boot time.

This patch does the same thing on powernv by enabling all bridges that
have child devices at boot time, thus avoiding subsequent races. It's
suitable for backporting to stable and distros, while the proper PCI
fix will probably be significantly more invasive.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: stable@vger.kernel.org
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2018-08-20 20:29:17 +10:00
..
4xx powerpc/4xx: Fix error return path in ppc4xx_msi_probe() 2018-08-03 20:08:20 +10:00
8xx powerpc/8xx: Remove RTC clock on 88x 2018-06-04 00:39:18 +10:00
40x License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
44x powerpc/44x/fsp2: Add irq error handlers 2017-12-11 13:03:34 +11:00
52xx powerpc/Makefiles: Convert ifeq to ifdef where possible 2018-08-08 00:32:36 +10:00
82xx License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
83xx powerpc: remove retired sbc834x support 2018-05-03 22:32:30 +10:00
85xx powerpc/platforms/85xx: fix t1042rdb_diu.c build errors & warning 2018-08-08 00:32:33 +10:00
86xx powerpc: Use pr_warn instead of pr_warning 2017-12-04 11:54:34 +11:00
512x powerpc: Use pr_warn instead of pr_warning 2017-12-04 11:54:34 +11:00
amigaone License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
cell powerpc/Makefiles: Convert ifeq to ifdef where possible 2018-08-08 00:32:36 +10:00
chrp chrp/nvram.c: add MODULE_LICENSE() 2018-07-19 14:38:46 +10:00
embedded6xx powerpc: wii: Remove outdated comment about memory fixups 2018-07-02 23:54:27 +10:00
maple powerpc: use time64_t in read_persistent_clock 2018-06-03 20:43:33 +10:00
pasemi powerpc/pasemi: Use pr_err/pr_warn... for kernel messages 2018-08-08 00:32:31 +10:00
powermac powerpc/powermac: Make some functions static 2018-08-10 22:12:37 +10:00
powernv powerpc/powernv/pci: Work around races in PCI bridge enabling 2018-08-20 20:29:17 +10:00
ps3 powerpc: remove unused to_tm() helper 2018-06-03 20:43:34 +10:00
pseries powerpc/pseries: Fix endianness while restoring of r3 in MCE handler. 2018-08-10 22:12:34 +10:00
fsl_uli1575.c of/irq: Refactor interrupt-map parsing 2013-10-24 11:43:04 +01:00
Kconfig powerpc/cell: Remove axonram driver 2018-01-28 17:00:36 +11:00
Kconfig.cputype powerpc: Allow CPU selection of e300core variants 2018-08-08 00:32:37 +10:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00