summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorGreentime Hu <greentime@andestech.com>2018-04-30 05:21:18 +0200
committerGreentime Hu <greentime@andestech.com>2018-05-23 07:26:21 +0200
commit3ff2228dcea4e5c9b517375bd3aa9e3a1a3f29a0 (patch)
treee1bed98943e467e4b5a887b37cc0179ed1b63188 /arch
parentnds32: Fix the allmodconfig build. To make sure CONFIG_CPU_LITTLE_ENDIAN is d... (diff)
downloadlinux-3ff2228dcea4e5c9b517375bd3aa9e3a1a3f29a0.tar.xz
linux-3ff2228dcea4e5c9b517375bd3aa9e3a1a3f29a0.zip
nds32: Fix the virtual address may map too much range by tlbop issue.
We use tlbop to map virtual address in the first beginning, however it may map too much if DRAM size is not that big. We have to invalidate the mapping when the page table is created. Signed-off-by: Greentime Hu <greentime@andestech.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/nds32/kernel/setup.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/nds32/kernel/setup.c b/arch/nds32/kernel/setup.c
index ba910e9e4ecb..2f5b2ccebe47 100644
--- a/arch/nds32/kernel/setup.c
+++ b/arch/nds32/kernel/setup.c
@@ -293,6 +293,9 @@ void __init setup_arch(char **cmdline_p)
/* paging_init() sets up the MMU and marks all pages as reserved */
paging_init();
+ /* invalidate all TLB entries because the new mapping is created */
+ __nds32__tlbop_flua();
+
/* use generic way to parse */
parse_early_param();