On Monday, August 15, 2022 8:20 PM, Justin He wrote: > I assume that all those edac drivers which used owner checking are > impacted, right? So the impacted list should be: > drivers/edac/pnd2_edac.c:1532: if (owner && strncmp(owner, > EDAC_MOD_STR, sizeof(EDAC_MOD_STR))) > drivers/edac/sb_edac.c:3513: if (owner && strncmp(owner, > EDAC_MOD_STR, sizeof(EDAC_MOD_STR))) > drivers/edac/amd64_edac.c:4333: if (owner && strncmp(owner, > EDAC_MOD_STR, sizeof(EDAC_MOD_STR))) > drivers/edac/i10nm_base.c:552: if (owner && strncmp(owner, > EDAC_MOD_STR, sizeof(EDAC_MOD_STR))) > drivers/edac/skx_base.c:657: if (owner && strncmp(owner, > EDAC_MOD_STR, sizeof(EDAC_MOD_STR))) > drivers/edac/igen6_edac.c:1275: if (owner && strncmp(owner, > EDAC_MOD_STR, sizeof(EDAC_MOD_STR))) Yes, but the impact is not necessarily limited to these modules. The current model works as follows: 1. ghes_probe() calling ghes_edac_register() sets the owner to ghes_edac. 2. chipset-specific edac drivers checks the owner. 3. edac_mc_add_mc_with_groups() also checks the owner. Hence, check #3 enforces #1 (ghes_edac) even if there is an edac driver w/o check #2. I do not know if such case exists though. > Furthermore, should I totally remove the owner check in above driver > XX_init()? Because after the new helper ghes_get_device() checking, those > drivers can't be initialized after ghes_edac is loaded. If ghes_edac is NOT > loaded, the edac_mc_owner check in edac_mc_add_mc_with_groups() can > guarantee that there is only one regular edac driver. > > What do you think of it? I think a new check with ghes_get_device() can replace the owner check in xx_init(). Thanks, Toshi