Loading arch/arm/kernel/signal.c +10 −4 Original line number Diff line number Diff line Loading @@ -375,12 +375,18 @@ setup_return(struct pt_regs *regs, struct ksignal *ksig, */ thumb = handler & 1; if (thumb) { cpsr |= PSR_T_BIT; #if __LINUX_ARM_ARCH__ >= 7 /* clear the If-Then Thumb-2 execution state */ /* * Clear the If-Then Thumb-2 execution state * ARM spec requires this to be all 000s in ARM mode * Snapdragon S4/Krait misbehaves on a Thumb=>ARM * signal transition without this. */ cpsr &= ~PSR_IT_MASK; #endif if (thumb) { cpsr |= PSR_T_BIT; } else cpsr &= ~PSR_T_BIT; } Loading Loading
arch/arm/kernel/signal.c +10 −4 Original line number Diff line number Diff line Loading @@ -375,12 +375,18 @@ setup_return(struct pt_regs *regs, struct ksignal *ksig, */ thumb = handler & 1; if (thumb) { cpsr |= PSR_T_BIT; #if __LINUX_ARM_ARCH__ >= 7 /* clear the If-Then Thumb-2 execution state */ /* * Clear the If-Then Thumb-2 execution state * ARM spec requires this to be all 000s in ARM mode * Snapdragon S4/Krait misbehaves on a Thumb=>ARM * signal transition without this. */ cpsr &= ~PSR_IT_MASK; #endif if (thumb) { cpsr |= PSR_T_BIT; } else cpsr &= ~PSR_T_BIT; } Loading