On Tue, 2 Jul 2013 12:23:23 -0400 Vivek Goyal <vgoyal at redhat.com> wrote: > On Mon, Jul 01, 2013 at 09:32:36PM +0200, Michael Holzheu wrote: > > [..] > > +ssize_t elfcorehdr_read(char *buf, size_t count, u64 *ppos) > > +{ > > + void *src = (void *)(unsigned long)*ppos; > > + > > + src = elfcorehdr_newmem ? src : src - OLDMEM_BASE; > > Seriously, we need to get rid of all this OLDMEM_BASE logic in s390 > specific code. For regular kdump, it is no different than x86. Only > special handling required for zfcpdump for HSA region. > > Why do we need above. Is it to cover the case where elfcorehdr have > been prepared by user space? Are elf headers initially stored in > reserved region and then swapped. Why do we need to swap these or > why kexec-tools could not take care of swapping it. I know it is confusing. The "src - OLDMEM_BASE" term is currently needed because of the swap issue that we have discussed already. We load the ELF header into reserved memory [OLDMEM_BASE, OLDMEM_BASE + OLDMEM_SIZE] that is swapped with [0, OLDMEM_SIZE]. So the ELF header address has to be adjusted. Thanks! Michael