On Mon, Oct 06, 2008 at 04:00:49PM -0600, Bjorn Helgaas wrote: > On Monday 06 October 2008 3:32:10 pm Simon Horman wrote: > > On Mon, Oct 06, 2008 at 09:24:03AM -0600, Bjorn Helgaas wrote: > > > The EFI Runtime Services Table contains pointers to ia64 function > > > descriptors. On existing, pre-Tiano, firmware, SetVirtualAddressMap() > > > converts *all* these pointers from physical to virtual. On Tiano-based > > > firmware, the pointer to the SetVirtualAddressMap() function descriptor > > > is not converted, so it remains a physical pointer. > > > > > > The ia64 kexec purgatory patches the SetVirtualAddressMap() function > > > descriptor so that when the new kernel calls SetVirtualAddressMap(), it > > > never reaches firmware. Instead, it calls a dummy function that just > > > returns success. > > > > > > Purgatory runs in physical mode, so it must convert the pointer from the > > > RuntimeServicesTable to a physical address. This patch makes that > > > conversion work both for old firmware (where the pointer is an identity- > > > mapped virtual address) and new Tiano firmware (where the pointer is a > > > physical address). > > > > > > Without this patch, kexec on Tiano firmware causes an MCA because > > > ia64_env_setup() subtracts PAGE_OFFSET from a physical address and ends > > > up with an invalid physical address. Referencing that address causes > > > the MCA. > > > > > > Signed-off-by: Bjorn Helgaas <bjorn.helgaas at hp.com> > > > > Thanks Bjorn, applied. > > Thanks! > > Any idea when you'll make another kexec-tools release? I have a > Red Hat feature request in for RHEL6, and they'll need to know > what kexec-tools version to look for. RH will get the latest > for RHEL6, but I really don't know when they'll start putting > that together. > > https://bugzilla.redhat.com/show_bug.cgi?id=463477 I'm happy to make one soon if that helps. -- Simon Horman VA Linux Systems Japan K.K., Sydney, Australia Satellite Office H: www.vergenet.net/~horms/ W: www.valinux.co.jp/en