From patchwork Thu Aug 29 21:13:58 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 13783892 Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11011045.outbound.protection.outlook.com [52.101.65.45]) (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 7E88B189F5A for ; Thu, 29 Aug 2024 21:14:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.65.45 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1724966094; cv=fail; b=NOg4gVW2qLlYeI9GQt7ETRkgkrKVJvIEzF6X0Xh/MLoh75URR3eXfERu1ccmCuT0pBlKkALTtGh4qmQ8lhF6H1FOnOsOQB9ZoqljXgtWUZ65RKJgRnlFIteeEeONh7G6KDaNTAvlWTQ96QdzvtoSVGgKVVGOU3cPvecQMbaHfJ8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1724966094; c=relaxed/simple; bh=f1WC+vskhA3R8JbdDiScsOFGTy5BtQ/6Qqg3RFmi3zw=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=MEC/dNUu4prA9mHuPGrDgj/9rV2Gh8qgewoMZSm/xGrY4MZ4tc4TmifLXYJC6VC/iKIARKwRer31NMNoX+u5MMM/pmEcSW3D89BsInPV3Ka10GuNYBAHhQDtt0br0IlttoF5cgW4uugJPv9QDo/JaYRr1HwPbTOh8irWGymMqVk= 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=LeROZesu; arc=fail smtp.client-ip=52.101.65.45 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="LeROZesu" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ERW9fo1YvgNIJyOrAbcuAIHX16Bz1v4Fx3dEuzFCSnjWe7V7umyzEpMgb/h94RwDZICDyzviv3cBzI46MHPclRz7ha+SL+LCmljnev9hzfzEluVgRK4daSbg17bo4YkDByG9/sKUiGLl6TE3CvV2CD7vnX+3wRhFjDs+MRFmIyRvgEPv9gAQtpZb93Yqu/rWLgjO8782MtwFwUwJFdhrR5rN5HeDi89RnKOhG+e63gsbCZf3fCFhpfRnKVlnBIwbXGcrvnHPb617pIXx33EgQs5wTwYEqj9Ko41oJJruWa988s7/6BlIP62Ek2yHUTgtXKhYK3Em8kq6VJHsvDtg2Q== 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=wsacC2sM6vudLiEelzwlwh0ehUTpf5ImMKYhC7eTeKY=; b=NfPwFdKrdIGLj6nf1TAo6smVCjYzLB0bw9iBxSu1EKiQRS+j4JP/tEaIfK3jvsWGU0iltvpnni2rokpakUz0qdZcSfIpnHBQkeWoMgr0xsk2/yFjG++TlTeiPRSOBrRoGDy4yXsR/x0bWlIZwevANxw8p7eu9GxHjJYQsA1vo5w2MuPyNBon2lzc6KdNUIw58palx7nzQAGWWso0pxhSa2nG2vUsbIyQwgOBQdjP5FpywgaFA2SYzQtWm+cF81GxJgXrLkwCDDB1LNhw8jVb+Mh0Z4+i8Nvhiu8ZrMhsaSLCGr3iHxinEFqaZlz07QJDCJNikMxVVcsEl7yi5+nE3A== 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=wsacC2sM6vudLiEelzwlwh0ehUTpf5ImMKYhC7eTeKY=; b=LeROZesu+wfpI+EgPjDaKIqhQ91aMrKCTbt91YlCejRnWqA/uqBRyNAt84DtawzfH2Sg0l0FQzvAzxPdutnax0NYhwFlSPqvnayEBgq6+ttlDebhvOr7RNa4njEv5lwXF9//moAs+DRCWCjBcd9kW1Uq60zlJIcK8Y/1/ZEiqhmNL2Nzw8Kboq/ZToS0zcBaIvhkRuSM7HVK5pivbWYckFOcNzslLYV2oxWiM8oC6WlAsKfsjODBJkZkQJ7Y0Hvnd7IQmzetAzl0WkuStVUSaUO72vdEWWEJEDneyNbjZUnOxGiDOh4UhIP3+tK7EEXN8Cxo5ulDC6oB5QbbQoLRhw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) by AS8PR04MB7560.eurprd04.prod.outlook.com (2603:10a6:20b:29d::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7897.28; Thu, 29 Aug 2024 21:14:49 +0000 Received: from PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06]) by PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06%4]) with mapi id 15.20.7897.027; Thu, 29 Aug 2024 21:14:49 +0000 From: Frank Li Date: Thu, 29 Aug 2024 17:13:58 -0400 Subject: [PATCH v4 01/11] i3c: master: Remove i3c_dev_disable_ibi_locked(olddev) on device hotjoin Message-Id: <20240829-i3c_fix-v4-1-ebcbd5efceba@nxp.com> References: <20240829-i3c_fix-v4-0-ebcbd5efceba@nxp.com> In-Reply-To: <20240829-i3c_fix-v4-0-ebcbd5efceba@nxp.com> To: Alexandre Belloni , Boris Brezillon , Parshuram Thombare , Greg Kroah-Hartman , Boris Brezillon , Arnd Bergmann , Miquel Raynal , Conor Culhane Cc: linux-i3c@lists.infradead.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, Frank Li , Ravindra Yashvant Shinde X-Mailer: b4 0.13-dev-e586c X-Developer-Signature: v=1; a=ed25519-sha256; t=1724966082; l=2753; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=f1WC+vskhA3R8JbdDiScsOFGTy5BtQ/6Qqg3RFmi3zw=; b=J8nMUXgzeslqh5WmJsxxzz0j288LGN5mX+W+tUM/6Crkahe2aycbREfYoE999yFKM+ZxRWOJS yyUmraSHnwCB74PaugzE5z61iE8pBeVIPdBkadPeKBNar0PvXSMUWMs X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR13CA0219.namprd13.prod.outlook.com (2603:10b6:a03:2c1::14) To PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) Precedence: bulk X-Mailing-List: imx@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9642:EE_|AS8PR04MB7560:EE_ X-MS-Office365-Filtering-Correlation-Id: d4796f60-dc79-4915-2e1c-08dcc86f9df1 X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|52116014|7416014|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?G8fKwGtdaxzc0d0UaPfOeqTu5kjtc30?= =?utf-8?q?iVS8kNJoUCLU7A+Ref1MHnIynxCqRQRcSuu3aSXTlLSwG8B+6vYqc29c9tYZA7zpE?= =?utf-8?q?Tdmoi29TVt/YPumd8xYF+ymounExY9lLWPb1t2xHoq+JltzjnXfL9hdHwF4SrCWh/?= =?utf-8?q?jNxGr6xE/IR2D+8Ib2zw1vVrQM0YCCcJJSfE3kGnrM5H9H/b1E9DVqwErABHm69cY?= =?utf-8?q?9Kk0OYfQD1YeDQ0GuHI5vtLMRmUuWM1sAJ7Yf6+J7Im2eXk5jB82EYwLk6SQrD4EF?= =?utf-8?q?+BytMNamwv8xtBtyRpbls2ol01DANxMlHUR+VdSE7UPgN9GFTY4Abvcs553RvpLxv?= =?utf-8?q?i7EZF8HdJflPaOfSA2PAX+2e3NJira127l8VbAegBemfi6ylt3YbKPllplfsxekVd?= =?utf-8?q?FLuJgc0H2x+LccI5UhFePozfRgZ8GcieEMIvkhM8JAPCyWioVk/KR+Wr/bmCJ24Ra?= =?utf-8?q?IL9XRInTiArtkVr30PROaBIGvH9LtL2zSlxAysEzG7rhcQ4/E9jbDpMDn1+BcfarS?= =?utf-8?q?7WdehpC8pJPVSm7+44yvySUXR9HJJWPZBmlgvELoEHeOY4vJa5yupUvp/gYSEp5VG?= =?utf-8?q?gwnAiniEzJv+R/ZR9zbi/hu9CbyPWNN0INaErckxbDKGwDIas0AkRkT/zI3+KjfpF?= =?utf-8?q?7Ju7fM6Eq4Ru9sExNIOUfjV8U606aQjGiuk+LDs7IJEPAmRuLXoZ2RdFkFLnZavSb?= =?utf-8?q?NY/4hu2IG0cSussrjglT1Y+PU9HnlzNo1e3nODbYGS8Z3XOA9veyn4gyiwkPpKgdt?= =?utf-8?q?Jh7VPYNjR7Zpzjs/BDxhJiY96XHLw48oko7I/XR+XqtjOiGlaDd9zWktvkefKfkDu?= =?utf-8?q?0l/wKyh76hMkd8alv2S0xJdzGFL/4vDEq/j/YghgQH03ipV17RfFUI9T9Ti5hR44+?= =?utf-8?q?3IMbP/cfgDUrgvBLW2g7vLOolyO5BdrCMlu0EPdTy12CfVqgPt0L7d4uhw0WdRVCu?= =?utf-8?q?k6+/HZd253UWO77j22HA6R2DnNeWGaIkg3PaIhl6+IS2SNKQ2wyiKBg9I4VqZRGEc?= =?utf-8?q?/3M92HvbzjjiRkSaYtnFM5ajVwI+kcPs/BFe205NDkIAypskgi4ZOG11ypzTQUAVS?= =?utf-8?q?DE6BMQ32J1s+PzvThvToe8IRYOCHxnp+yqsQsuslyDlYZ3u7+1Kk4Ho+hKLaATgZM?= =?utf-8?q?UFFxG/PNptfcfyzk7D3Br6Kvc3Wn0rWAMYlNsDw0lFLwOuIQPFXcHFa1ibgVGTDhy?= =?utf-8?q?xtYCvJdagNDi32tskq/H8f6ThcJeyIu5SKzSutM2D1FH42b5u/+2uEewLtvAjWJQi?= =?utf-8?q?/nnbLFELzh/fyQJiBIzrggz4VrN6w2W2473jy4xNI5Iqvcry8ZTgx/VSaAANFK8O7?= =?utf-8?q?qRbeOQJ8onefNczDW+uHdClBtzyXMPtHUA=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9642.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(52116014)(7416014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?Qs5h+zniJ+czmqisOErlXeLOMxX6?= =?utf-8?q?wyRwa77IsOjScWei3xFzCgy2MFOcllxxg3xSGC+bzkt8tjFihQ2tIXpAtOBTIpT5L?= =?utf-8?q?T8G6A4UPJLqH6ZDzT+dVE+lcQK2XJg+Zfhh2KBwNrbSunCU+p/Bf+ApfK8+QHnPM5?= =?utf-8?q?/qUmzaY885M+1Ez6ZddhZk7pIwLfTfkznMM1hTYBzzaDe7SY5aJUN2i3b7JBrrdx1?= =?utf-8?q?bnXNowJp44u4gX87eeLFOxhciGP4VdSshekN1YPfKHBYO+CwC2J7mNdozZR2jn5iA?= =?utf-8?q?4J0HJA0bTKxtryYcGWAJkc/J1xhcGs/D6DE6Dm30bBGbFbgtYo+gzG6gWbKmtV4mV?= =?utf-8?q?NzqE+HLkFJ15SnKK7y7Vt5FifZq39eg8xd0ae1Lpdfp7rTVP5OEVW3wVvPDm2K/LB?= =?utf-8?q?ryhv70tdmznDEcDWyYiYyHtNJQA8klBznskzJ61y2pNiUn85/kJ6p+/dcO2KcDcjA?= =?utf-8?q?MSkzJlCRXLSgSO6ASBYAGwMdNJ1T6Lps0sDdFWHNFctptRPR31ajHzYAczbyIgCTb?= =?utf-8?q?keUY2ZN3fNwCsORklfPnbBM0oC5VPH2QpedYBzOTlsXPIU+typKSF03kCag5hy3ai?= =?utf-8?q?Q4XP/InERxQeY6MuPw1FLQ1dut2zOneCY3WsD6yGlvdqXexQpFdW1eyDOIje7DLh5?= =?utf-8?q?KZQClMKX8+4v7SKy75VimOxQGDBt5mAeAzh0I4kclRLZtg9tcbCv/X9wIliu1BlZN?= =?utf-8?q?9ZSUlxB/uVackPk4luU3IKdCRX4pNRuI/5I2Li521G4nsacw2K0OxjdXUH4NmHoHD?= =?utf-8?q?VZk+TZJwHvnvDqvOGXQbzTUrA/HRceg8MsclHGEOMNJwgWuyuxtg+cKnseSoFAdSp?= =?utf-8?q?jT2uCVnCQgCV4YuwDzOjDhRVMXMMckmyEcIIywFE+h/oNZ1xTJvUR65DiTf7iHVh4?= =?utf-8?q?MEFET5dw4TlTcoICAMINBTf8qHFlXECuR427QRP0Z04xen95qENAoNwM90V8uHlPe?= =?utf-8?q?oxrRgH1nnF1TJRm9y93XLGWjDuTHji40EsA2sXJpuYKeJL4qI5gIrfKYc57snGdem?= =?utf-8?q?rYB1WLkhFZR3JPIi/UQC/0hMl1NNOlmtebTog6djCeYA3ErB+TcPQa3FsoJI1Kuxd?= =?utf-8?q?AszgLZNRTho3HufNwnj82YDQw4CzsZ84vUlpe1Kq3QJmk5g+Pn4cCFOYFzNQ3pbs6?= =?utf-8?q?QYU8BFRkdMMX+fmz6KHuSpRKQIJ4DKFTCBu6UIhKsRTutQ3Ge7UBlmdMiCUkErrPT?= =?utf-8?q?HythHyBJquq0qFhqldKnBZ7L3OzbFLDz+TfuVzNCHpvNvVp4NbLtfSsU8c19GH7gS?= =?utf-8?q?ZdEeA52I+6I0e66of+W7dxkzNbXciLrgOgaMhqasMHqahzrH7F3EHSOOsVFRXXnTR?= =?utf-8?q?fCxYutUS783s1oMU1jb1MlQAsdJ2KIhO0n08W2YhtYp4QpDLPuTzJ0aF/TEBKN/fx?= =?utf-8?q?jFT9DfgPRaRRg9rzN8XJ3t+oC5VJqGKTKnfCKNFVwrlx6MXO3c08cXldVVYwW45hA?= =?utf-8?q?+36lO+UsgYMQK5NnO3BW0Mab9crg2v57v2ZWUF8+9/esACdxnxkazZ9P5c7dO3Epx?= =?utf-8?q?CdViLFSKX4tc?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: d4796f60-dc79-4915-2e1c-08dcc86f9df1 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9642.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Aug 2024 21:14:49.7382 (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: a3ATcurYXBxOpcPxb16DwgeNBzEBK8erKVBaTYGqX93CwYXU5OifKedr8qSvp4uUrLT0+bnzW+In9GUwUyYfbA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB7560 When a new device hotjoins, a new dynamic address is assigned. i3c_master_add_i3c_dev_locked() identifies that the device was previously attached to the bus and locates the olddev. i3c_master_add_i3c_dev_locked() { ... olddev = i3c_master_search_i3c_dev_duplicate(newdev); ... if (olddev) { ... i3c_dev_disable_ibi_locked(olddev); ^^^^^^ The olddev should not receive any commands on the i3c bus as it does not exist and has been assigned a new address. This will result in NACK or timeout. So remove it. } i3c_dev_free_ibi_locked(olddev); ^^^^^^^^ This function internally calls i3c_dev_disable_ibi_locked() function causing to send DISEC command with old Address. The olddev should not receive any commands on the i3c bus as it does not exist and has been assigned a new address. This will result in NACK or timeout. So, update the olddev->ibi->enabled flag to false to avoid DISEC with OldAddr. } Include part of Ravindra Yashvant Shinde's work: https://lore.kernel.org/linux-i3c/20240820151917.3904956-1-ravindra.yashvant.shinde@nxp.com/T/#u Fixes: 317bacf960a4 ("i3c: master: add enable(disable) hot join in sys entry") Co-developed-by: Ravindra Yashvant Shinde Signed-off-by: Ravindra Yashvant Shinde Reviewed-by: Miquel Raynal Signed-off-by: Frank Li --- change from v3 to v4 - merge https://lore.kernel.org/linux-i3c/20240820151917.3904956-1-ravindra.yashvant.shinde@nxp.com/T/#u - add Miquel Raynal review tag - add Ravindra Yashvant Shinde 's signed-off --- drivers/i3c/master.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/drivers/i3c/master.c b/drivers/i3c/master.c index 7028f03c2c42e..82f031928e413 100644 --- a/drivers/i3c/master.c +++ b/drivers/i3c/master.c @@ -2039,11 +2039,16 @@ int i3c_master_add_i3c_dev_locked(struct i3c_master_controller *master, ibireq.max_payload_len = olddev->ibi->max_payload_len; ibireq.num_slots = olddev->ibi->num_slots; - if (olddev->ibi->enabled) { + if (olddev->ibi->enabled) enable_ibi = true; - i3c_dev_disable_ibi_locked(olddev); - } - + /* + * The olddev should not receive any commands on the + * i3c bus as it does not exist and has been assigned + * a new address. This will result in NACK or timeout. + * So, update the olddev->ibi->enabled flag to false + * to avoid DISEC with OldAddr. + */ + olddev->ibi->enabled = false; i3c_dev_free_ibi_locked(olddev); } mutex_unlock(&olddev->ibi_lock);