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);