From patchwork Mon Apr 7 19:50:52 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 14041888 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id F372AC369A4 for ; Mon, 7 Apr 2025 21:47:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version:Cc:To: In-Reply-To:References:Message-Id:Content-Transfer-Encoding:Content-Type: Subject:Date:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=GR0Z1iTOQebA6NDkRDEaFkcBL+OLXn2bv7Llb/KWBuc=; b=zX0vJ0sMyl3WGDtAzC3TxDgTj+ La+x5dTEzbmSMZXWdZCMdekxNndMrlWNLGzu6x5n7SBqWOhSXAWmEPkJGrdi62CXlZ2WJhZp2OU69 oemILPzdP0qhM3i/KnLMlXIqEX2FG5hSVhu5TkCoTGp1i8fX+5RztOc5D3eyE1CWBlycOViWexeHa Y0Pfk91KEnYVeaBzLLHl2/BHTlDcvqCGUrw6XLeLJh23K6sn+APwhj1pPPJu559/6M9+mEH4dXbLd AX3AH6coJuh+91qDZ4mtDoVa7VI4dNzDHIGaGkNPMyS+Qu/unQlwW+pKfree4f4YeNinrQxnE1PKF tmET0Ipg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.1 #2 (Red Hat Linux)) id 1u1uJk-000000025iF-3GWf; Mon, 07 Apr 2025 21:47:44 +0000 Received: from mail-am6eur05on20608.outbound.protection.outlook.com ([2a01:111:f403:2612::608] helo=EUR05-AM6-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98.1 #2 (Red Hat Linux)) id 1u1sVD-00000001sNP-0BVf for linux-arm-kernel@lists.infradead.org; Mon, 07 Apr 2025 19:51:28 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ajtx3Hdx/wl6XYGT59QRTr+M7rtCjcjtqpDFOZm/7s8IDXSLMbmgPC2HUQttROQcv8jYrZQBlGTISZzuUOOZgl2UC3W49/tXsM3C8IxYv6K6JfLB424iVuccrYYdkyRRP6SogevUPfkQzrHEwsQX+KSjsvYCtuFafARSPpGafr6FgGkdv9XdoJXkerDUvCI/2TXUv3sUz7Vg/cD5/lC03s7awlFQ4gW7/+GrkfnoaWnM2Xek5UYI79T466x6Vxet6HnhzCBUfOpzGDngZl0ceNhAZ9eeAcpJ7SuKEewrrOdkspPACzvaSBkk2Cu5ypk6CEzjv1ddjBSo9j4uSWSZRA== 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=GR0Z1iTOQebA6NDkRDEaFkcBL+OLXn2bv7Llb/KWBuc=; b=sh2NjDUZMQInp+dUm+dciQfghigXdGOUmpcu+5au/ooerT2hx93Y6rSrMl0Syn5niFMVjFzm4qBLMBQ6o5VF9nj+r0jfaUPwjRF61CXbJudpWiFun8TRlQaSTOAtic2Iy9I9S7nOGUsFfegQ8aZ33yfBLcpkwPnHWZ+rjz2HnrcECeqglNnQH7OyP0w1tm0wgkdGX69BqghykyVbhwGj5qGgjMh3tE7tpFNBnJ5wvbHCZco7v9CskoF+DKAtvHWOrdpIkqAvlzNNqzN3yyvT6AJtMKzNX08WBn1Hz2UYz3ocsUE0Q5NMg3PrM77S/DIVZy6rBErF7ddhgwrxxO2CdQ== 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=GR0Z1iTOQebA6NDkRDEaFkcBL+OLXn2bv7Llb/KWBuc=; b=PQw/JY/OqY051e32NRI2x/SHQyIcopDr1B24qL8iyf8kI9GFx0fOu4PsO5Z7h0cJ5RMTAc2YUji8vZUdia50tqD2Rlk8QyaOt/jxcHlR/M3wGeEX3a15eH+wwxZW2oW53jyrzr/XGo9fpzQcBeKMOKBJ83kFJnbJJ/F6qnbK/d1HE3yxf9nm11FF+2ifEJNLIlEzdk+yAGN2jHE5xxeQfNhgiJyzyIw9owpJXjOwp9YPqYNpkc0dk+O8zHarZBYs1cAJBDp4mOv4DkgWJwKv0KTz5oi0xWVpUjIm3g7Bg6LKvfziqesbXeoREvqt1E00XESEpEWUj5sxRskmjNcaZQ== 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 PR3PR04MB7452.eurprd04.prod.outlook.com (2603:10a6:102:80::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.34; Mon, 7 Apr 2025 19:51:24 +0000 Received: from PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06]) by PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06%2]) with mapi id 15.20.8606.029; Mon, 7 Apr 2025 19:51:24 +0000 From: Frank Li Date: Mon, 07 Apr 2025 15:50:52 -0400 Subject: [PATCH v17 02/15] irqdomain: Add IRQ_DOMAIN_FLAG_MSI_IMMUTABLE and irq_domain_is_msi_immutable() Message-Id: <20250407-ep-msi-v17-2-633ab45a31d0@nxp.com> References: <20250407-ep-msi-v17-0-633ab45a31d0@nxp.com> In-Reply-To: <20250407-ep-msi-v17-0-633ab45a31d0@nxp.com> To: Kishon Vijay Abraham I , "Rafael J. Wysocki" , Thomas Gleixner , Anup Patel , Kishon Vijay Abraham I , Marc Zyngier , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Manivannan Sadhasivam , =?utf-8?q?Krzysz?= =?utf-8?q?tof_Wilczy=C5=84ski?= , Kishon Vijay Abraham I , Bjorn Helgaas , Arnd Bergmann , Shuah Khan , Richard Zhu , Lucas Stach , Lorenzo Pieralisi , Rob Herring , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Krzysztof Kozlowski , Conor Dooley Cc: Niklas Cassel , dlemoal@kernel.org, jdmason@kudzu.us, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pci@vger.kernel.org, linux-kselftest@vger.kernel.org, imx@lists.linux.dev, devicetree@vger.kernel.org, Frank Li X-Mailer: b4 0.13-dev-e586c X-Developer-Signature: v=1; a=ed25519-sha256; t=1744055467; l=1874; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=p7gntWoxGh4gHuQtzBxv9euNYS3wHZIeRIkw2TEkLdk=; b=zG4QdGGdfqxDzshMU7Ve7oQJlFKli2a6ZVYWvGb/TGaz4n0XHmKNqynlcFyI+BEZ72WuuWoZT CDPTrvS18HQCCFgZIu/vituhjD+febT193Yu6L/YXCad3GJEQqEWjlZ X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: AS4P189CA0041.EURP189.PROD.OUTLOOK.COM (2603:10a6:20b:5dd::15) To PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9642:EE_|PR3PR04MB7452:EE_ X-MS-Office365-Filtering-Correlation-Id: 3470ed2d-29ea-4c20-86b7-08dd760d9392 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|52116014|366016|1800799024|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?q?BvVQUq0P6pFGOs/xv3TADyeXzC7OLJc?= =?utf-8?q?r5QohTQK+HTwHVRRBIogQfW4U+mtSXCE301v55LidCPcGuQIQgPDoze/vHiXetrjc?= =?utf-8?q?AtQ4uH0wYNK0KErcgrzA7wS5CqNuWU/ylJqBz/8kAOmbLLEkXF3cOuVDC5Ug4lHRZ?= =?utf-8?q?lbQ36M0r3MCQMB6IlaTmRdsXFkLO87f4kA0f3CqYNK8D1Bhzi4NI9poWNl7ppIM5M?= =?utf-8?q?JIcujnxextSDch9MJtTxvVDafwdco6Idjx2DPISkKK5YGWgz6HA+aNrMt5tp7QRgf?= =?utf-8?q?FIIPpewLQ/UacMf6JXrOgN/ExWKJLcVtzi1Y+jeYsCvoQKlE52PgDEzhkqcO09X76?= =?utf-8?q?N6qORsIN6Y7+7HTONGLF2LJ3heMbg5WY/Exf5rkhodihOVjNqN3wo2yHYl6sTmlIg?= =?utf-8?q?7TtOvVLMaLwedlA8Muy62qptz0jdtr9RjMcHPsFkXHKSBRjREiSk/lBXtJysUtpqL?= =?utf-8?q?vVM3qF8aI+hbSb1uzoiCncPDon8g2wBvaVLUvjKxDW3qgI74qkFKwnEDRKI5AdMci?= =?utf-8?q?iODJWUA7bWvAzLOzeSnxwaj8Cd8SylJVhJ3yRYm/DtHTdHhaaKPpaeVrjMOXkxV/r?= =?utf-8?q?q0Wer7JaISYSIvisBmj1meNUwtrgoOFgpgfBjgz8jwKLcvygsr+kUnvqFITCfz6Z1?= =?utf-8?q?0kE1BySSnysQTidhNkoZwgXug9ge0fQreMZA8UCOi4ezKDuxuPNVF3JqkBU6Zug5G?= =?utf-8?q?Q7hmsxI0p5Z65dk/RkTAnVnJW6i1Y+rPRqcuoCe/UFb3HiomiMtgVOKSk5MiV/Jck?= =?utf-8?q?1m0BFKg27Gh/uhkmmUrBFGYjegzYeIv06nq3icdegPp5lsCDXsAXog0k2dn+SqaS2?= =?utf-8?q?/XQHJBSW68aWAy1RQJpNl5D+frYgRLySTtjk5LKV7FSZZR1J/vHk3yX8i7YqTom46?= =?utf-8?q?j/PWqtBsqMYpk4wCq0pSpwk5LR1Dyuia3pcruiMGarer8wBj22XGToZYSRGQXGN4k?= =?utf-8?q?oWoiDR2PROyPH846G86cd6fxNI6zC/B4CYF216hY2srMngVKNdT3bx3WH9WF6FM5j?= =?utf-8?q?4GRnBhJNXLEMNz1vQobfwaqYhbl5TKySmJWpDd/egkZgY/xTRHHFMw0CAVWWogfmE?= =?utf-8?q?2GcxwLBi4WlvXP90SNWm/txD4yy9AeZc7aJKfjQVTvkrk0x3cVGwYayBW24uwXuJ4?= =?utf-8?q?p7dY4x2pI6S1Rhxs0TZMh7MhnOjSDdo9gvX4/zxWQipQKVylIGpaZqQX4DV7l1ELW?= =?utf-8?q?YCSvql6aisET+7Jxl2t5q126FDMSsi4sthI+V/t2D/+EqGI+b4k5Cw4id/yUl6QOV?= =?utf-8?q?a42J3hxCdGc+wD9UwqxGNCk6rJAhcQ3udH8wsA/4fMMSbzeay+ZzNMdenT+1aZHg9?= =?utf-8?q?8SgIWBaczwOCNzVGPQ1fz7xBfQwsCfzH4rNxMdsYlwkT6JwBH0biCvxWNlhwME8e+?= =?utf-8?q?I28l7eu1jPSSjK5EPAga9JmgGUTz4D4xw=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)(376014)(7416014)(52116014)(366016)(1800799024)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?TIovcYaOsPhWcuEJufElpD1mqz8C?= =?utf-8?q?eQ60PEXzsKPz86ffjTMFw4zj5aH0yIVog4Z9EnsJshMM2Rbqk9F+SZ0rYeB7KKOL6?= =?utf-8?q?y5SNTp2bSOBcqukG4lfCDiRtHWkX9OF/pr1j1/krFpscPDAvOC+GKL7TGGUfwn33h?= =?utf-8?q?i8LWf2SvSpvxSw6Mv3aodv02agqUi/sJ3L9NTxF4qzZo4dc1xFUX9DYCm46yEthbd?= =?utf-8?q?AkNh37RC/WUuX8Xg6hsEII43olHDowngtbXnNxNT+11MkffrScStM/E12chV4WLKN?= =?utf-8?q?XTmR6XsXUG338yyDZgxWdNJIpEgMoA2o5dAQS5BZEd2YZDznp0DbgKbDmjr+kIZZZ?= =?utf-8?q?4x6Ngl+Au11w2k4yuT24FtQqNf8QOijyZVyxuWPPQaZQ1ydRDELe8zkV5DOq7ioxq?= =?utf-8?q?ell8OCmC+CQ4Md2fm3iCIUzlSecieOv6JhpZU4MbhEt9sXVyMa9P3iLlaMdVkZHxL?= =?utf-8?q?g9L+yaMoEC5SqLyC4zME1TlCkn0Lv2t9O70GuNXaff5BYvY/M/pl5JZlckJ7ZT4dF?= =?utf-8?q?pL0DkFxqr7+xuKDPpLYB0CWRrKPkJvM0u1eMQFfJ60WrDj/CcTkG1Kq7y4NJ/BS0T?= =?utf-8?q?ae/CBfoNH2Boo2Q9OxS0Z5aqHTA0IQorMmHqHtJ7vf/JA2fOdE/7rcyJg9n+h+AEr?= =?utf-8?q?aNoLwWUJ33mTKZmsbhrV/NjshBgjmsJAecz2k8MQpZRuYfD8NYZqbp/30+RStlwhN?= =?utf-8?q?/A1Mp2foCZ+IYMUSM9PJ50qKLMZeZoFl3FtmpMAncTW4Uxuv8DaBaM6X2+Nc+qf9w?= =?utf-8?q?533yP8twkqetQWgT8lMRJTm/BiB44mhEKgbk3qWFTtpFISBZUtAXKnNKpMQo13fcz?= =?utf-8?q?NtfIpt7LRhMMLHjX6okyZjwSYDkyDraaYRwzUfWN4wNCu7n4xlySGv8NCuO94zFs8?= =?utf-8?q?36AuyEzgfE6Chv3Z01dZ7xbC1SUe9dLKllwmB+yCHydvXyvtVGDXS7hMJEepjZc6r?= =?utf-8?q?+EOBTTkEJ05rLD1NEU1BeX98X11LHzApkJYDWD9RgwWn9UUbk18H93iHPkbYgx5KO?= =?utf-8?q?rdsEjItE/KfXB0lhRqAziX9sbfLdHS4m00P6bZp+X1NxQaye1cI0RXSomSVKbt1El?= =?utf-8?q?dHEk/FtDufFa3Qj7jmjXqs5NkGxRxRlZIXR4sTdsLQ3utdaTcGx+wBrDK1hE7wdi4?= =?utf-8?q?rqbcsuE3OHq+aXWtl7Ymj/DTRc8tTUhndT/UBsN2WY7RxRdqXDTnt+QypE3LH8qOj?= =?utf-8?q?MMbgjXc5UZc+ndZ5sPw7Fn/MuJ8k5GT47d/JOO36WesR/pugwlYOhbDggcTTX2yGP?= =?utf-8?q?UmeBG1fv9BlfG3K3gmdUiy2xRi1+yWgCy7NhZxqQ27e1MSjrXMHyuMHWK0BkAplRi?= =?utf-8?q?6+ynkMqV0Y95raHIBuMp1QC5khMLcEqPl/xL3DBc91u7sthLCfCeucN86Q7tvWpiK?= =?utf-8?q?Mf75PlnDg6Mq9aZzAPuOw/mtR6RtjSLBsx2IlnysS549qUqLQuB211F9AkmHEC8Ox?= =?utf-8?q?wGKkxnw6uxHBPp8guRpZ6nUeLVGBqk6eSGu82L72wv+MFQJAuN2H4ALv2dBnZQVkh?= =?utf-8?q?DDqFY8FrtRqD?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3470ed2d-29ea-4c20-86b7-08dd760d9392 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9642.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2025 19:51:24.0193 (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: om0VB3FGAcAxZ/EaaRFlb0Z5JKtG35bdnz47GG/8uDCfHUTmURSDwUhdxMvMv7Y9d8fiKzJ+p/NRCxSjFFdjww== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR04MB7452 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250407_125127_079375_D9322F3C X-CRM114-Status: GOOD ( 13.27 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Add the flag IRQ_DOMAIN_FLAG_MSI_IMMUTABLE and the API function irq_domain_is_msi_immutable() to check if the MSI controller retains an immutable address/data pair during irq_set_affinity(). Ensure compatibility with MSI users like PCIe Endpoint Doorbell, which require the address/data pair to remain unchanged after setup. Use this function to verify if the MSI controller is immutable. Signed-off-by: Frank Li --- change from v14 to v16 - none change from v13 to v14 - Roll back to v12 version because Marc Zyngier have concern about add DOMAIN_BUS_DEVICE_PCI_EP_MSI. https://lore.kernel.org/imx/861pxfq315.wl-maz@kernel.org/ Change from v11 to v12 - change to IRQ_DOMAIN_FLAG_MSI_IMMUTABLE to minimized the code change. --- include/linux/irqdomain.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/include/linux/irqdomain.h b/include/linux/irqdomain.h index 33ff41eef8f73..86222602744e9 100644 --- a/include/linux/irqdomain.h +++ b/include/linux/irqdomain.h @@ -231,6 +231,9 @@ enum { /* Irq domain must destroy generic chips when removed */ IRQ_DOMAIN_FLAG_DESTROY_GC = (1 << 10), + /* Address and data pair is mutable when irq_set_affinity() */ + IRQ_DOMAIN_FLAG_MSI_IMMUTABLE = (1 << 11), + /* * Flags starting from IRQ_DOMAIN_FLAG_NONCORE are reserved * for implementation specific purposes and ignored by the @@ -691,6 +694,10 @@ static inline bool irq_domain_is_msi_device(struct irq_domain *domain) return domain->flags & IRQ_DOMAIN_FLAG_MSI_DEVICE; } +static inline bool irq_domain_is_msi_immutable(struct irq_domain *domain) +{ + return domain->flags & IRQ_DOMAIN_FLAG_MSI_IMMUTABLE; +} #else /* CONFIG_IRQ_DOMAIN_HIERARCHY */ static inline int irq_domain_alloc_irqs(struct irq_domain *domain, unsigned int nr_irqs, int node, void *arg)