summaryrefslogtreecommitdiff
path: root/arch/csky/mm/syscache.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2021-07-04 12:07:54 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2021-07-04 12:07:54 -0700
commit0d4d4c6ff6debde4c44a418c59b304d4b514541c (patch)
treec20967f6c9e18ac73460e95dd5fbd578da6bc684 /arch/csky/mm/syscache.c
parent0c66a95c7e014abc3489e69dd3972d9225027d49 (diff)
parent90dc8c0e664efcb14e2f133309d84bfdcb0b3d24 (diff)
Merge tag 'csky-for-linus-5.14-rc1' of git://github.com/c-sky/csky-linux
Pull arch/csky updates from Guo Ren: "A small cleanup and a fixup" * tag 'csky-for-linus-5.14-rc1' of git://github.com/c-sky/csky-linux: csky: Kconfig: Remove unused selects csky: syscache: Fixup duplicate cache flush
Diffstat (limited to 'arch/csky/mm/syscache.c')
-rw-r--r--arch/csky/mm/syscache.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/arch/csky/mm/syscache.c b/arch/csky/mm/syscache.c
index 4e51d63850c4..cd847ad62c7e 100644
--- a/arch/csky/mm/syscache.c
+++ b/arch/csky/mm/syscache.c
@@ -12,15 +12,17 @@ SYSCALL_DEFINE3(cacheflush,
int, cache)
{
switch (cache) {
- case ICACHE:
case BCACHE:
- flush_icache_mm_range(current->mm,
- (unsigned long)addr,
- (unsigned long)addr + bytes);
- fallthrough;
case DCACHE:
dcache_wb_range((unsigned long)addr,
(unsigned long)addr + bytes);
+ if (cache != BCACHE)
+ break;
+ fallthrough;
+ case ICACHE:
+ flush_icache_mm_range(current->mm,
+ (unsigned long)addr,
+ (unsigned long)addr + bytes);
break;
default:
return -EINVAL;