linux/arch
Gavin Shan 05ba75f848 powerpc/eeh: Fix stale cached primary bus
When PE is created, its primary bus is cached to pe->bus. At later
point, the cached primary bus is returned from eeh_pe_bus_get().
However, we could get stale cached primary bus and run into kernel
crash in one case: full hotplug as part of fenced PHB error recovery
releases all PCI busses under the PHB at unplugging time and recreate
them at plugging time. pe->bus is still dereferencing the PCI bus
that was released.

This adds another PE flag (EEH_PE_PRI_BUS) to represent the validity
of pe->bus. pe->bus is updated when its first child EEH device is
online and the flag is set. Before unplugging in full hotplug for
error recovery, the flag is cleared.

Fixes: 8cdb2833 ("powerpc/eeh: Trace PCI bus from PE")
Cc: stable@vger.kernel.org #v3.11+
Reported-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com>
Reported-by: Pradipta Ghosh <pradghos@in.ibm.com>
Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
Tested-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2016-02-15 21:10:04 +11:00
..
alpha arch/*/include/uapi/asm/mman.h: : let MADV_FREE have same value for all architectures 2016-01-15 17:56:32 -08:00
arc Kconfig: remove HAVE_LATENCYTOP_SUPPORT 2016-01-16 11:17:23 -08:00
arm virtio: barrier rework+fixes 2016-01-18 16:44:24 -08:00
arm64 virtio: barrier rework+fixes 2016-01-18 16:44:24 -08:00
avr32 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/egtvedt/linux-avr32 2016-01-18 12:50:55 -08:00
blackfin virtio: barrier rework+fixes 2016-01-18 16:44:24 -08:00
c6x Merge branch 'for-linux-next' of git://linux-c6x.org/git/projects/linux-c6x-upstreaming 2016-01-12 13:00:16 -08:00
cris cris: nand: remove useless mtd->priv = chip assignments 2015-12-18 13:22:11 -08:00
frv frv: fix compiler warning from definition of __pmd() 2016-01-15 17:56:32 -08:00
h8300 h8300: Rename ctlr_out/in[bwl] to raw_read/write[bwl] 2015-12-15 10:12:03 +01:00
hexagon
ia64 virtio: barrier rework+fixes 2016-01-18 16:44:24 -08:00
m32r m32r: fix m32104ut_defconfig build fail 2016-01-14 16:00:49 -08:00
m68k Merge branch 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2016-01-12 17:11:47 -08:00
metag virtio: barrier rework+fixes 2016-01-18 16:44:24 -08:00
microblaze Kconfig: remove HAVE_LATENCYTOP_SUPPORT 2016-01-16 11:17:23 -08:00
mips virtio: barrier rework+fixes 2016-01-18 16:44:24 -08:00
mn10300 libnvdimm, pfn, pmem: allocate memmap array in persistent memory 2016-01-15 17:56:32 -08:00
nios2 nios2: fix cache coherency 2015-11-26 22:25:58 +08:00
openrisc
parisc Merge branch 'parisc-4.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux 2016-01-17 13:20:54 -08:00
powerpc powerpc/eeh: Fix stale cached primary bus 2016-02-15 21:10:04 +11:00
s390 virtio: barrier rework+fixes 2016-01-18 16:44:24 -08:00
score
sh virtio: barrier rework+fixes 2016-01-18 16:44:24 -08:00
sparc virtio: barrier rework+fixes 2016-01-18 16:44:24 -08:00
tile virtio: barrier rework+fixes 2016-01-18 16:44:24 -08:00
um um: kill pfn_t 2016-01-15 17:56:32 -08:00
unicore32 Kconfig: remove HAVE_LATENCYTOP_SUPPORT 2016-01-16 11:17:23 -08:00
x86 platform-drivers-x86 for 4.5-1 2016-01-19 17:54:15 -08:00
xtensa virtio: barrier rework+fixes 2016-01-18 16:44:24 -08:00
.gitignore
Kconfig mm: mmap: add new /proc tunable for mmap_base ASLR 2016-01-14 16:00:49 -08:00