]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
powerpc/eeh: Handle multiple EEH errors
authorGavin Shan <shangw@linux.vnet.ibm.com>
Wed, 15 Jan 2014 05:16:11 +0000 (13:16 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 31 Mar 2014 17:05:15 +0000 (10:05 -0700)
commit1a20d22f3e020c9916ae42fba1a05cc3901d6562
tree12b8ca706fb79d7b020fe8cb3333661ca2a6d4a5
parentf0aa283bec6968b57f457071a77d04513a8cebab
powerpc/eeh: Handle multiple EEH errors

commit 7e4e7867b1e551b7b8f326da3604c47332972bc6 upstream.

For one PCI error relevant OPAL event, we possibly have multiple
EEH errors for that. For example, multiple frozen PEs detected on
different PHBs. Unfortunately, we didn't cover the case. The patch
enumarates the return value from eeh_ops::next_error() and change
eeh_handle_special_event() and eeh_ops::next_error() to handle all
existing EEH errors.

As Ben pointed out, we needn't list_for_each_entry_safe() since we
are not deleting any PHB from the hose_list and the EEH serialized
lock should be held while purging EEH events. The patch covers those
suggestions as well.

Signed-off-by: Gavin Shan <shangw@linux.vnet.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/powerpc/include/asm/eeh.h
arch/powerpc/kernel/eeh_driver.c
arch/powerpc/platforms/powernv/eeh-ioda.c