From: Karl Mehltretter <kmehltretter@gmail.com>
To: Maxime Chevallier <maxime.chevallier@bootlin.com>,
Andrew Lunn <andrew+netdev@lunn.ch>,
netdev@vger.kernel.org
Cc: Karl Mehltretter <kmehltretter@gmail.com>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Maxime Coquelin <mcoquelin.stm32@gmail.com>,
Alexandre Torgue <alexandre.torgue@foss.st.com>,
Alexei Starovoitov <ast@kernel.org>,
Daniel Borkmann <daniel@iogearbox.net>,
Jesper Dangaard Brouer <hawk@kernel.org>,
John Fastabend <john.fastabend@gmail.com>,
Stanislav Fomichev <sdf@fomichev.me>,
Joao Pinto <Joao.Pinto@synopsys.com>,
Giuseppe Cavallaro <peppe.cavallaro@st.com>,
Srinivas Kandagatla <srini@kernel.org>,
Ong Boon Leong <boon.leong.ong@intel.com>,
bpf@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org
Subject: [PATCH net 0/3] net: stmmac: fix DMA allocation and IRQ failure cleanup
Date: Wed, 14 Oct 2026 08:26:58 +0200 [thread overview]
Message-ID: <cover.1791958735.git.kmehltretter@gmail.com> (raw)
A DMA error-path review for the BeagleV Ahead found three bugs in the
common STMMAC code. Partial allocation can call buffer cleanup without
the metadata it indexes. A later TX allocation failure leaks the RX
resources allocated first. IRQ registration failure can release
descriptors and packet buffers while DMA remains active.
Patches 1 and 2 fix allocation cleanup. Patch 3 fixes the IRQ failure
unwind independently.
Testing:
- BeagleV Ahead, TH1520 DWMAC 3.70a: guarded baseline/fixed boots for RX
and TX allocation failures and normal-open IRQ failure. Baseline runs
reached the guarded unsafe boundaries. Fixed runs cleared the tracked
resources and stopped DMA before cleanup.
- A matched follow-up applied the same RTL8211F-VD resume repair to all
baseline and fixed kernels. At both 100 and 1000 Mbit/s, each variant
passed eight close/open cycles (32 total), delay-register checks,
pings and bidirectional 1 MiB SHA-256 transfers with no RX CRC or
DMA-API errors.
- Native-XDP IRQ failure was exercised on the same board. The baseline
reached IRQ unwind with DMA active and required a test-only rescue;
the fixed kernel stopped DMA before unwind. Both reached descriptor
cleanup with DMA inactive and no DMA-API errors.
- The physical native-XDP pair used CONFIG_BPF_JIT=n in both variants
to bypass an independent RISC-V execmem Oops after the STMMAC unwind.
The default configuration's XDP-open path remains covered by the QEMU
fault-injection matrix.
- The exact combined code passed 24 of 24 checked 64 MiB transfers on
fresh BeagleV Ahead boots with no DMA-API errors.
- QEMU orangepi-pc/dwmac-sun8i: 36 of 36 cold boots passed across the
allocation and IRQ matrices, including XDP-open IRQ failure.
- The exact combined code cross-built the STMMAC objects and BeagleV
Ahead DTB with a RISC-V defconfig and DWMAC_THEAD enabled.
The guards and fault-injection hooks are test-only and are not in this
series. The RTL8211F-VD repair is being submitted separately.
Based on 24a19b953e2a (Linux 7.3-rc7).
Karl Mehltretter (3):
net: stmmac: handle partially allocated DMA queues
net: stmmac: free RX resources when TX allocation fails
net: stmmac: stop DMA when IRQ registration fails
.../net/ethernet/stmicro/stmmac/stmmac_main.c | 26 +++++++++++++++----
1 file changed, 21 insertions(+), 5 deletions(-)
base-commit: 24a19b953e2a3d0ea5a8c4951a0ab8f32720c907
--
2.39.5 (Apple Git-154)
next reply other threads:[~2026-10-14 6:27 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-14 6:26 Karl Mehltretter [this message]
2026-10-14 6:26 ` [PATCH net 1/3] net: stmmac: handle partially allocated DMA queues Karl Mehltretter
2026-10-14 11:36 ` Maxime Chevallier
2026-10-14 6:27 ` [PATCH net 2/3] net: stmmac: free RX resources when TX allocation fails Karl Mehltretter
2026-10-14 11:37 ` Maxime Chevallier
2026-10-14 6:27 ` [PATCH net 3/3] net: stmmac: stop DMA when IRQ registration fails Karl Mehltretter
2026-10-14 11:29 ` Daniel Machon
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=cover.1791958735.git.kmehltretter@gmail.com \
--to=kmehltretter@gmail.com \
--cc=Joao.Pinto@synopsys.com \
--cc=alexandre.torgue@foss.st.com \
--cc=andrew+netdev@lunn.ch \
--cc=ast@kernel.org \
--cc=boon.leong.ong@intel.com \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=hawk@kernel.org \
--cc=john.fastabend@gmail.com \
--cc=kuba@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-stm32@st-md-mailman.stormreply.com \
--cc=maxime.chevallier@bootlin.com \
--cc=mcoquelin.stm32@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=peppe.cavallaro@st.com \
--cc=sdf@fomichev.me \
--cc=srini@kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.