Skip to content

Commit

Permalink
ARC: [mm] serious bug in vaddr based icache flush
Browse files Browse the repository at this point in the history
vaddr used to index the cache was clipped from the wrong end, and thus
would potentially fail to flush the correct lines.

The problem was dorment for so long because up until the recent
optimizations it was only used for ptrace break-point only flushes.

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
  • Loading branch information
Vineet Gupta committed May 9, 2013
1 parent eacd0e9 commit c917a36
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion arch/arc/mm/cache_arc700.c
Original file line number Diff line number Diff line change
Expand Up @@ -421,7 +421,7 @@ static void __ic_line_inv_vaddr(unsigned long phy_start, unsigned long vaddr,
num_lines = DIV_ROUND_UP(sz, ARC_ICACHE_LINE_LEN);

#if (CONFIG_ARC_MMU_VER > 2)
vaddr &= ~ICACHE_LINE_MASK;
vaddr &= ICACHE_LINE_MASK;
addr = phy_start;
#else
/* bits 17:13 of vaddr go as bits 4:0 of paddr */
Expand Down

0 comments on commit c917a36

Please sign in to comment.