Skip to content

Commit 123b158

Browse files
arndbaegl
authored andcommitted
EDAC, i10nm: make skx_common.o a separate module
Commit 598afa0 ("kbuild: warn objects shared among multiple modules") was added to track down cases where the same object is linked into multiple modules. This can cause serious problems if some modules are builtin while others are not. That test triggers this warning: scripts/Makefile.build:236: drivers/edac/Makefile: skx_common.o is added to multiple modules: i10nm_edac skx_edac Make this a separate module instead. [Tony: Added more background details to commit message] Fixes: d4dc89d ("EDAC, i10nm: Add a driver for Intel 10nm server processors") Signed-off-by: Arnd Bergmann <[email protected]> Signed-off-by: Tony Luck <[email protected]> Link: https://lore.kernel.org/all/[email protected]/
1 parent c2c887e commit 123b158

File tree

3 files changed

+27
-8
lines changed

3 files changed

+27
-8
lines changed

drivers/edac/Makefile

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,13 @@ obj-$(CONFIG_EDAC_MPC85XX) += mpc85xx_edac_mod.o
5454
layerscape_edac_mod-y := fsl_ddr_edac.o layerscape_edac.o
5555
obj-$(CONFIG_EDAC_LAYERSCAPE) += layerscape_edac_mod.o
5656

57-
skx_edac-y := skx_common.o skx_base.o
58-
obj-$(CONFIG_EDAC_SKX) += skx_edac.o
57+
skx_edac_common-y := skx_common.o
5958

60-
i10nm_edac-y := skx_common.o i10nm_base.o
61-
obj-$(CONFIG_EDAC_I10NM) += i10nm_edac.o
59+
skx_edac-y := skx_base.o
60+
obj-$(CONFIG_EDAC_SKX) += skx_edac.o skx_edac_common.o
61+
62+
i10nm_edac-y := i10nm_base.o
63+
obj-$(CONFIG_EDAC_I10NM) += i10nm_edac.o skx_edac_common.o
6264

6365
obj-$(CONFIG_EDAC_CELL) += cell_edac.o
6466
obj-$(CONFIG_EDAC_PPC4XX) += ppc4xx_edac.o

drivers/edac/skx_common.c

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ static u64 skx_tolm, skx_tohm;
4848
static LIST_HEAD(dev_edac_list);
4949
static bool skx_mem_cfg_2lm;
5050

51-
int __init skx_adxl_get(void)
51+
int skx_adxl_get(void)
5252
{
5353
const char * const *names;
5454
int i, j;
@@ -110,12 +110,14 @@ int __init skx_adxl_get(void)
110110

111111
return -ENODEV;
112112
}
113+
EXPORT_SYMBOL_GPL(skx_adxl_get);
113114

114-
void __exit skx_adxl_put(void)
115+
void skx_adxl_put(void)
115116
{
116117
kfree(adxl_values);
117118
kfree(adxl_msg);
118119
}
120+
EXPORT_SYMBOL_GPL(skx_adxl_put);
119121

120122
static bool skx_adxl_decode(struct decoded_addr *res, bool error_in_1st_level_mem)
121123
{
@@ -187,12 +189,14 @@ void skx_set_mem_cfg(bool mem_cfg_2lm)
187189
{
188190
skx_mem_cfg_2lm = mem_cfg_2lm;
189191
}
192+
EXPORT_SYMBOL_GPL(skx_set_mem_cfg);
190193

191194
void skx_set_decode(skx_decode_f decode, skx_show_retry_log_f show_retry_log)
192195
{
193196
driver_decode = decode;
194197
skx_show_retry_rd_err_log = show_retry_log;
195198
}
199+
EXPORT_SYMBOL_GPL(skx_set_decode);
196200

197201
int skx_get_src_id(struct skx_dev *d, int off, u8 *id)
198202
{
@@ -206,6 +210,7 @@ int skx_get_src_id(struct skx_dev *d, int off, u8 *id)
206210
*id = GET_BITFIELD(reg, 12, 14);
207211
return 0;
208212
}
213+
EXPORT_SYMBOL_GPL(skx_get_src_id);
209214

210215
int skx_get_node_id(struct skx_dev *d, u8 *id)
211216
{
@@ -219,6 +224,7 @@ int skx_get_node_id(struct skx_dev *d, u8 *id)
219224
*id = GET_BITFIELD(reg, 0, 2);
220225
return 0;
221226
}
227+
EXPORT_SYMBOL_GPL(skx_get_node_id);
222228

223229
static int get_width(u32 mtr)
224230
{
@@ -284,6 +290,7 @@ int skx_get_all_bus_mappings(struct res_config *cfg, struct list_head **list)
284290
*list = &dev_edac_list;
285291
return ndev;
286292
}
293+
EXPORT_SYMBOL_GPL(skx_get_all_bus_mappings);
287294

288295
int skx_get_hi_lo(unsigned int did, int off[], u64 *tolm, u64 *tohm)
289296
{
@@ -323,6 +330,7 @@ int skx_get_hi_lo(unsigned int did, int off[], u64 *tolm, u64 *tohm)
323330
pci_dev_put(pdev);
324331
return -ENODEV;
325332
}
333+
EXPORT_SYMBOL_GPL(skx_get_hi_lo);
326334

327335
static int skx_get_dimm_attr(u32 reg, int lobit, int hibit, int add,
328336
int minval, int maxval, const char *name)
@@ -394,6 +402,7 @@ int skx_get_dimm_info(u32 mtr, u32 mcmtr, u32 amap, struct dimm_info *dimm,
394402

395403
return 1;
396404
}
405+
EXPORT_SYMBOL_GPL(skx_get_dimm_info);
397406

398407
int skx_get_nvdimm_info(struct dimm_info *dimm, struct skx_imc *imc,
399408
int chan, int dimmno, const char *mod_str)
@@ -442,6 +451,7 @@ int skx_get_nvdimm_info(struct dimm_info *dimm, struct skx_imc *imc,
442451

443452
return (size == 0 || size == ~0ull) ? 0 : 1;
444453
}
454+
EXPORT_SYMBOL_GPL(skx_get_nvdimm_info);
445455

446456
int skx_register_mci(struct skx_imc *imc, struct pci_dev *pdev,
447457
const char *ctl_name, const char *mod_str,
@@ -512,6 +522,7 @@ int skx_register_mci(struct skx_imc *imc, struct pci_dev *pdev,
512522
imc->mci = NULL;
513523
return rc;
514524
}
525+
EXPORT_SYMBOL_GPL(skx_register_mci);
515526

516527
static void skx_unregister_mci(struct skx_imc *imc)
517528
{
@@ -688,6 +699,7 @@ int skx_mce_check_error(struct notifier_block *nb, unsigned long val,
688699
mce->kflags |= MCE_HANDLED_EDAC;
689700
return NOTIFY_DONE;
690701
}
702+
EXPORT_SYMBOL_GPL(skx_mce_check_error);
691703

692704
void skx_remove(void)
693705
{
@@ -725,3 +737,8 @@ void skx_remove(void)
725737
kfree(d);
726738
}
727739
}
740+
EXPORT_SYMBOL_GPL(skx_remove);
741+
742+
MODULE_LICENSE("GPL v2");
743+
MODULE_AUTHOR("Tony Luck");
744+
MODULE_DESCRIPTION("MC Driver for Intel server processors");

drivers/edac/skx_common.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -231,8 +231,8 @@ typedef int (*get_dimm_config_f)(struct mem_ctl_info *mci,
231231
typedef bool (*skx_decode_f)(struct decoded_addr *res);
232232
typedef void (*skx_show_retry_log_f)(struct decoded_addr *res, char *msg, int len, bool scrub_err);
233233

234-
int __init skx_adxl_get(void);
235-
void __exit skx_adxl_put(void);
234+
int skx_adxl_get(void);
235+
void skx_adxl_put(void);
236236
void skx_set_decode(skx_decode_f decode, skx_show_retry_log_f show_retry_log);
237237
void skx_set_mem_cfg(bool mem_cfg_2lm);
238238

0 commit comments

Comments
 (0)