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.


_______________________________________________
kexec mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/kexec

Reply via email to