[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen stable-4.2] x86/mm/shadow: spurious warning when unmapping xenheap pages.
commit 0984c2b63a7c3e9dfa770b29dac51a5124aecaab Author: Tim Deegan <tim@xxxxxxx> AuthorDate: Tue Apr 9 16:07:23 2013 +0200 Commit: Jan Beulich <jbeulich@xxxxxxxx> CommitDate: Tue Apr 9 16:07:23 2013 +0200 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> master commit: cfc515dabe91e3d6c690c68c6a669d6d77fb7ac4 master date: 2013-04-04 10:14:30 +0100 --- xen/arch/x86/mm/shadow/common.c | 7 +++++-- xen/include/asm-x86/mm.h | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/xen/arch/x86/mm/shadow/common.c b/xen/arch/x86/mm/shadow/common.c index dc245be..ef06a03 100644 --- a/xen/arch/x86/mm/shadow/common.c +++ b/xen/arch/x86/mm/shadow/common.c @@ -2515,10 +2515,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), diff --git a/xen/include/asm-x86/mm.h b/xen/include/asm-x86/mm.h index a7bb3bb..ba92568 100644 --- a/xen/include/asm-x86/mm.h +++ b/xen/include/asm-x86/mm.h @@ -246,7 +246,7 @@ struct spage_info #endif #if defined(__i386__) -#define is_xen_heap_page(page) is_xen_heap_mfn(page_to_mfn(page)) +#define is_xen_heap_page(page) is_xen_heap_mfn(__page_to_mfn(page)) #define is_xen_heap_mfn(mfn) ({ \ unsigned long _mfn = (mfn); \ (_mfn < paddr_to_pfn(xenheap_phys_end)); \ -- generated by git-patchbot for /home/xen/git/xen.git#stable-4.2 _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |