Re: [PATCH net] mpls: fix af_mpls dependencies

From: David Ahern
Date: Fri Jun 14 2019 - 10:11:57 EST


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:
>>> On Wed, Jun 12, 2019 at 1:07 AM Randy Dunlap <rdunlap@xxxxxxxxxxxxx> 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.