On 6/11/19 5:08 PM, Matteo Croce wrote: > On Wed, Jun 12, 2019 at 1:07 AM Randy Dunlap <rdunlap@xxxxxxxxxxxxx> wrote: >> >> On 6/9/19 7:57 PM, David Miller wrote: >>> From: Matteo Croce <mcroce@xxxxxxxxxx> >>> Date: Sat, 8 Jun 2019 14:50:19 +0200 >>> >>>> MPLS routing code relies on sysctl to work, so let it select PROC_SYSCTL. >>>> >>>> Reported-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx> >>>> Suggested-by: David Ahern <dsahern@xxxxxxxxx> >>>> Signed-off-by: Matteo Croce <mcroce@xxxxxxxxxx> >>> >>> Applied, thanks. >>> >> >> This patch causes build errors when >> # CONFIG_PROC_FS is not set >> because PROC_SYSCTL depends on PROC_FS. The build errors are not >> in fs/proc/ but in other places in the kernel that never expect to see >> PROC_FS not set but PROC_SYSCTL=y. >> > > Hi, > > Maybe I'm missing something, if PROC_SYSCTL depends on PROC_FS, how is > possible to have PROC_FS not set but PROC_SYSCTL=y? When MPLS=y and MPLS_ROUTING=[y|m], MPLS_ROUTING selects PROC_SYSCTL. That enables PROC_SYSCTL, whether PROC_FS is set/enabled or not. There is a warning about this in Documentation/kbuild/kconfig-language.rst: Note: select should be used with care. select will force a symbol to a value without visiting the dependencies. By abusing select you are able to select a symbol FOO even if FOO depends on BAR that is not set. In general use select only for non-visible symbols (no prompts anywhere) and for symbols with no dependencies. That will limit the usefulness but on the other hand avoid the illegal configurations all over. > I tried it by manually editing .config. but make oldconfig warns: > > WARNING: unmet direct dependencies detected for PROC_SYSCTL > Depends on [n]: PROC_FS [=n] > Selected by [m]: > - MPLS_ROUTING [=m] && NET [=y] && MPLS [=y] && (NET_IP_TUNNEL [=n] > || NET_IP_TUNNEL [=n]=n) Yes, I get this also. > * > * Restart config... > * > * > * 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. -- ~Randy