From nobody Sat Sep 26 14:38:41 2026 Received: from relay.smtp-ext.broadcom.com (lpdvsmtp09.broadcom.com [192.19.166.228]) (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 543FD37F315; Mon, 31 Aug 2026 18:49:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.19.166.228 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788202171; cv=none; b=kdoGUzxtw9O5z4C7VTGoPhGwpBwQmWPKEolB5R7oOueUElHT53Sub2u1+sfFNTdbqgmZ59uvI2OtdgU+TA/Xsd7z0JliSEH7RtYYd6t5dvzEwy9YGJEcg4ayh6zUXZPbIaLNJabOJiX8LS50a3WuUj1Z5U2eKKLV+Zf5XcyneBs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788202171; c=relaxed/simple; bh=pZJ4j05BtL3N67hpQm6LOcq+RJ7zhCJkckb/oHN9/x0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=dYb3/Hdqpe3lDHR/ZYxfeKKBY9OhDFpaOflawa2vf83l9Hbw8RPSeaALJIMRP65qKH0HN+1HxkhGOnPTQI3kKVStCQr6pd3qzHk+63/b8qxP84v60oro9hPVpONBuil9ghGoxtHMtbikG2oeuUfV6qlYuevqEci8lEZTVTlFU7g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=broadcom.com; spf=fail smtp.mailfrom=broadcom.com; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b=qQpDm3PU; arc=none smtp.client-ip=192.19.166.228 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=broadcom.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=broadcom.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="qQpDm3PU" Received: from mail-lvn-it-01.broadcom.com (mail-lvn-it-01.lvn.broadcom.net [10.36.132.253]) by relay.smtp-ext.broadcom.com (Postfix) with ESMTP id D03B9C0000E5; Mon, 31 Aug 2026 11:42:39 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com D03B9C0000E5 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1788201759; bh=pZJ4j05BtL3N67hpQm6LOcq+RJ7zhCJkckb/oHN9/x0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qQpDm3PUYncJDVH71w0j99rZOdg39ieoP/WNvHItxRta7nDT8sF7e805gfpSrxEMH pk3dd7tWXDREXHfCuTTjMxdIzTKUZDJdiS2h6NJTcljcVcuA5Bm9bb4DGsCVP0pw/2 pC7NpKcyyxGGsYHxcjFr3Ve4Wj/g+DaqWef8h/Kc= Received: from bse-build-07.ric.broadcom.net (unknown [10.136.28.187]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mail-lvn-it-01.broadcom.com (Postfix) with ESMTPSA id 426E9A9F; Mon, 31 Aug 2026 11:42:39 -0700 (PDT) From: Danesh Petigara To: justin.chen@broadcom.com, florian.fainelli@broadcom.com, andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com Cc: horms@kernel.org, bcm-kernel-feedback-list@broadcom.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Danesh Petigara Subject: [PATCH net 1/2] net: bcmasp: clear txcb->last before writing each descriptor Date: Mon, 31 Aug 2026 11:42:34 -0700 Message-ID: <20260831184235.4133351-2-danesh.petigara@broadcom.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260831184235.4133351-1-danesh.petigara@broadcom.com> References: <20260831184235.4133351-1-danesh.petigara@broadcom.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Justin Chen bcmasp_xmit() only wrote txcb->last =3D true for the final fragment of an SKB; non-final fragments left the field untouched. If a descriptor slot was reused while it still held a stale true from a previous SKB (possible when tx_spb_ring_full() underreported fullness), bcmasp_tx_reclaim() would see last =3D=3D true mid-SKB and call dev_consume_skb_any() prematurely, freeing the sk_buff while its remaining fragments were still in flight. Unconditionally clear txcb->last before the conditional set so every descriptor slot starts from a known false state regardless of what a prior transmission left behind. Fixes: 490cb412007d ("net: bcmasp: Add support for ASP2.0 Ethernet controll= er") Signed-off-by: Justin Chen Assisted-by: Claude:claude-sonnet-4-6 vscode Signed-off-by: Danesh Petigara Reviewed-by: Florian Fainelli --- drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c b/drivers/net= /ethernet/broadcom/asp2/bcmasp_intf.c index ed0977832ce4..2bd035f74fa2 100644 --- a/drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c +++ b/drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c @@ -301,6 +301,7 @@ static netdev_tx_t bcmasp_xmit(struct sk_buff *skb, str= uct net_device *dev) txcb->bytes_sent =3D total_bytes; dma_unmap_addr_set(txcb, dma_addr, mapping); dma_unmap_len_set(txcb, dma_len, size); + txcb->last =3D false; if (!i) { desc->flags |=3D DESC_SOF; if (csum_hw) --=20 2.54.0 From nobody Sat Sep 26 14:38:41 2026 Received: from relay.smtp-ext.broadcom.com (lpdvsmtp09.broadcom.com [192.19.166.228]) (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 544C037F745; Mon, 31 Aug 2026 18:49:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.19.166.228 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788202171; cv=none; b=HKtlANWKWHeVFBP/OU1ZPtXu//Pj8qDPhhtj/0gq2Jc4PrP7Mh2RLeuqIf9D7A6zm5gMDVjVu5IXggf0neEbMetK+P1IEs8sWiVOgpmcoUSvSqLHvuvnQj8FB+dnqg3UrIHOAcOmgdS22PAPQ0r7OZN6N9bz6wil9tAqtOvFdm8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788202171; c=relaxed/simple; bh=UiqPHa6i5QGNaQBqyNFlB/f7h/ASTwTPIfmKVFlO2iE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=i+byWHpAzcuwXKFFWrMcGxZgJUYop6ovAjelP5odlLYnAAX/qrHOIcX3+9z+wB4I4D7Mba4iLSz01aael7Y6MLZXoOpFsIWt0iVJxEqk5Cd35J6/y+JCJjSbgQDBTki6BB5h5sf4LjR4B/Ip3w+Q6POaWHT/lY8oSWB1ua/zvN4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=broadcom.com; spf=fail smtp.mailfrom=broadcom.com; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b=ES/p3xFG; arc=none smtp.client-ip=192.19.166.228 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=broadcom.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=broadcom.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="ES/p3xFG" Received: from mail-lvn-it-01.broadcom.com (mail-lvn-it-01.lvn.broadcom.net [10.36.132.253]) by relay.smtp-ext.broadcom.com (Postfix) with ESMTP id 74137C0000E6; Mon, 31 Aug 2026 11:42:40 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com 74137C0000E6 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1788201760; bh=UiqPHa6i5QGNaQBqyNFlB/f7h/ASTwTPIfmKVFlO2iE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ES/p3xFGy0tfOI5Rws+lqDeuCtErS9LmJE4SMUKuDUq/UKPp2C88ICHLqD4BO11f4 e3RBd88F99WDQ2B83r1Npw7Nj9ODxQdFUtPOhj5SwH0I6a8EN92koJFGw1BoLevH4h BtzL4MIC42YKkrc07hOd7x1r7fZjzwerOiiZQudw= Received: from bse-build-07.ric.broadcom.net (unknown [10.136.28.187]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mail-lvn-it-01.broadcom.com (Postfix) with ESMTPSA id E00D3A9A; Mon, 31 Aug 2026 11:42:39 -0700 (PDT) From: Danesh Petigara To: justin.chen@broadcom.com, florian.fainelli@broadcom.com, andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com Cc: horms@kernel.org, bcm-kernel-feedback-list@broadcom.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Danesh Petigara Subject: [PATCH net 2/2] net: bcmasp: fix tx_spb_ring_full() checking same slot cnt times Date: Mon, 31 Aug 2026 11:42:35 -0700 Message-ID: <20260831184235.4133351-3-danesh.petigara@broadcom.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260831184235.4133351-1-danesh.petigara@broadcom.com> References: <20260831184235.4133351-1-danesh.petigara@broadcom.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Justin Chen The loop initialised next_index from intf->tx_spb_index on every iteration, so incr_ring() always produced the same result and only one slot was ever tested. Move the initialisation before the loop so each iteration advances next_index and the function correctly checks that cnt consecutive descriptor slots are available before allowing a new transmission. Fixes: 490cb412007d ("net: bcmasp: Add support for ASP2.0 Ethernet controll= er") Signed-off-by: Justin Chen Assisted-by: Claude:claude-sonnet-4-6 vscode Signed-off-by: Danesh Petigara Reviewed-by: Florian Fainelli --- drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c b/drivers/net= /ethernet/broadcom/asp2/bcmasp_intf.c index 2bd035f74fa2..f2176ef3a127 100644 --- a/drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c +++ b/drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c @@ -148,8 +148,9 @@ static int tx_spb_ring_full(struct bcmasp_intf *intf, i= nt cnt) int next_index, i; =20 /* Check if we have enough room for cnt descriptors */ + next_index =3D intf->tx_spb_index; for (i =3D 0; i < cnt; i++) { - next_index =3D incr_ring(intf->tx_spb_index, DESC_RING_COUNT); + next_index =3D incr_ring(next_index, DESC_RING_COUNT); if (next_index =3D=3D intf->tx_spb_clean_index) return 1; } --=20 2.54.0