um: Store syscall number after syscall_trace_enter()
[firefly-linux-kernel-4.4.55.git] / arch / um / os-Linux / skas / process.c
index 3dddedba3a07f6ca423d6b8e16d79189cbc799de..d38f4952d748964ce554ad27c2b6b315541a0c97 100644 (file)
@@ -137,9 +137,6 @@ static void handle_trap(int pid, struct uml_pt_regs *regs,
        if ((UPT_IP(regs) >= STUB_START) && (UPT_IP(regs) < STUB_END))
                fatal_sigsegv();
 
-       /* Mark this as a syscall */
-       UPT_SYSCALL_NR(regs) = PT_SYSCALL_NR(regs->gp);
-
        if (!local_using_sysemu)
        {
                err = ptrace(PTRACE_POKEUSER, pid, PT_SYSCALL_NR_OFFSET,
@@ -174,6 +171,13 @@ static void handle_trap(int pid, struct uml_pt_regs *regs,
        handle_syscall(regs);
 }
 
+int get_syscall(struct uml_pt_regs *regs)
+{
+       UPT_SYSCALL_NR(regs) = PT_SYSCALL_NR(regs->gp);
+
+       return UPT_SYSCALL_NR(regs);
+}
+
 extern char __syscall_stub_start[];
 
 static int userspace_tramp(void *stack)