aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@novell.com>2012-07-09 10:30:16 +0100
committerJan Beulich <jbeulich@novell.com>2012-07-09 10:30:16 +0100
commit5ff33f25fdb131500779cc81ac26c454cd175e9c (patch)
tree580b976c0b636f65724b8efc598633ed88a99e62
parenteff23cb0e5fa78b33af6e97d6a96fe106e40c4ae (diff)
downloadxen-5ff33f25fdb131500779cc81ac26c454cd175e9c.tar.gz
xen-5ff33f25fdb131500779cc81ac26c454cd175e9c.tar.bz2
xen-5ff33f25fdb131500779cc81ac26c454cd175e9c.zip
x86/mm: fix mod_l1_entry() return value when encountering r/o MMIO page
While putting together the workaround announced in http://lists.xen.org/archives/html/xen-devel/2012-06/msg00709.html, I found that mod_l1_entry(), upon encountering a set bit in mmio_ro_ranges, would return 1 instead of 0 (the removal of the write permission is supposed to be entirely transparent to the caller, even more so to the calling guest). Signed-off-by: Jan Beulich <jbeulich@suse.com> Acked-by: Keir Fraser <keir@xen.org> xen-unstable changeset: 25487:baa85434d0ec xen-unstable date: Thu Jun 21 11:30:59 2012 +0200
-rw-r--r--xen/arch/x86/mm.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 583e1f74bd..5ad30d386a 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -1801,6 +1801,7 @@ static int mod_l1_entry(l1_pgentry_t *pl1e, l1_pgentry_t nl1e,
return 0;
case -1:
l1e_remove_flags(nl1e, _PAGE_RW);
+ rc = 0;
break;
}