diff options
author | Tony Luck <tony.luck@intel.com> | 2005-11-10 10:38:05 -0800 |
---|---|---|
committer | Tony Luck <tony.luck@intel.com> | 2005-11-10 10:38:05 -0800 |
commit | cf1d469ec10015f8ced338c00e7944941f816e89 (patch) | |
tree | 1db8f0944db9294b9a90b4c868745d20321feefa /arch/ia64/kernel | |
parent | 64de57ffd3bf379c5b953baa8f1b5d9a57ab3a49 (diff) | |
parent | a14f25a076a8e5040d6f4e93f84034c81bcddbf7 (diff) |
Pull mca-check-psp into release branch
Diffstat (limited to 'arch/ia64/kernel')
-rw-r--r-- | arch/ia64/kernel/mca_drv.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/arch/ia64/kernel/mca_drv.c b/arch/ia64/kernel/mca_drv.c index eb39bc9c133..3492e3211a4 100644 --- a/arch/ia64/kernel/mca_drv.c +++ b/arch/ia64/kernel/mca_drv.c @@ -547,9 +547,20 @@ recover_from_processor_error(int platform, slidx_table_t *slidx, (pal_processor_state_info_t*)peidx_psp(peidx); /* - * We cannot recover errors with other than bus_check. + * Processor recovery status must key off of the PAL recovery + * status in the Processor State Parameter. */ - if (psp->cc || psp->rc || psp->uc) + + /* + * The machine check is corrected. + */ + if (psp->cm == 1) + return 1; + + /* + * The error was not contained. Software must be reset. + */ + if (psp->us || psp->ci == 0) return 0; /* @@ -570,8 +581,6 @@ recover_from_processor_error(int platform, slidx_table_t *slidx, return 0; if (pbci->eb && pbci->bsi > 0) return 0; - if (psp->ci == 0) - return 0; /* * This is a local MCA and estimated as recoverble external bus error. |