From: Pavel Tikhomirov <ptikhomirov@virtuozzo.com>
To: Florian Westphal <fw@strlen.de>
Cc: "David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
kernel@openvz.org
Subject: Re: [PATCH 1/4] netfilter: nfnetlink_log: use proper helper for fetching physinif
Date: Wed, 10 Jan 2024 21:48:15 +0800 [thread overview]
Message-ID: <367b1642-c09a-4bc6-ac63-7692b716174d@virtuozzo.com> (raw)
In-Reply-To: <20240110133333.GA24888@breakpoint.cc>
On 10/01/2024 21:33, Florian Westphal wrote:
> Pavel Tikhomirov <ptikhomirov@virtuozzo.com> wrote:
>> We don't use physindev in __build_packet_message except for getting
>> physinif from it. So let's switch to nf_bridge_get_physinif to get what
>> we want directly.
>>
>> Signed-off-by: Pavel Tikhomirov <ptikhomirov@virtuozzo.com>
>> ---
>> net/netfilter/nfnetlink_log.c | 8 ++++----
>> 1 file changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/net/netfilter/nfnetlink_log.c b/net/netfilter/nfnetlink_log.c
>> index f03f4d4d7d889..134e05d31061e 100644
>> --- a/net/netfilter/nfnetlink_log.c
>> +++ b/net/netfilter/nfnetlink_log.c
>> @@ -508,7 +508,7 @@ __build_packet_message(struct nfnl_log_net *log,
>> htonl(br_port_get_rcu(indev)->br->dev->ifindex)))
>> goto nla_put_failure;
>> } else {
>> - struct net_device *physindev;
>> + int physinif;
>>
>> /* Case 2: indev is bridge group, we need to look for
>> * physical device (when called from ipv4) */
>> @@ -516,10 +516,10 @@ __build_packet_message(struct nfnl_log_net *log,
>> htonl(indev->ifindex)))
>> goto nla_put_failure;
>>
>> - physindev = nf_bridge_get_physindev(skb);
>> - if (physindev &&
>> + physinif = nf_bridge_get_physinif(skb);
>> + if (physinif &&
>> nla_put_be32(inst->skb, NFULA_IFINDEX_PHYSINDEV,
>> - htonl(physindev->ifindex)))
>> + htonl(physinif)))
>
> I think you can drop this patch and make the last patch pass
> nf_bridge_info->physinif directly.
The whole Idea of this patch was to replace nf_bridge_get_physindev with
nf_bridge_get_physinif before the patch which propagates net, so that we
don't need to propagate net first and then in later patch remove it when
replacing with nf_bridge_get_physinif.
But I spoiled it by forgetting to remove net propagation to
__build_packet_message...
Is it ok if I leave this patch as is, but instead remove:
diff --git a/net/netfilter/nfnetlink_log.c b/net/netfilter/nfnetlink_log.c
index 134e05d31061e..ad93dd77e6071 100644
--- a/net/netfilter/nfnetlink_log.c
+++ b/net/netfilter/nfnetlink_log.c
@@ -463,7 +463,8 @@ __build_packet_message(struct nfnl_log_net *log,
const struct net_device *outdev,
const char *prefix, unsigned int plen,
const struct nfnl_ct_hook *nfnl_ct,
- struct nf_conn *ct, enum ip_conntrack_info ctinfo)
+ struct nf_conn *ct, enum ip_conntrack_info ctinfo,
+ struct net *net)
{
struct nfulnl_msg_packet_hdr pmsg;
struct nlmsghdr *nlh;
@@ -804,7 +805,7 @@ nfulnl_log_packet(struct net *net,
__build_packet_message(log, inst, skb, data_len, pf,
hooknum, in, out, prefix, plen,
- nfnl_ct, ct, ctinfo);
+ nfnl_ct, ct, ctinfo, net);
if (inst->qlen >= qthreshold)
__nfulnl_flush(inst);
from third patch?
--
Best regards, Tikhomirov Pavel
Senior Software Developer, Virtuozzo.
next prev parent reply other threads:[~2024-01-10 13:48 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-10 11:00 [PATCH 0/4] netlink: bridge: fix nf_bridge->physindev use after free Pavel Tikhomirov
2024-01-10 11:00 ` [PATCH 1/4] netfilter: nfnetlink_log: use proper helper for fetching physinif Pavel Tikhomirov
2024-01-10 13:33 ` Florian Westphal
2024-01-10 13:48 ` Pavel Tikhomirov [this message]
2024-01-10 14:01 ` Florian Westphal
2024-01-10 11:00 ` [PATCH 2/4] netfilter: nf_queue: remove excess nf_bridge variable Pavel Tikhomirov
2024-01-10 11:00 ` [PATCH 3/4] netfilter: propagate net to nf_bridge_get_physindev Pavel Tikhomirov
2024-01-10 13:34 ` Florian Westphal
2024-01-10 14:14 ` [PATCH v2 " Pavel Tikhomirov
2024-01-11 14:40 ` Paolo Abeni
2024-01-11 15:10 ` Pavel Tikhomirov
2024-01-10 11:00 ` [PATCH 4/4] netfilter: bridge: replace physindev with physinif in nf_bridge_info Pavel Tikhomirov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=367b1642-c09a-4bc6-ac63-7692b716174d@virtuozzo.com \
--to=ptikhomirov@virtuozzo.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=fw@strlen.de \
--cc=kernel@openvz.org \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®