From nobody Thu Oct 2 15:33:03 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CEC3127FD7D; Mon, 15 Sep 2025 08:17:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757924241; cv=none; b=gbqyORFcG4xITaXys4Cu9yk07AEG0YVR/TvLizvaNZ+Lxytljh5kw6nMzyegQLeJdtqDRRWtx3NI+9s67CjniPPNHvztYDSLWGy9cH0JCbmVyYhy4BehVjdYajkcOr8fv7MbPvPRTG4kh/3Li0qOfzaiJOanbQr/vtxKv9YWYZc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757924241; c=relaxed/simple; bh=SdQHZDMCVCIf4yXCpwh6xj5ooQRTeCqnTuycX0e5QVw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=rfEEGoxv6LO/IqlERLmBavJk2m67dr4VsFyolRd1aiJ96oW4YI2ZAFyj3C26V6Ay3+ebe8v7wo8FW02IJM2rh462xAp2wHbgZGPKHykdwLMqU/JVxGjy/4kDN9byPNV3f9MYmRXnFFxJiMY+R2naAgEfiWni1Nwmkyzu3UwLkY8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=hqxbmE6g; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="hqxbmE6g" Received: by smtp.kernel.org (Postfix) with ESMTPS id 7FD80C4CEF9; Mon, 15 Sep 2025 08:17:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1757924241; bh=SdQHZDMCVCIf4yXCpwh6xj5ooQRTeCqnTuycX0e5QVw=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=hqxbmE6gCIqv+98d7Bx6z8cZ2nNBT7mgN5GX3qUWc8if8m37Zd8US+5csMzF5OMpJ FEsEC/RJArQUxfh4cuFZuWvHJLdJFaurrjUSuv/tj0E2ZNKaRYKu7DHEDiqopmCPim vgN2uNYdTYpI9MvN/LGx2LhZ01rzlbwHuDz8aKEQdoIlXHGK3rMROvctAKsp5eTEju lWW2/vXfU+2gdJyltTVKgnhFqpiza1z6EFw5ucLE2FNHF+Mqw3MVuJKgzEvVd4p8uO 6XAVLE+ODA9nYWP9wokOLJoJTvLLxJTAODgip0DZTjMs5WXUZjQuItGDBRJPcxuG7B FqPjiDvF+Ei9A== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6E0D4CAC58E; Mon, 15 Sep 2025 08:17:21 +0000 (UTC) From: Rohan G Thomas via B4 Relay Date: Mon, 15 Sep 2025 16:17:18 +0800 Subject: [PATCH net v2 1/2] net: stmmac: est: Fix GCL bounds checks Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250915-qbv-fixes-v2-1-ec90673bb7d4@altera.com> References: <20250915-qbv-fixes-v2-0-ec90673bb7d4@altera.com> In-Reply-To: <20250915-qbv-fixes-v2-0-ec90673bb7d4@altera.com> To: Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Maxime Coquelin , Alexandre Torgue , Jose Abreu , Rohan G Thomas Cc: netdev@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Rohan G Thomas , Matthew Gerlach X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1757924239; l=1340; i=rohan.g.thomas@altera.com; s=20250815; h=from:subject:message-id; bh=HUAYKbtaVV7CCEfir5e4410D4ZIncaawEtn3kXUUXA0=; b=nYTLQKzxU0RExj8QRfyzQi45pvskNrqlgXE7azX/stBzmOcQXm//u60lh2AbIaP2zFrQzFKzO T7brkbXToO1Bd3aK6yoT/ytTZTdTiMx3Gt63WLur+WUAucOkfZdju6R X-Developer-Key: i=rohan.g.thomas@altera.com; a=ed25519; pk=5yZXkXswhfUILKAQwoIn7m6uSblwgV5oppxqde4g4TY= X-Endpoint-Received: by B4 Relay for rohan.g.thomas@altera.com/20250815 with auth_id=494 X-Original-From: Rohan G Thomas Reply-To: rohan.g.thomas@altera.com From: Rohan G Thomas Fix the bounds checks for the hw supported maximum GCL entry count and gate interval time. Fixes: b60189e0392f ("net: stmmac: Integrate EST with TAPRIO scheduler API") Signed-off-by: Rohan G Thomas Reviewed-by: Matthew Gerlach --- drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c b/drivers/net/= ethernet/stmicro/stmmac/stmmac_tc.c index 694d6ee1438197bd4434af6e9b78f022e94ff98f..9c84bde848263976cf08f286751= ee09e2dbac09b 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c @@ -981,7 +981,7 @@ static int tc_taprio_configure(struct stmmac_priv *priv, if (qopt->cmd =3D=3D TAPRIO_CMD_DESTROY) goto disable; =20 - if (qopt->num_entries >=3D dep) + if (qopt->num_entries > dep) return -EINVAL; if (!qopt->cycle_time) return -ERANGE; @@ -1012,7 +1012,7 @@ static int tc_taprio_configure(struct stmmac_priv *pr= iv, s64 delta_ns =3D qopt->entries[i].interval; u32 gates =3D qopt->entries[i].gate_mask; =20 - if (delta_ns > GENMASK(wid, 0)) + if (delta_ns > GENMASK(wid - 1, 0)) return -ERANGE; if (gates > GENMASK(31 - wid, 0)) return -ERANGE; --=20 2.26.2 From nobody Thu Oct 2 15:33:03 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CEB6C278161; Mon, 15 Sep 2025 08:17:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757924241; cv=none; b=BWsbLJXUPdWh9XZTn0WGmpB94/sBmwvanSVyEE6ZA29iZaZQOajCVEHXYOyOskq3OroBt6TM8uGeTptSRzW8z09ofNvyVApTNdApyXrdcbO7y/jelRrXODovmRyTY+w6LigWiB+oG78MCIhXicStivZpvnbUXh8osUoyvaxjw84= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757924241; c=relaxed/simple; bh=CfRwKmWc41Eb4Eo+qu71Ph/IfoEFK4Y9Oi50rGKAmTg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=dJi9WGWjRsolha2UPGFD3rD4cj6/XV3nIAucRNJHBQkHHDp2OtKyhaABmcyplIXojiu3mWMm7J+GcI8xxbeqR8q2y+LEzyaJK10wva3H77S2r0LFyIpza8229mZjZGI2tqS7EV+0WD4xvBFfxUwolUgMADBkGtQRINjqqL6x7PI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Eial+Mne; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Eial+Mne" Received: by smtp.kernel.org (Postfix) with ESMTPS id 8E3BEC4CEFB; Mon, 15 Sep 2025 08:17:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1757924241; bh=CfRwKmWc41Eb4Eo+qu71Ph/IfoEFK4Y9Oi50rGKAmTg=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=Eial+Mneq5c2t2JWKpBzGj3AoYS0A+ndPlMb9dRmk34JLeOJdqGeIx5ng1Tq4Zc1/ sYCSdOO7slCV+8/iB06JZSIieeteLW3Scq2ezmpgzGqfxe30tQec0L0dYjKAfpYffP /MeTZeqsRYJFv61bhLmHzMyPEYg2zeu2g2LMUJpewiiNuOPbmrmw9st1go5LunPnST pLidiiuFw4x4V8pQocv3Z8YYbsl/I3CaZ8SWvN4lKewznTLgbc1J06MWfXj7t/Ypib Mo2WO+ncOKn6TVXjjZQPcvDmkqoptIgjEyGCsW9iFxDy0zMzTIcoEvL7pjivtRu8ka /aPo7p8fdaIjQ== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7FD54CAC598; Mon, 15 Sep 2025 08:17:21 +0000 (UTC) From: Rohan G Thomas via B4 Relay Date: Mon, 15 Sep 2025 16:17:19 +0800 Subject: [PATCH net v2 2/2] net: stmmac: Consider Tx VLAN offload tag length for maxSDU Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250915-qbv-fixes-v2-2-ec90673bb7d4@altera.com> References: <20250915-qbv-fixes-v2-0-ec90673bb7d4@altera.com> In-Reply-To: <20250915-qbv-fixes-v2-0-ec90673bb7d4@altera.com> To: Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Maxime Coquelin , Alexandre Torgue , Jose Abreu , Rohan G Thomas Cc: netdev@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Rohan G Thomas , Matthew Gerlach X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1757924239; l=2480; i=rohan.g.thomas@altera.com; s=20250815; h=from:subject:message-id; bh=DoDmPaXfLB/bLZGa1Ixa2bObvDjP8v/PGAMQq76env8=; b=wVN5CaLveZl3eMAmOlvIyWdRSXZumm1eMskrSPcGTz7YXY/h4L+qhZTTZMQPOIdDISwNzEbqL UIwCGFHliyXBghBeocR0jNjle9uLD5D4HHeaytqLmPo6xajplrlkvQF X-Developer-Key: i=rohan.g.thomas@altera.com; a=ed25519; pk=5yZXkXswhfUILKAQwoIn7m6uSblwgV5oppxqde4g4TY= X-Endpoint-Received: by B4 Relay for rohan.g.thomas@altera.com/20250815 with auth_id=494 X-Original-From: Rohan G Thomas Reply-To: rohan.g.thomas@altera.com From: Rohan G Thomas On hardware with Tx VLAN offload enabled, add the VLAN tag length to the skb length before checking the Qbv maxSDU. Add 4 bytes for 802.1Q an add 8 bytes for 802.1AD tagging. Fixes: c5c3e1bfc9e0 ("net: stmmac: Offload queueMaxSDU from tc-taprio") Signed-off-by: Rohan G Thomas Reviewed-by: Matthew Gerlach --- drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 25 ++++++++++++++++---= ---- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/ne= t/ethernet/stmicro/stmmac/stmmac_main.c index 8c8ca5999bd8ad369eafa0cd8448a15da55be86b..c06c947ef7764bf40291a556984= 651f4edd7cb74 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -4537,6 +4537,7 @@ static netdev_tx_t stmmac_xmit(struct sk_buff *skb, s= truct net_device *dev) bool has_vlan, set_ic; int entry, first_tx; dma_addr_t des; + u32 sdu_len; =20 tx_q =3D &priv->dma_conf.tx_queue[queue]; txq_stats =3D &priv->xstats.txq_stats[queue]; @@ -4553,13 +4554,6 @@ static netdev_tx_t stmmac_xmit(struct sk_buff *skb, = struct net_device *dev) return stmmac_tso_xmit(skb, dev); } =20 - if (priv->est && priv->est->enable && - priv->est->max_sdu[queue] && - skb->len > priv->est->max_sdu[queue]){ - priv->xstats.max_sdu_txq_drop[queue]++; - goto max_sdu_err; - } - if (unlikely(stmmac_tx_avail(priv, queue) < nfrags + 1)) { if (!netif_tx_queue_stopped(netdev_get_tx_queue(dev, queue))) { netif_tx_stop_queue(netdev_get_tx_queue(priv->dev, @@ -4575,6 +4569,23 @@ static netdev_tx_t stmmac_xmit(struct sk_buff *skb, = struct net_device *dev) /* Check if VLAN can be inserted by HW */ has_vlan =3D stmmac_vlan_insert(priv, skb, tx_q); =20 + sdu_len =3D skb->len; + if (has_vlan) { + /* Add VLAN tag length to sdu length in case of txvlan offload */ + if (priv->dev->features & NETIF_F_HW_VLAN_CTAG_TX) + sdu_len +=3D VLAN_HLEN; + if (skb->vlan_proto =3D=3D htons(ETH_P_8021AD) && + priv->dev->features & NETIF_F_HW_VLAN_STAG_TX) + sdu_len +=3D VLAN_HLEN; + } + + if (priv->est && priv->est->enable && + priv->est->max_sdu[queue] && + sdu_len > priv->est->max_sdu[queue]) { + priv->xstats.max_sdu_txq_drop[queue]++; + goto max_sdu_err; + } + entry =3D tx_q->cur_tx; first_entry =3D entry; WARN_ON(tx_q->tx_skbuff[first_entry]); --=20 2.26.2