| From | HATAYAMA Daisuke <> | Subject | [PATCH v3 12/21] vmcore: allocate per-cpu crash_notes objects on page-size boundary | Date | Sat, 16 Mar 2013 13:01:54 +0900 |
| |
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 <d.hatayama@jp.fujitsu.com> ---
kernel/kexec.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/kernel/kexec.c b/kernel/kexec.c index bddd3d7..d1f365e 100644 --- a/kernel/kexec.c +++ b/kernel/kexec.c @@ -1234,7 +1234,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");
|