summaryrefslogtreecommitdiffstats
path: root/drivers/acpi/acpi_extlog.c
diff options
context:
space:
mode:
authorChen, Gong <gong.chen@linux.intel.com>2014-06-11 04:34:50 -0400
committerTony Luck <tony.luck@intel.com>2014-06-25 13:27:12 -0700
commitd6cae935ec5b7873a8ccd8f0331bef2df729e86a (patch)
tree96a767c7843297843d212b8629043baf0aecdbbe /drivers/acpi/acpi_extlog.c
parent2dfb7d51a61d7ca91b131c8db612f27d9390f2d5 (diff)
downloadop-kernel-dev-d6cae935ec5b7873a8ccd8f0331bef2df729e86a.zip
op-kernel-dev-d6cae935ec5b7873a8ccd8f0331bef2df729e86a.tar.gz
trace, eMCA: Add a knob to adjust where to save event log
To avoid saving two copies for one H/W event, add a new file under debugfs to control how to save event log. Once this file is opened, the perf/trace will be used, in the meanwhile, kernel will stop printing event log to the console. On the other hand, if this file is closed, kernel will print event log to the console again. Signed-off-by: Chen, Gong <gong.chen@linux.intel.com> Acked-by: Borislav Petkov <bp@suse.de> Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'drivers/acpi/acpi_extlog.c')
-rw-r--r--drivers/acpi/acpi_extlog.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/acpi/acpi_extlog.c b/drivers/acpi/acpi_extlog.c
index e61da95..a99d4a6 100644
--- a/drivers/acpi/acpi_extlog.c
+++ b/drivers/acpi/acpi_extlog.c
@@ -12,6 +12,7 @@
#include <linux/cper.h>
#include <linux/ratelimit.h>
#include <linux/edac.h>
+#include <linux/ras.h>
#include <asm/cpu.h>
#include <asm/mce.h>
@@ -154,7 +155,11 @@ static int extlog_print(struct notifier_block *nb, unsigned long val,
estatus->block_status = 0;
tmp = (struct acpi_generic_status *)elog_buf;
- print_extlog_rcd(NULL, tmp, cpu);
+
+ if (!ras_userspace_consumers()) {
+ print_extlog_rcd(NULL, tmp, cpu);
+ goto out;
+ }
/* log event via trace */
err_seq++;
@@ -171,6 +176,7 @@ static int extlog_print(struct notifier_block *nb, unsigned long val,
(u8)gdata->error_severity);
}
+out:
return NOTIFY_STOP;
}
OpenPOWER on IntegriCloud