Subject: Re: [PATCH] Do not inline putprops function

From: Milton Miller <[email-masked]>
Date: Mon, 10 Aug 2009 02:37:49 -0500

On Thu Aug 6 at about 02:49:38 EST in 2009, M. Mohan Kumar  wrote:
>
> When I align the dtstruct variable to 8 bytes, I am able to invoke kdump.
> 
> When the line
> 	static unsigned dtstruct[TREEWORDS], *dt;
> changed to 
> 	static unsigned dtstruct[TREEWORDS] __attribute__ ((aligned (8))), *dt;
> 
> kexec-tool works.

Doh.  that is the correct fix.

kexec is creating a version 3 device tree, to be backwards compatible
as far as possible.  (Well, that and it was written before version 3
existed).  This version of the struct has 8-byte alignment for properties
whose value is 8 or more bytes.  As the code directly checks the pointer
when deciding to add the alignment word, the struct memory must start on
an 8 byte boundary.

Mohan, please prepare a patch with the above text in the changelog 
and send it to Simon.

thanks.
milton