2022-03-06 11:12:50

by Tom Rix

[permalink] [raw]
Subject: [PATCH] netfilter: conditionally use ct and ctinfo

From: Tom Rix <[email protected]>

The setting ct and ctinfo are controlled by
CONF_NF_CONNTRACK. So their use should also
be controlled.

Signed-off-by: Tom Rix <[email protected]>
---
net/netfilter/nfnetlink_log.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/net/netfilter/nfnetlink_log.c b/net/netfilter/nfnetlink_log.c
index d97eb280cb2e8..141e0ebf4bc23 100644
--- a/net/netfilter/nfnetlink_log.c
+++ b/net/netfilter/nfnetlink_log.c
@@ -629,9 +629,11 @@ __build_packet_message(struct nfnl_log_net *log,
htonl(atomic_inc_return(&log->global_seq))))
goto nla_put_failure;

+#if IS_ENABLED(CONFIG_NF_CONNTRACK)
if (ct && nfnl_ct->build(inst->skb, ct, ctinfo,
NFULA_CT, NFULA_CT_INFO) < 0)
goto nla_put_failure;
+#endif

if ((pf == NFPROTO_NETDEV || pf == NFPROTO_BRIDGE) &&
nfulnl_put_bridge(inst, skb) < 0)
--
2.26.3


2022-03-07 18:22:09

by Florian Westphal

[permalink] [raw]
Subject: Re: [PATCH] netfilter: conditionally use ct and ctinfo

[email protected] <[email protected]> wrote:
> From: Tom Rix <[email protected]>
>
> The setting ct and ctinfo are controlled by
> CONF_NF_CONNTRACK. So their use should also
> be controlled.

Any reason for this change?

We try to avoid ifdef where possible, unless it avoids a compiler
warning/build/linker issue.

This doesn't change generated code for me (NF_CONNTRACK=n) either.

2022-03-08 18:51:02

by Florian Westphal

[permalink] [raw]
Subject: Re: [PATCH] netfilter: conditionally use ct and ctinfo

Tom Rix <[email protected]> wrote:
>
> On 3/7/22 4:46 AM, Florian Westphal wrote:
> > [email protected] <[email protected]> wrote:
> > > From: Tom Rix <[email protected]>
> > >
> > > The setting ct and ctinfo are controlled by
> > > CONF_NF_CONNTRACK. So their use should also
> > > be controlled.
> > Any reason for this change?
>
> Define and use are connected. Doing something to one without doing something
> to the other doesn't make sense.

We often rely on compiler to remove branches that always evaluate to
false, just like in this case.

> Could removing the CONF_NF_CONNTRACK be done for the define side ?

Doubt it. Looking at git history it avoids build breakage.

2022-03-08 23:17:18

by Tom Rix

[permalink] [raw]
Subject: Re: [PATCH] netfilter: conditionally use ct and ctinfo


On 3/7/22 4:46 AM, Florian Westphal wrote:
> [email protected] <[email protected]> wrote:
>> From: Tom Rix <[email protected]>
>>
>> The setting ct and ctinfo are controlled by
>> CONF_NF_CONNTRACK. So their use should also
>> be controlled.
> Any reason for this change?

Define and use are connected. Doing something to one without doing
something to the other doesn't make sense.

Could removing the CONF_NF_CONNTRACK be done for the define side ?

Tom

> We try to avoid ifdef where possible, unless it avoids a compiler
> warning/build/linker issue.
>
> This doesn't change generated code for me (NF_CONNTRACK=n) either.
>