summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/linux/kexec.h5
-rw-r--r--kernel/kexec.c2
2 files changed, 7 insertions, 0 deletions
diff --git a/include/linux/kexec.h b/include/linux/kexec.h
index 83337456b71..db15a94769b 100644
--- a/include/linux/kexec.h
+++ b/include/linux/kexec.h
@@ -132,11 +132,16 @@ unsigned long paddr_vmcoreinfo_note(void);
#define SIZE(name) \
vmcoreinfo_append_str("SIZE(%s)=%lu\n", #name, \
(unsigned long)sizeof(struct name))
+#define TYPEDEF_SIZE(name) \
+ vmcoreinfo_append_str("SIZE(%s)=%lu\n", #name, \
+ (unsigned long)sizeof(name))
#define OFFSET(name, field) \
vmcoreinfo_append_str("OFFSET(%s.%s)=%lu\n", #name, #field, \
(unsigned long)&(((struct name *)0)->field))
#define LENGTH(name, value) \
vmcoreinfo_append_str("LENGTH(%s)=%lu\n", #name, (unsigned long)value)
+#define NUMBER(name) \
+ vmcoreinfo_append_str("NUMBER(%s)=%ld\n", #name, (long)name)
#define CONFIG(name) \
vmcoreinfo_append_str("CONFIG_%s=y\n", #name)
diff --git a/kernel/kexec.c b/kernel/kexec.c
index b979b010b6d..578bde9bbc9 100644
--- a/kernel/kexec.c
+++ b/kernel/kexec.c
@@ -1218,6 +1218,7 @@ static int __init crash_save_vmcoreinfo_init(void)
SIZE(zone);
SIZE(free_area);
SIZE(list_head);
+ TYPEDEF_SIZE(nodemask_t);
OFFSET(page, flags);
OFFSET(page, _count);
OFFSET(page, mapping);
@@ -1237,6 +1238,7 @@ static int __init crash_save_vmcoreinfo_init(void)
OFFSET(list_head, next);
OFFSET(list_head, prev);
LENGTH(zone.free_area, MAX_ORDER);
+ NUMBER(NR_FREE_PAGES);
arch_crash_save_vmcoreinfo();