From nobody Mon Apr  7 18:27:44 2025
Delivered-To: importer@patchew.org
Authentication-Results: mx.zohomail.com;
	dkim=pass  header.i=@eviden.com;
	spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as
 permitted sender)
  smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org;
	arc=pass (i=1 dmarc=pass fromdomain=eviden.com);
	dmarc=pass(p=reject dis=none)  header.from=eviden.com
ARC-Seal: i=2; a=rsa-sha256; t=1740653860; cv=pass;
	d=zohomail.com; s=zohoarc;
	b=CTHbZD5eoSAtCT38GrLfM3dqOFYO/BqqkhsWQ/LWGPtCEDxVh/Wzx0/hAatIbI1iAAz3gEcgb+o0f69jy/Bm3SYGGlI6hvJTKGLT+Bpxl10hSgac7XCpDCN4AT4KI7jB8sRxW6q9FmFE68UNQHkEZ7binPxyHbbgOwauVGZpZ4w=
ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com;
 s=zohoarc;
	t=1740653860;
 h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To;
	bh=3EcOu+TOcfbfDadm1pZd77Y5A6tl5Nr6dRcZJCVh2AY=;
	b=YF0uaSl4pGrwFwY1F0G/5NNyEj7ZtvO/LtlALW9TW2VBCyEfhZXfr4VzcpNqJJAva53XW8djf3q/TqGfVlslKBagXOYNciCHp03ZZV/f54LlmE5e8vd0H1anUjRW77t4OR2gLgwf7dHtZ0vh+NwfF/qJfqzBPE7uHH18z/JrJZk=
ARC-Authentication-Results: i=2; mx.zohomail.com;
	dkim=pass  header.i=@eviden.com;
	spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as
 permitted sender)
  smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org;
	arc=pass (i=1 dmarc=pass fromdomain=eviden.com);
	dmarc=pass header.from=<clement.mathieu--drif@eviden.com> (p=reject dis=none)
Return-Path: <qemu-devel-bounces+importer=patchew.org@nongnu.org>
Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by
 mx.zohomail.com
	with SMTPS id 1740653860505454.9848788647811;
 Thu, 27 Feb 2025 02:57:40 -0800 (PST)
Received: from localhost ([::1] helo=lists1p.gnu.org)
	by lists.gnu.org with esmtp (Exim 4.90_1)
	(envelope-from <qemu-devel-bounces@nongnu.org>)
	id 1tnbXc-0004h6-Pp; Thu, 27 Feb 2025 05:54:56 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <clement.mathieu--drif@eviden.com>)
 id 1tnbXa-0004cN-K1
 for qemu-devel@nongnu.org; Thu, 27 Feb 2025 05:54:54 -0500
Received: from smarthost4.eviden.com ([80.78.11.85])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <clement.mathieu--drif@eviden.com>)
 id 1tnbXY-0005o1-M4
 for qemu-devel@nongnu.org; Thu, 27 Feb 2025 05:54:54 -0500
Received: from mail-db8eur05lp2110.outbound.protection.outlook.com (HELO
 EUR05-DB8-obe.outbound.protection.outlook.com) ([104.47.17.110])
 by smarthost4.eviden.com with ESMTP/TLS/TLS_AES_256_GCM_SHA384;
 27 Feb 2025 11:54:48 +0100
Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7)
 by AS2PR07MB9097.eurprd07.prod.outlook.com (2603:10a6:20b:558::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.19; Thu, 27 Feb
 2025 10:54:46 +0000
Received: from AM8PR07MB7602.eurprd07.prod.outlook.com
 ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com
 ([fe80::fbd7:ca71:b636:6f9d%7]) with mapi id 15.20.8445.017; Thu, 27 Feb 2025
 10:54:46 +0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
 d=eviden.com; i=@eviden.com; q=dns/txt; s=mail;
 t=1740653693; x=1772189693;
 h=from:to:cc:subject:date:message-id:references:
 in-reply-to:content-transfer-encoding:mime-version;
 bh=PiyTkK6hdM98UWkbkeuE8WtZivWls1Pdx4DsUKcW/KM=;
 b=hEnjO1kK+b6eVmmpWY+QrBJp2JScFYJCNRdUTYgekrZmC0GKGaVS+EN+
 IjrVCJy5EzIk4W6XB/7xdCUdUwzBdtBXL+j0k+slfJQNmkdTcuMqJVGaP
 2bVSUqU5kpd/ylDUZinooNZMYZy8DUTEAeFJezzdq4mwNl/drSJqkeIwC
 opQBk1mSz/qc0k+vOn84GXeUcUq6VrFBDCpEcTTe6R0nKJPRClqGWo8Ek
 dGnj17UuT/sOgxBuF35+Jb24iV/Rv9p5nUDifO56HuCd6GvCO3qNW52iZ
 k+eTHNLG8MYDfyPH1CN55cZv55PYI4BGuyOKhdOQkU00m1lajJ0BhG3G9 g==;
X-CSE-ConnectionGUID: kBBLYQpuSMy4kFsXOx259g==
X-CSE-MsgGUID: FCl89dMdQPWAy7HDGFBU2g==
X-IronPort-AV: E=Sophos;i="6.13,319,1732575600"; d="scan'208";a="33331845"
X-MGA-submission: =?us-ascii?q?MDG8kUYEK5jbB2TkgYNF2zots/lMNnKzH0AZN0?=
 =?us-ascii?q?3Q/Hu1SaiXLoyJWSFuZEhN6rnXL2MaKp0YGo0jgmxKZyroEKv3vba2gc?=
 =?us-ascii?q?JrfTGu2l8tAndy55jUxGjo3rCafJb12+nf+7iFo9r4gq6z1Ra66n381g?=
 =?us-ascii?q?hVCRsh8kVulvYfvk6QYnT5SQ=3D=3D?=
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=eNNXoWFJIfDOjiYzSErc/vrt83oS6oLHWywYOajdtW4E7nVX49QxE5+423K4ehO8WSmdO5O/rp9PLcwNAPMpYMUv/HqcM/fNjtRaDrJ3xZsoTS6bR52YAG7DDgVT/ZGXP+PU8pumI8WG65tiU3yFXOvtsIat7XleV+MchqHupiR8d6yP4nf/zdNRNmghL4DTwZ3TrAAANQY6KXYMq6ALcd8XQ4mw32k+Q+/zwGF88cLmC1NY+MmWJ5rM7B9yRcaPFb7KDTYb4DADIAn31nJkEohV4sL3nqDzQukcus7qTVFyjNv6frdU35KCV96ajPBBh8s74R2bvnzYCgAEu5NGFA==
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=3EcOu+TOcfbfDadm1pZd77Y5A6tl5Nr6dRcZJCVh2AY=;
 b=j9FgwrZlY//mpkjt2n2P4EKGhakujCyWvDy1WsCdWOP97HYo0Z4deJnFUZjlMPsU5TW5s5btFy85j7GaWrGWmIDD5t5jKGW4WtLSsiUeHtPhefUHCwGA/XwdM7AJHr/WOXLi5DcvxdydGYBQ8no7gEvwj6RMTxb75KRNUE7BB1nHs7BiHmk2b4D7i8/+nbaHqZhH6Kktm78jhMMVaCaJmvEw75U7pW9IlTqZPIXHZ8Xuj76VtJ63RmI24TQenRx7ijZhx3hepN9sScKumMxVSxT/4lijk7Wl9oH4olfL2ep9UfWZC74CN+EDM/Qmx9C3d6KZ3x6w+pjTxJMrc38FKA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=eviden.com; dmarc=pass action=none header.from=eviden.com;
 dkim=pass header.d=eviden.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Eviden.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=3EcOu+TOcfbfDadm1pZd77Y5A6tl5Nr6dRcZJCVh2AY=;
 b=Qz06hx1/bAUqL/qOezbjEj7bbwQdjobMUmlEcBCKGCupUvmUxpzKMqINH4m2UQNB7gML4uPJqvT8KoFBpOIBbSwU7PRh7a1RZRD7XsnjzFehB6TIc1Ygy3hzCBJy2YMCIkv9kSFeVVMMvfUXg9g8oUROBgMDr6xmcO2PrK/QBVYVOwyEdbcXNxalmssfOapnhWJ4JIy9ZZHDvIClsizihYMqwpHjZlAzkqAYsJz7Xjx5pNuUtlIwB8TxzOHkEOH2W9zi2kPQnZyHwi0CtsdU7du82xoDxbSVDl4TWdQLkrJGofB0w+LjBzXnBk71wS4Qwl3zp6MY7y9xx1m9O+pDAA==
From: CLEMENT MATHIEU--DRIF <clement.mathieu--drif@eviden.com>
To: "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>
CC: "jasowang@redhat.com" <jasowang@redhat.com>, "zhenzhong.duan@intel.com"
 <zhenzhong.duan@intel.com>, "kevin.tian@intel.com" <kevin.tian@intel.com>,
 "yi.l.liu@intel.com" <yi.l.liu@intel.com>, "joao.m.martins@oracle.com"
 <joao.m.martins@oracle.com>, "peterx@redhat.com" <peterx@redhat.com>,
 "mst@redhat.com" <mst@redhat.com>, "tjeznach@rivosinc.com"
 <tjeznach@rivosinc.com>, "minwoo.im@samsung.com" <minwoo.im@samsung.com>,
 CLEMENT MATHIEU--DRIF <clement.mathieu--drif@eviden.com>
Subject: [PATCH v4 12/19] pci: Add a pci-level initialization function for
 iommu notifiers
Thread-Topic: [PATCH v4 12/19] pci: Add a pci-level initialization function
 for iommu notifiers
Thread-Index: AQHbiQYDp5Ri8/0j4Uey1wj09Ce2TQ==
Date: Thu, 27 Feb 2025 10:54:45 +0000
Message-ID: <20250227105339.388598-13-clement.mathieu--drif@eviden.com>
References: <20250227105339.388598-1-clement.mathieu--drif@eviden.com>
In-Reply-To: <20250227105339.388598-1-clement.mathieu--drif@eviden.com>
Accept-Language: en-GB, fr-FR, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=eviden.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM8PR07MB7602:EE_|AS2PR07MB9097:EE_
x-ms-office365-filtering-correlation-id: cf5a4072-52af-40f8-eb9a-08dd571d2670
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
 ARA:13230040|1800799024|7416014|376014|366016|38070700018;
x-microsoft-antispam-message-info: 
 =?iso-8859-1?Q?/gGQXpcct+t1VmjW7GNgesqZHb5TLk2xKEEIfOHi27J0512GONeO1RAot+?=
 =?iso-8859-1?Q?AuG62abB47dgwgzixD/QfHijTOiScLmWEfjn3YubBbvLCXxmMlitrQYFr8?=
 =?iso-8859-1?Q?z3h2LDWhR4gvz7cu/8UVDeTwZAY+Bvo08DfCRyCN20h9XLe40Gx8tMwL5Y?=
 =?iso-8859-1?Q?JkUC2KnFLT7Y3mwXG17ImAPEQWPy8F3+UoFAGfObwiRKiMtOP+yzfMBdw2?=
 =?iso-8859-1?Q?CtW8NQsXlY0XUC6uTocrH41S95H34McfjBVeWiTDnTAfVAeCQ2CcrTfpHF?=
 =?iso-8859-1?Q?Q/u8RMCGGvfo5zzGJSKF2GSoRxfhXV2c4xcZ5z97eYtGC/JrTmBnG2rTl8?=
 =?iso-8859-1?Q?jwFk4poGJXGKXj4ZES0Dv7+08B6RjTQ3W0uQ758vYWnm9LRJ5/oT3Jtl3/?=
 =?iso-8859-1?Q?C1CJnwgQe/QX0hRkx6QIxexCKpDJN1N8wZY+TY2Zh9hZkd1BewHZaqAmGw?=
 =?iso-8859-1?Q?ATt0Ni6KAxYZ6gb2+jhK5pXys4BuLYAem5T2RtYv9cOYxzCpDWZIY88006?=
 =?iso-8859-1?Q?UJeRQHJWmwZHixHGSBtcathIfnLW54vNyqbyQhlZuXPHJ+M9t2F59U+3y+?=
 =?iso-8859-1?Q?zsGAncukxuv6/2nBstedsw3IAWu9xmOSe67gAb+iDikBVZDKviZn9qASou?=
 =?iso-8859-1?Q?LZ1Ta2eMC6xnDRJryj1xrVoUsZRItP26+r6NjuwS9t5WCVn1WUpuI2G2ek?=
 =?iso-8859-1?Q?fsmXRHxGQHLZB847k9Os5E/dfHLISxGR/HdTPNA+cRcYQ94SokzcuGg+iJ?=
 =?iso-8859-1?Q?Md3G1Cjhot9dL0Eup0gwkcBTcVchrwwBTGgXHubfjJsfFPYI/4c+ACPfVA?=
 =?iso-8859-1?Q?5qsj+1mCTfSb2QlJfcMPaTSZxlPbNKz0h48lo4wL6XqpxuVrNiAnTgO6u5?=
 =?iso-8859-1?Q?NCU4MUh6OOmXKMTCTuDGsb7B+vdYEFve4CPo8yW/hpJZu2Qj0sQr8GuBpt?=
 =?iso-8859-1?Q?JT3NtPcCCFASTp/uOGmXk86oR2ZK8SNkVOWTj9qnBgvxVpqKZA7EvOxqgn?=
 =?iso-8859-1?Q?BFDuoHq8VzqbWeagTH5Zb4WOP10AYBvK1to9JqxnPRUdVniWER90e2dqxJ?=
 =?iso-8859-1?Q?lPDkDcwvgX2+E4D/Bf3u5gRhBYwf6DaOgD0ayAtMsnZUUMwNLUv4b8QmTV?=
 =?iso-8859-1?Q?O1UnYBTgjDMYu4JSun7qOL9BnQAAX1v14Km30xn6bmbJWnk2bIVKogBamz?=
 =?iso-8859-1?Q?VUHOSROLvXXDGgwXKpzaYmtffD+gNS5BbEqbN7wSs1BiIvL95hNg2eGrVk?=
 =?iso-8859-1?Q?baoL6SCKCXAD8yw3smvyqK8nQZwDRTbbxhGTsPEHoScqVQOhk/xu2H4k8W?=
 =?iso-8859-1?Q?4FHRbN1cwLSlea96MMulHuOsEI/2J0fMV7M//XnajbOPxDkDW5I6x4EwnE?=
 =?iso-8859-1?Q?rgCcph48V3cAoblxgrGl/rQYc/+B3/ukaEu/pOePtyt6I7jy3JZBqTPQ8H?=
 =?iso-8859-1?Q?ZD6DWHJeRb7VnGwfkU0zd/kYU2euu0pfpEK/3wA4n2yrCkRE46HJ0wJ+Eo?=
 =?iso-8859-1?Q?2BjJuOqdkSj1a10fOt7+M9?=
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;
 IPV:NLI; SFV:NSPM; H:AM8PR07MB7602.eurprd07.prod.outlook.com; PTR:; CAT:NONE;
 SFS:(13230040)(1800799024)(7416014)(376014)(366016)(38070700018); DIR:OUT;
 SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 
 =?iso-8859-1?Q?PVeldNkfW+QpQ7Eps+i4MQ1X0UCl/upZMLEQ6ikh9oLwH/YpwbTc9mt7/d?=
 =?iso-8859-1?Q?Ckle4iljdvgZfeydKB1fvZrOOGeHojwwoH4qO8RpnPZ/vJmNSkITwyqlcs?=
 =?iso-8859-1?Q?gfokZPV3zHNxilApD7Q4zrAuBIsqBx7k26lp/0nSFlQcPxmWfidxGapXbp?=
 =?iso-8859-1?Q?yaNkWK1pBpv1kEecjiPl7k7iZJSWcaBZF8QNXkfnnat8IUB/5hMRij4a6A?=
 =?iso-8859-1?Q?rgasLq8YORzNb/pHYJ2lnMkfPq0crIpE7LJ8Xy0yNYgDXBE6ieAUEGXeI1?=
 =?iso-8859-1?Q?pWQp/6GhFyZQqruPOscjN6pKZuH2h+P5OrP+0P8Z2wt56xv6eqfPusYSE7?=
 =?iso-8859-1?Q?UMYcS48hf+AI2EgRK5ExiZT6yFtwsf6mDfYVNYtrevMxQFeOCLjhhShXcG?=
 =?iso-8859-1?Q?+Q3wCvihfUIq8B2oUJ9thz8q3bNrHmfiaKoqT47S9YqOfyDwO0Y0myg1Nc?=
 =?iso-8859-1?Q?3sVVhWX7XMYTWfUEtKC78UgkCXcsvqJEdoohK4mkcaaAnCVOT1JECJ/xoi?=
 =?iso-8859-1?Q?r5AslRRzIS9+hduWsEM/Vj42GCqXAwwdlFvbBm8zEzq4pNec5FOKVerjii?=
 =?iso-8859-1?Q?JD33PSppFGduQLcbxv4PFUFSJ6yVOXmeuFSM1AEjPo2fnz5JuL7/JOZrac?=
 =?iso-8859-1?Q?sjCh1D8fpwL97Rwfm4bs5NWJQGXhUUDkctopm/EIRx9naozgKlPvv98GBO?=
 =?iso-8859-1?Q?lyii0B2YEN4PstFa9diJrss2w4eXaD0e/9dYucuBTUtNzsB7Lg/j5LHnKl?=
 =?iso-8859-1?Q?awouFNLVGrAdy0lhXiaWqsNgls8zaYzieXoAQ9qRy8qyzvs7htex4iYNGr?=
 =?iso-8859-1?Q?yauGMY5vVut7o2W+q4hO3EeGkcmjHoY8gqN2IVsG26rJQHYpQ/TkN3R8qp?=
 =?iso-8859-1?Q?sI+g/G8TGpCWHSxsA4u/qOHuyxAPs3e3Cu6RE8OlPLdNi68MW2kWN+MHVv?=
 =?iso-8859-1?Q?WhE/ina12sf+ztzukdjYC1aWRql4Sjet3DzQoq3Z1mY94yBXExvrX7xqYO?=
 =?iso-8859-1?Q?Wu3Ldvb+FjhFkfNAn+0XVHnP5ok+ctpTVBiK3GCeLOch86R3M6vjedU0af?=
 =?iso-8859-1?Q?/cdSE5XXiYCZhiZS0vM5fYW5+IYlodzCc+Ao45H7Oo0ELYe1qVcrm+npDy?=
 =?iso-8859-1?Q?pp28DGwG5XZl6vgewmyQKcV/9oyZQxo7JRN7JO2U4rualDQVUDRFQyGaZ3?=
 =?iso-8859-1?Q?6wW/BWbUhl3//VtI6goKFr9NY+PUaRGAEoxjXud/uxr61KdxCxO9BkYdqx?=
 =?iso-8859-1?Q?GXdMAvJSAnMrZSrHwMETEBpkjDmItpAwQ3tTYnwInAvs54f6MB3wVGPzgn?=
 =?iso-8859-1?Q?jDeLte6/jWFRBOdLFSanPWrZ1W9aeoMYTTjhI2jHhtuC6GakAH7PnG+pu6?=
 =?iso-8859-1?Q?4G2IYdBrzYk0AGwlGM8M+XeX4wOhwBftWqakNqbRQBc0vIYz+MeNugSGBe?=
 =?iso-8859-1?Q?3r4cZLSKn5puZGamz/INgcOTb6o2ke/VZ+zhuCuhBRFE/GPDItm2o7SZB5?=
 =?iso-8859-1?Q?RCOA8v7dMvB5Qeaj/1+72JoUPgUn33Bm8GZOujdONKrNXzCy5C1YZRlBz1?=
 =?iso-8859-1?Q?DHvuu+qsKcBckcLbJyoC0h3gEMPufMqtt6iLf921nYBGa50HYf+66LNMcr?=
 =?iso-8859-1?Q?zF4VEbZDN3kfS9GzSYVLwkzVF0T7exyJvCfbLIxNbSVUpOfaF4Erp21Wcf?=
 =?iso-8859-1?Q?bRpD3rA0Hl/Zb6jQxBE=3D?=
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: eviden.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM8PR07MB7602.eurprd07.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 
 cf5a4072-52af-40f8-eb9a-08dd571d2670
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Feb 2025 10:54:45.9890 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 7d1c7785-2d8a-437d-b842-1ed5d8fbe00a
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 
 UcBh7ORwigPRDEdNeW1PGa0ViPlZLSNn8YxLS7yaB7kK+Uc1uHcbQIlTA0/B6qT+ZyCyx4vypH+xRUCwE3TlJxwhBkAe7o0/85UlSvKA+mZhBdXogvbVN/V4z6N6cX8K
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR07MB9097
Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17
 as permitted sender) client-ip=209.51.188.17;
 envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org;
 helo=lists.gnu.org;
Received-SPF: pass client-ip=80.78.11.85;
 envelope-from=clement.mathieu--drif@eviden.com; helo=smarthost4.eviden.com
X-Spam_score_int: -20
X-Spam_score: -2.1
X-Spam_bar: --
X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,
 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001,
 RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001,
 SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-BeenThere: qemu-devel@nongnu.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: <qemu-devel.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/qemu-devel>,
 <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>
List-Archive: <https://lists.nongnu.org/archive/html/qemu-devel>
List-Post: <mailto:qemu-devel@nongnu.org>
List-Help: <mailto:qemu-devel-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/qemu-devel>,
 <mailto:qemu-devel-request@nongnu.org?subject=subscribe>
Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org
Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org
X-ZohoMail-DKIM: pass (identity @eviden.com)
X-ZM-MESSAGEID: 1740653862192019100
Content-Type: text/plain; charset="utf-8"

From: Clement Mathieu--Drif <clement.mathieu--drif@eviden.com>

We add a convenient way to initialize an device-iotlb notifier.
This is meant to be used by ATS-capable devices.

pci_device_iommu_memory_region_pasid is introduces in this commit and
will be used in several other SVM-related functions exposed in
the PCI API.

Signed-off-by: Clement Mathieu--Drif <clement.mathieu--drif@eviden.com>
---
 hw/pci/pci.c         | 40 ++++++++++++++++++++++++++++++++++++++++
 include/hw/pci/pci.h | 15 +++++++++++++++
 2 files changed, 55 insertions(+)

diff --git a/hw/pci/pci.c b/hw/pci/pci.c
index 164bb22e05..be29c0375f 100644
--- a/hw/pci/pci.c
+++ b/hw/pci/pci.c
@@ -2825,6 +2825,46 @@ AddressSpace *pci_device_iommu_address_space(PCIDevi=
ce *dev)
     return &address_space_memory;
 }
=20
+static IOMMUMemoryRegion *pci_device_iommu_memory_region_pasid(PCIDevice *=
dev,
+                                                               uint32_t pa=
sid)
+{
+    PCIBus *bus;
+    PCIBus *iommu_bus;
+    int devfn;
+
+    /*
+     * This function is for internal use in the module,
+     * we can call it with PCI_NO_PASID
+     */
+    if (!dev->is_master ||
+            ((pasid !=3D PCI_NO_PASID) && !pcie_pasid_enabled(dev))) {
+        return NULL;
+    }
+
+    pci_device_get_iommu_bus_devfn(dev, &bus, &iommu_bus, &devfn);
+    if (iommu_bus && iommu_bus->iommu_ops->get_memory_region_pasid) {
+        return iommu_bus->iommu_ops->get_memory_region_pasid(bus,
+                                 iommu_bus->iommu_opaque, devfn, pasid);
+    }
+    return NULL;
+}
+
+bool pci_iommu_init_iotlb_notifier(PCIDevice *dev, uint32_t pasid,
+                                   IOMMUNotifier *n, IOMMUNotify fn,
+                                   void *opaque)
+{
+    IOMMUMemoryRegion *iommu_mr =3D pci_device_iommu_memory_region_pasid(d=
ev,
+                                                                        pa=
sid);
+    if (!iommu_mr) {
+        return false;
+    }
+    iommu_notifier_init(n, fn, IOMMU_NOTIFIER_DEVIOTLB_EVENTS, 0, HWADDR_M=
AX,
+                        memory_region_iommu_attrs_to_index(iommu_mr,
+                                                       MEMTXATTRS_UNSPECIF=
IED));
+    n->opaque =3D opaque;
+    return true;
+}
+
 bool pci_device_set_iommu_device(PCIDevice *dev, HostIOMMUDevice *hiod,
                                  Error **errp)
 {
diff --git a/include/hw/pci/pci.h b/include/hw/pci/pci.h
index 644551550b..a11366e08d 100644
--- a/include/hw/pci/pci.h
+++ b/include/hw/pci/pci.h
@@ -446,6 +446,21 @@ bool pci_device_set_iommu_device(PCIDevice *dev, HostI=
OMMUDevice *hiod,
                                  Error **errp);
 void pci_device_unset_iommu_device(PCIDevice *dev);
=20
+/**
+ * pci_iommu_init_iotlb_notifier: initialize an IOMMU notifier
+ *
+ * This function is used by devices before registering an IOTLB notifier
+ *
+ * @dev: the device
+ * @pasid: the pasid of the address space to watch
+ * @n: the notifier to initialize
+ * @fn: the callback to be installed
+ * @opaque: user pointer that can be used to store a state
+ */
+bool pci_iommu_init_iotlb_notifier(PCIDevice *dev, uint32_t pasid,
+                                   IOMMUNotifier *n, IOMMUNotify fn,
+                                   void *opaque);
+
 /**
  * pci_setup_iommu: Initialize specific IOMMU handlers for a PCIBus
  *
--=20
2.48.1