Re: [2.6.25-rc3 regression] sysctl table check failed:/kernel/vsyscall64

From: Thomas Gleixner
Date: Wed Feb 27 2008 - 12:26:30 EST


On Wed, 27 Feb 2008, Pavel Emelyanov wrote:

> Frans Pop wrote:
> > Just tried 2.6.25-rc3 and got the error below. Boot continued normally.
> > Error was not present in rc2.
> >
> > System is x86_64, dual core Pentium D, Debian unstable.
> >
> > Cheers,
> > FJP
> >
> > P.S. Yes, I do have VirtualBox working under 2.6.25 now ;-)
>
> That's due to commit ce28b9 x86: fix vsyscall wreckage
>
> The proc_handler initialization is simply dropped for this table,
> but AFAIS from the commit comment this was done simply to disable
> the vsyscall_gtod_data.sysctl_enabled tuning. Did I miss something?

No. I noticed my stupidity already. Patch below is queued for Linus.

Thanks,
tglx

------------>
Subject: x86: restore vsyscall64 prochandler
From: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Date: Wed, 27 Feb 2008 09:39:52 +0100

commit ce28b9864b853803320c3f1d8de1b81aa4120b14
x86: fix vsyscall wreckage

removed the prochandler completely. This triggers:
sysctl table check failed: /kernel/vsyscall64 No proc_handler

Restore the sane part of the proc handler.

Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
---
arch/x86/kernel/vsyscall_64.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)

Index: linux-2.6/arch/x86/kernel/vsyscall_64.c
===================================================================
--- linux-2.6.orig/arch/x86/kernel/vsyscall_64.c
+++ linux-2.6/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 },
{}
};

--
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/