diff options
| author | Andrew Morton <akpm@digeo.com> | 2003-04-12 12:55:02 -0700 |
|---|---|---|
| committer | James Bottomley <jejb@raven.il.steeleye.com> | 2003-04-12 12:55:02 -0700 |
| commit | edf20d3a05e5099347f58bd7ddf729a6489340c7 (patch) | |
| tree | 37078e37a3c1b7728cc22eb32849341a48391993 /include | |
| parent | 831cbe240825abad390981d90b18eedec8f419b5 (diff) | |
[PATCH] Remove flush_page_to_ram()
From: Hugh Dickins <hugh@veritas.com>
This patch removes the long deprecated flush_page_to_ram. We have
two different schemes for doing this cache flushing stuff, the old
flush_page_to_ram way and the not so old flush_dcache_page etc. way:
see DaveM's Documentation/cachetlb.txt. Keeping flush_page_to_ram
around is confusing, and makes it harder to get this done right.
All architectures are updated, but the only ones where it amounts
to more than deleting a line or two are m68k, mips, mips64 and v850.
I followed a prescription from DaveM (though not to the letter), that
those arches with non-nop flush_page_to_ram need to do what it did
in their clear_user_page and copy_user_page and flush_dcache_page.
Dave is consterned that, in the v850 nb85e case, this patch leaves its
flush_dcache_page as was, uses it in clear_user_page and copy_user_page,
instead of making them all flush icache as well. That may be wrong:
I'm just hesitant to add cruft blindly, changing a flush_dcache macro
to flush icache too; and naively hope that the necessary flush_icache
calls are already in place. Miles, please let us know which way is
right for v850 nb85e - thanks.
Diffstat (limited to 'include')
26 files changed, 38 insertions, 52 deletions
diff --git a/include/asm-alpha/cacheflush.h b/include/asm-alpha/cacheflush.h index f04d7579fde7..1604d6cd22df 100644 --- a/include/asm-alpha/cacheflush.h +++ b/include/asm-alpha/cacheflush.h @@ -9,7 +9,6 @@ #define flush_cache_mm(mm) do { } while (0) #define flush_cache_range(vma, start, end) do { } while (0) #define flush_cache_page(vma, vmaddr) do { } while (0) -#define flush_page_to_ram(page) do { } while (0) #define flush_dcache_page(page) do { } while (0) /* Note that the following two definitions are _highly_ dependent diff --git a/include/asm-arm/proc-armo/cache.h b/include/asm-arm/proc-armo/cache.h index 1ed553bc0aa8..47c8125fa719 100644 --- a/include/asm-arm/proc-armo/cache.h +++ b/include/asm-arm/proc-armo/cache.h @@ -13,7 +13,6 @@ #define flush_cache_mm(mm) do { } while (0) #define flush_cache_range(vma,start,end) do { } while (0) #define flush_cache_page(vma,vmaddr) do { } while (0) -#define flush_page_to_ram(page) do { } while (0) #define invalidate_dcache_range(start,end) do { } while (0) #define clean_dcache_range(start,end) do { } while (0) diff --git a/include/asm-arm/proc-armv/cache.h b/include/asm-arm/proc-armv/cache.h index 216987fe30ef..4bc1a79e72d3 100644 --- a/include/asm-arm/proc-armv/cache.h +++ b/include/asm-arm/proc-armv/cache.h @@ -71,13 +71,6 @@ ((unsigned long)start) + size, 0); /* - * This is an obsolete interface; the functionality that was provided by this - * function is now merged into our flush_dcache_page, flush_icache_page, - * copy_user_page and clear_user_page functions. - */ -#define flush_page_to_ram(page) do { } while (0) - -/* * flush_dcache_page is used when the kernel has written to the page * cache page at virtual address page->virtual. * diff --git a/include/asm-cris/pgtable.h b/include/asm-cris/pgtable.h index 828bf46fa2ff..d3ffca513750 100644 --- a/include/asm-cris/pgtable.h +++ b/include/asm-cris/pgtable.h @@ -121,7 +121,6 @@ extern void paging_init(void); #define flush_cache_mm(mm) do { } while (0) #define flush_cache_range(vma, start, end) do { } while (0) #define flush_cache_page(vma, vmaddr) do { } while (0) -#define flush_page_to_ram(page) do { } while (0) #define flush_dcache_page(page) do { } while (0) #define flush_icache_range(start, end) do { } while (0) #define flush_icache_page(vma,pg) do { } while (0) diff --git a/include/asm-i386/cacheflush.h b/include/asm-i386/cacheflush.h index 319e65a7047f..adc632b97542 100644 --- a/include/asm-i386/cacheflush.h +++ b/include/asm-i386/cacheflush.h @@ -9,7 +9,6 @@ #define flush_cache_mm(mm) do { } while (0) #define flush_cache_range(vma, start, end) do { } while (0) #define flush_cache_page(vma, vmaddr) do { } while (0) -#define flush_page_to_ram(page) do { } while (0) #define flush_dcache_page(page) do { } while (0) #define flush_icache_range(start, end) do { } while (0) #define flush_icache_page(vma,pg) do { } while (0) diff --git a/include/asm-ia64/cacheflush.h b/include/asm-ia64/cacheflush.h index 51c4780d875a..0fa5ae0c6416 100644 --- a/include/asm-ia64/cacheflush.h +++ b/include/asm-ia64/cacheflush.h @@ -20,7 +20,6 @@ #define flush_cache_mm(mm) do { } while (0) #define flush_cache_range(vma, start, end) do { } while (0) #define flush_cache_page(vma, vmaddr) do { } while (0) -#define flush_page_to_ram(page) do { } while (0) #define flush_icache_page(vma,page) do { } while (0) #define flush_dcache_page(page) \ diff --git a/include/asm-m68k/cacheflush.h b/include/asm-m68k/cacheflush.h index 078523b767ba..e1931fac4391 100644 --- a/include/asm-m68k/cacheflush.h +++ b/include/asm-m68k/cacheflush.h @@ -106,7 +106,6 @@ extern inline void flush_cache_page(struct vm_area_struct *vma, /* Push the page at kernel virtual address and clear the icache */ /* RZ: use cpush %bc instead of cpush %dc, cinv %ic */ -#define flush_page_to_ram(page) __flush_page_to_ram(page_address(page)) extern inline void __flush_page_to_ram(void *vaddr) { if (CPU_IS_040_OR_060) { @@ -125,7 +124,7 @@ extern inline void __flush_page_to_ram(void *vaddr) } } -#define flush_dcache_page(page) do { } while (0) +#define flush_dcache_page(page) __flush_page_to_ram(page_address(page)) #define flush_icache_page(vma,pg) do { } while (0) #define flush_icache_user_range(vma,pg,adr,len) do { } while (0) diff --git a/include/asm-m68k/page.h b/include/asm-m68k/page.h index 8343b1344189..293d9fef9603 100644 --- a/include/asm-m68k/page.h +++ b/include/asm-m68k/page.h @@ -79,8 +79,14 @@ static inline void clear_page(void *page) #define copy_page(to,from) memcpy((to), (from), PAGE_SIZE) #endif -#define clear_user_page(page, vaddr, pg) clear_page(page) -#define copy_user_page(to, from, vaddr, pg) copy_page(to, from) +#define clear_user_page(addr, vaddr, page) \ + do { clear_page(addr); \ + flush_dcache_page(page); \ + } while (0) +#define copy_user_page(to, from, vaddr, page) \ + do { copy_page(to, from); \ + flush_dcache_page(page); \ + } while (0) /* * These are used to make use of C type-checking.. diff --git a/include/asm-m68knommu/cacheflush.h b/include/asm-m68knommu/cacheflush.h index fe212d803358..dfa537d547b1 100644 --- a/include/asm-m68knommu/cacheflush.h +++ b/include/asm-m68knommu/cacheflush.h @@ -10,7 +10,6 @@ #define flush_cache_mm(mm) do { } while (0) #define flush_cache_range(vma, start, end) do { } while (0) #define flush_cache_page(vma, vmaddr) do { } while (0) -#define flush_page_to_ram(page) do { } while (0) #define flush_dcache_range(start,len) do { } while (0) #define flush_dcache_page(page) do { } while (0) #define flush_icache_range(start,len) __flush_cache_all() diff --git a/include/asm-mips/page.h b/include/asm-mips/page.h index 5cd2c52cb14f..015ebf1f9aab 100644 --- a/include/asm-mips/page.h +++ b/include/asm-mips/page.h @@ -25,8 +25,15 @@ extern void (*_copy_page)(void * to, void * from); #define clear_page(page) _clear_page(page) #define copy_page(to, from) _copy_page(to, from) -#define clear_user_page(page, vaddr) clear_page(page) -#define copy_user_page(to, from, vaddr) copy_page(to, from) + +#define clear_user_page(addr, vaddr, page) \ + do { clear_page(addr); \ + flush_dcache_page(page); \ + } while (0) +#define copy_user_page(to, from, vaddr, page) \ + do { copy_page(to, from); \ + flush_dcache_page(page); \ + } while (0) /* * These are used to make use of C type-checking.. diff --git a/include/asm-mips/pgtable.h b/include/asm-mips/pgtable.h index 8a0fb426172f..0ba782b65479 100644 --- a/include/asm-mips/pgtable.h +++ b/include/asm-mips/pgtable.h @@ -24,7 +24,6 @@ * - flush_cache_mm(mm) flushes the specified mm context's cache lines * - flush_cache_page(mm, vmaddr) flushes a single page * - flush_cache_range(vma, start, end) flushes a range of pages - * - flush_page_to_ram(page) write back kernel page to ram * - flush_icache_range(start, end) flush a range of instructions */ extern void (*_flush_cache_all)(void); @@ -39,15 +38,13 @@ extern void (*_flush_icache_range)(unsigned long start, unsigned long end); extern void (*_flush_icache_page)(struct vm_area_struct *vma, struct page *page); -#define flush_dcache_page(page) do { } while (0) - #define flush_cache_all() _flush_cache_all() #define __flush_cache_all() ___flush_cache_all() #define flush_cache_mm(mm) _flush_cache_mm(mm) #define flush_cache_range(vma,start,end) _flush_cache_range(vma,start,end) #define flush_cache_page(vma,page) _flush_cache_page(vma, page) #define flush_cache_sigtramp(addr) _flush_cache_sigtramp(addr) -#define flush_page_to_ram(page) _flush_page_to_ram(page) +#define flush_dcache_page(page) _flush_page_to_ram(page) #define flush_icache_range(start, end) _flush_icache_range(start,end) #define flush_icache_page(vma, page) _flush_icache_page(vma, page) diff --git a/include/asm-mips64/page.h b/include/asm-mips64/page.h index 872855cea66b..7678ef9de85d 100644 --- a/include/asm-mips64/page.h +++ b/include/asm-mips64/page.h @@ -25,8 +25,15 @@ extern void (*_copy_page)(void * to, void * from); #define clear_page(page) _clear_page(page) #define copy_page(to, from) _copy_page(to, from) -#define clear_user_page(page, vaddr) clear_page(page) -#define copy_user_page(to, from, vaddr) copy_page(to, from) + +#define clear_user_page(addr, vaddr, page) \ + do { clear_page(addr); \ + flush_dcache_page(page); \ + } while (0) +#define copy_user_page(to, from, vaddr, page) \ + do { copy_page(to, from); \ + flush_dcache_page(page); \ + } while (0) /* * These are used to make use of C type-checking.. diff --git a/include/asm-mips64/pgtable.h b/include/asm-mips64/pgtable.h index b47b11682135..01d611ef6075 100644 --- a/include/asm-mips64/pgtable.h +++ b/include/asm-mips64/pgtable.h @@ -25,7 +25,6 @@ * - flush_cache_mm(mm) flushes the specified mm context's cache lines * - flush_cache_page(mm, vmaddr) flushes a single page * - flush_cache_range(vma, start, end) flushes a range of pages - * - flush_page_to_ram(page) write back kernel page to ram */ extern void (*_flush_cache_mm)(struct mm_struct *mm); extern void (*_flush_cache_range)(struct vm_area_struct *vma, unsigned long start, @@ -34,14 +33,12 @@ extern void (*_flush_cache_page)(struct vm_area_struct *vma, unsigned long page) extern void (*_flush_page_to_ram)(struct page * page); #define flush_cache_all() do { } while(0) -#define flush_dcache_page(page) do { } while (0) #ifndef CONFIG_CPU_R10000 #define flush_cache_mm(mm) _flush_cache_mm(mm) #define flush_cache_range(vma,start,end) _flush_cache_range(vma,start,end) #define flush_cache_page(vma,page) _flush_cache_page(vma, page) -#define flush_page_to_ram(page) _flush_page_to_ram(page) - +#define flush_dcache_page(page) _flush_page_to_ram(page) #define flush_icache_range(start, end) _flush_cache_l1() #define flush_icache_user_range(vma, page, addr, len) \ flush_icache_page((vma), (page)) @@ -66,7 +63,7 @@ extern void andes_flush_icache_page(unsigned long); #define flush_cache_mm(mm) do { } while(0) #define flush_cache_range(vma,start,end) do { } while(0) #define flush_cache_page(vma,page) do { } while(0) -#define flush_page_to_ram(page) do { } while(0) +#define flush_dcache_page(page) do { } while(0) #define flush_icache_range(start, end) _flush_cache_l1() #define flush_icache_user_range(vma, page, addr, len) \ flush_icache_page((vma), (page)) diff --git a/include/asm-parisc/cacheflush.h b/include/asm-parisc/cacheflush.h index cb9e13b3d1bd..5392339e549b 100644 --- a/include/asm-parisc/cacheflush.h +++ b/include/asm-parisc/cacheflush.h @@ -18,11 +18,6 @@ #define flush_kernel_dcache_range(start,size) \ flush_kernel_dcache_range_asm((start), (start)+(size)); -static inline void -flush_page_to_ram(struct page *page) -{ -} - extern void flush_cache_all_local(void); static inline void cacheflush_h_tmp_function(void *dummy) diff --git a/include/asm-ppc/cacheflush.h b/include/asm-ppc/cacheflush.h index e18446b38a65..07ff115090ca 100644 --- a/include/asm-ppc/cacheflush.h +++ b/include/asm-ppc/cacheflush.h @@ -23,7 +23,6 @@ #define flush_cache_mm(mm) do { } while (0) #define flush_cache_range(vma, a, b) do { } while (0) #define flush_cache_page(vma, p) do { } while (0) -#define flush_page_to_ram(page) do { } while (0) #define flush_icache_page(vma, page) do { } while (0) extern void flush_dcache_page(struct page *page); diff --git a/include/asm-ppc64/cacheflush.h b/include/asm-ppc64/cacheflush.h index 9a54101c4546..78d06ab52f63 100644 --- a/include/asm-ppc64/cacheflush.h +++ b/include/asm-ppc64/cacheflush.h @@ -13,7 +13,6 @@ #define flush_cache_mm(mm) do { } while (0) #define flush_cache_range(vma, start, end) do { } while (0) #define flush_cache_page(vma, vmaddr) do { } while (0) -#define flush_page_to_ram(page) do { } while (0) #define flush_icache_page(vma, page) do { } while (0) extern void flush_dcache_page(struct page *page); diff --git a/include/asm-s390/cacheflush.h b/include/asm-s390/cacheflush.h index 29b50e24448d..3c5416fe2158 100644 --- a/include/asm-s390/cacheflush.h +++ b/include/asm-s390/cacheflush.h @@ -9,7 +9,6 @@ #define flush_cache_mm(mm) do { } while (0) #define flush_cache_range(vma, start, end) do { } while (0) #define flush_cache_page(vma, vmaddr) do { } while (0) -#define flush_page_to_ram(page) do { } while (0) #define flush_dcache_page(page) do { } while (0) #define flush_icache_range(start, end) do { } while (0) #define flush_icache_page(vma,pg) do { } while (0) diff --git a/include/asm-s390x/cacheflush.h b/include/asm-s390x/cacheflush.h index ac4e714e21d7..80be206eb4a5 100644 --- a/include/asm-s390x/cacheflush.h +++ b/include/asm-s390x/cacheflush.h @@ -9,7 +9,6 @@ #define flush_cache_mm(mm) do { } while (0) #define flush_cache_range(vma, start, end) do { } while (0) #define flush_cache_page(vma, vmaddr) do { } while (0) -#define flush_page_to_ram(page) do { } while (0) #define flush_dcache_page(page) do { } while (0) #define flush_icache_range(start, end) do { } while (0) #define flush_icache_page(vma,pg) do { } while (0) diff --git a/include/asm-sh/pgtable.h b/include/asm-sh/pgtable.h index ce110d76fcc8..697d4604d6ab 100644 --- a/include/asm-sh/pgtable.h +++ b/include/asm-sh/pgtable.h @@ -26,7 +26,6 @@ extern void paging_init(void); * - flush_cache_range(vma, start, end) flushes a range of pages * * - flush_dcache_page(pg) flushes(wback&invalidates) a page for dcache - * - flush_page_to_ram(page) write back kernel page to ram * - flush_icache_range(start, end) flushes(invalidates) a range for icache * - flush_icache_page(vma, pg) flushes(invalidates) a page for icache * @@ -37,7 +36,6 @@ extern void paging_init(void); #define flush_cache_mm(mm) do { } while (0) #define flush_cache_range(vma, start, end) do { } while (0) #define flush_cache_page(vma, vmaddr) do { } while (0) -#define flush_page_to_ram(page) do { } while (0) #define flush_dcache_page(page) do { } while (0) #define flush_icache_range(start, end) do { } while (0) #define flush_icache_page(vma,pg) do { } while (0) @@ -63,7 +61,6 @@ extern void flush_dcache_page(struct page *pg); extern void flush_icache_range(unsigned long start, unsigned long end); extern void flush_cache_sigtramp(unsigned long addr); -#define flush_page_to_ram(page) do { } while (0) #define flush_icache_page(vma,pg) do { } while (0) #define flush_icache_user_range(vma,pg,adr,len) do { } while (0) diff --git a/include/asm-sparc/cacheflush.h b/include/asm-sparc/cacheflush.h index 69f8bcff0155..e2e0bc4166ac 100644 --- a/include/asm-sparc/cacheflush.h +++ b/include/asm-sparc/cacheflush.h @@ -64,7 +64,6 @@ BTFIXUPDEF_CALL(void, flush_sig_insns, struct mm_struct *, unsigned long) extern void sparc_flush_page_to_ram(struct page *page); -#define flush_page_to_ram(page) do { } while (0) #define flush_dcache_page(page) sparc_flush_page_to_ram(page) #endif /* _SPARC_CACHEFLUSH_H */ diff --git a/include/asm-sparc64/cacheflush.h b/include/asm-sparc64/cacheflush.h index 6d3d307662ed..6175a244513f 100644 --- a/include/asm-sparc64/cacheflush.h +++ b/include/asm-sparc64/cacheflush.h @@ -50,7 +50,4 @@ extern void smp_flush_cache_all(void); extern void flush_dcache_page(struct page *page); -/* This is unnecessary on the SpitFire since D-CACHE is write-through. */ -#define flush_page_to_ram(page) do { } while (0) - #endif /* _SPARC64_CACHEFLUSH_H */ diff --git a/include/asm-v850/cacheflush.h b/include/asm-v850/cacheflush.h index f0752d11241c..3584a7ee9f14 100644 --- a/include/asm-v850/cacheflush.h +++ b/include/asm-v850/cacheflush.h @@ -29,7 +29,6 @@ #define flush_cache_mm(mm) ((void)0) #define flush_cache_range(vma, start, end) ((void)0) #define flush_cache_page(vma, vmaddr) ((void)0) -#define flush_page_to_ram(page) ((void)0) #define flush_dcache_page(page) ((void)0) #define flush_icache() ((void)0) #define flush_icache_range(start, end) ((void)0) diff --git a/include/asm-v850/nb85e_cache.h b/include/asm-v850/nb85e_cache.h index 3b02fc8348c0..bab18618fa81 100644 --- a/include/asm-v850/nb85e_cache.h +++ b/include/asm-v850/nb85e_cache.h @@ -62,7 +62,6 @@ extern void nb85e_cache_flush_icache_user_range (struct vm_area_struct *vma, unsigned long adr, int len); extern void nb85e_cache_flush_sigtramp (unsigned long addr); -#define flush_page_to_ram(x) ((void)0) #define flush_cache_all nb85e_cache_flush_all #define flush_cache_mm nb85e_cache_flush_mm #define flush_cache_range nb85e_cache_flush_range diff --git a/include/asm-v850/page.h b/include/asm-v850/page.h index aa267410f2f6..06085b0c043e 100644 --- a/include/asm-v850/page.h +++ b/include/asm-v850/page.h @@ -40,8 +40,14 @@ #define clear_page(page) memset ((void *)(page), 0, PAGE_SIZE) #define copy_page(to, from) memcpy ((void *)(to), (void *)from, PAGE_SIZE) -#define clear_user_page(page, vaddr, pg) clear_page (page) -#define copy_user_page(to, from, vaddr,pg) copy_page (to, from) +#define clear_user_page(addr, vaddr, page) \ + do { clear_page(addr); \ + flush_dcache_page(page); \ + } while (0) +#define copy_user_page(to, from, vaddr, page) \ + do { copy_page(to, from); \ + flush_dcache_page(page); \ + } while (0) #ifdef STRICT_MM_TYPECHECKS /* diff --git a/include/asm-x86_64/cacheflush.h b/include/asm-x86_64/cacheflush.h index d2e56263a883..c4d74b23326c 100644 --- a/include/asm-x86_64/cacheflush.h +++ b/include/asm-x86_64/cacheflush.h @@ -9,7 +9,6 @@ #define flush_cache_mm(mm) do { } while (0) #define flush_cache_range(vma, start, end) do { } while (0) #define flush_cache_page(vma, vmaddr) do { } while (0) -#define flush_page_to_ram(page) do { } while (0) #define flush_dcache_page(page) do { } while (0) #define flush_icache_range(start, end) do { } while (0) #define flush_icache_page(vma,pg) do { } while (0) diff --git a/include/linux/highmem.h b/include/linux/highmem.h index 8800a35efe74..3bc7bcb3c252 100644 --- a/include/linux/highmem.h +++ b/include/linux/highmem.h @@ -67,7 +67,6 @@ static inline void memclear_highpage_flush(struct page *page, unsigned int offse kaddr = kmap_atomic(page, KM_USER0); memset((char *)kaddr + offset, 0, size); flush_dcache_page(page); - flush_page_to_ram(page); kunmap_atomic(kaddr, KM_USER0); } |
