When detecting EEH error on non-existing PE, including the reserved
one, the PE is simply unfrozen without dumping the PHB diag-data,
which is useful for locating the root cause of the EEH error. The
patch dumps the PHB diag-data when non-existing PE reports error.

Signed-off-by: Gavin Shan <gws...@linux.vnet.ibm.com>
---
 arch/powerpc/platforms/powernv/eeh-powernv.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/arch/powerpc/platforms/powernv/eeh-powernv.c 
b/arch/powerpc/platforms/powernv/eeh-powernv.c
index 9e001e1..bbcf81f 100644
--- a/arch/powerpc/platforms/powernv/eeh-powernv.c
+++ b/arch/powerpc/platforms/powernv/eeh-powernv.c
@@ -1394,11 +1394,19 @@ static int pnv_eeh_next_error(struct eeh_pe **pe)
                         */
                        if (pnv_eeh_get_pe(hose,
                                be64_to_cpu(frozen_pe_no), pe)) {
-                               /* Try best to clear it */
                                pr_info("EEH: Clear non-existing 
PHB#%x-PE#%llx\n",
                                        hose->global_number, 
be64_to_cpu(frozen_pe_no));
                                pr_info("EEH: PHB location: %s\n",
                                        eeh_pe_loc_get(phb_pe));
+
+                               /* Dump PHB diag-data */
+                               rc = opal_pci_get_phb_diag_data2(phb->opal_id,
+                                       phb->diag.blob, PNV_PCI_DIAG_BUF_SIZE);
+                               if (rc == OPAL_SUCCESS)
+                                       pnv_pci_dump_phb_diag_data(hose,
+                                                       phb->diag.blob);
+
+                               /* Try best to clear it */
                                opal_pci_eeh_freeze_clear(phb->opal_id,
                                        frozen_pe_no,
                                        OPAL_EEH_ACTION_CLEAR_FREEZE_ALL);
-- 
2.1.0

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to