WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] [patch] pae: tlbflush linear page table updates

On Wed, Aug 10, 2005 at 11:54:22AM +0100, Keir Fraser wrote:
> 
> On 10 Aug 2005, at 11:28, Gerd Knorr wrote:
> 
> >And it isn't the mod_l3 update which broke PAE, it's the
> >__not_mapped() removal.  Applying the bits below reversed
> >makes PAE boot again.
> 
> afaics the only change for pae is use of __get_user() rather than 
> directly reading from the pl2e. Perhaps __get_user() on 8-byte 
> quantities is broken, although I'm sure that must be used elsewhere and 
> so is tested....

Sure?  The patch below fixes it for me.

The tlbflush stuff is red herring btw, the real difference is
optimization.  Build with "optimize=n" boot fine, others don't.

  Gerd

Index: xen/arch/x86/mm.c
===================================================================
--- xen.orig/arch/x86/mm.c      2005-08-10 14:09:59.476430318 +0200
+++ xen/arch/x86/mm.c   2005-08-10 14:13:50.906986616 +0200
@@ -2940,7 +2940,7 @@ int ptwr_do_page_fault(struct domain *d,
     pl2e = &__linear_l2_table[l2_idx];
     which = PTWR_PT_INACTIVE;
 
-    if ( (__get_user(l2e.l2, &pl2e->l2) == 0) && (l2e_get_pfn(l2e) == pfn) )
+    if ( (__copy_from_user(&l2e, pl2e, sizeof(l2e)) == 0) && (l2e_get_pfn(l2e) 
== pfn) )
     {
         /*
          * Check the PRESENT bit to set ACTIVE mode.

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

<Prev in Thread] Current Thread [Next in Thread>