lkml.org 
[lkml]   [2014]   [Apr]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [PATCH 04/28] nios2: Exception handling
    Hi Ley Foon,

    On Apr 18, Ley Foon Tan wrote:
    > +
    > + /* Get thread info pointer */
    > + movi r11, %lo(0xfffff000)
    > + and r11, sp, r11
    > + ldw r11, TI_FLAGS(r11)
    > +
    > + /* If someone is ptrace:ing us, take the long way. */
    > + BTBNZ r11, r11, TIF_SYSCALL_TRACE, traced_system_call
    > +

    Are you sure this is correct? Have you tested this works correctly?

    Last time I tested this, it caused the traced_system_call to be taken
    for every system call. I already reported and provided a patch a few
    months ago:

    http://lists.rocketboards.org/pipermail/nios2-dev/2014-January/006968.html

    Here's my proposed fix:

    diff --git a/arch/nios2/kernel/entry.S b/arch/nios2/kernel/entry.S
    index 9cf2bac..3798008 100644
    --- a/arch/nios2/kernel/entry.S
    +++ b/arch/nios2/kernel/entry.S
    @@ -204,13 +204,10 @@ ENTRY(handle_system_call)
    ldw r1, %lo(sys_call_table)(r1)
    beq r1, r0, ret_invsyscall

    - /* Get thread info pointer */
    - movi r11, %lo(0xfffff000)
    - and r11, sp, r11
    - ldw r11, TI_FLAGS(r11)
    -
    - /* If someone is ptrace:ing us, take the long way. */
    - BTBNZ r11, r11, TIF_SYSCALL_TRACE, traced_system_call
    + /* Check if we are being traced */
    + GET_THREAD_INFO r11
    + ldw r11,TI_FLAGS(r11)
    + BTBNZ r11,r11,TIF_SYSCALL_TRACE,traced_system_call

    /* Execute the system call */
    callr r1
    --
    1.9.1
    --
    Ezequiel García, Free Electrons
    Embedded Linux, Kernel and Android Engineering
    http://free-electrons.com
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2014-04-22 13:41    [W:4.120 / U:1.936 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site