]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/commitdiff
Pull mca-check-psp into release branch
authorTony Luck <tony.luck@intel.com>
Thu, 10 Nov 2005 18:38:05 +0000 (10:38 -0800)
committerTony Luck <tony.luck@intel.com>
Thu, 10 Nov 2005 18:38:05 +0000 (10:38 -0800)
1  2 
arch/ia64/kernel/mca_drv.c

index eb39bc9c133bd05dbf5adba4017dc286d56e473a,eb860e29341533a6b2d44e90a30f4fa4e6e8c18b..3492e3211a4416ce615a1d0f14810be94aa6178d
@@@ -88,7 -88,7 +88,7 @@@ mca_page_isolate(unsigned long paddr
        if (!ia64_phys_addr_valid(paddr))
                return ISOLATE_NONE;
  
 -      if (!pfn_valid(paddr))
 +      if (!pfn_valid(paddr >> PAGE_SHIFT))
                return ISOLATE_NONE;
  
        /* convert physical address to physical page number */
                return ISOLATE_NG;
  
        /* add attribute 'Reserved' and register the page */
 +      get_page(p);
        SetPageReserved(p);
        page_isolate[num_page_isolate++] = p;
  
@@@ -547,9 -546,20 +547,20 @@@ recover_from_processor_error(int platfo
                (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;
        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.