Patch from Thomas Schlichter 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); } _