forked from Minki/linux
[PARISC] Add parisc implementation of flush_kernel_dcache_page()
We need to do a little renaming of our original syntax because of the difference in arguments. Signed-off-by: James Bottomley <jejb@parisc-linux.org> Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
This commit is contained in:
parent
ab43227c8a
commit
ba57583396
@ -89,7 +89,7 @@ update_mmu_cache(struct vm_area_struct *vma, unsigned long address, pte_t pte)
|
|||||||
if (pfn_valid(page_to_pfn(page)) && page_mapping(page) &&
|
if (pfn_valid(page_to_pfn(page)) && page_mapping(page) &&
|
||||||
test_bit(PG_dcache_dirty, &page->flags)) {
|
test_bit(PG_dcache_dirty, &page->flags)) {
|
||||||
|
|
||||||
flush_kernel_dcache_page(page_address(page));
|
flush_kernel_dcache_page(page);
|
||||||
clear_bit(PG_dcache_dirty, &page->flags);
|
clear_bit(PG_dcache_dirty, &page->flags);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -278,7 +278,7 @@ void flush_dcache_page(struct page *page)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
flush_kernel_dcache_page(page_address(page));
|
flush_kernel_dcache_page(page);
|
||||||
|
|
||||||
if (!mapping)
|
if (!mapping)
|
||||||
return;
|
return;
|
||||||
@ -317,7 +317,7 @@ EXPORT_SYMBOL(flush_dcache_page);
|
|||||||
|
|
||||||
/* Defined in arch/parisc/kernel/pacache.S */
|
/* Defined in arch/parisc/kernel/pacache.S */
|
||||||
EXPORT_SYMBOL(flush_kernel_dcache_range_asm);
|
EXPORT_SYMBOL(flush_kernel_dcache_range_asm);
|
||||||
EXPORT_SYMBOL(flush_kernel_dcache_page);
|
EXPORT_SYMBOL(flush_kernel_dcache_page_asm);
|
||||||
EXPORT_SYMBOL(flush_data_cache_local);
|
EXPORT_SYMBOL(flush_data_cache_local);
|
||||||
EXPORT_SYMBOL(flush_kernel_icache_range_asm);
|
EXPORT_SYMBOL(flush_kernel_icache_range_asm);
|
||||||
|
|
||||||
|
@ -621,9 +621,9 @@ __clear_user_page_asm:
|
|||||||
|
|
||||||
.procend
|
.procend
|
||||||
|
|
||||||
.export flush_kernel_dcache_page
|
.export flush_kernel_dcache_page_asm
|
||||||
|
|
||||||
flush_kernel_dcache_page:
|
flush_kernel_dcache_page_asm:
|
||||||
.proc
|
.proc
|
||||||
.callinfo NO_CALLS
|
.callinfo NO_CALLS
|
||||||
.entry
|
.entry
|
||||||
|
@ -48,7 +48,7 @@ extern void flush_user_icache_range_asm(unsigned long, unsigned long);
|
|||||||
extern void flush_kernel_icache_range_asm(unsigned long, unsigned long);
|
extern void flush_kernel_icache_range_asm(unsigned long, unsigned long);
|
||||||
extern void flush_user_dcache_range_asm(unsigned long, unsigned long);
|
extern void flush_user_dcache_range_asm(unsigned long, unsigned long);
|
||||||
extern void flush_kernel_dcache_range_asm(unsigned long, unsigned long);
|
extern void flush_kernel_dcache_range_asm(unsigned long, unsigned long);
|
||||||
extern void flush_kernel_dcache_page(void *);
|
extern void flush_kernel_dcache_page_asm(void *);
|
||||||
extern void flush_kernel_icache_page(void *);
|
extern void flush_kernel_icache_page(void *);
|
||||||
extern void disable_sr_hashing(void); /* turns off space register hashing */
|
extern void disable_sr_hashing(void); /* turns off space register hashing */
|
||||||
extern void disable_sr_hashing_asm(int); /* low level support for above */
|
extern void disable_sr_hashing_asm(int); /* low level support for above */
|
||||||
|
@ -62,7 +62,7 @@ extern void flush_dcache_page(struct page *page);
|
|||||||
#define flush_dcache_mmap_unlock(mapping) \
|
#define flush_dcache_mmap_unlock(mapping) \
|
||||||
write_unlock_irq(&(mapping)->tree_lock)
|
write_unlock_irq(&(mapping)->tree_lock)
|
||||||
|
|
||||||
#define flush_icache_page(vma,page) do { flush_kernel_dcache_page(page_address(page)); flush_kernel_icache_page(page_address(page)); } while (0)
|
#define flush_icache_page(vma,page) do { flush_kernel_dcache_page(page); flush_kernel_icache_page(page_address(page)); } while (0)
|
||||||
|
|
||||||
#define flush_icache_range(s,e) do { flush_kernel_dcache_range_asm(s,e); flush_kernel_icache_range_asm(s,e); } while (0)
|
#define flush_icache_range(s,e) do { flush_kernel_dcache_range_asm(s,e); flush_kernel_icache_range_asm(s,e); } while (0)
|
||||||
|
|
||||||
@ -192,6 +192,13 @@ flush_anon_page(struct page *page, unsigned long vmaddr)
|
|||||||
}
|
}
|
||||||
#define ARCH_HAS_FLUSH_ANON_PAGE
|
#define ARCH_HAS_FLUSH_ANON_PAGE
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
flush_kernel_dcache_page(struct page *page)
|
||||||
|
{
|
||||||
|
flush_kernel_dcache_page_asm(page_address(page));
|
||||||
|
}
|
||||||
|
#define ARCH_HAS_FLUSH_KERNEL_DCACHE_PAGE
|
||||||
|
|
||||||
#ifdef CONFIG_DEBUG_RODATA
|
#ifdef CONFIG_DEBUG_RODATA
|
||||||
void mark_rodata_ro(void);
|
void mark_rodata_ro(void);
|
||||||
#endif
|
#endif
|
||||||
|
@ -26,7 +26,7 @@ static inline void
|
|||||||
copy_user_page(void *vto, void *vfrom, unsigned long vaddr, struct page *pg)
|
copy_user_page(void *vto, void *vfrom, unsigned long vaddr, struct page *pg)
|
||||||
{
|
{
|
||||||
copy_user_page_asm(vto, vfrom);
|
copy_user_page_asm(vto, vfrom);
|
||||||
flush_kernel_dcache_page(vto);
|
flush_kernel_dcache_page_asm(vto);
|
||||||
/* XXX: ppc flushes icache too, should we? */
|
/* XXX: ppc flushes icache too, should we? */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user