]> nv-tegra.nvidia Code Review - linux-2.6.git/blobdiff - arch/ia64/kernel/mca_drv.c
Pull mca-check-psp into release branch
[linux-2.6.git] / arch / ia64 / kernel / mca_drv.c
index eb39bc9c133bd05dbf5adba4017dc286d56e473a..3492e3211a4416ce615a1d0f14810be94aa6178d 100644 (file)
@@ -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.