Commit 6ea42c84 authored by Guo Ren's avatar Guo Ren
Browse files

csky: syscache: Fixup duplicate cache flush



The current csky logic of sys_cacheflush is wrong, it'll cause
icache flush call dcache flush again. Now fixup it with a
conditional "break & fallthrough".

Fixes: 997153b9 ("csky: Add flush_icache_mm to defer flush icache all")
Fixes: 0679d29d ("csky: fix syscache.c fallthrough warning")
Acked-by: default avatarRandy Dunlap <rdunlap@infradead.org>
Co-Developed-by: default avatarRandy Dunlap <rdunlap@infradead.org>
Signed-off-by: default avatarGuo Ren <guoren@linux.alibaba.com>
Cc: Arnd Bergmann <arnd@arndb.de>
parent 13311e74
Loading
Loading
Loading
Loading
+7 −5
Original line number Diff line number Diff line
@@ -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;