summaryrefslogtreecommitdiffstats
path: root/arch/csky/abiv1
diff options
context:
space:
mode:
authorGuo Ren2019-06-18 14:33:32 +0200
committerGuo Ren2019-07-19 08:21:36 +0200
commit22d55f02b8922a097cd4be1e2f131dfa7ef65901 (patch)
treee8e0c0f8c5071343902090aa225fb92bd5747536 /arch/csky/abiv1
parentcsky: Add new asid lib code from arm (diff)
downloadkernel-qcow2-linux-22d55f02b8922a097cd4be1e2f131dfa7ef65901.tar.gz
kernel-qcow2-linux-22d55f02b8922a097cd4be1e2f131dfa7ef65901.tar.xz
kernel-qcow2-linux-22d55f02b8922a097cd4be1e2f131dfa7ef65901.zip
csky: Use generic asid algorithm to implement switch_mm
Use linux generic asid/vmid algorithm to implement csky switch_mm function. The algorithm is from arm and it could work with SMP system. It'll help reduce tlb flush for switch_mm in task/vm switch. Signed-off-by: Guo Ren <ren_guo@c-sky.com> Cc: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'arch/csky/abiv1')
-rw-r--r--arch/csky/abiv1/inc/abi/ckmmu.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/csky/abiv1/inc/abi/ckmmu.h b/arch/csky/abiv1/inc/abi/ckmmu.h
index 81f37715c0d2..ba8eb5870835 100644
--- a/arch/csky/abiv1/inc/abi/ckmmu.h
+++ b/arch/csky/abiv1/inc/abi/ckmmu.h
@@ -78,6 +78,12 @@ static inline void tlb_invalid_all(void)
cpwcr("cpcr8", 0x04000000);
}
+
+static inline void local_tlb_invalid_all(void)
+{
+ tlb_invalid_all();
+}
+
static inline void tlb_invalid_indexed(void)
{
cpwcr("cpcr8", 0x02000000);