|
|
|
|
|
|
|
|
|
|
xen-changelog
[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
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-changelog] Fix emulated writable pagetable updates where access is,
Xen patchbot -unstable <=
|
|
|
|
|