aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/edac/edac_mc.c44
1 files changed, 42 insertions, 2 deletions
diff --git a/drivers/edac/edac_mc.c b/drivers/edac/edac_mc.c
index 262e44544dc8..9c205274c1cb 100644
--- a/drivers/edac/edac_mc.c
+++ b/drivers/edac/edac_mc.c
@@ -38,6 +38,12 @@
38 38
39#define EDAC_MC_VERSION "edac_mc Ver: 2.0.0 " __DATE__ 39#define EDAC_MC_VERSION "edac_mc Ver: 2.0.0 " __DATE__
40 40
41/* For now, disable the EDAC sysfs code. The sysfs interface that EDAC
42 * presents to user space needs more thought, and is likely to change
43 * substantially.
44 */
45#define DISABLE_EDAC_SYSFS
46
41#ifdef CONFIG_EDAC_DEBUG 47#ifdef CONFIG_EDAC_DEBUG
42/* Values of 0 to 4 will generate output */ 48/* Values of 0 to 4 will generate output */
43int edac_debug_level = 1; 49int edac_debug_level = 1;
@@ -47,7 +53,7 @@ EXPORT_SYMBOL(edac_debug_level);
47/* EDAC Controls, setable by module parameter, and sysfs */ 53/* EDAC Controls, setable by module parameter, and sysfs */
48static int log_ue = 1; 54static int log_ue = 1;
49static int log_ce = 1; 55static int log_ce = 1;
50static int panic_on_ue = 1; 56static int panic_on_ue;
51static int poll_msec = 1000; 57static int poll_msec = 1000;
52 58
53static int check_pci_parity = 0; /* default YES check PCI parity */ 59static int check_pci_parity = 0; /* default YES check PCI parity */
@@ -77,6 +83,8 @@ static int pci_whitelist_count ;
77 83
78/* START sysfs data and methods */ 84/* START sysfs data and methods */
79 85
86#ifndef DISABLE_EDAC_SYSFS
87
80static const char *mem_types[] = { 88static const char *mem_types[] = {
81 [MEM_EMPTY] = "Empty", 89 [MEM_EMPTY] = "Empty",
82 [MEM_RESERVED] = "Reserved", 90 [MEM_RESERVED] = "Reserved",
@@ -241,6 +249,7 @@ static struct kobj_type ktype_memctrl = {
241 .default_attrs = (struct attribute **) memctrl_attr, 249 .default_attrs = (struct attribute **) memctrl_attr,
242}; 250};
243 251
252#endif /* DISABLE_EDAC_SYSFS */
244 253
245/* Initialize the main sysfs entries for edac: 254/* Initialize the main sysfs entries for edac:
246 * /sys/devices/system/edac 255 * /sys/devices/system/edac
@@ -251,6 +260,11 @@ static struct kobj_type ktype_memctrl = {
251 * !0 FAILURE 260 * !0 FAILURE
252 */ 261 */
253static int edac_sysfs_memctrl_setup(void) 262static int edac_sysfs_memctrl_setup(void)
263#ifdef DISABLE_EDAC_SYSFS
264{
265 return 0;
266}
267#else
254{ 268{
255 int err=0; 269 int err=0;
256 270
@@ -283,6 +297,7 @@ static int edac_sysfs_memctrl_setup(void)
283 297
284 return err; 298 return err;
285} 299}
300#endif /* DISABLE_EDAC_SYSFS */
286 301
287/* 302/*
288 * MC teardown: 303 * MC teardown:
@@ -290,6 +305,7 @@ static int edac_sysfs_memctrl_setup(void)
290 */ 305 */
291static void edac_sysfs_memctrl_teardown(void) 306static void edac_sysfs_memctrl_teardown(void)
292{ 307{
308#ifndef DISABLE_EDAC_SYSFS
293 debugf0("MC: " __FILE__ ": %s()\n", __func__); 309 debugf0("MC: " __FILE__ ": %s()\n", __func__);
294 310
295 /* Unregister the MC's kobject */ 311 /* Unregister the MC's kobject */
@@ -300,8 +316,11 @@ static void edac_sysfs_memctrl_teardown(void)
300 316
301 /* Unregister the 'edac' object */ 317 /* Unregister the 'edac' object */
302 sysdev_class_unregister(&edac_class); 318 sysdev_class_unregister(&edac_class);
319#endif /* DISABLE_EDAC_SYSFS */
303} 320}
304 321
322#ifndef DISABLE_EDAC_SYSFS
323
305/* 324/*
306 * /sys/devices/system/edac/pci; 325 * /sys/devices/system/edac/pci;
307 * data structures and methods 326 * data structures and methods
@@ -554,11 +573,18 @@ static struct kobj_type ktype_edac_pci = {
554 .default_attrs = (struct attribute **) edac_pci_attr, 573 .default_attrs = (struct attribute **) edac_pci_attr,
555}; 574};
556 575
576#endif /* DISABLE_EDAC_SYSFS */
577
557/** 578/**
558 * edac_sysfs_pci_setup() 579 * edac_sysfs_pci_setup()
559 * 580 *
560 */ 581 */
561static int edac_sysfs_pci_setup(void) 582static int edac_sysfs_pci_setup(void)
583#ifdef DISABLE_EDAC_SYSFS
584{
585 return 0;
586}
587#else
562{ 588{
563 int err; 589 int err;
564 590
@@ -582,16 +608,20 @@ static int edac_sysfs_pci_setup(void)
582 } 608 }
583 return err; 609 return err;
584} 610}
585 611#endif /* DISABLE_EDAC_SYSFS */
586 612
587static void edac_sysfs_pci_teardown(void) 613static void edac_sysfs_pci_teardown(void)
588{ 614{
615#ifndef DISABLE_EDAC_SYSFS
589 debugf0("MC: " __FILE__ ": %s()\n", __func__); 616 debugf0("MC: " __FILE__ ": %s()\n", __func__);
590 617
591 kobject_unregister(&edac_pci_kobj); 618 kobject_unregister(&edac_pci_kobj);
592 kobject_put(&edac_pci_kobj); 619 kobject_put(&edac_pci_kobj);
620#endif
593} 621}
594 622
623#ifndef DISABLE_EDAC_SYSFS
624
595/* EDAC sysfs CSROW data structures and methods */ 625/* EDAC sysfs CSROW data structures and methods */
596 626
597/* Set of more detailed csrow<id> attribute show/store functions */ 627/* Set of more detailed csrow<id> attribute show/store functions */
@@ -1045,6 +1075,8 @@ static struct kobj_type ktype_mci = {
1045 .default_attrs = (struct attribute **) mci_attr, 1075 .default_attrs = (struct attribute **) mci_attr,
1046}; 1076};
1047 1077
1078#endif /* DISABLE_EDAC_SYSFS */
1079
1048#define EDAC_DEVICE_SYMLINK "device" 1080#define EDAC_DEVICE_SYMLINK "device"
1049 1081
1050/* 1082/*
@@ -1056,6 +1088,11 @@ static struct kobj_type ktype_mci = {
1056 * !0 Failure 1088 * !0 Failure
1057 */ 1089 */
1058static int edac_create_sysfs_mci_device(struct mem_ctl_info *mci) 1090static int edac_create_sysfs_mci_device(struct mem_ctl_info *mci)
1091#ifdef DISABLE_EDAC_SYSFS
1092{
1093 return 0;
1094}
1095#else
1059{ 1096{
1060 int i; 1097 int i;
1061 int err; 1098 int err;
@@ -1124,12 +1161,14 @@ fail:
1124 1161
1125 return err; 1162 return err;
1126} 1163}
1164#endif /* DISABLE_EDAC_SYSFS */
1127 1165
1128/* 1166/*
1129 * remove a Memory Controller instance 1167 * remove a Memory Controller instance
1130 */ 1168 */
1131static void edac_remove_sysfs_mci_device(struct mem_ctl_info *mci) 1169static void edac_remove_sysfs_mci_device(struct mem_ctl_info *mci)
1132{ 1170{
1171#ifndef DISABLE_EDAC_SYSFS
1133 int i; 1172 int i;
1134 1173
1135 debugf0("MC: " __FILE__ ": %s()\n", __func__); 1174 debugf0("MC: " __FILE__ ": %s()\n", __func__);
@@ -1146,6 +1185,7 @@ static void edac_remove_sysfs_mci_device(struct mem_ctl_info *mci)
1146 1185
1147 kobject_unregister(&mci->edac_mci_kobj); 1186 kobject_unregister(&mci->edac_mci_kobj);
1148 kobject_put(&mci->edac_mci_kobj); 1187 kobject_put(&mci->edac_mci_kobj);
1188#endif /* DISABLE_EDAC_SYSFS */
1149} 1189}
1150 1190
1151/* END OF sysfs data and methods */ 1191/* END OF sysfs data and methods */