[PATCH net 3/3] net: stmmac: check if interface is running before TC block setup

From: Konrad Leszczynski
Date: Thu Aug 28 2025 - 05:59:02 EST


From: Karol Jurczenia <karol.jurczenia@xxxxxxxxx>

If the interface is down before setting a TC block, the queues are already
disabled and setup cannot proceed.

Fixes: 4dbbe8dde8485b89 ("net: stmmac: Add support for U32 TC filter using Flexible RX Parser")
Reviewed-by: Sebastian Basierski <sebastian.basierski@xxxxxxxxx>
Reviewed-by: Cezary Rojewski <cezary.rojewski@xxxxxxxxx>
Signed-off-by: Karol Jurczenia <karol.jurczenia@xxxxxxxxx>
Signed-off-by: Konrad Leszczynski <konrad.leszczynski@xxxxxxxxx>
---
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
index 70c3dd88a749..202a157a1c90 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
@@ -6247,6 +6247,9 @@ static int stmmac_setup_tc_block_cb(enum tc_setup_type type, void *type_data,
struct stmmac_priv *priv = cb_priv;
int ret = -EOPNOTSUPP;

+ if (!netif_running(priv->dev))
+ return -EINVAL;
+
if (!tc_cls_can_offload_and_chain0(priv->dev, type_data))
return ret;

--
2.34.1