mci->mod_name = EDAC_MOD_STR;
        mci->mod_ver = AMD76X_REVISION;
        mci->ctl_name = amd76x_devs[dev_idx].ctl_name;
+       mci->dev_name = pci_name(pdev);
        mci->edac_check = amd76x_check;
        mci->ctl_page_to_phys = NULL;
 
 
 
        debugf3("%s(): more mci init\n", __func__);
        mci->ctl_name = pvt->dev_info->ctl_name;
+       mci->dev_name = pci_name(pdev);
        mci->edac_check = e752x_check;
        mci->ctl_page_to_phys = ctl_page_to_phys;
 
 
 
        debugf3("%s(): more mci init\n", __func__);
        mci->ctl_name = pvt->dev_info->ctl_name;
+       mci->dev_name = pci_name(pdev);
        mci->edac_check = e7xxx_check;
        mci->ctl_page_to_phys = ctl_page_to_phys;
        e7xxx_init_csrows(mci, pdev, dev_idx, drc);
 
 #define PCI_VEND_DEV(vend, dev) PCI_VENDOR_ID_ ## vend, \
        PCI_DEVICE_ID_ ## vend ## _ ## dev
 
-#if defined(CONFIG_X86) && defined(CONFIG_PCI)
-#define dev_name(dev) pci_name(to_pci_dev(dev))
-#else
-#define dev_name(dev) to_platform_device(dev)->name
-#endif
+#define dev_name(dev) (dev)->dev_name
 
 /* memory devices */
 enum dev_type {
        const char *mod_name;
        const char *mod_ver;
        const char *ctl_name;
+       const char *dev_name;
        char proc_name[MC_PROC_NAME_MAX_LEN + 1];
        void *pvt_info;
        u32 ue_noinfo_count;    /* Uncorrectable Errors w/o info */
 
        const char *mod_name;   /* module name */
        const char *ctl_name;   /* edac controller  name */
+       const char *dev_name;   /* pci/platform/etc... name */
 
        void *pvt_info;         /* pointer to 'private driver' info */
 
 
 fail0:
        edac_printk(KERN_WARNING, EDAC_MC,
                "%s (%s) %s %s already assigned %d\n",
-               rover->dev->bus_id, dev_name(rover->dev),
+               rover->dev->bus_id, dev_name(rover),
                rover->mod_name, rover->ctl_name, rover->dev_idx);
        return 1;
 
                "Giving out device to module '%s' controller '%s': DEV '%s' (%s)\n",
                edac_dev->mod_name,
                edac_dev->ctl_name,
-               dev_name(edac_dev->dev),
+               dev_name(edac_dev),
                edac_op_state_toString(edac_dev)
                );
 
                edac_dev->dev_idx,
                edac_dev->mod_name,
                edac_dev->ctl_name,
-               dev_name(edac_dev->dev));
+               dev_name(edac_dev));
 
        return edac_dev;
 }
 
 fail0:
        edac_printk(KERN_WARNING, EDAC_MC,
                    "%s (%s) %s %s already assigned %d\n", p->dev->bus_id,
-                   dev_name(p->dev), p->mod_name, p->ctl_name, p->mc_idx);
+                   dev_name(mci), p->mod_name, p->ctl_name, p->mc_idx);
        return 1;
 
 fail1:
 
        /* Report action taken */
        edac_mc_printk(mci, KERN_INFO, "Giving out device to %s %s: DEV %s\n",
-               mci->mod_name, mci->ctl_name, dev_name(mci->dev));
+               mci->mod_name, mci->ctl_name, dev_name(mci));
 
        mutex_unlock(&mem_ctls_mutex);
        return 0;
        mutex_unlock(&mem_ctls_mutex);
        edac_printk(KERN_INFO, EDAC_MC,
                "Removed device %d for %s %s: DEV %s\n", mci->mc_idx,
-               mci->mod_name, mci->ctl_name, dev_name(mci->dev));
+               mci->mod_name, mci->ctl_name, dev_name(mci));
        return mci;
 }
 EXPORT_SYMBOL_GPL(edac_mc_del_mc);
 
        mci->mod_name = "i5000_edac.c";
        mci->mod_ver = I5000_REVISION;
        mci->ctl_name = i5000_devs[dev_idx].ctl_name;
+       mci->dev_name = pci_name(pdev);
        mci->ctl_page_to_phys = NULL;
 
        /* Set the function pointer to an actual operation function */
 
        mci->mod_name = EDAC_MOD_STR;
        mci->mod_ver = I82443_REVISION;
        mci->ctl_name = "I82443BXGX";
+       mci->dev_name = pci_name(pdev);
        mci->edac_check = i82443bxgx_edacmc_check;
        mci->ctl_page_to_phys = NULL;
 
 
        mci->mod_name = EDAC_MOD_STR;
        mci->mod_ver = I82860_REVISION;
        mci->ctl_name = i82860_devs[dev_idx].ctl_name;
+       mci->dev_name = pci_name(pdev);
        mci->edac_check = i82860_check;
        mci->ctl_page_to_phys = NULL;
        i82860_init_csrows(mci, pdev);
 
        mci->mod_name = EDAC_MOD_STR;
        mci->mod_ver = I82875P_REVISION;
        mci->ctl_name = i82875p_devs[dev_idx].ctl_name;
+       mci->dev_name = pci_name(pdev);
        mci->edac_check = i82875p_check;
        mci->ctl_page_to_phys = NULL;
        debugf3("%s(): init pvt\n", __func__);
 
  *
  * Written with reference to 82600 High Integration Dual PCI System
  * Controller Data Book:
- * http://www.radisys.com/files/support_downloads/007-01277-0002.82600DataBook.pdf
+ * www.radisys.com/files/support_downloads/007-01277-0002.82600DataBook.pdf
  * references to this document given in []
  */
 
        mci->mod_name = EDAC_MOD_STR;
        mci->mod_ver = R82600_REVISION;
        mci->ctl_name = "R82600";
+       mci->dev_name = pci_name(pdev);
        mci->edac_check = r82600_check;
        mci->ctl_page_to_phys = NULL;
        r82600_init_csrows(mci, pdev, dramcr);