summary refs log tree commit diff
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2008-02-27 09:39:52 +0100
committerIngo Molnar <mingo@elte.hu>2008-02-29 18:55:39 +0100
commitd67bbacb4b557ece3b41abdcb616354ac0ce00e1 (patch)
tree9ce2927bb34e60816675b9460a2ee968bc000d73
parentcded932b75ab0a5f9181ee3da34a0a488d1a14fd (diff)
downloadlinux-d67bbacb4b557ece3b41abdcb616354ac0ce00e1.tar.gz
x86: restore vsyscall64 prochandler
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>
-rw-r--r--arch/x86/kernel/vsyscall_64.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/arch/x86/kernel/vsyscall_64.c b/arch/x86/kernel/vsyscall_64.c
index b6be812fac05..edff4c985485 100644
--- a/arch/x86/kernel/vsyscall_64.c
+++ b/arch/x86/kernel/vsyscall_64.c
@@ -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 },
 	{}
 };