[PATCH 0/3]nds32: Correct the cache operation for catch aliasing case

From: Vincent Chen
Date: Tue May 15 2018 - 04:58:36 EST


The following 3 issues are fixed in this patchset

1. In function flush_dacache_page and copy_user_highpage, the local irq is
enabled when the cache of the page at address page_address(page) is written
back to memory. It possibly causes data corruption. To fix this problem,
the local irq is disabled before executing d-cache write-back and
invalidate in this patchset.

2. According to Documentation/cachetlb.txt, the cache of the page at vmaddr
shall be flushed in flush_anon_page instead of the cache of the page at
page_address(page). We correct it and add the modification to this
patchset.

3. Removing unneeded cache invalidation in copy_user_highpage function.


Vincent Chen (3):
nds32: Correct flush_dcache_page function
nds32: Flush the cache of the page at vmaddr instead of kaddr in
flush_anon_page
nds32: Disable local irq before calling cpu_dcache_wb_page in
copy_user_highpage

arch/nds32/mm/cacheflush.c | 34 ++++++++++++++++++++--------------
1 files changed, 20 insertions(+), 14 deletions(-)