On Tue, 23 May 2023 11:44:01 +0100 Luca Boccassi wrote: > > I really would like to avoid that because it will just mean that someone > > else will abuse that function and then make an argument why we should > > export the other function. > > > > I think it would be ok if we required that unix support is built in > > because it's not unprecedented either and we're not breaking anything. > > Bpf has the same requirement: > > > > #if IS_BUILTIN(CONFIG_UNIX) && defined(CONFIG_BPF_SYSCALL) > > struct bpf_unix_iter_state { > > struct seq_net_private p; > > unsigned int cur_sk; > > unsigned int end_sk; > > unsigned int max_sk; > > struct sock **batch; > > bool st_bucket_done; > > }; > > > > and > > > > #if IS_BUILTIN(CONFIG_UNIX) && defined(CONFIG_BPF_SYSCALL) && defined(CONFIG_PROC_FS) > > DEFINE_BPF_ITER_FUNC(unix, struct bpf_iter_meta *meta, > > struct unix_sock *unix_sk, uid_t uid) Don't think we should bring BPF into arguments about uAPI consistency :S > Some data points: Debian, Ubuntu, Fedora, RHEL, CentOS, Archlinux all > ship with CONFIG_UNIX=y, so a missing SCM_PIDFD in unlikely to have a > widespread impact, and if it does, it might encourage someone to > review their kconfig. IDK how you can argue that everyone sets UNIX to =y so hiding SCM_PIDFD is fine and at the same time not be okay with making UNIX a bool :S > As mentioned on the v5 thread, we are waiting for this API to get the > userspace side sorted (systemd/dbus/dbus-broker/polkit), so I'd be > really grateful if we could start with the simplest and most > conservative approach (which seems to be the current one in v6 to me), > and then eventually later decide whether to export more functions, or > to deprecate CONFIG_UNIX=m, or something else entirely, as that > doesn't really affect the shape of the UAPI, just the details of its > availability. Thank you. Just throw in a patch to make UNIX a bool and stop arguing then.