From: Maxime Chevallier <maxime.chevallier@bootlin.com>
To: "Andrew Lunn" <andrew+netdev@lunn.ch>,
davem@davemloft.net, "Eric Dumazet" <edumazet@google.com>,
"Jakub Kicinski" <kuba@kernel.org>,
"Paolo Abeni" <pabeni@redhat.com>,
"Russell King" <linux@armlinux.org.uk>,
"Heiner Kallweit" <hkallweit1@gmail.com>,
"Alexis Lothoré" <alexis.lothore@bootlin.com>,
"Maxime Coquelin" <mcoquelin.stm32@gmail.com>,
"Alexandre Torgue" <alexandre.torgue@foss.st.com>,
"Emil Renner Berthing" <kernel@esmil.dk>,
"Minda Chen" <minda.chen@starfivetech.com>,
"Neil Armstrong" <neil.armstrong@linaro.org>,
"Kevin Hilman" <khilman@baylibre.com>,
"Jerome Brunet" <jbrunet@baylibre.com>,
"Martin Blumenstingl" <martin.blumenstingl@googlemail.com>,
"Jan Petrous" <jan.petrous@oss.nxp.com>,
"Ovidiu Panait" <ovidiu.panait.rb@renesas.com>,
Jose.Abreu@synopsys.com
Cc: Maxime Chevallier <maxime.chevallier@bootlin.com>,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
thomas.petazzoni@bootlin.com,
linux-arm-kernel@lists.infradead.org,
linux-stm32@st-md-mailman.stormreply.com
Subject: [PATCH net 6/6] net: stmmac: selftests: Don't test flow control for small rx fifos
Date: Wed, 26 Aug 2026 16:04:58 +0200 [thread overview]
Message-ID: <20260826140500.616466-7-maxime.chevallier@bootlin.com> (raw)
In-Reply-To: <20260826140500.616466-1-maxime.chevallier@bootlin.com>
On dwmac1000, dwmac4 and dwxgmac, we only emit pause frames if there's
at least 4096 bytes in each queue's fifo.
The phylink mac capabilities are still MAC_ASYM_PAUSE | MAC_SYM_PAUSE as
otherwise we won't be able to negotiate 'rx on' pause. ASYM only will
prevent negotiating 'rx off tx on', while SYM only doesn't really
matche the reality (not symmetric if we can only do RX pause).
Fixes: 091810dbded9 ("net: stmmac: Introduce selftests support")
Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
---
.../ethernet/stmicro/stmmac/stmmac_selftests.c | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c
index ae236a264e74..6372ec7c3f31 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c
@@ -739,12 +739,24 @@ static int stmmac_test_flowctrl(struct stmmac_priv *priv)
u32 rx_cnt = priv->plat->rx_queues_to_use;
struct mac_device_info *mac = priv->hw;
struct stmmac_test_priv *tpriv;
+ unsigned int rx_fifo_size;
unsigned int pkt_count;
int i, ret = 0;
if (!(mac->link.caps & MAC_SYM_PAUSE))
return -EOPNOTSUPP;
+ rx_fifo_size = priv->plat->rx_fifo_size;
+ if (!rx_fifo_size)
+ rx_fifo_size = priv->dma_cap.rx_fifo_size;
+
+ /* No pause frame is emitted if we don't have at least 4096 bytes per
+ * queue, except on dwmac100.
+ */
+ if (priv->plat->core_type != DWMAC_CORE_MAC100 &&
+ rx_fifo_size / priv->plat->rx_queues_to_use < 4096)
+ return -EOPNOTSUPP;
+
tpriv = kzalloc_obj(*tpriv);
if (!tpriv)
return -ENOMEM;
@@ -758,9 +770,7 @@ static int stmmac_test_flowctrl(struct stmmac_priv *priv)
dev_add_pack(&tpriv->pt);
/* Compute minimum number of packets to make FIFO full */
- pkt_count = priv->plat->rx_fifo_size;
- if (!pkt_count)
- pkt_count = priv->dma_cap.rx_fifo_size;
+ pkt_count = rx_fifo_size;
pkt_count /= 1400;
pkt_count *= 2;
--
2.55.0
next prev parent reply other threads:[~2026-08-26 14:06 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-26 14:04 [PATCH net 0/6] net: stmmac: More selftest related fixes Maxime Chevallier
2026-08-26 14:04 ` [PATCH net 1/6] net: stmmac: selftests: Check multiple MMC counters Maxime Chevallier
2026-08-26 17:14 ` Andrew Lunn
2026-08-26 20:24 ` Maxime Chevallier
2026-08-26 14:04 ` [PATCH net 2/6] net: stmmac: dwmac1000: Account for the primary MAC address for UC filtering Maxime Chevallier
2026-08-26 18:20 ` Andrew Lunn
2026-08-26 14:04 ` [PATCH net 3/6] net: stmmac: dwmac4: " Maxime Chevallier
2026-08-26 18:20 ` Andrew Lunn
2026-08-26 14:04 ` [PATCH net 4/6] net: stmmac: dwxgmac: " Maxime Chevallier
2026-08-26 18:21 ` Andrew Lunn
2026-08-26 14:04 ` [PATCH net 5/6] net: stmmac: selftests: Account for the UC filter list for filtering tests Maxime Chevallier
2026-08-26 18:25 ` Andrew Lunn
2026-08-26 20:21 ` Maxime Chevallier
2026-08-26 14:04 ` Maxime Chevallier [this message]
2026-08-26 18:28 ` [PATCH net 6/6] net: stmmac: selftests: Don't test flow control for small rx fifos Andrew Lunn
2026-08-27 17:53 ` [PATCH net 0/6] net: stmmac: More selftest related fixes Jakub Kicinski
2026-08-27 20:16 ` Maxime Chevallier
2026-08-27 20:40 ` Jakub Kicinski
2026-08-27 19:40 ` patchwork-bot+netdevbpf
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=20260826140500.616466-7-maxime.chevallier@bootlin.com \
--to=maxime.chevallier@bootlin.com \
--cc=Jose.Abreu@synopsys.com \
--cc=alexandre.torgue@foss.st.com \
--cc=alexis.lothore@bootlin.com \
--cc=andrew+netdev@lunn.ch \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=hkallweit1@gmail.com \
--cc=jan.petrous@oss.nxp.com \
--cc=jbrunet@baylibre.com \
--cc=kernel@esmil.dk \
--cc=khilman@baylibre.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=linux@armlinux.org.uk \
--cc=martin.blumenstingl@googlemail.com \
--cc=mcoquelin.stm32@gmail.com \
--cc=minda.chen@starfivetech.com \
--cc=neil.armstrong@linaro.org \
--cc=netdev@vger.kernel.org \
--cc=ovidiu.panait.rb@renesas.com \
--cc=pabeni@redhat.com \
--cc=thomas.petazzoni@bootlin.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