From nobody Sat Oct 24 13:20:53 2026 Received: from mail-pj1-f97.google.com (mail-pj1-f97.google.com [209.85.216.97]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9EEA65372EC for ; Tue, 13 Oct 2026 20:45:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.97 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791924334; cv=none; b=PQ5NJMerqDpZ+A0iixDGX4DNFpIiO8u/WHqZ1X9X9q4RrzTsnoNTyxnIKHJi77SZKcb4qNIHiHSAjiqdu7lN2iINDYg6cY420CPKPvriMENAEiAcVKB1LCYeMMMqde08122hPP71ODxkKPwMIUlfvfQPRbOYBDWDGoNJ7Sho/M0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791924334; c=relaxed/simple; bh=+1K4HSp6pmkiyvbf8tMwek+cg4bb7uAnoYbeytWGhB8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=UuSMgymGNgvXO5MTm5pc+r1vcVedxWTZFBzBzg3Kyp2njhA6aAtbamvljzcKx0dyFV13nqi4P/8Y5TCp8gHlWxNCMzz7oZBo+xsEJN2ZFiMDwoAr8txNYQQvUMWYF8t94xd480nXeR1sm3A83MgqonWDG/DuaeWVbpjRu5uej5E= 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=Uj1GCdnG; arc=none smtp.client-ip=209.85.216.97 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="Uj1GCdnG" Received: by mail-pj1-f97.google.com with SMTP id 98e67ed59e1d1-383b4a3755fso2226781a91.3 for ; Tue, 13 Oct 2026 13:45:31 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1791924331; x=1792529131; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=kkGR/Azw8eHXBpqAVq4rJc9RgjV7wncIp3Qnhd9zmto=; b=kjbI4x6J2bVOJnoFYA+fXt7fwofw0/k9XaVYgcc2XVMuO0O9a1B9kP/q3lAlEpz5aD SdVJNya3wQbRDqQZeJUXAODPRIhQ82hwFti8GNDSxtE7XzIzCvn5+qkQOVJkzY2VjppF ZTTXSwJlF0pv46TgA/j7gMBoSXvAcj21FAeKzThbNcGt9T6MYXWV0nvXTPM7mSXaqok7 qMLrK36lGsKImgSlAjNPY/zNZZT00YqtvwL7EMCAljxhdnTarHE1dTUwfu2Ghm2v6wJJ +S0alyWq3oK/0GJjMAsrGqWbEDDnOyogs0YXkJo+u5eT3NJANQRJTN1sb7p3qzaydixb QKDA== X-Forwarded-Encrypted: i=1; AKwUvBxF2I8VgDt8Mc5fmS+Y4LGDXPCzUGYlyVob1ghZKGGT3KgmvLD7GjFMVf1S1r1hX+dbdz12X3Ol48QZivY=@vger.kernel.org X-Gm-Message-State: AFq9FYIT441wTh0L9YmzYnaMT2GyA/I7VEmdW+wMXg0e8KD9dVztfiYS PYdh2IiHeo1Z3XzpuQ4YNUBeLFj8MHJEzgnGmYjxr9O1zR3nu/+wRSEJCo4iGDZ8UawoCVpRawQ BfAOJ6qP+KcawSbsWIieY1xOQshudajX2uquH3xgNyP8f9sSfVpGSuWSw4bQ4D4y5VIVWBRL1w4 JFZ/AG2JhnCYjU5BygGX106ypykK9qRi0xjJJXhiV1zixCMdFcbO0RKWChH9C2HPK2oiE0I7ntR VU55bW2Cd6WvfzV47h2n8hE X-Gm-Gg: AYBFou3Qd9mjaI2YlvPbawOmWLiZg6sajWCI/pQbZANE9uuU8OGPD5eDaAYin8+Frag 12qmMo59LsdU8iX4w5c0moeSI8GkYnfobPfshsa1pSYpy/6mCckkPRUUcbcb5yBviLDCTzkagvb fUJzSRzTmKYW2fvnfKcfBySkOfMYnDwnwObBSYZBo5y/LDzowG5RDVTa3/geVs1r+ObMydZaK7G 9NSnlkzmYJkBoA1wz4p/DKpo3mCB4TizDMfxDPtK4WDQRoA3eQUbr5pZTQw6JUXwuluYIWVMcR2 FvnYhhSNXdpR4NgKVfa9XIgOAdE1/JmRY48Rkjuz5PzuM//sG5RMdI/QW1/kxdwoov05xodLmpW RE4faSJUQuZSEoBQpQ0Ou1dXiW7Lc8ldDmvQcjGAqdPCiC7J6jBB+5MOMyEmVHO2n66PTMLoAOk xsAinJN0xDWHVl1su5TyMwNbSM9IS4MAtFpczYdiFvHD0= X-Received: by 2002:a17:90b:2f8e:b0:3ac:450b:164c with SMTP id 98e67ed59e1d1-3ac450b7797mr3051435a91.47.1791924330870; Tue, 13 Oct 2026 13:45:30 -0700 (PDT) Received: from smtp-us-east1-p01-i01-si01.dlp.protect.broadcom.com (address-144-49-247-100.dlp.protect.broadcom.com. [144.49.247.100]) by smtp-relay.gmail.com with ESMTPS id 98e67ed59e1d1-3ac67a627d8sm40629a91.4.2026.10.13.13.45.30 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 13 Oct 2026 13:45:30 -0700 (PDT) X-Relaying-Domain: broadcom.com X-CFilter-Loop: Reflected Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-533928ef33aso46128481cf.1 for ; Tue, 13 Oct 2026 13:45:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1791924329; x=1792529129; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=kkGR/Azw8eHXBpqAVq4rJc9RgjV7wncIp3Qnhd9zmto=; b=Uj1GCdnGqu73PgZ3u/rY1h3lxAETBtxYTZa5giSnyIKcfcQ9NffYoudLiiTckzNgko 3VCn8e3/iJBu/B6VIT7QfbQpv5PXHmoUngrcoOeTBDagOMZU7lH8Xbs3YVx32AtCxW2A q2OKzgWw8j11P0tpV10BVzKBKztaGXQrW0GnI= X-Forwarded-Encrypted: i=1; AKwUvBxYvBKUHj7IhSnX5pxXNGvDGngex7TayASF2H4YE3JbsxN1CYPGyTjzgi6ogMVDAtJeD5X9xeHI2vjA7YY=@vger.kernel.org X-Received: by 2002:a05:622a:1c15:b0:535:d7e:dc4 with SMTP id d75a77b69052e-5359fa908d7mr215397691cf.19.1791924329085; Tue, 13 Oct 2026 13:45:29 -0700 (PDT) X-Received: by 2002:a05:622a:1c15:b0:535:d7e:dc4 with SMTP id d75a77b69052e-5359fa908d7mr215397281cf.19.1791924328474; Tue, 13 Oct 2026 13:45:28 -0700 (PDT) Received: from stbirv-lnx-1.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-535f4eee7bcsm15879231cf.30.2026.10.13.13.45.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 Oct 2026 13:45:27 -0700 (PDT) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , Nicolai Buchwitz , Justin Chen , Doug Berger , Broadcom internal kernel review list , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Zak Kemble , Simon Horman , Ryo Takakura , linux-kernel@vger.kernel.org (open list) Subject: [PATCH net v3 RESEND 1/6] net: bcmasp: fix mib counters struct alignment with ethtool stats Date: Tue, 13 Oct 2026 13:44:34 -0700 Message-Id: <20261013204439.3494046-2-florian.fainelli@broadcom.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20261013204439.3494046-1-florian.fainelli@broadcom.com> References: <20261013204439.3494046-1-florian.fainelli@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 X-DetectorID-Processed: b00c1d49-9d2e-4205-b15f-d015386d3d5e Content-Type: text/plain; charset="utf-8" When EDPKT stats were removed in commit e9f31435ee7d ("net: bcmasp: Add support for asp-v3.0"), the corresponding entries were removed from bcmasp_gstrings_stats in bcmasp_ethtool.c, but the edpkt_* fields were left at the beginning of struct bcmasp_mib_counters in bcmasp.h. Because bcmasp_update_mib_counters() and bcmasp_get_ethtool_stats() index into struct bcmasp_mib_counters sequentially based on the order of bcmasp_gstrings_stats, this 16-byte offset caused ethtool to read from shifted offsets: the first four software counters read unused fields and reported 0, the next four software counters reported the values of alloc_rx_skb_failed, tx_dma_failed, mc_filters_full_cnt, and uc_filters_full_cnt, while filters_combine_cnt, promisc_filters_cnt, tx_realloc_offload_failed, and tx_timeout_cnt were never reported. Remove the obsolete edpkt_* fields from struct bcmasp_mib_counters so that it aligns with bcmasp_gstrings_stats. Fixes: e9f31435ee7d ("net: bcmasp: Add support for asp-v3.0") Assisted-by: LLM Reviewed-by: Nicolai Buchwitz Reviewed-by: Justin Chen Signed-off-by: Florian Fainelli --- drivers/net/ethernet/broadcom/asp2/bcmasp.h | 4 ---- 1 file changed, 4 deletions(-) diff --git a/drivers/net/ethernet/broadcom/asp2/bcmasp.h b/drivers/net/ethe= rnet/broadcom/asp2/bcmasp.h index 8c8ffaeadc79..9c9721da1662 100644 --- a/drivers/net/ethernet/broadcom/asp2/bcmasp.h +++ b/drivers/net/ethernet/broadcom/asp2/bcmasp.h @@ -250,10 +250,6 @@ struct bcmasp_intf_stats64 { }; =20 struct bcmasp_mib_counters { - u32 edpkt_ts; - u32 edpkt_rx_pkt_cnt; - u32 edpkt_hdr_ext_cnt; - u32 edpkt_hdr_out_cnt; u32 umac_frm_cnt; u32 fb_frm_cnt; u32 fb_rx_fifo_depth; --=20 2.34.1 From nobody Sat Oct 24 13:20:53 2026 Received: from mail-qk1-f226.google.com (mail-qk1-f226.google.com [209.85.222.226]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AD0F2551989 for ; Tue, 13 Oct 2026 20:45:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.226 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791924335; cv=none; b=n3qByzXmoJ4GZ2YynKa97+9FEC80EGo7EI27k7VRTh0/JgvKlNh3GXdlqiyyN7gJDP2cN37GdQgRi2f7BCtyQ4LJmi0ImcU/wc51coY2w7P+9FFH+9GB0CPY9I7AAq7CrIRSxFAMDxcR9CTJoJ+Svk2SDCk5xppFdYQjS0olFOg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791924335; c=relaxed/simple; bh=RbKEQ9Ao6sfM8uo8Xav6MW10A4+TnfLMYt6FY1stsN4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=MkDl+qTyrGkneVFZsoMFDViY3lw7ypiXFP7oN7sKhOaxHXWgAa5JBMfOEcy0ltFR2mk3Qh+Y6arA1njeNi6NzUyj2PjxlUDoe0YNpKGNJKLXXYMvyxUW2N0syPCf00LGi3rokhUulvKjfs958M6gZZUPsUvyk8QomLLOdGS+0Ws= 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=fiAR+DyT; arc=none smtp.client-ip=209.85.222.226 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="fiAR+DyT" Received: by mail-qk1-f226.google.com with SMTP id af79cd13be357-93e6f83f0bbso314751685a.2 for ; Tue, 13 Oct 2026 13:45:33 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1791924332; x=1792529132; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=Fn6fAIq7HU354S7iJBpqt1EqT6IYIhNvzY1GRRTqbFI=; b=QrGiCQi5ENb3AvjDPFiOc2WqF85CAJd9AMEZ7kzctsHMGzLV8wHFxgsmxWUFsJEwcw T9b8teEBveXdMA6FLHWiFG48qjz9or9EPOH1HvW48CicgC3W2R4nDOX03csA1CMbmDWJ 7kORBKaBkTCD3kHNXdLzEzdL8A4n0xjFjAsk5Q+TkxYeEyhuafJREzqoKnZEAmphXMyC DvyG9VR4WLTIFQZLxOcfgcMpEtt/0isrS6P3ROeEoJXgJHmllPOQBS4bLWULV7U3GIYA APq9OJN9UFh/PWbXd67/4dTY9ZpgBt0BxMzW/PN+SfLFjE5podcKwgBV5FFZ4aUibxQA H+rQ== X-Forwarded-Encrypted: i=1; AKwUvBxAOOx4TkNfHtS8f9pjrlUPOzb1CrF+tygY5QrnIXcL0XaMBeP03nPsWmAzV8zfowcjZu8zq51p/OrxLCo=@vger.kernel.org X-Gm-Message-State: AFq9FYIMAaHPmssQkMhp8Q914TGr36mSk23oSr7fFGJOY77PZWY9WXCz CHweom1mDlqTOQhj2/NXtederMWTC+4MOXYxu8yw1wsK9LNZu6mCWmrAZw4cTrHsXvE0NKgdRPw OoPuZpyxTaA2AC1Oxo0coKCHAx0OugbjywhVJ/zZMDwHTQENjCInIVN58ytFBKPKZ50CBhBZIP+ t7cappoWhPTzBhDoO3Gfdcp6OY084MINBIkKOJCC4CmcyEJTw45VVV2w9LY5pPB/Ckr3WiGmDtc xI2DgpMe7As5sj+ujXdlswb X-Gm-Gg: AYBFou13+kEysKHlJVXHsqgPlEvGw7a7jHSlFXvDT9eguNFZ671u3jGj7IX8pgFcOB5 YKlqvbCBY/G44c7VtBx72LvMfCp1i5W2ieZXucVneMXeP+Bdbe3dpM3jWywiOow7cC1U3DSgEPF b2TUNLZBWHOU3sbdvpdm2jVQjTp2FbZ7sYGIqN6wDL/dhbhtkKZbkS+VKiT5ydv62H/U/EPaV9X n+z04Is/uNJFDoVnY70l7xLl/THAtL9pAnmjljxdf5Dmdy4z8OfEpIBs9aB9LPTrLwn3svsTMmF 72slueF+eGjntQZvsfnvNtYDOBiRGgHGNdDBfWGE/nisc91ro0zSuIJ21N4gHfraLrdCRqnJUCc 8IjpDyr4KJwoPvhk0duFJTQWR0i04mdJrzCQSEkugEp3h/6Qh4KwZg2SXc0SjtYI838uq7IT3yL WqF1LR/4otmatFk1CL3uk7uRtaUbxNtLbGnYgWXVRFfqc= X-Received: by 2002:a05:620a:270d:b0:93b:d79a:c462 with SMTP id af79cd13be357-93ebd26b606mr2254478285a.58.1791924332479; Tue, 13 Oct 2026 13:45:32 -0700 (PDT) Received: from smtp-us-east1-p01-i01-si01.dlp.protect.broadcom.com (address-144-49-247-100.dlp.protect.broadcom.com. [144.49.247.100]) by smtp-relay.gmail.com with ESMTPS id af79cd13be357-93ef5076d3dsm84876985a.12.2026.10.13.13.45.31 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 13 Oct 2026 13:45:32 -0700 (PDT) X-Relaying-Domain: broadcom.com X-CFilter-Loop: Reflected Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-5358515b4easo64753521cf.0 for ; Tue, 13 Oct 2026 13:45:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1791924331; x=1792529131; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=Fn6fAIq7HU354S7iJBpqt1EqT6IYIhNvzY1GRRTqbFI=; b=fiAR+DyT9EdSGFqGe/wz+Wz+LmoDsj1d4vJz5ZhJD/Y7+XM4Px4lMjm7mR7/Xc3eBa AQN/i40Uu47QPDGrbBXkPDeJWx0f+fz/igeL9m3AXDvpmVrbGpUYclto8lpwb6RIl0QB ziqqhsPX2K/DZQsYZVo9RVSmLIfmIBjxh2am0= X-Forwarded-Encrypted: i=1; AKwUvBzg78OimEg+6JIgmiFtZAv0T1LHqxMfoTJASrRF4pUTSJB3d3rvkb+UA28/BXB/124y4CCBh91IBDHeJfo=@vger.kernel.org X-Received: by 2002:a05:622a:4c08:b0:535:f3e:745e with SMTP id d75a77b69052e-5359fae3fcbmr231779741cf.20.1791924331137; Tue, 13 Oct 2026 13:45:31 -0700 (PDT) X-Received: by 2002:a05:622a:4c08:b0:535:f3e:745e with SMTP id d75a77b69052e-5359fae3fcbmr231779361cf.20.1791924330705; Tue, 13 Oct 2026 13:45:30 -0700 (PDT) Received: from stbirv-lnx-1.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-535f4eee7bcsm15879231cf.30.2026.10.13.13.45.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 Oct 2026 13:45:30 -0700 (PDT) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , Nicolai Buchwitz , Justin Chen , Doug Berger , Broadcom internal kernel review list , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Zak Kemble , Simon Horman , Ryo Takakura , linux-kernel@vger.kernel.org (open list) Subject: [PATCH net v3 RESEND 2/6] net: bcmasp: unmap previous DMA mappings on TX map failure Date: Tue, 13 Oct 2026 13:44:35 -0700 Message-Id: <20261013204439.3494046-3-florian.fainelli@broadcom.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20261013204439.3494046-1-florian.fainelli@broadcom.com> References: <20261013204439.3494046-1-florian.fainelli@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 X-DetectorID-Processed: b00c1d49-9d2e-4205-b15f-d015386d3d5e Content-Type: text/plain; charset="utf-8" When mapping an skb with fragments for transmission in bcmasp_xmit(), if mapping fails on fragment i > 0, the error handler calls bcmasp_clean_txcb() for previous iterations j < i. However, bcmasp_clean_txcb() only zeroes the control block fields without unmapping the DMA buffers, leaking the DMA mappings allocated for the head and earlier fragments. Call dma_unmap_single() before calling bcmasp_clean_txcb() in the error cleanup loop. Fixes: 490cb412007d ("net: bcmasp: Add support for ASP2.0 Ethernet controll= er") Assisted-by: LLM Reviewed-by: Nicolai Buchwitz Reviewed-by: Justin Chen Signed-off-by: Florian Fainelli --- drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c b/drivers/net= /ethernet/broadcom/asp2/bcmasp_intf.c index f2176ef3a127..9ad5a982542f 100644 --- a/drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c +++ b/drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c @@ -285,6 +285,11 @@ static netdev_tx_t bcmasp_xmit(struct sk_buff *skb, st= ruct net_device *dev) intf->mib.tx_dma_failed++; spb_index =3D intf->tx_spb_index; for (j =3D 0; j < i; j++) { + txcb =3D &intf->tx_cbs[spb_index]; + dma_unmap_single(kdev, + dma_unmap_addr(txcb, dma_addr), + dma_unmap_len(txcb, dma_len), + DMA_TO_DEVICE); bcmasp_clean_txcb(intf, spb_index); spb_index =3D incr_ring(spb_index, DESC_RING_COUNT); --=20 2.34.1 From nobody Sat Oct 24 13:20:53 2026 Received: from mail-pg1-f226.google.com (mail-pg1-f226.google.com [209.85.215.226]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E3485552958 for ; Tue, 13 Oct 2026 20:45:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.226 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791924337; cv=none; b=Z6ABVL1A8DIOV9WDCEKeVxhyYG5KylXAnQIArjSh7Pb403OT3kdmZS1++767UbMBkByLD4T6dD6ZkQJFiACT22TEbXVHKZCGK5yFSEdI/Puhy5CcjfseaUET4rOGKn+WgzzzaX6l9g1eY8CUyWuieXnT0lQNbOxAczu7eOPMcNM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791924337; c=relaxed/simple; bh=FmD6FNbWp9/w6PoDkjvhKUx+Pyh3k1MJEzE3JeITIz8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=T0E23SjYkhDH1L/GVIWbOvEBZARGOpVHNUXCvHdncAXgDNUTpIfCcXg0DvXDs4h0RvJ7/E0CvPG0/X7ggH1XztNzayuYDWQt3FQ0t6Meg6Pkwc94KqzqpOPkzO91QU5fZwHiYEcf9QoMFDfTh1iMY9jo2Y/VurUmQhPFs8f0oOA= 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=Pz2wW5W0; arc=none smtp.client-ip=209.85.215.226 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="Pz2wW5W0" Received: by mail-pg1-f226.google.com with SMTP id 41be03b00d2f7-cd5c9e52398so1440260a12.1 for ; Tue, 13 Oct 2026 13:45:35 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1791924335; x=1792529135; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=LQY9v+3ERouGCwmAz/IXWdzwQGXdtnY8j3MIGUYv9ls=; b=fMJNEaeWCzKTSAuhJps+1pAsGoFELOTTKj3r4ZCcnt6qVT4Oj8rTP8bcp4M4Sy3rWv auuuj/0XPy8SC6jk8CSEefay9t2v7xkNUDDI4O1yzcfiTD++Lrxd7SbqC72jhKq3FImw T839bsCZfDVgiCZ/j+7GvvU5MMXvSNaNe3+zsq+l7ncoVTJqi1/iBQIAPOmLL2G8l86j Rez6SFUkLrI58JADKmTrmfp1EInTDlelNHd4u8gn7VvsMq7psriP+D2N6/DfC2AXbROL 2EEqJWGE7RzIOC3Lk3ebpeyGcnJw7pjgPpikMCOouHKO/lCJUmSoYGDDrkpc7Q1VzqKb KrrA== X-Forwarded-Encrypted: i=1; AKwUvByXslBPFlQYctmXx5V4/9PRs7siRBof9eoteAeYKeWpCL36FhB3f5QlH1h2yV1mBuuJNoFYnbKkTuwHJ+I=@vger.kernel.org X-Gm-Message-State: AFq9FYIAN6X37S5TYLsjbSH8olF8Nv2zlPJcJsP2gzJQoA8rlUHvWKWR NqZae0SmDNFgSYC95QMugj63OTzE5zr11y7OfWMjfAH2bTKbP0BJUSlcItD7iH4F9xu+DBnkCLe 4xry0qV43I2zqz4c+WUxFBvCOOVpjSo8xSQu3SaUfb/Bo7D+1AUXI0u2YBt3tJzQiFopYQy//Tq JZ7nIvXXwF28Vz5L4QgxzASTMu+wqivULfDq2byOWMSvmxPRpjFfqwrP5TZJUx73WHxlNdpR9KQ cWc/ebSjxbN97iSZij6A+8x X-Gm-Gg: AYBFou3CNuwVW7deubhOigHarcbCj//uU3ox69nWi/JGspYaXdorpBpDsyEHfH3VJ/y fYzaaDSL9W8VJEPHshyEH9FVqxyKY8z//kax1z7U/SjnIDEeimoX1OBHFq9hXg4KTAfroZHq9WI 9S5m9qojX9j+L7Cz6UGoh48XLPQvj0d7VG7msOZeXKHbovHiazlSZ9chHb7e6JIK42HjvSceqfX BhjXCeK94y1apbNy3RXPoblrxnOchyL4borQmTIU7JWreftB5Pc4ZbmIZIjqo0RuRE9Uhe266s0 6Sv5gDVvseyi6UjAQapVi5lhk+krm+4rtqVpreZ55aGwDYTtR6sZA5H9fnXmxa4TSWTugLndT9C IMl/+qAtQnLfBkX8F7zgkplgPW1XX1b4nVB5O0wE+QYPMpyR9D4nUQsa5xLuiIFlz9PF1mj80mn jwKhPm3nK0I2E/MrpVEcmYyHMyDHZIWvReTaE+o69QIX8= X-Received: by 2002:a17:90b:48c1:b0:3a7:e126:4980 with SMTP id 98e67ed59e1d1-3ab3a79c42amr10790712a91.43.1791924334995; Tue, 13 Oct 2026 13:45:34 -0700 (PDT) Received: from smtp-us-east1-p01-i01-si01.dlp.protect.broadcom.com (address-144-49-247-125.dlp.protect.broadcom.com. [144.49.247.125]) by smtp-relay.gmail.com with ESMTPS id 98e67ed59e1d1-3ac5f006ca6sm377685a91.2.2026.10.13.13.45.34 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 13 Oct 2026 13:45:34 -0700 (PDT) X-Relaying-Domain: broadcom.com X-CFilter-Loop: Reflected Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-535851217d9so75960001cf.2 for ; Tue, 13 Oct 2026 13:45:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1791924334; x=1792529134; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=LQY9v+3ERouGCwmAz/IXWdzwQGXdtnY8j3MIGUYv9ls=; b=Pz2wW5W0gkrcJgTSW2cuKJsfJazPuhpRP/80BRi6Z07p6CqEnYjVqpn777E1PREnR9 HDotZmN1CkSyADfa0cSr7Qd/ebqSs+KnTEh/c9DidgIm+BAiUnI5dmvrGajS6DfGyrAC R7ZrMwL+w9YVzarc7bi3/1qQOxBn50LzSEPPs= X-Forwarded-Encrypted: i=1; AKwUvBwjw02iy62wQUeTio1UVHgUka9CMK3I1xxQRJhqjZAU/sQggaAwvv7I/QkQ2p+Qqrm+yQshebXhuLbgBMc=@vger.kernel.org X-Received: by 2002:a05:622a:1350:b0:533:8900:4eb2 with SMTP id d75a77b69052e-5359fe119e6mr228861621cf.58.1791924333606; Tue, 13 Oct 2026 13:45:33 -0700 (PDT) X-Received: by 2002:a05:622a:1350:b0:533:8900:4eb2 with SMTP id d75a77b69052e-5359fe119e6mr228860941cf.58.1791924332878; Tue, 13 Oct 2026 13:45:32 -0700 (PDT) Received: from stbirv-lnx-1.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-535f4eee7bcsm15879231cf.30.2026.10.13.13.45.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 Oct 2026 13:45:32 -0700 (PDT) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , Justin Chen , Doug Berger , Broadcom internal kernel review list , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Zak Kemble , Simon Horman , Ryo Takakura , linux-kernel@vger.kernel.org (open list), Nicolai Buchwitz Subject: [PATCH net v3 RESEND 3/6] net: bcmasp: validate minimum RX packet size in bcmasp_rx_poll() Date: Tue, 13 Oct 2026 13:44:36 -0700 Message-Id: <20261013204439.3494046-4-florian.fainelli@broadcom.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20261013204439.3494046-1-florian.fainelli@broadcom.com> References: <20261013204439.3494046-1-florian.fainelli@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 X-DetectorID-Processed: b00c1d49-9d2e-4205-b15f-d015386d3d5e Content-Type: text/plain; charset="utf-8" In bcmasp_rx_poll(), the driver removes a 2-byte alignment pad and optionally strips the ETH_FCS_LEN CRC from received packets before passing them to eth_type_trans(). If the hardware reports a descriptor size smaller than the sum of the 2-byte pad, the Ethernet header (ETH_HLEN), and optional CRC (ETH_FCS_LEN), subtracting the pad and CRC lengths underflows u32 len. This adds ~4 GiB to rx_bytes statistics, while the undersized frame reaches eth_type_trans(), which reads past skb->len into stale buffer data. Check that desc->size is at least (2 + ETH_HLEN + (crc_fwd ? ETH_FCS_LEN : 0)) before proceeding to process the descriptor. Fixes: 490cb412007d ("net: bcmasp: Add support for ASP2.0 Ethernet controll= er") Assisted-by: LLM Reviewed-by: Justin Chen Signed-off-by: Florian Fainelli --- drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c b/drivers/net= /ethernet/broadcom/asp2/bcmasp_intf.c index 9ad5a982542f..d679c796c8c2 100644 --- a/drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c +++ b/drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c @@ -523,6 +523,12 @@ static int bcmasp_rx_poll(struct napi_struct *napi, in= t budget) DMA_FROM_DEVICE); =20 len =3D desc->size; + if (unlikely(len < 2 + ETH_HLEN + (intf->crc_fwd ? ETH_FCS_LEN : 0))) { + u64_stats_update_begin(&stats->syncp); + u64_stats_inc(&stats->rx_dropped); + u64_stats_update_end(&stats->syncp); + goto next; + } =20 /* Allocate a page pool page as the SKB data area so the * kernel can recycle it efficiently after the packet is --=20 2.34.1 From nobody Sat Oct 24 13:20:53 2026 Received: from mail-vs1-f99.google.com (mail-vs1-f99.google.com [209.85.217.99]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 76C0655408E for ; Tue, 13 Oct 2026 20:45:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.217.99 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791924341; cv=none; b=p46y/iYnea4oYpLOrOJ5vTvOiT5T3JzEw8OfcyHgXg59uEP6kDvgO8aI9z6A9yM8jjZ+uftUSjTZGG92a0iLAusZF85JGTOUP8aQVVeroC9jiAtfqJBo4CIewZ6EKC/ikEN0NRf/NiWmN0G1RL/dB7cqK2d+tvECZFUVvJIyCi8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791924341; c=relaxed/simple; bh=cMwBAastac/SwLSfCXNFutcItb00suFmuq/i2VUWIL0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=bc6rO93IbDy4EKJKhrDpUYjs3d5BpVYDqTaDp7eySL14CN3g4rYIgxcX3THB0xSheH8B+LBOK4jQbGwjz9Bkcd4jjM2kIFNbL7FhxX74qDpxh5gaV+P4FDijNOgWReGQeOeyhGA0ajoHfFb96ibcdWYmZ+64WznaQVu5jqhJtd8= 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=C1/u7xcD; arc=none smtp.client-ip=209.85.217.99 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="C1/u7xcD" Received: by mail-vs1-f99.google.com with SMTP id ada2fe7eead31-7cb3388613fso2109665137.3 for ; Tue, 13 Oct 2026 13:45:39 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1791924338; x=1792529138; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=o401XOuolgRzvhquCe9eAwBmzW/eK7Qzlg72iAjj6OE=; b=z+SCNwlWieda/MmGMbSQf487nt8hOMAGfTCF/camRelg9uUamORrTZK6fCtkgL7kGu BZ0EDzQ8s75QCnxs8y4ft0T/wJtyVz5rjzC9EOniPTN8RbfhX15by9EYB5K9eW23CPNn dxzUozlpe8Y7jP05mWsLZxFtfXwqxFdXwwF+XZCkTldPMieiu4HQTtCM4N8aIHed0SWX 6yMU4hFbZU3v4sqDokqopEJ3/E9jYRBKokUBhg+fZzLTSEA58bV9Fek118gC9DgvpnIu urPD/RWII4lL+oCTtfJLkMbaFCK4/pS+DJZ+dCvoAdbuEOkwk6FxaO++mWFfMzY1CNQS rDfg== X-Forwarded-Encrypted: i=1; AKwUvBwncyWle2iO5eNduxlkAPrhAwMAuBE7jFQrkIEqSj5w3cYKQqooHA5vWKrEhdT4Irq67fL0IIYlkX5ebAo=@vger.kernel.org X-Gm-Message-State: AFq9FYLIUgIZcKwTPJAIgZ7RkFAk1j3b9TV22dP4yaQaBXEnfy49f7cn 5I3xiLwc9LhTLlS4GtsKFf9W5Gsv3iCgT3VG9Tfo5Vo7YPfKGB1AHp7VGuBIkKuPrEACz6H7Bfo 2600lPHwLQm8eMDlv72tnJ1awjrb+4TEt2FAMaykcT6cJxmDfiP7qTVt5YxEG3FAl/a3T9SN4Oj L1mlBsWdf4kevLOMWrtgxJuNVEuvb6hpzthyNm0NXEE4vOVHlWjqTTJqoGKqhBJFX2b+e2RfnEH Gw13hp/bi9661CoWcd4DJ4h X-Gm-Gg: AYBFou0pvTsW/HH7Ie1sVnaI4nUm8Tn/I3v0nxypawyHnaSVe4yfS28qyDo5cBcajvM o9SC1dakdJHO7abuDjhdOTs+UXvCoZUp5L0p6bYG9wYx1x8dlLR3DN7wfbis9t5+f7FBgifWn6w pypPkBg0TLsG5BHm7QeRLI1J2xFyxqbae33E8ITbJucFDtTKWN+isQh++B4YqD4sUZSvHHZV6Vy FRAxhNqlwcU289cTEw+4wUCwSRtBWtuHLRRorXYvIQh0IAqMPOtA97yW0gqhPK2Au7TIVUtDRDj K7CgedEjPakkII7LSL+EX4Ta61R+9MfS53NsewSkUMakP+iHCzfPUPsTRZTA4NgqgTyJPcqljIc 0uNq2/juXpzg6CBSc817mgbNsU/PwjX6mFw42zsXFN5a/Z5TpupbHhNX5f+wSzUZMlHhM5wzgXy ElJwewU9yPYg47iOlq6WpJbB6Wwi8C5Haa42/mj7TDqPM= X-Received: by 2002:a05:6102:508e:b0:7c3:6caf:bdb8 with SMTP id ada2fe7eead31-7cb373134camr4023479137.20.1791924338061; Tue, 13 Oct 2026 13:45:38 -0700 (PDT) Received: from smtp-us-east1-p01-i01-si01.dlp.protect.broadcom.com (address-144-49-247-120.dlp.protect.broadcom.com. [144.49.247.120]) by smtp-relay.gmail.com with ESMTPS id ada2fe7eead31-7cb354a3d7esm148489137.21.2026.10.13.13.45.37 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 13 Oct 2026 13:45:38 -0700 (PDT) X-Relaying-Domain: broadcom.com X-CFilter-Loop: Reflected Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-5338cfe567eso72160861cf.2 for ; Tue, 13 Oct 2026 13:45:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1791924337; x=1792529137; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=o401XOuolgRzvhquCe9eAwBmzW/eK7Qzlg72iAjj6OE=; b=C1/u7xcD4n9uyfVINVa31DnBXW2ahdIzLgMYhxh2YKT633kw03pMPxU1T2AWXkWOHo UExTFur5croN5fMs9jn8UuRmKm1TLRhd0daIzSeYyCyy1oKSKZatw7pUj22/RTGJyJhN QaF5X8wZopmyTnKkNlJenoNLaLkySNYtGEoJs= X-Forwarded-Encrypted: i=1; AKwUvBwo6n1VBDevplwdPAgFBK4lLR1hPyErVoqTtsLc3YiXAJf4DEAxlj9pbLfgkmgm5ZaxLAyrk9FiIzYtg5A=@vger.kernel.org X-Received: by 2002:ac8:5f8e:0:b0:51c:fc4:a144 with SMTP id d75a77b69052e-5359f46d56bmr233646281cf.4.1791924336722; Tue, 13 Oct 2026 13:45:36 -0700 (PDT) X-Received: by 2002:ac8:5f8e:0:b0:51c:fc4:a144 with SMTP id d75a77b69052e-5359f46d56bmr233645831cf.4.1791924336165; Tue, 13 Oct 2026 13:45:36 -0700 (PDT) Received: from stbirv-lnx-1.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-535f4eee7bcsm15879231cf.30.2026.10.13.13.45.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 Oct 2026 13:45:35 -0700 (PDT) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , Nicolai Buchwitz , Justin Chen , Doug Berger , Broadcom internal kernel review list , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Zak Kemble , Simon Horman , Ryo Takakura , linux-kernel@vger.kernel.org (open list) Subject: [PATCH net v3 RESEND 4/6] net: bcmasp: fix OF node reference leak for phy_dn Date: Tue, 13 Oct 2026 13:44:37 -0700 Message-Id: <20261013204439.3494046-5-florian.fainelli@broadcom.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20261013204439.3494046-1-florian.fainelli@broadcom.com> References: <20261013204439.3494046-1-florian.fainelli@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 X-DetectorID-Processed: b00c1d49-9d2e-4205-b15f-d015386d3d5e Content-Type: text/plain; charset="utf-8" In bcmasp_interface_create(), intf->phy_dn is obtained via of_parse_phandle() or assigned ndev_dn. of_parse_phandle() returns a node reference with its refcount incremented, but of_node_put() was never called on intf->phy_dn in bcmasp_interface_destroy() or the error unwind path in bcmasp_interface_create(). Acquire a reference on ndev_dn for the fixed-link case as well so that intf->phy_dn consistently holds a reference, and release it with of_node_put() on teardown and error. Fixes: 490cb412007d ("net: bcmasp: Add support for ASP2.0 Ethernet controll= er") Assisted-by: LLM Reviewed-by: Nicolai Buchwitz Reviewed-by: Justin Chen Signed-off-by: Florian Fainelli --- drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c b/drivers/net= /ethernet/broadcom/asp2/bcmasp_intf.c index d679c796c8c2..693e8cdfe960 100644 --- a/drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c +++ b/drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c @@ -1298,7 +1298,7 @@ struct bcmasp_intf *bcmasp_interface_create(struct bc= masp_priv *priv, ndev_dn->name); goto err_free_netdev; } - intf->phy_dn =3D ndev_dn; + intf->phy_dn =3D of_node_get(ndev_dn); } =20 /* Map resource */ @@ -1338,6 +1338,7 @@ struct bcmasp_intf *bcmasp_interface_create(struct bc= masp_priv *priv, err_deregister_fixed_link: if (of_phy_is_fixed_link(ndev_dn)) of_phy_deregister_fixed_link(ndev_dn); + of_node_put(intf->phy_dn); err_free_netdev: free_netdev(ndev); err: @@ -1350,6 +1351,7 @@ void bcmasp_interface_destroy(struct bcmasp_intf *int= f) unregister_netdev(intf->ndev); if (of_phy_is_fixed_link(intf->ndev_dn)) of_phy_deregister_fixed_link(intf->ndev_dn); + of_node_put(intf->phy_dn); free_netdev(intf->ndev); } =20 --=20 2.34.1 From nobody Sat Oct 24 13:20:53 2026 Received: from mail-qk1-f226.google.com (mail-qk1-f226.google.com [209.85.222.226]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E78DF556BBC for ; Tue, 13 Oct 2026 20:45:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.226 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791924343; cv=none; b=Wd3drDkELXH4d8BBKTPctCWpd+kEjbJoqY2ds/Y6Q1Wayd3U7lG0jjXwEf7NruvsNJzKyHdsRBWrnnyidFPpeCpg+lTVNt6rjmPB0FOhxU+5hWT3anDSVqZWOE4Ai7SBzLyp5+JzBIs1IHDgoZgAUX+On59BMbeesFrXyjQHU7s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791924343; c=relaxed/simple; bh=0BgAVYlymJMII0VGNR6T79dO0Vsgbex65fcphmm3SgU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=rsDPShgodPEJVW4uzxISor0ZgaiW/r4ft+E/9RxX5R4xThta4aVhHR0dCmIWiJInpBTWzhnDj8blcUns6ituaLu/DwIHnQCBBUbwTw+ddFMqEtX1VokC81ZBJkqEm6HlSHRl0xnBruDHxP3rnk3+2qgk1Fy4BmVhnVEbBLcgAlc= 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=aCWDO5E9; arc=none smtp.client-ip=209.85.222.226 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="aCWDO5E9" Received: by mail-qk1-f226.google.com with SMTP id af79cd13be357-93e55db58cfso344360785a.1 for ; Tue, 13 Oct 2026 13:45:41 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1791924341; x=1792529141; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=x0qT31SDh86SWXXSgmpic+OSeenZgL4DO9M+aCZaoqs=; b=0940fBf747HBpEwqskRXBeOyZIK0NDEZSV+Wp0104u6V4msn7tLnj33AxiR8ipe96w /EhAmzf5U8FbOkjeaJzknCUYIWqI3wnjEA2v8e7RxxRmYTHgoHENNhAuss0aqAv1rSwM jpRy46L4YcE/zFn+tzRgyOooahoxxo2N71kk5aY00h21kplhzD6IEF+8CYyl6XoE3Zvp /DxMdnC+5P2Jx6bORdBuV3xDsVu2J6ZRJbrg34wgWh97YGgdvpqYyYpd1HMfrPqoM2ax rblrgaWmKgV8gxCNCYzrAoxM0fZPWa1dRdq25o26yuyAyxpvzJmik/GbOMkjKBitROkT Q/9A== X-Forwarded-Encrypted: i=1; AKwUvBy5ruczsaLX+7MP8H9NViAGWZ1ip1ok05Ys6Av4REaoK/SavAiLOvvZqg0djhMukQ1l9K/2/3pKz1Vj+Ks=@vger.kernel.org X-Gm-Message-State: AFq9FYLzrJudPqe0NT8aG3lDQlX3vOObznphd960GPwOddaBXFwpzK6X mA4UVdx7p5GEt9Unz0QdwLq+Is6cv03MRCyteTW0ZNXZ00+rzUM3JbwKZjYRjgTmKbav43RgcBH tB2I4EeCUiypLKwvwmw+fB+CefQeWGrHWggLJKww58aQ6EBq8KU49pwlFwQn7Wx4tj62n/kEAzR H6oBk691Mknaajkt7uY1K4h8sVsMNcJoX98rv4u8aEq5OrQykuAa9Ij/8x+7uy9HZbPX5g232/b NqgUAmE6hSSpLAxdLj+jo6A X-Gm-Gg: AYBFou3zgORAX/6QG9JH+PNmabePM2jZLOE38UKertgw77yCWBdnBCGnwqmX1lCH9I7 nsjmDmim5LYWUXaLZPjVOjjNTN/GuHwmihOBOXXKFYVmnSVs3Uz8ZaowbYzpRcSt094A3CsiWO+ KQq04aYQHSPPMpIj26Le+2Ra7qSIweZSjZ+mRtmwHSEybG8cjx2ss5o8xXOfRV6vSK/qatLoQ+7 Vf/DbBaz7qy+asVelduq+3x8e1fYkwFVAXLb4fQ0doujiN/hs0ZJCbn+NBW8ltQXj1cYkHcLHAx wE0/hAc0XUsgOxVIxgs5IhIOTPwVA3KoupQSlovM8h6FcbkW1vsIkuk7unhc241fjjasSID93tD eFVNmin/ovWuufdMYZ3Cw9DrqIP7RvFSRPwytTQXx5jCJ33R5/d9La+JvJMx8eN5LBD4OZMx4gm 0wePIePAvoFJpv/ev5e+Ohg/4hZXcDy+96WIgQJIwWnmQ= X-Received: by 2002:a05:620a:4693:b0:93e:6064:8996 with SMTP id af79cd13be357-93ebd0c3204mr2350336085a.8.1791924340638; Tue, 13 Oct 2026 13:45:40 -0700 (PDT) Received: from smtp-us-east1-p01-i01-si01.dlp.protect.broadcom.com (address-144-49-247-120.dlp.protect.broadcom.com. [144.49.247.120]) by smtp-relay.gmail.com with ESMTPS id af79cd13be357-93ef50420c9sm77205985a.9.2026.10.13.13.45.40 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 13 Oct 2026 13:45:40 -0700 (PDT) X-Relaying-Domain: broadcom.com X-CFilter-Loop: Reflected Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-53513d2a70eso76774691cf.3 for ; Tue, 13 Oct 2026 13:45:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1791924340; x=1792529140; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=x0qT31SDh86SWXXSgmpic+OSeenZgL4DO9M+aCZaoqs=; b=aCWDO5E94m+KJD3Ob78aP1eeEX0F0cEnKR0YoKvi+bNqJ+SJqWW2czNMtTyTsJT9Nm PqpA+Crl7AulPz1tbjqTEKpxTMLujjMACp6b7c3oQgJEoPwRyqoNMJSUgnieZfxRZzXU LyBsI+8EG1901p9CrxsKEBRtIitA7s1YT1zXs= X-Forwarded-Encrypted: i=1; AKwUvBx8OUXCPNVZozFmt2YD5AOQQAbRmgWgN/1T7XcAbLTcRTan20k8xSXsrp4zPlhmYp/7nZaciO5TjrRqU58=@vger.kernel.org X-Received: by 2002:ac8:59d6:0:b0:530:b2e4:91c1 with SMTP id d75a77b69052e-5359fdf3dbcmr212167811cf.58.1791924339685; Tue, 13 Oct 2026 13:45:39 -0700 (PDT) X-Received: by 2002:ac8:59d6:0:b0:530:b2e4:91c1 with SMTP id d75a77b69052e-5359fdf3dbcmr212167451cf.58.1791924339085; Tue, 13 Oct 2026 13:45:39 -0700 (PDT) Received: from stbirv-lnx-1.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-535f4eee7bcsm15879231cf.30.2026.10.13.13.45.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 Oct 2026 13:45:37 -0700 (PDT) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , Justin Chen , Doug Berger , Broadcom internal kernel review list , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Zak Kemble , Simon Horman , Ryo Takakura , linux-kernel@vger.kernel.org (open list), Nicolai Buchwitz Subject: [PATCH net v3 RESEND 5/6] net: bcmasp: account for offload header in TX short packet padding Date: Tue, 13 Oct 2026 13:44:38 -0700 Message-Id: <20261013204439.3494046-6-florian.fainelli@broadcom.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20261013204439.3494046-1-florian.fainelli@broadcom.com> References: <20261013204439.3494046-1-florian.fainelli@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 X-DetectorID-Processed: b00c1d49-9d2e-4205-b15f-d015386d3d5e Content-Type: text/plain; charset="utf-8" When hardware checksum offload is enabled for an skb, bcmasp_csum_offload() prepends a struct bcmasp_pkt_offload header (20 bytes) to the skb via skb_push(). This increases skb->len and skb_headlen(skb) by sizeof(struct bcmasp_pkt_offload). Because the hardware descriptor processor strips this offload header before transmitting the packet on the wire, the wire packet length is smaller by sizeof(struct bcmasp_pkt_offload). The padding calculation must account for this extra header; otherwise, short frames are sent on the wire smaller than the minimum Ethernet frame size (ETH_ZLEN + ETH_FCS_LEN). Furthermore, small frames with payload in page fragments (such as small TCP segments with CHECKSUM_PARTIAL) have nr_frags > 0 and were skipping padding entirely because the padding check was restricted to nr_frags =3D=3D 0. Perform the padding check on skb->len before the descriptor loop using skb_put_padto(), adding sizeof(struct bcmasp_pkt_offload) to min_size when checksum offload is enabled, and re-read nr_frags after padding in case the skb was linearized. Fixes: 490cb412007d ("net: bcmasp: Add support for ASP2.0 Ethernet controll= er") Assisted-by: LLM Reviewed-by: Justin Chen Signed-off-by: Florian Fainelli --- .../net/ethernet/broadcom/asp2/bcmasp_intf.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c b/drivers/net= /ethernet/broadcom/asp2/bcmasp_intf.c index 693e8cdfe960..a855e637b6f0 100644 --- a/drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c +++ b/drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c @@ -236,7 +236,7 @@ static struct sk_buff *bcmasp_csum_offload(struct net_d= evice *dev, static netdev_tx_t bcmasp_xmit(struct sk_buff *skb, struct net_device *dev) { struct bcmasp_intf *intf =3D netdev_priv(dev); - unsigned int total_bytes, size; + unsigned int total_bytes, size, min_size; int spb_index, nr_frags, i, j; struct bcmasp_tx_cb *txcb; dma_addr_t mapping, valid; @@ -262,16 +262,21 @@ static netdev_tx_t bcmasp_xmit(struct sk_buff *skb, s= truct net_device *dev) if (!skb) return NETDEV_TX_OK; =20 + min_size =3D ETH_ZLEN + ETH_FCS_LEN; + if (csum_hw) + min_size +=3D sizeof(struct bcmasp_pkt_offload); + + if (skb->len < min_size) { + if (skb_put_padto(skb, min_size)) + return NETDEV_TX_OK; + nr_frags =3D skb_shinfo(skb)->nr_frags; + } + spb_index =3D intf->tx_spb_index; valid =3D intf->tx_spb_dma_valid; for (i =3D 0; i <=3D nr_frags; i++) { if (!i) { size =3D skb_headlen(skb); - if (!nr_frags && size < (ETH_ZLEN + ETH_FCS_LEN)) { - if (skb_put_padto(skb, ETH_ZLEN + ETH_FCS_LEN)) - return NETDEV_TX_OK; - size =3D skb->len; - } mapping =3D dma_map_single(kdev, skb->data, size, DMA_TO_DEVICE); } else { --=20 2.34.1 From nobody Sat Oct 24 13:20:53 2026 Received: from mail-pj1-f98.google.com (mail-pj1-f98.google.com [209.85.216.98]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9E7F65540B3 for ; Tue, 13 Oct 2026 20:45:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.98 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791924345; cv=none; b=S2cO7ed/6o2o6+AQ1nvJqHD71kxnuNkFOjPuytPFPdU+jBjHViyEPF3MljRokpu8bKrGpIyPKvhpg4nKCHVOiELhp518xjMMGgNgUoR7rAHY9o6vu6MUgyIIVlq5nXtbC5ArQDJmIdU1BM0J9NdTiW6OjxIWOyKWbNQWlG9Rpac= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791924345; c=relaxed/simple; bh=vUpcsez7CgnIpw4YbzcmYEoAjaaVFIIoSzz7dzlZask=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=jrhquA20jt7BM8LoKyIJ8kiXvVqjRtm9eYYHVF0XKHVTohcXxHpChc5VqCQG9loNM6k4z4DCvtRPGyIJCxm6bwqMIl7ILXOQ1cpzw0vbb8FfPsVDw5Apt/Div29Nkrt68kKVEkkJS5zmOlnSAv16wrkLJtYzfQKxxoBjnW1jdaU= 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=dAdlRnSI; arc=none smtp.client-ip=209.85.216.98 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="dAdlRnSI" Received: by mail-pj1-f98.google.com with SMTP id 98e67ed59e1d1-3ab066bef7dso147634a91.1 for ; Tue, 13 Oct 2026 13:45:43 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1791924343; x=1792529143; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=Mjx/TM1iArDbn30rqgVOcHhn4GsE6BcqrxggBQfCUl4=; b=APZ7i62E79m16KaawPe6RRmLxQFUCvOTnZmPz4aYUmkGQagYPW2Cu1Aj9WrO2qb419 BfaMKQ2lt/SJ/M0fhoYxCmCnqAAcSbNd8vYVsxzKuV3xeOS5ig8bJUgOzqaV2j5rO09j HOQWAVy1b2OyrR+nVmBleuVgt2SAiTd6B6ldDqpBeoaOGR3oKAmxf/XD2EJ6331LFV79 4N3ATXBommOQ+Dh8d8uZTsm4VUeV4dVWZFIulmKXf/1DTvX+6N10ae64RKLmcv4kF6xE hpVkCtoAsRimQ/dJvUHSW2fR2YTLUBw9Hwm5HRhekXduiDkFzMJpT4W3i7r4zNFFrqb8 eW6Q== X-Forwarded-Encrypted: i=1; AKwUvBxR7ZziOoaOxpypxIk7zkRUHSgVztr9JgCamKOliIGJaEMviQaEiG4bsPDx80c2QdvKqlksD/F4o9/wHW8=@vger.kernel.org X-Gm-Message-State: AFq9FYLOvjpkBJHEuSwIpjwTFk8hKz2eCAQW2G/OjEyOKxGmXznsjTKD XEtGSIa3JV15pf6SyEHWa4rzW18UQZBQa9autoH+9db2Grhdfme6Y/Fg9yrBUh0VYua2pJv+PW6 zezqt+w2muHytAi3ju8pH2z2LFjt5oMf7lVK7xCdevCbyGeUauIBJ+rfpIqwCR7+3AfrsbDXB2t BIaroo7GFrodIrs3oBq3T72C9KZSw8e9C+IOWzo03e9Lz9Al67BwAVblEeCOPyNKRzNfIbCIerO 8JzAMwC6zgxz+l+4KOQYyVo X-Gm-Gg: AYBFou1UpFLI3o6htYNo8es0wwkFjU280GC+4RkMBCQCQStX7Dq/aPOK4cHk3+3YS9k n2SIcLQ+1rI+WXsWiggYrMia445k/P2CP9iwSl662wEiXFk1YfE8mU/5wgcm4+cxRH8X3cQlskK uq3XEHUehm4Vr0VeBY2rSIe49dYXCebkfXww5PIrCvvOySok2gyoMdqvCXsxIBl+lBdQZIXZ54l PbXB06GpUIWhQdHrWOyDSlYKE7WF2Ncvben/qR4HitlwcoS27eDtwCPdgJo1UXjCwbsrNxE2f8g 7DnR+d4SaVDTLGlz9uWKJ5ppWgV24n//6tFHZNxEG16ohAhTmlGSkJ1v+mCuavEg0hsRow9PKQy HcEkty30PE5O2SkawZGsNEZz8h7P6o+vycvlJHEgn3mLGOZgtX1ymF0rDZl2T6vpXH+uBmyZm8V W5HLpZE2r1ppV0Y4ey0Stjyb9w86dF+jUHULlaOb80PZs= X-Received: by 2002:a17:90b:1d4f:b0:3a8:699f:959d with SMTP id 98e67ed59e1d1-3ab3a955988mr11267672a91.31.1791924342969; Tue, 13 Oct 2026 13:45:42 -0700 (PDT) Received: from smtp-us-east1-p01-i01-si01.dlp.protect.broadcom.com (address-144-49-247-120.dlp.protect.broadcom.com. [144.49.247.120]) by smtp-relay.gmail.com with ESMTPS id 98e67ed59e1d1-3ac5ede81a4sm394561a91.0.2026.10.13.13.45.42 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 13 Oct 2026 13:45:42 -0700 (PDT) X-Relaying-Domain: broadcom.com X-CFilter-Loop: Reflected Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-53514fbd4a3so74988701cf.3 for ; Tue, 13 Oct 2026 13:45:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1791924342; x=1792529142; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=Mjx/TM1iArDbn30rqgVOcHhn4GsE6BcqrxggBQfCUl4=; b=dAdlRnSIIeEdxo0s4fRVwwJqkWmEez+ti4E5lfu8EmjYHZQWHZ88PB/jOT/PhSJcy8 gvAikqFm95R1N3LwulwTCQmN+ffmMlMBWV8Q8NFcaiwTrZB4YmfmcSlavOx6FxQ+cQSS HMB+lO9cJhE726uMr/NYENzZHD1GFxSY+29GY= X-Forwarded-Encrypted: i=1; AKwUvBw5Kr9BukH9RSIEmQuumI6sWB2CbmS3Kh7ygOzaxR90+zRP9jofJc3CYPEVfZEe1a7GXUwO16baD1B0ZvI=@vger.kernel.org X-Received: by 2002:a05:622a:481b:b0:535:864:82cf with SMTP id d75a77b69052e-5359f46d548mr217193291cf.10.1791924341734; Tue, 13 Oct 2026 13:45:41 -0700 (PDT) X-Received: by 2002:a05:622a:481b:b0:535:864:82cf with SMTP id d75a77b69052e-5359f46d548mr217193031cf.10.1791924341240; Tue, 13 Oct 2026 13:45:41 -0700 (PDT) Received: from stbirv-lnx-1.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-535f4eee7bcsm15879231cf.30.2026.10.13.13.45.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 Oct 2026 13:45:40 -0700 (PDT) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , Doug Berger , Broadcom internal kernel review list , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Zak Kemble , Simon Horman , Ryo Takakura , linux-kernel@vger.kernel.org (open list), Nicolai Buchwitz Subject: [PATCH net v3 RESEND 6/6] net: bcmasp: fix network filter lookup and wake filter pair allocation Date: Tue, 13 Oct 2026 13:44:39 -0700 Message-Id: <20261013204439.3494046-7-florian.fainelli@broadcom.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20261013204439.3494046-1-florian.fainelli@broadcom.com> References: <20261013204439.3494046-1-florian.fainelli@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 X-DetectorID-Processed: b00c1d49-9d2e-4205-b15f-d015386d3d5e Content-Type: text/plain; charset="utf-8" In bcmasp_netfilt_get_init(), when looking up an existing filter (!init) for a specified location, if the filter at loc was not claimed, the previous loop continued searching higher indices and could return an arbitrary unrelated filter belonging to the port. This caused flow get or delete operations on an empty rule location to return or delete an unintended filter. Fix this by checking only the requested location on lookup and rejecting RX_CLS_LOC_ANY when !init. In addition, harden wake filter allocation and release by ensuring wake filter pair searches stay on even boundaries where both entries are free, checking that loc + 1 is free for positioned wake filters, and validating parity and bounds on release. Fixes: c5d511c49587 ("net: bcmasp: Add support for wake on net filters") Assisted-by: LLM Signed-off-by: Florian Fainelli --- drivers/net/ethernet/broadcom/asp2/bcmasp.c | 121 +++++++++++--------- 1 file changed, 70 insertions(+), 51 deletions(-) diff --git a/drivers/net/ethernet/broadcom/asp2/bcmasp.c b/drivers/net/ethe= rnet/broadcom/asp2/bcmasp.c index 972474893a6b..f41a79529f10 100644 --- a/drivers/net/ethernet/broadcom/asp2/bcmasp.c +++ b/drivers/net/ethernet/broadcom/asp2/bcmasp.c @@ -511,6 +511,13 @@ static int bcmasp_netfilt_wr_to_hw(struct bcmasp_priv = *priv, return 0; } =20 +static bool bcmasp_netfilt_is_companion(struct bcmasp_priv *priv, int i) +{ + return i > 0 && (i % 2) && + priv->net_filters[i].wake_filter && + priv->net_filters[i - 1].wake_filter; +} + void bcmasp_netfilt_suspend(struct bcmasp_intf *intf) { struct bcmasp_priv *priv =3D intf->parent; @@ -524,9 +531,7 @@ void bcmasp_netfilt_suspend(struct bcmasp_intf *intf) priv->net_filters[i].port !=3D intf->port) continue; =20 - if (i > 0 && (i % 2) && - priv->net_filters[i].wake_filter && - priv->net_filters[i - 1].wake_filter) + if (bcmasp_netfilt_is_companion(priv, i)) continue; =20 ret =3D bcmasp_netfilt_wr_to_hw(priv, &priv->net_filters[i]); @@ -556,9 +561,7 @@ int bcmasp_netfilt_get_all_active(struct bcmasp_intf *i= ntf, u32 *rule_locs, priv->net_filters[i].port !=3D intf->port) continue; =20 - if (i > 0 && (i % 2) && - priv->net_filters[i].wake_filter && - priv->net_filters[i - 1].wake_filter) + if (bcmasp_netfilt_is_companion(priv, i)) continue; =20 if (j =3D=3D *rule_cnt) @@ -583,9 +586,7 @@ int bcmasp_netfilt_get_active(struct bcmasp_intf *intf) continue; =20 /* Skip over a wake filter pair */ - if (i > 0 && (i % 2) && - priv->net_filters[i].wake_filter && - priv->net_filters[i - 1].wake_filter) + if (bcmasp_netfilt_is_companion(priv, i)) continue; =20 cnt++; @@ -607,6 +608,9 @@ bool bcmasp_netfilt_check_dup(struct bcmasp_intf *intf, priv->net_filters[i].port !=3D intf->port) continue; =20 + if (bcmasp_netfilt_is_companion(priv, i)) + continue; + cur =3D &priv->net_filters[i].fs; =20 if (cur->flow_type !=3D fs->flow_type || @@ -659,7 +663,7 @@ bool bcmasp_netfilt_check_dup(struct bcmasp_intf *intf, } =20 /* If no network filter found, return open filter. - * If no more open filters return NULL + * If no more open filters return error. */ struct bcmasp_net_filter *bcmasp_netfilt_get_init(struct bcmasp_intf *intf, u32 loc, bool wake_filter, @@ -669,45 +673,55 @@ struct bcmasp_net_filter *bcmasp_netfilt_get_init(str= uct bcmasp_intf *intf, struct bcmasp_priv *priv =3D intf->parent; int i, open_index =3D -1; =20 - /* Check whether we exceed the filter table capacity */ + if (!init) { + if (loc =3D=3D RX_CLS_LOC_ANY || loc >=3D priv->num_net_filters) + return ERR_PTR(-EINVAL); + + if (priv->net_filters[loc].claimed && + priv->net_filters[loc].port =3D=3D intf->port && + !bcmasp_netfilt_is_companion(priv, loc)) + return &priv->net_filters[loc]; + + return ERR_PTR(-ENOENT); + } + if (loc !=3D RX_CLS_LOC_ANY && loc >=3D priv->num_net_filters) return ERR_PTR(-EINVAL); =20 /* If the filter location is busy (already claimed) and we are initializi= ng * the filter (insertion), return a busy error code. */ - if (loc !=3D RX_CLS_LOC_ANY && init && priv->net_filters[loc].claimed) - return ERR_PTR(-EBUSY); - - /* We need two filters for wake-up, so we cannot use an odd filter */ - if (wake_filter && loc !=3D RX_CLS_LOC_ANY && (loc % 2)) - return ERR_PTR(-EINVAL); - - /* Initialize the loop index based on the desired location or from 0 */ - i =3D loc =3D=3D RX_CLS_LOC_ANY ? 0 : loc; - - for ( ; i < priv->num_net_filters; i++) { - /* Found matching network filter */ - if (!init && - priv->net_filters[i].claimed && - priv->net_filters[i].hw_index =3D=3D i && - priv->net_filters[i].port =3D=3D intf->port) - return &priv->net_filters[i]; - - /* If we don't need a new filter or new filter already found */ - if (!init || open_index >=3D 0) - continue; - - /* Wake filter conslidates two filters to cover more bytes - * Wake filter is open if... - * 1. It is an even filter - * 2. The current and next filter is not claimed - */ - if (wake_filter && !(i % 2) && !priv->net_filters[i].claimed && - !priv->net_filters[i + 1].claimed) - open_index =3D i; - else if (!priv->net_filters[i].claimed) - open_index =3D i; + if (loc !=3D RX_CLS_LOC_ANY) { + if (priv->net_filters[loc].claimed) + return ERR_PTR(-EBUSY); + + /* We need two filters for wake-up, so we cannot use an odd filter */ + if (wake_filter) { + if ((loc % 2) || loc + 1 >=3D priv->num_net_filters) + return ERR_PTR(-EINVAL); + if (priv->net_filters[loc + 1].claimed) + return ERR_PTR(-EBUSY); + } + open_index =3D loc; + } else { + for (i =3D 0; i < priv->num_net_filters; i++) { + /* Wake filter consolidates two filters to cover more bytes. + * Wake filter is open if: + * 1. It is an even filter + * 2. The current and next filter is not claimed + */ + if (wake_filter) { + if (!(i % 2) && (i + 1 < priv->num_net_filters) && + !priv->net_filters[i].claimed && + !priv->net_filters[i + 1].claimed) { + open_index =3D i; + break; + } + } else if (!priv->net_filters[i].claimed) { + open_index =3D i; + break; + } + } } =20 if (open_index >=3D 0) { @@ -716,16 +730,20 @@ struct bcmasp_net_filter *bcmasp_netfilt_get_init(str= uct bcmasp_intf *intf, nfilter->port =3D intf->port; nfilter->ch =3D intf->channel + priv->tx_chan_offset; nfilter->hw_index =3D open_index; - } =20 - if (wake_filter && open_index >=3D 0) { - /* Claim next filter */ - priv->net_filters[open_index + 1].claimed =3D true; - priv->net_filters[open_index + 1].wake_filter =3D true; - nfilter->wake_filter =3D true; + if (wake_filter) { + /* Claim next filter */ + priv->net_filters[open_index + 1].claimed =3D true; + priv->net_filters[open_index + 1].wake_filter =3D true; + priv->net_filters[open_index + 1].hw_index =3D open_index + 1; + priv->net_filters[open_index + 1].port =3D intf->port; + priv->net_filters[open_index + 1].ch =3D intf->channel + + priv->tx_chan_offset; + nfilter->wake_filter =3D true; + } } =20 - return nfilter ? nfilter : ERR_PTR(-EINVAL); + return nfilter ? nfilter : ERR_PTR(-ENOSPC); } =20 void bcmasp_netfilt_release(struct bcmasp_intf *intf, @@ -733,7 +751,8 @@ void bcmasp_netfilt_release(struct bcmasp_intf *intf, { struct bcmasp_priv *priv =3D intf->parent; =20 - if (nfilt->wake_filter) { + if (nfilt->wake_filter && !(nfilt->hw_index % 2) && + nfilt->hw_index + 1 < priv->num_net_filters) { memset(&priv->net_filters[nfilt->hw_index + 1], 0, sizeof(struct bcmasp_net_filter)); } --=20 2.34.1