|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] x86/mm/shadow: spurious warning when unmapping xenheap pages.
commit cfc515dabe91e3d6c690c68c6a669d6d77fb7ac4
Author: Tim Deegan <tim@xxxxxxx>
AuthorDate: Thu Mar 28 10:32:17 2013 +0000
Commit: Tim Deegan <tim@xxxxxxx>
CommitDate: Thu Apr 4 10:14:30 2013 +0100
x86/mm/shadow: spurious warning when unmapping xenheap pages.
Xenheap pages will always have an extra typecount, taken in
share_xen_page_with_guest(), which doesn't come from a shadow PTE.
Adjust the warning in sh_remove_all_mappings() to account for it.
Reported-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
Signed-off-by: Tim Deegan <tim@xxxxxxx>
Tested-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
---
xen/arch/x86/mm/shadow/common.c | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/xen/arch/x86/mm/shadow/common.c b/xen/arch/x86/mm/shadow/common.c
index 4b576ac..adffa06 100644
--- a/xen/arch/x86/mm/shadow/common.c
+++ b/xen/arch/x86/mm/shadow/common.c
@@ -2437,10 +2437,13 @@ int sh_remove_all_mappings(struct vcpu *v, mfn_t gmfn)
{
/* Don't complain if we're in HVM and there are some extra mappings:
* The qemu helper process has an untyped mapping of this dom's RAM
- * and the HVM restore program takes another. */
+ * and the HVM restore program takes another.
+ * Also allow one typed refcount for xenheap pages, to match
+ * share_xen_page_with_guest(). */
if ( !(shadow_mode_external(v->domain)
&& (page->count_info & PGC_count_mask) <= 3
- && (page->u.inuse.type_info & PGT_count_mask) == 0) )
+ && ((page->u.inuse.type_info & PGT_count_mask)
+ == !!is_xen_heap_page(page))) )
{
SHADOW_ERROR("can't find all mappings of mfn %lx: "
"c=%08lx t=%08lx\n", mfn_x(gmfn),
--
generated by git-patchbot for /home/xen/git/xen.git#master
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |