[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] fix c/s 18720 & 18731
Okay. This is simply because PGT_partial holds a type reference? The patch can be much simplified because the tlbflush_timestamp is not required (this domain will never run again) and because shadow mode has already been torn down. I'll simplify and apply. -- Keir On 29/10/08 11:30, "Jan Beulich" <jbeulich@xxxxxxxxxx> wrote: > Entirely removing the tail of free_page_type() wasn't correct - the > type reference must still be dropped for partial pages. > > Admittedly, I'm not sure the flush time stamp update is also needed > here, but it seems safer to also copy it from free_page_type()'s former > tail. > > Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx> > > Index: 2008-10-27/xen/arch/x86/domain.c > =================================================================== > --- 2008-10-27.orig/xen/arch/x86/domain.c 2008-10-28 15:30:37.000000000 +0100 > +++ 2008-10-27/xen/arch/x86/domain.c 2008-10-28 15:31:15.000000000 +0100 > @@ -42,6 +42,7 @@ > #include <asm/mpspec.h> > #include <asm/ldt.h> > #include <asm/hypercall.h> > +#include <asm/shadow.h> > #include <asm/hvm/hvm.h> > #include <asm/hvm/support.h> > #include <asm/debugreg.h> > @@ -1687,6 +1688,16 @@ static int relinquish_memory( > { > if ( free_page_type(page, x, 0) != 0 ) > BUG(); > + > + if ( !(shadow_mode_enabled(d) && > + (page->count_info & PGC_page_table)) ) > + page->tlbflush_timestamp = tlbflush_current_time(); > + > + if ( x & PGT_partial ) > + { > + wmb(); > + page->u.inuse.type_info--; > + } > break; > } > } > > > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@xxxxxxxxxxxxxxxxxxx > http://lists.xensource.com/xen-devel _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |