]> www.infradead.org Git - users/mchehab/edac.git/commitdiff
Merge branch 'fixes' into next hw_events_v29
authorMauro Carvalho Chehab <mchehab@redhat.com>
Tue, 29 May 2012 14:28:05 +0000 (11:28 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Tue, 29 May 2012 14:28:05 +0000 (11:28 -0300)
* fixes:
  edac: fix the error about memory type detection on SandyBridge
  edac: avoid mce decoding crash after edac driver unloaded

1  2 
drivers/edac/i7core_edac.c
drivers/edac/sb_edac.c

index 0899d7da7248995d1b8e80260a670fb355b079f8,0fe2277d86722d27bbfe1c2ecc0627d56e8d7cc8..dd1ac9496d096fa99c76b696724696d14dd72e08
@@@ -2465,8 -2488,9 +2457,9 @@@ static int __init i7core_init(void
   */
  static void __exit i7core_exit(void)
  {
 -      debugf2("MC: " __FILE__ ": %s()\n", __func__);
 +      edac_dbg(2, "\n");
        pci_unregister_driver(&i7core_driver);
+       mce_unregister_decode_chain(&i7_mce_dec);
  }
  
  module_init(i7core_init);
index 05955bfda8491811381e48e29289fc9f946f588c,0f9552d6b56484f8975bd4c20eabfea758a253c1..32061d9cb423e282b73be92cdb2be455de86231b
@@@ -555,13 -599,13 +555,13 @@@ static int get_dimm_config(struct mem_c
                pvt->is_close_pg = false;
        }
  
-       pci_read_config_dword(pvt->pci_ta, RANK_CFG_A, &reg);
+       pci_read_config_dword(pvt->pci_ddrio, RANK_CFG_A, &reg);
        if (IS_RDIMM_ENABLED(reg)) {
                /* FIXME: Can also be LRDIMM */
 -              debugf0("Memory is registered\n");
 +              edac_dbg(0, "Memory is registered\n");
                mtype = MEM_RDDR3;
        } else {
 -              debugf0("Memory is unregistered\n");
 +              edac_dbg(0, "Memory is unregistered\n");
                mtype = MEM_DDR3;
        }
  
@@@ -1597,15 -1666,13 +1597,13 @@@ static void sbridge_unregister_mci(stru
  
        pvt = mci->pvt_info;
  
 -      debugf0("MC: " __FILE__ ": %s(): mci = %p, dev = %p\n",
 -              __func__, mci, &sbridge_dev->pdev[0]->dev);
 +      edac_dbg(0, "MC: mci = %p, dev = %p\n",
 +               mci, &sbridge_dev->pdev[0]->dev);
  
-       mce_unregister_decode_chain(&sbridge_mce_dec);
        /* Remove MC sysfs nodes */
 -      edac_mc_del_mc(mci->dev);
 +      edac_mc_del_mc(mci->pdev);
  
 -      debugf1("%s: free mci struct\n", mci->ctl_name);
 +      edac_dbg(1, "%s: free mci struct\n", mci->ctl_name);
        kfree(mci->ctl_name);
        edac_mc_free(mci);
        sbridge_dev->mci = NULL;
@@@ -1822,8 -1881,9 +1821,9 @@@ static int __init sbridge_init(void
   */
  static void __exit sbridge_exit(void)
  {
 -      debugf2("MC: " __FILE__ ": %s()\n", __func__);
 +      edac_dbg(2, "\n");
        pci_unregister_driver(&sbridge_driver);
+       mce_unregister_decode_chain(&sbridge_mce_dec);
  }
  
  module_init(sbridge_init);