From: Rabin Vincent Date: Sat, 24 May 2014 16:38:01 +0000 (+0100) Subject: ARM: 8064/1: fix v7-M signal return X-Git-Tag: omap-for-v3.16/fixes-against-rc1~125^2~1 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=483a6c9d447f625b991fa04a1530493d893984db;p=pandora-kernel.git ARM: 8064/1: fix v7-M signal return According to the ARM ARM, the behaviour is UNPREDICTABLE if the PC read from the exception return stack is not half word aligned. See the pseudo code for ExceptionReturn() and PopStack(). The signal handler's address has the bit 0 set, and setup_return() directly writes this to regs->ARM_pc. Current hardware happens to discard this bit, but QEMU's emulation doesn't and this makes processes crash. Mask out bit 0 before the exception return in order to get predictable behaviour. Fixes: 19c4d593f0b4 ("ARM: ARMv7-M: Add support for exception handling") Cc: stable@kernel.org Acked-by: Uwe Kleine-König Signed-off-by: Rabin Vincent Signed-off-by: Russell King --- Reading git-diff-tree failed