]> git.baikalelectronics.ru Git - kernel.git/commit
ARC: [arcompact] entry.S: Improve early return from exception
authorVineet Gupta <vgupta@synopsys.com>
Sat, 5 Sep 2015 17:38:31 +0000 (23:08 +0530)
committerVineet Gupta <vgupta@synopsys.com>
Sat, 17 Oct 2015 12:18:22 +0000 (17:48 +0530)
commit7b7d7d3bc300951ffdf61e64fd793491e0c1b81e
tree19e73c6b565f2ce0676a99f88e254411acf4a48a
parentdca8f9e4bba641f9e4f283674fdaab908ce6e54e
ARC: [arcompact] entry.S: Improve early return from exception

The requirement is to
 - Reenable Exceptions (AE cleared)
 - Reenable Interrupts (E1/E2 set)

We need to do wiggle these bits into ERSTATUS and call RTIE.

Prev version used the pre-exception STATUS32 as starting point for what
goes into ERSTATUS. This required explicit fixups of U/DE/L bits.

Instead, use the current (in-exception) STATUS32 as starting point.
Being in exception handler U/DE/L can be safely assumed to be correct.
Only AE/E1/E2 need to be fixed.

So the new implementation is slightly better
 -Avoids read form memory
 -Is 4 bytes smaller for the typical 1 level of intr configuration
 -Depicts the semantics more clearly

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
arch/arc/include/asm/entry-compact.h
arch/arc/include/asm/irqflags-compact.h