]> 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 2fcc8120b53c435bc4c2fef2ba9d73fcf054b085..821c252d414cb8c18c566a51a99d1c724cf0524b 100644 (file)
 #include "edac_mc.h"
 
 
+#define amd76x_printk(level, fmt, arg...) \
+    edac_printk(level, "amd76x", fmt, ##arg)
+
+
+#define amd76x_mc_printk(mci, level, fmt, arg...) \
+    edac_mc_chipset_printk(mci, level, "amd76x", fmt, ##arg)
+
+
 #define AMD76X_NR_CSROWS 8
 #define AMD76X_NR_CHANS  1
 #define AMD76X_NR_DIMMS  4
@@ -174,7 +182,7 @@ static int amd76x_process_error_info (struct mem_ctl_info *mci,
 static void amd76x_check(struct mem_ctl_info *mci)
 {
        struct amd76x_error_info info;
-       debugf3("MC: " __FILE__ ": %s()\n", __func__);
+       debugf3("%s()\n", __func__);
        amd76x_get_error_info(mci, &info);
        amd76x_process_error_info(mci, &info, 1);
 }
@@ -203,8 +211,9 @@ static int amd76x_probe1(struct pci_dev *pdev, int dev_idx)
        };
        u32 ems;
        u32 ems_mode;
+       struct amd76x_error_info discard;
 
-       debugf0("MC: " __FILE__ ": %s()\n", __func__);
+       debugf0("%s()\n", __func__);
 
        pci_read_config_dword(pdev, AMD76X_ECC_MODE_STATUS, &ems);
        ems_mode = (ems >> 10) & 0x3;
@@ -216,16 +225,16 @@ static int amd76x_probe1(struct pci_dev *pdev, int dev_idx)
                goto fail;
        }
 
-       debugf0("MC: " __FILE__ ": %s(): mci = %p\n", __func__, mci);
+       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;
@@ -262,26 +271,20 @@ 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("MC: " __FILE__
-                       ": %s(): failed edac_mc_add_mc()\n", __func__);
+               debugf3("%s(): failed edac_mc_add_mc()\n", __func__);
                goto fail;
        }
 
        /* get this far and it's successful */
-       debugf3("MC: " __FILE__ ": %s(): success\n", __func__);
+       debugf3("%s(): success\n", __func__);
        return 0;
 
 fail:
-       if (mci) {
-               if(mci->pdev)
-                       pci_dev_put(mci->pdev);
+       if (mci != NULL)
                edac_mc_free(mci);
-       }
        return rc;
 }
 
@@ -289,7 +292,7 @@ fail:
 static int __devinit amd76x_init_one(struct pci_dev *pdev,
                                     const struct pci_device_id *ent)
 {
-       debugf0("MC: " __FILE__ ": %s()\n", __func__);
+       debugf0("%s()\n", __func__);
 
        /* don't need to call pci_device_enable() */
        return amd76x_probe1(pdev, ent->driver_data);
@@ -309,13 +312,12 @@ static void __devexit amd76x_remove_one(struct pci_dev *pdev)
 {
        struct mem_ctl_info *mci;
 
-       debugf0(__FILE__ ": %s()\n", __func__);
+       debugf0("%s()\n", __func__);
 
        if ((mci = edac_mc_find_mci_by_pdev(pdev)) == NULL)
                return;
        if (edac_mc_del_mc(mci))
                return;
-       pci_dev_put(mci->pdev);
        edac_mc_free(mci);
 }
 
@@ -332,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,