diff options
author | Gavin Shan <[email protected]> | 2016-02-09 15:50:21 +1100 |
---|---|---|
committer | Michael Ellerman <[email protected]> | 2016-02-15 21:10:04 +1100 |
commit | 05ba75f848647135f063199dc0e9f40fee769724 (patch) | |
tree | d97694ef04ca093796032df20621732d229ec0f1 /tools/perf/scripts/python/call-graph-from-postgresql.py | |
parent | 126df08c52375817c237f38c3bcd01d78a60c090 (diff) |
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: [email protected] #v3.11+
Reported-by: Andrew Donnellan <[email protected]>
Reported-by: Pradipta Ghosh <[email protected]>
Signed-off-by: Gavin Shan <[email protected]>
Tested-by: Andrew Donnellan <[email protected]>
Signed-off-by: Michael Ellerman <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python/call-graph-from-postgresql.py')
0 files changed, 0 insertions, 0 deletions