[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-ia64-devel] [patch 14/14] ia64: kexec: Map EFI regions into the same place they are maped into in Linux



On Tue, Jul 15, 2008 at 11:26:29AM +0900, Isaku Yamahata wrote:
> On Mon, Jul 14, 2008 at 10:22:19PM +1000, Simon Horman wrote:

[snip]

> > > --- a/xen/include/asm-ia64/linux-xen/linux/efi.h  Mon Jul 14 19:31:54 
> > > 2008 +0900
> > > +++ b/xen/include/asm-ia64/linux-xen/linux/efi.h  Mon Jul 14 19:33:20 
> > > 2008 +0900
> > > @@ -25,6 +25,7 @@
> > >  #include <asm/system.h>
> > >  
> > >  #ifdef XEN
> > > +#include <asm/meminit.h>     /* GRANULEROUNDDOWN */
> > >  extern void * pal_vaddr;
> > >  #endif
> > >  
> > > @@ -474,6 +475,10 @@
> > >  } while (0)
> > >  
> > >  #define XEN_EFI_RR_RESTORE(rr6, rr7) do {                \
> > > + ia64_ptr(0x1 /*I*/,                             \
> > > +          GRANULEROUNDDOWN(                      \
> > > +                  (unsigned long)pal_vaddr),     \
> > > +          IA64_GRANULE_SHIFT);                   \
> > >   set_one_rr_efi(6UL << 61, rr6);                 \
> > >   set_one_rr_efi(7UL << 61, rr7);                 \
> > 
> > I don't think this is quite right because ia64_new_rr7_efi
> > (via set_one_rr_efi()) will just reinsert the pal_vaddr.
> > 
> > I think it might be better to make things a bit more symmetrical.
> > Pin pal_vaddr in XEN_EFI_RR_SAVE after calling set_one_rr_efi(),
> > unpin it in XEN_EFI_RR_RESTORE (as above) and not touch it at all in
> > set_one_rr_efi().
> > 
> 
> Agreed. I also came up that it should be more symmetorical.
> It should that ia64_new_rr7_efi() shouldn't pin down pal code and
> the macros should be something like
> 
> #define XEN_EFI_RR_SAVE
>       set_one_rr_efi(rr6)
>       set_one_rr_efi(rr7)
>       pin down pal code
>         ia64_ptr()
>         ia64_itr()
>         Probably efi_map_pal_code() can be stolen.
>         Maybe inline function?
>         
> #define XEN_EFI_RR_RESTORE
>       purge pinning pal code
>         ia64_ptr(...)
>       set_one_rr_efi(rr6)
>       set_one_rr_efi(rr7)

Yes, that is pretty much what I was thinking.
It seemed nice to create a efi_unmap_pal_code() as well.

I sent a new series this morning, which includes this patch.
Let me know what you think.

_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.