From nobody Mon Sep 28 17:49:00 2026 Received: from AM0PR83CU005.outbound.protection.outlook.com (mail-westeuropeazon11010016.outbound.protection.outlook.com [52.101.69.16]) (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 947E83DEFE7 for ; Wed, 19 Aug 2026 09:06:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.69.16 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787130365; cv=fail; b=Wtl/4rOIEYsfj/fq3q7SqauQq+a7XfM5JsNo2MXp3pbIQFn+TMPIl9biQ8fS5yKmdPqY7h/7eSYhpMA118CddTHFGJLUs194hKafCHTQag22xyhCf+owD3db2CPUGPWhTctnYBiZIIiE1cp7a+exmR7AbEaQ0OeNiv6iz2cknaA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787130365; c=relaxed/simple; bh=xexYIT32qfKlv8p1NccTvcZ/9THV89rEhI2l73Btd2I=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=nKiVtSXilhU9duM5pmrZF3nsCvMBiI1O1Kb6tKF7qIosry1OsjCvPe1GPHnmQFLgO9TWPBAPpjNfFplBtRz19rMII5sqP6GQ03Bexy6JFDUsW07PFDqDalgpSv8ea0vMcKACWFEyTKldCkCL4C6IjzaMoNhLrMPs2W/rgQKfpt8= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=EHHeuvTX; arc=fail smtp.client-ip=52.101.69.16 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="EHHeuvTX" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=UoYgJHfX6fk91SC+I0WS2RlmWh83U2KpwcdD0jt0M1Qy05AQecQjktpFSveqEjLLxtosxgdIE1UI944EhjzuXZJXpzjAunMUeJjXg8TtmyDu8rv181HavhGEvDtgSjmSRRmtsMcBsS82aJ0q98iVD7c7E96yLqPdkfJ2SVQNXPglpL4QhR+HcYifaoPMZvc0VWRWoWx9X6YeJzcccsDaod9U9olShWolStCCcadmc/1wTH5bVHGvxS2SwC1PnM1Ty1dYXC5/SR1Vt4ZWDAuLtHeEO6fEJGkkk7Y23izC5bVpLEBHDYM2DLHS8seWERQUERAzlKpuPfUfJV58Zc1Eyw== 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=JV+E4b71Hw/pNlp1UP3kc6IvJtDlWrOz1bPuCyeoaq4=; b=tsczMp6XWy9RSVvOF2GfPvDHysJSka82IgeWQ7GLdnwMUPtTuua7ONTK4NQwEtA+sTXvyM+2QH31so1Zl+xfclbS32UoIPX3ER+4Lm0cBuNeqfKEeaBYFeuV4Cshwi4mti/eDwzwWbhRVUrK89W0Z4uMM4SVGMYBIe6g/9+h+1PyeIKFmSo6GeM8+7XsifXeLG7Y3L619GhwX8/vGj7+QyH0GhYI7SZO4BeeM3jW/Oo9eA/e0/r1PHKbVtEhY3CcPyThSgfp/nkGk4gdhPxJNKaCV36iI75U9ehBVXkOyH4qk2dolQGnxYzjW5pfUCgnX74VzeUqTaMnKpBYuxy8LA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=JV+E4b71Hw/pNlp1UP3kc6IvJtDlWrOz1bPuCyeoaq4=; b=EHHeuvTXxQNjnUDqXLCTMg/5f2PILWqYzMm0sGZO2MONCMSGdh6qZe1cJtnoMYFEuovEIOHvjh/XHweKwQRHBl6EDga+Ljl/czEJA5BPyqt5lIzxqaMTmEsjXUa727SFnYxKCI3Nso9UVOsKdxqOuUPLCPncGzoSuwlfGS2rjjHFMcTFWHhkQy/enx9VF8ABRcCY/kTAy6oNLTLjU4RxDNP1CP8vtVh5RsJphNfxzxRNLMoXM1QzSuzjaGmRJ3Bk4rO8My31qluFoAsjbTwOgXhGsB8EMV4YHE29jTDb6wunXWMa87MKZnTIPIJzBdiNSBZbmkUUNI7/6Wd1dDSiJQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DB8PR04MB6858.eurprd04.prod.outlook.com (2603:10a6:10:113::9) by DB8PR04MB7146.eurprd04.prod.outlook.com (2603:10a6:10:127::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.339.8; Wed, 19 Aug 2026 09:05:59 +0000 Received: from DB8PR04MB6858.eurprd04.prod.outlook.com ([fe80::bc6f:5fd7:462:d0b5]) by DB8PR04MB6858.eurprd04.prod.outlook.com ([fe80::bc6f:5fd7:462:d0b5%6]) with mapi id 15.21.0339.007; Wed, 19 Aug 2026 09:05:59 +0000 From: Zhipeng.wang_1@oss.nxp.com To: Thomas Gleixner , Marc Zyngier , Frank Li Cc: Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Jindong Yue , xuegang.liu@nxp.com, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org Subject: [PATCH v4 1/5] genirq/irqdomain: Add devm_irq_domain_create_linear() Date: Wed, 19 Aug 2026 18:05:39 +0900 Message-Id: <20260819090543.585131-2-Zhipeng.wang_1@oss.nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260819090543.585131-1-Zhipeng.wang_1@oss.nxp.com> References: <20260819090543.585131-1-Zhipeng.wang_1@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR01CA0017.apcprd01.prod.exchangelabs.com (2603:1096:4:191::19) To DB8PR04MB6858.eurprd04.prod.outlook.com (2603:10a6:10:113::9) 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: DB8PR04MB6858:EE_|DB8PR04MB7146:EE_ X-MS-Office365-Filtering-Correlation-Id: bb8514f6-9921-4d59-f071-08defdd11626 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|1800799024|366016|19092799006|376014|10067099003|56012099006|18002099003|11063799006|22082099003; X-Microsoft-Antispam-Message-Info: 5JVBTueME4TmsPXPvGiDSbfz4UOdvYwvwZO9TgipL54pXCZt2rbnGiFt3mGGeMzuOw+L9Ck26gw8T0nsOI+nRkJJA+Ke3g0B65afz3ytY5KuB4YU8zVdH9Ax1ANqC3sVOy616wTMZzs1hdDDkfuKYgYBq3xwJYvB/i0B4ncYyUuXBkTLCTj7rSAaEvxg/TynQrMPv2xWcgZq6sEGCBS/BggjiypIEQvjlwn9mPJ0tf2Xg8xobh/vzlaES5HcBoxoEzV5iZwBUFAd8Le1zazvCnXOfSNI2VOkNrSJc7RwzPRDC2U0TjIqeLsAOPBhpgQRyVbqtbtz2nh9YBiJ54sk2L6QSvgI/rE8dp7b4UdzN3rh3ueydLVjUk5m4v3AxcuQCjvXkR+sgf/u9gawlEi0l7Uiu7XXYKvwhqm1G5mwydK18NCYU3Ai9Ub91RnbHkr3tjyRDMVBZiNqdWDYKPqCtMlAaMcPmtHogS47bloZclsqyNkO0V830L4aH2FEm35j40YPLpBKnjnEpOJ+Ag7VH5Nt+2jT6I+uYU7cIDmyTBi/koY3r1d8EV7Ly0poH4TVEMQ+SIlkobFTyGn3m62KQHJTJxfnPcRzielv25uirs2dsS491aBD97Lnp+XIR7sny905Vzp6rHNiwTVjUvhPX67ubfTB/Mfls5+zTGbHCZg= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB8PR04MB6858.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(1800799024)(366016)(19092799006)(376014)(10067099003)(56012099006)(18002099003)(11063799006)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?9av/fu9oiW+beNb+S+x3sUPE+vQyUsx5rOUQzAGLFqVWK0qP57GwqiLkTkqm?= =?us-ascii?Q?LTlBI0bH874OOub1Q23f6l6AISjFVYmG/Lhn7g5nVHABfO1F060yK3PSikR+?= =?us-ascii?Q?x9b8VgmOTSncKnlbOO+FJlIo1qms4VyNaaE7uTjfSSeQAImONarLFONHtWFS?= =?us-ascii?Q?Vly3o1XfWbkPAPWQcLdfBDJjy82alCUzhjEcGmrYFJ53tqOgx0Dyf3VhYJs4?= =?us-ascii?Q?meZ79M1WBrXIIW/KMuaLdxKucj/YvT99P3N3e53/VwqbpxYmSUgmmH/7vjvA?= =?us-ascii?Q?ylW3tzrWdNlQQziKOmBmt2vj4LvIyPDr5eo79sSUH3w/gbgATVUCf9h1ixbn?= =?us-ascii?Q?Fcb104td39i8CzUuxsHU0ey/ocgz1IiXFLPyEoTK5/AzFXE4rtTg//l/agZF?= =?us-ascii?Q?cW5BpEambDvxrQUHJuQpt1Y1Sq8OZwlZ6Z3DaMYmXKK6tJ3fT5/32W2Z1/e4?= =?us-ascii?Q?iK/SBgwdyQsEkbBmI6VYRBnR7dTSwaa7T7f0Qc4nR/92sNiaEGAHnCsaYV7f?= =?us-ascii?Q?g3xkni/QJ7hqIYCeDXE7xAFWrApyAIjlxbWPWbXGapJ07xaJqMqF0DxmEe44?= =?us-ascii?Q?7/pxBLGaA80FLTEdkh4C0mrtHTuX35y7iXZWGLkC7THjYJenuOg8/SMtd/No?= =?us-ascii?Q?LdVV0czstFSdUo23qtQwG53kx+Yxh0O+jqzw41BLSY1Tv+eGjtq8Fszi4mQN?= =?us-ascii?Q?kUHsY5h0F4HGEKutggS4BmAFW3QAX8y8C7dLCLiVi2dPqC+tR/lsmmh1AR/c?= =?us-ascii?Q?dSTD/08JEQIzaYpAoCga70xuR3HKiVOX3fox65Bq1eA7lbY/PnB90ZYfiu3d?= =?us-ascii?Q?x3hkyZMvVMjTbiqWzKLQABwVGiphxjIFcOLc/6WVz9wTwn+enVfE/e0m1uPL?= =?us-ascii?Q?bVngLJ6r/uSmdUSKRrm960xopn7+mXUxcKpK3S8C1t0uudVZvMM6KWm9LGXc?= =?us-ascii?Q?CBiVRL3kDEZyJ7G0gE8WRt7H+Ba2K20CY2Gg8yzHBwmLSjVvBBslEVzw5Ctn?= =?us-ascii?Q?NpdE7DlxfPGCuWL7IP7W3F+3HeZXu5Yv+P7+Il/3tyc3EIjaiR30mQKelcHJ?= =?us-ascii?Q?NZYrK3MBSjFzs/C2x+4J5eiuplmYGLq48lXhyzWSMshFHXk4ArCwAaSG05SN?= =?us-ascii?Q?rOZp0mV7eclXMq5/N5LvwJ1qE6M1pmVGH5eoz+XOD6MtSN/gLKIkBEp8+XwI?= =?us-ascii?Q?SC3zyt3ShpoE994ITNW2hKMCgD8IQsOm7xhdcYFQyv/VhSXj+u/81ODMkXJb?= =?us-ascii?Q?f8gTVYmxJoA1k2Wx0Dsr+vTcbsGVui3Ik5jNXKL5GukGn5JV05HwSkeJB+b7?= =?us-ascii?Q?2WL541Nymtf+TSRsMJ/Sjg117cvqF0rFCwIAEKSvcOnYrxf+kI7Ly+KO7KZw?= =?us-ascii?Q?Z44t6QOZ6Ed5wt3w5rUroSf32PN7AuQMhtlk9iTRv35EaxcDVutzP9VMGLYV?= =?us-ascii?Q?Pqn340Io1SE+xcf4/S20pt3aWX2OLVgevz8ln97pZ+ovtVuK/Fbog64Ealqx?= =?us-ascii?Q?q2QKwmMyzqJlh0Sd1AxH0rw1Ly/brE+5wjo1y7u3I8hqlOYbMwczkBZOGRpZ?= =?us-ascii?Q?97qWRikdZAU79sMyRn/pZsKErIhVesv7l4W7ntX661vLY2Sf/fpgq8dXTz/N?= =?us-ascii?Q?TYrft1TghD74I2OOpZO+MVTwt167j5Z4vGAs1pUOCnuOhaZAfobi3J7Abz3x?= =?us-ascii?Q?cOizSZimBEORtPzoPZPtjPVn78/361F9GtTUvQc81++9IE2o03pVqfXmWKXz?= =?us-ascii?Q?5k0vb3B3lA7ZHxmf13lORC8DXlOL++qrCt1xXDo3yMPskov7qvYE?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: bb8514f6-9921-4d59-f071-08defdd11626 X-MS-Exchange-CrossTenant-AuthSource: DB8PR04MB6858.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Aug 2026 09:05:59.5761 (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: Gp5nnZ8KSWO4vBD0D++hDd/9J6vJRiNp9VXbJJr8+PRLIJj9eTh3ammH6dFHQKIWYS9ne5LPK8SnTPFt5KvDbiJevwvGYvQBQQGPduGXJFJieODRNsnORUOkP5SbrUdu X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR04MB7146 Content-Type: text/plain; charset="utf-8" From: Zhipeng Wang irq_domain_create_linear() has no devres-managed counterpart, so every driver that wants the domain torn down automatically on unbind has to either open-code an irq_domain_info and call devm_irq_domain_instantiate() directly, or register a manual devm action. Add devm_irq_domain_create_linear() as the devres sibling of irq_domain_create_linear(): it builds the same linear-revmap irq_domain_info and hands it to devm_irq_domain_instantiate(), so the domain is removed when the owning device is unbound. The return convention matches irq_domain_create_linear() (NULL on failure) so existing callers can switch over without changing their error checks. Suggested-by: Frank Li Signed-off-by: Zhipeng Wang Reviewed-by: Frank Li --- include/linux/irqdomain.h | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/include/linux/irqdomain.h b/include/linux/irqdomain.h index 73c25d40846c..b6b360cb6525 100644 --- a/include/linux/irqdomain.h +++ b/include/linux/irqdomain.h @@ -457,6 +457,36 @@ static inline struct irq_domain *irq_domain_create_lin= ear(struct fwnode_handle * return IS_ERR(d) ? NULL : d; } =20 +/** + * devm_irq_domain_create_linear - Allocate and register a linear revmap + * irq_domain tied to the device lifetime. + * @dev: Device that owns the domain. The domain is removed via devres + * when the device is unbound. + * @fwnode: pointer to interrupt controller's FW node. + * @size: Number of interrupts in the domain. + * @ops: map/unmap domain callbacks + * @host_data: Controller private data pointer + * + * Returns: Newly created irq_domain, or NULL on failure. + */ +static inline struct irq_domain *devm_irq_domain_create_linear(struct devi= ce *dev, + struct fwnode_handle *fwnode, + unsigned int size, + const struct irq_domain_ops *ops, + void *host_data) +{ + const struct irq_domain_info info =3D { + .fwnode =3D fwnode, + .size =3D size, + .hwirq_max =3D size, + .ops =3D ops, + .host_data =3D host_data, + }; + struct irq_domain *d =3D devm_irq_domain_instantiate(dev, &info); + + return IS_ERR(d) ? NULL : d; +} + static inline struct irq_domain *irq_domain_create_tree(struct fwnode_hand= le *fwnode, const struct irq_domain_ops *ops, void *host_data) --=20 2.34.1 From nobody Mon Sep 28 17:49:00 2026 Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazon11011040.outbound.protection.outlook.com [52.101.65.40]) (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 A920C3DEFE7 for ; Wed, 19 Aug 2026 09:06:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.65.40 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787130372; cv=fail; b=DUjmCLyZE4ldeX+EvsnZEaRrFOo4lWhqujnhNq+lUeTQx2/lHebP07pvLTO0MVdW8udiz0Y7PkIU4N03uahPMpRS4NIqYM/e0P8sf2udDUgTO+RLfLWTPKgervFi5oJgjpouNyUJsp5RxDCI9xdvIsWvqqln2vlN7tMeTztlHlM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787130372; c=relaxed/simple; bh=CWtWScAGOwf2fwQfSAmRF85NtW95TIhtwzT/YWCRYXI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=KV9Uy/1vQ6jSfzVdDm8qVXO/2PWreSXo88ffYe+ZVRpO1YfnbsK5m15WyhrWsl8LMC68LsxqN75RPvdPYrmg8yrKB/3C3PlHov+Y9f4nz5JAN7qe0qjwzadelgtQ12jDGvXn95JhV30SZPKXHBCEn3H0MyLvyWlQO++UjJeoX2I= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=qWudPy7l; arc=fail smtp.client-ip=52.101.65.40 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="qWudPy7l" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=nvgPWr7m2/jd5WlonqTvgatnibU8vpIrLXGv7uZzG5Z+sTVWM3bJfh2B4+/HT+IPBy0wWhMUiQXnWQ0/Oz48FwpGAJaPyvRbZf85fypEA2Xz9FEzsD1ulfMq8s/+iK5ftfxhHXX3kjqHj5JzT5EZ72UE9ginmDuAIOGXjcyenw5T6bYusU19KnpzGpvpsp2NKrKyWsjdks6RIEhE/GTILO3B2X3LLzHiJUUWj2i2Ut7OW12869E923drJIF+74Emwa5/9B+zwIHRWuRtEUDGdrdM7pUXJ0STZiD++Z2ZvXCwpy01hIWkPXXlYkxr0yEtvVJfJa5Lu5NrfFyCKegehg== 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=caeOx/ga5Mr2BEk4Rql3rMxuHZnEq6lMnOO04Eohiq8=; b=OvtkOM8crJflKFksfquYQjBeFciHZZ3RrYJ34YvMmpeBNHn578LQMXuPuxk8pTBTD5uf7jpvM5i0OSf4HiY58voW+a+qYjvrEKE01lBq+wz+uv9NPvo6eOI3j0M3DoYNEbnbqo3HmWspHfGz8Qn3Pt/izImIVH8oHs9MZd8aDvgKLQBjvsLGx7tWNbA7pkgF6owB2tCqavGZe0ItA14jNjoBFnnDxkB/t3WV0Q7TVmyVB6080v8sCfoHcsa68p9W30iTIE96sOQKvm+ADwm54jJH06h/IJYN2fdNBurvzGbbOYg9fJaI8Va8S9GQI/ZWJPF1li5POyE5Hkduv611Ig== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=caeOx/ga5Mr2BEk4Rql3rMxuHZnEq6lMnOO04Eohiq8=; b=qWudPy7l+VwU/gLW7BGspjbd6nneUQbyLBXVHNONEygcgyDiKYN/TRal3xUOK8ptHgrewNSrMla/pXESKa/LyoVHs206LsrAMrynVlrd0tKcv2x21DwRky5ofgWAC22jtuNn0CiRl9J/gezSMP5QALxgi9tAGRoFmUKrwtpNtj0n7UTlbADub2yzTjqnKp3LnTPnJgBvulrWBItO2twyDY+xU9Zv1UrtXq0FbCR+rCoRvT6rVsc6lDFZx7V0DlJlmZsV+jITQgvq5vpDigt8ytrO+LhoAw+LjVgKF3lcDc+uUUQ+2xcrabjJHJMauOPcsAn6Ac4f7g9rbpCAQo5e1Q== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DB8PR04MB6858.eurprd04.prod.outlook.com (2603:10a6:10:113::9) by DB8PR04MB7146.eurprd04.prod.outlook.com (2603:10a6:10:127::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.339.8; Wed, 19 Aug 2026 09:06:07 +0000 Received: from DB8PR04MB6858.eurprd04.prod.outlook.com ([fe80::bc6f:5fd7:462:d0b5]) by DB8PR04MB6858.eurprd04.prod.outlook.com ([fe80::bc6f:5fd7:462:d0b5%6]) with mapi id 15.21.0339.007; Wed, 19 Aug 2026 09:06:07 +0000 From: Zhipeng.wang_1@oss.nxp.com To: Thomas Gleixner , Marc Zyngier , Frank Li Cc: Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Jindong Yue , xuegang.liu@nxp.com, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org Subject: [PATCH v4 2/5] irqchip/imx-irqsteer: Use devm to manage the IRQ domain Date: Wed, 19 Aug 2026 18:05:40 +0900 Message-Id: <20260819090543.585131-3-Zhipeng.wang_1@oss.nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260819090543.585131-1-Zhipeng.wang_1@oss.nxp.com> References: <20260819090543.585131-1-Zhipeng.wang_1@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR01CA0195.apcprd01.prod.exchangelabs.com (2603:1096:4:189::17) To DB8PR04MB6858.eurprd04.prod.outlook.com (2603:10a6:10:113::9) 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: DB8PR04MB6858:EE_|DB8PR04MB7146:EE_ X-MS-Office365-Filtering-Correlation-Id: 7fdf4201-09fe-4aff-6bf9-08defdd11ae0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|1800799024|366016|19092799006|376014|10067099003|56012099006|3023799007|18002099003|11063799006|22082099003; X-Microsoft-Antispam-Message-Info: UhhGufGos7uY0mqeYIi0JFa4ssd8yjkSLbod9FGI1B2Clc9FdgHXmSWtVHEb9sgaQLc1oiwzbU6bva69xJwjUNFR4/Vq0uftbSnyUj58MVEp9NhISXGe5Omw3SkbAEHW2Ri/Qmq5YzreqwW6vCJ6c2qRvCdzkg1cscz5v7RLokyK+O3YXFN1/C8Uk2g9hOscSJ2fkwkDEmqS1VmBszhk6j3poQxQHoR9uuIg6naSnVoBCIP45MibE86ProJ8ZpevrGpz0+mIZfmtQ8ZDN3CJ4J+1eL2Ah+FZ34e6SF2SBxgi/sjPQQQf3TlV9GUB8TKOdIDOjl+ygmj1H1mGIALtt0l++IWVJ39bticlKofNjINN79wNj16whRVGA4LD26OKJeW/Kbu24ePHFBRvrvNEzUqd32rFNPrlH4xPIgeQaJnmOoUPWw/N63TDREVWW2hnuiFIJ03eu7koFerTMOmSHU/7NIDswY1LFiEFxB0Ng8nH7H0g7KeE71lKzaNdvLYc5YzF4598O8zt2kWioeaySl1ktuhYIkwiLjyxW6ywrfHsyG//f1lyw8wGoZUaIHlEsLvLCxl/NKF6O186I1s0IvNw2tkpaQBk0tdNhHueBpvxTFVkkg+8gnyZ/DexA5Cpuqi40x77YnshCkdu3gWP9SyrFyVUKOmpIzuBpMb9lnw= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB8PR04MB6858.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(1800799024)(366016)(19092799006)(376014)(10067099003)(56012099006)(3023799007)(18002099003)(11063799006)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ldCoH13thgfX3FDtQj893aOF3bonOVMQuSBpWb6aCZyuhIs6/oCHVWHGsiK6?= =?us-ascii?Q?u0THXTd82c1TI+pBjdS5rHC/pRJm2SYCBiaPmfJdTDH4Ctn24JO54h7Rjc4B?= =?us-ascii?Q?gEQVV6E1olgwCYiglfKhPZ+/uQh6EXcQAfc313/+XB7fBwKSwj7hGKo2VQfj?= =?us-ascii?Q?ZxOWJIxuGTDcDKlRmCUjmfzsugePmiGUxGTe37zU6xTWoJGCP1twerTKseoo?= =?us-ascii?Q?Xs3ZQTigMTU2ZPcUwyJyrMKCqOb7Sza7cpMq02CjF/fVg9Ida06e2w2uqM1N?= =?us-ascii?Q?jd8P0q3IT4fg2bVIFhIaSWS/R8a2aXYgAFYxSymYS0+0607b761RXKaMRcxZ?= =?us-ascii?Q?Wx3BmB76RNSOnDzCi++KjU6QwKTastU4rmQ+Qja81DnvGIrnt1XL18x1B1TW?= =?us-ascii?Q?av5eB7ZqRTGtk4dlF0xBO+Ue7BXATpF/EvwZfOhT+iTX9UIsr2oBjl5xd0PW?= =?us-ascii?Q?YZv3SbEoAPXXslOs2ptY9MYkJynYfrDgasQLAUmD39pWSLMfXaaNe1eAOEnC?= =?us-ascii?Q?B3jzAY2psF4NI1yQixUydvz9X2+Q3U0bfrNPufX/uyCY+zbP/P2HInQxl9nx?= =?us-ascii?Q?AKN+D1IH1gIBN3LKhh9hgPyjZTNgNVMizAX3pLVGsDiGCUeuYgtZCEG8Ogg3?= =?us-ascii?Q?HiTrIUO8PxL62p2ZbyhdtuFH3qIRc6LB7PINuUF8V4IRyl4tBmE1hguq3pef?= =?us-ascii?Q?ViYp9ihytFLSRaRYU5hO//0SoEprgcYklBTGU6VAPqHSh6TbXZhRZGq4IFDG?= =?us-ascii?Q?Ep/3ppvhBYG3S1Ng913QHQ6xnCBq6YjP7jX3OEC2zMOyGMKEYOaDvNcywRkY?= =?us-ascii?Q?g2WJI8blG6x07vjK4T5hnl/qMAVxbj1hyLAPnORhaVCYyacq614DJfdEWKEP?= =?us-ascii?Q?it2VNMZ08Q9VON9rC9gVxtH0c8sBujz4WoWIRQSbE0HvLbGh5n0jh8n1+bs7?= =?us-ascii?Q?0hv3coZZQqDiZZd8XK7Un02kEpyZtk57FZ/vksm66JD/rFKsUmLPe+YUU7s8?= =?us-ascii?Q?tY9cBCxZKubG19uO97j60beVzLFVafmN7UssTgoKZgiWhDzLMCnWNOfnG9U5?= =?us-ascii?Q?KIK6cdW/GnrDKhkUjXKA/xFl0mLMs8dexOmo8cHvzoyCBu/qkvrDzL7OoaDq?= =?us-ascii?Q?/UttDAMBNM1EDKeNYeTzEYW1N6jACdgmg5WqFTJyRHH2QpCkjxAwj4Rwowv2?= =?us-ascii?Q?IlmNI6mZtOvVpdrrc2WNzNdjFpG9eE+CSEJc8/k2OdBmElbjnXDEgJsoSxtS?= =?us-ascii?Q?OoSNp+pX8HUIanm7gdr6FwGXbC/P+waSu1hTAzm43ZYYoYqDsW9t/q4FSPyj?= =?us-ascii?Q?rJ5EpyG+7wC2XkEGAhm5qsikKWG7akVcsNFHHFwB+eCWvL98KWylLRna9ZGK?= =?us-ascii?Q?f0sa4WspfLHmwuDFkeoFKpXNEfNqEI3sf1QH2C6RBW7sSZo8HxyAOHj1SYOp?= =?us-ascii?Q?i0YELkO8TwRezhybP+IVmWzwKbCDAnP6IUF0Arrv1dgmN25t33h+tDcPhpmx?= =?us-ascii?Q?l2rXh9M0rmCVr08LUM75RQ/DfW8xinigZyAFj3OPAA8uwW5Heu15VKgcB6MZ?= =?us-ascii?Q?84/39LTPIX2MO47G6u40LZP4Yy/Jf1s5EMfMceJzW/wYeyrr+qtug6dJlc+3?= =?us-ascii?Q?vpuDoffkr/ESrC81Jyf4bX/hYPvdt1yJtet1bh3QB8Ka8nPpGQ4XUASntqoz?= =?us-ascii?Q?2yRFOz+hMvAf6l5sj9MQBMmQmgrZT2bVEdx1jhME53AaLL1LTPQtxsMTZNNb?= =?us-ascii?Q?YJnVSPvjLX4lL4axTH9Wn0ZKJjf2vUwzp6Q7OZMnagu1sCgzA0Xo?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7fdf4201-09fe-4aff-6bf9-08defdd11ae0 X-MS-Exchange-CrossTenant-AuthSource: DB8PR04MB6858.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Aug 2026 09:06:07.6044 (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: 1aECjrrFUFmfhl5Egy7h6x/B+HbDaClCVfBTM4s6/WNm1XL5cCxSTyLod+tbKLqOOwWTX/25KUnZeYeipHMNIcEI2Bzi1reoS3mlR6lG4sgh0Au7Fo55fm9g8AWp0Le0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR04MB7146 Content-Type: text/plain; charset="utf-8" From: Zhipeng Wang probe() creates the IRQ domain with irq_domain_create_linear() and only tears it down on the remove() path. On the probe() error path after the domain has been created (the fsl,num-irqs sanity check), the single error label just calls clk_disable_unprepare() and returns, leaking the freshly created domain. The domain-creation failure path happens to share the same label correctly only because the domain is NULL there. Create the domain with the new devm_irq_domain_create_linear() so the domain is removed automatically on unbind and on any probe() failure after it has been created. This fixes the leak on the sanity-check error path and lets remove() drop its explicit irq_domain_remove(). Fixes: 28528fca4908 ("irqchip/imx-irqsteer: Add multi output interrupts sup= port") Signed-off-by: Zhipeng Wang Reviewed-by: Frank Li --- drivers/irqchip/irq-imx-irqsteer.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/irqchip/irq-imx-irqsteer.c b/drivers/irqchip/irq-imx-i= rqsteer.c index 87b07f517be3..359b8ebc1bae 100644 --- a/drivers/irqchip/irq-imx-irqsteer.c +++ b/drivers/irqchip/irq-imx-irqsteer.c @@ -236,8 +236,9 @@ static int imx_irqsteer_probe(struct platform_device *p= dev) if (irqsteer_has_chanctrl(data->devtype_data)) writel_relaxed(BIT(data->channel), data->regs + CHANCTRL); =20 - data->domain =3D irq_domain_create_linear(dev_fwnode(&pdev->dev), data->r= eg_num * 32, - &imx_irqsteer_domain_ops, data); + data->domain =3D devm_irq_domain_create_linear(&pdev->dev, dev_fwnode(&pd= ev->dev), + data->reg_num * 32, + &imx_irqsteer_domain_ops, data); if (!data->domain) { dev_err(&pdev->dev, "failed to create IRQ domain\n"); ret =3D -ENOMEM; @@ -284,8 +285,6 @@ static void imx_irqsteer_remove(struct platform_device = *pdev) NULL, NULL); } =20 - irq_domain_remove(irqsteer_data->domain); - clk_disable_unprepare(irqsteer_data->ipg_clk); } =20 --=20 2.34.1 From nobody Mon Sep 28 17:49:00 2026 Received: from AM0PR02CU008.outbound.protection.outlook.com (mail-westeuropeazon11013049.outbound.protection.outlook.com [52.101.72.49]) (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 B48FC3DEFE7 for ; Wed, 19 Aug 2026 09:06:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.72.49 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787130380; cv=fail; b=IkyB9HSsz2ZKHeiESeXFZKMTmOK4ilgcCY+ubtL0o8oeBGFI2eyj0R0DU1hRO0k8oXiCmdt0DmoWNoybg0AszDriL/4jK1uyXqvdtwkvsioVG0HEGHZRv9tB9S0tE533PnAkB7MwQczocAv3mbIWq1ZLxX95oxouQFFCKAfh1jE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787130380; c=relaxed/simple; bh=pWkS3cdL5OJqnnowFYu/FtB77ft5avkBdioqnh4jLL4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=SWzh8qr0uoSCzZnW4wVea0BssNSRCaV3KeEGDXwd+J3U9bE8uZuOLNLZDbpNgPLTr7Q29MNvua2fPWAYvpeD+WnM8xbHXnSI8U+47Ic51BtbqTuQ7Gj9ppJyevIa3F6BKWK93onURiS0snbqBNGWXBhHN7zr9HpiWikiXS43tz8= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=viW/BnIm; arc=fail smtp.client-ip=52.101.72.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="viW/BnIm" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=giS2YrfryMgBo8MRPosGrshJDPPzS0uGFopwKkAGfKgkiQJskGHl1w8V4f25lYHYE6QholIR+pmXQrw2VXvR23W5iQJnt/PElE53hGoGPeCublxqAJ9vMfuiWD/JtjSR7Rt3FmarMn4me0Yb85Z5BggodG0Zv1PxQhDMm79nluMjEisp7YYS9HfztILYR8OGP5kXvIGOPK0+IgB56+sgZRI2a3p59ZRSQBL/SjrvDoRjuxiRsHwjbZJ0mxr5QYd0R8B5FeQs2CnCFiR9uhlhmL9/MracXvvI8Zaa2jIpZfz65+5njsbhv4uh5EEf7VHrCDSq0iFYb700A/Avfz55Kg== 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=uYEEfcY73i36BuSNO5IssxA+An8/kcDOuUdsf+L5IlA=; b=AMaguJE64paZx8DHcGqwIDhw2xIwF92KNLkMLzLVlQGpgQo1q66R1gTEQNU6o0hmvboNg6vRi/+3YgOXVFKR03FG0tBso5nhqSdrz5yxvH7+Lfbpythnn4ouMYAaMCetQeHtaSqR8X7EOG0boHjwz5ZjXQyq+7IW0HjGueHf+Mvp690XB16CiCf+rDWCjSj5bOwUWIeAFP3JX+0PFU9DUBHR33rxyrlurg8CuKXRwRv79syr0YxpJO4CKIIHaUkPXadpsxYeoMxnPYHVV4BiTlMcEZX5mxhLHChmYyufkBsvMhsf9VDUN2z+CYIXkQmpTSk5SDAUHd33WyJePEMy2A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=uYEEfcY73i36BuSNO5IssxA+An8/kcDOuUdsf+L5IlA=; b=viW/BnImo0YTu9o+0+jUDJBHvB4hKny1iFDSkDyO5xTjkQDLv48hUGo1TTzxvg4dY6cXatVbgQl9b9NSs8caWmnoUaCpyP+zhPtMFPpei4IMqssgKqBXgGXO26mcSIPnBHCgJ9LUmQdJMd3ApAMOebOFSOglNjqhpz3e9FxUq7iVFk5AtygqTdq5s7quzCtIBjUDu8eZfZciNBwGp2I2tFycHgn4JLrtzjk3brpKbqx0f99hROXy6tsw19Ns9oVePJ83bSuywzFdAoqXTVqNh2ch1h7JLjtvZPWDEDFPQCn9LZ3Gn2q1FfEySPMdsA66Qy+hI1Iqi+gAVFtHLYE0Qg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DB8PR04MB6858.eurprd04.prod.outlook.com (2603:10a6:10:113::9) by DB8PR04MB7146.eurprd04.prod.outlook.com (2603:10a6:10:127::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.339.8; Wed, 19 Aug 2026 09:06:14 +0000 Received: from DB8PR04MB6858.eurprd04.prod.outlook.com ([fe80::bc6f:5fd7:462:d0b5]) by DB8PR04MB6858.eurprd04.prod.outlook.com ([fe80::bc6f:5fd7:462:d0b5%6]) with mapi id 15.21.0339.007; Wed, 19 Aug 2026 09:06:14 +0000 From: Zhipeng.wang_1@oss.nxp.com To: Thomas Gleixner , Marc Zyngier , Frank Li Cc: Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Jindong Yue , xuegang.liu@nxp.com, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org Subject: [PATCH v4 3/5] irqchip/imx-irqsteer: Dispose of parent IRQ mappings in remove() Date: Wed, 19 Aug 2026 18:05:41 +0900 Message-Id: <20260819090543.585131-4-Zhipeng.wang_1@oss.nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260819090543.585131-1-Zhipeng.wang_1@oss.nxp.com> References: <20260819090543.585131-1-Zhipeng.wang_1@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR01CA0181.apcprd01.prod.exchangelabs.com (2603:1096:4:189::13) To DB8PR04MB6858.eurprd04.prod.outlook.com (2603:10a6:10:113::9) 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: DB8PR04MB6858:EE_|DB8PR04MB7146:EE_ X-MS-Office365-Filtering-Correlation-Id: 730d01fd-bbb0-4f0c-3528-08defdd11f23 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|1800799024|366016|19092799006|376014|10067099003|56012099006|3023799007|18002099003|11063799006|22082099003; X-Microsoft-Antispam-Message-Info: x/xz+AOfBydVtHHP5c2tLKF5F9UubSW+LCjE0t6IHN8El6MetSrkwvh1uqPId6b/+Rpbw87pRa6IVy/XLPX4Y9M3Qfz42cHRNc0AfX6tYhigc3dDlEN9tNm1gAcp8Z0A/Z7jO4Q8AMu2Qog2O48KycdndPgyQumrp/7vY0T3ulT+4PfEtBONeBqcjSsV53mCjdOE2JeU/iQf3u8Wbh2byPGTCD6fIbXfAB/k+pv7NZhHlbV2pIXGXMd+rYvgE0jkD9eC4sUDa/+J+3X7/e1m+uUW9+bT6D37/0blmjyhx6f9FkZ7MS6rasn5yVZN074jAgTqleFTnFd79OPLJJU1sgwAdWM2Bqg89WapG7FXGrbVtPnriqbRyHjxnvcu4GNAdsdzMNMnXLiANvr8RIlOgDdqkKINTZgSV39D7/JmnRHwyItuRNx9NZKwEBX/uqWW/93nRue8Mm7d6bBm7xe905NgUeUSk01a9EWhK/RRCC6UCBcbdSss2nZL1iVO0z59oLHMgkZ5SDz2bqLzUeDsoeo1uViSgMZco7pqzGMJstKaQ2YvDb5xElFQxjPa5MxiopXRMUV06gNOmy3JpT6Veov9Kx4IY6Kpvz71FWy5RJD5RhiEauoHedg1jMxiGGTz2h+urhiYSK7xJOSqthhEDibZLNLSau95HW5MzN/HFLk= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB8PR04MB6858.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(1800799024)(366016)(19092799006)(376014)(10067099003)(56012099006)(3023799007)(18002099003)(11063799006)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?uJB+MkKTgkfYfy3k+FO3QpajC9CSf0/kfy1n/pDAeqntQcxDI51eolgqDQHh?= =?us-ascii?Q?vspA7omJ98LJyXbyfFlPkvxRuBQW6i38Bbinmyw9+Onb2lF9y9gb8kigdDcj?= =?us-ascii?Q?R3PmAHTAgw8nPwGOTLvq6wyrmNvomeyOr9VhZXv1cCltb+q/Y5q8ExqeCgxf?= =?us-ascii?Q?++nA95EEanrmL7wWXXUEDTga4rRuTYAQ8ELgzDkywcdKOIayxRkml40QqrrA?= =?us-ascii?Q?o3icb1cxWXfWxL7YSDZeZaVTqOS91CFTFiC7IdMWo5OpTrmm1dEKhwte7Zec?= =?us-ascii?Q?iHh1bW3o2isRpIB2bn9/QJldeqS3ZMr0epxShGrGFIwL8pVV4NGWJneZkwI6?= =?us-ascii?Q?sjfa/c0Un86qnwhVFU3B/tfEZzohJkCLmV3OCklSCHVpacKgERP3h5yl65An?= =?us-ascii?Q?27MD/uko1AdqTO1y2cRJOnZTEoX3AHPFH1ZC02pWxxhMXnRPKqt1c7VTwjIv?= =?us-ascii?Q?CxxrrH/LCke6qNKB9tMUuMwsepwwS25RJSHRFxiTGOjF9BWCe7XoHMnh+pKu?= =?us-ascii?Q?Si+kQajiyEgDnNbJqNpH1AvXHKrWL19AqgTALUASCQT4CbJuhrHs7q1sprIb?= =?us-ascii?Q?TRUumGYGOqZxmG6kz/1GYgrR/+M5+Ey5aTZhfmcqEWSmNLWZXuNKOktvcce5?= =?us-ascii?Q?shl0sV24g7erKifzXBc4MFYQYwDEbukJXmX0bN1TqOtc9Reu4fb0Qy/R721s?= =?us-ascii?Q?lHBw2MKpYQ52rfN59GnB1RBWfaI2gmO+P5GymVuWZOuyRYNQ5fGdGQeK9JCz?= =?us-ascii?Q?TysOxO5jePgZFuei80EnOZbF31i4cID9hHWFLQ5A6C6UZqNsKwpWykokagCu?= =?us-ascii?Q?PxFuO7k0AS7CWNAmQ2w9tCtqNcATChTyOaF1uW86ykjmp9D7SQZ8I+nQYoEY?= =?us-ascii?Q?KMea3d7p2MZwXleQawwXbF2mfY9Cy/mU4GKr0BY1jvNJFexbocHOzqpsoXIL?= =?us-ascii?Q?uPkjcrjmdnWmt4hSBwhUJk+P7pFwpEFGpanOZqdQ8f1bfLE8fZha/DayO/eT?= =?us-ascii?Q?h+rUYgYBP0nYJBJVFnMsI07oAB1m5Rj+tizxGn97P4iwjDRluEP3UIyjjPSM?= =?us-ascii?Q?DfRL9Otc4QSLqoDIa+vd0N0bW2dZMR0H2woGwMpmeY3cEjX25OIZasbBesmn?= =?us-ascii?Q?5oGv6zcEHw3aoBCi8xWMRyqUlnWWeXk8wSLAbU25frfp86rgJAVP+GtEUkMy?= =?us-ascii?Q?ZmKjrI4ipZW85stxt01evZwx5qESFpGKLWSAbxb8eDtezGOL5onvyG7rzK2Y?= =?us-ascii?Q?X+9ubiXXqjkCxWKbR96SzC85JXqGl8oHtITgR92ftjWGY5Xiquo1Mw3xFU7u?= =?us-ascii?Q?7rrCtMH++sVt9uozYEpRF/1eW8phAsj25oscoAfkRYjZ2k2xWR3dM+ZgL5MW?= =?us-ascii?Q?63jzNcxiUXwJmjHVhjO05e7mjikDNhU2bnoHmCsupnsbjXom61IrK4IAFcE8?= =?us-ascii?Q?dL1R1U1azvp0exCvQlx5oaunYvj2D11e+onv75WV2BfPGHNwVRc6wiUCfZeF?= =?us-ascii?Q?dGog1MVKW+tlQCu5Neb1BTyAB2gB3Js0ciAOcAX5G/BK1COwMMspyi3DERkx?= =?us-ascii?Q?Tvo4Oiq2NAf5h+4XoGlFSFYvEjuEQN91zzd+KqJsFQoHAhye0UJgX3Go598l?= =?us-ascii?Q?GxhvVPuYBUiS0VqemPlVetEB2iCVLh92MeaI9OGLk/qAOxgn6v1iPK0w6KOX?= =?us-ascii?Q?iZfgLpW5osMDdMVchpl8FfBS/0zre8rbK23WJtluPXmUSvgLZwrXcn3r8He0?= =?us-ascii?Q?0E/4D5xMgn2pUV8BDN7/5ujxJRr38Ugn2z8yWMCuNLMSiKSuqUsk?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 730d01fd-bbb0-4f0c-3528-08defdd11f23 X-MS-Exchange-CrossTenant-AuthSource: DB8PR04MB6858.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Aug 2026 09:06:14.8435 (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: 1MZdA7/hiCHjvCyWp6mDER5XJqffRGzVp0Q2TeHNgWYWyQZeKwx3Ouam5OcTunNtNYJ9umeJoPnbSxmJFUwBoI1Zi9jivvlgKow3dPWPaUVj6TubYQxxjfbXSz5wlsG5 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR04MB7146 Content-Type: text/plain; charset="utf-8" From: Zhipeng Wang probe() maps the parent output interrupts with irq_of_parse_and_map(), but remove() only unchains the handlers and never disposes of those mappings, leaking them on unbind. The child mappings handed out by the domain are freed by their consumers and, together with the domain, are now torn down by devres, so remove() only has to dispose of the parent mappings it created itself. Dispose of the parent mappings alongside the chained-handler teardown. Fixes: 0136afa08967 ("irqchip: Add driver for imx-irqsteer controller") Signed-off-by: Zhipeng Wang Reviewed-by: Frank Li --- drivers/irqchip/irq-imx-irqsteer.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/irqchip/irq-imx-irqsteer.c b/drivers/irqchip/irq-imx-i= rqsteer.c index 359b8ebc1bae..320082d3a632 100644 --- a/drivers/irqchip/irq-imx-irqsteer.c +++ b/drivers/irqchip/irq-imx-irqsteer.c @@ -283,6 +283,7 @@ static void imx_irqsteer_remove(struct platform_device = *pdev) =20 irq_set_chained_handler_and_data(irqsteer_data->irq[i], NULL, NULL); + irq_dispose_mapping(irqsteer_data->irq[i]); } =20 clk_disable_unprepare(irqsteer_data->ipg_clk); --=20 2.34.1 From nobody Mon Sep 28 17:49:00 2026 Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazon11013044.outbound.protection.outlook.com [40.107.159.44]) (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 66A1D428475 for ; Wed, 19 Aug 2026 09:06:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.159.44 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787130385; cv=fail; b=Vju8ZyI6LDu/PEpqQLxYGo9xz/S4BdF2gFyyqytUZheDLZH1B6D0Vut77GkWRYqQZtjnfTbmePEfwbT0zX5IEaUh9Vf+Dk5Mzdmn9PMyGXCocvsrTXY7EgwdpCismr+6hmmCKTAZNu+d+hdxDRCHLjVMG2tdN9r2XauIE/vs2Uo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787130385; c=relaxed/simple; bh=t5GHvW1qHYwVx8FzbVieIRwNg9V9T4DlfCBpsL6pNbY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=HM33gHnVzkTMkZ7aG8RqXZGDeXvdT5VYTINhtFgWTNh96VKMSGCBDn8QdKw36+6N+kzoknY5ytUZv8+kltnBkLPPmO+8j/uxhkzIybSPtMzeMox938AR3dXfMrK4S7Qb2Ru6cK0MeSrBzR7ey94eD1m0VVw+iiDkYqRUdp0nQK4= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=bhb8YFGp; arc=fail smtp.client-ip=40.107.159.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="bhb8YFGp" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=f1MarTZTqJxoDp/A0mpq14BEHcrgvsB4wZ7dnor0hv7fEw7NyzbZADZyPB9xemdfyuDDcUiTLqCe6lb4MZMET4CcWvgKOh8DqBuEBYpbqDbzbLTcDCnyDZkuGJfE4WnJ03LK2sqr6qpGuOq/Y0UciC98Ybrv22fJtNaFmlh715iSnLsy4nG0AEU/MJ4Z1f3k9EdT5g4DfP23cT6PfkKpk/Jh1dLt6DeOB0a+cQnxA+2VNVLtNZ+gfbz5BSoKBOlC/b4k1GC80IChsFMZRY+O5Vj1TYaz1HD8N6hcb4/L3E8f0JC2tPd4CJNLnIUtVmbt1DPk+ZW+g/O+zsvq0uyQlg== 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=CkG4RTLydpfb+niJA2MCsCk5RkamA7epFRX1PtStDTM=; b=nsIRmySjy/cA7IjAdMPKVFoUKLpdPsXoxtAa9971YDZdpEHebW8Uek0bQ6QNlyU7TgOHeknR/RxZ0r1KP+1PBmAsbVzFKaxv5y07eDc5i4YfIj4FznNsY22spjp5UIPGRrJHiq495smGUnATD5OHhUXwROrozo+ESPWWsARLMW01ggOvrpBiANM/GDbLVBsvKgTJnhelNJXFC17nSHhdBKGqdciipg2C1LBIaxFGEUhOQiuNO5sih0Z8kqbO0steVaSWFQ89fv1AWfO+wahSrLH/5fPEAj+hVoHGlHbIu8+8l1Q8HCXvzLCUQj2tSrE8VA3iYrkC30tsgY3AYi0feg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=CkG4RTLydpfb+niJA2MCsCk5RkamA7epFRX1PtStDTM=; b=bhb8YFGpztnLgQtrDCFSFQowB/yCI+fX7O53XuUq2s4Pcm69IkNAzpX7HSduvzVMMG9Gi0My19WQcmizQVgSrqFSmWHXdz5DU4Kb7B1yLoTn0d/cxDyOEF4pk+EcQ4pIDVasyJaGSYHq+1LphPoCc463Y+Q80CpmhGYOLcG7uPmxebaIHRP5GQcBty9GZk6RC9hcXuN8xA1EY3/3npARuDdjfELVMV128PAb47Q2q5DYxXjwNh90b9/ECd0IiD37jragB/srjLBsmYoUV15dB1xUaiT0uX6bDlxtnTbnJTJNaNxtm9CYVaXGjEr8ed1WgtwJxdXTcwJ6hVsaOiI9Gw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DB8PR04MB6858.eurprd04.prod.outlook.com (2603:10a6:10:113::9) by DB8PR04MB7146.eurprd04.prod.outlook.com (2603:10a6:10:127::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.339.8; Wed, 19 Aug 2026 09:06:21 +0000 Received: from DB8PR04MB6858.eurprd04.prod.outlook.com ([fe80::bc6f:5fd7:462:d0b5]) by DB8PR04MB6858.eurprd04.prod.outlook.com ([fe80::bc6f:5fd7:462:d0b5%6]) with mapi id 15.21.0339.007; Wed, 19 Aug 2026 09:06:21 +0000 From: Zhipeng.wang_1@oss.nxp.com To: Thomas Gleixner , Marc Zyngier , Frank Li Cc: Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Jindong Yue , xuegang.liu@nxp.com, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org Subject: [PATCH v4 4/5] irqchip/imx-irqsteer: Mask all interrupts in probe() Date: Wed, 19 Aug 2026 18:05:42 +0900 Message-Id: <20260819090543.585131-5-Zhipeng.wang_1@oss.nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260819090543.585131-1-Zhipeng.wang_1@oss.nxp.com> References: <20260819090543.585131-1-Zhipeng.wang_1@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI3PR01CA0005.apcprd01.prod.exchangelabs.com (2603:1096:4:296::13) To DB8PR04MB6858.eurprd04.prod.outlook.com (2603:10a6:10:113::9) 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: DB8PR04MB6858:EE_|DB8PR04MB7146:EE_ X-MS-Office365-Filtering-Correlation-Id: 2dbda0aa-94bd-4a7f-7616-08defdd12319 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|1800799024|366016|19092799006|376014|10067099003|56012099006|18002099003|11063799006|22082099003; X-Microsoft-Antispam-Message-Info: E7DVAzX7Ea6dZ5dMJxM3sHzlZ7wp8msSKU2iIJmZ3Vb8nyDlKoTkeuVLXY/PznXJT7rwlBCWiw8kFJcJgoC8S6V+0KlVLURRoYfdipAfdTSbztZjBz9Pf1tc/zOy4UJi+X+OBeqNkQTu6UfebAkAo4iKHub+m576otVjNDz2Ct8HPoTiZQGU37g5mhBZDIX04eKfj0zaOJ7W7+nkdte2X5TIvrra9vtYNpBcajL6p4fmf6G18fRdgRoNgIWQxpQFSbk841jqji/1Sl4LmnV43RaIiHeFujy1+Qw1gwWfGHzhFFCjdxBrF7exB3G5xSOv/mUUs2hbiqyhwMVOP4PeEHJMMu0cmRvZTJCR/x6xbFdfAe76D2Xle/icb4T6j9B4C/6zc4Zgl4r81cWQZQD8Edu1aXO/1ezgBJhujWSTPmwSsVDjZ/bSCg+0/AyAtoHhxioIQvIairpKRQT7mvHCMKu0WKp+/ah4XZjCTmI6gLYNP91KjUMAx30rX3TdW3/FcTIgZ6MBRegluI40d3Vzlllzv2J9tRl5Coz8ystDp8STH6Q4oc4vxJu8DBaCNoQRXHvSRGFblmBNtSpK5tp0KmgeI0bUKWV92M95CxrwTXM8HSH4encEVueMDhXl4nf2G9BrCzci9lh2cPp8+8HitPHhtf23hiqriUP1DCndr7M= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB8PR04MB6858.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(1800799024)(366016)(19092799006)(376014)(10067099003)(56012099006)(18002099003)(11063799006)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?cfHj6fG2pCgVRoTjl9m8IxKKyr5uPPozyxTZDCqX/MclYBTS64cig8W0xGJR?= =?us-ascii?Q?vDIhSScXEG7UVpwjBO/h5JN3TDtPKAL+eM/O/0qMwjeVQ+pDnoQDEOEye27S?= =?us-ascii?Q?oURI7ZaWU7gYvWMkMl6xm8ll6iCYf3XbvBHPWPd//JIG1N10bY72uTf8TYK7?= =?us-ascii?Q?O1V40fb+GFZ19xNalCRHp/8ddTEA3EvzQ2l9A38SeUJ++CEmw/CXpZwWDTvm?= =?us-ascii?Q?R+ShhwLU5ckbEY8casKrYqZdxNiuzd0hPuU4BfvQbRZat/BPr8oy0JctBgml?= =?us-ascii?Q?gfI3VDKwOpm+oFLt52kMyTEIMBhtfh+umKDKIrXaNoYB9OdDIvWTsrYHjc3w?= =?us-ascii?Q?hfaXjyblH2rzd6r/xBCeVnDYooQAWDgUOt3LMlaw1+qbpqhfXxdcw5kglTPD?= =?us-ascii?Q?9+xvTCqKC4nIHCeUkjTvL/tif+Y4oUyhLgJ1hKzPMTQCxfr5LTcKKD4oJ6mf?= =?us-ascii?Q?jryrBlkQ2Mi8udORwGHq9t8PmuVXxSR3eY06QXbFd/pQLGuOVU2WFm8hRea/?= =?us-ascii?Q?Caq+tDa2THSYgt+5FLUWY898plQTPXUn25llgf/t/QD/yrp0DPTYSVxZlWpu?= =?us-ascii?Q?P1bZLqKiaeA4mi47A1/cNzruiN4koqoaIRCX8FXXiJ9AcTnWdBgzkC9RhdxS?= =?us-ascii?Q?EZijO3bopXACMxlOCmMCm8gRG0DkmMalnvusqxQa8Hmlh/U/tXmupIcJ7eIo?= =?us-ascii?Q?eGRs2OCdOPbDAfklxfkhyMv8Jic4B8nvme3TSzfdaYKv3uRtuXl2wnxyV7G0?= =?us-ascii?Q?rioQEV7D92aQwHEVe6YoXwwvrpsgRSAvrxzcj8ZvzKrkzGmM7QVXbdAsAv3t?= =?us-ascii?Q?qu+ll4yEaT6eldzIO3FqTAEgADNBMl0kJYk1r+zBoX2WxVKsirtwqerMl1Tv?= =?us-ascii?Q?9Z97OCZ8jV3ghHd3tixbxhzjIH62m+zCkIbCh1ZbgNQ+fo2NpkcnoXCDFnf9?= =?us-ascii?Q?+9axTchcRdAxOxvT3crhbNLUH7mam1seZoWRUQkoC+QZJ7g6z2VYR+jqzClm?= =?us-ascii?Q?4i6CrlnSbOrHyMcxhI6/Syvykdlv2aCxbACzEdf8f7753bJ+2i9KsJSPmPUf?= =?us-ascii?Q?9x93Yg3y8yobaHQoZmgcBPA9f3yyaa5PJB50zU6EEYhh1wbo0chQl18pNStI?= =?us-ascii?Q?XKtH7jJNhexzMWmjsYv7dyMAj4UmYNsbmiMnGByestmSApchgOrZVFKG1mgL?= =?us-ascii?Q?HVQiV8iAtR1wGspa0MEjbLvkyoefkt5odrBjPu+gM3JNANq7UZ/qremC5Ugv?= =?us-ascii?Q?/44RX6d5woFL4w5KtKOtv8ip0JVJLO6ybcwxum2M/tASxhPeQtkxf+fzuCvD?= =?us-ascii?Q?pd/4aD6kynWr5Gbq4VyKvtZuU1hT8XxZqNCUnYawlnc2BaskhviOwaap8E6d?= =?us-ascii?Q?yBKME9v5X/QEs2c9Sphwq/+2LZhx2d4JXFcweCnbHcC8ir2MsRg/keknawHU?= =?us-ascii?Q?yeT+reBsildoY5z0/fMcZyM4zaW7g4XCietrJvfif92+AufK4it07XoGk8/u?= =?us-ascii?Q?wqIx/6rugRvzp8+FrnyTzS0PcPYI5ChKEW/Hg8CBR3/cyZUAd9G/JBE52wGW?= =?us-ascii?Q?M+R7gyWiVJ1W+epLd6PqUcjSQ2kMVmyF4hVNNGTv+5nT6VRvEK3eJ31jZTlo?= =?us-ascii?Q?4ExxRHaV+fwgVanKG0xtVqwQpBlFkB8Z460M5H1UJZ2n/8ngy8C1VqvQx1FD?= =?us-ascii?Q?MGGs6r18K3pVgWGPDqwdV623dBwPYVGBDrH3PzzwrUKZst2AgInGWwAQY70+?= =?us-ascii?Q?gbctI1ZtPLFn+cNORhy3qJcwoL12rPaMBDStIJrEtNkB4/wCKRbP?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2dbda0aa-94bd-4a7f-7616-08defdd12319 X-MS-Exchange-CrossTenant-AuthSource: DB8PR04MB6858.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Aug 2026 09:06:21.3266 (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: GgAANtDetF0xQtf3KbSZYHGEix7NsHUtknWdjtfs1JYsROre6ggNogf/sqsPabRuiBQJ8D+gMrMgbk4l74yfbE74cZkWwGtMgfDt28HfxuEyGv+w6Xt/Ry3/KjxHbesd X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR04MB7146 Content-Type: text/plain; charset="utf-8" From: Zhipeng Wang probe() sets up the chained handlers without first masking the input interrupts. For a built-in driver this happened to be harmless because CHANMASK resets to all-masked, but once the driver can be unloaded and reloaded a child interrupt left unmasked at unload time survives in hardware. On the next probe() the parent interrupts are re-mapped and unmasked before the new domain is ready, so a still-asserted line immediately storms the parent with no handler to service it. Mask all interrupts in probe() before wiring up the chained handlers. CHANMASK uses inverted polarity (a set bit enables the interrupt), so masking means writing zero. This mirrors the sibling NXP chained mux irq-imx-intmux.c, which masks all sources at probe() time. Masking is only done in probe(), not in remove(): the next probe() quiesces the hardware before it re-maps and unmasks the parent interrupts, which is the only window in which a stale line could storm. Masking in remove() would also mean touching CHANMASK while the device may already be runtime-suspended with the clock gated. Signed-off-by: Zhipeng Wang --- drivers/irqchip/irq-imx-irqsteer.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/irqchip/irq-imx-irqsteer.c b/drivers/irqchip/irq-imx-i= rqsteer.c index 320082d3a632..a9909ecb6fef 100644 --- a/drivers/irqchip/irq-imx-irqsteer.c +++ b/drivers/irqchip/irq-imx-irqsteer.c @@ -236,6 +236,14 @@ static int imx_irqsteer_probe(struct platform_device *= pdev) if (irqsteer_has_chanctrl(data->devtype_data)) writel_relaxed(BIT(data->channel), data->regs + CHANCTRL); =20 + /* + * Mask all interrupts before wiring up the chained handlers. CHANMASK + * has inverted polarity (a set bit enables the interrupt), so writing + * zero masks the source. + */ + for (i =3D 0; i < data->reg_num; i++) + writel_relaxed(0, data->regs + CHANMASK(i, data->reg_num)); + data->domain =3D devm_irq_domain_create_linear(&pdev->dev, dev_fwnode(&pd= ev->dev), data->reg_num * 32, &imx_irqsteer_domain_ops, data); --=20 2.34.1 From nobody Mon Sep 28 17:49:00 2026 Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazon11011040.outbound.protection.outlook.com [52.101.70.40]) (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 A60F431716B for ; Wed, 19 Aug 2026 09:07:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.70.40 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787130430; cv=fail; b=RhJXIZP43u+9mh2E9RxCZxFwRmzF3YRzOOvEeUJFGvvVTz3M3XtuMUn8bI/Fu3FknfX0lzXAU0ir2qPW0HxAkOKOzkgPTvR1fx49KScNXasVzu6+KpNTZGl3+zJPl3BMH5P2VYm3soSPfCtDj9go0H8ABNkybJ5MiyITuYMYHaU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787130430; c=relaxed/simple; bh=plGhRjC4P8MOCs1Vc+lU+aY3hlyNZS9XF/ibFk3FZvQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=BMmi7KuNjomM7weE1F5TnJxefuqaJ++LymTayAm1VDbp5gqFrxGs5pnAKzHAYvvHubxWRUOnvgcMG9dHPCGaPlYaKAtx7H+0H1TgtDF/G2zE50ZvgMW3PdbvpWN6UV6ID6DrxAUy272eJ0ORs6VF9vpYnuuciZ8eKkGg7JoYi9E= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=sNzuUAAV; arc=fail smtp.client-ip=52.101.70.40 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="sNzuUAAV" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=fkaGXby20Yh9UMxhaztmTi7WMjHtAzS6eDBssqalIbXgnPb8Frc0veN3ocxLzwDClV7YF96DiMX3xWMfdPSVyci78T+Je/yUDuQukCKlEc4RCG9Gyd+qRS3zl6wlDXR7oBBKkPw9biwVn/i+MjFDn3g/23AFyHD/T7zcfwxtjuyIXGgN1ZoJwiHz0znFDqk+VSUls5LvKBos21whxG6STI33TTwBu/JZcdjNG94uZKESxrwFLQ0+o5NTpJNN9LQgWDJTSlASfMufLXD2leYgg0VUjyQdXibmW8/JS9GkYN0yGhqheM1v5OnZoIK679AC6T1uIRAPfzInKAP47tlXNA== 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=xNx6eBfl0N811jz1IxmswtYitC8wLJOihiiuJw78rK4=; b=LCNiDASlUtVp5d4kow9l90qX1l06AXIrNKVHe5L/mCj0d/LZdDdTRukRsdm4zkX9Niyoizb9WqkvsXtUgL7XlehZi7ldYkQtGpr/ph5T82Tjb84I4ZkkhDQ1foocwLFhMNsTNLbon2w60w7i/JMQfwWR+D0uzdEbRSyTatz3vw7jKkMCAbsLLeAYtlCqAKn1wBtR9u+Xc92C8eE14Fyq6s4TW2ZelhPluRPZFa+eGI4MAr7XXAedoW1tsM7DR4VrRMB77s7VXm9fGJIOLbbjSE0A9K8WFUWt92w1JiKD1JepNrBcxvekC3Yb1Zy6yuJ3oxJZkAJCxYykQfmjLdiucQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=xNx6eBfl0N811jz1IxmswtYitC8wLJOihiiuJw78rK4=; b=sNzuUAAVObpUSWlHPyNw2ySZlued31e1QRrhUbCA+Z+C4d7qtdta6QTfQ7NKAN+WqCcqq6Xk5HmqCY03zEu5w7UasjnkxBzOPsQ/N9R6FYioJDpRucxpQAM07QIygzJ+/eFv9oiewCdAjVRNgKrBFGvm/wCu+c1iqlWWDq5ta2Ld/fr3A1o1XkJDSt4xWf7QEeqW/d1L5XjNFqE+o2t5Jq5Al1vVOueRPRyzniW6cgpuawLHvQuBpjgZpKenOjL6/NUnCVoqMBvNjgB0ATE51uJOM56pNfIsu6aRKYPE1e7F3T0gkkVtrLdED5mwNImnfM0+Kcgvm1kfH56qgIOI3Q== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DB8PR04MB6858.eurprd04.prod.outlook.com (2603:10a6:10:113::9) by DB8PR04MB7146.eurprd04.prod.outlook.com (2603:10a6:10:127::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.339.8; Wed, 19 Aug 2026 09:07:06 +0000 Received: from DB8PR04MB6858.eurprd04.prod.outlook.com ([fe80::bc6f:5fd7:462:d0b5]) by DB8PR04MB6858.eurprd04.prod.outlook.com ([fe80::bc6f:5fd7:462:d0b5%6]) with mapi id 15.21.0339.007; Wed, 19 Aug 2026 09:07:06 +0000 From: Zhipeng.wang_1@oss.nxp.com To: Thomas Gleixner , Marc Zyngier , Frank Li Cc: Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Jindong Yue , xuegang.liu@nxp.com, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org Subject: [PATCH v4 5/5] irqchip/imx-irqsteer: Allow building as module Date: Wed, 19 Aug 2026 18:05:43 +0900 Message-Id: <20260819090543.585131-6-Zhipeng.wang_1@oss.nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260819090543.585131-1-Zhipeng.wang_1@oss.nxp.com> References: <20260819090543.585131-1-Zhipeng.wang_1@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: JH0PR01CA0089.apcprd01.prod.exchangelabs.com (2603:1096:990:55::20) To DB8PR04MB6858.eurprd04.prod.outlook.com (2603:10a6:10:113::9) 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: DB8PR04MB6858:EE_|DB8PR04MB7146:EE_ X-MS-Office365-Filtering-Correlation-Id: 0b9ff18e-30d8-4a86-b531-08defdd13db7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|1800799024|366016|19092799006|376014|10067099003|56012099006|18002099003|11063799006|22082099003; X-Microsoft-Antispam-Message-Info: ehkOPF77snXBqRwdAfHN2L2HZppjeUQ3lSKktQeNxlmJlYtQfSumyuhAsHSluBzJFShPG5iPv0LD5WyrmiYUoNrB+2uElKQNTdoUr//Pp95XL73jldePOnXGneBXgBI927V3UAnoIoTX9xM9BnclWcMKKsi4gxIS2VppDddwRBn0wrrq+bZe02YX3V5/Je6rn9rw1f51eO2Dm0LcaIyEjM6EW0NLADigNC9eSTAjqqo/BJoJo0RPXIQg9KnbGDn0MzS+bq4CpWeJWfUP++qBLUtQNMixkTt0whYp0jlc5boeOYjyK2rUCfSet9w5RWTSFn8M/TFCJapggMWsCjsbQR131VFlEpZOmGfcstRRgjW8zveHCL/udw4JuLCUiAmULbOQ4XO67RdhfPlBBJjrsNFMZtQYlm00r3MRU+T2EUqCF/jXRJX179NVg7jHo4CdgPnOWdzOL5yZxIy2Dv+vySaoLDQxUBFd0NS1r8+LLZOIFkKq6P0+1sovYnXrbTM2bMSH1yCCxk2CPMH5rrq1RrnIEcWrOUjSvKLvdZyuzfbWCLaVI8J0NYHdnJ4lmsy43k3z1b/LMdtDZCK7HEYx3n5IUXW8Ck9BAw+IvrrAzkiUPWAV8Z3jzJsLjsprJsYWcizBT4fmkKFxLDraR4h8gEssqSUSWzgYgIDhwpopdnQ= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB8PR04MB6858.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(1800799024)(366016)(19092799006)(376014)(10067099003)(56012099006)(18002099003)(11063799006)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?JBmuU5k+qGxNtW5/oYYUCH2nmXuRyFNdJ50Xe3lPiXjr5uh3R8Goa+2/7CZg?= =?us-ascii?Q?vl/4YoFrdbVxma8zTr2VGQAooZyQkVNkWAcTvqPE2f+QehEFMS4SHJuhC0Xg?= =?us-ascii?Q?BNPxgRtwfcyvSMvL0W69r5p420f2+mGUy459o2Z7K6mgm39B1hrf9XTRU1vU?= =?us-ascii?Q?v65iNz7w3ESZ5OeF5tQNviM2IaajiAxR9V0PC2ds58rdoTm5nhVuGIHb9csn?= =?us-ascii?Q?Z+oMVTldIz4UvaprCi3FADrWoDOLhhF4KkqOmzeMSMRJJVXpV0LvY1vv8mRD?= =?us-ascii?Q?uqvLlsOUUNHkvSLhVbOAW73Y8k3w9ldCKhVmc95DOEI85fSwJOLZnae41nGR?= =?us-ascii?Q?Kf5iPjc58z4J9uchd8jA19BjdoiCMA6koVRf+sN6a9HCS9poceOrr4cP3m0F?= =?us-ascii?Q?QtgdgnxSEbfFTKEuqZvbG36+EOT8CAL2PkH+HZbIeacKf8z2YCjV1LjjWyYs?= =?us-ascii?Q?STbckagSGYO421TdDvUjxasOvAvVVnN3IPpeoGSsEOJh3+bVr3kZJMGFxTXX?= =?us-ascii?Q?Odrd5k54vtWO/TXTI/yr0NiZLfXXbCcNCkrEd7aCacOuADmcRmULlo9wrT2P?= =?us-ascii?Q?6e18p4cBRlVcaY4eIwwAZBDbUNo3MHxQ25T3h7Spwz/+3pDl63l/Qvndvcs9?= =?us-ascii?Q?gb73YcAdDr8bfDAQkvdaDZB19aLBCvM/GMVW0TFUPsjC5Am98Iqq1pQp7xLw?= =?us-ascii?Q?DA49ACazHDq3D/rhAD/MkSNTM/3PZzcotGRo2eCrSjfWK3chAZRCKPxnGn4L?= =?us-ascii?Q?yr3vr3EPe9OosVPZun2CUzk3M5dRYw+roEIM5oS9/IraU33BFWhDhWejDbWv?= =?us-ascii?Q?cCu2yiVLKCPxDwKeB2Sy/R9AMqdj3QCrDVm0ejQRl4JUaxKEIulW+3Jp4qUY?= =?us-ascii?Q?+ZR/Xt3OKlSMig1Ul0EUs/C7MFQLzKuskYxkMeBK2hJ7iH4RKEYFAJ0dDIaM?= =?us-ascii?Q?oh/zFyER26psNgEwPyesz3gWUxF+dc+voQ5Ok2TXtZxfy4qYBnA/BDccwXbn?= =?us-ascii?Q?xLSsC77c8bqplUtOz48Q2BiVuKuo196cETvaun539IyhelAyYUurMuAzcLei?= =?us-ascii?Q?whquLrCE3EXs3/HTpH6Wn6IYaDXv7xAVqFTPN8RLGRZQp7M77L32H7u1LcUj?= =?us-ascii?Q?sxzmfv2962vRGdcdaNVlAJMZUQB+YfXkkNk9eQhF2lzjNIZZnd76EZH9Qhuf?= =?us-ascii?Q?ZVJ2yZcgrJerx24cv5FIErlCNBhqa5YbvjIVb6oM6K1PFdTTM/8UWNIBZeRA?= =?us-ascii?Q?54af2ilue85RwZHlQf7RGttlND5iFBpjnYGjzNjk5bKi+4vSgMZ5nCQR+FBj?= =?us-ascii?Q?cS+jqezcwB1VfQ27nsVGgBNsqLr3EPT8tPeKgtQzq+Nwyf057Osnx+OA+uJi?= =?us-ascii?Q?4iNtRbytp81uY+7aNgrOpMK750totFovgqo4tqNKA2+92v0j0Z6zq7ezpmFw?= =?us-ascii?Q?Kiw0LPIxDh8nPb7C358Og+AqsIsEPUnr5MDnIHS6vuc0aNaWeziN8VvN8euK?= =?us-ascii?Q?B2hdGyKeW4dQWODT1naC5IFPVeVdSjyuO16gqqUMR3NAR2JG9GvQ5N1Dzsap?= =?us-ascii?Q?MHXH4UdbYRH0Bs6+AhEH32DeNDoYT7eBYZ/eWVE21/Te7+s8vRHWmv2VWUg1?= =?us-ascii?Q?EJY8Rrr1AEmO4NL/mSmJgEOHLJzDpR4K7sk0w2Q7nU0Vm0/oasUzC46BSLU1?= =?us-ascii?Q?YZVildCWh5FRmiQxBsIeUVDoQ3OGxUGJZXP1Cl+b/K5ZG1Fb/l7nIUALjC7s?= =?us-ascii?Q?68RYin2k6gqWIsc3Ir0Q5lMFPhFwwfs3LAAD3M5JIWRa6eDlFNtO?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0b9ff18e-30d8-4a86-b531-08defdd13db7 X-MS-Exchange-CrossTenant-AuthSource: DB8PR04MB6858.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Aug 2026 09:07:05.9639 (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: qjWGXoL9dsCG6m1epfAK/EbYB2n6W1zdPaukDWUMU131/Ryq+g01tq4pFMpOC2BbBpWHdAYSjS3gpkixy3HPohKsKiVCaP2fbAUq8Az4yflDWyCTPul2etf6pdVj6G0M X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR04MB7146 Content-Type: text/plain; charset="utf-8" From: Jindong Yue Make the driver buildable as a module by turning the Kconfig symbol into a tristate and using module_platform_driver() instead of builtin_platform_driver(). Now that the driver can be unloaded and reloaded, let the driver core own the clock and runtime PM lifetime so that the probe() error path and remove() do not have to hand-balance them: - acquire the clock with devm_clk_get_enabled() instead of a bare devm_clk_get() followed by a manual clk_prepare_enable(), so it is prepared/enabled for the device lifetime and released on unbind; - keep only clk_enable()/clk_disable() in the runtime PM callbacks, since prepare/unprepare is now handled once by devres; - enable runtime PM with devm_pm_runtime_set_active_enabled(), which marks the device active (matching the enabled clock) and disables runtime PM on unbind. With the clock, runtime PM and IRQ domain all owned by devres, remove() and the probe() error path only have to dispose of the parent IRQ mappings. Signed-off-by: Jindong Yue Signed-off-by: Zhipeng Wang --- drivers/irqchip/Kconfig | 2 +- drivers/irqchip/irq-imx-irqsteer.c | 36 +++++++++++++++++------------- 2 files changed, 22 insertions(+), 16 deletions(-) diff --git a/drivers/irqchip/Kconfig b/drivers/irqchip/Kconfig index 20b77fbc51ee..105108d2e6ff 100644 --- a/drivers/irqchip/Kconfig +++ b/drivers/irqchip/Kconfig @@ -555,7 +555,7 @@ config CSKY_APB_INTC the controller's register. =20 config IMX_IRQSTEER - bool "i.MX IRQSTEER support" + tristate "i.MX IRQSTEER support" depends on ARCH_MXC || ARCH_S32 || COMPILE_TEST default y if ARCH_MXC || ARCH_S32 select IRQ_DOMAIN diff --git a/drivers/irqchip/irq-imx-irqsteer.c b/drivers/irqchip/irq-imx-i= rqsteer.c index a9909ecb6fef..a60cc527e619 100644 --- a/drivers/irqchip/irq-imx-irqsteer.c +++ b/drivers/irqchip/irq-imx-irqsteer.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -193,7 +194,7 @@ static int imx_irqsteer_probe(struct platform_device *p= dev) return PTR_ERR(data->regs); } =20 - data->ipg_clk =3D devm_clk_get(&pdev->dev, "ipg"); + data->ipg_clk =3D devm_clk_get_enabled(&pdev->dev, "ipg"); if (IS_ERR(data->ipg_clk)) return dev_err_probe(&pdev->dev, PTR_ERR(data->ipg_clk), "failed to get ipg clk\n"); @@ -226,12 +227,6 @@ static int imx_irqsteer_probe(struct platform_device *= pdev) return -ENOMEM; } =20 - ret =3D clk_prepare_enable(data->ipg_clk); - if (ret) { - dev_err(&pdev->dev, "failed to enable ipg clk: %d\n", ret); - return ret; - } - /* steer all IRQs into configured channel */ if (irqsteer_has_chanctrl(data->devtype_data)) writel_relaxed(BIT(data->channel), data->regs + CHANCTRL); @@ -271,12 +266,21 @@ static int imx_irqsteer_probe(struct platform_device = *pdev) =20 platform_set_drvdata(pdev, data); =20 - pm_runtime_set_active(&pdev->dev); - pm_runtime_enable(&pdev->dev); + ret =3D devm_pm_runtime_set_active_enabled(&pdev->dev); + if (ret) + goto err_irq; =20 return 0; + +err_irq: + for (i =3D 0; i < data->irq_count; i++) { + if (!data->irq[i]) + break; + + irq_set_chained_handler_and_data(data->irq[i], NULL, NULL); + irq_dispose_mapping(data->irq[i]); + } out: - clk_disable_unprepare(data->ipg_clk); return ret; } =20 @@ -293,8 +297,6 @@ static void imx_irqsteer_remove(struct platform_device = *pdev) NULL, NULL); irq_dispose_mapping(irqsteer_data->irq[i]); } - - clk_disable_unprepare(irqsteer_data->ipg_clk); } =20 #ifdef CONFIG_PM @@ -324,7 +326,7 @@ static int imx_irqsteer_suspend(struct device *dev) struct irqsteer_data *irqsteer_data =3D dev_get_drvdata(dev); =20 imx_irqsteer_save_regs(irqsteer_data); - clk_disable_unprepare(irqsteer_data->ipg_clk); + clk_disable(irqsteer_data->ipg_clk); =20 return 0; } @@ -334,7 +336,7 @@ static int imx_irqsteer_resume(struct device *dev) struct irqsteer_data *irqsteer_data =3D dev_get_drvdata(dev); int ret; =20 - ret =3D clk_prepare_enable(irqsteer_data->ipg_clk); + ret =3D clk_enable(irqsteer_data->ipg_clk); if (ret) { dev_err(dev, "failed to enable ipg clk: %d\n", ret); return ret; @@ -357,6 +359,7 @@ static const struct of_device_id imx_irqsteer_dt_ids[] = =3D { { .compatible =3D "nxp,s32n79-irqsteer", .data =3D &s32n79_data }, {}, }; +MODULE_DEVICE_TABLE(of, imx_irqsteer_dt_ids); =20 static struct platform_driver imx_irqsteer_driver =3D { .driver =3D { @@ -367,4 +370,7 @@ static struct platform_driver imx_irqsteer_driver =3D { .probe =3D imx_irqsteer_probe, .remove =3D imx_irqsteer_remove, }; -builtin_platform_driver(imx_irqsteer_driver); +module_platform_driver(imx_irqsteer_driver); + +MODULE_DESCRIPTION("i.MX IRQSTEER interrupt multiplexer/remapper driver"); +MODULE_LICENSE("GPL"); --=20 2.34.1