Commit 4ebc417e authored by Jan Kiszka's avatar Jan Kiszka Committed by Andrew Morton
Browse files

scripts/gdb: fix aarch64 userspace detection in get_current_task

At least recent gdb releases (seen with 14.2) return SP_EL0 as signed long
which lets the right-shift always return 0.

Link: https://lkml.kernel.org/r/dcd2fabc-9131-4b48-8419-6444e2d67454@siemens.com


Signed-off-by: default avatarJan Kiszka <jan.kiszka@siemens.com>
Cc: Barry Song <baohua@kernel.org>
Cc: Kieran Bingham <kbingham@kernel.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
parent a479b078
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -167,7 +167,7 @@ def get_current_task(cpu):
            var_ptr = gdb.parse_and_eval("&pcpu_hot.current_task")
            return per_cpu(var_ptr, cpu).dereference()
    elif utils.is_target_arch("aarch64"):
        current_task_addr = gdb.parse_and_eval("$SP_EL0")
        current_task_addr = gdb.parse_and_eval("(unsigned long)$SP_EL0")
        if (current_task_addr >> 63) != 0:
            current_task = current_task_addr.cast(task_ptr_type)
            return current_task.dereference()