On 11/17/2012 08:47 PM, Eric W. Biederman wrote: >> >> I don't think that is feasible; we need access to this structure >> extremely early. I think if you're using the 64-bit entry point it >> has to be an entry condition that those structures are mapped. It >> simply becomes a precondition for using the 64-bit entry point. > > 64bit purgatory coming from kexec should be running with a page table > that identity maps everything loaded by kexec and in practice all of > memory. > > We should still be using that page table when we enter the new kernel. > > However then the 64bit kernel switches to it's own page tables. > > So after that point we potentially need early_ioremap, because the > kernel's page tables may not have covered the boot_params. Certainly we > need to do something to ensure the kernels page table covers boot_params. > The easy way to fix that is to do what we do on 32 bits: we copy it into the bss before we turn paging on (the 64-bit equivalent is before we switch to the new page tables.) That way we know where it is, at least for the bounded-size data items. -hpa -- H. Peter Anvin, Intel Open Source Technology Center I work for Intel. I don't speak on their behalf.