mirror of
https://github.com/torvalds/linux.git
synced 2024-11-24 05:02:12 +00:00
MIPS: asm: r4kcache: Add protected cache operation for EVA
Signed-off-by: Leonid Yegoshin <Leonid.Yegoshin@imgtec.com> Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
This commit is contained in:
parent
41e62b0411
commit
a805385499
@ -212,6 +212,20 @@ static inline void flush_scache_line(unsigned long addr)
|
||||
: \
|
||||
: "i" (op), "r" (addr))
|
||||
|
||||
#define protected_cachee_op(op,addr) \
|
||||
__asm__ __volatile__( \
|
||||
" .set push \n" \
|
||||
" .set noreorder \n" \
|
||||
" .set mips0 \n" \
|
||||
" .set eva \n" \
|
||||
"1: cachee %0, (%1) \n" \
|
||||
"2: .set pop \n" \
|
||||
" .section __ex_table,\"a\" \n" \
|
||||
" "STR(PTR)" 1b, 2b \n" \
|
||||
" .previous" \
|
||||
: \
|
||||
: "i" (op), "r" (addr))
|
||||
|
||||
/*
|
||||
* The next two are for badland addresses like signal trampolines.
|
||||
*/
|
||||
@ -223,7 +237,11 @@ static inline void protected_flush_icache_line(unsigned long addr)
|
||||
break;
|
||||
|
||||
default:
|
||||
#ifdef CONFIG_EVA
|
||||
protected_cachee_op(Hit_Invalidate_I, addr);
|
||||
#else
|
||||
protected_cache_op(Hit_Invalidate_I, addr);
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user