On 03/20/14 at 10:36am, Wang Nan wrote: > Before this patch, when no --image-size passed, initrd_base is caculated using > base + len * 4, which is unaligned, and unable to pass check in > add_segment_phys_virt(): > > if (base & (pagesize -1)) { > die("Base address: 0x%lx is not page aligned\n", base); > } > > This patch also uses getpagesize() instead of hard encoded 4096. > > Signed-off-by: Wang Nan <wangnan0 at huawei.com> > Cc: Simon Horman <horms at verge.net.au> > Cc: Dave Young <dyoung at redhat.com> > Cc: Geng Hui <hui.geng at huawei.com> > --- > kexec/arch/arm/kexec-zImage-arm.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/kexec/arch/arm/kexec-zImage-arm.c b/kexec/arch/arm/kexec-zImage-arm.c > index 792187a..8a35018 100644 > --- a/kexec/arch/arm/kexec-zImage-arm.c > +++ b/kexec/arch/arm/kexec-zImage-arm.c > @@ -347,11 +347,11 @@ int zImage_arm_load(int argc, char **argv, const char *buf, off_t len, > /* If the image size was passed as command line argument, > * use that value for determining the address for initrd, > * atags and dtb images. page-align the given length.*/ > - initrd_base = base + _ALIGN(kexec_arm_image_size, 4096); > + initrd_base = base + _ALIGN(kexec_arm_image_size, getpagesize()); > } else { > /* Otherwise, assume the maximum kernel compression ratio > * is 4, and just to be safe, place ramdisk after that */ > - initrd_base = base + len * 4; > + initrd_base = base + _ALIGN(len * 4, getpagesize()); > } > > if (use_atags) { > -- > 1.8.4 > Acked-by: Dave Young <dyoung at redhat.com> Thanks Dave