On 07/30/15 at 01:15pm, Minfei Huang wrote: > On 07/30/15 at 11:07am, Baoquan He wrote: > > diff --git a/kernel/kexec.c b/kernel/kexec.c > > index a785c10..1740c42 100644 > > --- a/kernel/kexec.c > > +++ b/kernel/kexec.c > > @@ -1620,7 +1620,16 @@ 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); > > + size_t size, align; > > + int order; > > + > > + size = sizeof(note_buf_t); > > + order = get_count_order(size); > > + align = 1<< order; > > + > > + WARN_ON(size > PAGE_SIZE); > > It is fine without this warning, since percpu will fail to allocate the > memory larger than PAGE_SIZE. Thanks for your comment. percpu will fail if align is larger than PAGE_SIZE. I will adjust it as align = min(1<<order, PAGE_SIZE). But adding WARN_ON makes sense in case sizeof(note_buf_t) is bigger than PAGE_SIZE in the future, then we need consider changing the design of storing crash_notes. Thanks Baoquan