The branch stable/14 has been updated by kib:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=98e530b33891735cc573c538a90cdfde7ae99a96

commit 98e530b33891735cc573c538a90cdfde7ae99a96
Author:     Konstantin Belousov <k...@freebsd.org>
AuthorDate: 2025-07-06 12:18:11 +0000
Commit:     Konstantin Belousov <k...@freebsd.org>
CommitDate: 2025-07-12 01:41:35 +0000

    kern: add kern_nosys() and use it instead of type-punning the sys_nosys() 
arg
    
    (cherry picked from commit 26061e4e542d220c577fb3437a9a9f108dc27698)
---
 sys/kern/kern_sig.c      | 9 +++++++--
 sys/kern/kern_syscalls.c | 5 +++--
 sys/kern/sysv_msg.c      | 2 +-
 sys/kern/sysv_sem.c      | 2 +-
 sys/kern/sysv_shm.c      | 2 +-
 sys/sys/syscallsubr.h    | 1 +
 6 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c
index 0291c2647da6..d8be29779386 100644
--- a/sys/kern/kern_sig.c
+++ b/sys/kern/kern_sig.c
@@ -1042,8 +1042,7 @@ osigaction(struct thread *td, struct osigaction_args *uap)
 int
 osigreturn(struct thread *td, struct osigreturn_args *uap)
 {
-
-       return (nosys(td, (struct nosys_args *)uap));
+       return (kern_nosys(td, 0));
 }
 #endif
 #endif /* COMPAT_43 */
@@ -4298,6 +4297,12 @@ struct nosys_args {
 /* ARGSUSED */
 int
 nosys(struct thread *td, struct nosys_args *args)
+{
+       return (kern_nosys(td, args->dummy));
+}
+
+int
+kern_nosys(struct thread *td, int dummy)
 {
        struct proc *p;
 
diff --git a/sys/kern/kern_syscalls.c b/sys/kern/kern_syscalls.c
index f923211cb6c8..e330f8a2ba09 100644
--- a/sys/kern/kern_syscalls.c
+++ b/sys/kern/kern_syscalls.c
@@ -36,6 +36,7 @@
 #include <sys/resourcevar.h>
 #include <sys/sx.h>
 #include <sys/syscall.h>
+#include <sys/syscallsubr.h>
 #include <sys/sysent.h>
 #include <sys/sysproto.h>
 #include <sys/systm.h>
@@ -51,14 +52,14 @@ int
 lkmnosys(struct thread *td, struct nosys_args *args)
 {
 
-       return (nosys(td, args));
+       return (kern_nosys(td, 0));
 }
 
 int
 lkmressys(struct thread *td, struct nosys_args *args)
 {
 
-       return (nosys(td, args));
+       return (kern_nosys(td, 0));
 }
 
 struct sysent nosys_sysent = {
diff --git a/sys/kern/sysv_msg.c b/sys/kern/sysv_msg.c
index 1e84d151b4af..354a01fa7e3f 100644
--- a/sys/kern/sysv_msg.c
+++ b/sys/kern/sysv_msg.c
@@ -1724,7 +1724,7 @@ freebsd32_msgsys(struct thread *td, struct 
freebsd32_msgsys_args *uap)
                return (sys_msgsys(td, (struct msgsys_args *)uap));
        }
 #else
-       return (nosys(td, NULL));
+       return (kern_nosys(td, 0));
 #endif
 }
 
diff --git a/sys/kern/sysv_sem.c b/sys/kern/sysv_sem.c
index ad4243464a96..076851235ffa 100644
--- a/sys/kern/sysv_sem.c
+++ b/sys/kern/sysv_sem.c
@@ -1904,7 +1904,7 @@ freebsd32_semsys(struct thread *td, struct 
freebsd32_semsys_args *uap)
                return (sys_semsys(td, (struct semsys_args *)uap));
        }
 #else
-       return (nosys(td, NULL));
+       return (kern_nosys(td, 0));
 #endif
 }
 
diff --git a/sys/kern/sysv_shm.c b/sys/kern/sysv_shm.c
index 60e3fe92a4b7..8d1a469127c6 100644
--- a/sys/kern/sysv_shm.c
+++ b/sys/kern/sysv_shm.c
@@ -1474,7 +1474,7 @@ freebsd32_shmsys(struct thread *td, struct 
freebsd32_shmsys_args *uap)
                return (EINVAL);
        }
 #else
-       return (nosys(td, NULL));
+       return (kern_nosys(td, 0));
 #endif
 }
 
diff --git a/sys/sys/syscallsubr.h b/sys/sys/syscallsubr.h
index 4450a28dc4dd..8fafb8ace311 100644
--- a/sys/sys/syscallsubr.h
+++ b/sys/sys/syscallsubr.h
@@ -249,6 +249,7 @@ int kern_munlock(struct thread *td, uintptr_t addr, size_t 
size);
 int    kern_munmap(struct thread *td, uintptr_t addr, size_t size);
 int     kern_nanosleep(struct thread *td, struct timespec *rqt,
            struct timespec *rmt);
+int    kern_nosys(struct thread *td, int dummy);
 int    kern_ntp_adjtime(struct thread *td, struct timex *ntv, int *retvalp);
 int    kern_ogetdirentries(struct thread *td, struct ogetdirentries_args *uap,
            long *ploff);

Reply via email to