

Patch from Thomas Schlichter <schlicht@uni-mannheim.de>

Adds some missing global_flush_tlb() calls, which are requried after a call
to change_page_attr().




 i386/mm/ioremap.c        |    2 ++
 x86_64/kernel/pci-gart.c |    1 +
 x86_64/mm/ioremap.c      |    2 ++
 3 files changed, 5 insertions(+)

diff -puN arch/i386/mm/ioremap.c~add-missing-global_flush_tlb-calls arch/i386/mm/ioremap.c
--- 25/arch/i386/mm/ioremap.c~add-missing-global_flush_tlb-calls	2003-02-23 15:55:02.000000000 -0800
+++ 25-akpm/arch/i386/mm/ioremap.c	2003-02-23 15:55:02.000000000 -0800
@@ -205,6 +205,7 @@ void *ioremap_nocache (unsigned long phy
 			iounmap(p); 
 			p = NULL;
 		}
+		global_flush_tlb();
 	} 
 
 	return p;					
@@ -226,6 +227,7 @@ void iounmap(void *addr)
 		change_page_attr(virt_to_page(__va(p->phys_addr)),
 				 p->size >> PAGE_SHIFT,
 				 PAGE_KERNEL); 				 
+		global_flush_tlb();
 	} 
 	kfree(p); 
 }
diff -puN arch/x86_64/kernel/pci-gart.c~add-missing-global_flush_tlb-calls arch/x86_64/kernel/pci-gart.c
--- 25/arch/x86_64/kernel/pci-gart.c~add-missing-global_flush_tlb-calls	2003-02-23 15:55:02.000000000 -0800
+++ 25-akpm/arch/x86_64/kernel/pci-gart.c	2003-02-23 15:55:02.000000000 -0800
@@ -437,6 +437,7 @@ static __init int init_k8_gatt(agp_kern_
 	}
 	flush_gart(); 
 	
+	global_flush_tlb();
 		
 	printk("PCI-DMA: aperture base @ %x size %u KB\n", aper_base, aper_size>>10); 
 	return 0;
diff -puN arch/x86_64/mm/ioremap.c~add-missing-global_flush_tlb-calls arch/x86_64/mm/ioremap.c
--- 25/arch/x86_64/mm/ioremap.c~add-missing-global_flush_tlb-calls	2003-02-23 15:55:02.000000000 -0800
+++ 25-akpm/arch/x86_64/mm/ioremap.c	2003-02-23 15:55:02.000000000 -0800
@@ -205,6 +205,7 @@ void *ioremap_nocache (unsigned long phy
 			iounmap(p); 
 			p = NULL;
 		}
+		global_flush_tlb();
 	} 
 
 	return p;					
@@ -226,6 +227,7 @@ void iounmap(void *addr)
 		change_page_attr(virt_to_page(__va(p->phys_addr)),
 				 p->size >> PAGE_SHIFT,
 				 PAGE_KERNEL); 				 
+		global_flush_tlb();
 	} 
 	kfree(p); 
 }

_
