On Wed 2023-06-21 11:09:57, Joel Granados wrote:
In order to remove the end element from the ctl_table struct arrays, we
explicitly define the size when registering the targes. We add a size
argument to the register_sysctl_init call and pass an ARRAY_SIZE for all
the callers.
This does not explain the motivatin why the end element is removed.
I agree with Jiri that saving 9k is a questionable gain. According to
the cover letter it saved 0,00%. It is because it saved 9k with allyes
config which produces huge kernel. IMHO, the 9k might be interesting
only for a tiny kernel. But I guess that it would safe much less
bytes there.
And the code with the added ARRAY_SIZE() parameter looks worse than before.
quoted hunk ↗ jump to hunk
diff --git a/kernel/printk/sysctl.c b/kernel/printk/sysctl.c
index c228343eeb97..28f37b86414e 100644
--- a/kernel/printk/sysctl.c
+++ b/kernel/printk/sysctl.c
@@ -81,5 +81,6 @@ static struct ctl_table printk_sysctls[] = {
void __init printk_sysctl_init(void)
{
- register_sysctl_init("kernel", printk_sysctls);
+ register_sysctl_init("kernel", printk_sysctls,
+ ARRAY_SIZE(printk_sysctls));
}
Is register_sysctl_init() still ready to handle the last empty element,
please? I am not in Cc on the related patches.
Best Regards,
Petr