lkml.org 
[lkml]   [2021]   [Mar]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    Subject[PATCH v2 15/17] arm64: add __nocfi to __apply_alternatives
    From
    __apply_alternatives makes indirect calls to functions whose address
    is taken in assembly code using the alternative_cb macro. With
    non-canonical CFI, the compiler won't replace these function
    references with the jump table addresses, which trips CFI. Disable CFI
    checking in the function to work around the issue.

    Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
    Reviewed-by: Kees Cook <keescook@chromium.org>
    ---
    arch/arm64/kernel/alternative.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    diff --git a/arch/arm64/kernel/alternative.c b/arch/arm64/kernel/alternative.c
    index 1184c44ea2c7..abc84636af07 100644
    --- a/arch/arm64/kernel/alternative.c
    +++ b/arch/arm64/kernel/alternative.c
    @@ -133,8 +133,8 @@ static void clean_dcache_range_nopatch(u64 start, u64 end)
    } while (cur += d_size, cur < end);
    }

    -static void __apply_alternatives(void *alt_region, bool is_module,
    - unsigned long *feature_mask)
    +static void __nocfi __apply_alternatives(void *alt_region, bool is_module,
    + unsigned long *feature_mask)
    {
    struct alt_instr *alt;
    struct alt_region *region = alt_region;
    --
    2.31.0.291.g576ba9dcdaf-goog
    \
     
     \ /
      Last update: 2021-03-18 18:13    [W:2.293 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site