summaryrefslogtreecommitdiff
path: root/drivers/edac/skx_edac.c
diff options
context:
space:
mode:
authorToshi Kani <toshi.kani@hpe.com>2017-08-23 16:54:47 -0600
committerBorislav Petkov <bp@suse.de>2017-09-25 13:09:39 +0200
commit301375e764324b8048704eaf2c46fe1ee290830e (patch)
tree759368a567d9a07a844865e85bdbcc6ffe261f66 /drivers/edac/skx_edac.c
parent3877c7d1e24c05eeb1c57ade04d2527d511f25a1 (diff)
EDAC: Add owner check to the x86 platform drivers
Change x86 EDAC platform drivers to verify the module owner at the beginning of their module init functions. This allows them to fail their init immediately when ghes_edac is enabled. Similar change can be made to other edac drivers if necessary. Also, remove ".c" from module names of pnp2_edac, sb_edac, and skx_edac. Signed-off-by: Toshi Kani <toshi.kani@hpe.com> Suggested-by: Borislav Petkov <bp@alien8.de> Cc: Mauro Carvalho Chehab <mchehab@kernel.org> Cc: Tony Luck <tony.luck@intel.com> Cc: linux-edac <linux-edac@vger.kernel.org> Link: http://lkml.kernel.org/r/20170823225447.15608-6-toshi.kani@hpe.com Signed-off-by: Borislav Petkov <bp@suse.de>
Diffstat (limited to 'drivers/edac/skx_edac.c')
-rw-r--r--drivers/edac/skx_edac.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/edac/skx_edac.c b/drivers/edac/skx_edac.c
index 3fe85b0ac274..e8e570e73796 100644
--- a/drivers/edac/skx_edac.c
+++ b/drivers/edac/skx_edac.c
@@ -31,6 +31,8 @@
#include "edac_module.h"
+#define EDAC_MOD_STR "skx_edac"
+
/*
* Debug macros
*/
@@ -473,7 +475,7 @@ static int skx_register_mci(struct skx_imc *imc)
mci->mtype_cap = MEM_FLAG_DDR4;
mci->edac_ctl_cap = EDAC_FLAG_NONE;
mci->edac_cap = EDAC_FLAG_NONE;
- mci->mod_name = "skx_edac.c";
+ mci->mod_name = EDAC_MOD_STR;
mci->dev_name = pci_name(imc->chan[0].cdev);
mci->ctl_page_to_phys = NULL;
@@ -1044,12 +1046,17 @@ static int __init skx_init(void)
{
const struct x86_cpu_id *id;
const struct munit *m;
+ const char *owner;
int rc = 0, i;
u8 mc = 0, src_id, node_id;
struct skx_dev *d;
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(skx_cpuids);
if (!id)
return -ENODEV;