Module Name: src Committed By: hannken Date: Wed Jun 29 16:33:09 UTC 2022
Modified Files: src/sys/kern: sys_syscall.c Log Message: Synchronize SYS_SYSCALL() with other syscall implementations and call trace_exit() even if trace_enter() returned an error. PR kern/52166 "syscallemu does not work on sparc (32-bit)" PR toolchain/56117 "New test failures on amd64 since switch to gcc10" To generate a diff of this commit: cvs rdiff -u -r1.14 -r1.15 src/sys/kern/sys_syscall.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/kern/sys_syscall.c diff -u src/sys/kern/sys_syscall.c:1.14 src/sys/kern/sys_syscall.c:1.15 --- src/sys/kern/sys_syscall.c:1.14 Mon Mar 14 12:02:19 2022 +++ src/sys/kern/sys_syscall.c Wed Jun 29 16:33:09 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: sys_syscall.c,v 1.14 2022/03/14 12:02:19 riastradh Exp $ */ +/* $NetBSD: sys_syscall.c,v 1.15 2022/06/29 16:33:09 hannken Exp $ */ /*- * Copyright (c) 2006 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sys_syscall.c,v 1.14 2022/03/14 12:02:19 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sys_syscall.c,v 1.15 2022/06/29 16:33:09 hannken Exp $"); #include <sys/syscall_stats.h> #include <sys/syscallvar.h> @@ -99,9 +99,8 @@ SYS_SYSCALL(struct lwp *l, const struct #endif error = trace_enter(code, callp, TRACE_ARGS); - if (__predict_false(error != 0)) - return error; - error = sy_call(callp, l, &uap->args, rval); + if (__predict_true(error == 0)) + error = sy_call(callp, l, &uap->args, rval); trace_exit(code, callp, &uap->args, rval, error); CONCAT(SYS_SYSCALL, _biglockcheck)(p, code); return error;