parisc: Fix ptrace check on syscall return
authorHelge Deller <deller@gmx.de>
Mon, 4 Oct 2021 22:27:49 +0000 (00:27 +0200)
committerHelge Deller <deller@gmx.de>
Mon, 1 Nov 2021 06:35:58 +0000 (07:35 +0100)
The TIF_XXX flags are stored in the flags field in the thread_info
struct (TI_FLAGS), not in the flags field of the task_struct structure
(TASK_FLAGS).

It seems this bug didn't generate any important side-effects, otherwise it
wouldn't have went unnoticed for 12 years (since v2.6.32).

Signed-off-by: Helge Deller <deller@gmx.de>
Fixes: ecd3d4bc06e48 ("parisc: stop using task->ptrace for {single,block}step flags")
Cc: Kyle McMartin <kyle@mcmartin.ca>
Cc: stable@vger.kernel.org
arch/parisc/kernel/entry.S

index 4fc81ed..852bf73 100644 (file)
@@ -1834,7 +1834,7 @@ syscall_restore:
        LDREG   TI_TASK-THREAD_SZ_ALGN-FRAME_SIZE(%r30),%r1
 
        /* Are we being ptraced? */
-       ldw     TASK_FLAGS(%r1),%r19
+       LDREG   TI_FLAGS-THREAD_SZ_ALGN-FRAME_SIZE(%r30),%r19
        ldi     _TIF_SYSCALL_TRACE_MASK,%r2
        and,COND(=)     %r19,%r2,%r0
        b,n     syscall_restore_rfi