From nobody Sat Oct 4 14:12:50 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 29A6A225791; Fri, 15 Aug 2025 16:55:26 +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=1755276926; cv=none; b=AJiabJiB2Y571fvlHGWJQr6GLO86kD4O6o6XzX0swtJM2VFNpBtf67nqQ3C5/tU+jjhV4dmmdVGJD/7x317lLCAsp+r0iHcAb6r4UeELGlSW0ZmAeUjWyqVtJmTWRGC/Mvt0xCAkT3GJxX5kaTb34YPvnazxZSpM02YT3S7t1jc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755276926; c=relaxed/simple; bh=55kubHT3CJFxFuq24D29Jn26nVbHxHRFemaSWvj8LQI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=dMl7vD2Jsj072i1sYDaYSNxa50di63tAZvl8SGYG5Zp2H0GVI/c977bgHKkbN3urtCWitTmQqojDfqejuLWna7rmLBDEsGxIzmc9kZk1iLmwcH/rlbj4NuvGkS3o5nw01CVYhfI231fg4o2tdJdX6I1CV/7NHY+Ulw43lbi+9eI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=juVHBy2N; 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="juVHBy2N" Received: by smtp.kernel.org (Postfix) with ESMTPS id E826DC4CEF7; Fri, 15 Aug 2025 16:55:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1755276925; bh=55kubHT3CJFxFuq24D29Jn26nVbHxHRFemaSWvj8LQI=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=juVHBy2NniTI8XXEZLofsypYZ8qJxEgdBugSKMIc7wWAyYCFEwN49xMWEnxCqznoW AiUc2Zep3keHBWeM4QDotUPPIY7eOSC4KH+Pf8LHO9RdnTElf0+cSbT5gykGhZJJoP zk956u9MRbblCaICmlVg+2RUOyq1DaKuP6eClq27Wmcc7wIhXEs9e6XCXFVhienw0W wQMWkhyTKAawXCAi+oFly0QKhS1elAk4509UZb1l0r1VVQIqM/4vUpbt+0XH99bmV/ oa1sd+0U0xailsbEtDGvd3TRitoK2ImXmDbMLAITNhe0b1VFDC6HsxiW+W9bDYVSBI 0rX8ZUkOyKUCA== 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 E0B52CA0EE6; Fri, 15 Aug 2025 16:55:25 +0000 (UTC) From: Rohan G Thomas via B4 Relay Date: Sat, 16 Aug 2025 00:55:25 +0800 Subject: [PATCH net-next v2 3/3] net: stmmac: Set CIC bit only for TX queues with COE 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: <20250816-xgmac-minor-fixes-v2-3-699552cf8a7f@altera.com> References: <20250816-xgmac-minor-fixes-v2-0-699552cf8a7f@altera.com> In-Reply-To: <20250816-xgmac-minor-fixes-v2-0-699552cf8a7f@altera.com> To: Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Maxime Coquelin , Alexandre Torgue , Serge Semin , Romain Gantois , Jose Abreu , Ong Boon Leong 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=1755276924; l=2589; i=rohan.g.thomas@altera.com; s=20250815; h=from:subject:message-id; bh=yd3hqIo3OLgBTjQIzdKCEjVqydvJBVOrIiCiUuaG6/c=; b=+cHw+nFGJfkWJlSFZ0NXzeGjhVaWsNuNMNLqh7oqYs4wwZmPAZeL0M6lamXsjwyeBJ1m02nwF iIh/OnEkKBpBCP1P/iBNCeG/zFdrap4rauGxuqJwia0FXrG8Ix4p64N 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 Currently, in the AF_XDP transmit paths, the CIC bit of TX Desc3 is set for all packets. Setting this bit for packets transmitting through queues that don't support checksum offloading causes the TX DMA to get stuck after transmitting some packets. This patch ensures the CIC bit of TX Desc3 is set only if the TX queue supports checksum offloading. Fixes: 132c32ee5bc0 ("net: stmmac: Add TX via XDP zero-copy socket") Signed-off-by: Rohan G Thomas Reviewed-by: Matthew Gerlach --- drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/ne= t/ethernet/stmicro/stmmac/stmmac_main.c index 9a77390b7f9da4199ad6ac15a2149e2c703900ce..88b7e0aed14428c1884f4c3610c= 4112e9be8fd59 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -2584,6 +2584,7 @@ static bool stmmac_xdp_xmit_zc(struct stmmac_priv *pr= iv, u32 queue, u32 budget) struct netdev_queue *nq =3D netdev_get_tx_queue(priv->dev, queue); struct stmmac_tx_queue *tx_q =3D &priv->dma_conf.tx_queue[queue]; struct stmmac_txq_stats *txq_stats =3D &priv->xstats.txq_stats[queue]; + bool csum =3D !priv->plat->tx_queues_cfg[queue].coe_unsupported; struct xsk_buff_pool *pool =3D tx_q->xsk_pool; unsigned int entry =3D tx_q->cur_tx; struct dma_desc *tx_desc =3D NULL; @@ -2671,7 +2672,7 @@ static bool stmmac_xdp_xmit_zc(struct stmmac_priv *pr= iv, u32 queue, u32 budget) } =20 stmmac_prepare_tx_desc(priv, tx_desc, 1, xdp_desc.len, - true, priv->mode, true, true, + csum, priv->mode, true, true, xdp_desc.len); =20 stmmac_enable_dma_transmission(priv, priv->ioaddr, queue); @@ -4983,6 +4984,7 @@ static int stmmac_xdp_xmit_xdpf(struct stmmac_priv *p= riv, int queue, { struct stmmac_txq_stats *txq_stats =3D &priv->xstats.txq_stats[queue]; struct stmmac_tx_queue *tx_q =3D &priv->dma_conf.tx_queue[queue]; + bool csum =3D !priv->plat->tx_queues_cfg[queue].coe_unsupported; unsigned int entry =3D tx_q->cur_tx; struct dma_desc *tx_desc; dma_addr_t dma_addr; @@ -5034,7 +5036,7 @@ static int stmmac_xdp_xmit_xdpf(struct stmmac_priv *p= riv, int queue, stmmac_set_desc_addr(priv, tx_desc, dma_addr); =20 stmmac_prepare_tx_desc(priv, tx_desc, 1, xdpf->len, - true, priv->mode, true, true, + csum, priv->mode, true, true, xdpf->len); =20 tx_q->tx_count_frames++; --=20 2.32.0