On Mon, Mar 04, 2013 at 11:26:24AM +0530, Suzuki K. Poulose wrote: > On 03/04/2013 07:11 AM, Simon Horman wrote: > >[ Cc: linuxppc-dev at lists.ozlabs.org ] > > > >On Sun, Mar 03, 2013 at 01:06:00PM +0530, Suzuki K. Poulose wrote: > >>From: Suzuki K. Poulose <suzuki at in.ibm.com> > >> > >>uImage probe fills the entry point (ep) based on the load_addr > >>from the uImage headers. If we change the load_addr, we should > >>accordingly update the entry point. > >> > >>For ELF, calculate the offset of e_entry from the virtual start > >>address and add it to the physical start address to find the > >>physical address of kernel entry. > >> > >>i.e, > >> pa (e_entry) = pa(phdr[0].p_vaddr) + (e_entry - phdr[0].p_vaddr) > >> = kernel_addr + (e_entry - phdr[0].p_vaddr) > > > >Would it be possible for someone to provide a review of this change? > To make it bit more clear : > > The entry point of the kernel is usually at 0 offset from the first > PT_LOAD section. The current code makes this assumption and uses the > pa(phdr[0].p_vaddr) as the kernel entry. > > But this *may* not be true always, in such a case the kexec would fail. > While I fixed the uImage case, I thought it would be better to > handle the same case in ELF. > > Btw, this calculation is not specific to ppc32. Thanks, I have applied the patch.