]> err.no Git - linux-2.6/blobdiff - drivers/edac/amd76x_edac.c
[PATCH] EDAC: edac_mc_add_mc fix [2/2]
[linux-2.6] / drivers / edac / amd76x_edac.c
index 60535bb9275f1ca7fdc8afbc5007a3e0531a2c87..821c252d414cb8c18c566a51a99d1c724cf0524b 100644 (file)
@@ -211,6 +211,7 @@ static int amd76x_probe1(struct pci_dev *pdev, int dev_idx)
        };
        u32 ems;
        u32 ems_mode;
+       struct amd76x_error_info discard;
 
        debugf0("%s()\n", __func__);
 
@@ -226,14 +227,14 @@ static int amd76x_probe1(struct pci_dev *pdev, int dev_idx)
 
        debugf0("%s(): mci = %p\n", __func__, mci);
 
-       mci->pdev = pci_dev_get(pdev);
+       mci->pdev = pdev;
        mci->mtype_cap = MEM_FLAG_RDDR;
 
        mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_EC | EDAC_FLAG_SECDED;
        mci->edac_cap = ems_mode ?
            (EDAC_FLAG_EC | EDAC_FLAG_SECDED) : EDAC_FLAG_NONE;
 
-       mci->mod_name = BS_MOD_STR;
+       mci->mod_name = EDAC_MOD_STR;
        mci->mod_ver = "$Revision: 1.4.2.5 $";
        mci->ctl_name = amd76x_devs[dev_idx].ctl_name;
        mci->edac_check = amd76x_check;
@@ -270,9 +271,7 @@ static int amd76x_probe1(struct pci_dev *pdev, int dev_idx)
                csrow->edac_mode = ems_modes[ems_mode];
        }
 
-       /* clear counters */
-       pci_write_bits32(mci->pdev, AMD76X_ECC_MODE_STATUS, (u32) (0x3 << 8),
-                        (u32) (0x3 << 8));
+       amd76x_get_error_info(mci, &discard);  /* clear counters */
 
        if (edac_mc_add_mc(mci)) {
                debugf3("%s(): failed edac_mc_add_mc()\n", __func__);
@@ -284,11 +283,8 @@ static int amd76x_probe1(struct pci_dev *pdev, int dev_idx)
        return 0;
 
 fail:
-       if (mci) {
-               if(mci->pdev)
-                       pci_dev_put(mci->pdev);
+       if (mci != NULL)
                edac_mc_free(mci);
-       }
        return rc;
 }
 
@@ -322,7 +318,6 @@ static void __devexit amd76x_remove_one(struct pci_dev *pdev)
                return;
        if (edac_mc_del_mc(mci))
                return;
-       pci_dev_put(mci->pdev);
        edac_mc_free(mci);
 }
 
@@ -339,7 +334,7 @@ MODULE_DEVICE_TABLE(pci, amd76x_pci_tbl);
 
 
 static struct pci_driver amd76x_driver = {
-       .name = BS_MOD_STR,
+       .name = EDAC_MOD_STR,
        .probe = amd76x_init_one,
        .remove = __devexit_p(amd76x_remove_one),
        .id_table = amd76x_pci_tbl,