bitkeeper revision 1.1159.223.81 (42091872lrObHIRNczDaqDeQw3NmyA)
authoriap10@freefall.cl.cam.ac.uk <iap10@freefall.cl.cam.ac.uk>
Tue, 8 Feb 2005 19:52:18 +0000 (19:52 +0000)
committeriap10@freefall.cl.cam.ac.uk <iap10@freefall.cl.cam.ac.uk>
Tue, 8 Feb 2005 19:52:18 +0000 (19:52 +0000)
debug memory audit cleanups + comment fix from Jon Mason.
Signed-off-by: ian.pratt@cl.cam.ac.uk
linux-2.6.10-xen-sparse/drivers/xen/netback/netback.c
xen/arch/x86/domain.c
xen/arch/x86/memory.c

index 05b043c1751e1a46f108421841a9095b2e754bef..6d29cc262fd40ac47ff6276194b40ebfabac4c8a 100644 (file)
@@ -1,11 +1,11 @@
 /******************************************************************************
- * arch/xen/drivers/netif/backend/main.c
+ * drivers/xen/netback/netback.c
  * 
- * Back-end of the driver for virtual block devices. This portion of the
- * driver exports a 'unified' block-device interface that can be accessed
+ * Back-end of the driver for virtual network devices. This portion of the
+ * driver exports a 'unified' network-device interface that can be accessed
  * by any operating system that implements a compatible front end. A 
  * reference front-end implementation can be found in:
- *  arch/xen/drivers/netif/frontend
+ *  drivers/xen/netfront/netfront.c
  * 
  * Copyright (c) 2002-2004, K A Fraser
  */
index 4ca96f5d3cbf85d399e31b0eb8f5e2c605e39cbe..e4c427d402122bd424dbbb916eabd46a093b9aed 100644 (file)
@@ -578,8 +578,11 @@ void domain_relinquish_memory(struct domain *d)
 
     /* Drop the in-use reference to the page-table base. */
     if ( pagetable_val(d->mm.pagetable) != 0 )
+    {
         put_page_and_type(&frame_table[pagetable_val(d->mm.pagetable) >>
                                       PAGE_SHIFT]);
+       d->mm.pagetable = mk_pagetable(0);
+    }
 
     /*
      * Relinquish GDT mappings. No need for explicit unmapping of the LDT as 
index e438ed68b871dc84423caec9022d605c0681549f..8034b67406b3abd3586b41cc8be25a45a2600e95 100644 (file)
@@ -2098,8 +2098,8 @@ void audit_domain(struct domain *d)
 
 
     /* PHASE 1 */
-
-    adjust(&frame_table[pagetable_val(d->mm.pagetable)>>PAGE_SHIFT], -1, 1);
+    if( pagetable_val(d->mm.pagetable) )
+       adjust(&frame_table[pagetable_val(d->mm.pagetable)>>PAGE_SHIFT], -1, 1);
 
     list_ent = d->page_list.next;
     for ( i = 0; (list_ent != &d->page_list); i++ )
@@ -2352,9 +2352,10 @@ void audit_domain(struct domain *d)
 
     spin_unlock(&d->page_alloc_lock);
 
-    adjust(&frame_table[pagetable_val(d->mm.pagetable)>>PAGE_SHIFT], 1, 1);
+    if( pagetable_val(d->mm.pagetable) )
+       adjust(&frame_table[pagetable_val(d->mm.pagetable)>>PAGE_SHIFT], 1, 1);
 
-    printk("Audit %d: Done. ctot=%d ttot=%d\n", d->id, ctot, ttot );
+    printk("Audit %d: Done. pages=%d ctot=%d ttot=%d\n", i, d->id, ctot, ttot );
 
     if ( d != current )
         domain_unpause(d);