From patchwork Mon Apr 7 19:50:58 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 14041893 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 38996C36010 for ; Mon, 7 Apr 2025 21:48:10 +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=1IZAfUVaAOa7chBgO8REmAJsb14Zp8lXTUd7dS+omz0=; b=uW4E9dM+Z74Sl8799K+wVDW2+D AbeIDd8RrtNtr3tqjFeBbw9oxfQBT8VxHxaoD6xYFUWVC5UFilCmh3SxJIGF+s1kE/87SBgVdl5J/ pcM/Eb+boSywA3s8a5qpHX7uJBQwCo/4qalSvv+ZATHzUB+ofXhnR2FkUVd8/jkDh+OPWe5Rv9eyd 7ret8dM+KSZOmHadw6uUUVI0ZOwE6ifZEUyf5zX4ULJscPkuCF1SBJQqeMuNeFyMVbf1jsYdqO8kE Onx3bvLEHiDFQGpSKOooyoTnQL5+PorJokXeO6UcXZkzAaRrJMg23H6+KJpq4L31UnoF5ZO2ng/Ty rt0JWq8A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.1 #2 (Red Hat Linux)) id 1u1uK1-000000026Bc-02fC; Mon, 07 Apr 2025 21:48:01 +0000 Received: from mail-db8eur05on2060f.outbound.protection.outlook.com ([2a01:111:f403:2614::60f] helo=EUR05-DB8-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98.1 #2 (Red Hat Linux)) id 1u1sVi-00000001sUU-35DT for linux-arm-kernel@lists.infradead.org; Mon, 07 Apr 2025 19:52:00 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=k91y7Nod0P5K8uWHTgCJfbPM0DlmqEHpMNEv2NeVtl1deFrZPPQUrh6mNNtYP+elNAxcvykeVmy50oxz+VTPEItI7B3oQK6cReRAJIQ/gQbeOHRsBhGTaT1uIWXCm2UBbAFOYxqNFa8KSNO5hHmD5LwNIKlD+VZpt1XqrCi37BK8ooHrtADmsEIjogWmf1NeJzINCbKsVbUlNhuEVNR2lR76ibZ922LmLrjnq/Kjw28aR7/d//FKoFxmTZn6ZzYsPYwtX5+zO3qdN0feV3ieuKFT5AheFZhCPCOfoxW0bYSf1FCtf12rAHxOyI5AhUfk3Druhs8yelftm5xzMjlJCQ== 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=1IZAfUVaAOa7chBgO8REmAJsb14Zp8lXTUd7dS+omz0=; b=JRWe2Kggf9nxIu7yAK9oyMj+dr1XhfX0oWCFdvxEHXYUBCMty1spEnsSJm35UKWL/kVrjdE3ouSp3vKMOzaZ8g7AX2Cbb4ONuEt14qYPuVulBLsl/XrjYEPV/+XHidknmk8BmB68rnH3PTvNBDR2zanjHyypBceC1Qb9WtIboBOrr52+ck5vFHbXc7zCCwW/2SZLT98qY6PNgMTd7bUxC9ebbIx8N+aZucFTFUVitTUBW6vIHVciJKHs225v9i34L1Lw5LrPQcPsnHhE9XUMV35Fj2iOnBvJjTAeC2TTxe5zQn/oadGPIgsZlUv2z0GukblJ0m5COxDanDBQ2GF3pw== 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=1IZAfUVaAOa7chBgO8REmAJsb14Zp8lXTUd7dS+omz0=; b=VDNU7lWCNPP7oHaO05OgFRASCgE/1+LIjpElVBB9aElCrd94QcjidbLHX1KCvoJYojpxrEnVnMg6qxnuZMDskBHGWMiWzv8Ejg+PL2EnBXfPgW5UKZJeM4caDcRGKcs2SibmRxgIwlhQnpqRKX0GeTMEd56UcUvGxp1pOdiWFun1Anp9Zag81IL96ZFYX4OlwdzBTXIT8hMOHY8ifFdPqVC8WTmsTE9jwMLtIPnNc0nd1t1ScNNAYCzgk++dBV/bfLWWD+5zkE+rQU+Tb4/1iU8wfjYucP6u1SxqH3kksikgmS6zb5tcmMv4T8AfXpyGqbmOc/3uCjmSenkdt/69rw== 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:56 +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:56 +0000 From: Frank Li Date: Mon, 07 Apr 2025 15:50:58 -0400 Subject: [PATCH v17 08/15] PCI: endpoint: pci-ep-msi: Add MSI address/data pair mutable check Message-Id: <20250407-ep-msi-v17-8-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=1744055468; l=1143; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=N/Rcdz4WASrCVzB40i3dK6NDhujmvhnmUfU9wknM7Kw=; b=x1agWhk/JrxhYpfxdC044J20GwJzerSWTXt1mhoHZX1kbec7aSPHPZePWBh2+4dzuvyMeX47Q LEVluQQR1YsARtlTMO+Kjqa8Vi1gks7s/5nboX74KBMhiFsuKiQCzmw 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: 1879ff02-e958-4c4c-1440-08dd760da6be 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?Lvp5EWqItJWAGGXaTzA+WVoud6xDsfX?= =?utf-8?q?fpJa++f2g2TRAdPT4TZrD0zHWmQNCG9Fmxr3wZ/xc5YR/JAoJqLS4cvarTA3umGHA?= =?utf-8?q?3OKuCyE7jf0lgYoAC1UjYtGyNkjU4Xrktv8DGDSZRH0jmxGQJyhtAuhlAILxgCSvo?= =?utf-8?q?vhrbn85RoBKEgQWiJ20ri97wLXJRQGYNRzjM6kto5DqgvZO0ZRudjgpQfWMDUBEjQ?= =?utf-8?q?YgvsO+8Y3OtfHxo2Dwl22IO79TAautOvDZzCSUt4JcEd9lm/GK5k7rhDShMPOmP79?= =?utf-8?q?Mng8B1qJas8EvoTp7Z4iyg9OWKbLM9p72B2ikwYxxlo40Aq4i5eRPFBX7NcmIxRWD?= =?utf-8?q?Uwh8CcKSCK+P6bjq+4bsZOvwVnC32lckOP9QQGqLjBIUgTH6aOmjHUd3W2h4tAlUz?= =?utf-8?q?pAvJbLhnALNfJdu23Tq9eW4VjYmFRSjTUD7Zqce/of9RuPSOqNwe+add2NcQP1Ud4?= =?utf-8?q?GdFgqthsyI7PUkoltqYAj6m/jTmK158yrqMvl6R10u38P3eQoHn393GWbrafrM8ww?= =?utf-8?q?jB2OaQ1e0yPBqdSQKERkZuufe2Hl3V85l69kU4ZsK0vnWU3apyCBsNKSOCDpqZMZv?= =?utf-8?q?AHQWhOMlv7cw1U8827S3IRGyUglPQssIDLmiTU6X4v8P51MRpBW8aRyH8SkBYhNM4?= =?utf-8?q?lKko9PF76pCtBo5m9XfzmSU5kcDNwiAv/sIiITrMLZgTeUIsuVQBoeYm6gvMjhtnV?= =?utf-8?q?pXlznJ9Ag4kwKjbYgUs3EwCat/IBg17775/UkIKhVGqLUinaU528qK+hFW2ZtqFIw?= =?utf-8?q?N9ItQIdmXqN5Nh51aIU6PhCf9vXRA6CCT0Yj8h5wSAwgNY05cEkjS6loP9+9m3Y2d?= =?utf-8?q?NW9QkoN9l6mh9uclemXWCZl/ENkApdWGFiVG8B55XXPvcd1shuuI/ufTNAYq4XfoD?= =?utf-8?q?2nJGzvS2DxW4ll35tT6y6uaqkrZ/2B/hP+TumP4hURy4pYYhs7FcrkPuH5CKPvUq/?= =?utf-8?q?VzPA+xKFYcAzb9e0fSAIiMcRjk4ilXfTJeOCJ0lE53nKo9aSGe+DK4eY6VYSa00bg?= =?utf-8?q?sum/103QALnvdwhphvKQCUw7dJGARbQU0F/d0f966MY30hTuIc36aZYO0QSspqde6?= =?utf-8?q?mzp/hB/1Eze51z0CpH21DDLbE24mM1nf5XHSFqN2H8uALVTUL24iX1ojTcuXHJsr6?= =?utf-8?q?OqveAnpJgCz6HvUbf35K1oZdMmExPkWh5Qq/AidebhRLu9Sjs/ZeL6HTbPwYgtTpQ?= =?utf-8?q?Mw3fBUPjnnKGrmzAUVCUrKn+lTvf5z9jSU5kalamHRy2YA8cMydP/HQiin+C+mZWy?= =?utf-8?q?jtCf9m3JLL40+xekflsNnI6Ckj/d7BCpOIOloUBTrlXY8llPy83VE1k7wzSsEs175?= =?utf-8?q?MEOnPrj0yw+yavjWfvxfZI2GtG3bO0wjGI4wzAwwwCuhEvSgq37x/e32UZ13qQ1pv?= =?utf-8?q?eny8E/+nb4+jb80Z583D1DoNNWLkIph8w=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?NRFXaP3o+aNTXykn14Rq3iu/U3L8?= =?utf-8?q?l0gFE49bd/yGPte4R4XVF+Y1ZguijBX6J8/He6MHf0cyCow0ExI7/QviSjKOvjkAf?= =?utf-8?q?W6m7ZBdhRArAcTvor0YR/1DSXWqvEH2gboszxSDszjOzOJ9oCRLblNqmThNpT5o80?= =?utf-8?q?RoHLVp0op2EtG2marql4ruyhoHzgJcNVWF8MvsnOpVsw7C4F4qFQfsGq9r1DlmLrO?= =?utf-8?q?1eHQR/RN8jK1dD0s1VdxzGhAFPF1X3dDKTRI+oZYFQv7tblFGqdOujG457yXi9RRc?= =?utf-8?q?SL3DkHbx3BJNJLw+KRUj8KuW9TUoXoZwBie1tOqfwc58uRigjf22s8tnZj53Sniqj?= =?utf-8?q?05sCjkKjv1CEyqL1S7guWKnV1hZqk+pdTb3FvTRGjohJ+LGOp/tT/qMYDo/Oy5U3C?= =?utf-8?q?h17wRvTsA3OfimnMUfaflP0Q1aMcbypI49qvHeBJfMxA91Zg7AdIH3B21hT5ky/4c?= =?utf-8?q?WggkBzaRk8JXNQ9me8xGeBjf7Q5nGevdGLg6YnpTUm/Jw0mIgmmAGkKCp7A9pqN6i?= =?utf-8?q?Rv4XvhMI+H5fuaUMisbgeM8UMXD8LWjiVS4LT3CYVcxEBxmWa9k44h3+f7601poq6?= =?utf-8?q?RGpX20bY2T2ZQBroXQGVqWaZXPvwRpCZVPHm3BmJCuEfo3ohMB/d2DsrdJbz/4KiH?= =?utf-8?q?UQYt3jgBbchJ8TVq7B3L80Mbg5VZGLORAnzPXpjjVwkCh0iCiGD8cJZeENrVdvk4d?= =?utf-8?q?Pxq8FRDGUZ5q9z6LXU9RAN3yTxDiHDFhviYtNjD9S0lCSzjXfcc5pf/Zr+fy1/H2A?= =?utf-8?q?cCHiFFFxUg2VUMCCI28FekaKbyCKeW7WT7iLPnPWKrtEcF2EzaXBCD+w9tX9zV9NB?= =?utf-8?q?IXhdIFBJjVCyWxwpfMkGhob1ePI8aG8UlTleWvzCCQ4OByrAzoRKJGc9eXf2Wvlox?= =?utf-8?q?gjdNh9FHIupi4FhnjqUP8G19uGgZ8ESHpY1jB/A6pHQk/alrWffoDMIMim5TlS24N?= =?utf-8?q?sjXEak95uqXzcXYv97ICgbI/zjPSvFKXTUByS1T1EWVbdWjyypa9mQQdUOJbc/ixn?= =?utf-8?q?D/W9wpZLjhLYphuetK1CRglhbmp7bGMkZ/W09Lj0w4CzvbhXCUFnMR+JdMeBN6eTW?= =?utf-8?q?saLQXQNcaI/P82Ma9fau1YHXEflEjzn8AKgLlaVX2L4V6YmwRPIbIxvTbOFuDAqCr?= =?utf-8?q?c6WQmSxJn6H00E7eeWr9E0Hk1BZV3sS+QddMLwuWLc0Ser04AYK2xPB/Od+RbFlSO?= =?utf-8?q?JXmyl7vZN7m+FKwd+6ksHffnWcc8MwMEn0j0pW778mm+j7/7NHgK+Ou84PwFj7Ui4?= =?utf-8?q?t/oqAmWW3BJbBU/oChwFgNAvWJ07jEemLpSpu+TJfGsev5QmDPi+7VUYik5moq/L+?= =?utf-8?q?yd4UFobjQWHm/lrt9r5otAnVFSoPLi2DdTo7TKnOVITAp/XFIpDbanQ3LH6yVng64?= =?utf-8?q?/Y47LY9R4ETkpQClbmzd5/wU591UDWJZ7wXVTj4N6MrDrRNpYhrj0uKFtAXJ+sx2R?= =?utf-8?q?mAbr3g3uXUhB64EgEpnMEJYgADU3Cw0yXvnMiAzJZiuwKztbAYIBoABulhCiKM580?= =?utf-8?q?adUkBbM4B/H7?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1879ff02-e958-4c4c-1440-08dd760da6be 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:56.1958 (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: ysVHIsQPVUDB45c+Ickd5wMO0qAjWmq3kldshgf1qcPx+VwIp6kmOnaczQJvig3eWvJmpBY76KhMeDkDqzaRNg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR04MB7452 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250407_125158_773095_773D703A X-CRM114-Status: GOOD ( 11.24 ) 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 Some MSI controller change address/data pair when irq_set_affinity(). Current PCI endpoint can't support this type MSI controller. So add flag MSI_FLAG_MUTABLE in include/linux/msi.h and check it when allocate doorbell. Signed-off-by: Frank Li --- change from v14 to v16 - none change from v13 to v14 - bring v10 back Change from v9 to v10 - new patch --- drivers/pci/endpoint/pci-ep-msi.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/pci/endpoint/pci-ep-msi.c b/drivers/pci/endpoint/pci-ep-msi.c index 549b55b864d0e..c0e2d806ee658 100644 --- a/drivers/pci/endpoint/pci-ep-msi.c +++ b/drivers/pci/endpoint/pci-ep-msi.c @@ -44,6 +44,14 @@ int pci_epf_alloc_doorbell(struct pci_epf *epf, u16 num_db) dev_set_msi_domain(dev, dom); + if (!irq_domain_is_msi_parent(dom)) + return -EINVAL; + + if (!irq_domain_is_msi_immutable(dom)) { + dev_err(dev, "Can't support mutable address/data pair MSI controller\n"); + return -EINVAL; + } + msg = kcalloc(num_db, sizeof(struct pci_epf_doorbell_msg), GFP_KERNEL); if (!msg) return -ENOMEM;