linux/arch/powerpc
Daniel Axtens e642d11bdb powerpc/eeh: Probe after unbalanced kref check
In the complete hotplug case, EEH PEs are supposed to be released
and set to NULL. Normally, this is done by eeh_remove_device(),
which is called from pcibios_release_device().

However, if something is holding a kref to the device, it will not
be released, and the PE will remain. eeh_add_device_late() has
a check for this which will explictly destroy the PE in this case.

This check in eeh_add_device_late() occurs after a call to
eeh_ops->probe(). On PowerNV, probe is a pointer to pnv_eeh_probe(),
which will exit without probing if there is an existing PE.

This means that on PowerNV, devices with outstanding krefs will not
be rediscovered by EEH correctly after a complete hotplug. This is
affecting CXL (CAPI) devices in the field.

Put the probe after the kref check so that the PE is destroyed
and affected devices are correctly rediscovered by EEH.

Fixes: d91dafc02f ("powerpc/eeh: Delay probing EEH device during hotplug")
Cc: stable@vger.kernel.org
Cc: Gavin Shan <gwshan@linux.vnet.ibm.com>
Signed-off-by: Daniel Axtens <dja@axtens.net>
Acked-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2015-08-14 21:31:49 +10:00
..
boot Devicetree changes for v4.2 2015-07-01 19:40:18 -07:00
configs Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/scottwood/linux into next 2015-06-19 17:23:48 +10:00
crypto crypto: powerpc/md5 - use md5 IV MD5_HX instead of their raw value 2015-05-18 12:20:20 +08:00
include powerpc: Add an inline function to update POWER8 HID0 2015-08-14 15:58:28 +10:00
kernel powerpc/eeh: Probe after unbalanced kref check 2015-08-14 21:31:49 +10:00
kvm The bulk of the changes here is for x86. And for once it's not 2015-06-24 09:36:49 -07:00
lib powerpc updates for 4.2 2015-06-24 08:46:32 -07:00
math-emu
mm powerpc/slb: Add documentation on runtime patching of SLB encoding 2015-08-12 15:04:52 +10:00
net ppc: bpf: Add SKF_AD_CPU for ppc32 2015-02-20 15:19:43 -05:00
oprofile powerpc: Remove mtmsrd(), use existing mtmsr() 2015-07-13 15:47:28 +10:00
perf powerpc/perf: Change type of the bhrb_users variable 2015-07-27 14:31:44 +10:00
platforms powerpc: Add an inline function to update POWER8 HID0 2015-08-14 15:58:28 +10:00
sysdev powerpc/4xx: Fix return value check in hsta_msi_probe() 2015-08-06 16:33:46 +10:00
xmon powerpc/xmon: Drop the valid variable completely in dump_segments() 2015-08-12 15:05:47 +10:00
Kconfig powerpc/kernel: Enable seccomp filter 2015-07-30 14:34:44 +10:00
Kconfig.debug powerpc: Make STRICT_MM_TYPECHECKS a config option 2015-05-11 19:53:59 +10:00
Makefile powerpc: Don't use gcc specific options on clang 2015-06-11 17:33:05 +10:00
relocs_check.sh powerpc: Convert relocs_check to a shell script using grep 2015-03-23 14:47:39 +11:00