diff options
-rw-r--r-- | include/linux/kexec.h | 5 | ||||
-rw-r--r-- | kernel/kexec.c | 2 |
2 files changed, 7 insertions, 0 deletions
diff --git a/include/linux/kexec.h b/include/linux/kexec.h index 83337456b716..db15a94769b3 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 b979b010b6d8..578bde9bbc98 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(); |