[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] Fix emulated writable pagetable updates where access is
# HG changeset patch # User kaf24@xxxxxxxxxxxxxxxxxxxx # Node ID 0cd6a23b8d6e0ccf91f48b0a93aa804faf655db9 # Parent 67a13c0ac87d7878444a5ace1844f4bfb4769295 Fix emulated writable pagetable updates where access is less than a full pte and operation requires cmpxchg. Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx> diff -r 67a13c0ac87d -r 0cd6a23b8d6e xen/arch/x86/mm.c --- a/xen/arch/x86/mm.c Thu Aug 18 17:46:26 2005 +++ b/xen/arch/x86/mm.c Thu Aug 18 18:02:46 2005 @@ -3059,7 +3059,7 @@ } /* Turn a sub-word access into a full-word access. */ - if (bytes != sizeof(physaddr_t)) + if ( bytes != sizeof(physaddr_t) ) { int rc; physaddr_t full; @@ -3076,6 +3076,10 @@ val &= (((physaddr_t)1 << (bytes*8)) - 1); val <<= (offset)*8; val |= full; + /* Also fill in missing parts of the cmpxchg old value. */ + old &= (((physaddr_t)1 << (bytes*8)) - 1); + old <<= (offset)*8; + old |= full; } /* Read the PTE that maps the page being updated. */ _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |