Commit a14f25a0 authored by Russ Anderson's avatar Russ Anderson Committed by Tony Luck

[IA64] MCA recovery based on PSP bits

The determination of whether an MCA is recoverable or not must
be based on the bits set in the PSP (Processor State Parameter).
The specific bits are shown in the Intel IA-64 Architecture Software
Developer's Manual, Vol 2, Table 11-6 Software Recovery Bits in
Processor State Parameter.  Those bits should be consistent
across the entire IA-64 family of processors.
Signed-off-by: default avatarRuss Anderson <rja@sgi.com>
Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
parent f093182d
...@@ -546,9 +546,20 @@ recover_from_processor_error(int platform, slidx_table_t *slidx, ...@@ -546,9 +546,20 @@ recover_from_processor_error(int platform, slidx_table_t *slidx,
(pal_processor_state_info_t*)peidx_psp(peidx); (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; return 0;
/* /*
...@@ -569,8 +580,6 @@ recover_from_processor_error(int platform, slidx_table_t *slidx, ...@@ -569,8 +580,6 @@ recover_from_processor_error(int platform, slidx_table_t *slidx,
return 0; return 0;
if (pbci->eb && pbci->bsi > 0) if (pbci->eb && pbci->bsi > 0)
return 0; return 0;
if (psp->ci == 0)
return 0;
/* /*
* This is a local MCA and estimated as recoverble external bus error. * This is a local MCA and estimated as recoverble external bus error.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment