Commit b053940d authored by Vineet Gupta's avatar Vineet Gupta Committed by Linus Torvalds

ARC: Use correct PTAG register for icache flush

This fixes a subtle issue with cache flush which could potentially cause
random userspace crashes because of stale icache lines.

This error crept in when consolidating the cache flush code

Fixes: bd12976c (ARC: cacheflush refactor #3: Unify the {d,i}cache)
Signed-off-by: default avatarVineet Gupta <vgupta@synopsys.com>
Cc: linux-kernel@vger.kernel.org
Cc: stable@vger.kernel.org  # 3.13
Cc: arc-linux-dev@synopsys.com
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent e1aa17c7
...@@ -282,7 +282,7 @@ static inline void __cache_line_loop(unsigned long paddr, unsigned long vaddr, ...@@ -282,7 +282,7 @@ static inline void __cache_line_loop(unsigned long paddr, unsigned long vaddr,
#else #else
/* if V-P const for loop, PTAG can be written once outside loop */ /* if V-P const for loop, PTAG can be written once outside loop */
if (full_page_op) if (full_page_op)
write_aux_reg(ARC_REG_DC_PTAG, paddr); write_aux_reg(aux_tag, paddr);
#endif #endif
while (num_lines-- > 0) { while (num_lines-- > 0) {
...@@ -296,7 +296,7 @@ static inline void __cache_line_loop(unsigned long paddr, unsigned long vaddr, ...@@ -296,7 +296,7 @@ static inline void __cache_line_loop(unsigned long paddr, unsigned long vaddr,
write_aux_reg(aux_cmd, vaddr); write_aux_reg(aux_cmd, vaddr);
vaddr += L1_CACHE_BYTES; vaddr += L1_CACHE_BYTES;
#else #else
write_aux_reg(aux, paddr); write_aux_reg(aux_cmd, paddr);
paddr += L1_CACHE_BYTES; paddr += L1_CACHE_BYTES;
#endif #endif
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment