diff options
author | Vineet Gupta <vgupta@kernel.org> | 2019-09-16 10:54:34 -0700 |
---|---|---|
committer | Vineet Gupta <vgupta@kernel.org> | 2021-08-24 14:25:48 -0700 |
commit | a79a9c765f95a73e087f11f0994297cd69987bda (patch) | |
tree | a76971e8a4129756a0c31b176654934c883b5c7b /arch/arc | |
parent | 89d0d42412a116563c28c763d9c1bdee83b5b6af (diff) | |
download | linux-stable-a79a9c765f95a73e087f11f0994297cd69987bda.tar.gz linux-stable-a79a9c765f95a73e087f11f0994297cd69987bda.tar.bz2 linux-stable-a79a9c765f95a73e087f11f0994297cd69987bda.zip |
ARC: mm: move MMU specific bits out of entry code ...
... to avoid polluting shared entry code (across three ISA variants)
with ISA/MMU specific code.
Cc: Jose Abreu <joabreu@synopsys.com>
Signed-off-by: Vineet Gupta <vgupta@kernel.org>
Diffstat (limited to 'arch/arc')
-rw-r--r-- | arch/arc/include/asm/mmu.h | 8 | ||||
-rw-r--r-- | arch/arc/kernel/entry-arcv2.S | 1 | ||||
-rw-r--r-- | arch/arc/kernel/entry.S | 7 |
3 files changed, 11 insertions, 5 deletions
diff --git a/arch/arc/include/asm/mmu.h b/arch/arc/include/asm/mmu.h index c8b490175eae..e66e1e417694 100644 --- a/arch/arc/include/asm/mmu.h +++ b/arch/arc/include/asm/mmu.h @@ -84,6 +84,14 @@ static inline int is_pae40_enabled(void) extern int pae40_exist_but_not_enab(void); +#else + +.macro ARC_MMU_REENABLE reg + lr \reg, [ARC_REG_PID] + or \reg, \reg, MMU_ENABLE + sr \reg, [ARC_REG_PID] +.endm + #endif /* !__ASSEMBLY__ */ #endif diff --git a/arch/arc/kernel/entry-arcv2.S b/arch/arc/kernel/entry-arcv2.S index 12d5f12d10d2..a7e6a2174187 100644 --- a/arch/arc/kernel/entry-arcv2.S +++ b/arch/arc/kernel/entry-arcv2.S @@ -10,6 +10,7 @@ #include <asm/errno.h> #include <asm/arcregs.h> #include <asm/irqflags.h> +#include <asm/mmu.h> ; A maximum number of supported interrupts in the core interrupt controller. ; This number is not equal to the maximum interrupt number (256) because diff --git a/arch/arc/kernel/entry.S b/arch/arc/kernel/entry.S index 2cb8dfe866b6..dd77a0c8f740 100644 --- a/arch/arc/kernel/entry.S +++ b/arch/arc/kernel/entry.S @@ -101,11 +101,8 @@ ENTRY(EV_MachineCheck) lr r0, [efa] mov r1, sp - ; hardware auto-disables MMU, re-enable it to allow kernel vaddr - ; access for say stack unwinding of modules for crash dumps - lr r3, [ARC_REG_PID] - or r3, r3, MMU_ENABLE - sr r3, [ARC_REG_PID] + ; MC excpetions disable MMU + ARC_MMU_REENABLE r3 lsr r3, r2, 8 bmsk r3, r3, 7 |