On Fri, Jun 14, 2019 at 4:07 PM David Ahern <dsahern@xxxxxxxxx> wrote: > On 6/14/19 8:01 AM, Arnd Bergmann wrote: > > On Wed, Jun 12, 2019 at 9:41 AM Randy Dunlap <rdunlap@xxxxxxxxxxxxx> wrote: > >> On 6/11/19 5:08 PM, Matteo Croce wrote: > > > > It clearly shouldn't select PROC_SYSCTL, but I think it should not > > have a 'depends on' statement either. I think the correct fix for the > > original problem would have been something like > > > > --- a/net/mpls/af_mpls.c > > +++ b/net/mpls/af_mpls.c > > @@ -2659,6 +2659,9 @@ static int mpls_net_init(struct net *net) > > net->mpls.ip_ttl_propagate = 1; > > net->mpls.default_ttl = 255; > > > > + if (!IS_ENABLED(CONFIG_PROC_SYSCTL)) > > + return 0; > > + > > table = kmemdup(mpls_table, sizeof(mpls_table), GFP_KERNEL); > > if (table == NULL) > > return -ENOMEM; > > > > Without sysctl, the entire mpls_router code is disabled. So if sysctl is > not enabled there is no point in building this file. Ok, I see. There are a couple of other drivers that use 'depends on SYSCTL', which may be the right thing to do here. In theory, one can still build a kernel with CONFIG_SYSCTRL_SYSCALL=y and no procfs. Arnd