patch-2.4.25 linux-2.4.25/arch/ppc64/kernel/eeh.c
Next file: linux-2.4.25/arch/ppc64/kernel/entry.S
Previous file: linux-2.4.25/arch/ppc64/kernel/cputable.c
Back to the patch index
Back to the overall index
- Lines: 27
- Date:
2004-02-18 05:36:30.000000000 -0800
- Orig file:
linux-2.4.24/arch/ppc64/kernel/eeh.c
- Orig date:
2003-08-25 04:44:40.000000000 -0700
diff -urN linux-2.4.24/arch/ppc64/kernel/eeh.c linux-2.4.25/arch/ppc64/kernel/eeh.c
@@ -30,6 +30,7 @@
#include <asm/processor.h>
#include <asm/naca.h>
#include <asm/io.h>
+#include <asm/machdep.h>
#include "pci.h"
#define BUID_HI(buid) ((buid) >> 32)
@@ -114,6 +115,18 @@
ret = rtas_call(ibm_read_slot_reset_state, 3, 3, rets,
dn->eeh_config_addr, BUID_HI(dn->phb->buid), BUID_LO(dn->phb->buid));
if (ret == 0 && rets[1] == 1 && rets[0] >= 2) {
+ unsigned char slot_err_buf[RTAS_ERROR_LOG_MAX];
+ unsigned long slot_err_ret;
+
+ memset(slot_err_buf, 0, RTAS_ERROR_LOG_MAX);
+ slot_err_ret = rtas_call(rtas_token("ibm,slot-error-detail"),
+ 8, 1, dn->eeh_config_addr,
+ BUID_HI(dn->phb->buid), BUID_LO(dn->phb->buid),
+ NULL, 0, __pa(slot_err_buf), RTAS_ERROR_LOG_MAX,
+ 2 /* Permanent Error */);
+ if (slot_err_ret == 0)
+ log_error(slot_err_buf, ERR_TYPE_RTAS_LOG, 1 /* Fatal */);
+
panic("EEH: MMIO failure (%ld) on device:\n %s %s\n",
rets[0], dev->slot_name, dev->name);
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)