x86: restore vsyscall64 prochandler
authorThomas Gleixner <tglx@linutronix.de>
Wed, 27 Feb 2008 08:39:52 +0000 (09:39 +0100)
committerIngo Molnar <mingo@elte.hu>
Fri, 29 Feb 2008 17:55:39 +0000 (18:55 +0100)
a recent fix:

  commit ce28b9864b853803320c3f1d8de1b81aa4120b14
  Author: Thomas Gleixner <tglx@linutronix.de>
  Date:   Wed Feb 20 23:57:30 2008 +0100

    x86: fix vsyscall wreckage

removed the broken /kernel/vsyscall64 handler completely.
This triggers the following debug check:

  sysctl table check failed: /kernel/vsyscall64  No proc_handler

Restore the sane part of the proc handler.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/vsyscall_64.c

index b6be812fac0502cd2caccc19dcec0a147a0dc3fa..edff4c9854854429fda22ce2d35f7f08fa64c593 100644 (file)
@@ -222,10 +222,19 @@ long __vsyscall(3) venosys_1(void)
 }
 
 #ifdef CONFIG_SYSCTL
+
+static int
+vsyscall_sysctl_change(ctl_table *ctl, int write, struct file * filp,
+                      void __user *buffer, size_t *lenp, loff_t *ppos)
+{
+       return proc_dointvec(ctl, write, filp, buffer, lenp, ppos);
+}
+
 static ctl_table kernel_table2[] = {
        { .procname = "vsyscall64",
          .data = &vsyscall_gtod_data.sysctl_enabled, .maxlen = sizeof(int),
-         .mode = 0644 },
+         .mode = 0644,
+         .proc_handler = vsyscall_sysctl_change },
        {}
 };