Commit 97abfd5d authored by Alexey Brodkin's avatar Alexey Brodkin Committed by Vineet Gupta

ARCv2: entry: early return from exception need not clear U & DE bits

Exception handlers call FAKE_RET_FROM_EXCPN to
 - clear AE bit: drop down from exception active to pure kernel mode
   allowing further excptions
 - set IE bit: re-enable interrupts

It additionally also clears U bit (user mode) and DE bit (delay slot
execution) which is redundant as hardware does that already on any taken
exception. Morevoer the current software clearing is bogus anyways as
the KFLAG instruction being used for purpose can't possibly write those
bits anyways.

So don't pretend to clear them.
Signed-off-by: default avatarAlexey Brodkin <abrodkin@synopsys.com>
Signed-off-by: default avatarVineet Gupta <vgupta@synopsys.com>
[vgupta: rewrote changelog]
parent 5f9e832c
...@@ -256,7 +256,7 @@ ...@@ -256,7 +256,7 @@
.macro FAKE_RET_FROM_EXCPN .macro FAKE_RET_FROM_EXCPN
lr r9, [status32] lr r9, [status32]
bic r9, r9, (STATUS_U_MASK|STATUS_DE_MASK|STATUS_AE_MASK) bic r9, r9, STATUS_AE_MASK
or r9, r9, STATUS_IE_MASK or r9, r9, STATUS_IE_MASK
kflag r9 kflag r9
.endm .endm
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment