From nobody Thu Apr 9 17:59:12 2026 Received: from OS6P279CU014.outbound.protection.outlook.com (mail-norwayeastazon11020118.outbound.protection.outlook.com [52.101.178.118]) (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 77DD433B6D3 for ; Fri, 6 Mar 2026 09:22:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.178.118 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772788981; cv=fail; b=n7I9qLaq8E1Z0la5S9rhYl7vin+SWDhI1G1lvkkWMNMuybJhYKCQdgXXDL7Qzhztk8Fivw3PQkTkld6vkdHjPb2rchLDzsUJ/ajnUmzXTWP2WYmN6eNojYPQ3yJlpmg/FxfrQBb/0XRpYBFHvcNwoDuodufglztdTxfHhbR3JdE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772788981; c=relaxed/simple; bh=NjuMnR87/OpXQ2hN53OIRaAIdutwoH6d+iRgSwe4gAA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=TLBMCjh/haW34KRtLeWzGiC66KSZOu2/qiBjuVOHBX6zPLnSWhM+16RXlSayU/J6iU+fDi9KUjQDOgvrf+GdHFGTqnt3eAOlX/3TXewhuj6LJYydB2vfd8NvZoKGAr+hTNFvX2wuS3E/fcYRPyBjvoySq/QG1VG9DzLGW1vgn1w= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=dolphinics.com; spf=pass smtp.mailfrom=dolphinics.com; dkim=pass (2048-bit key) header.d=dolphinics.com header.i=@dolphinics.com header.b=awMgbqH9; arc=fail smtp.client-ip=52.101.178.118 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=dolphinics.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=dolphinics.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=dolphinics.com header.i=@dolphinics.com header.b="awMgbqH9" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=JLQMoGP397IQpL5YqZ7t0vbowB9SvCPsvBuiNRM6OBzKkTY+IXXYLGKgc1+Aa37WfYc4izioWnWjC7v+UuL9z/0nQTwZHnd+HSNwgRI2RzPmcBOvbPH9/n4mX1AmNa37o+ElOro0yS//lZoAnDD+07hYMKjxfWiuPJVDxLfsJN2iQd+8VxKN3pbY8NZ5D9EXquTxPid/14b5rMGike2EHFh2C/+MxOeqqitNVV4qHDRYTskmI3OYJ/ybkHgyFN/Cn0h/YKYsc7buNyqBkeeGsB1MYINsb+226xSyMsVXgJhEmkDtu7xccPMjgVgvzyYTKFA/iWBr/DcfF5dMqUsSJw== 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=oZeL/czZJS1tAsSdl0OlvVoI4Cu3FZDl7gZSwzbbxv0=; b=kx+KA2DqnAQ+4sAYcycoQURfQoG19/+Q0PD698nwhdYIRoPvwo5BIGKTPC/BvYQvCqHMRO7Qg+RF+7QP2lh7W+Pbj7MVdbRaIJPC3Mk5Y0lwTdysmmeUtddOQECNnOskQO9KUG7rkKYk7qrKA0973WwJp5T0mZGaDX/gIQaYgxs1391kplQsBKY+zmDe8UbtbV9VykzPvx1eHXi40fM5TvPs9zpbPkll314rfQ9aV7pqdpfulfDn6TqRj506ALhyzj6CKVwUSvhBDDMkmFvB+D5qxc+DhweOdh0dl9eNUUGiV3Yb3c5SW7qdLWycQ+aWfBNIxlBYQKuBBexVHGePGA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=dolphinics.com; dmarc=pass action=none header.from=dolphinics.com; dkim=pass header.d=dolphinics.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dolphinics.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=oZeL/czZJS1tAsSdl0OlvVoI4Cu3FZDl7gZSwzbbxv0=; b=awMgbqH9TxpkQuV9Ko71dmBKSPtuWDgCXNPkxM5F5EIIyENxvCJwwTPGQgwHa+736Tep2SuLQo5OuvpUq1LvQzAvVYTXGeHWpGvE15PoBrE/rmuUQ+5x3EJpARR1t7W+0P5orP2ERXESHdnO5xILgnW5aQqkSor67KWaxubi0SGIa+I34/ghQtCTE9uoE7lcy7xtvF92dUOc3Ny8xd7Ex91NjymC5WX9UsdZVLaB5rdF7iUgUffTJr0NbweFKrIseauj8RorMqt3jSGLua/cbLDLVjwb8EwURG8/bPTUS6Dxtu421+s8EpPeRLm0M3gtsPHMwfJXgD2UyNudrJ65lw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=dolphinics.com; Received: from OLAP279MB0055.NORP279.PROD.OUTLOOK.COM (2603:10a6:e10:2::7) by OS5P279MB0536.NORP279.PROD.OUTLOOK.COM (2603:10a6:e10:20::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.19; Fri, 6 Mar 2026 09:22:57 +0000 Received: from OLAP279MB0055.NORP279.PROD.OUTLOOK.COM ([fe80::c82b:8ba6:653a:2875]) by OLAP279MB0055.NORP279.PROD.OUTLOOK.COM ([fe80::c82b:8ba6:653a:2875%3]) with mapi id 15.20.9678.017; Fri, 6 Mar 2026 09:22:57 +0000 From: Magnus Kalland To: vasant.hegde@amd.com, suravee.suthikulpanit@amd.com, joro@8bytes.org, iommu@lists.linux.dev, linux-kernel@vger.kernel.org Cc: dhsrivas@amd.com, Magnus Kalland Subject: [PATCH v3 1/3] iommu/amd: Use raw spinlock for interrupt remapping tables Date: Fri, 6 Mar 2026 10:22:28 +0100 Message-ID: <20260306092230.132183-2-magnus@dolphinics.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260306092230.132183-1-magnus@dolphinics.com> References: <20260306092230.132183-1-magnus@dolphinics.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: OS6P279CA0095.NORP279.PROD.OUTLOOK.COM (2603:10a6:e10:3d::17) To OLAP279MB0055.NORP279.PROD.OUTLOOK.COM (2603:10a6:e10:2::7) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OLAP279MB0055:EE_|OS5P279MB0536:EE_ X-MS-Office365-Filtering-Correlation-Id: 5ba83fa5-3101-4f90-10f4-08de7b61f3fe X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014; X-Microsoft-Antispam-Message-Info: HHoPQWyCuigzv0435eaYGi4lV1lPzorT/zoI1f++AUbhz7QgBqivSj0MAGVNiYn25NQiLuPbPHOTmQsBaMSEsm3pYM1F+QwpAaFnDt9dt670ROYREmSu3WX4rezV2qPbLoZnsojTA1Um5HtxJ/aDabZ4uRI1QGeZLZ6/MFJa2MpdQ9sJaDTPMEqnbwS4f6Rkgl2ASRaIcdV6KOvcaDnCx902W2ebbSKSu2PNYGR1G3ANKFxPnvgOCKYuxn8EtWVWmjVQ5NrVXnhL/YBev+leI0sFpQ9Ngn69QKhfAu4jBqHQBkTzO9lONybW2Wh8THswb535qJTWpzAfN7Cw1AAbh2ulsHx5XFzDuyPVD8weIbrCDy3NZKeZqFCpQ39moscRq3iAobvQL6gJU3ipPuy+VF+/f/gLmtvxf3UUvTZez9yRvLG78ZnBH/vswPfdUiuSCwNDD57bZnUXxp8CfPio/21NQ19nGVz64IQy6NVfZjB/ZzKuy8FKa8zIBp3atVPb9FPGQHkurKQPJ+QCpKHc5CKsWrBe+xd7FE4J5Q1YpY8tbZ7GfhZBdOS7+RZuJhg4LTRJucMMCUk67L4kddml/hqPDMF589ycz/M9v7nuT39LAzDMEdDvACUnMCGJwkE4+60747poN9Y7qH6dh7JZ0Ukl7ePlNGOWYwprGtxwd++mVsiK6A6UUEJqAv1l4i4+Pmy+dMczdHgl0Fqs1lo1Rmwl745tYdnjCsr2N73fkJY= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OLAP279MB0055.NORP279.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?+YVnUIJMCsY9mBKKUdeMn1S34115AnuSpSI5chFJwESFgnIALnxByVvBvlqv?= =?us-ascii?Q?6MrOhZmiu0ntJdlWrYfVceRxJ1NkYpSm+YHQ09aXpHlexixQbyDma/E5K5RB?= =?us-ascii?Q?f1JCs/POriGIZXjIGaQDLZ4EYZpL2F656K1BXZjXvF3uOUo9NKtEn2ks745i?= =?us-ascii?Q?YqXUImRrbIstqinsCac7JOcpjNIVDDbCnLVLlwy/J9/u0YpI4XAahnELmdHx?= =?us-ascii?Q?iE6+vE4f8sDQFXv6cqEyg5cFMbE2nWWH9HbVJ58gMuUUpZIjKECiNmO2d4mx?= =?us-ascii?Q?G3Cazzndi/Vl1fs8OPKFDSMcU9zeozAoYlk4+GcCZqrdpQyJReddg+ypXXbR?= =?us-ascii?Q?Oa2tLphFctabsd5hV/ZOyv5dQUMFlVUwQTIzpf2m2azRE5hRqnMAJGZOqiUR?= =?us-ascii?Q?CpxKNatAyfZw8vM7pMR8gamQHolom5lxbE1NnUDGzPUMgXbbJQrL++oHaUKm?= =?us-ascii?Q?n05V6lh33FwSt/NorYnnLI7+w/W9cpzDsCU0GoRY7J0YECQMKhInaP2jymkF?= =?us-ascii?Q?XdxppvI4ZIjOuN1w8ehj2yj/55+2yipD1Mzc7xVdxSLd3YqRuTi92t9FFSgV?= =?us-ascii?Q?EyScbRcQ9NyZ72CZWFX16MBerUS7Cg6yk6lxNqzn+b9ir72UBW2soFUflO1o?= =?us-ascii?Q?8G2nasIT3AedHGz8GtgUgdDVvCxcvSbCFhzWJrtadV1U9ZNBI/Wzjub+OvUN?= =?us-ascii?Q?p6pNl9vfgQE4t1RONBolpCOefrBpxmhqDBY/1PYrEfKBdi7bCAGhA43lX+P0?= =?us-ascii?Q?F5sycME1+LNwrYCt3zAGeXbvqr0aZDYhrt+5VR8sglamDWCcAyzUG/w4Ktq8?= =?us-ascii?Q?6n9C8FrL+1EqTGdTb0j129o5Z2bx3AsujyySgHkpqniwgJ8zc1AxjUxefgNb?= =?us-ascii?Q?l6bkoB3FulQJo+1f7KnZGsxUgc3foGfFjy69Tw9xG+VhoYm+dtchMwQI5fhd?= =?us-ascii?Q?oVD5EVhN+dvLSQflKEsH0EwXv0Zllc2XKJYdhwO77cUXGiHiP3XvFnkVhxQf?= =?us-ascii?Q?1Lw9Jb12vIdAVfuWoPtZ8UW9KoSnfQ6Eys3fFPNqfEKQzv2sZA1F6feOoUUy?= =?us-ascii?Q?vPL5DIiG1rIYEtEUZeaBgpRqO/AnMftWur5hC+rLoJLkP7ZXkhba6O+RtA6Q?= =?us-ascii?Q?hQ6Vg3rKQFHY7TjnpI1/3cUpEzoN1pOX1gOE2UQUx48ibvodnXSaiWED1k3o?= =?us-ascii?Q?8MzXWLif8P8cc5i2qKSGoM5dESzBCzkhgEgPshonJJB/193O7aexMb/Nvkoy?= =?us-ascii?Q?eVa0oiJUIssCBr8CRuSVrcokaZKFf1G6CLS9YVdXb34pEj7uEzGUVP6CyTvl?= =?us-ascii?Q?aJoSGpX3dhWIjVW2H4FCz81HraVmr0/NY+qU5qFnCUAs8kQ9ALYAAMms7nPT?= =?us-ascii?Q?MMNtJ3kTsvV/JHEOEz30Ycs8H3EuiK1zzhM386bagDgerXalLqS/7yqyFpZK?= =?us-ascii?Q?cKEMxhbQcGI+BcONx+ObxBFmmBuo9Wtzp57OogeBDx0/3kM//ULY/c1gQDLZ?= =?us-ascii?Q?r+uspxXT1/jRk/n5w93Qf6SjIWQuHUrDaqDS+v1t3e3ZBXDJv9QIYXxqzZyz?= =?us-ascii?Q?kMkcEwLkW6APAR5MxrYMJzOlHcb92pLloeuo4YH/kjQX5VPFQauhHRwtO6jT?= =?us-ascii?Q?G4emE+qr+9VmzhI6Z4qqom+szXhqYo93gISQXii6Enzpj09YG28+Vcrg5CTl?= =?us-ascii?Q?Hjd4SHY6X76szc3ENHqmTL54jXWytI3LC70TGqSQW6n/dZoouC7zEp4Xtnzi?= =?us-ascii?Q?zmNCiyicMQ=3D=3D?= X-OriginatorOrg: dolphinics.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5ba83fa5-3101-4f90-10f4-08de7b61f3fe X-MS-Exchange-CrossTenant-AuthSource: OLAP279MB0055.NORP279.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Mar 2026 09:22:57.0170 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7fb89e52-625c-45cc-a50c-adf3af1b0a6c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: idzMzN2NvM/dJflp9k0AeJXbNLQGMDp8ViQty7xnpvrgYpFhNzqJbJRQJQ/GT8B+HRJlKA5YjRdC8w8fQ46tJw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS5P279MB0536 Content-Type: text/plain; charset="utf-8" Use raw spinlock for interrupt remapping tables since iommu_flush_irt_and_complete is called under a raw spinlock. Signed-off-by: Magnus Kalland --- drivers/iommu/amd/iommu.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/iommu/amd/iommu.c b/drivers/iommu/amd/iommu.c index 81c4d7733872..f3193c6428c9 100644 --- a/drivers/iommu/amd/iommu.c +++ b/drivers/iommu/amd/iommu.c @@ -3164,7 +3164,8 @@ const struct iommu_ops amd_iommu_ops =3D { *************************************************************************= ****/ =20 static struct irq_chip amd_ir_chip; -static DEFINE_SPINLOCK(iommu_table_lock); +static DEFINE_RAW_SPINLOCK(iommu_table_lock); + =20 static void iommu_flush_irt_and_complete(struct amd_iommu *iommu, u16 devi= d) { @@ -3310,7 +3311,7 @@ static struct irq_remap_table *alloc_irq_table(struct= amd_iommu *iommu, int nid =3D iommu->dev ? dev_to_node(&iommu->dev->dev) : NUMA_NO_NODE; u16 alias; =20 - spin_lock_irqsave(&iommu_table_lock, flags); + raw_spin_lock_irqsave(&iommu_table_lock, flags); =20 pci_seg =3D iommu->pci_seg; table =3D pci_seg->irq_lookup_table[devid]; @@ -3323,14 +3324,14 @@ static struct irq_remap_table *alloc_irq_table(stru= ct amd_iommu *iommu, set_remap_table_entry(iommu, devid, table); goto out_wait; } - spin_unlock_irqrestore(&iommu_table_lock, flags); + raw_spin_unlock_irqrestore(&iommu_table_lock, flags); =20 /* Nothing there yet, allocate new irq remapping table */ new_table =3D __alloc_irq_table(nid, get_irq_table_size(max_irqs)); if (!new_table) return NULL; =20 - spin_lock_irqsave(&iommu_table_lock, flags); + raw_spin_lock_irqsave(&iommu_table_lock, flags); =20 table =3D pci_seg->irq_lookup_table[devid]; if (table) @@ -3358,7 +3359,7 @@ static struct irq_remap_table *alloc_irq_table(struct= amd_iommu *iommu, iommu_completion_wait(iommu); =20 out_unlock: - spin_unlock_irqrestore(&iommu_table_lock, flags); + raw_spin_unlock_irqrestore(&iommu_table_lock, flags); =20 if (new_table) { iommu_free_pages(new_table->table); --=20 2.43.0 From nobody Thu Apr 9 17:59:12 2026 Received: from OS6P279CU014.outbound.protection.outlook.com (mail-norwayeastazon11020118.outbound.protection.outlook.com [52.101.178.118]) (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 BC2EB3446B2 for ; Fri, 6 Mar 2026 09:23:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.178.118 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772788983; cv=fail; b=kcKPOmLxIdIFkJFsx1uR1DpkKpAtwMShQ9MpWJmfH/MjETUTakLq69/Z74Kcyf9UNtSqtH6zG4DCXTl6wOzpML047VFmNgiaIOk8AWLaHyoeCj0GOmet8SdaLRSiURQaQ7Wn4XkjQOetXrUWsI0rwr7RQXkQSdUIzYkZtzEgI9M= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772788983; c=relaxed/simple; bh=h3XTxdJHnEXxK43BW2PY8HlvNru6C5VpLLfX5ItlROU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Catit0CFY5LLwO5ja5Fr7SNnMLvBFsFW5opXo+qfTIxuGx7qMbR6myiVOARKWeNi2O1Qp+DkdsDlKWZEWjcAeGEZUb0FJrEBh8wDjoGm0ObPWEVg/jtXMqmlUauVPf4S7tTH8LO+vscueYX6eMQh7gHXmzuDvYrZysZvApyTKWU= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=dolphinics.com; spf=pass smtp.mailfrom=dolphinics.com; dkim=pass (2048-bit key) header.d=dolphinics.com header.i=@dolphinics.com header.b=d+orE0xK; arc=fail smtp.client-ip=52.101.178.118 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=dolphinics.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=dolphinics.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=dolphinics.com header.i=@dolphinics.com header.b="d+orE0xK" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=lV9FBIrNViyyMUuQ8ARpxWhrRmOJBVX4MHvDkE0lKYat1bE72AfveJVegeikY1tL8o+3USiqnpRaTD1VKl3WTfD+FeRGwovdd+105YTs/G0vwmuitvRAdJVk0Udwvw7QHUTUQC8QA/3sKFXVjYF0PyLpVkhuGomZp2iaxyFLeu41X1+5NF+rO8+U3dgxnUYs+fe18qhc/xB2mSfkwnSOie1pGADDj3za7Tt4saEgUqCN0WXZ+fsUSMJtO04swedupLPxKZN3sZLz1avrUH0Oyh3KLqLG2/eDcfgFTRdzxN20jfWkXpZJUnOZrDox75RehS8r7HHScCxDMVvQp2bicw== 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=6etFIiMllfRhkM+Pu4GgcEgd71w+oLRDTAR19fWzU5Q=; b=XMQprhz3cQmttcVbwROcP+ImAySeauO8bqA1XAkRz1+hfGZ0WqF1pZvx/17ypiCKYjRHyc7lDgurceT48lj2oEIuVaDmM/8j2AakHD/BPPtDpOYROcy1dli3FpY1CVDVUqE4UDYd/7zKFDu8qJwtFYr0tLAAUKC78xK58jHH9GYEFFgIrV85V+gngYwpY4JYQleseoT0856ui5oM/AhtZNpj4axSq9Mj1o8NtwE+idoJSRdvxtUX3wSCeZvHpi7TdpsskkvZ04v5CjGqh50Z6Y1Ro5q4AbSZwJiUZ5r1Oe0RwIxaHkjBHU7n5c2OuWjLERC315RvcRc1iQ9e+q9JOQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=dolphinics.com; dmarc=pass action=none header.from=dolphinics.com; dkim=pass header.d=dolphinics.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dolphinics.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6etFIiMllfRhkM+Pu4GgcEgd71w+oLRDTAR19fWzU5Q=; b=d+orE0xKxpsPlziT4GN+Awplx7WM6IoUAuNJJt85kbGkooYhpcVruw5hjAMe3QZc9V/plIC8bOwHq621nYuwI06vQwyr4owCE1OrXLcTIvqPjvhTK+le4guAR2pJ03gz64TnlXa4M+ROs3fTckfyXUfizONfDNbR7DLaUUI9/Zcfah0FEfRUIybvprodec0iM9La57aNIFPvQCOmIklWVXZ+7tNV2I0T7Ce927cu7lXZ0fRu4SU+Ukico6sRBT0cBn3EKBOpCBybovjP5VgWF4XfdgkmtHfVUZ3SIfqo3GLJyJucR8+h6aSC4O08QjzGu2O4u7CUXfag65NYF9jS0w== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=dolphinics.com; Received: from OLAP279MB0055.NORP279.PROD.OUTLOOK.COM (2603:10a6:e10:2::7) by OS5P279MB0536.NORP279.PROD.OUTLOOK.COM (2603:10a6:e10:20::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.19; Fri, 6 Mar 2026 09:23:00 +0000 Received: from OLAP279MB0055.NORP279.PROD.OUTLOOK.COM ([fe80::c82b:8ba6:653a:2875]) by OLAP279MB0055.NORP279.PROD.OUTLOOK.COM ([fe80::c82b:8ba6:653a:2875%3]) with mapi id 15.20.9678.017; Fri, 6 Mar 2026 09:23:00 +0000 From: Magnus Kalland To: vasant.hegde@amd.com, suravee.suthikulpanit@amd.com, joro@8bytes.org, iommu@lists.linux.dev, linux-kernel@vger.kernel.org Cc: dhsrivas@amd.com, Magnus Kalland Subject: [PATCH v3 2/3] iommu/amd: Track PCIe DMA aliases in set_remap_table_entry_alias Date: Fri, 6 Mar 2026 10:22:29 +0100 Message-ID: <20260306092230.132183-3-magnus@dolphinics.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260306092230.132183-1-magnus@dolphinics.com> References: <20260306092230.132183-1-magnus@dolphinics.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: OS6P279CA0095.NORP279.PROD.OUTLOOK.COM (2603:10a6:e10:3d::17) To OLAP279MB0055.NORP279.PROD.OUTLOOK.COM (2603:10a6:e10:2::7) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OLAP279MB0055:EE_|OS5P279MB0536:EE_ X-MS-Office365-Filtering-Correlation-Id: 8b9107e2-bc7d-4996-2a0a-08de7b61f5eb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014; X-Microsoft-Antispam-Message-Info: UoTsorwMKTMLrG0gKS6Id0JVrv+x6JYQaAk7pZLZ/dqFcVynzhf3Vb6iZNgVbitZqB2HGWtmOppdhnXMOU4QcPCnLHEfx+tQNxQs2ZVIgH7bviW8BG8mniD6kyPhU27pxOOkV2G4kbfntuDJAaoTADGC3O5TY25xDgBv6QecAq719bS8VtK2PzbdsIII4EfwkHuinEJ+GAXmN7Q2WC1VR7jQ7CQudJElo6AkzQY4k6wWNNFrdvpL71A2dSAPn+KV4sPE+Rpo/Pko4K84c16fysb3DvTGPSlD+2aXTMyJiobRLJD6bBHHv7/xsIF/a5Kge7UdN4R204pEr4gnU1ByTqmm2Dw6Bn+649zBKH4COWV0ksTdni5Dor+YBrQMlgs2868kN6UyjxbXkkm8ck9csP0/jpNvyyU+ofIYjiMygYYv/M314ug4ybz7ENI+cA6cGPxW9s5oMsPg4VIrn1yPhZJacxgyNfilhkCwZxzYhzs2+jOpqsar5WbdZ6akQnqFpoLCDT0jqXW8N2s1gXsZhW7OBmuSkARtK4PVQGCMj92TWEffEKLqWgEL80vt8ndNJ6M5Obd69XskIYTVyY+0nbK70X7vmvRBoi47p4QdglwI2oISKND9qj5ajLYPb9xGGwRpKjXGNqptjYR+c4GiXlGwdNw6gtscSdLlYUUrWn7gbmOhAkVarfvjrEUJigzGpGFoo2m+KCEPlbe37CI3A0/yh4AjYIdxEzOf0nHnCM4= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OLAP279MB0055.NORP279.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?PdhgIeLXkqj/1kjQ20pXO8WBUr9mWbCl0kkxRfzyMsG2VB85XeM3ou9DKcm3?= =?us-ascii?Q?oLMZhnrtHm22PsvvKUIiaEFc/U4PE6PHItZxuAoOco9tWpO68ISsIFWeGKoC?= =?us-ascii?Q?4OhRr9M4UnutMazQ7zBGE437f/MDJCUzKC16EbtMoqDIaLlRi6PCRwEoVBhF?= =?us-ascii?Q?LEw2k75AD0LNxGgNE4TXDu4ynCyiP41gEvB0Olm9zCTh3gGzrzrUDzWGADXK?= =?us-ascii?Q?zcSeZ+kBQ4gf74j8j5dUzHzO6MSmEmWqx8Z7ZL8Dmhh+JJtgAPNiiS3Cv93k?= =?us-ascii?Q?LIKdpZ0LP/DwM/eZUdUVYKxI/+icfBCCo2yswXbmFTpS0R1pY0p3XsnQKjzF?= =?us-ascii?Q?EbKwrL0WWN7537PobZqebw8DPOrOVNgYD/k348WiAVMy71pjqXeQm1P6A6AG?= =?us-ascii?Q?kPKJXIpSjrD3AyWzPdBCYi6Sf0ejtqDzW4Pf0DYYLHtRQPLLW7VxEoYpsML6?= =?us-ascii?Q?rOFcPtU1dxtQ6xanRR6C/gbwOKfECauz2GAoX5nz1FmybqrMEm4se3gAz950?= =?us-ascii?Q?qbWOy2HK0DF9u7N00eP+xSB++4r+RWXzlkZW/Ik0eFPgqc5Opi7zQ+JtDfPT?= =?us-ascii?Q?9gbPVzrH8MLojDkRyAP0MxrjkM1vPKc7sDq3QYNyqfwyC5IFesU3W8pzq48g?= =?us-ascii?Q?bAbvkc00h0qRrrBFAbW5nG/SZmFlzY5tB0n0kOUxXhEp0T4rc/vRoOVVj/CQ?= =?us-ascii?Q?UP8k7LTeq7uT8hUNEvEFeJ30A0psS8WsOLW2KqccWHPLSMYEiZGNSXRCIQ//?= =?us-ascii?Q?fOCQuw4c1QgC5c81is1g94W8sguNNtU7HU/V9q0rFfpshjSewMTLjmDOorT/?= =?us-ascii?Q?X/E1YmyhVpcGfKWvMBzAsBXy7+RthkluHe0swOrfUQr1zTjECr3Q4+dfMiCt?= =?us-ascii?Q?3DaM0odDa2Nh7NWGJLBUs35kSig+gYhN6t707ZHFGmMYltZPUP1dpPJvVN65?= =?us-ascii?Q?xOO110Ulp3Bn9DLtVI3e4QTWJF9a0RgrW9qBcd0DBdV+fbgjIDNGj4cxPwcV?= =?us-ascii?Q?yy7vOz2sJYK3RFz1FTFz2StfnShDWGeCE3YJ4LuAU8KWAO/tz5m8ihQ83ruN?= =?us-ascii?Q?whOxpKsYF0YKTYU9D8mUR+JUTXj8fbBEGh8YTPRN9l2CWyyW1o9Hb0uGedmH?= =?us-ascii?Q?6eMo3C8e7fdrSWzj79a1VrtP3j0E01+8+UArYHHa6CEq+P1LGzTCw8+TzTtH?= =?us-ascii?Q?QcmyCvTbh5K/bfjJaLN36nBSfEhescaVz/w1oNzG8NBnDtYcL5Iy3n7syF0k?= =?us-ascii?Q?Gu8EC8pByyw6kLm7262Uxs+RcInxkG/upRbwfV79f696vg5cCWtWQJNO9u6u?= =?us-ascii?Q?9qJm06ljQePN4lkxNdhKal9tnE44olR2JtanZ6ojvIgf+anS/tUPWY0FNPN1?= =?us-ascii?Q?V6orSBlyv74biU6nhb5+IauaCoUdMPzxZJtJkvGo8IjeqVh5EjMVJNrpiStn?= =?us-ascii?Q?hwTi7Cfr8DC1VZtzW+bBjEUe70iW0Q3nRVCREu7YL6jjeTE353/wZXGHW1V8?= =?us-ascii?Q?8eAx0lz6IS/Hk4FkJSui7oAQfXsWz6SpLUf8EMJ67HqIwQuiEXfOAejoV/LM?= =?us-ascii?Q?4Wf6/ZgnjMIUz0PWmHXwdeHVcM6DxreB0x6eTjh1WEtKzmjXsPpMxeA/nEVR?= =?us-ascii?Q?pVIF/IRZ5fe+cDWZhtjHODgGI31pC4hnD0dFtO3ipporHQCrtn8eh7DOdTbt?= =?us-ascii?Q?//d+6oNyFZ5g0NY6oaOQYAidzsG3Z65dpxEkE5t+ZugwqtxrjtOnf31LeZ8R?= =?us-ascii?Q?HE1eV1fU2Q=3D=3D?= X-OriginatorOrg: dolphinics.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8b9107e2-bc7d-4996-2a0a-08de7b61f5eb X-MS-Exchange-CrossTenant-AuthSource: OLAP279MB0055.NORP279.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Mar 2026 09:23:00.2767 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7fb89e52-625c-45cc-a50c-adf3af1b0a6c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: K40cv9tC7JXRfaB97X1xSuKK+EuaBRSWCC/MNnFbxNekJur+apbT/UCbHr6mCteeyy/XffUu6GfE+RLzTDJSbQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS5P279MB0536 Content-Type: text/plain; charset="utf-8" Track PCIe DMA aliases in set_remap_table_entry_alias so that we can iterate over shared IRTs by alias in iommu_flush_irt_for_aliases. Signed-off-by: Magnus Kalland --- drivers/iommu/amd/iommu.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/iommu/amd/iommu.c b/drivers/iommu/amd/iommu.c index f3193c6428c9..5dec3502c8b3 100644 --- a/drivers/iommu/amd/iommu.c +++ b/drivers/iommu/amd/iommu.c @@ -3280,12 +3280,14 @@ static int set_remap_table_entry_alias(struct pci_d= ev *pdev, u16 alias, struct irq_remap_table *table =3D data; struct amd_iommu_pci_seg *pci_seg; struct amd_iommu *iommu =3D rlookup_amd_iommu(&pdev->dev); + u16 devid =3D pci_dev_id(pdev); =20 if (!iommu) return -EINVAL; =20 pci_seg =3D iommu->pci_seg; pci_seg->irq_lookup_table[alias] =3D table; + pci_seg->alias_table[alias] =3D devid; set_dte_irq_entry(iommu, alias, table); iommu_flush_dte(pci_seg->rlookup_table[alias], alias); =20 --=20 2.43.0 From nobody Thu Apr 9 17:59:12 2026 Received: from OS6P279CU014.outbound.protection.outlook.com (mail-norwayeastazon11020118.outbound.protection.outlook.com [52.101.178.118]) (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 9A33E3446D3 for ; Fri, 6 Mar 2026 09:23:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.178.118 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772788985; cv=fail; b=TTcHml+wt65PYvOXDxAbETm79V617kvCv2nMOxEoy2hEl9S9+e3J6fmxj0fb0/wmoxB/GM+5DlPpcPZzs71+3OG+SxqB/pZU+5nk0CZgTikRNLsD3xokGjXrDUQs8Y5lxZWrabhOZ2+ZX7t0HsK6r+361DApbyEFgd8/ImSS8f4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772788985; c=relaxed/simple; bh=HyCRrRTlGxDh9ke27oQl1QUDkiRxVHcxULjvOtOmrA0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=H3qSGqEHNrvqsuGd6h+H3vS2RA0qnneTT6pc1Q30b7m9G5a1ST4J4d008XCfEh8OWXMEYa4Oo56IpvuUyAhYdpx9rHqCV/1wE6krwhxI5MUS499TrjB8SPYGiDcSAoRl4y+26latfIRJcsjDSP2M+gwfgqzVQLawmRmLtkve+PU= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=dolphinics.com; spf=pass smtp.mailfrom=dolphinics.com; dkim=pass (2048-bit key) header.d=dolphinics.com header.i=@dolphinics.com header.b=nBofFIvS; arc=fail smtp.client-ip=52.101.178.118 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=dolphinics.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=dolphinics.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=dolphinics.com header.i=@dolphinics.com header.b="nBofFIvS" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=nIfp3VrpRcdgV/DjzzMjCogPjnbvcXyr9Arhc8LO8ukj+M3UNTMmr12yENmy3vtveBGaBYx7SJtIiCeiToG5EUPGIb2h7ibfpGobifGjoCkR8H1KGcvvpelqqFplyjV8pVjl8OhmsrUEZ5zhurEgOs2t0HzeUka5ROZX8CBIt/jqE34LfBMV3VLhV7Bq4QlET/ekawx4crOAzg5RxQzWLR/5FMyi7KyOvz0As7zrIY28UTVzur/Z4u//8Fl7x2Ebu1CTXvd8a2rObZvA41uWNybrQAeeBh8i/0Xop0ZuPOnjO0XUapsAq3GChbf1DDAPmPYizdVmS1q6sr8gl84jjw== 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=07jwDdYluwzdqZ/DsPtnv9xD7UI8CMaPqQoVYi8errQ=; b=MHL52xSQ8o2jWX2ZITogZNi3Sdq3DU/TU0aC/uFzgoo+lPkPvdSnajxmyPGzydqzpShzANmNoDqgOmekJcAE4Gt7QTUqdUa3myy8FQUoEPuQB0YSv5bDffzASTVKmYhvGSEMJ8XyAcT+B0uqu3jxiYduYwQmbNVUhziB79nE+mHmb5ZNJn8nsZ9wMOpGpCCSkLfDlEjpBVXPFRWTwZdnCbQqoNJTs2iNr0LIvLScKydhxkrPBsk0tfXAvj8+wR8tLbL/1WhPyW825IkMfwfzceAWGCiucaoAsSw2a4+sqM2Xw6nrUwyDi0k4A1+N4Pk6YaCFCwdrVXjJKEScFAtbZg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=dolphinics.com; dmarc=pass action=none header.from=dolphinics.com; dkim=pass header.d=dolphinics.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dolphinics.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=07jwDdYluwzdqZ/DsPtnv9xD7UI8CMaPqQoVYi8errQ=; b=nBofFIvSl0BxL+MOsuOQbjKsKg1Haf/18WhQPfbjeJ5qZErnc3xOBiHMf9IXSXhNt5W9P560es4d1l2np9JlFGzRW39wKLhwWtwWbkSsZnlmbraK6nx2T5SX4iLlFA6zZuoGFwXx+BXomQeQWGBp5dQa/XA912U/yLKr7TY9GbJJ33dm1BLnQb5mzHcbt0ZAQT8VXe2/O7SJhe33UwAyaPwaTuwuk0DLYcXzy/ra2vx3NjcA8CcuPbudsGwfAz78UP6Kw6hcKbxzQwblMi8PlfYLU8woHcxA/ZbS45nwBqkDIqbEYE1LNM42/GDSZEo8aDcFUGkZxRmki3rCKHAA3g== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=dolphinics.com; Received: from OLAP279MB0055.NORP279.PROD.OUTLOOK.COM (2603:10a6:e10:2::7) by OS5P279MB0536.NORP279.PROD.OUTLOOK.COM (2603:10a6:e10:20::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.19; Fri, 6 Mar 2026 09:23:01 +0000 Received: from OLAP279MB0055.NORP279.PROD.OUTLOOK.COM ([fe80::c82b:8ba6:653a:2875]) by OLAP279MB0055.NORP279.PROD.OUTLOOK.COM ([fe80::c82b:8ba6:653a:2875%3]) with mapi id 15.20.9678.017; Fri, 6 Mar 2026 09:23:01 +0000 From: Magnus Kalland To: vasant.hegde@amd.com, suravee.suthikulpanit@amd.com, joro@8bytes.org, iommu@lists.linux.dev, linux-kernel@vger.kernel.org Cc: dhsrivas@amd.com, Magnus Kalland , "Lars B . Kristiansen" , Jonas Markussen , "Tore H . Larsen" Subject: [PATCH v3 3/3] iommu/amd: Invalidate IRT cache for DMA aliases Date: Fri, 6 Mar 2026 10:22:30 +0100 Message-ID: <20260306092230.132183-4-magnus@dolphinics.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260306092230.132183-1-magnus@dolphinics.com> References: <20260306092230.132183-1-magnus@dolphinics.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: OS6P279CA0095.NORP279.PROD.OUTLOOK.COM (2603:10a6:e10:3d::17) To OLAP279MB0055.NORP279.PROD.OUTLOOK.COM (2603:10a6:e10:2::7) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OLAP279MB0055:EE_|OS5P279MB0536:EE_ X-MS-Office365-Filtering-Correlation-Id: 4a8a3b46-7dbb-4bbf-4bd2-08de7b61f6b7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014; X-Microsoft-Antispam-Message-Info: Iz7xMvluGbQ7y2wgCui9O1+JBGQ87VinpySr74ZG0rJuuX//EEGtFQVzkjl/F2vJHH2NZSWY6pVZqnxz/RIflb22WrRhiM9lW3QM6HAZ+rkWORcvkYmq3cDSH4IgY54uToevlTbQuF7au5QQr4Gvsim5hPxiyg4ilhghGpKNDLV51LQMwFAyGc+azSHpXUsm+12igeYpU0caPiuWM8P1Z0iZjWiJ6jgXJQszxej3GArYIr9tqw+xHZtyQ8Nne3k0V0xf6t8RsyUP8Ejn1iBecfIR5269afvgllTUUQS39PtrJWOS+84xGsLNsCRsw0JHP9vuTGbyZIGGWIjekAAlWgW0dK+mB+p4Ra2WitYrbDzaaoqbLAlAExVKzSMex29Cp7BXhvs0GYZMqE8/eGCOjtRnj2hhNg+9767cJUHj+MYiWTFRw2JhlmdIi1dMbhpFjme8TMq3RmUCERpWtbLh1bPrmsjTvgBplQwe0guZxVUu7jsHRXgcj/0lm8Vqh8sRMW6SagTDeOHOV5BycbYcgarjeQyMs3W6md49ekImogD0AFlORJ6uQbMt1QVA17hnwh5YG8fG7AWhjsaAitZ0sdNmJEka0/G252OtIEDbna/XTJDrBIJ9NOqaWkvQxQ/hYxECjH9qlAY0u3V5vEEya2GFLJ47D9iHldoi28R+taurE2Pk881VxwEbRoxTngZhr+QtPsGWp9Gncrd/2A08unx6f27oNyIQFT4LW6mtLRQ= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OLAP279MB0055.NORP279.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?AeGnCffsoCWPW37267HJ66vg1e49O19ggC7lHmhof36xMZsEMDZaqLnjTkAW?= =?us-ascii?Q?dPDmUgZyXLI7qdxvpwPeWoxIXGtjxCoxMUBhOQM0pOB+QLHmT7D5h9CZpJx2?= =?us-ascii?Q?sBowPhysYT0DgjxWo6ma0z2RDr8+yYsckF7vLiIppQLdPTeYel4pFraJ1WjY?= =?us-ascii?Q?pRsvKUmbOaHQEHVBMmeDtvXsDKIi6saTfxskvryOK87vKvgi29QConUSt3QR?= =?us-ascii?Q?jzIVExY01CZ3S6VWfXae78BIJbEN/HOdxohGhOnc/B7szy/Yt3NeziwwR3xJ?= =?us-ascii?Q?JJIE7Nx7Z6fvE0FuGWeMTIfT7DgZlCJgrn+akoDKZitRp1FJQ05qJmRE8z53?= =?us-ascii?Q?ph2iOWaNf4Wwk1hkMGs5+jxNhu2Dy7BsJwQOw1G6+8GLwvQPoJ1nfkxIlY39?= =?us-ascii?Q?btK+e9wwXlIKpiVa/UukWCtYRmQbRAkM54c72tdu/mGvfMD7XPVW9tj207aa?= =?us-ascii?Q?8NQ1zE3o2O2yYrL/ltwHq7WhSXEMPEDzsciz+iHILucdkeOdxnZmvTRFvVyE?= =?us-ascii?Q?n62DTH/4eEZ2WqHKRKPEiGDGTmgMUz1HwlTdoUTljEJ5iW19KKNKOk6rO++D?= =?us-ascii?Q?+kSL1nxgOfOnbMA3Z53bawNgpTWMa3uPqPz6xZBVftPDq2PH5Ek1iPfQqgBM?= =?us-ascii?Q?zAZH3r9s/3vxGq4dn3je9ah6fG4WGyr6bTchnyafh3YD8BaF8PDPAOm47zYA?= =?us-ascii?Q?lrdyXxqRQmHjTtWzIEHjDZE3kxDvpNMRQxtkjKipCVSJ1f8o2/BqnwChJyma?= =?us-ascii?Q?vvzf+nTbxJn50geSZH8REqHii2C6kBjuqMCGUKUKZUeZBzJHsjhRfgUTimmp?= =?us-ascii?Q?ylTAGlln0E8o/GEtvp34qhEShXL6wpIUTvoQu0ZOHeWFGS8DzN6jDZgkviii?= =?us-ascii?Q?JtX11KDPY2QVrsnxnGyKgqS5a0iKNytAwjLVJeJoGbaLyk3Aqsw6jDEbVJTf?= =?us-ascii?Q?N9JLBxrHIvqld1o183IpbgascT5IlQ/3YGeDYqvIPjkg0eU0kgbIUEyRQ1Vh?= =?us-ascii?Q?xjQW5bk2lpdBkw2JfYKx0A+PFEUFi+b6WpXZboOC+PEML3YUqJtJGODxNpFj?= =?us-ascii?Q?CONEAN5KYUy8zPfEWmmkuumkMvuUSjYijkRok9G7rrW9e57f6nlzEA44kPEg?= =?us-ascii?Q?fIjO4Op7ttysusarv4lkNCIhXtcF4PKdMU3I90kNfCDr7EatI1wYHB6wZ7Dv?= =?us-ascii?Q?OtztRE/7NlWQ+/tzwYve1CPcG+xntkzK3Xe7myz/JLxaYShflTVUNiv5oiSm?= =?us-ascii?Q?JKALdI4sGZhIFafGcEtv5yXFHcXm/M32XmJrmOiJWtLoLdGRFd0xKdKl0Cwx?= =?us-ascii?Q?he581d8ZFYGMP8TDFM7Pg9o80CJXqNb2spXj53Ys+UisPdJCI5QIPB9tOcro?= =?us-ascii?Q?R3yDBBROAOeNSAL4Dd/abi63n0uPMnQ6SYx+ItNPqPnwa4R37wqycxmmw0nm?= =?us-ascii?Q?0JSUnDfRWzpVvSfDyhvW16w/XJbbAqdG+NlDC48F8HqG81LIFSBGeZJE7vVB?= =?us-ascii?Q?LcrH56W9+eHY1lOx1ML2MEXQnowRYGZPSXQ2yD+Okj1JBs0nipClnogmKQND?= =?us-ascii?Q?mtJhVa5qc5akuJ3+vd2blAzi/+SkBsYZfmZHtexrPX/LubgebWJ/6SBRduKt?= =?us-ascii?Q?Xx8K/gAOUyn7O00p1N4kiw5auBballx1dyV6gLkfAysMO3SpJ1mlScffBixh?= =?us-ascii?Q?4OaN35bVR/rgumqNF6nvd0LUYDqLxpFkP4SZQsZt989cAWFxI2FXnTZh3T40?= =?us-ascii?Q?4HGw1Y2Btg=3D=3D?= X-OriginatorOrg: dolphinics.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4a8a3b46-7dbb-4bbf-4bd2-08de7b61f6b7 X-MS-Exchange-CrossTenant-AuthSource: OLAP279MB0055.NORP279.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Mar 2026 09:23:01.5768 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7fb89e52-625c-45cc-a50c-adf3af1b0a6c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 9uUjLdW1uNq2WdXkPt4QIPhKVD4KdEruJMO3wcZo9FmRe9ibHF9Dors5ejZ0p4d0ge+bElAR04mSHP5BiKzSlg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS5P279MB0536 Content-Type: text/plain; charset="utf-8" IRTEs may be shared between multiple device IDs when PCIe DMA aliasing is in use. The AMD IOMMU driver currently invalidates the interrupt remapping table cache only for the device ID used to update the IRTE. If the same IRTE is cached under a different DMA alias, this leaves stale cache entries that are never invalidated. Iterate over all device IDs sharing the same DMA alias and invalidate the IRT cache for each of them when an IRTE is updated. Co-developed-by: Lars B. Kristiansen Signed-off-by: Lars B. Kristiansen Co-developed-by: Jonas Markussen Signed-off-by: Jonas Markussen Co-developed-by: Tore H. Larsen Signed-off-by: Tore H. Larsen Signed-off-by: Magnus Kalland Link: https://lore.kernel.org/linux-iommu/26cfa307-6c33-41f9-a7a0-fbf202b38= a00@amd.com/ --- drivers/iommu/amd/iommu.c | 39 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/drivers/iommu/amd/iommu.c b/drivers/iommu/amd/iommu.c index 5dec3502c8b3..d9a91d1a083e 100644 --- a/drivers/iommu/amd/iommu.c +++ b/drivers/iommu/amd/iommu.c @@ -3166,6 +3166,31 @@ const struct iommu_ops amd_iommu_ops =3D { static struct irq_chip amd_ir_chip; static DEFINE_RAW_SPINLOCK(iommu_table_lock); =20 +static int iommu_flush_irt_for_aliases(struct amd_iommu *iommu, + u16 alias) +{ + struct amd_iommu_pci_seg *pci_seg =3D iommu->pci_seg; + struct iommu_cmd cmd; + unsigned long flags; + u32 devid; + int ret =3D 0; + + raw_spin_lock_irqsave(&iommu_table_lock, flags); + + for (devid =3D 0; devid <=3D pci_seg->last_bdf; ++devid) { + if (pci_seg->alias_table[devid] !=3D alias) + continue; + + build_inv_irt(&cmd, devid); + ret =3D __iommu_queue_command_sync(iommu, &cmd, true); + if (ret) + goto out; + } + +out: + raw_spin_unlock_irqrestore(&iommu_table_lock, flags); + return ret; +} =20 static void iommu_flush_irt_and_complete(struct amd_iommu *iommu, u16 devi= d) { @@ -3173,19 +3198,29 @@ static void iommu_flush_irt_and_complete(struct amd= _iommu *iommu, u16 devid) u64 data; unsigned long flags; struct iommu_cmd cmd, cmd2; + u16 alias; =20 if (iommu->irtcachedis_enabled) return; =20 - build_inv_irt(&cmd, devid); + raw_spin_lock_irqsave(&iommu_table_lock, flags); + alias =3D iommu->pci_seg->alias_table[devid]; + raw_spin_unlock_irqrestore(&iommu_table_lock, flags); =20 raw_spin_lock_irqsave(&iommu->lock, flags); data =3D get_cmdsem_val(iommu); build_completion_wait(&cmd2, iommu, data); =20 - ret =3D __iommu_queue_command_sync(iommu, &cmd, true); + if (alias =3D=3D devid) { + build_inv_irt(&cmd, devid); + ret =3D __iommu_queue_command_sync(iommu, &cmd, true); + } else { + ret =3D iommu_flush_irt_for_aliases(iommu, alias); + } + if (ret) goto out_err; + ret =3D __iommu_queue_command_sync(iommu, &cmd2, false); if (ret) goto out_err; --=20 2.43.0