From 91e032ed004c897e66c50f1476187451c1e67c3f Mon Sep 17 00:00:00 2001 From: HATAYAMA Daisuke Date: Wed, 20 Mar 2013 15:08:36 +1100 Subject: [PATCH] vmcore: allocate per-cpu crash_notes objects on page-size boundary To satisfy mmap()'s page-size boundary requirement, allocate per-cpu crash_notes objects on page-size boundary. /proc/vmcore on the 2nd kernel checks if each note objects is allocated on page-size boundary. If there's some object not satisfying the page-size boundary requirement, /proc/vmcore doesn't provide mmap() interface. Signed-off-by: HATAYAMA Daisuke Cc: Zhang Yanfei Cc: Vivek Goyal Cc: "Eric W. Biederman" Signed-off-by: Andrew Morton --- kernel/kexec.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kernel/kexec.c b/kernel/kexec.c index 38f5fab4d5eb..7627bd862010 100644 --- a/kernel/kexec.c +++ b/kernel/kexec.c @@ -1223,7 +1223,8 @@ void crash_save_cpu(struct pt_regs *regs, int cpu) static int __init crash_notes_memory_init(void) { /* Allocate memory for saving cpu registers. */ - crash_notes = alloc_percpu(note_buf_t); + crash_notes = __alloc_percpu(roundup(sizeof(note_buf_t), PAGE_SIZE), + PAGE_SIZE); if (!crash_notes) { printk("Kexec: Memory allocation for saving cpu register" " states failed\n"); -- 2.39.5