--- linux-2.6.9-89.0.16.0.5//./include/asm-i386/mach-xen/asm/pgalloc.h	2010-02-17 09:56:42.000000000 -0600
+++ linux-tlb//./include/asm-i386/mach-xen/asm/pgalloc.h	2010-02-25 07:18:12.000000000 -0600
@@ -21,7 +21,8 @@ do {									\
 		if (!PageHighMem(pte))					\
 			BUG_ON(HYPERVISOR_update_va_mapping(		\
 			  (unsigned long)__va(page_to_pfn(pte)<<PAGE_SHIFT),\
-			  pfn_pte(page_to_pfn(pte), PAGE_KERNEL_RO), 0));\
+			  pfn_pte(page_to_pfn(pte), PAGE_KERNEL_RO),	\
+			  UVMF_INVLPG|UVMF_ALL));			\
 		set_pmd(pmd, __pmd(_PAGE_TABLE +			\
 			((unsigned long long)page_to_pfn(pte) <<	\
 				(unsigned long long) PAGE_SHIFT)));	\
--- linux-2.6.9-89.0.16.0.5//./include/asm-x86_64/mach-xen/asm/pgalloc.h	2010-02-17 09:56:42.000000000 -0600
+++ linux-tlb//./include/asm-x86_64/mach-xen/asm/pgalloc.h	2010-02-21 09:02:40.000000000 -0600
@@ -30,7 +30,8 @@ static inline void pmd_populate(struct m
 	if (unlikely((mm)->context.pinned)) {
 		BUG_ON(HYPERVISOR_update_va_mapping(
 			       (unsigned long)__va(page_to_pfn(pte) << PAGE_SHIFT),
-			       pfn_pte(page_to_pfn(pte), PAGE_KERNEL_RO), 0));
+			       pfn_pte(page_to_pfn(pte), PAGE_KERNEL_RO),
+			       UVMF_INVLPG|UVMF_ALL));
 		set_pmd(pmd, __pmd(_PAGE_TABLE | (page_to_pfn(pte) << PAGE_SHIFT)));
 	} else {
 		*(pmd) = __pmd(_PAGE_TABLE | (page_to_pfn(pte) << PAGE_SHIFT));
@@ -47,7 +48,7 @@ static inline void pgd_populate(struct m
 		BUG_ON(HYPERVISOR_update_va_mapping(
 			       (unsigned long)pmd,
 			       pfn_pte(virt_to_phys(pmd)>>PAGE_SHIFT, 
-				       PAGE_KERNEL_RO), 0));
+				       PAGE_KERNEL_RO), UVMF_INVLPG|UVMF_ALL));
 		set_pgd(pgd, __pgd(_PAGE_TABLE | __pa(pmd)));
 	} else {
 		*(pgd) =  __pgd(_PAGE_TABLE | __pa(pmd));
@@ -62,7 +63,7 @@ static inline void pmd_free(pmd_t *pmd)
 		BUG_ON(HYPERVISOR_update_va_mapping(
 			(unsigned long)pmd,
 			pfn_pte(virt_to_phys(pmd)>>PAGE_SHIFT, PAGE_KERNEL),
-			0));
+			UVMF_INVLPG|UVMF_ALL));
 	}
 	free_page((unsigned long)pmd);
 }
--- linux-2.6.9-89.0.16.0.5//./arch/i386/mm/pgtable-xen.c	2010-02-17 09:57:00.000000000 -0600
+++ linux-tlb//./arch/i386/mm/pgtable-xen.c	2010-02-25 07:25:30.000000000 -0600
@@ -238,7 +238,8 @@ void pte_free(struct page *pte)
 
 	if (!pte_write(*virt_to_ptep(va)))
 		BUG_ON(HYPERVISOR_update_va_mapping(
-			va, pfn_pte(page_to_pfn(pte), PAGE_KERNEL), 0));
+			va, pfn_pte(page_to_pfn(pte), PAGE_KERNEL),
+			UVMF_INVLPG|UVMF_ALL));
 
 	ClearPageForeign(pte);
 	set_page_count(pte, 1);
