On 03/20/14 at 11:57am, Wang Nan wrote: > On 2014/3/20 11:34, Dave Young wrote: > > On 03/20/14 at 11:26am, Dave Young wrote: > >> On 03/20/14 at 10:36am, Wang Nan wrote: > >>> This patch append the position of initrd to dtb when loading arm kernel > >>> and initrd without using atag. > >>> > >>> 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 | 84 +++++++++++++++++++++++++++------------ > >>> 1 file changed, 59 insertions(+), 25 deletions(-) > >>> > >>> diff --git a/kexec/arch/arm/kexec-zImage-arm.c b/kexec/arch/arm/kexec-zImage-arm.c > >>> index 8a35018..15d8829 100644 > >>> --- a/kexec/arch/arm/kexec-zImage-arm.c > >>> +++ b/kexec/arch/arm/kexec-zImage-arm.c > >>> @@ -20,6 +20,7 @@ > >>> #include "kexec-arm.h" > >>> #include "../../fs2dt.h" > >>> #include "crashdump-arm.h" > >>> +#include "libfdt_internal.h" > >> > >> I guess it's for the FDT_TAGALIGN and FDT_TAGSIZE? > >> libfdt_internal.h should be used as internal header for libfdt, a better way is > >> adding another patch which move these 2 macros to fdt.h > > > > Or moving your new function setup_dtb_prop to libfdt, I'm not sure if it works on > > other arch though. > > > >> Thanks > >> Dave > > > What about following midification (FDT_TAGSIZE is in fdt.h)? > I'll send it formally if you agree this one. > > diff --git a/kexec/arch/arm/kexec-zImage-arm.c b/kexec/arch/arm/kexec-zImage-arm.c > index 15d8829..1cd4ed0 100644 > --- a/kexec/arch/arm/kexec-zImage-arm.c > +++ b/kexec/arch/arm/kexec-zImage-arm.c > @@ -20,7 +20,6 @@ > #include "kexec-arm.h" > #include "../../fs2dt.h" > #include "crashdump-arm.h" > -#include "libfdt_internal.h" > > #define BOOT_PARAMS_SIZE 1536 > > @@ -229,8 +228,8 @@ static int setup_dtb_prop(char **bufp, off_t *sizep, const char *node_name, > dtb_buf = *bufp; > > *sizep = fdt_totalsize(*bufp) + FDT_TAGSIZE + len + > - FDT_TAGALIGN(strlen(node_name) + 1) + > - FDT_TAGALIGN(strlen(prop_name) + 1) + > + _ALIGN(strlen(node_name) + 1, FDT_TAGSIZE) + > + _ALIGN(strlen(prop_name) + 1, FDT_TAGSIZE) + > sizeof(struct fdt_property); > > dtb_buf = xrealloc(dtb_buf, *sizep); > Looks good... Thanks Dave