diff options
author | Andi Kleen <ak@linux.intel.com> | 2016-02-10 10:38:43 -0800 |
---|---|---|
committer | Andi Kleen <ak@linux.intel.com> | 2016-02-10 10:38:43 -0800 |
commit | 89d3888aada31103d433e14f7c8a9c45ea1c3011 (patch) | |
tree | 32c42a3509023e14684fda260c5e9560f5d741a1 | |
parent | f3831561806044c8dd7665e531d7e36972ee10f7 (diff) | |
download | mcelog-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.c | 9 |
1 files changed, 5 insertions, 4 deletions
@@ -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); |