lkml.org 
[lkml]   [2018]   [Nov]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 060/124] ARM: 8809/1: proc-v7: fix Thumb annotation of cpu_v7_hvc_switch_mm
    Date
    4.14-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Ard Biesheuvel <ard.biesheuvel@linaro.org>

    commit 6282e916f774e37845c65d1eae9f8c649004f033 upstream.

    Due to what appears to be a copy/paste error, the opening ENTRY()
    of cpu_v7_hvc_switch_mm() lacks a matching ENDPROC(), and instead,
    the one for cpu_v7_smc_switch_mm() is duplicated.

    Given that it is ENDPROC() that emits the Thumb annotation, the
    cpu_v7_hvc_switch_mm() routine will be called in ARM mode on a
    Thumb2 kernel, resulting in the following splat:

    Internal error: Oops - undefined instruction: 0 [#1] SMP THUMB2
    Modules linked in:
    CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.18.0-rc1-00030-g4d28ad89189d-dirty #488
    Hardware name: QEMU KVM Virtual Machine, BIOS 0.0.0 02/06/2015
    PC is at cpu_v7_hvc_switch_mm+0x12/0x18
    LR is at flush_old_exec+0x31b/0x570
    pc : [<c0316efe>] lr : [<c04117c7>] psr: 00000013
    sp : ee899e50 ip : 00000000 fp : 00000001
    r10: eda28f34 r9 : eda31800 r8 : c12470e0
    r7 : eda1fc00 r6 : eda53000 r5 : 00000000 r4 : ee88c000
    r3 : c0316eec r2 : 00000001 r1 : eda53000 r0 : 6da6c000
    Flags: nzcv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none

    Note the 'ISA ARM' in the last line.

    Fix this by using the correct name in ENDPROC().

    Cc: <stable@vger.kernel.org>
    Fixes: 10115105cb3a ("ARM: spectre-v2: add firmware based hardening")
    Reviewed-by: Dave Martin <Dave.Martin@arm.com>
    Acked-by: Marc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    arch/arm/mm/proc-v7.S | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    --- a/arch/arm/mm/proc-v7.S
    +++ b/arch/arm/mm/proc-v7.S
    @@ -112,7 +112,7 @@ ENTRY(cpu_v7_hvc_switch_mm)
    hvc #0
    ldmfd sp!, {r0 - r3}
    b cpu_v7_switch_mm
    -ENDPROC(cpu_v7_smc_switch_mm)
    +ENDPROC(cpu_v7_hvc_switch_mm)
    #endif
    ENTRY(cpu_v7_iciallu_switch_mm)
    mov r3, #0

    \
     
     \ /
      Last update: 2018-11-19 19:19    [W:4.163 / U:0.084 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site