On Tue, Nov 07, 2023 at 02:44:21PM +0100, Joel Granados via B4 Relay wrote: > [PATCH 2/4] aio: Remove the now superfluous sentinel elements from ctl_table array The commit prefix should be "fs:". > Remove sentinel elements ctl_table struct. Special attention was placed in > making sure that an empty directory for fs/verity was created when > CONFIG_FS_VERITY_BUILTIN_SIGNATURES is not defined. In this case we use the > register sysctl call that expects a size. [...] > diff --git a/fs/verity/fsverity_private.h b/fs/verity/fsverity_private.h > index d071a6e32581..8191bf7ad706 100644 > --- a/fs/verity/fsverity_private.h > +++ b/fs/verity/fsverity_private.h > @@ -122,8 +122,8 @@ void __init fsverity_init_info_cache(void); > > /* signature.c */ > > -#ifdef CONFIG_FS_VERITY_BUILTIN_SIGNATURES > extern int fsverity_require_signatures; > +#ifdef CONFIG_FS_VERITY_BUILTIN_SIGNATURES > int fsverity_verify_signature(const struct fsverity_info *vi, > const u8 *signature, size_t sig_size); > > diff --git a/fs/verity/init.c b/fs/verity/init.c > index a29f062f6047..e31045dd4f6c 100644 > --- a/fs/verity/init.c > +++ b/fs/verity/init.c > @@ -13,7 +13,6 @@ > static struct ctl_table_header *fsverity_sysctl_header; > > static struct ctl_table fsverity_sysctl_table[] = { > -#ifdef CONFIG_FS_VERITY_BUILTIN_SIGNATURES > { > .procname = "require_signatures", > .data = &fsverity_require_signatures, > @@ -23,14 +22,17 @@ static struct ctl_table fsverity_sysctl_table[] = { > .extra1 = SYSCTL_ZERO, > .extra2 = SYSCTL_ONE, > }, > -#endif > - { } > }; > > static void __init fsverity_init_sysctl(void) > { > +#ifdef CONFIG_FS_VERITY_BUILTIN_SIGNATURES > fsverity_sysctl_header = register_sysctl("fs/verity", > fsverity_sysctl_table); > +#else > + fsverity_sysctl_header = register_sysctl_sz("fs/verity", > + fsverity_sysctl_table, 0); > +#endif > if (!fsverity_sysctl_header) > panic("fsverity sysctl registration failed"); This does not make sense, and it causes a build error when CONFIG_FS_VERITY=y and CONFIG_FS_VERITY_BUILTIN_SIGNATURES=n. I think all you need to do is delete the sentinel element, the same as everywhere else. I just tested it, and it works fine. BTW, the comments for register_sysctl_sz() and __register_sysctl_table() are outdated, as they still say "A completely 0 filled entry terminates the table." - Eric