aboutsummaryrefslogtreecommitdiff
path: root/arch/arm64/kernel/signal32.c
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2014-10-09 18:00:22 +0100
committerMark Brown <broonie@kernel.org>2014-10-09 18:00:22 +0100
commitb97ae0d6eac52b4fda9f0dd1d31c81dac4ddd572 (patch)
treecb28abab59f0aac039e7c97df5750d42b8a5a525 /arch/arm64/kernel/signal32.c
parent8bb495e3f02401ee6f76d1b1d77f3ac9f079e376 (diff)
parentbc48de9c9ed83296b420c47f9057f3fe219f7ef9 (diff)
Merge tag 'gic-v3-for-lsk-v3.10-v1' of git://git.linaro.org/people/christoffer.dall/linux-kvm-arm into lsk-v3.10-gicv3v3.10/topic/gicv3
Initial GICv3 patches backported for LSK v3.10
Diffstat (limited to 'arch/arm64/kernel/signal32.c')
-rw-r--r--arch/arm64/kernel/signal32.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/arch/arm64/kernel/signal32.c b/arch/arm64/kernel/signal32.c
index e393174fe859..3edf7f48c54b 100644
--- a/arch/arm64/kernel/signal32.c
+++ b/arch/arm64/kernel/signal32.c
@@ -474,12 +474,13 @@ static void compat_setup_return(struct pt_regs *regs, struct k_sigaction *ka,
/* Check if the handler is written for ARM or Thumb */
thumb = handler & 1;
- if (thumb) {
+ if (thumb)
spsr |= COMPAT_PSR_T_BIT;
- spsr &= ~COMPAT_PSR_IT_MASK;
- } else {
+ else
spsr &= ~COMPAT_PSR_T_BIT;
- }
+
+ /* The IT state must be cleared for both ARM and Thumb-2 */
+ spsr &= ~COMPAT_PSR_IT_MASK;
if (ka->sa.sa_flags & SA_RESTORER) {
retcode = ptr_to_compat(ka->sa.sa_restorer);