On Fri, 22 Jul 2022 at 11:02, Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx> wrote: > > Hi, > > On Thu, Jul 21, 2022 at 03:42:39PM +0200, Kumar Kartikeya Dwivedi wrote: > > diff --git a/include/net/netfilter/nf_conntrack_core.h b/include/net/netfilter/nf_conntrack_core.h > > index 37866c8386e2..83a60c684e6c 100644 > > --- a/include/net/netfilter/nf_conntrack_core.h > > +++ b/include/net/netfilter/nf_conntrack_core.h > > @@ -84,4 +84,19 @@ void nf_conntrack_lock(spinlock_t *lock); > > > > extern spinlock_t nf_conntrack_expect_lock; > > > > +/* ctnetlink code shared by both ctnetlink and nf_conntrack_bpf */ > > + > > +#if (IS_BUILTIN(CONFIG_NF_CONNTRACK) && IS_ENABLED(CONFIG_DEBUG_INFO_BTF)) || \ > > + (IS_MODULE(CONFIG_NF_CONNTRACK) && IS_ENABLED(CONFIG_DEBUG_INFO_BTF_MODULES) || \ > > + IS_ENABLED(CONFIG_NF_CT_NETLINK)) > > There must be a better way to do this without ifdef pollution? > > Could you fix this? I can just remove the ifdefs completely. The first part of the ifdef is the correct way to detect BPF support for nf_conntrack, the second is for ct netlink. These are the only two users. But it's not a lot of code, so until it grows too much we can compile it unconditionally. Or do you have anything else in mind (like defining a macro for the bpf one and making the ifdef look less ugly)?