2005-04-13 16:15:56

by Matt Tolentino

[permalink] [raw]
Subject: [patch] minor syctl fix in vsyscall_init


Andi,

If CONFIG_SYCTL is not enabled then the x86-64 tree
fails to build due to use of a symbol that is not
compiled in. Don't bother compiling in the sysctl
register call if not building with sysctl.

matt

Signed-off-by: Matt Tolentino <[email protected]>


diff -urNp linux-2.6.12-rc2/arch/x86_64/kernel/vsyscall.c linux-2.6.12-rc2-m/arch/x86_64/kernel/vsyscall.c
--- linux-2.6.12-rc2/arch/x86_64/kernel/vsyscall.c 2005-04-04 12:39:06.000000000 -0400
+++ linux-2.6.12-rc2-m/arch/x86_64/kernel/vsyscall.c 2005-04-13 09:28:47.000000000 -0400
@@ -218,7 +218,9 @@ static int __init vsyscall_init(void)
BUG_ON((VSYSCALL_ADDR(0) != __fix_to_virt(VSYSCALL_FIRST_PAGE)));
map_vsyscall();
sysctl_vsyscall = 1;
+#ifdef CONFIG_SYSCTL
register_sysctl_table(kernel_root_table2, 0);
+#endif
return 0;
}


2005-04-13 18:29:16

by Andi Kleen

[permalink] [raw]
Subject: Re: [patch] minor syctl fix in vsyscall_init

On Wed, Apr 13, 2005 at 10:45:18AM -0700, Matt Tolentino wrote:
>
> Andi,
>
> If CONFIG_SYCTL is not enabled then the x86-64 tree
> fails to build due to use of a symbol that is not
> compiled in. Don't bother compiling in the sysctl
> register call if not building with sysctl.

Thanks. Actually it would be better to fix up sysctl.h
to define dummy functions in this case. I thought it did
that already in fact....

-Andi

2005-04-21 16:27:18

by Benoit Boissinot

[permalink] [raw]
Subject: Re: [patch] minor syctl fix in vsyscall_init

On 13 Apr 2005 20:29:13 +0200, Andi Kleen <[email protected]> wrote:
> On Wed, Apr 13, 2005 at 10:45:18AM -0700, Matt Tolentino wrote:
> >
> > Andi,
> >
> > If CONFIG_SYCTL is not enabled then the x86-64 tree
> > fails to build due to use of a symbol that is not
> > compiled in. Don't bother compiling in the sysctl
> > register call if not building with sysctl.
>
> Thanks. Actually it would be better to fix up sysctl.h
> to define dummy functions in this case. I thought it did
> that already in fact....
>

Yes it already does that, but kernel_root_table2 is not defined when
CONFIG_SYSCTL is not set (the problem isn't with
register_sysctl_table).

With 2.6.12-rc3:
arch/x86_64/kernel/vsyscall.c: In function `vsyscall_init':
arch/x86_64/kernel/vsyscall.c:221: error: `kernel_root_table2'
undeclared (first use in this function)

If you prefer, i can send a patch which sets kernel_table_root2 to
NULL when CONFIG_SYSCTL is not set. Or maybe there a better fix (btw
is sysctl_vsyscall needed when !CONFIG_SYSCTL ?).

regards,

Benoit

2005-04-22 11:31:34

by Andi Kleen

[permalink] [raw]
Subject: Re: [patch] minor syctl fix in vsyscall_init

On Thu, Apr 21, 2005 at 06:16:48PM +0200, Benoit Boissinot wrote:
> On 13 Apr 2005 20:29:13 +0200, Andi Kleen <[email protected]> wrote:
> > On Wed, Apr 13, 2005 at 10:45:18AM -0700, Matt Tolentino wrote:
> > >
> > > Andi,
> > >
> > > If CONFIG_SYCTL is not enabled then the x86-64 tree
> > > fails to build due to use of a symbol that is not
> > > compiled in. Don't bother compiling in the sysctl
> > > register call if not building with sysctl.
> >
> > Thanks. Actually it would be better to fix up sysctl.h
> > to define dummy functions in this case. I thought it did
> > that already in fact....
> >
>
> Yes it already does that, but kernel_root_table2 is not defined when
> CONFIG_SYSCTL is not set (the problem isn't with
> register_sysctl_table).
>
> With 2.6.12-rc3:
> arch/x86_64/kernel/vsyscall.c: In function `vsyscall_init':
> arch/x86_64/kernel/vsyscall.c:221: error: `kernel_root_table2'
> undeclared (first use in this function)
>
> If you prefer, i can send a patch which sets kernel_table_root2 to
> NULL when CONFIG_SYSCTL is not set. Or maybe there a better fix (btw
> is sysctl_vsyscall needed when !CONFIG_SYSCTL ?).

Hmpf ok. I assumed they were macros who ignore their arguments.
The original patch was fine, thanks.

-Andi