|
@@ -36,7 +36,7 @@ static LIST_HEAD(sbridge_edac_list);
|
|
* Alter this version for the module when modifications are made
|
|
* Alter this version for the module when modifications are made
|
|
*/
|
|
*/
|
|
#define SBRIDGE_REVISION " Ver: 1.1.2 "
|
|
#define SBRIDGE_REVISION " Ver: 1.1.2 "
|
|
-#define EDAC_MOD_STR "sbridge_edac"
|
|
|
|
|
|
+#define EDAC_MOD_STR "sb_edac"
|
|
|
|
|
|
/*
|
|
/*
|
|
* Debug macros
|
|
* Debug macros
|
|
@@ -3155,7 +3155,7 @@ static int sbridge_register_mci(struct sbridge_dev *sbridge_dev, enum type type)
|
|
MEM_FLAG_DDR4 : MEM_FLAG_DDR3;
|
|
MEM_FLAG_DDR4 : MEM_FLAG_DDR3;
|
|
mci->edac_ctl_cap = EDAC_FLAG_NONE;
|
|
mci->edac_ctl_cap = EDAC_FLAG_NONE;
|
|
mci->edac_cap = EDAC_FLAG_NONE;
|
|
mci->edac_cap = EDAC_FLAG_NONE;
|
|
- mci->mod_name = "sb_edac.c";
|
|
|
|
|
|
+ mci->mod_name = EDAC_MOD_STR;
|
|
mci->dev_name = pci_name(pdev);
|
|
mci->dev_name = pci_name(pdev);
|
|
mci->ctl_page_to_phys = NULL;
|
|
mci->ctl_page_to_phys = NULL;
|
|
|
|
|
|
@@ -3407,10 +3407,15 @@ static void sbridge_remove(void)
|
|
static int __init sbridge_init(void)
|
|
static int __init sbridge_init(void)
|
|
{
|
|
{
|
|
const struct x86_cpu_id *id;
|
|
const struct x86_cpu_id *id;
|
|
|
|
+ const char *owner;
|
|
int rc;
|
|
int rc;
|
|
|
|
|
|
edac_dbg(2, "\n");
|
|
edac_dbg(2, "\n");
|
|
|
|
|
|
|
|
+ owner = edac_get_owner();
|
|
|
|
+ if (owner && strncmp(owner, EDAC_MOD_STR, sizeof(EDAC_MOD_STR)))
|
|
|
|
+ return -EBUSY;
|
|
|
|
+
|
|
id = x86_match_cpu(sbridge_cpuids);
|
|
id = x86_match_cpu(sbridge_cpuids);
|
|
if (!id)
|
|
if (!id)
|
|
return -ENODEV;
|
|
return -ENODEV;
|