Re: git: f384784289db - main - kern_syscall_deregister: document syscall 0 no-op logic
- In reply to: Enji Cooper : "git: f384784289db - main - kern_syscall_deregister: document syscall 0 no-op logic"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 06 Jan 2026 09:42:17 UTC
On Tue, Jan 06, 2026 at 07:49:18AM +0000, Enji Cooper wrote:
> The branch main has been updated by ngie:
>
> URL: https://cgit.FreeBSD.org/src/commit/?id=f384784289dba13b90138a89d3df3a8ea063aff9
>
> commit f384784289dba13b90138a89d3df3a8ea063aff9
> Author: Anagh Verma <go4av05.pvtx@gmail.com>
> AuthorDate: 2026-01-06 07:42:56 +0000
> Commit: Enji Cooper <ngie@FreeBSD.org>
> CommitDate: 2026-01-06 07:48:54 +0000
>
> kern_syscall_deregister: document syscall 0 no-op logic
>
> Document syscall #0 being handled specially in
> `kern_syscall_deregister(..)`: it's a reserved syscall and not
> dynamically registered, and hence does not need to be deregistered in
> the function.
>
> Co-authored-by: ngie@
> MFC after: 2 weeks
> Differential Revision: https://reviews.freebsd.org/D54326
> ---
> sys/kern/kern_syscalls.c | 10 ++++++++--
> 1 file changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/sys/kern/kern_syscalls.c b/sys/kern/kern_syscalls.c
> index a93d711e7597..7ddc28ed4e26 100644
> --- a/sys/kern/kern_syscalls.c
> +++ b/sys/kern/kern_syscalls.c
> @@ -161,8 +161,14 @@ kern_syscall_deregister(struct sysent *sysents, int offset,
> {
> struct sysent *se;
>
> - if (offset == 0)
> - return (0); /* XXX? */
> + if (offset == 0) {
> + /*
> + * Syscall #0 is reserved and is not dynamically registered.
Syscall number zero is not reserved, it is the mux syscall.
It is indeed not dynamic, it is marked with the SY_THR_STATIC flag.
> + * Treat deregistration as a no-op to simplify module unload
> + * paths.
> + */
> + return (0);
> + }
>
> se = &sysents[offset];
> if ((se->sy_thrcnt & SY_THR_STATIC) != 0)
This check for SY_THR_STATIC would catch it.
That said, what is the use of silencing the error from an erronous
attempt to deregister syscall handler not owned by caller?