ARM: Ensure predictable endian state on signal handler entry

Ensure a predictable endian state when entering signal handlers. This
avoids programs which use SETEND to momentarily switch their endian
state from having their signal handlers entered with an unpredictable
endian state.

Cc: <stable@kernel.org>
Acked-by: Dave Martin <dave.martin@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

+3 -1
+3 -1
arch/arm/kernel/signal.c
··· 474 474 unsigned long handler = (unsigned long)ka->sa.sa_handler; 475 475 unsigned long retcode; 476 476 int thumb = 0; 477 - unsigned long cpsr = regs->ARM_cpsr & ~PSR_f; 477 + unsigned long cpsr = regs->ARM_cpsr & ~(PSR_f | PSR_E_BIT); 478 + 479 + cpsr |= PSR_ENDSTATE; 478 480 479 481 /* 480 482 * Maybe we need to deliver a 32-bit signal to a 26-bit task.