summaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/cpu/mcheck
diff options
context:
space:
mode:
authorBorislav Petkov2012-04-27 15:37:25 +0200
committerBorislav Petkov2012-06-07 12:43:47 +0200
commit6e927361bd403dbf5f6a2668a2a07df1f1b2daff (patch)
treed689a592de1dd09f9e5e9077274106c3b8d7e196 /arch/x86/kernel/cpu/mcheck
parentx86, MCE, AMD: Cleanup reading of error_count (diff)
downloadkernel-qcow2-linux-6e927361bd403dbf5f6a2668a2a07df1f1b2daff.tar.gz
kernel-qcow2-linux-6e927361bd403dbf5f6a2668a2a07df1f1b2daff.tar.xz
kernel-qcow2-linux-6e927361bd403dbf5f6a2668a2a07df1f1b2daff.zip
x86, MCE, AMD: Make error_count read only
Until now, writing to error count caused the code to reset the thresholding bank to the current thresholding limit and start counting errors from the beginning. This is misleading and unclear, and can be accomplished by writing the old thresholding limit into ->threshold_limit. Make error_count read-only with the functionality to show the current error count. Signed-off-by: Borislav Petkov <borislav.petkov@amd.com>
Diffstat (limited to 'arch/x86/kernel/cpu/mcheck')
-rw-r--r--arch/x86/kernel/cpu/mcheck/mce_amd.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/arch/x86/kernel/cpu/mcheck/mce_amd.c b/arch/x86/kernel/cpu/mcheck/mce_amd.c
index a7204ef37223..e5ed2c7cb4de 100644
--- a/arch/x86/kernel/cpu/mcheck/mce_amd.c
+++ b/arch/x86/kernel/cpu/mcheck/mce_amd.c
@@ -369,14 +369,10 @@ static ssize_t show_error_count(struct threshold_block *b, char *buf)
(THRESHOLD_MAX - b->threshold_limit)));
}
-static ssize_t store_error_count(struct threshold_block *b,
- const char *buf, size_t count)
-{
- struct thresh_restart tr = { .b = b, .reset = 1, .old_limit = 0 };
-
- smp_call_function_single(b->cpu, threshold_restart_bank, &tr, 1);
- return 1;
-}
+static struct threshold_attr error_count = {
+ .attr = {.name = __stringify(error_count), .mode = 0444 },
+ .show = show_error_count,
+};
#define RW_ATTR(val) \
static struct threshold_attr val = { \
@@ -387,7 +383,6 @@ static struct threshold_attr val = { \
RW_ATTR(interrupt_enable);
RW_ATTR(threshold_limit);
-RW_ATTR(error_count);
static struct attribute *default_attrs[] = {
&threshold_limit.attr,