aboutsummaryrefslogtreecommitdiffstats
path: root/xen/common/memory.c
diff options
context:
space:
mode:
authorTim Deegan <tim@xen.org>2012-03-15 11:40:51 +0000
committerTim Deegan <tim@xen.org>2012-03-15 11:40:51 +0000
commit2daf35021672e3e94341a8f6c929df68cb10dbf1 (patch)
tree779bfe832de9598b6fed70aece51ce4da39d2527 /xen/common/memory.c
parent90e88dbae3bf93415fc40654c8ca213523ea556f (diff)
downloadxen-2daf35021672e3e94341a8f6c929df68cb10dbf1.tar.gz
xen-2daf35021672e3e94341a8f6c929df68cb10dbf1.tar.bz2
xen-2daf35021672e3e94341a8f6c929df68cb10dbf1.zip
mm: guest_remove_page() should not populate or unshare.
guest_remove_page() ought to use get_gfn_query() to look up the current state of the gfn. Otherwise it might populate or unshare the gfn just before dropping it. Signed-off-by: Tim Deegan <tim@xen.org> Committed-by: Tim Deegan <tim@xen.org>
Diffstat (limited to 'xen/common/memory.c')
-rw-r--r--xen/common/memory.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/xen/common/memory.c b/xen/common/memory.c
index 907c6fdbde..3f02380fdf 100644
--- a/xen/common/memory.c
+++ b/xen/common/memory.c
@@ -162,7 +162,7 @@ int guest_remove_page(struct domain *d, unsigned long gmfn)
unsigned long mfn;
#ifdef CONFIG_X86
- mfn = mfn_x(get_gfn(d, gmfn, &p2mt));
+ mfn = mfn_x(get_gfn_query(d, gmfn, &p2mt));
if ( unlikely(p2m_is_paging(p2mt)) )
{
guest_physmap_remove_page(d, gmfn, mfn, 0);