arm64: entry: Allow SPSR_EL1.SS to be restored
If we take an IRQ from the single-step state-machine's active-not-pending
state, the PSTATE.SS bit is saved in SPSR_EL1.SS. This lets us restore the
state machine when we return to the to-be-stepped instruction.
The ARM-ARM has some rules about when ERET will restore this bit, (see
ARM DDI 0487B.a D2.12.4 Entering the active-not-pending state'), in
particular it requires 'debug exceptions are disabled from the current
exception level'. el1_irq unmasks debug exceptions, and continues like this
until eret. The PSTATE.SS bit is not restored.
Fix this this by masking all exceptions on kernel_exit.
Signed-off-by:
James Morse <james.morse@arm.com>
Loading
Please register or sign in to comment