Subject: Re: [PATCH net] mpls: fix af_mpls dependencies

From: David Ahern <[email-masked]>
Date: Fri, 14 Jun 2019 08:07:06 -0600

On 6/14/19 8:01 AM, Arnd Bergmann wrote:
> On Wed, Jun 12, 2019 at 9:41 AM Randy Dunlap <[email-masked]> wrote:
>> On 6/11/19 5:08 PM, Matteo Croce wrote:
>>> On Wed, Jun 12, 2019 at 1:07 AM Randy Dunlap <[email-masked]> wrote:
>>> * Configure standard kernel features (expert users)
>>> *
>>> Configure standard kernel features (expert users) (EXPERT) [Y/?] y
>>>   Multiple users, groups and capabilities support (MULTIUSER) [Y/n/?] y
>>>   sgetmask/ssetmask syscalls support (SGETMASK_SYSCALL) [N/y/?] n
>>>   Sysfs syscall support (SYSFS_SYSCALL) [N/y/?] n
>>>   Sysctl syscall support (SYSCTL_SYSCALL) [N/y/?] (NEW)
>>
>> So I still say that MPLS_ROUTING should depend on PROC_SYSCTL,
>> not select it.
> 
> 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.