[PATCH 11/18] ARC: mm: move MMU specific bits out of entry code

From: Vineet Gupta
Date: Tue Aug 10 2021 - 20:43:41 EST


Signed-off-by: Vineet Gupta <vgupta@xxxxxxxxxx>
---
arch/arc/kernel/entry.S | 6 ------
arch/arc/mm/tlb.c | 3 +++
2 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/arch/arc/kernel/entry.S b/arch/arc/kernel/entry.S
index 2cb8dfe866b6..684efd094520 100644
--- a/arch/arc/kernel/entry.S
+++ b/arch/arc/kernel/entry.S
@@ -101,12 +101,6 @@ 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]
-
lsr r3, r2, 8
bmsk r3, r3, 7
brne r3, ECR_C_MCHK_DUP_TLB, 1f
diff --git a/arch/arc/mm/tlb.c b/arch/arc/mm/tlb.c
index b68d5798327b..34f16e0b41e6 100644
--- a/arch/arc/mm/tlb.c
+++ b/arch/arc/mm/tlb.c
@@ -813,5 +813,8 @@ void do_tlb_overlap_fault(unsigned long cause, unsigned long address,
}
}

+ /* Re-enable MMU as hardware may have auto-disabled it upon exception */
+ write_aux_reg(ARC_REG_PID, read_aux_reg(ARC_REG_PID) | MMU_ENABLE);
+
local_irq_restore(flags);
}
--
2.25.1