On Wed, Nov 14, 2012 at 03:38:43PM +0800, Dave Young wrote: > On 11/14/2012 12:38 AM, Vivek Goyal wrote: > > > A 32bit arch can prepare ELF64 headers. For example for PAE case to > > preresent file offsets 64bit but data size at the offset still remains > > 32bit. If we just base our decision based on EI_CLASS, then we will try > > to read 64bit data from file and can run into various issues. > > > > We ran into following issue when we tried to run vmcore-dmesg on a 32bit > > PAE system vmcore which had 64bit elf headers. > > > > No program header covering vaddr 0xc0a6a688c0b89100found kexec bug? > > > > Basically we try to read value of log_buf variable from address > > log_buf_vaddr. We read in 64bit value and then pass that value again > > to vaddr_to_offset() in an attempt to get to actual log_buf start > > and get error message. > > > > So determine the machine pointer size based on ELF class and arch and read > > the bytes from file accordingly. > > > > v2: Fixed the code as per suggestion from Eric. > > > > Signed-off-by: Vivek Goyal <vgoyal at redhat.com> > > > Ack Thanks, applied.