diff options
-rw-r--r-- | drivers/edac/edac_mc.c | 25 | ||||
-rw-r--r-- | drivers/edac/edac_mc.h | 8 |
2 files changed, 11 insertions, 22 deletions
diff --git a/drivers/edac/edac_mc.c b/drivers/edac/edac_mc.c index c1a8bf2bfa57..88bee33e7ecf 100644 --- a/drivers/edac/edac_mc.c +++ b/drivers/edac/edac_mc.c | |||
@@ -178,7 +178,7 @@ static struct sysfs_ops memctrlfs_ops = { | |||
178 | }; | 178 | }; |
179 | 179 | ||
180 | #define MEMCTRL_ATTR(_name,_mode,_show,_store) \ | 180 | #define MEMCTRL_ATTR(_name,_mode,_show,_store) \ |
181 | struct memctrl_dev_attribute attr_##_name = { \ | 181 | static struct memctrl_dev_attribute attr_##_name = { \ |
182 | .attr = {.name = __stringify(_name), .mode = _mode }, \ | 182 | .attr = {.name = __stringify(_name), .mode = _mode }, \ |
183 | .value = &_name, \ | 183 | .value = &_name, \ |
184 | .show = _show, \ | 184 | .show = _show, \ |
@@ -186,7 +186,7 @@ struct memctrl_dev_attribute attr_##_name = { \ | |||
186 | }; | 186 | }; |
187 | 187 | ||
188 | #define MEMCTRL_STRING_ATTR(_name,_data,_mode,_show,_store) \ | 188 | #define MEMCTRL_STRING_ATTR(_name,_data,_mode,_show,_store) \ |
189 | struct memctrl_dev_attribute attr_##_name = { \ | 189 | static struct memctrl_dev_attribute attr_##_name = { \ |
190 | .attr = {.name = __stringify(_name), .mode = _mode }, \ | 190 | .attr = {.name = __stringify(_name), .mode = _mode }, \ |
191 | .value = _data, \ | 191 | .value = _data, \ |
192 | .show = _show, \ | 192 | .show = _show, \ |
@@ -343,7 +343,7 @@ static struct sysfs_ops edac_pci_sysfs_ops = { | |||
343 | }; | 343 | }; |
344 | 344 | ||
345 | #define EDAC_PCI_ATTR(_name,_mode,_show,_store) \ | 345 | #define EDAC_PCI_ATTR(_name,_mode,_show,_store) \ |
346 | struct edac_pci_dev_attribute edac_pci_attr_##_name = { \ | 346 | static struct edac_pci_dev_attribute edac_pci_attr_##_name = { \ |
347 | .attr = {.name = __stringify(_name), .mode = _mode }, \ | 347 | .attr = {.name = __stringify(_name), .mode = _mode }, \ |
348 | .value = &_name, \ | 348 | .value = &_name, \ |
349 | .show = _show, \ | 349 | .show = _show, \ |
@@ -351,7 +351,7 @@ struct edac_pci_dev_attribute edac_pci_attr_##_name = { \ | |||
351 | }; | 351 | }; |
352 | 352 | ||
353 | #define EDAC_PCI_STRING_ATTR(_name,_data,_mode,_show,_store) \ | 353 | #define EDAC_PCI_STRING_ATTR(_name,_data,_mode,_show,_store) \ |
354 | struct edac_pci_dev_attribute edac_pci_attr_##_name = { \ | 354 | static struct edac_pci_dev_attribute edac_pci_attr_##_name = { \ |
355 | .attr = {.name = __stringify(_name), .mode = _mode }, \ | 355 | .attr = {.name = __stringify(_name), .mode = _mode }, \ |
356 | .value = _data, \ | 356 | .value = _data, \ |
357 | .show = _show, \ | 357 | .show = _show, \ |
@@ -722,7 +722,7 @@ static struct sysfs_ops csrowfs_ops = { | |||
722 | }; | 722 | }; |
723 | 723 | ||
724 | #define CSROWDEV_ATTR(_name,_mode,_show,_store,_private) \ | 724 | #define CSROWDEV_ATTR(_name,_mode,_show,_store,_private) \ |
725 | struct csrowdev_attribute attr_##_name = { \ | 725 | static struct csrowdev_attribute attr_##_name = { \ |
726 | .attr = {.name = __stringify(_name), .mode = _mode }, \ | 726 | .attr = {.name = __stringify(_name), .mode = _mode }, \ |
727 | .show = _show, \ | 727 | .show = _show, \ |
728 | .store = _store, \ | 728 | .store = _store, \ |
@@ -1066,7 +1066,7 @@ static struct sysfs_ops mci_ops = { | |||
1066 | }; | 1066 | }; |
1067 | 1067 | ||
1068 | #define MCIDEV_ATTR(_name,_mode,_show,_store) \ | 1068 | #define MCIDEV_ATTR(_name,_mode,_show,_store) \ |
1069 | struct mcidev_attribute mci_attr_##_name = { \ | 1069 | static struct mcidev_attribute mci_attr_##_name = { \ |
1070 | .attr = {.name = __stringify(_name), .mode = _mode }, \ | 1070 | .attr = {.name = __stringify(_name), .mode = _mode }, \ |
1071 | .show = _show, \ | 1071 | .show = _show, \ |
1072 | .store = _store, \ | 1072 | .store = _store, \ |
@@ -1220,7 +1220,7 @@ static void edac_remove_sysfs_mci_device(struct mem_ctl_info *mci) | |||
1220 | 1220 | ||
1221 | #ifdef CONFIG_EDAC_DEBUG | 1221 | #ifdef CONFIG_EDAC_DEBUG |
1222 | 1222 | ||
1223 | void edac_mc_dump_channel(struct channel_info *chan) | 1223 | static void edac_mc_dump_channel(struct channel_info *chan) |
1224 | { | 1224 | { |
1225 | debugf4("\tchannel = %p\n", chan); | 1225 | debugf4("\tchannel = %p\n", chan); |
1226 | debugf4("\tchannel->chan_idx = %d\n", chan->chan_idx); | 1226 | debugf4("\tchannel->chan_idx = %d\n", chan->chan_idx); |
@@ -1228,9 +1228,8 @@ void edac_mc_dump_channel(struct channel_info *chan) | |||
1228 | debugf4("\tchannel->label = '%s'\n", chan->label); | 1228 | debugf4("\tchannel->label = '%s'\n", chan->label); |
1229 | debugf4("\tchannel->csrow = %p\n\n", chan->csrow); | 1229 | debugf4("\tchannel->csrow = %p\n\n", chan->csrow); |
1230 | } | 1230 | } |
1231 | EXPORT_SYMBOL_GPL(edac_mc_dump_channel); | ||
1232 | 1231 | ||
1233 | void edac_mc_dump_csrow(struct csrow_info *csrow) | 1232 | static void edac_mc_dump_csrow(struct csrow_info *csrow) |
1234 | { | 1233 | { |
1235 | debugf4("\tcsrow = %p\n", csrow); | 1234 | debugf4("\tcsrow = %p\n", csrow); |
1236 | debugf4("\tcsrow->csrow_idx = %d\n", csrow->csrow_idx); | 1235 | debugf4("\tcsrow->csrow_idx = %d\n", csrow->csrow_idx); |
@@ -1244,9 +1243,8 @@ void edac_mc_dump_csrow(struct csrow_info *csrow) | |||
1244 | debugf4("\tcsrow->channels = %p\n", csrow->channels); | 1243 | debugf4("\tcsrow->channels = %p\n", csrow->channels); |
1245 | debugf4("\tcsrow->mci = %p\n\n", csrow->mci); | 1244 | debugf4("\tcsrow->mci = %p\n\n", csrow->mci); |
1246 | } | 1245 | } |
1247 | EXPORT_SYMBOL_GPL(edac_mc_dump_csrow); | ||
1248 | 1246 | ||
1249 | void edac_mc_dump_mci(struct mem_ctl_info *mci) | 1247 | static void edac_mc_dump_mci(struct mem_ctl_info *mci) |
1250 | { | 1248 | { |
1251 | debugf3("\tmci = %p\n", mci); | 1249 | debugf3("\tmci = %p\n", mci); |
1252 | debugf3("\tmci->mtype_cap = %lx\n", mci->mtype_cap); | 1250 | debugf3("\tmci->mtype_cap = %lx\n", mci->mtype_cap); |
@@ -1260,7 +1258,6 @@ void edac_mc_dump_mci(struct mem_ctl_info *mci) | |||
1260 | mci->mod_name, mci->ctl_name); | 1258 | mci->mod_name, mci->ctl_name); |
1261 | debugf3("\tpvt_info = %p\n\n", mci->pvt_info); | 1259 | debugf3("\tpvt_info = %p\n\n", mci->pvt_info); |
1262 | } | 1260 | } |
1263 | EXPORT_SYMBOL_GPL(edac_mc_dump_mci); | ||
1264 | 1261 | ||
1265 | #endif /* CONFIG_EDAC_DEBUG */ | 1262 | #endif /* CONFIG_EDAC_DEBUG */ |
1266 | 1263 | ||
@@ -1576,7 +1573,8 @@ struct mem_ctl_info * edac_mc_del_mc(struct device *dev) | |||
1576 | } | 1573 | } |
1577 | EXPORT_SYMBOL_GPL(edac_mc_del_mc); | 1574 | EXPORT_SYMBOL_GPL(edac_mc_del_mc); |
1578 | 1575 | ||
1579 | void edac_mc_scrub_block(unsigned long page, unsigned long offset, u32 size) | 1576 | static void edac_mc_scrub_block(unsigned long page, unsigned long offset, |
1577 | u32 size) | ||
1580 | { | 1578 | { |
1581 | struct page *pg; | 1579 | struct page *pg; |
1582 | void *virt_addr; | 1580 | void *virt_addr; |
@@ -1605,7 +1603,6 @@ void edac_mc_scrub_block(unsigned long page, unsigned long offset, u32 size) | |||
1605 | if (PageHighMem(pg)) | 1603 | if (PageHighMem(pg)) |
1606 | local_irq_restore(flags); | 1604 | local_irq_restore(flags); |
1607 | } | 1605 | } |
1608 | EXPORT_SYMBOL_GPL(edac_mc_scrub_block); | ||
1609 | 1606 | ||
1610 | /* FIXME - should return -1 */ | 1607 | /* FIXME - should return -1 */ |
1611 | int edac_mc_find_csrow_by_page(struct mem_ctl_info *mci, unsigned long page) | 1608 | int edac_mc_find_csrow_by_page(struct mem_ctl_info *mci, unsigned long page) |
diff --git a/drivers/edac/edac_mc.h b/drivers/edac/edac_mc.h index 9ad8a20a8de5..fec12f722123 100644 --- a/drivers/edac/edac_mc.h +++ b/drivers/edac/edac_mc.h | |||
@@ -424,19 +424,11 @@ static inline void pci_write_bits32(struct pci_dev *pdev, int offset, | |||
424 | 424 | ||
425 | #endif /* CONFIG_PCI */ | 425 | #endif /* CONFIG_PCI */ |
426 | 426 | ||
427 | #ifdef CONFIG_EDAC_DEBUG | ||
428 | void edac_mc_dump_channel(struct channel_info *chan); | ||
429 | void edac_mc_dump_mci(struct mem_ctl_info *mci); | ||
430 | void edac_mc_dump_csrow(struct csrow_info *csrow); | ||
431 | #endif /* CONFIG_EDAC_DEBUG */ | ||
432 | |||
433 | extern struct mem_ctl_info * edac_mc_find(int idx); | 427 | extern struct mem_ctl_info * edac_mc_find(int idx); |
434 | extern int edac_mc_add_mc(struct mem_ctl_info *mci,int mc_idx); | 428 | extern int edac_mc_add_mc(struct mem_ctl_info *mci,int mc_idx); |
435 | extern struct mem_ctl_info * edac_mc_del_mc(struct device *dev); | 429 | extern struct mem_ctl_info * edac_mc_del_mc(struct device *dev); |
436 | extern int edac_mc_find_csrow_by_page(struct mem_ctl_info *mci, | 430 | extern int edac_mc_find_csrow_by_page(struct mem_ctl_info *mci, |
437 | unsigned long page); | 431 | unsigned long page); |
438 | extern void edac_mc_scrub_block(unsigned long page, unsigned long offset, | ||
439 | u32 size); | ||
440 | 432 | ||
441 | /* | 433 | /* |
442 | * The no info errors are used when error overflows are reported. | 434 | * The no info errors are used when error overflows are reported. |