[PATCH -mm] sysctl: Fix syscall disabled build.

From: Paul Mundt
Date: Tue Sep 11 2007 - 04:50:54 EST


deprecated_sysctl_warning() is used for sys_sysctl(), whether
CONFIG_SYSCTL_SYSCALL is enabled or not. When it was added, it was
added under the CONFIG_SYSCTL section, so it's not defined if we have
the support disabled completely.

CC kernel/sysctl.o
kernel/sysctl.c: In function 'sys_sysctl':
kernel/sysctl.c:2601: error: implicit declaration of function 'deprecated_sysctl_warning'
make[1]: *** [kernel/sysctl.o] Error 1
make: *** [kernel] Error 2

This just moves the function past the end of the CONFIG_SYSCTL space
so both configurations are happy.

Signed-off-by: Paul Mundt <lethal@xxxxxxxxxxxx>

--

kernel/sysctl.c | 56 +++++++++++++++++++++++++++++---------------------------
1 file changed, 29 insertions(+), 27 deletions(-)

--- linux-2.6.23-rc4-mm1.orig/kernel/sysctl.c 2007-09-11 15:15:56.000000000 +0900
+++ linux-2.6.23-rc4-mm1/kernel/sysctl.c 2007-09-11 17:43:36.000000000 +0900
@@ -55,6 +55,8 @@
#include <asm/stacktrace.h>
#endif

+static int deprecated_sysctl_warning(struct __sysctl_args *args);
+
#if defined(CONFIG_SYSCTL)

/* External variables not in a header file. */
@@ -1330,33 +1332,6 @@
return NULL;
}

-static int deprecated_sysctl_warning(struct __sysctl_args *args)
-{
- static int msg_count;
- int name[CTL_MAXNAME];
- int i;
-
- /* Read in the sysctl name for better debug message logging */
- for (i = 0; i < args->nlen; i++)
- if (get_user(name[i], args->name + i))
- return -EFAULT;
-
- /* Ignore accesses to kernel.version */
- if ((args->nlen == 2) && (name[0] == CTL_KERN) && (name[1] == KERN_VERSION))
- return 0;
-
- if (msg_count < 5) {
- msg_count++;
- printk(KERN_INFO
- "warning: process `%s' used the deprecated sysctl "
- "system call with ", current->comm);
- for (i = 0; i < args->nlen; i++)
- printk("%d.", name[i]);
- printk("\n");
- }
- return 0;
-}
-
#ifdef CONFIG_SYSCTL_SYSCALL
int do_sysctl(int __user *name, int nlen, void __user *oldval, size_t __user *oldlenp,
void __user *newval, size_t newlen)
@@ -2644,6 +2619,33 @@

#endif /* CONFIG_SYSCTL_SYSCALL */

+static int deprecated_sysctl_warning(struct __sysctl_args *args)
+{
+ static int msg_count;
+ int name[CTL_MAXNAME];
+ int i;
+
+ /* Read in the sysctl name for better debug message logging */
+ for (i = 0; i < args->nlen; i++)
+ if (get_user(name[i], args->name + i))
+ return -EFAULT;
+
+ /* Ignore accesses to kernel.version */
+ if ((args->nlen == 2) && (name[0] == CTL_KERN) && (name[1] == KERN_VERSION))
+ return 0;
+
+ if (msg_count < 5) {
+ msg_count++;
+ printk(KERN_INFO
+ "warning: process `%s' used the deprecated sysctl "
+ "system call with ", current->comm);
+ for (i = 0; i < args->nlen; i++)
+ printk("%d.", name[i]);
+ printk("\n");
+ }
+ return 0;
+}
+
/*
* No sense putting this after each symbol definition, twice,
* exception granted :-)
-
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/