lkml.org 
[lkml]   [2015]   [Oct]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.12 014/123] ARM: 7880/1: Clear the IT state independent of the Thumb-2 mode
    Date
    From: "T.J. Purtell" <tj@mobisocial.us>

    3.12-stable review patch. If anyone has any objections, please let me know.

    ===============

    commit 6ecf830e5029598732e04067e325d946097519cb upstream.

    The ARM architecture reference specifies that the IT state bits in the
    PSR must be all zeros in ARM mode or behavior is unspecified. On the
    Qualcomm Snapdragon S4/Krait architecture CPUs the processor continues
    to consider the IT state bits while in ARM mode. This makes it so
    that some instructions are skipped by the CPU.

    Signed-off-by: T.J. Purtell <tj@mobisocial.us>
    [rmk+kernel@arm.linux.org.uk: fixed whitespace formatting in patch]
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

    Signed-off-by: Jiri Slaby <jslaby@suse.cz>
    ---
    arch/arm/kernel/signal.c | 14 ++++++++++----
    1 file changed, 10 insertions(+), 4 deletions(-)

    diff --git a/arch/arm/kernel/signal.c b/arch/arm/kernel/signal.c
    index ab3304225272..1aa5ecdd1b3d 100644
    --- a/arch/arm/kernel/signal.c
    +++ b/arch/arm/kernel/signal.c
    @@ -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 */
    - cpsr &= ~PSR_IT_MASK;
    + /*
    + * 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;
    }
    --
    2.6.2


    \
     
     \ /
      Last update: 2015-10-28 16:01    [W:4.183 / U:0.240 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site