On Mon, May 22, 2023 at 01:34:09PM -0700, Jakub Kicinski wrote: > On Mon, 22 May 2023 15:24:37 +0200 Alexander Mikhalitsyn wrote: > > v6: > > - disable feature when CONFIG_UNIX=n/m (pidfd_prepare API is not exported to modules) > > IMHO hiding the code under #if IS_BUILTIN(CONFIG_UNRELATED) is > surprising to the user and.. ugly? > > Can we move scm_pidfd_recv() into a C source and export that? > That should be less controversial than exporting pidfd_prepare() > directly? 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)