From nobody Fri Apr 3 16:08:32 2026 Received: from GVXPR05CU001.outbound.protection.outlook.com (mail-swedencentralazon11013030.outbound.protection.outlook.com [52.101.83.30]) (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 3AD933B27EB; Tue, 24 Mar 2026 06:19:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.83.30 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774333175; cv=fail; b=jvCwTdQbl69z2ZKptiMhQHMHwAEy1NrAGXRfNOQcCEH/9oT91RPN1XThX2O6CRWjxM/q/PMFGvnrY17Ak+skOkm4KCvWw/bQ19ztZkIdOvlneQfiFsaMmGpqgfTxaodOPF4ao6LVwh6DeDMmkXvxMdLzMCvtBp8gzeIE8Fxi/QE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774333175; c=relaxed/simple; bh=TsM1d9LpRniQ9BMMXrC6lxKuIIhBYaJfoGCmvD7Zf8U=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=Xwp3YiiYWvTKd7kQjuIi9Kebd9f1GXsRGJ8pq7oWh1h0C6p4fzVgNH1d5ipblQjmfORxa5/A/uYCL16WWtgibGK7Q7ESmZFCjbiXXEPEZ9aESwAKXPMhJvcg4UK9+PKjg9cEU/diPA68w8rgLPjjnUt2VhhEll6czamPY8A6pWk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=iHWEQiXF; arc=fail smtp.client-ip=52.101.83.30 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="iHWEQiXF" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=PBjpO6s3BDd4x6PHSQeTT8W631jqxNksIQSI+Hu0CcdI8LIkqaR21sbRD6pXJJbdyBDeA7euNfQOfzsUhxHZg2y0YP5NaIzdlkR1aRLmczkNVencRjK2moBTxiXKhJeQfKetMwYdbAu+isjkBfZ6WvO0HKRwl/BU0mJdGFO+AqNkzyrkLjM49wqikFnhlreyyAOmj2tdnRujKt90BAN2HecOuq2xwjDHYcCOL8bAmpYQIZNszG2wRmuoVmshqsYSpi0gcfrK9OwaLrSFd+hirvzJsYy/tmytsdhfDr3tAa5GaBBFXj+ZFPD/VMKqG/FQgBTVg6qtbSinvVrkO8whqw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=1MNSZInjLtx3QPY6fpAmfhDr9zq0NRaBwyRNui4MGOY=; b=pYQ7ZPKW/oZ8yMtD4zZPst6rJn0+5OZVctCluB3TCEQxHOQDCk4OU3OSL/E2LZT3ub6/u0Qb6EKALN2ZznvKx02CxK2yNrakOXgF/XUq+MLIEU7CeQrIZ8TeaSST35UGgMApexRCR/O701DCqNT1La/NI+f59mWo+4OJGKXxiAMk0oOREG5F+ZWsbBAgBd4lp07v39RxnsJwfqsnVohQNLL+IKh3iy+qoP8KLYN0fILCAwkfSn6iHtgo1W7f339wjZMbybhSjtHCOcoSlL7QTxPQ8VVua2nvKXBoBucrVzjPP8Pnl2Xp2RxNgwMlURTopD0vJ7PaF4Ne7nkEmSMTlw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1MNSZInjLtx3QPY6fpAmfhDr9zq0NRaBwyRNui4MGOY=; b=iHWEQiXFhAHQ7bKzAX9h8nxGYeSRni1PdGAtKEI/tdM2Z03O3VoCbRLd9osjZe5zEKEZ2UTEaBGzGZXb0hTl9SO/9kHz/O7+aOXopVR/2i0mw283hfbe7Z5Eg7nwO8z3UPwLQ/SDqsAeyrlIrmAkSedcq7ISutXRe/b7ax1Nmmm/U/7LYB0waClH+uT5t0j688Jc9M6NnS6Z1MV9XeDblwiReUZzl/MJfviJBjJz+NerFJlWFIsIPUT0O70Dgmzd8qFdd5n3fgd5R9M96j2opqDkWLDgcOZq++qQcv6Qsi6GX4q8N9v/mKqVkHe6wS7IyyEwHpyX7J9p+A0HiEMxmg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB8510.eurprd04.prod.outlook.com (2603:10a6:102:211::7) by DU4PR04MB10960.eurprd04.prod.outlook.com (2603:10a6:10:585::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.25; Tue, 24 Mar 2026 06:19:05 +0000 Received: from PAXPR04MB8510.eurprd04.prod.outlook.com ([fe80::b476:c19a:24cd:3694]) by PAXPR04MB8510.eurprd04.prod.outlook.com ([fe80::b476:c19a:24cd:3694%3]) with mapi id 15.20.9723.030; Tue, 24 Mar 2026 06:19:26 +0000 From: Wei Fang To: claudiu.manoil@nxp.com, vladimir.oltean@nxp.com, xiaoning.wang@nxp.com, andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, linux@armlinux.org.uk, Frank.Li@nxp.com, horms@kernel.org, saikrishnag@marvell.com Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev Subject: [PATCH v5 RESEND net 1/3] net: enetc: reset PIR and CIR if they are not equal when initializing TX ring Date: Tue, 24 Mar 2026 14:21:19 +0800 Message-Id: <20260324062121.2745033-2-wei.fang@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260324062121.2745033-1-wei.fang@nxp.com> References: <20260324062121.2745033-1-wei.fang@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MA5PR01CA0225.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a01:1f3::18) To PAXPR04MB8510.eurprd04.prod.outlook.com (2603:10a6:102:211::7) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB8510:EE_|DU4PR04MB10960:EE_ X-MS-Office365-Filtering-Correlation-Id: 8539dbd1-9b40-487a-ac76-08de896d4c58 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|52116014|7416014|376014|19092799006|1800799024|366016|921020|38350700014|18002099003|22082099003|56012099003; X-Microsoft-Antispam-Message-Info: nvxPCnBnsw4r+0aXCxoqaxKBoiTbkGGJ6ovIGmNr/4YxT8ioX/8nlU9fk7mRrM5Xyy+KbneXmV0s7MJ5hAtfzdhcMDRNuT+f5y6S9svaaimO1zV6PDrqfv62R8iA6fS88dtnhcYqzgHJy1dPJKaSMU7sEaPDK6XEMZ6MghNCzOcLrUQ6j4ydvMb63UIy/+rAUAabF91d2EnlMGLa5nvDkxDLw9ktqz3z/aoYndKWBKEKPnJCkxRgeZ459BEP6mk65/scdsDk17eqXUkKlApSyn178LV51I+sOACuQqEGEMmuRfVrzrdvrnmjnJoEf1CBleNrqDqC7fNzXzCc6iqmlJMdW3Uyx7FFa7zLQGNzS7OwYFQcSVFWcCs2jaVq7a3mKYUjkeBzdN/Yrql5bxei/yoyt9Sb648EBlb1PKYvMA9pn1O3v3sXI2pnq+DViKRWFY8uXvY1WT/9mTOap+dqC3Q8gUIi9jZXi7IX7pHaAW05iVlP4EHopXxhkEys2BE6QIelly3kWzAqo0U+tSmSJuQ8vRlWceeoS0i5+6ybfLplFSQh7OMRUrWlyV5JK0cOev1cjlOaxFOgLIlrcSDCkFzJsxkNj4An2S3KfKsR0mS3hRAHZWPf7Z80ogSICTQ6o/t5HMFuYFyMRv9Y3AfXl9fyD9ENlnZ6qMyfpWCAMlOCxWlkQ1pPBosys5u6Eyhs3lwLEnvkMdk+LhXm+aNK+TAA/4/XItGQ5DiiSDE57diQAOU6/24hhHEbe2jOlIkCCJ57cRpm5GuJQtFBMSESO3he0V7NG2SuplL4UztMqjNsICDNsOYHY8VU1qlGO72d X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB8510.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(52116014)(7416014)(376014)(19092799006)(1800799024)(366016)(921020)(38350700014)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?bCffuDNHgL/bSiGu+7Ai4MSBxnTu6+5v4M/Ai4lrdOtg542gfSieV9FNATPr?= =?us-ascii?Q?jxThLWqubBV8HZfp8o1MnwIunV7VcVwsGrpod0s/XCAhwsSpwTwO18JJ2Spt?= =?us-ascii?Q?MA3kCHpXw+adFlwLC+Nb9bSW9iQdFXS3+lnhbez/2sicRkCi69Zm9n+36tME?= =?us-ascii?Q?sDEL+5eStmZL0yfTgi3ahaT94twIU5ox0ulLNUhKKXPDWKaMcGZjZYRX2zFW?= =?us-ascii?Q?FXtmcfk+Xs/RY3unc4HYQ6SZkGLrA0ytMiruRUKwMlCjvhhOi1BeRKpksdiw?= =?us-ascii?Q?kbwS+mxIBJS46udLQkqttoI0MVko0P6XX0S7oBFqs2CqfKswH6pNH5MZALgB?= =?us-ascii?Q?DE0X5O+ksQUN7IpUJJi1PNGFCYqnLqWxf2b9OV7STCwsV4VWBH8/UREpmdKZ?= =?us-ascii?Q?xAfgZuRWmswQckeiDqXqHq6TjNuyiJKQDu8o7ZDiYDK24ttVzSg/chltZYtD?= =?us-ascii?Q?tFlVkJftuQ4L+Q5TngpFaAac7IcEKVbJP1eutk4XJUQcaPy9h+Np/x9dsdOi?= =?us-ascii?Q?TfUaAQduBIdH9wIVRM5m/opjRMs1Q5TPnOBnazjvixkph543R0OKgNWmxmD1?= =?us-ascii?Q?jfhnu1fBjyJCrBicMfj1jGgrFIWM9Bk369G1h7eYKYU2EuLtxGY8mPmWBy5y?= =?us-ascii?Q?5qWqCOc1Bg0KO6+8VOcAxtvU0hacORm7jAJXKoaCOzWqtM1L+pbNjuD2IQ2U?= =?us-ascii?Q?WT462axClnWmyHzcnfegluE1Ft0N47y3U2kc6xQzlAIXwM0nL6SLh6M7xtm1?= =?us-ascii?Q?hodpXiULrXNZ9NlxBGpkPypeNvpJE+Tcbxfve/sjPb/6A7S/PK92IaN/VI78?= =?us-ascii?Q?jtXj9KQc6D6Ez5m/WL4WnK13vT+ior0cz3LwvmYfz4Q6IEcX4VZ2XpyG2lk3?= =?us-ascii?Q?VSyvEzSuWPcP+LJt5K2REWCj6dOllBg8rjviE6vTbOoT43DRRN3hjNxwzpmY?= =?us-ascii?Q?A0Mv4HjHLa43sAxirip6LCmHmeAqUpvFNG9ZGxjsuygtBrBuemS/JnsgW7T6?= =?us-ascii?Q?yMN9hF/4wq/za623XMEvXF2q11Mcz1Au02zbx/D3iRp4Wr/fczFKlCAmXeJv?= =?us-ascii?Q?HnNK91K+X8A/L4geno93JU+5kuLPSqJe7/PBr3uADv0U5kOkHMWf9u4SdQDD?= =?us-ascii?Q?VwCrFHBPL1n3mUqGCq5lmsVBANetlpwVtDAMb7DcyrJ6OqVr13uqW/x0JK2z?= =?us-ascii?Q?nRKbGs1RJTCPoEjY4RrbpQhDkQ+x9FvVbBgJnowdUChkbU1FAMxR3uVMZxau?= =?us-ascii?Q?OA5HSlQsM/QS6hVtAujW9alwmVwacNu6CutsDDRmD2sUM2I/MWRS9SvGt1wc?= =?us-ascii?Q?fpO7R/pOlsFc43U391LL0gxzpjisode1BpeLIPSiOw6+u4RQXGDVu4NHODBZ?= =?us-ascii?Q?PVKd3DT9PhoST+61HT4IgBPksOGty5ZGsj9WJowF8qM3eEGSth010gEOwtGw?= =?us-ascii?Q?d5fq+YUn2HdnAu8hvM1HWAteYGRU4hc6v1Oek6kI0zSrSvZgDCeVO/X7jkuX?= =?us-ascii?Q?sIRl4uRvn/9BpBG6HvBilzSUPCXYz8joX3bWaE0qWsWa143fjkw3kbA/rhm+?= =?us-ascii?Q?AmhCF1kSLy2+kjJQmQvTeLjP57E9ppQmuWqT+ucThJqwJGiLDCEOgyJCPCZA?= =?us-ascii?Q?F4JBOWbl3Gros9HC0Y/oxQDhylnzr/sfcmjr0SwLOGUkU3GigEm51JJnr5Z/?= =?us-ascii?Q?OvZEwhM6K6O9VpRgxKBXzKwji6su/aO9V/aketWh/+1QVKow9hqCGZDMC+6z?= =?us-ascii?Q?9rrCqvdkhQ=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8539dbd1-9b40-487a-ac76-08de896d4c58 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8510.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2026 06:19:26.3799 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: lpS2MCzYnorW+KiWXv7fpQ+Sr4A8hrjYsB2Kh1qFS0sKBwIdsgkl2Tmv5pMW+bk6jzXBhcXMPmZ0dpg6vJWRsg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR04MB10960 Content-Type: text/plain; charset="utf-8" Currently the driver does not reset the producer index register (PIR) and consumer index register (CIR) when initializing a TX BD ring. The driver only reads the PIR and CIR and initializes the software indexes. If the TX BD ring is reinitialized when it still contains unsent frames, its PIR and CIR will not be equal after the reinitialization. However, the BDs between CIR and PIR have been freed and become invalid and this can lead to a hardware malfunction, causing the TX BD ring will not work properly. For ENETC v4, it supports software to set the PIR and CIR, so the driver can reset these two registers if they are not equal when reinitializing the TX BD ring. Therefore, add this solution for ENETC v4. Note that this patch does not work for ENETC v1 because it does not support software to set the PIR and CIR. Fixes: 99100d0d9922 ("net: enetc: add preliminary support for i.MX95 ENETC = PF") Signed-off-by: Wei Fang Reviewed-by: Claudiu Manoil Reviewed-by: Simon Horman --- drivers/net/ethernet/freescale/enetc/enetc.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/freescale/enetc/enetc.c b/drivers/net/eth= ernet/freescale/enetc/enetc.c index a146ceaf2ed6..aa8a87124b10 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc.c +++ b/drivers/net/ethernet/freescale/enetc/enetc.c @@ -2578,6 +2578,7 @@ EXPORT_SYMBOL_GPL(enetc_free_si_resources); =20 static void enetc_setup_txbdr(struct enetc_hw *hw, struct enetc_bdr *tx_ri= ng) { + struct enetc_si *si =3D container_of(hw, struct enetc_si, hw); int idx =3D tx_ring->index; u32 tbmr; =20 @@ -2591,10 +2592,20 @@ static void enetc_setup_txbdr(struct enetc_hw *hw, = struct enetc_bdr *tx_ring) enetc_txbdr_wr(hw, idx, ENETC_TBLENR, ENETC_RTBLENR_LEN(tx_ring->bd_count)); =20 - /* clearing PI/CI registers for Tx not supported, adjust sw indexes */ + /* For ENETC v1, clearing PI/CI registers for Tx not supported, + * adjust sw indexes + */ tx_ring->next_to_use =3D enetc_txbdr_rd(hw, idx, ENETC_TBPIR); tx_ring->next_to_clean =3D enetc_txbdr_rd(hw, idx, ENETC_TBCIR); =20 + if (tx_ring->next_to_use !=3D tx_ring->next_to_clean && + !is_enetc_rev1(si)) { + tx_ring->next_to_use =3D 0; + tx_ring->next_to_clean =3D 0; + enetc_txbdr_wr(hw, idx, ENETC_TBPIR, 0); + enetc_txbdr_wr(hw, idx, ENETC_TBCIR, 0); + } + /* enable Tx ints by setting pkt thr to 1 */ enetc_txbdr_wr(hw, idx, ENETC_TBICR0, ENETC_TBICR0_ICEN | 0x1); =20 --=20 2.34.1 From nobody Fri Apr 3 16:08:32 2026 Received: from GVXPR05CU001.outbound.protection.outlook.com (mail-swedencentralazon11013030.outbound.protection.outlook.com [52.101.83.30]) (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 BC7DB3B3894; Tue, 24 Mar 2026 06:19:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.83.30 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774333179; cv=fail; b=Ub9olKnavQraxBP9XPyn/2GnMBnJBAkzlLPwVCNsqvbnodYXKDCFTfQ/gRYsq6AMRpLUJWFCUu+7bOjxqd9hRgzlgM3p3jvPnPs0SDSgltkkGx6wF98u07BusADXpadUMz3pnfKqTvF1Ab4F0rrhsXnpO3Gw4M0jPCmUJ+7iDPQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774333179; c=relaxed/simple; bh=Xggy+GLr1SaNCoXIyzIKQYa3si7mxqyK/GrEmlk+ecA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=PuKxVIOVf40cxETTnFACKghpeFBMkyOPUHV4tx9QY9iAHMGH13Upe2B38nWFxmiLVEwcVvE7w/l6UJmKFyzq2Bm4aksnVRKqp1tD7gy0gYbaOTshC1mHxwqG9734HJjatsOSHEf2LlW5LHUiIPFeY1wK7Ta8SkIOOyUFMeXcnpQ= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=djqqkFP+; arc=fail smtp.client-ip=52.101.83.30 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="djqqkFP+" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=PqaUraMbY1UKpFUkLRG+S2qkZ/VcVZO0LBox4QOj2FOZt7VxeDYZrujybVQOORx7/F3vhXohliA+ruKSdvJRkLilZ1T7QA50RXoZf/pMt/YmXNuOSOC4M6PkLlqrXxFmJVQeakQ0v0iQYJ9qNFToNONGTobDIsVb7cqfBj/KjWAMQcDk8CTdw4Q4NeHh6fxMVHBu3VynJFAJpL9UxShSdb4vwzZ9Gw7B0R2TccJkKigh3Bq6oCQRMgJnwu67qeKU7r+5QqGt3sTfFxjldWP19A8uQzBZNjkndXGiWVYDy8E2Fj3wEL6rRxMDmBnCPUnaDBei/TmsC4u9qnr+ERUWCA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=aaQpjJ1J1OOdmeURoI9+1GzptqrMzrF5uR+nLaNhOg8=; b=yyAhXIEV3pe5dG7wJr/40WklAkoSwBkdfyDzySaPeM9WLaZxAY5nlMGUqi92cLELByhtZy8ORBA/YAaYxZud3y6bwrRlc9BYcBT8i99I/868aAJPdQuSeEQRMUgOsF5rd2yceUKERNCZEEXSQgz7po3NUlS6oPhugzh+vQ7Ib83h+FGovtu8axkA2+AkYj+vFEqutKWtvG//l+1TUeb9WVy5EnCsHzp4lzJkG3XBfu2btkI0hi4NPFBtKc7NLbp5bNfgcQvcOkaN7Qsw1Bnir8D8wvxl/9ej7eJ8kzAdn8RlZy1g1rgXDMz5pE99n14hSWKThW9vAxrr+4CdiFhXqA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=aaQpjJ1J1OOdmeURoI9+1GzptqrMzrF5uR+nLaNhOg8=; b=djqqkFP+l2f9Uco2wAdg2YWrULAEQkw8H5etf2P/sCafbX/iOCedE8LxiEpL8owHEaFjkDDNwSEezEHs2XKVI/lP9p+4tGdF7/1/Z4e+Pu3ngvi5QyTCVql8QhEMmLfSln2fKfaKmLhwNhZVwXS+3mmGe2i7/ydjLaS0y2FvF+hQ4my/QjFrUm/o0x7Nwwg6Ins08VC0pLPFQ4sq3d2cfdoLdyuSDmGuXG1TftI+7f583RXrW94Klhumt3B+VKv6DFYsmER3jdJMxS3C3iLV9tqlV6FiZtw6TZ6zkEwhRyTRa7Ju+hdlIK2czhTw6kPuvznTttbBjSFwlMjNP12HJg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB8510.eurprd04.prod.outlook.com (2603:10a6:102:211::7) by DU4PR04MB10960.eurprd04.prod.outlook.com (2603:10a6:10:585::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.25; Tue, 24 Mar 2026 06:19:10 +0000 Received: from PAXPR04MB8510.eurprd04.prod.outlook.com ([fe80::b476:c19a:24cd:3694]) by PAXPR04MB8510.eurprd04.prod.outlook.com ([fe80::b476:c19a:24cd:3694%3]) with mapi id 15.20.9723.030; Tue, 24 Mar 2026 06:19:31 +0000 From: Wei Fang To: claudiu.manoil@nxp.com, vladimir.oltean@nxp.com, xiaoning.wang@nxp.com, andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, linux@armlinux.org.uk, Frank.Li@nxp.com, horms@kernel.org, saikrishnag@marvell.com Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev Subject: [PATCH v5 RESEND net 2/3] net: enetc: add graceful stop to safely reinitialize the TX Ring Date: Tue, 24 Mar 2026 14:21:20 +0800 Message-Id: <20260324062121.2745033-3-wei.fang@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260324062121.2745033-1-wei.fang@nxp.com> References: <20260324062121.2745033-1-wei.fang@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MA5PR01CA0225.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a01:1f3::18) To PAXPR04MB8510.eurprd04.prod.outlook.com (2603:10a6:102:211::7) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB8510:EE_|DU4PR04MB10960:EE_ X-MS-Office365-Filtering-Correlation-Id: ac491c1b-9bb9-4927-10cb-08de896d4f6d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|52116014|7416014|376014|19092799006|1800799024|366016|921020|38350700014|18002099003|22082099003|56012099003; X-Microsoft-Antispam-Message-Info: ZeSx0Me0ZN3z7bSOvz1yVIt8yghB1MK1Zrzh1nHWuYoYcstgL4HLELXgXBANe430pYvwNL6DigQt0hHKwCKy6C4O++GHqp3Az/fpyt4+Ivn+xa8gic1BrByadSO4ec2uiJZnKJoky0B/SkKnqdAh+mrWmURs6KmKwwwoDl5ROObw6YkVm+UNKdrUeKUZQdyD90PZeLuBrfBloFPZO91pzQWlG0Uff7fkSY5sZy+yeZkgPxVFSceGzJcALPaw+55UzT2qiRp5ObOqZLk7CegnESQA/8LYYaPRhCjcOWAT7/jm08DnJkszHiIbvP3K9wOwZkkHdkNg0Mnrz0WFqg0ec0gRIU0MfDB6OsfIGnfd9etHP3bHiLvkP+i16WV7PFFogZkKUWUrmOmUR2hRE62MoG9j9cIXpw+UEJP6m4NvZRCDqHLQbGmIHfDUcTFtETnypffSvzW0T0rHo6p2FBta/C98H3Yy0Nxmfd9m4wbPbl3f71P5Fh7zo8sPFxm9c2O0BC5Gt7CAM+Mc+tc8t1QjCR6FuG9gmBflM63wetRAY85o3IOLPSZSTeQbncDZQdJxdANDpwn3DIuWP+JuBDq/7JzCrMM0P2T7kFQw7W/9YKWWk/QpQbxpkEIa6TO3EMXw5WZmwSVQD9hCm2wizI5bzddS3T27zU0L9bUxfCDh1M/r6NQa2sNAleBhw+xPQRGR4gbfBbeQSx65dOXFXwraGel+fihdZz9u7dNO9e4sA6OWovMAdVT/bM2e1+y6vqajj0OJ51foZKYYgbwvQm6wodCRK/trYbZj6yMKSNH/F5KF2yEe/gM62r7Gm03jdZLL X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB8510.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(52116014)(7416014)(376014)(19092799006)(1800799024)(366016)(921020)(38350700014)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?6waP0yKGKPTvvW+IdxRcICx1o5aHIFxZ4+3zaAVDB7Ck42P2m9BxuV2ppbWb?= =?us-ascii?Q?lx/+p68/Nst4IS8uZVEuC3vjbXIZXtxtDCF+vxFUk7bATk6b9Hcpr2RctrKz?= =?us-ascii?Q?N9dJjkVl9v8QbJsDigTl5djVZUP0aVi90MyljTAtYZeA1DEpGK71xu5Dv7TT?= =?us-ascii?Q?PrPZroZFDq4glAPn0lw+CLcQExBtzENnOEzKeKwdWaGQ+IzSJf4C0RvOXb0t?= =?us-ascii?Q?+SVeqgP83w2xtZkbuD1ftgywT3mCvX5fAC9EwsCN7ksoTvYBFkmSEIUSTjoT?= =?us-ascii?Q?SUhAoIguaB+y7BAlbLicgWJgAkyF06dg0hFnKkpg1+o7wL/wDgK/vBVpr+d6?= =?us-ascii?Q?yFxeWPvGwYgLzqzSAv6PlfhxBrssSguLS/h2M3B3yllk9SjFAlTMm4taXzbp?= =?us-ascii?Q?VmT3XbPn5eaJvD4EHgMm42kFPDc1GKsw14ZMBjj3jAaSf+DJ8VOvid2Wxw4Q?= =?us-ascii?Q?R35b19ixpfSkk5m1P1CgN+wd7GePCUgmRcHJWsglrXvqi82hnCmTEZWjkoaz?= =?us-ascii?Q?dMq3ubrvwONzWA/GaAMpHQ+j6bw9bqEXuING43LOkMTLI0dcp+Cw5VkBSgwA?= =?us-ascii?Q?CMXoQeFkfxiZunJiYgkfFny58PSv8cPUMeF9e/x7mFXGLZ+Bja1TGxZUT6Av?= =?us-ascii?Q?G8kYpv5TMjGuu9sLxFfexAUmme6fO656D3FfkBT0hU2dwlstprjSegU5zFsR?= =?us-ascii?Q?F90/s1niAtSaVZNKoHaFjtQZwbKttxTYTDNN7tDI7dK8yDK3NdQL/+mfCqMp?= =?us-ascii?Q?aFUp6JkfL3aOSKF9jkevD6YB7d+JJ4b0vTLLAu/J/rfrXCYtSgFnKVw3vmS8?= =?us-ascii?Q?+KzRr7qdL66zUo8g8WrJRSe7MEqQuPQXQArkEjQBMNbiJ66oMMnUPNxgNtof?= =?us-ascii?Q?j07UY147noL55g1F++PrL65w5IX7It1b406w5K0Rk8zHWA2H+a7RgE7iJjib?= =?us-ascii?Q?0j0H4reWIFQ3sP+tH48daQv2KT12LHcSBZZ0AXB8CMZbOnmOPjFIQIfitbBA?= =?us-ascii?Q?W6Uuy4SedRN+Uk7ujS4f48ZG6oXQSBhau438w6k25nSQ2WCWJdPgkaE2QRls?= =?us-ascii?Q?qXCLED9g/hzWhbluDQjfHB97cThmQvXhYiYzgReZv67JGMdiwbYhpaGjCgfi?= =?us-ascii?Q?ef0awTytst018+r/2xP7iHRgCM3OsdWC/zUyo7o4lblpMmtbPg3kk+5SzHqW?= =?us-ascii?Q?AKY1t1OzestwGKqfLHH45g+Aglw3NGDvZXWQ0+weFzY3KAb7fQRTkuSyrDyT?= =?us-ascii?Q?2/x2q7hwqvT6/DYCVOVb3kLk+Y1U2Dpb9Fqm45eTPekWiS/GY4acxnwbLeDv?= =?us-ascii?Q?l4Q8apnzlqMi5n956KIcBlESW43MaVt9Q9NjZXzHvSuc0NUJqZN/ebHy2fMZ?= =?us-ascii?Q?5bhxAXVycIZBR9FWR5gvbGqmJrB5l24u/x3Tve/8+Dy/YWVn+/kQO8L5dg6E?= =?us-ascii?Q?DpmK+WiJzjfMzQ7qq2O+1luaq7izotg6SoeD+eawETnmaKNLj9NvU4suOa6g?= =?us-ascii?Q?sR3ODx/8+WsJQn+0Q0HZhIMFRnP3YS/l79q3Y20dodjsWsBqvbRmyZW/fdOL?= =?us-ascii?Q?QZy0xxM6+mxu7T+eZZuomEiqdKfdcta6YBSyIIUYaHE8MXvJ2KsVtUnrzf1m?= =?us-ascii?Q?bF6+vsZ3oMNKJeq56Qxe+w1n55oq8rNReSl6Y0MkUiIgJHqgXz6CtQnsg3kJ?= =?us-ascii?Q?7l85kyZ/tqDbi7wXn+G3674q7YpGBPqUCSQ1w5GDgsf06kCmKKqY4qAu0sN3?= =?us-ascii?Q?+36Kd3FMoQ=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: ac491c1b-9bb9-4927-10cb-08de896d4f6d X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8510.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2026 06:19:31.5013 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: vcy/RrKWNOsnOo8O1E3S7A+KBhcHNQXFL9mbCv3vuzoT4c98kf7+fJI4kdawFr8koPGGsQ8TyDUjs59aJu4hBQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR04MB10960 Content-Type: text/plain; charset="utf-8" For ENETC v4, the PIR and CIR will be reset if they are not equal when reinitializing the TX BD ring. However, resetting the PIR and CIR alone is insufficient. When a link-down event occurs while the TX BD ring is transmitting frames, subsequent reinitialization of the TX BD ring may cause it to malfunction. For example, the below steps can reproduce the problem. 1. Unplug the cable when the TX BD ring is busy transmitting frames. 2. Disable the network interface (ifconfig eth0 down). 3. Re-enable the network interface (ifconfig eth0 up). 4. Plug in the cable, the TX BD ring may fail to transmit packets. When the link-down event occurs, enetc4_pl_mac_link_down() only clears PMa_COMMAND_CONFIG[TX_EN] to disable MAC transmit data path. It doesn't set PORT[TXDIS] to 1 to flush the TX BD ring. Therefore, reinitializing the TX BD ring at this point is unsafe. To safely reinitialize the TX BD ring after a link-down event, we checked with the NETC IP team, a proper Ethernet MAC graceful stop is necessary. Therefore, add the Ethernet MAC graceful stop to the link-down event handler enetc4_pl_mac_link_down(). Fixes: 99100d0d9922 ("net: enetc: add preliminary support for i.MX95 ENETC = PF") Signed-off-by: Wei Fang Reviewed-by: Claudiu Manoil Reviewed-by: Simon Horman --- .../net/ethernet/freescale/enetc/enetc4_hw.h | 11 ++ .../net/ethernet/freescale/enetc/enetc4_pf.c | 111 +++++++++++++++--- 2 files changed, 108 insertions(+), 14 deletions(-) diff --git a/drivers/net/ethernet/freescale/enetc/enetc4_hw.h b/drivers/net= /ethernet/freescale/enetc/enetc4_hw.h index 3ed0f7a02767..719c88ceb801 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc4_hw.h +++ b/drivers/net/ethernet/freescale/enetc/enetc4_hw.h @@ -134,6 +134,12 @@ =20 /* Port operational register */ #define ENETC4_POR 0x4100 +#define POR_TXDIS BIT(0) +#define POR_RXDIS BIT(1) + +/* Port status register */ +#define ENETC4_PSR 0x4104 +#define PSR_RX_BUSY BIT(1) =20 /* Port traffic class a transmit maximum SDU register */ #define ENETC4_PTCTMSDUR(a) ((a) * 0x20 + 0x4208) @@ -173,6 +179,11 @@ /* Port internal MDIO base address, use to access PCS */ #define ENETC4_PM_IMDIO_BASE 0x5030 =20 +/* Port MAC 0/1 Interrupt Event Register */ +#define ENETC4_PM_IEVENT(mac) (0x5040 + (mac) * 0x400) +#define PM_IEVENT_TX_EMPTY BIT(5) +#define PM_IEVENT_RX_EMPTY BIT(6) + /* Port MAC 0/1 Pause Quanta Register */ #define ENETC4_PM_PAUSE_QUANTA(mac) (0x5054 + (mac) * 0x400) =20 diff --git a/drivers/net/ethernet/freescale/enetc/enetc4_pf.c b/drivers/net= /ethernet/freescale/enetc/enetc4_pf.c index 689b9f13c5eb..53cecbb23a97 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc4_pf.c +++ b/drivers/net/ethernet/freescale/enetc/enetc4_pf.c @@ -444,20 +444,11 @@ static void enetc4_set_trx_frame_size(struct enetc_pf= *pf) enetc4_pf_reset_tc_msdu(&si->hw); } =20 -static void enetc4_enable_trx(struct enetc_pf *pf) -{ - struct enetc_hw *hw =3D &pf->si->hw; - - /* Enable port transmit/receive */ - enetc_port_wr(hw, ENETC4_POR, 0); -} - static void enetc4_configure_port(struct enetc_pf *pf) { enetc4_configure_port_si(pf); enetc4_set_trx_frame_size(pf); enetc_set_default_rss_key(pf); - enetc4_enable_trx(pf); } =20 static int enetc4_init_ntmp_user(struct enetc_si *si) @@ -801,15 +792,105 @@ static void enetc4_set_tx_pause(struct enetc_pf *pf,= int num_rxbdr, bool tx_paus enetc_port_wr(hw, ENETC4_PPAUOFFTR, pause_off_thresh); } =20 -static void enetc4_enable_mac(struct enetc_pf *pf, bool en) +static void enetc4_mac_wait_tx_empty(struct enetc_si *si, int mac) +{ + u32 val; + + if (read_poll_timeout(enetc_port_rd, val, + val & PM_IEVENT_TX_EMPTY, + 100, 10000, false, &si->hw, + ENETC4_PM_IEVENT(mac))) + dev_warn(&si->pdev->dev, + "MAC %d TX is not empty\n", mac); +} + +static void enetc4_mac_tx_graceful_stop(struct enetc_pf *pf) +{ + struct enetc_hw *hw =3D &pf->si->hw; + struct enetc_si *si =3D pf->si; + u32 val; + + val =3D enetc_port_rd(hw, ENETC4_POR); + val |=3D POR_TXDIS; + enetc_port_wr(hw, ENETC4_POR, val); + + enetc4_mac_wait_tx_empty(si, 0); + if (si->hw_features & ENETC_SI_F_QBU) + enetc4_mac_wait_tx_empty(si, 1); + + val =3D enetc_port_mac_rd(si, ENETC4_PM_CMD_CFG(0)); + val &=3D ~PM_CMD_CFG_TX_EN; + enetc_port_mac_wr(si, ENETC4_PM_CMD_CFG(0), val); +} + +static void enetc4_mac_tx_enable(struct enetc_pf *pf) { + struct enetc_hw *hw =3D &pf->si->hw; struct enetc_si *si =3D pf->si; u32 val; =20 val =3D enetc_port_mac_rd(si, ENETC4_PM_CMD_CFG(0)); - val &=3D ~(PM_CMD_CFG_TX_EN | PM_CMD_CFG_RX_EN); - val |=3D en ? (PM_CMD_CFG_TX_EN | PM_CMD_CFG_RX_EN) : 0; + val |=3D PM_CMD_CFG_TX_EN; + enetc_port_mac_wr(si, ENETC4_PM_CMD_CFG(0), val); + + val =3D enetc_port_rd(hw, ENETC4_POR); + val &=3D ~POR_TXDIS; + enetc_port_wr(hw, ENETC4_POR, val); +} + +static void enetc4_mac_wait_rx_empty(struct enetc_si *si, int mac) +{ + u32 val; + + if (read_poll_timeout(enetc_port_rd, val, + val & PM_IEVENT_RX_EMPTY, + 100, 10000, false, &si->hw, + ENETC4_PM_IEVENT(mac))) + dev_warn(&si->pdev->dev, + "MAC %d RX is not empty\n", mac); +} + +static void enetc4_mac_rx_graceful_stop(struct enetc_pf *pf) +{ + struct enetc_hw *hw =3D &pf->si->hw; + struct enetc_si *si =3D pf->si; + u32 val; + + if (si->hw_features & ENETC_SI_F_QBU) { + val =3D enetc_port_rd(hw, ENETC4_PM_CMD_CFG(1)); + val &=3D ~PM_CMD_CFG_RX_EN; + enetc_port_wr(hw, ENETC4_PM_CMD_CFG(1), val); + enetc4_mac_wait_rx_empty(si, 1); + } + + val =3D enetc_port_rd(hw, ENETC4_PM_CMD_CFG(0)); + val &=3D ~PM_CMD_CFG_RX_EN; + enetc_port_wr(hw, ENETC4_PM_CMD_CFG(0), val); + enetc4_mac_wait_rx_empty(si, 0); + + if (read_poll_timeout(enetc_port_rd, val, + !(val & PSR_RX_BUSY), + 100, 10000, false, hw, + ENETC4_PSR)) + dev_warn(&si->pdev->dev, "Port RX busy\n"); + + val =3D enetc_port_rd(hw, ENETC4_POR); + val |=3D POR_RXDIS; + enetc_port_wr(hw, ENETC4_POR, val); +} + +static void enetc4_mac_rx_enable(struct enetc_pf *pf) +{ + struct enetc_hw *hw =3D &pf->si->hw; + struct enetc_si *si =3D pf->si; + u32 val; + + val =3D enetc_port_rd(hw, ENETC4_POR); + val &=3D ~POR_RXDIS; + enetc_port_wr(hw, ENETC4_POR, val); =20 + val =3D enetc_port_mac_rd(si, ENETC4_PM_CMD_CFG(0)); + val |=3D PM_CMD_CFG_RX_EN; enetc_port_mac_wr(si, ENETC4_PM_CMD_CFG(0), val); } =20 @@ -853,7 +934,8 @@ static void enetc4_pl_mac_link_up(struct phylink_config= *config, enetc4_set_hd_flow_control(pf, hd_fc); enetc4_set_tx_pause(pf, priv->num_rx_rings, tx_pause); enetc4_set_rx_pause(pf, rx_pause); - enetc4_enable_mac(pf, true); + enetc4_mac_tx_enable(pf); + enetc4_mac_rx_enable(pf); } =20 static void enetc4_pl_mac_link_down(struct phylink_config *config, @@ -862,7 +944,8 @@ static void enetc4_pl_mac_link_down(struct phylink_conf= ig *config, { struct enetc_pf *pf =3D phylink_to_enetc_pf(config); =20 - enetc4_enable_mac(pf, false); + enetc4_mac_rx_graceful_stop(pf); + enetc4_mac_tx_graceful_stop(pf); } =20 static const struct phylink_mac_ops enetc_pl_mac_ops =3D { --=20 2.34.1 From nobody Fri Apr 3 16:08:32 2026 Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazon11013055.outbound.protection.outlook.com [40.107.159.55]) (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 BEAB53B47D0; Tue, 24 Mar 2026 06:19:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.159.55 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774333185; cv=fail; b=pj5m1kAElrUHnVMHZlBRMz2r+CPtRuWG6lg3onGKKt4COCNXCjr38zQP/pSIZACHj0z5/8eo9/PXExyqC+bW0wv8QIe6iKJY5tn9ZAtMCrDIZqYXv8YWl1FeW/qB3SHK+WiKE06KNsiEaO5PpfdSd89ON+o6nCLgz3gMh161f14= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774333185; c=relaxed/simple; bh=oYsYh+MnjxCpNyujS2j4KM6QbEZrJm0jBFlVIruk99A=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=k4kmOlzXbxK7bpxRV4vP1NZiTHBDhlyjwD5Szdyb8P5AglYlQBoNVdtY3El6QYIo+i1tgYUl42mmslEnVUvp7Jg7QgoKzWsyfz2q3KpgcY5hXTm6DOltBHvxeQebO6qdsPYVtQHa30TSF0mCNlCdv+nRWzDdNQsFFL/aORP/dnk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=UmFcaqA/; arc=fail smtp.client-ip=40.107.159.55 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="UmFcaqA/" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=STtqX0taD5Ab5XVwnACn/0keVgUOD8zT8xcQ38bN/LZi04UVEXIAG4DqpGfcNozzvv1vWOrCoEWWDX+hctHcMrfByPhOl5JQMgGcg2oyk9kEYjkr9uXG7twJUOaGdjr6uzkHEl0kh6u7U46EIHyfr9Z4zE9FizLRZWtq+dvx7EhItWgddMxjjmSOFKpoNHxYhU4LCChvAkL8lPzXPLwIDO0LU8UMxVMZOp2J67qUzRzhR8UEPm6zvcNFdYCD1RDEGhzKUS5XQnSNffjLD9vl/y91bsbwaO4OmW4SEtD3xud1R1HyZRltdzgKINHOVKPf894AsvIhqEdH8fZmCJeW3g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=fSoe7TA4ToFYeGLl9fYAcyXPQEeORSuFw1f60XjJclE=; b=ZkiejSIZWU0Hzw4fu+o0ZVRp/YgVWPY13ugTWNiMXwOKEJw479BLzo/G9CExGuxZ8dow0+fR8tm2V9ud3LEPBtn+ZLc//sXzexmJT/UvOtIreDYaBUjkxPpZGv1l9INYsifyg0Z6KZMZZVIOYH6jFhg0+ExVUELRuni8uxj0QQK5YIvotxSr5tF4SOujzF15icxxh1WjiUxPvj0F2jNg68193sfA+H2LYfzE1uWffuL2l0mWi3RV8Vo17oEC073Sn9i9W1+ALaOYCl+sRLDAOuWTSQaKsu179+h6VvIlj4eC/fW/npF+p8q0JNV3UFFEBPyRIq9Oe5UGqXtNy88/zg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=fSoe7TA4ToFYeGLl9fYAcyXPQEeORSuFw1f60XjJclE=; b=UmFcaqA/daJmgVfQjyyfTz7UcbFoduYal+94EIVJ/pFmi+/cESW/OAohN5caG23hjr6tvwvHZuccuj74e6Hq2zHRA5CeoSk/Z8BhOdmG+cPCi0eG3wKOa/eWsElEIMvtl5jeArowjDzwq9tdMvqGDf0bz3jfryG9ht3FeJoXeHyLp0VyIHt7oHdIH65PG2OadoOhSe4CYgggyNh+MTCG+AHSDKK6QyA6P56YddJYs30jEVWN2YkNwP1Nfl4gCA7K/MKWNd3vBdKeXqxg1VPEouT2Q0uGMBi1d3zHmMW0rJRo7h4HL32IFB/iR9f3tazumOFuxDW994s3Lf4RPHGiPA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB8510.eurprd04.prod.outlook.com (2603:10a6:102:211::7) by DU4PR04MB10960.eurprd04.prod.outlook.com (2603:10a6:10:585::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.25; Tue, 24 Mar 2026 06:19:15 +0000 Received: from PAXPR04MB8510.eurprd04.prod.outlook.com ([fe80::b476:c19a:24cd:3694]) by PAXPR04MB8510.eurprd04.prod.outlook.com ([fe80::b476:c19a:24cd:3694%3]) with mapi id 15.20.9723.030; Tue, 24 Mar 2026 06:19:37 +0000 From: Wei Fang To: claudiu.manoil@nxp.com, vladimir.oltean@nxp.com, xiaoning.wang@nxp.com, andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, linux@armlinux.org.uk, Frank.Li@nxp.com, horms@kernel.org, saikrishnag@marvell.com Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev Subject: [PATCH v5 RESEND net 3/3] net: enetc: do not access non-existent registers on pseudo MAC Date: Tue, 24 Mar 2026 14:21:21 +0800 Message-Id: <20260324062121.2745033-4-wei.fang@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260324062121.2745033-1-wei.fang@nxp.com> References: <20260324062121.2745033-1-wei.fang@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MA5PR01CA0225.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a01:1f3::18) To PAXPR04MB8510.eurprd04.prod.outlook.com (2603:10a6:102:211::7) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB8510:EE_|DU4PR04MB10960:EE_ X-MS-Office365-Filtering-Correlation-Id: 43c3af0f-e498-4a1a-2279-08de896d52f1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|52116014|7416014|376014|19092799006|1800799024|366016|921020|38350700014|18002099003|22082099003|56012099003; X-Microsoft-Antispam-Message-Info: rhedYQVAcx5vED8fK6ZzFTdirNynRjRWz2D4r6ahMl1NyNjTKMClbgqU06zNfNWEJwvCTqsSTtJ08fbSPlvRdIE+7DTedFr66hJjAHQzEJUvMdGyBGVk8J1Qhf+dZ+jtQN4J2x5W9LTWPW1Vhq6d/Dbpod7E1JD4oE7/F29+ckQKCg2Ltf0kkJHPJmdE8Hk+C8E5BEyCLdCpsnJmxMiEqGhyBu6bN29R1y6p/iQNTdqCDn+j4COLd2pjsbeVZz9quWe0X28b5MY0/qk1ydESN++ebFx83JsTLqZJQc26cRwdVcRTPE8tk96eyapt3Cou/4+pnG6Co/Elt4d/ntmXzjOFuma01GX2mfYvZlZNTvaX3Qdzh1JlqeTJit9OrlFnEWjitvpRynIrKIvtJlqASTMdzZcHmdn6jMZyyPRY2RtIxGRGmV5ZoKrPAu1kvH1cTSuA7GWKeVrmBI2uZrho8q6wCTfTP9GIDmCmCEY04os0rM4Ik+W4Sfs9baSjMqHJVdjKx0irCY4NZ2Q/cwib50TvquwldBxUG0QsH41MG+KE8/MPZoyZtz3eRIR/Uo7bS2IQfcQ5bBzpPynw1cJmC8J9aOM3mayMzdoVqPSKT7XkuOoydkASXx9ytYtmwDg/LU+8nFlX4I8REaPBkeNi/K46DyVDZCAgw0Wz7VXz4krfhxjIikbq9u2JuzPJXThBkGB34DoPs3BGyFLhpyTa/+JDRYKM9iwUH3VX05Kt+K/YDQNSFFiCcepoPi5298/w1JVzfbfby11ddqJgJYkiAND+GBP6KTCT1m0/2ACTNxAkqPUYxvuYrRUkqMvxTORo X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB8510.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(52116014)(7416014)(376014)(19092799006)(1800799024)(366016)(921020)(38350700014)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?XhfG5Qqvoz8yGatY43i7vTosMYHDw92XWXDwsmhBzR4TVcNUsvmN4ojgJ7XX?= =?us-ascii?Q?3Q3+kqRj7jrTlzhsxHhrbMtqsOcDZkmHoSygfLovpwvLyT3ay2gCKQURi1Sj?= =?us-ascii?Q?pL0ofGqe1BxDR9i+o2/n7aa4EfEnHztPCEXuW+s3IyM4C7AqTqP9BskJUiXt?= =?us-ascii?Q?ku2ljsgb70S/yGlT2/qny8f9wiwOeNf9+CFuJYjigvWc0D6t3wfxZwFBkQN8?= =?us-ascii?Q?PpU8XuwAXMT+xCsF3Uj6HQ15sQab44MLlNWWH91gEpQCv4WErdCaWXW7uq2J?= =?us-ascii?Q?llMAQps/mvTGrN0maTdoAFV1aB/Fn2PdtFuqFCTnW4VbF3MMAad2f6mbMJEt?= =?us-ascii?Q?lOBATSPw1t8IS4RPtMnOuWiBbpLVVm+y7j26Zmhbd1nq60ZeK7V/8VzDc+6G?= =?us-ascii?Q?muzDBTrUmea4nN5dkGjYzoSo8kknouXONpeftcn+QU/aE/iZ6q3aJJEa1rYD?= =?us-ascii?Q?pYqy6lJIcxZHVdsGQ8E3oN0f5egBolb2quq6mX7qc/grzyL0VyObMnvPDuLI?= =?us-ascii?Q?LKxMZ3V47Xzolf2zkyjo1BzUych0WpqdY55/R4HhsNnfY9zwE132qaitCvbb?= =?us-ascii?Q?Nrl+SJYoP8bY57L3tptcXnC3ORayE9ctPTvXICHHDLFszXNmiek7I96zQnIb?= =?us-ascii?Q?kBOzS4wgP9OkTXRzCjSWEmZDGMiRwQaesikzoYuwhABz4Oziii7Ktk2caBmf?= =?us-ascii?Q?+d+8TWuXmlOx5ElIdMZukiUfREb8SrQc3kYaebYBU9RX+xAt2vrDtgiy2aEm?= =?us-ascii?Q?R81UCMOjTGMlsCFF20f5V0taLD1DB5NUwOTmoeAYZdyAnjRlQ4wz40N6jyoc?= =?us-ascii?Q?Vf60pZVTWzc3KaTNyOKiPEoGSqDKvD96baECqEzoUgS3Pm7nQS/H14Kba292?= =?us-ascii?Q?ZDfI7ZoXpuTOwmebdt2zmfZbJP3HX3xtMhSqmLWJTwPmjRA7xD6a2zoPxZqx?= =?us-ascii?Q?QWASTMIY3uc2duSQbc5skWHDNOFJ7LZvGCn+2QQqdfuDDebaaOCGoVQJn0yy?= =?us-ascii?Q?fQPZ+IR31UOvBQTSDMOnyl6jApGqnwwsiRlpRSQd4oMnUg7H1Z6xJpBXxVz6?= =?us-ascii?Q?kKeNrGORtlaQOLxff8j9tkJyv2KBRXw/ZLZ6NUcu3pW2nlryYlLhkP2L4h3a?= =?us-ascii?Q?EToHDXPQth0E/UjuzGrsQKizNi9VEiCnmSRh5RLYS3pe8qEqWB8ZQhCYzQEp?= =?us-ascii?Q?sXwyFdN6OHDe3I0jdoALIa9chwYOkmnREcJ2qgfbpYzyeTvPO/7/QcEKIamZ?= =?us-ascii?Q?C+k3qvQ1YKykOFQPUdnjUBzOWbcpsAM3IyuOkW4h/BCvg1RHTcURon1rbXJy?= =?us-ascii?Q?2v+Mx5vrKutaGYpbpJtrZ6KUwfkmGZ5s1hoUUWpHJ/K3IsApub0AC+yQZ7gF?= =?us-ascii?Q?lQ3LZL6T3U+TPjfBEAsUOcMCZDVtBKs8QxNNTi1fA3zLaoVEUWvckWShXI4q?= =?us-ascii?Q?w27Q/hOt0TCn3XgIduKK8D9rxA2jnurnEM+eh9DjYl491u2xZ0lTEm6p2h2I?= =?us-ascii?Q?CQeYiij72cQN1LCVGx2mN6ophbv+PIeTbNKww53SJIpcsKYUZuICsKjIkwBO?= =?us-ascii?Q?9oMwfviGoJvX4Uw5OfRT1+5ycoeC0CObL5ZtQLACe9z9tjd0Rd5K3ShA852J?= =?us-ascii?Q?9EMY8o83qYw/j7O4ge3yTNzPcrGW0f2rk6GjOuMoqHGqDI5UmkQibeVCvazu?= =?us-ascii?Q?v5o5jwj70ZyFiir+llEmBycSQGnlFSolqLo1Z6UweqnovImAZ9DpWGycqKGE?= =?us-ascii?Q?XTTGXNh3VQ=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 43c3af0f-e498-4a1a-2279-08de896d52f1 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8510.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2026 06:19:37.2695 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: c08pbGQ9Gp7L5DDxg9JToGVeLOtAZTLTVwRYUlyGFEENfLTWWJpkxBMskAYZWJepY71m5TFLLLEgZyaqAUH/JQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR04MB10960 Content-Type: text/plain; charset="utf-8" The ENETC4_PM_IEVENT and ENETC4_PM_CMD_CFG registers do not exist on the ENETC pseudo MAC, so the driver should prevent from accessing them. Fixes: 5175c1e4adca ("net: enetc: add basic support for the ENETC with pseu= do MAC for i.MX94") Signed-off-by: Wei Fang Tested-by: Claudiu Manoil Reviewed-by: Claudiu Manoil Reviewed-by: Simon Horman --- Note that the commit 5175c1e4adca ("net: enetc: add basic support for the ENETC with pseudo MAC for i.MX94") does not have such issue, this patch depends on the patch 2 in this patch set. --- drivers/net/ethernet/freescale/enetc/enetc4_pf.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/net/ethernet/freescale/enetc/enetc4_pf.c b/drivers/net= /ethernet/freescale/enetc/enetc4_pf.c index 53cecbb23a97..56899f2254aa 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc4_pf.c +++ b/drivers/net/ethernet/freescale/enetc/enetc4_pf.c @@ -814,6 +814,9 @@ static void enetc4_mac_tx_graceful_stop(struct enetc_pf= *pf) val |=3D POR_TXDIS; enetc_port_wr(hw, ENETC4_POR, val); =20 + if (enetc_is_pseudo_mac(si)) + return; + enetc4_mac_wait_tx_empty(si, 0); if (si->hw_features & ENETC_SI_F_QBU) enetc4_mac_wait_tx_empty(si, 1); @@ -856,6 +859,9 @@ static void enetc4_mac_rx_graceful_stop(struct enetc_pf= *pf) struct enetc_si *si =3D pf->si; u32 val; =20 + if (enetc_is_pseudo_mac(si)) + goto check_rx_busy; + if (si->hw_features & ENETC_SI_F_QBU) { val =3D enetc_port_rd(hw, ENETC4_PM_CMD_CFG(1)); val &=3D ~PM_CMD_CFG_RX_EN; @@ -868,6 +874,7 @@ static void enetc4_mac_rx_graceful_stop(struct enetc_pf= *pf) enetc_port_wr(hw, ENETC4_PM_CMD_CFG(0), val); enetc4_mac_wait_rx_empty(si, 0); =20 +check_rx_busy: if (read_poll_timeout(enetc_port_rd, val, !(val & PSR_RX_BUSY), 100, 10000, false, hw, --=20 2.34.1