Introduce the size param for clflush_cache_range(). Signed-off-by: Anil S Keshavamurthy --- arch/x86_64/mm/pageattr.c | 6 +++--- include/asm-x86_64/cacheflush.h | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) Index: linux-2.6.22-rc3/arch/x86_64/mm/pageattr.c =================================================================== --- linux-2.6.22-rc3.orig/arch/x86_64/mm/pageattr.c 2007-06-04 12:27:33.000000000 -0700 +++ linux-2.6.22-rc3/arch/x86_64/mm/pageattr.c 2007-06-04 12:37:30.000000000 -0700 @@ -61,10 +61,10 @@ return base; } -static void cache_flush_page(void *adr) +void clflush_cache_range(void *adr, int size) { int i; - for (i = 0; i < PAGE_SIZE; i += boot_cpu_data.x86_clflush_size) + for (i = 0; i < size; i += boot_cpu_data.x86_clflush_size) asm volatile("clflush (%0)" :: "r" (adr + i)); } @@ -80,7 +80,7 @@ list_for_each_entry(pg, l, lru) { void *adr = page_address(pg); if (cpu_has_clflush) - cache_flush_page(adr); + clflush_cache_range(adr, PAGE_SIZE); } __flush_tlb_all(); } Index: linux-2.6.22-rc3/include/asm-x86_64/cacheflush.h =================================================================== --- linux-2.6.22-rc3.orig/include/asm-x86_64/cacheflush.h 2007-06-04 12:27:33.000000000 -0700 +++ linux-2.6.22-rc3/include/asm-x86_64/cacheflush.h 2007-06-04 12:37:30.000000000 -0700 @@ -27,6 +27,7 @@ void global_flush_tlb(void); int change_page_attr(struct page *page, int numpages, pgprot_t prot); int change_page_attr_addr(unsigned long addr, int numpages, pgprot_t prot); +void clflush_cache_range(void *addr, int size); #ifdef CONFIG_DEBUG_RODATA void mark_rodata_ro(void); -- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/