lkml.org 
[lkml]   [2019]   [Jul]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCH v3 0/4] arm64: kprobes: Fix some bugs in arm64 kprobes
    Date
    Hi,

    Here are the v3 patches which fixes kprobe bugs on arm64.
    In this version I fixed some issues pointed by James and add Reviewed-by
    and Acked-bys.

    Background:
    Naresh reported that recently ftracetest crashes kernel, and I found
    there are 3 different bugs around the crash. In v1 thread, we found
    one another bug of RCU and debug exception.

    - Kprobes on arm64 doesn't recover pstate.D mask after single stepping.
    So after hitting kprobes, the debug flag status is changed.
    - Some symbols which are called from blacklisted function, are not
    blacklisted.
    - Debug exception is not visible to RCU, thus rcu_read_lock() cause
    a warning inside it.
    - Debug exception handlers on arm64 is using rcu_read_lock(), but
    that is not needed because interrupts are disabled.

    This series includes fixes for above bugs.

    Thank you,

    ---

    Masami Hiramatsu (4):
    arm64: kprobes: Recover pstate.D in single-step exception handler
    arm64: unwind: Prohibit probing on return_address()
    arm64: Make debug exception handlers visible from RCU
    arm64: Remove unneeded rcu_read_lock from debug handlers


    arch/arm64/include/asm/daifflags.h | 2 ++
    arch/arm64/kernel/debug-monitors.c | 14 +++++++------
    arch/arm64/kernel/probes/kprobes.c | 39 +++++------------------------------
    arch/arm64/kernel/return_address.c | 3 +++
    arch/arm64/kernel/stacktrace.c | 3 +++
    arch/arm64/mm/fault.c | 40 ++++++++++++++++++++++++++++++++++++
    6 files changed, 61 insertions(+), 40 deletions(-)

    --
    Masami Hiramatsu (Linaro) <mhiramat@kernel.org>

    \
     
     \ /
      Last update: 2019-07-25 10:17    [W:4.690 / U:0.024 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site