aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndi Kleen <ak@linux.intel.com>2016-02-10 10:38:43 -0800
committerAndi Kleen <ak@linux.intel.com>2016-02-10 10:38:43 -0800
commit89d3888aada31103d433e14f7c8a9c45ea1c3011 (patch)
tree32c42a3509023e14684fda260c5e9560f5d741a1
parentf3831561806044c8dd7665e531d7e36972ee10f7 (diff)
downloadmcelog-89d3888aada31103d433e14f7c8a9c45ea1c3011.tar.gz
Don't error out when MCE write failsv131
Partial fix for https://github.com/andikleen/mcelog/issues/32 Signed-off-by: Andi Kleen <ak@linux.intel.com>
-rw-r--r--msr.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/msr.c b/msr.c
index 6c609a5..e50fcdb 100644
--- a/msr.c
+++ b/msr.c
@@ -20,27 +20,28 @@ static void domsr(int cpu, int msr, int bit)
return;
default:
SYSERRprintf("Cannot open %s to set imc_log\n", fpath);
- exit(1);
+ return;
}
}
if (pread(fd, &data, sizeof data, msr) != sizeof data) {
SYSERRprintf("Cannot read MSR_ERROR_CONTROL from %s\n", fpath);
- exit(1);
+ return;
}
data |= bit;
if (pwrite(fd, &data, sizeof data, msr) != sizeof data) {
SYSERRprintf("Cannot write MSR_ERROR_CONTROL to %s\n", fpath);
- exit(1);
+ return;
}
if (pread(fd, &data, sizeof data, msr) != sizeof data) {
SYSERRprintf("Cannot re-read MSR_ERROR_CONTROL from %s\n", fpath);
- exit(1);
+ return;
}
if ((data & bit) == 0)
Lprintf("No DIMM detection available on cpu %d (normal in virtual environments)\n", cpu);
close(fd);
}
+/* XXX: assumes all CPUs are already onlined. */
void set_imc_log(int cputype)
{
int cpu, ncpus = sysconf(_SC_NPROCESSORS_CONF);