[PATCH] sysctl: Update sysctl_check to handle compiled out code.

From: Eric W. Biederman
Date: Sat Aug 25 2007 - 14:03:44 EST



Currently sysctl_check_table will complain if a strategy routine
is missing when we have sys_sysctl compiled out, or a proc_handler
is missing when we have procfs compiled out. At least some
of the custom handlers actually expand to NULL when this is the
case so the warning is actually a problem.

Valdis.Kletnieks@xxxxxx writes:
> As far as "something else wrong", I'm still seeing these in -rc3-mm1
>
> [ 0.628000] sysctl table check failed: /kernel/ostype .1.1 Missing strategy
> [ 0.628000] sysctl table check failed: /kernel/osrelease .1.2 Missing strategy
> [ 0.628000] sysctl table check failed: /kernel/version .1.4 Missing strategy
> [ 0.628000] sysctl table check failed: /kernel/hostname .1.7 Missing strategy
> [ 0.628000] sysctl table check failed: /kernel/domainname .1.8 Missing strategy
> [ 0.628000] sysctl table check failed: /kernel/shmmax .1.34 Missing strategy
> [ 0.628000] sysctl table check failed: /kernel/shmall .1.41 Missing strategy
> [ 0.628000] sysctl table check failed: /kernel/shmmni .1.45 Missing strategy
> [ 0.628000] sysctl table check failed: /kernel/msgmax .1.35 Missing strategy
> [ 0.628000] sysctl table check failed: /kernel/msgmni .1.42 Missing strategy
> [ 0.628000] sysctl table check failed: /kernel/msgmnb .1.36 Missing strategy
> [ 0.628000] sysctl table check failed: /kernel/sem .1.43 Missing strategy


So don't worry about missing strategy routines, or missing proc_handler
routines when they will never be called.

Signed-off-by: Eric W. Biederman <ebiederm@xxxxxxxxxxxx>
---
kernel/sysctl_check.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/kernel/sysctl_check.c b/kernel/sysctl_check.c
index aa5b6f6..10dd744 100644
--- a/kernel/sysctl_check.c
+++ b/kernel/sysctl_check.c
@@ -1552,14 +1552,18 @@ int sysctl_check_table(struct ctl_table *table)
set_fail(&fail, table, "No max");
}
}
+#ifdef CONFIG_SYSCTL_SYSCALL
if (table->ctl_name && !table->strategy)
set_fail(&fail, table, "Missing strategy");
+#endif
#if 0
if (!table->ctl_name && table->strategy)
set_fail(&fail, table, "Strategy without ctl_name");
#endif
+#ifdef CONFIG_PROC_FS
if (table->procname && !table->proc_handler)
set_fail(&fail, table, "No proc_handler");
+#endif
#if 0
if (!table->procname && table->proc_handler)
set_fail(&fail, table, "proc_handler without procname");
--
1.5.3.rc6.17.g1911

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/