lkml.org 
[lkml]   [2019]   [Apr]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.4 074/131] arm64/kernel: fix incorrect EL0 check in inv_entry macro
    Date
    4.4-stable review patch.  If anyone has any objections, please let me know.

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

    [ Upstream commit b660950c60a7278f9d8deb7c32a162031207c758 ]

    The implementation of macro inv_entry refers to its 'el' argument without
    the required leading backslash, which results in an undefined symbol
    'el' to be passed into the kernel_entry macro rather than the index of
    the exception level as intended.

    This undefined symbol strangely enough does not result in build failures,
    although it is visible in vmlinux:

    $ nm -n vmlinux |head
    U el
    0000000000000000 A _kernel_flags_le_hi32
    0000000000000000 A _kernel_offset_le_hi32
    0000000000000000 A _kernel_size_le_hi32
    000000000000000a A _kernel_flags_le_lo32
    .....

    However, it does result in incorrect code being generated for invalid
    exceptions taken from EL0, since the argument check in kernel_entry
    assumes EL1 if its argument does not equal '0'.

    Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    arch/arm64/kernel/entry.S | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/arch/arm64/kernel/entry.S b/arch/arm64/kernel/entry.S
    index 3028d9b028c7..586326981769 100644
    --- a/arch/arm64/kernel/entry.S
    +++ b/arch/arm64/kernel/entry.S
    @@ -243,7 +243,7 @@ END(vectors)
    * Invalid mode handlers
    */
    .macro inv_entry, el, reason, regsize = 64
    - kernel_entry el, \regsize
    + kernel_entry \el, \regsize
    mov x0, sp
    mov x1, #\reason
    mrs x2, esr_el1
    --
    2.19.1


    \
     
     \ /
      Last update: 2019-04-01 19:46    [W:4.118 / U:3.076 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site