]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
openrisc: Add syscall details to emergency syscall debugging
authorStafford Horne <shorne@gmail.com>
Sun, 30 Jan 2022 08:38:51 +0000 (17:38 +0900)
committerStafford Horne <shorne@gmail.com>
Mon, 23 May 2022 08:15:49 +0000 (17:15 +0900)
When bringing linux on the or1k Marocchino we ran into issues starting
init.  This patch adds the syscall number and return address to
assist tracing syscalls even before strace is able to be used.

By default this is all disabled but a developer could adjust the ifdef
to enable debugging.

Cc: Andrey Bacherov <bandvig@mail.ru>
Signed-off-by: Stafford Horne <shorne@gmail.com>
arch/openrisc/kernel/entry.S

index 3ca1b1f490b99195cd40872248ac9a75aeeaba26..54a87bba35caa063a6665ae86645f7cbf270bedd 100644 (file)
@@ -601,7 +601,7 @@ UNHANDLED_EXCEPTION(_vector_0xb00,0xb00)
  */
 
 _string_syscall_return:
-       .string "syscall return %ld \n\r\0"
+       .string "syscall r9:0x%08x -> syscall(%ld) return %ld\0"
        .align 4
 
 ENTRY(_sys_call_handler)
@@ -679,15 +679,25 @@ _syscall_return:
 _syscall_debug:
        l.movhi r3,hi(_string_syscall_return)
        l.ori   r3,r3,lo(_string_syscall_return)
-       l.ori   r27,r0,1
+       l.ori   r27,r0,2
        l.sw    -4(r1),r27
        l.sw    -8(r1),r11
-       l.addi  r1,r1,-8
+       l.lwz   r29,PT_ORIG_GPR11(r1)
+       l.sw    -12(r1),r29
+       l.lwz   r29,PT_GPR9(r1)
+       l.sw    -16(r1),r29
        l.movhi r27,hi(_printk)
        l.ori   r27,r27,lo(_printk)
        l.jalr  r27
-        l.nop
-       l.addi  r1,r1,8
+        l.addi  r1,r1,-16
+       l.addi  r1,r1,16
+#endif
+#if 0
+_syscall_show_regs:
+       l.movhi r27,hi(show_registers)
+       l.ori   r27,r27,lo(show_registers)
+       l.jalr  r27
+        l.or   r3,r1,r1
 #endif
 
 _syscall_check_trace_leave: