summaryrefslogtreecommitdiff
path: root/sysutils/mcelog/files/patch-intel.c
diff options
context:
space:
mode:
Diffstat (limited to 'sysutils/mcelog/files/patch-intel.c')
-rw-r--r--sysutils/mcelog/files/patch-intel.c27
1 files changed, 18 insertions, 9 deletions
diff --git a/sysutils/mcelog/files/patch-intel.c b/sysutils/mcelog/files/patch-intel.c
index 50ba80932891..382f20b4158f 100644
--- a/sysutils/mcelog/files/patch-intel.c
+++ b/sysutils/mcelog/files/patch-intel.c
@@ -1,21 +1,30 @@
---- ./intel.c.orig 2009-12-15 07:18:40.000000000 -0500
-+++ ./intel.c 2011-10-14 22:36:47.000000000 -0400
-@@ -38,7 +38,7 @@
+--- intel.c.orig 2010-01-20 18:36:52.000000000 -0800
++++ intel.c 2012-09-22 01:58:40.204115724 -0700
+@@ -43,7 +43,7 @@
return CPU_CORE2;
else if (model == 0x1d)
return CPU_DUNNINGTON;
- else if (model == 0x1a)
+ else if (model == 0x1a || model == 0x2c) /* Nehalem/Westmere */
return CPU_NEHALEM;
-
- if (model >= 0x1a)
-@@ -79,7 +79,9 @@
+ else if (model == 0x2e)
+ return CPU_XEON75XX;
+@@ -94,14 +94,18 @@
+ if (recordlen > offsetof(struct mce, mcgcap) && m->mcgcap & MCG_CMCI_P)
corr_err_cnt = EXTRACT(m->status, 38, 52);
- memory_error(m, channel, dimm, corr_err_cnt, recordlen);
+ memory_error(m, channel[0], dimm[0], corr_err_cnt, recordlen);
++#ifdef __Linux__
+ account_page_error(m, channel[0], dimm[0]);
++#endif
+ /*
+ * When both DIMMs have a error account the error twice to the page.
+ */
+ if (channel[1] != -1) {
+ memory_error(m, channel[1], dimm[1], corr_err_cnt, recordlen);
+#ifdef __Linux__
- account_page_error(m, channel, dimm, corr_err_cnt);
+ account_page_error(m, channel[1], dimm[1]);
+#endif
+ }
return 1;
- }