x86, mce: store record length into memory struct mce anchor
authorAndi Kleen <andi@firstfloor.org>
Wed, 27 May 2009 19:56:55 +0000 (21:56 +0200)
committerH. Peter Anvin <hpa@zytor.com>
Wed, 3 Jun 2009 21:40:38 +0000 (14:40 -0700)
This makes it easier for tools who want to extract the mcelog out of
crash images or memory dumps to adapt to changing struct mce size.
The length field replaces padding, so it's fully compatible.

Signed-off-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
arch/x86/include/asm/mce.h
arch/x86/kernel/cpu/mcheck/mce.c

index 63abf3b1943216a3aee268593bcfe9335815a8a4..0a61946d4396a71095e0564b33daaff634aa55e1 100644 (file)
@@ -59,7 +59,7 @@ struct mce_log {
        unsigned len;       /* = MCE_LOG_LEN */
        unsigned next;
        unsigned flags;
-       unsigned pad0;
+       unsigned recordlen;     /* length of struct mce */
        struct mce entry[MCE_LOG_LEN];
 };
 
index 784f6ae9d6f4d8e294a9fa7d5607205cabca1e46..3db047e7a0fb93eb6d6df543019ecf3c55b2bcd4 100644 (file)
@@ -108,8 +108,9 @@ EXPORT_PER_CPU_SYMBOL_GPL(injectm);
  */
 
 static struct mce_log mcelog = {
-       MCE_LOG_SIGNATURE,
-       MCE_LOG_LEN,
+       .signature      = MCE_LOG_SIGNATURE,
+       .len            = MCE_LOG_LEN,
+       .recordlen      = sizeof(struct mce),
 };
 
 void mce_log(struct mce *mce)