From nobody Fri Oct 3 19:12:04 2025 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.14]) (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 864F0321F5C; Tue, 26 Aug 2025 11:28:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.14 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756207694; cv=none; b=ZNM8s769wp5th91Iewsjw4ly1/nHI4a7DAH887/Pmiit05UatdP0aqkMUZWABCj2bfs5UOa6NZq3Di3YOzQjSA1/6njOTrlLHzK5TNe4cRXPTlrWC26GWV9pVMCEVyv7sda2m2KChvofk3/IqnMUvaQDQNI/4uW9roKiY4HXkaA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756207694; c=relaxed/simple; bh=eXfl58E1fRta3YHdqeADtIDJlpOXBQxOXSwkGGvk58M=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=ea1w7uNwvgLhvmpboKG3y5+6gEBQQpYSBQDv2NOuWCnlJ+F8wIHHz8ikdPBBswtk1rq0tVhgboZJvgyZ60cxeblWTPiVmP2SdmEaOYB8sstRsSKa1nMMCeP2taUgNtUSZ1eg18QXjZtsPQBzjGoMdRQY7PoJzr9GenprnQp7wFo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=iaPlXh+R; arc=none smtp.client-ip=198.175.65.14 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="iaPlXh+R" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1756207693; x=1787743693; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=eXfl58E1fRta3YHdqeADtIDJlpOXBQxOXSwkGGvk58M=; b=iaPlXh+RzqXvs0VEhwfcu7a4Nb+qjPvMm/r1hsC+nLdB9hT+a2/dRklS fbxoZo3gvsZwT/xde19pjSCQCy0J1CZ4xvOL5r43jdNVfOrPtvfr9cGVe /lQ6eQXPVJBt3Pltrsq3AIU9vTUVMQuDUZ9PDU1arfkuExxjRehmgczHW K95URHul8Knc4u02MwiekXlg+dG/Q8cPt3FJnHsDtvHnQuk+XLwUH1oaj zSsmarWubYixAFQE5S9wcneNYiYveellYUld9DMiXtbt3MqnMOzeDHLRd WZyMDMlU0t6Oi/GzomTlfWHDlDRRdwS4I1xpvqMh2nixe6OWdUeKHWB5g g==; X-CSE-ConnectionGUID: bMBN01myRa+gLKiXTHnq+g== X-CSE-MsgGUID: 5Zcbff3vQEOJoyGQP0wguA== X-IronPort-AV: E=McAfee;i="6800,10657,11531"; a="62269259" X-IronPort-AV: E=Sophos;i="6.17,312,1747724400"; d="scan'208";a="62269259" Received: from orviesa003.jf.intel.com ([10.64.159.143]) by orvoesa106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Aug 2025 04:28:13 -0700 X-CSE-ConnectionGUID: ivV1y4e/RiSMoUFjfUHx9Q== X-CSE-MsgGUID: um33PhChRrOAGcsIaiZ4oA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.18,214,1751266800"; d="scan'208";a="173725764" Received: from gklab-kleszczy-dev.igk.intel.com ([10.102.25.215]) by orviesa003.jf.intel.com with ESMTP; 26 Aug 2025 04:28:10 -0700 From: Konrad Leszczynski To: davem@davemloft.net, andrew+netdev@lunn.ch, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cezary.rojewski@intel.com, sebastian.basierski@intel.com, Konrad Leszczynski Subject: [PATCH net-next 1/7] net: stmmac: replace memcpy with strscpy in ethtool Date: Tue, 26 Aug 2025 13:32:41 +0200 Message-Id: <20250826113247.3481273-2-konrad.leszczynski@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250826113247.3481273-1-konrad.leszczynski@intel.com> References: <20250826113247.3481273-1-konrad.leszczynski@intel.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" Fix kernel exception by replacing memcpy with strscpy when used with safety feature strings in ethtool logic. [ +0.000023] BUG: KASAN: global-out-of-bounds in stmmac_get_strings+0x17d/= 0x520 [stmmac] [ +0.000115] Read of size 32 at addr ffffffffc0cfab20 by task ethtool/2571 [ +0.000005] Call Trace: [ +0.000004] [ +0.000003] dump_stack_lvl+0x6c/0x90 [ +0.000016] print_report+0xce/0x610 [ +0.000011] ? stmmac_get_strings+0x17d/0x520 [stmmac] [ +0.000108] ? kasan_addr_to_slab+0xd/0xa0 [ +0.000008] ? stmmac_get_strings+0x17d/0x520 [stmmac] [ +0.000101] kasan_report+0xd4/0x110 [ +0.000010] ? stmmac_get_strings+0x17d/0x520 [stmmac] [ +0.000102] kasan_check_range+0x3a/0x1c0 [ +0.000010] __asan_memcpy+0x24/0x70 [ +0.000008] stmmac_get_strings+0x17d/0x520 [stmmac] Reviewed-by: Sebastian Basierski Signed-off-by: Konrad Leszczynski --- drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c b/drivers= /net/ethernet/stmicro/stmmac/stmmac_ethtool.c index f702f7b7bf9f..219a2df578ae 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c @@ -795,7 +795,7 @@ static void stmmac_get_strings(struct net_device *dev, = u32 stringset, u8 *data) if (!stmmac_safety_feat_dump(priv, &priv->sstats, i, NULL, &desc)) { - memcpy(p, desc, ETH_GSTRING_LEN); + strscpy(p, desc, ETH_GSTRING_LEN); p +=3D ETH_GSTRING_LEN; } } --=20 2.34.1 From nobody Fri Oct 3 19:12:04 2025 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.14]) (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 A9AB7326D62; Tue, 26 Aug 2025 11:28:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.14 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756207697; cv=none; b=HoRsGEVHqmBgGFEY5A+Q7Z/Lbb77fhWUntT3ccH7VHfwm6LbWAw53LvMQH1291Ki6BFlp3Dc9FJ3ohKUaOnsgTvriXrJKWeNN6qHtC1O4wbGr42Fl7mApzK/Hl8PDg05lc02XUdEj6De6j2F3PmDmYgTZ9ryqW//noRpTsswAsM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756207697; c=relaxed/simple; bh=vQJJHBnM+iEXU5V6yK0xFFHTCOFo+SL5ltPFgOxU6M8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Ce+qu5t1Tv2lrEY4pDMvUpc2KRlkNQrZ7cvsZI7au2m21N6vD1fI43H14d9R4DQuYnt211AfOxZQ1bF1XtzitEHRw14/cxL0b4sy3U8phr5UxYTJD2S6fCYe1prVrYbYmxG4BmOcU8Z6CPWuuWI9GVLcmXGw3y0ocrReIoA6VSo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=GrXCDwJ0; arc=none smtp.client-ip=198.175.65.14 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="GrXCDwJ0" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1756207696; x=1787743696; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=vQJJHBnM+iEXU5V6yK0xFFHTCOFo+SL5ltPFgOxU6M8=; b=GrXCDwJ049Rxlsnhwz8+GqbRElXaP5asjgXEduQXnrfVClX3XN6zdIcv 5ovddaYUd5wd2hZ7LGrnNG4x4VUUUEDU5Doy6ivOpqqQVYj0rqxY0C+fx lUdhKxnC51WykN1JXz4wK2o77WX8jOMC7N3mf4rRfIfoLjm9w19C9sCmi SWNtcZZIUS4sv8JZjABhsivDYXOMyGRaOv5fnioQoKbtYqh/lQXRcg10i fG5OMqfCJQA7qmFCk4cOHcAG/vJ2uYY5Ha3hzibmtis02jEag40B5dcTh RBBjIi4IsCS7sloUqjF4PrQidqF/eHxOrfUcNcQLuXe7Q8p5005eesZK5 A==; X-CSE-ConnectionGUID: I31oGmEtR4ypJC06jI0SZw== X-CSE-MsgGUID: htKj/Jd7Sm6bHe3WkdJNTw== X-IronPort-AV: E=McAfee;i="6800,10657,11531"; a="62269268" X-IronPort-AV: E=Sophos;i="6.17,312,1747724400"; d="scan'208";a="62269268" Received: from orviesa003.jf.intel.com ([10.64.159.143]) by orvoesa106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Aug 2025 04:28:16 -0700 X-CSE-ConnectionGUID: m25XV0MxTFu/T2ff/fMB8g== X-CSE-MsgGUID: sEdKLqKgSaiPwQzh1Fsgdw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.18,214,1751266800"; d="scan'208";a="173725795" Received: from gklab-kleszczy-dev.igk.intel.com ([10.102.25.215]) by orviesa003.jf.intel.com with ESMTP; 26 Aug 2025 04:28:13 -0700 From: Konrad Leszczynski To: davem@davemloft.net, andrew+netdev@lunn.ch, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cezary.rojewski@intel.com, sebastian.basierski@intel.com, Piotr Warpechowski , Konrad Leszczynski Subject: [PATCH net-next 2/7] net: stmmac: correct Tx descriptors debugfs prints Date: Tue, 26 Aug 2025 13:32:42 +0200 Message-Id: <20250826113247.3481273-3-konrad.leszczynski@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250826113247.3481273-1-konrad.leszczynski@intel.com> References: <20250826113247.3481273-1-konrad.leszczynski@intel.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: Piotr Warpechowski It was observed that extended descriptors are not printed out fully and enhanced descriptors are completely omitted in stmmac_rings_status_show(). Correct printing according to documentation and other existing prints in the driver. Reviewed-by: Konrad Leszczynski Reviewed-by: Sebastian Basierski Signed-off-by: Piotr Warpechowski --- .../net/ethernet/stmicro/stmmac/stmmac_main.c | 31 ++++++++++++++----- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/ne= t/ethernet/stmicro/stmmac/stmmac_main.c index b948df1bff9a..bda1a83607c0 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -6349,14 +6349,25 @@ static void sysfs_display_ring(void *head, int size= , int extend_desc, desc_size =3D extend_desc ? sizeof(*ep) : sizeof(*p); for (i =3D 0; i < size; i++) { dma_addr =3D dma_phy_addr + i * desc_size; - seq_printf(seq, "%d [%pad]: 0x%x 0x%x 0x%x 0x%x\n", - i, &dma_addr, - le32_to_cpu(p->des0), le32_to_cpu(p->des1), - le32_to_cpu(p->des2), le32_to_cpu(p->des3)); - if (extend_desc) - p =3D &(++ep)->basic; - else + if (extend_desc) { + seq_printf(seq, "%d [%pad]: 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x\n", + i, &dma_addr, + le32_to_cpu(ep->basic.des0), + le32_to_cpu(ep->basic.des1), + le32_to_cpu(ep->basic.des2), + le32_to_cpu(ep->basic.des3), + le32_to_cpu(ep->des4), + le32_to_cpu(ep->des5), + le32_to_cpu(ep->des6), + le32_to_cpu(ep->des7)); + ep++; + } else { + seq_printf(seq, "%d [%pad]: 0x%x 0x%x 0x%x 0x%x\n", + i, &dma_addr, + le32_to_cpu(p->des0), le32_to_cpu(p->des1), + le32_to_cpu(p->des2), le32_to_cpu(p->des3)); p++; + } } } =20 @@ -6396,7 +6407,11 @@ static int stmmac_rings_status_show(struct seq_file = *seq, void *v) seq_printf(seq, "Extended descriptor ring:\n"); sysfs_display_ring((void *)tx_q->dma_etx, priv->dma_conf.dma_tx_size, 1, seq, tx_q->dma_tx_phy); - } else if (!(tx_q->tbs & STMMAC_TBS_AVAIL)) { + } else if (tx_q->tbs & STMMAC_TBS_AVAIL) { + seq_printf(seq, "Enhanced descriptor ring:\n"); + sysfs_display_ring((void *)tx_q->dma_entx, + priv->dma_conf.dma_tx_size, 1, seq, tx_q->dma_tx_phy); + } else { seq_printf(seq, "Descriptor ring:\n"); sysfs_display_ring((void *)tx_q->dma_tx, priv->dma_conf.dma_tx_size, 0, seq, tx_q->dma_tx_phy); --=20 2.34.1 From nobody Fri Oct 3 19:12:04 2025 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.14]) (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 4CB5B343D83; Tue, 26 Aug 2025 11:28:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.14 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756207700; cv=none; b=jri1PsaTCLigplENKhSetT3AjsIT/Gzqrp/mqruNPkw5bFPwP2uvqrQ1dpj72Q5p0ETwkg8sz/X3rL0zGmoURcS8Rzddiy8Bj2KfHWWqYucmaLTV+0uWq3u59PuQatwZF+hR78RFaxlmoBacEa5V/Fsslwtb7EesyQM82vydHQE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756207700; c=relaxed/simple; bh=Oa24s+s7jJoXe876BKzHjTk58p18VzSxBVg370DbOjg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=VbLwu91J3Dby3X0hnookz04ylBBbmk4rfUly6yGTggXZ+AIsmq3YJRv/6T18r1uIomYjIXnhD1lBcyi5E7Bqq2u1W/dTHY0F34KO8qhZ+FG3SZcd3NqvE4OBjqYn5MJwWdIq9aRXY8IQ3nyjyn/9fdwoMhK1A1HQn7AT5zzv804= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=JeZjYU/t; arc=none smtp.client-ip=198.175.65.14 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="JeZjYU/t" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1756207699; x=1787743699; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=Oa24s+s7jJoXe876BKzHjTk58p18VzSxBVg370DbOjg=; b=JeZjYU/t6Vc92/mUbJnNmImM22mnGOqbHZz/YB3g/yFidoarX+R7ZeeH QoVfAgLAN9AWkh0rPcH2vmPQ57seZQpLnm7pJAmJ8NXW4YSKt3Ztha3Xh s0zybxS+olVyApP2UWi2kXmIUMImv1rK1bbrgIexftH6/lxCbrHCtNCva g3w9UfLQOTRoXaoQjBCuVJmnjW8KZsI6jXvviMQpbpwoufmIp9tRvmYA+ 0Ldy9mezORJzdiAs7jzpkKPMq45crZkRAU0rUYcN2abtCLQDXHJUsVE3D eoPSrsPwiLlEMdVALLG/ITtPr7//ARLwlanBaJ1WtPousAXQKepAvI372 Q==; X-CSE-ConnectionGUID: Wk4veZptRnWmTfETqEMqyg== X-CSE-MsgGUID: VTwVodxySMSabz9gXauefg== X-IronPort-AV: E=McAfee;i="6800,10657,11531"; a="62269276" X-IronPort-AV: E=Sophos;i="6.17,312,1747724400"; d="scan'208";a="62269276" Received: from orviesa003.jf.intel.com ([10.64.159.143]) by orvoesa106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Aug 2025 04:28:19 -0700 X-CSE-ConnectionGUID: i5j4TA7RSQKkJniRvF4k+g== X-CSE-MsgGUID: c7B/zIjUSWqgavPk9qkFYg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.18,214,1751266800"; d="scan'208";a="173725806" Received: from gklab-kleszczy-dev.igk.intel.com ([10.102.25.215]) by orviesa003.jf.intel.com with ESMTP; 26 Aug 2025 04:28:16 -0700 From: Konrad Leszczynski To: davem@davemloft.net, andrew+netdev@lunn.ch, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cezary.rojewski@intel.com, sebastian.basierski@intel.com, Karol Jurczenia , Konrad Leszczynski Subject: [PATCH net-next 3/7] net: stmmac: check if interface is running before TC block setup Date: Tue, 26 Aug 2025 13:32:43 +0200 Message-Id: <20250826113247.3481273-4-konrad.leszczynski@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250826113247.3481273-1-konrad.leszczynski@intel.com> References: <20250826113247.3481273-1-konrad.leszczynski@intel.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: Karol Jurczenia If the interface is down before setting a TC block, the queues are already disabled and setup cannot proceed. Reviewed-by: Konrad Leszczynski Reviewed-by: Sebastian Basierski Signed-off-by: Karol Jurczenia --- 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/ne= t/ethernet/stmicro/stmmac/stmmac_main.c index bda1a83607c0..9cf7f85c10b6 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -6245,6 +6245,9 @@ static int stmmac_setup_tc_block_cb(enum tc_setup_typ= e type, void *type_data, struct stmmac_priv *priv =3D cb_priv; int ret =3D -EOPNOTSUPP; =20 + if (!netif_running(priv->dev)) + return -EINVAL; + if (!tc_cls_can_offload_and_chain0(priv->dev, type_data)) return ret; =20 --=20 2.34.1 From nobody Fri Oct 3 19:12:04 2025 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.14]) (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 2C1D3334375; Tue, 26 Aug 2025 11:28:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.14 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756207702; cv=none; b=InTRur+mj0w98uJpxRq1HGOyPnrWTod/AeLqccaOKcY+4oNSnRRkx61pOsWQdnRdNIHzaieH2TWKZGg/ayhCSgVU32eCxYZyCOIWdJShSZ+w7qCwP8PokKZirkvFiC147T0106TryAsQgOdCvpS5MBTpatPblx2Q8gSgcx8hpvw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756207702; c=relaxed/simple; bh=nv4QcLuZQQCjp8kTJkT5bO5LjWqekXnB5tBaUYryBaE=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=PdUmZ56qB+iPX3rL2J57YyOeHTDZ7uIv+ZKktaDuVLcDpNScHMJllsobKrorMxVwNCt9fB+J6kBAaUpglnshoHIXquR4Xd6aesQFt4uLzvWkGf2J3ZtCl4X+IlMT+RRuJXiJQYH2V9/DBC/bBeIwAEzyDCtOO7exZ7Fyt1xN10c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=Ad1zxpXY; arc=none smtp.client-ip=198.175.65.14 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="Ad1zxpXY" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1756207702; x=1787743702; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=nv4QcLuZQQCjp8kTJkT5bO5LjWqekXnB5tBaUYryBaE=; b=Ad1zxpXYoew5R0Db/6ar+6eTSMrCHWGitFS91aMarggGsiQCXiHBWQM2 4bP+e20QlMg/VunFHlf3Q9U2ky0tJ+zdlAVNw/CAMr83t766AAq4Easb8 Bq7hWpkL/8O9dMk8pETZKfsqJ753SwXK+CI+1/64BqtkQsygqS2d6CIa1 hG1HW3aSGgNpmSjjGszkzyAnWMnMx4YNWLtZmMZgw9gNlG7vme8qJh0zD N6WzRCh1fSSWgqkXYLeuf0CNVqLIyVPtfRZhyMmvL69yp0EzGD8yohV4F Ozile0MXq6EnXLlDi0qh0KChvtjlh+Fz0ZS3RHNuoNJlbSRJGgJMhFAwY g==; X-CSE-ConnectionGUID: x3aq9Al6SLOq/5RjKSjd2Q== X-CSE-MsgGUID: nrkduwpBR0SL9QFxqoFhGw== X-IronPort-AV: E=McAfee;i="6800,10657,11531"; a="62269284" X-IronPort-AV: E=Sophos;i="6.17,312,1747724400"; d="scan'208";a="62269284" Received: from orviesa003.jf.intel.com ([10.64.159.143]) by orvoesa106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Aug 2025 04:28:22 -0700 X-CSE-ConnectionGUID: 5vOBlKTFRLahY/tT/CgV4w== X-CSE-MsgGUID: cP7xnXONRRKd+mBUTUGcpg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.18,214,1751266800"; d="scan'208";a="173725815" Received: from gklab-kleszczy-dev.igk.intel.com ([10.102.25.215]) by orviesa003.jf.intel.com with ESMTP; 26 Aug 2025 04:28:18 -0700 From: Konrad Leszczynski To: davem@davemloft.net, andrew+netdev@lunn.ch, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cezary.rojewski@intel.com, sebastian.basierski@intel.com, Karol Jurczenia , Konrad Leszczynski Subject: [PATCH net-next 4/7] net: stmmac: enable ARP Offload on mac_link_up() Date: Tue, 26 Aug 2025 13:32:44 +0200 Message-Id: <20250826113247.3481273-5-konrad.leszczynski@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250826113247.3481273-1-konrad.leszczynski@intel.com> References: <20250826113247.3481273-1-konrad.leszczynski@intel.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: Karol Jurczenia Add Address Resolution Protocol (ARP) Offload support in stmmac_mac_link_up() to enable ARP Offload beside the selftests. Introduce STMMAC_FLAG_ARP_OFFLOAD_EN flag, which is used to enable the feature with the stmmac_set_arp_offload(). Reviewed-by: Konrad Leszczynski Reviewed-by: Sebastian Basierski Signed-off-by: Karol Jurczenia --- .../net/ethernet/stmicro/stmmac/stmmac_main.c | 17 +++++++++++++++++ include/linux/stmmac.h | 1 + 2 files changed, 18 insertions(+) diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/ne= t/ethernet/stmicro/stmmac/stmmac_main.c index 9cf7f85c10b6..e000dc7f0349 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -39,6 +39,7 @@ #include #include #include +#include #include #include #include @@ -963,6 +964,8 @@ static void stmmac_mac_link_up(struct phylink_config *c= onfig, bool tx_pause, bool rx_pause) { struct stmmac_priv *priv =3D netdev_priv(to_net_dev(config->dev)); + struct in_device *in_dev; + struct in_ifaddr *ifa; unsigned int flow_ctrl; u32 old_ctrl, ctrl; int ret; @@ -1075,6 +1078,20 @@ static void stmmac_mac_link_up(struct phylink_config= *config, =20 if (priv->plat->flags & STMMAC_FLAG_HWTSTAMP_CORRECT_LATENCY) stmmac_hwtstamp_correct_latency(priv, priv); + + if (priv->plat->flags & STMMAC_FLAG_ARP_OFFLOAD_EN) { + in_dev =3D in_dev_get(priv->dev); + if (!in_dev) + return; + + ifa =3D in_dev->ifa_list; + if (!ifa) + return; + + stmmac_set_arp_offload(priv, priv->hw, true, + ntohl(ifa->ifa_address)); + in_dev_put(in_dev); + } } =20 static void stmmac_mac_disable_tx_lpi(struct phylink_config *config) diff --git a/include/linux/stmmac.h b/include/linux/stmmac.h index 26ddf95d23f9..aae522f37710 100644 --- a/include/linux/stmmac.h +++ b/include/linux/stmmac.h @@ -185,6 +185,7 @@ struct dwmac4_addrs { #define STMMAC_FLAG_EN_TX_LPI_CLOCKGATING BIT(11) #define STMMAC_FLAG_EN_TX_LPI_CLK_PHY_CAP BIT(12) #define STMMAC_FLAG_HWTSTAMP_CORRECT_LATENCY BIT(13) +#define STMMAC_FLAG_ARP_OFFLOAD_EN BIT(14) =20 struct plat_stmmacenet_data { int bus_id; --=20 2.34.1 From nobody Fri Oct 3 19:12:04 2025 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.14]) (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 C433C34A323; Tue, 26 Aug 2025 11:28:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.14 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756207705; cv=none; b=hcln1GYSW+ECKnTaY/P1iyKF3wrXiaH+RPI1NuL8mimCn+dm5Fnapw8Uq7Kku/wO9ZRqSeK2P83VdFklIGT/ydm09vYUu6CMx3HCI1w0PC5ZyvcuXnDOL5kFhpY6+jYSIBblaSjoRSYCRMgr2klpEdYgmVl2BoDERViurOLUpHU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756207705; c=relaxed/simple; bh=QVZZS4EaKoeW1P1dljej9T+AcX0xYWAlp0bsj+bzMc8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=PqUXH0mR4JzR2/z+Hrdx2i8ln66/t6uaAXAx2ZsKzmre81KAj61T6j36xe3kOv4WhLGg+pXBjV/Xu0+CaYpT1VKHB9Xpz/s2dN1LR+z58phNJcqwuNZ8SN1W5JoUhCDftSqv+qVJv5AArC/K3ODQ9Q3/L7EbTeVqMmm2TSNMioU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=IYFxS+08; arc=none smtp.client-ip=198.175.65.14 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="IYFxS+08" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1756207704; x=1787743704; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=QVZZS4EaKoeW1P1dljej9T+AcX0xYWAlp0bsj+bzMc8=; b=IYFxS+08KketiBYgo1SfmqYip/MMA3jO+RVwu8+OYSJMLlyYZSqMX4y6 GHA9hoP/b40eU2z3UqnN/Ry1iK7d/HDVxkbxibwgWFxAd1Fzzp6e/D3Y0 E8IGMFcObCZDaMKRvlo8Xe3SzBgu+HshdSc0kQytUiu8tDWzKhaxGxNpr ZMxGa4w6PSqa9citMV8sJicmui0IkAInTaBmFMhM6zhfXK8+h8VgHh05n fMdzH40A8dflSz0RUayT09HqmO49PCtSDpAnlaFPMSkE1Y0B3hVn+wLsK 8Ea9ue9LdH82LIcIUZafPvnHLR312OAfufx4nwYIZ6NmRubS2hft2RaHa w==; X-CSE-ConnectionGUID: Rr78bWwbSvyzZ8iyBpD1/Q== X-CSE-MsgGUID: CLj+21msRzq093cUv39c7w== X-IronPort-AV: E=McAfee;i="6800,10657,11531"; a="62269292" X-IronPort-AV: E=Sophos;i="6.17,312,1747724400"; d="scan'208";a="62269292" Received: from orviesa003.jf.intel.com ([10.64.159.143]) by orvoesa106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Aug 2025 04:28:24 -0700 X-CSE-ConnectionGUID: M2VEiX2LT6+6NrHvRnYJPA== X-CSE-MsgGUID: rGN5pbGbRtKMC2KiXrj69g== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.18,214,1751266800"; d="scan'208";a="173725821" Received: from gklab-kleszczy-dev.igk.intel.com ([10.102.25.215]) by orviesa003.jf.intel.com with ESMTP; 26 Aug 2025 04:28:21 -0700 From: Konrad Leszczynski To: davem@davemloft.net, andrew+netdev@lunn.ch, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cezary.rojewski@intel.com, sebastian.basierski@intel.com, Karol Jurczenia , Konrad Leszczynski Subject: [PATCH net-next 5/7] net: stmmac: set TE/RE bits for ARP Offload when interface down Date: Tue, 26 Aug 2025 13:32:45 +0200 Message-Id: <20250826113247.3481273-6-konrad.leszczynski@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250826113247.3481273-1-konrad.leszczynski@intel.com> References: <20250826113247.3481273-1-konrad.leszczynski@intel.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: Karol Jurczenia When the network interface is brought down and ARP Offload is enabled, set the TE (Transmitter Enable) and RE (Receiver Enable) bits. Ensure that the Network Interface Card (NIC) can continue handling ARP responses in hardware even when the interface is down. Reviewed-by: Konrad Leszczynski Reviewed-by: Sebastian Basierski Signed-off-by: Karol Jurczenia --- drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/ne= t/ethernet/stmicro/stmmac/stmmac_main.c index e000dc7f0349..3823432b16f1 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -949,7 +949,9 @@ static void stmmac_mac_link_down(struct phylink_config = *config, { struct stmmac_priv *priv =3D netdev_priv(to_net_dev(config->dev)); =20 - stmmac_mac_set(priv, priv->ioaddr, false); + if (!(priv->plat->flags & STMMAC_FLAG_ARP_OFFLOAD_EN)) + stmmac_mac_set(priv, priv->ioaddr, false); + if (priv->dma_cap.eee) stmmac_set_eee_pls(priv, priv->hw, false); =20 @@ -4178,6 +4180,10 @@ static int stmmac_release(struct net_device *dev) /* Release and free the Rx/Tx resources */ free_dma_desc_resources(priv, &priv->dma_conf); =20 + /* Disable MAC Rx/Tx */ + stmmac_mac_set(priv, priv->ioaddr, priv->plat->flags & + STMMAC_FLAG_ARP_OFFLOAD_EN); + /* Powerdown Serdes if there is */ if (priv->plat->serdes_powerdown) priv->plat->serdes_powerdown(dev, priv->plat->bsp_priv); --=20 2.34.1 From nobody Fri Oct 3 19:12:04 2025 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.14]) (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 DB1753375A6; Tue, 26 Aug 2025 11:28:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.14 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756207708; cv=none; b=gDfKSaqfxsxo+UHBGFKdY9WfjtJjgAMuGrpAf5LYPRlnjAEwOLJd8OakmU10KMn4405oFer7PfjAkXCIKbk3Jb1qzzr61yQJELZQcHRWj7V4KyXat4c+wn4udqDPbYF80/T1FZHqZpd1krT0O1OQJ/9pp94tWXDTrn867q1OZ3E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756207708; c=relaxed/simple; bh=1Jm0cwLTCKnB9EkyLifhKOsXUPACbnGbOswAl/hPTCQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=V3HsflynMR16hbTjbnsAaYWwOSW2Ewh3Kfiz1m0Im340sIF4VUqCsmFDC7eHsiPQ3sIgYpyNSCE65uQa7KVpLi4mNvnGv0GYoLSARsPqZGi0RrZmppqyDLvu9yn0hvqZbO7yMKy5QSZPEprDxv1xhtgZQf/70icsrFV7R79lZzE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=SlHeT941; arc=none smtp.client-ip=198.175.65.14 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="SlHeT941" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1756207708; x=1787743708; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=1Jm0cwLTCKnB9EkyLifhKOsXUPACbnGbOswAl/hPTCQ=; b=SlHeT9413v6ZgiWEj8Yj4UF00JZ4F5yPrCKor/s6zTiuAdQ0YSoYWNnG UMzmZ33xuUEsfe+02HwVBUMudBoBSyzDWm8cCN6mIuQx8siggvC74xjQZ UT8GJZhLTaLqemNGbuneMsPmC5J9OB/8KDrZYwPvIxma4VtN+G3G6Ireb NXcap7KXiXr1kJaP3+aQc5q/mimoAhWPWgCmnLSOovhhMgsJarVU9rvMD w4A6ygrx59y8S3ws8XgiPYv4UWyyLOvtUrugxRNla0S/hF06UF5lRt+rE PhmLTNdzfGm62Mxk/CVBlY5dXlS2jh0TP8xCnIkC3zWXLbyqIdi+bf/6Y g==; X-CSE-ConnectionGUID: sW+CmwqxSXafZ8qaaae6IA== X-CSE-MsgGUID: CIeVU0BIRXKACyQmRCI/2A== X-IronPort-AV: E=McAfee;i="6800,10657,11531"; a="62269300" X-IronPort-AV: E=Sophos;i="6.17,312,1747724400"; d="scan'208";a="62269300" Received: from orviesa003.jf.intel.com ([10.64.159.143]) by orvoesa106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Aug 2025 04:28:27 -0700 X-CSE-ConnectionGUID: PNNKCDgMTvOaq9WYRS8crg== X-CSE-MsgGUID: /ypd5VqpRJmHAavn4JKgZw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.18,214,1751266800"; d="scan'208";a="173725833" Received: from gklab-kleszczy-dev.igk.intel.com ([10.102.25.215]) by orviesa003.jf.intel.com with ESMTP; 26 Aug 2025 04:28:24 -0700 From: Konrad Leszczynski To: davem@davemloft.net, andrew+netdev@lunn.ch, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cezary.rojewski@intel.com, sebastian.basierski@intel.com, Piotr Warpechowski , Karol Jurczenia , Konrad Leszczynski Subject: [PATCH net-next 6/7] net: stmmac: enhance VLAN protocol detection for GRO Date: Tue, 26 Aug 2025 13:32:46 +0200 Message-Id: <20250826113247.3481273-7-konrad.leszczynski@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250826113247.3481273-1-konrad.leszczynski@intel.com> References: <20250826113247.3481273-1-konrad.leszczynski@intel.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: Piotr Warpechowski Enhance protocol extraction in stmmac_has_ip_ethertype() by introducing MAC offset parameter and changing: __vlan_get_protocol() -> __vlan_get_protocol_offset() Add correct header length for VLAN tags, which enable Generic Receive Offload (GRO) in VLAN. Co-developed-by: Karol Jurczenia Signed-off-by: Karol Jurczenia Reviewed-by: Konrad Leszczynski Reviewed-by: Sebastian Basierski Signed-off-by: Piotr Warpechowski Reviewed-by: Simon Horman --- drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/ne= t/ethernet/stmicro/stmmac/stmmac_main.c index 3823432b16f1..5ef78fb3f900 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -4585,13 +4585,14 @@ static netdev_tx_t stmmac_tso_xmit(struct sk_buff *= skb, struct net_device *dev) */ static bool stmmac_has_ip_ethertype(struct sk_buff *skb) { - int depth =3D 0; + int depth =3D 0, hlen; __be16 proto; =20 - proto =3D __vlan_get_protocol(skb, eth_header_parse_protocol(skb), - &depth); + proto =3D __vlan_get_protocol_offset(skb, skb->protocol, + skb_mac_offset(skb), &depth); + hlen =3D eth_type_vlan(skb->protocol) ? VLAN_ETH_HLEN : ETH_HLEN; =20 - return (depth <=3D ETH_HLEN) && + return (depth <=3D hlen) && (proto =3D=3D htons(ETH_P_IP) || proto =3D=3D htons(ETH_P_IPV6)); } =20 --=20 2.34.1 From nobody Fri Oct 3 19:12:04 2025 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.14]) (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 9B6BA34DCE8; Tue, 26 Aug 2025 11:28:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.14 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756207711; cv=none; b=cJhBGWuAQd7SDZTRn58uILgVyDZbqzk8SHSQNI90O2GALluVw6Nzv0tx8vHCyLA7R4C5bD/uuyQogaOkpFQDut3uSZoQQ4Z/nDdCyx5d/jtA36BRrCHTt78OsttdN9gC0LzCZoN1PYX2yUr/UeSWLGd1ILGs9hLG2KJ1mIkOa4A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756207711; c=relaxed/simple; bh=7p5bPq0tooQv9SqVVvAnbRbgQhjadctsfaQ/sIlg3bM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=o7nUkySd6Ox/IHPeETLFJgfeJ7sqW1r37HflGRdaiKfeY4eALWtFuPZ+q3UJG7thkIBT8D67euC6sEJusab4AegPEoSA/RjmLjLnEVNTuoewBjovj6paauY51mBT0YFNQAGZ3JFNB1ZyhualquenUNLW6vt0rmVhtsrmEEHyfKw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=Dw5S2KUm; arc=none smtp.client-ip=198.175.65.14 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="Dw5S2KUm" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1756207710; x=1787743710; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=7p5bPq0tooQv9SqVVvAnbRbgQhjadctsfaQ/sIlg3bM=; b=Dw5S2KUmiI/pZlvhmZRkOYH955FwoLeU32XupIywIuENHsuxk/bJyFdb pg9D2hLI8/yt8llU1YAnOM/K7C5MKI7swKQqIx62PUg15qByp3nE7K4gi htBT9o0hwhHjgkRyGdds1SspKgAtWBQm3F45aS3UhG9vwr7rLn4OYKR/u qr5KwzLgL7h24HN+rfOiTqZhTJQjwSKBC8HibzyCiFb8fxYm6uHL41pRT dmpudiv9RwVpsXq1S04J5rJm69XYAUy2DAd6eDV94LlF87/pbbKQj/mEq PzyqyMsgCy4hlpwjHuEF1ZWvYJUgw8Sx4Cuwo6/bwdvEZGxW6VY49POkS A==; X-CSE-ConnectionGUID: DTnxAgiJT6G+opSVjJn1Bg== X-CSE-MsgGUID: X/mEDFTHRXiabv+VyyvrEg== X-IronPort-AV: E=McAfee;i="6800,10657,11531"; a="62269307" X-IronPort-AV: E=Sophos;i="6.17,312,1747724400"; d="scan'208";a="62269307" Received: from orviesa003.jf.intel.com ([10.64.159.143]) by orvoesa106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Aug 2025 04:28:30 -0700 X-CSE-ConnectionGUID: v9baOqRNQ0OkTebPyYsI4Q== X-CSE-MsgGUID: 8L0rUU45QRWsH/0SeuqWSw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.18,214,1751266800"; d="scan'208";a="173725846" Received: from gklab-kleszczy-dev.igk.intel.com ([10.102.25.215]) by orviesa003.jf.intel.com with ESMTP; 26 Aug 2025 04:28:27 -0700 From: Konrad Leszczynski To: davem@davemloft.net, andrew+netdev@lunn.ch, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, cezary.rojewski@intel.com, sebastian.basierski@intel.com, Karol Jurczenia , Konrad Leszczynski Subject: [PATCH net-next 7/7] net: stmmac: add TC flower filter support for IP EtherType Date: Tue, 26 Aug 2025 13:32:47 +0200 Message-Id: <20250826113247.3481273-8-konrad.leszczynski@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250826113247.3481273-1-konrad.leszczynski@intel.com> References: <20250826113247.3481273-1-konrad.leszczynski@intel.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: Karol Jurczenia Add missing Traffic Control (TC) offload for flower filters matching the IP EtherType (ETH_P_IP). Reviewed-by: Konrad Leszczynski Reviewed-by: Sebastian Basierski Signed-off-by: Karol Jurczenia Reviewed-by: Simon Horman --- drivers/net/ethernet/stmicro/stmmac/stmmac.h | 1 + .../net/ethernet/stmicro/stmmac/stmmac_tc.c | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac.h b/drivers/net/eth= ernet/stmicro/stmmac/stmmac.h index cda09cf5dcca..8397f2ac63fc 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac.h +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac.h @@ -206,6 +206,7 @@ enum stmmac_rfs_type { STMMAC_RFS_T_VLAN, STMMAC_RFS_T_LLDP, STMMAC_RFS_T_1588, + STMMAC_RFS_T_IP, STMMAC_RFS_T_MAX, }; =20 diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c b/drivers/net/= ethernet/stmicro/stmmac/stmmac_tc.c index 694d6ee14381..c5577652d6ed 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c @@ -239,6 +239,7 @@ static int tc_rfs_init(struct stmmac_priv *priv) priv->rfs_entries_max[STMMAC_RFS_T_VLAN] =3D 8; priv->rfs_entries_max[STMMAC_RFS_T_LLDP] =3D 1; priv->rfs_entries_max[STMMAC_RFS_T_1588] =3D 1; + priv->rfs_entries_max[STMMAC_RFS_T_IP] =3D 32; =20 for (i =3D 0; i < STMMAC_RFS_T_MAX; i++) priv->rfs_entries_total +=3D priv->rfs_entries_max[i]; @@ -777,6 +778,17 @@ static int tc_add_ethtype_flow(struct stmmac_priv *pri= v, stmmac_rx_queue_routing(priv, priv->hw, PACKET_PTPQ, tc); break; + case ETH_P_IP: + if (priv->rfs_entries_cnt[STMMAC_RFS_T_IP] >=3D + priv->rfs_entries_max[STMMAC_RFS_T_IP]) + return -ENOENT; + + entry->type =3D STMMAC_RFS_T_IP; + priv->rfs_entries_cnt[STMMAC_RFS_T_IP]++; + + stmmac_rx_queue_routing(priv, priv->hw, + PACKET_UPQ, tc); + break; default: netdev_err(priv->dev, "EthType(0x%x) is not supported", etype); return -EINVAL; @@ -800,7 +812,7 @@ static int tc_del_ethtype_flow(struct stmmac_priv *priv, =20 if (!entry || !entry->in_use || entry->type < STMMAC_RFS_T_LLDP || - entry->type > STMMAC_RFS_T_1588) + entry->type > STMMAC_RFS_T_IP) return -ENOENT; =20 switch (entry->etype) { @@ -814,6 +826,11 @@ static int tc_del_ethtype_flow(struct stmmac_priv *pri= v, PACKET_PTPQ, 0); priv->rfs_entries_cnt[STMMAC_RFS_T_1588]--; break; + case ETH_P_IP: + stmmac_rx_queue_routing(priv, priv->hw, + PACKET_UPQ, 0); + priv->rfs_entries_cnt[STMMAC_RFS_T_IP]--; + break; default: netdev_err(priv->dev, "EthType(0x%x) is not supported", entry->etype); --=20 2.34.1