aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/edac/edac_mc.c25
-rw-r--r--drivers/edac/edac_mc.h8
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) \
181struct memctrl_dev_attribute attr_##_name = { \ 181static 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) \
189struct memctrl_dev_attribute attr_##_name = { \ 189static 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) \
346struct edac_pci_dev_attribute edac_pci_attr_##_name = { \ 346static 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) \
354struct edac_pci_dev_attribute edac_pci_attr_##_name = { \ 354static 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) \
725struct csrowdev_attribute attr_##_name = { \ 725static 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) \
1069struct mcidev_attribute mci_attr_##_name = { \ 1069static 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
1223void edac_mc_dump_channel(struct channel_info *chan) 1223static 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}
1231EXPORT_SYMBOL_GPL(edac_mc_dump_channel);
1232 1231
1233void edac_mc_dump_csrow(struct csrow_info *csrow) 1232static 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}
1247EXPORT_SYMBOL_GPL(edac_mc_dump_csrow);
1248 1246
1249void edac_mc_dump_mci(struct mem_ctl_info *mci) 1247static 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}
1263EXPORT_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}
1577EXPORT_SYMBOL_GPL(edac_mc_del_mc); 1574EXPORT_SYMBOL_GPL(edac_mc_del_mc);
1578 1575
1579void edac_mc_scrub_block(unsigned long page, unsigned long offset, u32 size) 1576static 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}
1608EXPORT_SYMBOL_GPL(edac_mc_scrub_block);
1609 1606
1610/* FIXME - should return -1 */ 1607/* FIXME - should return -1 */
1611int edac_mc_find_csrow_by_page(struct mem_ctl_info *mci, unsigned long page) 1608int 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
428void edac_mc_dump_channel(struct channel_info *chan);
429void edac_mc_dump_mci(struct mem_ctl_info *mci);
430void edac_mc_dump_csrow(struct csrow_info *csrow);
431#endif /* CONFIG_EDAC_DEBUG */
432
433extern struct mem_ctl_info * edac_mc_find(int idx); 427extern struct mem_ctl_info * edac_mc_find(int idx);
434extern int edac_mc_add_mc(struct mem_ctl_info *mci,int mc_idx); 428extern int edac_mc_add_mc(struct mem_ctl_info *mci,int mc_idx);
435extern struct mem_ctl_info * edac_mc_del_mc(struct device *dev); 429extern struct mem_ctl_info * edac_mc_del_mc(struct device *dev);
436extern int edac_mc_find_csrow_by_page(struct mem_ctl_info *mci, 430extern int edac_mc_find_csrow_by_page(struct mem_ctl_info *mci,
437 unsigned long page); 431 unsigned long page);
438extern 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.