[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20251207010942.1672972-1-kuba@kernel.org>
Date: Sat, 6 Dec 2025 17:09:38 -0800
From: Jakub Kicinski <kuba@...nel.org>
To: davem@...emloft.net
Cc: netdev@...r.kernel.org,
edumazet@...gle.com,
pabeni@...hat.com,
andrew+netdev@...n.ch,
horms@...nel.org,
pablo@...filter.org,
fw@...len.de,
netfilter-devel@...r.kernel.org,
willemdebruijn.kernel@...il.com,
kuniyu@...gle.com,
Jakub Kicinski <kuba@...nel.org>
Subject: [PATCH net 0/4] inet: frags: flush pending skbs in fqdir_pre_exit()
Fix the issue reported by NIPA starting on Sep 18th [1], where
pernet_ops_rwsem is constantly held by a reader, preventing writers
from grabbing it (specifically driver modules from loading).
The fact that reports started around that time seems coincidental.
The issue seems to be skbs queued for defrag preventing conntrack
from exiting.
First patch fixes another theoretical issue, it's mostly a leftover
from an attempt to get rid of the inet_frag_queue refcnt, which
I gave up on (still think it's doable but a bit of a time sink).
Second patch is a minor refactor.
The real fix is in the third patch. It's the simplest fix I can
think of which is to flush the frag queues. Perhaps someone has
a better suggestion?
Last patch adds an explicit warning for conntrack getting stuck,
as this seems like something that can easily happen if bugs sneak in.
The warning will hopefully save us the first 20% of the investigation
effort.
Link: https://lore.kernel.org/20251001082036.0fc51440@kernel.org # [1]
Jakub Kicinski (4):
inet: frags: avoid theoretical race in ip_frag_reinit()
inet: frags: add inet_frag_queue_flush()
inet: frags: flush pending skbs in fqdir_pre_exit()
netfilter: conntrack: warn when cleanup is stuck
include/net/inet_frag.h | 18 ++--------
include/net/ipv6_frag.h | 9 +++--
net/ipv4/inet_fragment.c | 55 ++++++++++++++++++++++++++++---
net/ipv4/ip_fragment.c | 22 +++++--------
net/netfilter/nf_conntrack_core.c | 3 ++
5 files changed, 72 insertions(+), 35 deletions(-)
--
2.52.0
Powered by blists - more mailing lists