From: iap10@labyrinth.cl.cam.ac.uk Date: Tue, 8 Feb 2005 03:14:41 +0000 (+0000) Subject: bitkeeper revision 1.1159.223.79 (42082ea1obdbIutzD0IY-9Fdcf7Exw) X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~17400^2~178 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=02f82c278807571fd2a6a88e7921f5f11f8975d3;p=xen.git bitkeeper revision 1.1159.223.79 (42082ea1obdbIutzD0IY-9Fdcf7Exw) Fix to memory debugging audit code. Signed-off-by: ian@xensource.com --- diff --git a/xen/arch/x86/memory.c b/xen/arch/x86/memory.c index 486d6ba407..e438ed68b8 100644 --- a/xen/arch/x86/memory.c +++ b/xen/arch/x86/memory.c @@ -2279,7 +2279,6 @@ void audit_domain(struct domain *d) } /* PHASE 3 */ - list_ent = d->page_list.next; for ( i = 0; (list_ent != &d->page_list); i++ ) { @@ -2300,7 +2299,12 @@ void audit_domain(struct domain *d) if ( pt[i] & _PAGE_PRESENT ) { unsigned long l1pfn = pt[i]>>PAGE_SHIFT; - struct pfn_info *l1page = &frame_table[l1pfn]; + struct pfn_info *l1page; + + if (l1pfn>max_page) + continue; + + l1page = &frame_table[l1pfn]; if ( l1page->u.inuse.domain == d) adjust(l1page, 1, 1); @@ -2321,7 +2325,12 @@ void audit_domain(struct domain *d) if ( pt[i] & _PAGE_PRESENT ) { unsigned long l1pfn = pt[i]>>PAGE_SHIFT; - struct pfn_info *l1page = &frame_table[l1pfn]; + struct pfn_info *l1page; + + if (l1pfn>max_page) + continue; + + l1page = &frame_table[l1pfn]; if ( (l1page->u.inuse.domain != d) || (l1pfn < 0x100) || (l1pfn > max_page) )