From nobody Sun Sep 28 15:28:21 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=1756732473; cv=pass; d=zohomail.com; s=zohoarc; b=hcHo/yz/yCi/e7QfO0CVqG/SpITDLQROYFPcK02/ialKJTuBoc2GQu025cE2Bk2xhx5QOxvyr/an+XbOAR7S671cOoThO/f2FIz1zofD4xHunOh2LQZUjhwzqX785CKjFtFh2cZwmGzer/gsZWMTHYO6FB/OoGvSy4k4so5o1lA= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756732473; 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=3XgBqkJ2w8BBAPlOMlCgmG8AAr4a/2XtJAoMjKXlbKQ=; b=KChXSosp0jv14IxBFJEKx3XvdeoYTwZN9fy3zM9X14DTNp9UkWpq0RRqsUeDdmqblAryUyejEONSntWudklCOWj/Qehu2jejcimA1LHzQqCBJEpXZAggnQJfeSfSAtAd+6khLuWI2qysOZUWlVh4cx4PVS/sY1aP55/bDYMgu/M= 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= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756732473390116.12511611679713; Mon, 1 Sep 2025 06:14:33 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ut4Ld-0008GT-Lv; Mon, 01 Sep 2025 09:13:26 -0400 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 ) id 1ut2XU-0004KE-M0 for qemu-devel@nongnu.org; Mon, 01 Sep 2025 07:17:32 -0400 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 ) id 1ut2XR-0004mW-OJ for qemu-devel@nongnu.org; Mon, 01 Sep 2025 07:17:32 -0400 Received: from mail-francesouthazon11011025.outbound.protection.outlook.com (HELO MRWPR03CU001.outbound.protection.outlook.com) ([40.107.130.25]) by smarthost4.eviden.com with ESMTP/TLS/TLS_AES_256_GCM_SHA384; 01 Sep 2025 13:17:26 +0200 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by PAVPR07MB9215.eurprd07.prod.outlook.com (2603:10a6:102:317::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.17; Mon, 1 Sep 2025 11:17:21 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%6]) with mapi id 15.20.9073.026; Mon, 1 Sep 2025 11:17:19 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1756725450; x=1788261450; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=amPVrX+jmKm2/uDOdrP4xDSAH/CzR7LBcg7NaxuK/Jw=; b=QkcKMxPFzKIAOQQ721Lk0QAcHIq9FO4gurVHKHjYrdhnp6QFlxDhiYFh DScNsANupbOysrLF8rVFtdbnKjE2GTJiI7CcVCj/Z2e4T2LTtsI+8J9P8 4gOq/ukGT59jLQjZRrbxcr6x4FkLHDVT5pvRyyVrsPM2iiNnEc0MjBHwP VuN614s49noYad2MJafPxsGIp6RezXBQ9//XIC/NNGC9Y0Od30+Um6g5l YnskuGmzc6q6C4x/BTTBR9kW7FGt43JN+kNT89LVZkVGdy5LqfMM4OE/D imXFcDECIrdI11xORigxAmVKM+zgAXfakrPRYrleS0ol+LyRau1BqqKa3 g==; X-CSE-ConnectionGUID: 3bgnEg7jSPiVmr3K9FCi+A== X-CSE-MsgGUID: KkjMts3FTl2yG+vca0Tmmg== X-IronPort-AV: E=Sophos;i="6.18,225,1751234400"; d="scan'208";a="44649198" X-MGA-submission: =?us-ascii?q?MDFRxcILZ71Lz8IZJ8H1xOF3Gx+/TCfXjRZVZx?= =?us-ascii?q?5Od+vcXGR7C1p7tRU+AQz90bOyn1iqG2RLz0Iz6o3oBNXUZWZYU8l6JV?= =?us-ascii?q?KHqufBAgMohpcjoyFtCkgFoZBCP3D4VXs1k0+525FzCsWxdhTrubcVhD?= =?us-ascii?q?iO3GK5ymHUZc9gyPHcHYTt/A=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=X8AASKdkRDTNkBDPnL+0tNsq7nLSt0o+kAWnb7yzMxErQDh1eARIM/3wYSpw1AZ3vP69vYDzQZMtPAwyXKYoS66FNlI+D4Fb1BmENYibCiRgqTuEITkAvWO7HCmTe8jTfBqHwhQFgysIpi8mhqQn7RrTSsPFPwW7cSH7cwoPsNOvvRSFbgpEibAmmEUByeLE6t0y1c5QKWujGs/mzhd8k5R0aN0uNL6tl7NozjnKvRYIuqSVtZa72n8DfZA+Zcdv6q7lg8cOEgKA/84kuUeeew6B8sc+JaeObFuupOpHRWc0M9pCsNFTILidhdrlvpPsD316ANLPKle09Y7ZBaJzhA== 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=3XgBqkJ2w8BBAPlOMlCgmG8AAr4a/2XtJAoMjKXlbKQ=; b=NJvbCgR5005eIDEKXdsRhUJd+YMfh2hSzcyiLdfcQrzQGo7neb0wIdl2meY6RnRDoJmblKvKEwl0iYR0ztUb/iWN6oU4/GXoWKEerxWyGWjXSW/rC64XD2EWFbp7XdDijw0qWv3hxnL+MAMoIXo/vDLnT3/XdQnr8MUYlyap/Cd7ZUogEsrI6WfKm5gmBXa9oCMiTRWLnmx4TgDc9DJPDAD5lbYBJiPTEHBpdadK4XPADlkO2Ryk2V7rP6SaEMwIF4DeWNigWvkpc9xulygboZ4Q0WiFObUIrvR9az5HS09gjLfNkMINtrbEyOrjwV+kZbip5xiLn2FO8eCpTePfpA== 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=3XgBqkJ2w8BBAPlOMlCgmG8AAr4a/2XtJAoMjKXlbKQ=; b=Ju4fVh8n0EuTrdirNaAthCiy2WwT/BcDzvtaWIPeXVxB+Eahia44E1STm6Dwm3SfsEbR7XQiZHo3RubBlB5s01G9F8hZVPOBZX7yVzVD2gDxdCClc18SnbIOSYCE6fZRAa1oD+gCxAGtIAcVCP4pr8ZKQjKfCNC6zfZe7YpCnCP616l+eofy7Hkqac3lIK+7HuZekboeZbBXOSZzlmB5twWnu7k8eB9FzPaG2NLuz8r4Z2j9zpRv3uZOPGbCM7ngXNbhu7hLzcn+/cOJARP1MvlU798kZe6SbimbLbCIhxh9UlyVytVD9BrO+LQINE5hkxZVVugc/0BiioQDOuJ3MQ== From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "pbonzini@redhat.com" , "philmd@linaro.org" , "mst@redhat.com" , "marcel.apfelbaum@gmail.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "minwoo.im@samsung.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH 1/5] pcie: Add a way to get the outstanding page request allocation (pri) from the config space. Thread-Topic: [PATCH 1/5] pcie: Add a way to get the outstanding page request allocation (pri) from the config space. Thread-Index: AQHcGzH7Sukw9YjjskO8f5QA00gK3A== Date: Mon, 1 Sep 2025 11:17:19 +0000 Message-ID: <20250901111630.1018573-2-clement.mathieu--drif@eviden.com> References: <20250901111630.1018573-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20250901111630.1018573-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_|PAVPR07MB9215:EE_ x-ms-office365-filtering-correlation-id: 499e8e22-88a7-4bee-02b9-08dde9491da4 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|376014|366016|1800799024|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?Q?PLJ/kWGnONOa9XHdXleFyUusNQbYCoMTycUKOsU24qFY/3utRChElJFkvh?= =?iso-8859-1?Q?hQjjrfmPQBYzW3rcO9K+Xe9872LCovajeVmXIRxwSa/Bud6XbAv9p6R5Xw?= =?iso-8859-1?Q?icSVjOswiqDWBa+5RwI9+8CAUd+aw3+bb/rNQnTZ4v5nYoU26mL6LYaPML?= =?iso-8859-1?Q?Pzn8J9/+Srohm4ShtxAgGjKRrpoI2U5vJrlvkc8li4Pp0lHfa0XhhznLU6?= =?iso-8859-1?Q?8ir4Mshjq33ge3CPSZiCpjkoskRJH+jceeDhhrD7KLI/SMtBkSyA6bVLNm?= =?iso-8859-1?Q?u/1UUCy+ZAV16fy8VFfcGLxfQ2Y2cztQH5jIFb8d71cVTHSiKOThXOPQNC?= =?iso-8859-1?Q?1jCbK3O9Fay92ZJtW5iHcYvY1e8Qnw6vBeRGZhyl1LO1fl09dPYIVeqcnF?= =?iso-8859-1?Q?YuyyTOF8RXMFPl8YiWPVuoF+5N64exgIcq+SxlX62xXtljEB9umJGcSovW?= =?iso-8859-1?Q?AvMdhp4YcpsEH3SSOEnniBxNDOX7Mpm94VYfQaL5diMsYgVsmkuBLIXNtH?= =?iso-8859-1?Q?EmASQ8RrSDlIEECuOg+h09h5Ycgz3PcmU0hdZEAiJQl2I38I5id4v/qqIr?= =?iso-8859-1?Q?XOpheItY6CQimqarGeIHBF+WyV/hcb7PoMMiu3FNGKpeP4aupfqPXm2Qyv?= =?iso-8859-1?Q?8XUiRxOGZysF67zdSMUYw2ecobtzUYc/WDwlL1WBhNTgj644BGQYhbgS05?= =?iso-8859-1?Q?HXoGmS/F0yumOfObaazLkENBGWr5qGuwgD4Cwr0eIhr+DH8K3XiaASbQdq?= =?iso-8859-1?Q?8PhKbAq2s9Eu7bk7mXSDv7CPAqGvEyjKwCLeVrV/KU7k4N/L8F2TIIogKa?= =?iso-8859-1?Q?x+85lh4FexYRvpzTXlzvXMD17jqWbtw1P3aOvXhBN5/n1ejsU/a89hmpRC?= =?iso-8859-1?Q?sI/NhO/AntTRxzKjpginxAyn5IuYKFU9QAJqvbVFwseivNA6g9St9FW+Ff?= =?iso-8859-1?Q?H5ArkKEpl+i5Ei9BBU8//bepxnVf4M4DWeTEjjZaO5kPVgthv/2NL6sjQE?= =?iso-8859-1?Q?qXYvZ8BNlvO+N4rox47mgdkR2V0JoTJqjqgPydBdhoKdm4HPJ3CQqhFE8a?= =?iso-8859-1?Q?QD5iAcrGxYNVb1bNXPlX39AeJKuYguoDkgiJsBTz9I8gWwgnkhoP7Gf0P3?= =?iso-8859-1?Q?iGtepTcF2x5FifBfrD1FCtm9g8VtYGJxy8rsEQwz8tGrvglO87sdARXbAd?= =?iso-8859-1?Q?j0gHmwSVVZ3yPGVrL5k7ksVAzccKbR44INCXUNyEmoseQ8hqthuJhMWDL1?= =?iso-8859-1?Q?p7zHq+cYmQEpTDbwBAKtIDOybOT860mgktZLRgh8/OSWCDF5ZWYl/nS8BD?= =?iso-8859-1?Q?txfeKzfJmFeXoKHF7Z5BMlFu2KGmhgAahrhLTRyezdAXf9cBnxBku1FfUD?= =?iso-8859-1?Q?34BWwMzbSIlN+/zLJqZyWn7oS2XrZDMMKo5IieqUkB37/EBrUUVPnWQDtr?= =?iso-8859-1?Q?Ufl12TXcWOHqhg0wzYCxlfTqDA5K9UuyKoNY03AleC/YZcQdPvbrUDq3QO?= =?iso-8859-1?Q?k1WcUc97ONCdQllLBYD3pLfZ9p7chLBGznk3+2o5Jdfg=3D=3D?= 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)(376014)(366016)(1800799024)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?edzPqlmIw3MbfDpVXwRaDP8OR0ObgzE93S6SaXCdWXamd4jCmOsBWvXQDu?= =?iso-8859-1?Q?YZ/LKaIFx235qLoy9kwFUVulFNK3nNeRkbpkrxLdCokYUBXwrHOy02E7aZ?= =?iso-8859-1?Q?k1dGr7h9deCs0Vrm211PZGgQ4yrJCdLo0p+VX3qa/M2H3oDo3mE6Ycmpm2?= =?iso-8859-1?Q?QkCeKTb3GgXlXccdizYNYW39I6HKpl/HDevZGwEZRBGf/0S5ngqVz2fWku?= =?iso-8859-1?Q?GaYjyVIgDCxMmHdV4s2EkE8aB1JxDSIiJDqsXz3ppnK0Eq826HSxxAs/u5?= =?iso-8859-1?Q?KTF+rOc06mwFd+qs6Byw2h5xXcMf+wG9nt5cXhEesxBiDVh8dsrOitFdtX?= =?iso-8859-1?Q?4t/WLLTRf1r53qGKWzKTWCm22tX/IHML4BhlLpYqt6hyU8Z71PkLUEtORh?= =?iso-8859-1?Q?3Lv5peSFK9B83QuseQNDlV1XB/2XDH4ZeAmw3iaMORmZliqHOAVbu+Bvz2?= =?iso-8859-1?Q?CooIMNchFgufhRoM/1yKK+hhdVJM+d5PiQT1ncjasd2BimV9mqcUrqNKHn?= =?iso-8859-1?Q?9F51ozLh9k7ZHstZslBoiKmqutdZTh0Y9c5ycrYvYKre8LEWIHGSIUDSCk?= =?iso-8859-1?Q?m+31b45KhlOIQ7uNEh9UM7ekILG+7cXJUsmoAIbKDDMmNWLcfdHsssI5Pf?= =?iso-8859-1?Q?l2y6WRBc/4iwI7r2PmQc4WgUuZLVgSMr9IDxyxvyOLnULMhcEbYXWzwzk/?= =?iso-8859-1?Q?Fhrjs1+t52YKWRss+mIyQv3qIW7zkR15PkbqDY5x+efqAhIYJ/5h2yEh4b?= =?iso-8859-1?Q?2c5MUDO+2zQjt4UoCv3hVQ/Cph+j9qnqzHBa8iY0571lbc0MOK3EHKNd8R?= =?iso-8859-1?Q?XLb/WR4+RcbjOgL3aMZC10EKOxQoSHlzrT8HQeBbzAbXf7VYhHXIfbrepe?= =?iso-8859-1?Q?TWi27PWHhYI/ErByZxxqWf0JC2jvCRA61EgCCwmqf/xziOXl5230pZKdBb?= =?iso-8859-1?Q?cxowXIPyxXdZFyW5cdmqqQgygNWWuac5mQBRgH+ie1Z7Reo8ljMrcmPaGA?= =?iso-8859-1?Q?MC+CjScyw3vVYCadcbdQZLN1JztAiR0Iqf1u0bafCwSayyJ5kWVZihZFCt?= =?iso-8859-1?Q?+AWanB9OQGNAAHhvfzLuv0IhYH6d3ySEOyZXPtDezKihzXPAkpNQpvoJOQ?= =?iso-8859-1?Q?iJdJm6FdI3cRuZTWawkI9pI+lRQB0fIr3h/X0uBfrK+ezB/netuHLvP4us?= =?iso-8859-1?Q?4c5MB2gUyVWa9RgulYXFBKTti0/s2qiG73Xn15TdeCl0m2yGYofcFcX3jH?= =?iso-8859-1?Q?zs/Vi4b0y9zJbD+sISXhkuPO2CwXTOPBNLXgojG5IKUpZHLC0fxNZ9zQWT?= =?iso-8859-1?Q?jDowqBVMLi/kRoVquUyWnDdtxCWCNfBbIEcC140vRP3SFc3+hnGfeRWfpu?= =?iso-8859-1?Q?E/kYMxIc8crQFGs0Ltj5aIkP2bzahSnKAQRD7YO/1M739I89XHsTm1KMtz?= =?iso-8859-1?Q?EB/D0oakvcIU5wgUiGmCZXXUGaN+ldgLFKneLLR9sVJN/cqzDWmDsB34ee?= =?iso-8859-1?Q?svPKKkiU5Pezr2vrruBUbXRI5fnNmogf8SQIDA/OPJFHK9JmItWJuHUyVz?= =?iso-8859-1?Q?Llc+Yq7s1fGO0fiqD6ep27YXjHfTWtgNFE+5oq+gNyS5fweVB5OEG0y+bw?= =?iso-8859-1?Q?lRbpRki2I1kcAEIgWO9VCn+mvWzxi6PnyAEtUy2FSmd4Tmpmjlko84shnp?= =?iso-8859-1?Q?2tvfbULRZrlLEPZuzzY=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: 499e8e22-88a7-4bee-02b9-08dde9491da4 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Sep 2025 11:17:19.5539 (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: TW7f3L7xRj4Oh2q6RZxOXW1o7arQjSJTH4rvk/J+/oB6aZWVOzyY5Fhb0ssO+32Y84BBUdFqvuQQWgJBitMOtvGjXmUX0W1uO/rkob6Tgak+VGDGp+JkNTL9wsOEWQNi X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR07MB9215 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-Mailman-Approved-At: Mon, 01 Sep 2025 09:13:13 -0400 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-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: 1756732475060116600 Content-Type: text/plain; charset="utf-8" Signed-off-by: Clement Mathieu--Drif --- hw/pci/pcie.c | 8 ++++++++ include/hw/pci/pcie.h | 1 + 2 files changed, 9 insertions(+) diff --git a/hw/pci/pcie.c b/hw/pci/pcie.c index eaeb68894e..b302de6419 100644 --- a/hw/pci/pcie.c +++ b/hw/pci/pcie.c @@ -1266,6 +1266,14 @@ void pcie_pri_init(PCIDevice *dev, uint16_t offset, = uint32_t outstanding_pr_cap, dev->exp.pri_cap =3D offset; } =20 +uint32_t pcie_pri_get_req_alloc(const PCIDevice *dev) +{ + if (!pcie_pri_enabled(dev)) { + return 0; + } + return pci_get_long(dev->config + dev->exp.pri_cap + PCI_PRI_ALLOC_REQ= ); +} + bool pcie_pri_enabled(const PCIDevice *dev) { if (!pci_is_express(dev) || !dev->exp.pri_cap) { diff --git a/include/hw/pci/pcie.h b/include/hw/pci/pcie.h index ff6ce08e13..42cebcd033 100644 --- a/include/hw/pci/pcie.h +++ b/include/hw/pci/pcie.h @@ -158,6 +158,7 @@ void pcie_pasid_init(PCIDevice *dev, uint16_t offset, u= int8_t pasid_width, void pcie_pri_init(PCIDevice *dev, uint16_t offset, uint32_t outstanding_p= r_cap, bool prg_response_pasid_req); =20 +uint32_t pcie_pri_get_req_alloc(const PCIDevice *dev); bool pcie_pri_enabled(const PCIDevice *dev); bool pcie_pasid_enabled(const PCIDevice *dev); bool pcie_ats_enabled(const PCIDevice *dev); --=20 2.51.0 From nobody Sun Sep 28 15:28:21 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=1756732473; cv=pass; d=zohomail.com; s=zohoarc; b=GwXnk7EpNRcBT4JwrXSEFtbm8MNZ1Uh1KFoYNkzLYYrPwGNUmeYv7nvtuJMtmyNkwyAoKcnW6SrrIXJVgPyop1rh8bagssO5JjQVucMXO1P7DlJgB4EgpDeJfp5K/vjg5v7hpDIaGjF6GrHr8uKcY6VW9ALCBRmO8lR0w3hjFa0= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756732473; 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=6cMYJLTo5gIs/S05jUer3QTyCIUWoAS916WU6yM6crs=; b=Hs3C8gpCFak5bshFRyKwMnAHHGGIXmFbbggtj0AVI4CxZPN9Ausrt7GLIzFuSUQnQAhVvBtj6vkXUtoYLvjOu359WuqO1kHSsH7A2WnWLQqel4wJ7COK8+bNLY4XwMzgxe2t4Ev8A+0QKd7a1elv1IA0yCIf+pwaFGahaoMV/jg= 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= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756732473226218.61184469322814; Mon, 1 Sep 2025 06:14:33 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ut4Lk-0008Hr-Gz; Mon, 01 Sep 2025 09:13:32 -0400 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 ) id 1ut2XW-0004L5-1U for qemu-devel@nongnu.org; Mon, 01 Sep 2025 07:17:34 -0400 Received: from smarthost2.eviden.com ([80.78.11.83]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ut2XR-0004mE-Gn for qemu-devel@nongnu.org; Mon, 01 Sep 2025 07:17:33 -0400 Received: from mail-francesouthazon11011018.outbound.protection.outlook.com (HELO MRWPR03CU001.outbound.protection.outlook.com) ([40.107.130.18]) by smarthost2.eviden.com with ESMTP/TLS/TLS_AES_256_GCM_SHA384; 01 Sep 2025 13:17:24 +0200 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by PAVPR07MB9215.eurprd07.prod.outlook.com (2603:10a6:102:317::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.17; Mon, 1 Sep 2025 11:17:21 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%6]) with mapi id 15.20.9073.026; Mon, 1 Sep 2025 11:17:21 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1756725449; x=1788261449; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=KIqTd4BDpZqW8AlX7vg8Fa+ZC/VyfVzFwSI9GunGrJE=; b=bSFwhYGGMRdywNZMDYpFDnt3Va8v2sx/Bup++KvGO//VIfAXuw6gYEv7 h2ZxXWUTxdCnxhEJGQjJ4rnPtTWTEoVayxpMK4RcrytG2IZu5L+pY54Vp 0U/zWA3c980swBF9FWhnoRgqjVPl98iuNa0J2I8xawAWYo8Z0CmkkgV+3 ku/kaj7Q/YFe9Ht/pgkRGV83SjDK/LUgsQyBDcIlpEc5RcSfBihMOLXAC lrigSO92tZNhWTEQk+Er/vjEsQfht0uLweHRvfdFtPu2x4SMqnBOK3F79 XPufQAM8bfAEafbSUdabYDPlisPMR1Xnt/pqwm2fDBXfSyoU2zhFFysiz Q==; X-CSE-ConnectionGUID: ktwyUhSYT9aLuCFXQWMAew== X-CSE-MsgGUID: xIQtLObmRcKbrAy9JZRSzg== X-IronPort-AV: E=Sophos;i="6.18,225,1751234400"; d="scan'208";a="42540660" X-MGA-submission: =?us-ascii?q?MDEE8Ys2vutt2Ap6kTe6B/REr57lxUM6jtLDgh?= =?us-ascii?q?5zhaXMUHEl4bpXJb5pZLAUGbUh7htr2RpLdpOZ+ZdUN2dMNPxLOeDRZ4?= =?us-ascii?q?K9rnDYla+ZZXxtEHtizS51byal4dvtt05PSECJwUt/bvwUYHefiFs4ft?= =?us-ascii?q?cM0z3pKOMtq1lymv2IsObR8Q=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=HCLNUPk9PpmQsdSxbuHd4Cx8XyuTBqnTz6wykhtc69XkwWZIy+cbzaa50QSMzt24+SpdvYroMKOn5booUgCMQbXo/yG04ChbYJjbQRH6XJNFvVbj+xQI2zC0/GU9wwarNIIHI8TIyzyzlE0PpDk2HnUuD3R89D/3kyh041h9CTSD0Au8CneS38z57aHE0P4zE2rFQ+2/wWYn/ZYOyXNp5G2tuS726E1B5DWG5sUWjAzoZpe+3Kbne/HxBd+WcL1+bZxsnzsSVmuA38OEawqzasPr+KQYtdpkO0VR41jjjOsihZp9/P+BCFt8yh4vebtFAZ7yY53RIL4sv/8x6a0GEA== 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=6cMYJLTo5gIs/S05jUer3QTyCIUWoAS916WU6yM6crs=; b=kAKykhzIMRg6sHtD5wc9FG4Sf0a3PXLTBkAf0HeW+4rMZ/9L70XQR39bZB0mb2BGeHVLK6NIQD6sXBG2Zpr5qzjbyzMlmGmEX7/kJVvzGbNxFfKFYp8HAeyuHIIK//+YBQ/lauDU1phS1V97Pw4gSOIIBjXr5Rz+XgVeZk4W35HXUlzbtbk8L3aKRpIITXho7DHsAHXFSJ2IeTF3kujJGdSOX1OyoNY4EHYcfuDSkXHziK3RN71BD1KNQ4PddK/h5+2+iktf/sRsOUUdtG2+YHbB/eq7r6zpn9TUOkLl4FxLc2nHj/ukXZ6oGmlI1rbYw6DBNHc01YAJFfRpn7LYYQ== 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=6cMYJLTo5gIs/S05jUer3QTyCIUWoAS916WU6yM6crs=; b=oRYc1EwSp3LDfoSfqmSKpzWqeou542Sh5zfSMla+MWupCaNYrbP+61LG9TBgE25miCC3Jdzsr/f8ByHmva1k0UrXl8b510OsQGyEj3ocjHZKdoz2FkwtSyxQSgbrWoFsIoblNy2iy9s4O6qkvtL4I5pMxGjF3mx0JpHh9TlDxkNnC5VQLpi4DbmGsN0D3y4mZ0h5Cm6ZsqLXMTiPZAtg7IJJROl4OmVN5xU6tT922JBSFnXoPEHoW6lBo4t26ZvaBQCN+jsF5Bu/aen7ySig48ALeu598Du54Bck+Ghtwr+1LmNF9lkAaT9eG1nLfb9WlCplKZ1QjZbcj2ypv4/DAg== From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "pbonzini@redhat.com" , "philmd@linaro.org" , "mst@redhat.com" , "marcel.apfelbaum@gmail.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "minwoo.im@samsung.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH 2/5] intel_iommu: Bypass barrier wait descriptor Thread-Topic: [PATCH 2/5] intel_iommu: Bypass barrier wait descriptor Thread-Index: AQHcGzH7xjwx4oIeBEOKM02MAqBKSA== Date: Mon, 1 Sep 2025 11:17:20 +0000 Message-ID: <20250901111630.1018573-3-clement.mathieu--drif@eviden.com> References: <20250901111630.1018573-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20250901111630.1018573-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_|PAVPR07MB9215:EE_ x-ms-office365-filtering-correlation-id: a6cc71d5-80c4-4cc2-e9d7-08dde9491ed7 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|376014|366016|1800799024|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?Q?7A8E3j6oU17rgBRsxl5qo8dKdrdS+7x0o+pWUvB6f38c4J21Oy4/bV89TI?= =?iso-8859-1?Q?QJyQd65B+jUN/USIcnPTgZkKVudEyteL9AQ6PSigYLEs5rgykwJtAwbslq?= =?iso-8859-1?Q?windwrPMBzAjgEsGlo3O/BWPG0R11L0ZnkDZkLraK1R4aVd9FTtyePXOy4?= =?iso-8859-1?Q?dfbCVPDzqz0silOg5NvxPu9fc9M9jrBsmZWe+/zAYILFH7Si7kTIQfst1C?= =?iso-8859-1?Q?hXXmM0L1xb+WJMc2yot6RFlZwkqUmkpuz9OyOcEU8l8HU/V2sz954GnCy1?= =?iso-8859-1?Q?ggDLYbbQizubYQjIS/d4+s5v8aHYmXlMbLM6n8+uGwxzhUfJkH8MhOOPIW?= =?iso-8859-1?Q?v1ko8lLrUufOwI5pkYrFb7s2KhXOUIeG4hS022aDm/G/GqtE9pR4WXQy3k?= =?iso-8859-1?Q?oyqr3VH5jCvMY8u8SiM3CFB1bM6rGgTnKK0UhJ3Yob62ppIp2Wg6+LnpJ3?= =?iso-8859-1?Q?N+Lc3y+prwLVck+W5z7Ql03N4UK1IzdS11+acVRT4vgga0NNz0wGgnSSX4?= =?iso-8859-1?Q?xJ72N9eXJsNT721WkNIskMPRCHpH/0aiDMM+iCsSa1IhZyzYjXdgvne6KQ?= =?iso-8859-1?Q?AfO7TiFw2V9/7QX3t/JwLb8jgyVEWUTYvGSHsHfqYklfwjsWZbGcIzOupm?= =?iso-8859-1?Q?Ah8AXKOp5N+gI0ixv5dkyvj0P/PGjM3MiURm3Gz6LdsaL8jarfx0kJIRaG?= =?iso-8859-1?Q?yccxvEqmPoUh7bzppXuh9tqzzUkC5zni40KohFlZgIJode+srH5SGwMTjh?= =?iso-8859-1?Q?47JMlVrteFygMixdRdqMt9Pjuo/18KHheozgdkM0juJ9YBmEtnYpP1PKkN?= =?iso-8859-1?Q?4jglhjBy6XUofpPevcV6BPzyfpiNoKLCd1oDyeoMHP/iMnhBK0y+q+eSJy?= =?iso-8859-1?Q?Tes8uLzUyCum8vyl3eAAazwGu7dCiqnttpZn7vpwMdI1xklKzyfnDI3jCF?= =?iso-8859-1?Q?cs23WEz9cvcqQYaTsVvhV+5HMnY0zR0lZ/NnPdp690ohgOmZzfy9l3kg54?= =?iso-8859-1?Q?fuSIcS1QciUfOruiMcYz42H+rT0tQ92E8VC+BkaVC9URISLMp2WjseFA76?= =?iso-8859-1?Q?5mPgKQgg5I+rdIp4py+VkibdDB3gSkZSnPmypCl7qtCCXFLSuMiH5FSMqY?= =?iso-8859-1?Q?IeQMxbXYG7H/Ddkx360sWSCvXFRJNGd98mEGvMGlO8UNEDuEKe2AAPTG41?= =?iso-8859-1?Q?+zhIFNgpbPwBEWT1ov+3qS5iWXH/c4RZH0LGI8Q3LKsbYK0pxtugF0nGrg?= =?iso-8859-1?Q?jswT9KGJKsXw6jLerWpDdZ4hQTfoh7f+Foy6HYfwa6frrY1CKjkmtMXss8?= =?iso-8859-1?Q?MwdrdoVHAXBQ7/6vgOtEiWTLysmO8/3pWalUDlvJd7uxwOvuLZW47KkT8e?= =?iso-8859-1?Q?O3Vsgn32C6nsutVgMgR56gvWfJ7ciBweIQPbqx9HHD2b7SQLsf+u/DdkwL?= =?iso-8859-1?Q?2S1gv/+hKbdkI//2nrWAkoc/HnSKNG+1UDiJeTWdG38CbzN+jclGjcHqz2?= =?iso-8859-1?Q?76R1TGoEPkAF/hWjy8CpZ+0xvrgnz3gUQnXcOJRZWIVQ=3D=3D?= 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)(376014)(366016)(1800799024)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?xdIk602am2Mdczjf75JCreL84rK0U1vjKhbPUQ+9+D0T23iGSW44J3k8vo?= =?iso-8859-1?Q?dDaQZiYD8wJKtmwAo8MB/Qt+O7LPuCfgBH5cFeZIi9BxQtxysofze003tL?= =?iso-8859-1?Q?r9L3mnWc3T5XSVX0DoofoeZij8FFvCESzUpxAdLtCl6D+19GabrSBkaUIB?= =?iso-8859-1?Q?TslCPk/4VOSY64euDOvCD47ohTJMR7V+Cwafs2PzUlWfhoK2Kn4DmA397h?= =?iso-8859-1?Q?BGZfzq9K5W3xiNN7FKmEt8JrOtIWJTwDlfW5EPEecigCWB8IEL/kVcPoWj?= =?iso-8859-1?Q?9h0d+uGYyMIhMdD1271PEWLjXJouEnjIkTeMqK1LO4e202ZPf9P2BCE6QS?= =?iso-8859-1?Q?rbaBLH/hhMLGyChLBzKiozB55/1gOz9fGJU30v/CsciAbcT3FKZAEB20kH?= =?iso-8859-1?Q?oQxa5vwVlOZsW0CupV3ZcCOXSfhzBEx/W4efiRdW6m8xjzuwPX+UoOLjJn?= =?iso-8859-1?Q?0rvSUcBVlt35iYARNV6RWamKjRtVvy5qH8xbti60xHGkgkRYL7ud4Y9iAF?= =?iso-8859-1?Q?7KboZwWgaxZ+1t55jbHa+r+fuDx9hG99rJGgJirlKOAlqxe3KAUXc4PK3K?= =?iso-8859-1?Q?TqsKaJYDMrGvcZoN4yPJ3n50Ns8wyfwkoz7xECaficYiShwurpZuXam34H?= =?iso-8859-1?Q?W49Ah5/h47Fz2c053jbVGtGpqG5OqgtN9k/BI0Jebc1GczgmxPj11SfSwI?= =?iso-8859-1?Q?YYbkG8hDAf7B1NGLRU+JGtrVgSfBVMd5I3GvAttmXcbcgohHCgzSZCkBMy?= =?iso-8859-1?Q?RMONmLm+ixShrP1qVvYnyzYjDsHWwTeCJ6O8miea9AzPOfjoW3T5KiNJU+?= =?iso-8859-1?Q?5RUZhUzzzoJd32+FeBQt11Dl8SbOmf6CDrw7U8uJpifkiCCcEBL7hDnfUX?= =?iso-8859-1?Q?38Qj+/eVUXQVoKJWBDML10piBE2DAe3IZ6X5ko+bOjOXW7oTTLBTJTm4xQ?= =?iso-8859-1?Q?/Hi4DlPvy0+ubkFQC/0X8X7rx1YJCqOvQX2TsRSsaxy4dB9B4YS18Y/TSx?= =?iso-8859-1?Q?PGkWyLHWhG7VkBKjEW9VGcHT3TWDlQtHIiCye2TcpbQNIIxlQ+fBBuOPWE?= =?iso-8859-1?Q?+zEyl02BYH/7UtIsk22FgQhfcD6MaM3Cl9bGIMXfZANuxHBS72I9F9B9bE?= =?iso-8859-1?Q?vLc/Hzi0CSS55FBNwicG862SdQ+2ZNfLjNFQaX4x4/7DCnTpqWeCix4rEv?= =?iso-8859-1?Q?xZ88fx9mU/O+qODg3/bed6b27xFbptP3Nijv5PfKaRVvM3zGYFOcSmfPjr?= =?iso-8859-1?Q?g5gWzKbynaGBPx2UqrZoEMfkWq3b9rCGt6eo0IneXuxPOZbisRbaFWkTLD?= =?iso-8859-1?Q?mq1SraBndqHSYzOohk3gP8ktjJu5pAMUYYLCiCe/BHi6lXSjwEkCKX9GbM?= =?iso-8859-1?Q?YB+H9QfkCWmaqPjM/Ka5JVD3/DocvKN4Y5tItNTthcK6iWGL2QmT7+7tKn?= =?iso-8859-1?Q?2nCyeDd5bcApbgxS1gMDyHfWCLKwHPKsWAA6f4s8RJl4K7drmQ4b9nYF0G?= =?iso-8859-1?Q?Yg8jbdaRIwhNAbLz8t90vZS0ufFpe/1hNFe7qtOu3dpeMe+O74img7D8nh?= =?iso-8859-1?Q?cPud7wzRc4zNbuq8tBh46ZLaM4mtzUaJheDCUY3PetX6HgLeqN2bE3me6w?= =?iso-8859-1?Q?CcWwTFnpXEcY9H+FWU5vVa0YOsPyYYetdEdCuM6oVdqdq4YsQvvuAgdh2t?= =?iso-8859-1?Q?o7B4iPV3BSmvQGcrPxE=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: a6cc71d5-80c4-4cc2-e9d7-08dde9491ed7 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Sep 2025 11:17:20.5583 (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: udvoySqaJjfXokKoVm32XTjbelUnwanS/Z5t1GBfyn7AD3bwCyQgkDyn7PquxiSJFbK8L6DBTHq1XDGWG5qb0YGykxI0o1WXTye3/ZismsLYS3E0eqg4TakHh6SBaLd6 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR07MB9215 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.83; envelope-from=clement.mathieu--drif@eviden.com; helo=smarthost2.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-Mailman-Approved-At: Mon, 01 Sep 2025 09:13:15 -0400 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-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: 1756732475345116600 Content-Type: text/plain; charset="utf-8" wait_desc with SW=3D0,IF=3D0,FN=3D1 must not be considered as an invalid descriptor as it is used to implement section 7.10 of the VT-d spec. Signed-off-by: Clement Mathieu--Drif --- hw/i386/intel_iommu.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index 83c5e44413..4e7ad3a290 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -2857,7 +2857,13 @@ static bool vtd_process_wait_desc(IntelIOMMUState *s= , VTDInvDesc *inv_desc) vtd_generate_completion_event(s); } =20 - if (!(inv_desc->lo & (VTD_INV_DESC_WAIT_IF | VTD_INV_DESC_WAIT_SW))) { + /* + * SW=3D0, IF=3D0, FN=3D1 is also a valid descriptor (VT-d 7.10) + * Nothing to do as we process the descriptors in order + */ + + if (!(inv_desc->lo & (VTD_INV_DESC_WAIT_IF | VTD_INV_DESC_WAIT_SW | + VTD_INV_DESC_WAIT_FN))) { error_report_once("%s: invalid wait desc: hi=3D%"PRIx64", lo=3D%"P= RIx64 " (unknown type)", __func__, inv_desc->hi, inv_desc->lo); --=20 2.51.0 From nobody Sun Sep 28 15:28:21 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=1756732493; cv=pass; d=zohomail.com; s=zohoarc; b=SCAgE2beckdeDfsUXL/BiNZ8PvpEChZ4ejzd/pw3S8rLuXDrLsK8k0x9wDWKD65sROGT/PzwWedar1bQjfIQRwmW3evv8x4kINPjrHKlHfv46j81Y6Uu0yVip2tj1soaib2eo6UN8TL6b1maikL1qc5i5vX4igekFZ+Sg4KtZSQ= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756732493; 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=cOxfCe/hA8QzhyIsOqBGV6vZsg78dsM14Wm3Sqw/g+U=; b=ZoeriTtShWkosu6S1SLfolA5Od/HRGDDeJEtuAPLqH9wzl+yi+LXpKaGJTHA3YQgK5+u84bmV0qJVKa3nrDINv/avmWBDvsm5dCt9bgCoAqdEx5QEnIqHFTdnt+OySRvjuWBg40mnJr7pydxRYlID+u7mhBjemSn/33zlYw+4AE= 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= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756732493508355.82504206454166; Mon, 1 Sep 2025 06:14:53 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ut4Li-0008HK-PZ; Mon, 01 Sep 2025 09:13:30 -0400 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 ) id 1ut2XZ-0004OD-Co for qemu-devel@nongnu.org; Mon, 01 Sep 2025 07:17:39 -0400 Received: from smarthost2.eviden.com ([80.78.11.83]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ut2XW-0004mE-Hu for qemu-devel@nongnu.org; Mon, 01 Sep 2025 07:17:37 -0400 Received: from mail-francesouthazon11011018.outbound.protection.outlook.com (HELO MRWPR03CU001.outbound.protection.outlook.com) ([40.107.130.18]) by smarthost2.eviden.com with ESMTP/TLS/TLS_AES_256_GCM_SHA384; 01 Sep 2025 13:17:25 +0200 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by PAVPR07MB9215.eurprd07.prod.outlook.com (2603:10a6:102:317::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.17; Mon, 1 Sep 2025 11:17:23 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%6]) with mapi id 15.20.9073.026; Mon, 1 Sep 2025 11:17:23 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1756725454; x=1788261454; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=CZb4kYJxtZ2zWDoKemLVd7Db21AKbs12cKBSEVSMSEk=; b=Fi5cCetHpUL+pdLfmhDyr5vnF44itIQgNop4KPMsCt5IgxNC3QUfwaNT FwRevjvLIWL2N7n3VW4i1E7BY3pZQBvC9imeYx5l3Za8xNiNwW/Mci/1p sSBfzx48alqpo2FLNbnBee+MwLe3m/Fo+Qdhe3C6MdV8OfSW+DLaJCzhu NUwrTer3WWWmLnE6AGbB82NPp5tK4ronAa2Bkcna3kZpaYYXklN/GfTaE uhpiuFa72KINggoezTD6mS41ZyaXftx3TyFo0mMeBjKMWlux8DStYWL6r jfhszw2BC6skQKpqWQ/ZEh4mF+mgkGI6ioxnMDDbTEQWBlRWx/TOpRo71 A==; X-CSE-ConnectionGUID: BOQq+m7kSQq/Fi6XV6kYLA== X-CSE-MsgGUID: KRub8F8sT1WmZ921RhMoXg== X-IronPort-AV: E=Sophos;i="6.18,225,1751234400"; d="scan'208";a="42540662" X-MGA-submission: =?us-ascii?q?MDGgLp8f9nrm7nWP4bOj1mLmx77FnxFKjINpbG?= =?us-ascii?q?HP6wQmhSrGTrMw7HJetWlC1tclNGViC4EfqKM4qvnYq0ivE06occWA5A?= =?us-ascii?q?ja4c/UsyYvL5z6/gXmRwB+M0dXFZBtdAmJi4F+7D8SrnkodFQ+WbJllq?= =?us-ascii?q?x2a+drrj0sJx1cksRCUS9G+Q=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=bWbC4jkPHwAyjcoW5zbNamN5lLmi2jHEdaEOIBSv+J0MQHQ09v53CpXwIw/hGEUu0uOiJY7iayZ0ArsYkVdCj81DyZyVUvo/x2rYmFUEqZUDY7/wjMVqc3LDX4uG0FjJCb6yGwW0fKJ/eK0RViNvfZSBPrQb/vnqOgQQq+K7rf99FJwhWMa67/Mxtjweq0uWiW8b8h5O4YkltRq/WS3m+1Zwng7zBqUQCwsIXulhf0L7zZzy8IiCqZX9sBhmZtSD5jsBD2O1I5j30GBHkMciVvgEQrfYHd1TRSKS/rl1WDkakhV9ybFbP06tcqXaXx8kda9CkvTkS+/IMALPGJOvkw== 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=cOxfCe/hA8QzhyIsOqBGV6vZsg78dsM14Wm3Sqw/g+U=; b=dRrihQi86UHZyPFJkcG/Ckyqr4Npvsc654fbwy1dJ0A8+gx7U5aS1WofOKE300KLLKfGUWokuuIJRPC7waqKyImts5M/tFP4Oue2worE1o+qO6zCYqX0Y+MchtmxkGdjH09g1WA+AC/nWXyZLUbQun6MaNfCv0o5YCpZ0bhkQuen5eVItcFKwuz0NE5jRXOX9T7a2M95d/JkJf5Yl/8VqHdJTMUbf2ldvuradk04Vt0Psu5g+BJw16gRZaqEsfwIhbpIH3s7qY9JlW3m7zjF2icG2rKPTYtxuOqwwhgrKhLjH9eyTSSfJB9yRW4GTuFkblIxhkhnZcZcMlN0BGy/ig== 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=cOxfCe/hA8QzhyIsOqBGV6vZsg78dsM14Wm3Sqw/g+U=; b=i4ryUOHJWlmKYdlQF9yvdis/Sj9eURDO8Xb65u5B7tzYon/ka+B4bEyL3oxmDt2DmpfGfKs4l1Mq6zSxp6RW4kMXMFHEwiYxifOuOWAGypXjvvHpYnWMwZ1d5MYDITIwcL5U1p49PYWBNeA9AchuCeSuxN1h27UPHijqrVFHX7WzrqONgVJeH6i+xDzWEHjd3q+C+npa3ftMhZ8RuD7727qVJwmOng9jFNDBta7CMJGYnciIOrr4KsGTvPpiO4VJfFvfqvy9NvGC9Cw+NCVxg/bsCWN6AzZUXc3C+O4uqfPPpg7vInDLPEaJ6BsRIwEJVIp8SKPfJJ5t0FVX1SpkzQ== From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "pbonzini@redhat.com" , "philmd@linaro.org" , "mst@redhat.com" , "marcel.apfelbaum@gmail.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "minwoo.im@samsung.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH 3/5] intel_iommu: Declare PRI constants and structures Thread-Topic: [PATCH 3/5] intel_iommu: Declare PRI constants and structures Thread-Index: AQHcGzH8xgD0OzvsFke2lY4gWNXHWw== Date: Mon, 1 Sep 2025 11:17:21 +0000 Message-ID: <20250901111630.1018573-4-clement.mathieu--drif@eviden.com> References: <20250901111630.1018573-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20250901111630.1018573-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_|PAVPR07MB9215:EE_ x-ms-office365-filtering-correlation-id: d5355aeb-301a-464b-ebab-08dde9491fb8 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|376014|366016|1800799024|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?Q?zyfeER0b+4R8KL0S6bGjMP3c1+nRvKs3g+pPAOD8hD9JvIkdBNWbloxpfE?= =?iso-8859-1?Q?j6Kq571HCnFOxPnOloMWfRz0G1kUozpBsK+rdMgyO+7SskiQmZxOapLOrD?= =?iso-8859-1?Q?MyiKuy2wZbQOFNmx4i5Q/Y//mNCAC0oEyVwAi0HZ+Hp/A8Q6fEMTotAiHq?= =?iso-8859-1?Q?NTmGwGZuOrwD/iEY75An8/PznuxF5rh0W40nyQTN2D204j6Edm56FhCmoF?= =?iso-8859-1?Q?72zTgO6tSnUqrbjR2XNYzUgoEBgD6jk21/KFZo+9MGihP/GC5VTL8VQOWK?= =?iso-8859-1?Q?e62VWYx00J2vBh4EI0yWKrZulHM/mAUkl1Y55k4Y4gQi/ZlK/Yu3zel0XK?= =?iso-8859-1?Q?rf39r5tSzUg23QhwXRjIXj6F5qTtVSSxjyFBesPYLw9l7wCjIh63npy56O?= =?iso-8859-1?Q?crFYxpEzicrDMvmCW/qS2GqpXgS06g53lrDYdwVI6eb+71GeI8YX+c7aU+?= =?iso-8859-1?Q?PEkH9WTZnRC2GKpHflcLiP6uR5dfSA3/tpVRRrTfKAyqn7Fu4OI2RB7ycQ?= =?iso-8859-1?Q?ii/QrJikbZsDuVgkMbGak5GzgFQDoPeUbkBHryDeM/VCbprKj49kyXBwV0?= =?iso-8859-1?Q?MVbUA5qJ4Ydx3QDetbc0kWqbGFUF3WSeAWD/Gcm0FCj8fGzwL0sPML+qA7?= =?iso-8859-1?Q?uRYZt3vm/JAZY5yPi+KCmeLeh3T0DQuBIDeDh2gtu8E0G6wJnFsQKZ/XQx?= =?iso-8859-1?Q?N0nF9pS4QxYuOcyn3xdPqPHMhriGu8S+ECQz4jbmkbgLj9fyBLnpso6HXv?= =?iso-8859-1?Q?M2RPfpUj15L76quu/G8Ee6dG5R+0rJ9qGDYeigOYeGG9lDXFsqNHskArZU?= =?iso-8859-1?Q?1d0jVQRBLLdNQvY3GgLel97DmEOEQkPhtzg3AbFFwoVUG2ZDWTsfevoixF?= =?iso-8859-1?Q?RqAPUm/dM1hLT14IaQsP8yWTuHYMplnquecHzAur1OlXpbhL5uxw3yJLvY?= =?iso-8859-1?Q?zxYNobgLSXTtrK5m+tJzxm9JYDCBRxiZeIR6tVe7x6LEkYdSv6SxqQNv30?= =?iso-8859-1?Q?SdhlurqA0CrsIhzXBltX7QtUlQTHdq5GMJ69nWURFtf3F4SmcVxR6DTtUu?= =?iso-8859-1?Q?8/P99u1lu50g9LHpaIRr2QVDlUx9NGt8RLSrXAz7n1toTTWfCkHBaLPwzy?= =?iso-8859-1?Q?QOLiG/U33yqMagO3nszKJRqhkrSewLTYNMZfBgB63jLtvb3Q+nk54ShKGi?= =?iso-8859-1?Q?0AvXnqKoqX74ZI+smpkmi/Etg+bV3F0mIOKMvKzUGwuw0bXjvnDD0UGjT5?= =?iso-8859-1?Q?nEY7rNXRC5jBx3JByz0BVxXPWjjdewqT9kJXbSma4rJcsU+auBzsLQmrnv?= =?iso-8859-1?Q?bttQbIJVGlOK3VYIyWNXSrt1MB/bd+zq130C4bCpqvWqR9oVVoCGI4/C8T?= =?iso-8859-1?Q?b7faWsSGCOi8qTgZmB2Jm0gebh8dHzFG+ZLPBtNieOD/DlpyYwsotxod6g?= =?iso-8859-1?Q?s9GkwHHIfsNpgyUnC68rHHpcu9bOUhnIntEpWOiMSKboHweaj2Yq4RoJvP?= =?iso-8859-1?Q?/4I/tzELaCJ82mF9cn5FYZUA7Xt/qPYXdCl2+gTDoRYA=3D=3D?= 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)(376014)(366016)(1800799024)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?GmElUe0uGCRfQr1Q0SouXs6QrGpTGqXzJuNz0c+yvEGPk3B1gw8zZJdZ37?= =?iso-8859-1?Q?biThOVAphbx7lQOElne4n+hn54NeDJEO1038bHzTUJqXtR3BUdqVeQmClO?= =?iso-8859-1?Q?Sm6EcMbCroLcjDdoeccZfhG85VvZk+CXwkxvKvy+h2L1dAN9wo/F8MNFWc?= =?iso-8859-1?Q?cy8i7f1nKffpgTDay9sAjnON7S/Fn7bue8j3jJiScpARA9qu53jHuC5aBi?= =?iso-8859-1?Q?oorHNLH6X8TnU7VGcme8pqMI8lPXqN5CAsxD9xIVdysbI0h6hcIvtor9nw?= =?iso-8859-1?Q?fovdH0PaRWSTK8bRcaE/0BoHn550HfkJzO0X19OQ6Dou9cFZPqCrqf3Nyo?= =?iso-8859-1?Q?NpnDG4Wa4WWs54MgDbiaec8TuSkezT4raDdKpojJ+4jF8qapOwYeb4vR31?= =?iso-8859-1?Q?QPub7DmvxhDd6OKuCOH8kjTOKT+9HfJpoqzTpk/Fj/dC8Ky5UFh/U+FiGM?= =?iso-8859-1?Q?gtVrIGITrL8718ORr2u9aSQj/BrgK33gSc/ynUHF1rWPHKSNmyaOHt9ASc?= =?iso-8859-1?Q?Va57Df35g6EsqGcyNuHxnHcYQa8mbcr+0C8RWiVoihaqABruSqYuDQDObq?= =?iso-8859-1?Q?0lGa+plJxzmBMfZEkxhF4ahkDBzYwMEbu5K7D9lpTH272JWtOntyb0cfaS?= =?iso-8859-1?Q?UKnY2oo7vJxG4551UdZfpa50lEgpyCtnouAQTPVEAXvPf3d3jJS7OAo//c?= =?iso-8859-1?Q?+QSV0JN6+0Apv02Um0JjLD7ubY4BeV74lJ1UJdnuFk2F7UJDJXurKNqg+Z?= =?iso-8859-1?Q?BLm6YH+qNscFcK3fJIhk2M5yOgTPqrA5LNb3A80vMxpt3JBlElqURCVUB3?= =?iso-8859-1?Q?i5oeAj7i3aW2XB4gNtOH3Oq2WUkRf0dDIIiwxblkSjleSR0MksnJM+hI1x?= =?iso-8859-1?Q?12wVDHZh99G5GoSRHN/DSpHGkmDEWAJIEBfyzJ/4dcMLO+mytDf5H52xKw?= =?iso-8859-1?Q?tQqR/MW/26KxZ9pT94ptWUobUTS7YLRRMVLXDmlm/SGzpgaL53jZ30l22Q?= =?iso-8859-1?Q?NK3ecYN43L3sd3hful/uz/6gB0MsJ43OYlFPdEGjw6JW7u4EJESBj3Doxj?= =?iso-8859-1?Q?139CpbBXf8ydHE79l9oVajNWUXTDO37KgF+Pp8yg6r07qZ+Ak9gZV59s2B?= =?iso-8859-1?Q?0takY01tyyuOJSeyUhbAGvxdRuYPDNmaLPcR7fVc+VGHueFuy1z3spoLHd?= =?iso-8859-1?Q?iPhEQk0ujPN23xk6o/GiuLHEOmZI8cSjWPC+R+dwvVXZG8LUps0WCH1FFA?= =?iso-8859-1?Q?E8n/GOq5VOMFN8QLCyuYWU6jysFH1XqqpkQpKTZgSjgqsKzL3lM3wiq+b6?= =?iso-8859-1?Q?rcks9RbWqnIGWZnKVY3DwNXX/bQNLcnZbO3/OIz7Qye8P399AuqXv8AHpr?= =?iso-8859-1?Q?BHZArw/xcnJ3kWb6iATNuRKNs0Q6DHC9XDmK4MD8t6P9k++n21mYe8jN7O?= =?iso-8859-1?Q?vySGG1qMQ4R7++sMX5gslx6yjPEBnTpAN9sBwALG5Nz4pXa6/J2ZYUsGGO?= =?iso-8859-1?Q?WB/h/5Ivhf1DQ5hos4fOIfGjoDbetsBcmgr6ztq7JYxc3mzYaM9HoQtt6b?= =?iso-8859-1?Q?vo+cF1MTAAmmzamQAJikAAafv7Oq+p7EpESHlGMuy2CSeARaXbH/uafCEn?= =?iso-8859-1?Q?PvlyRp8wQnQbLjP5L37IkX1zz4tdsqRd7RumgfENTZ+iZfv8I81/k7Vd8M?= =?iso-8859-1?Q?+Kuc++wKJNV5/3AE67k=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: d5355aeb-301a-464b-ebab-08dde9491fb8 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Sep 2025 11:17:21.6234 (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: 0IJWqhf8T//Z0kx0lJoZO5rpYFa7tGR2+cKbQnzFb3YKnEITnv+1hdxIpoGnoVP/enkLCMpTJWxwUt9lEvtM18tUN91FT137yNxLWWI+7HYwB7FSei8dKNDnSzZnrUF0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR07MB9215 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.83; envelope-from=clement.mathieu--drif@eviden.com; helo=smarthost2.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-Mailman-Approved-At: Mon, 01 Sep 2025 09:13:15 -0400 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-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: 1756732495108116600 Content-Type: text/plain; charset="utf-8" Signed-off-by: Clement Mathieu--Drif --- hw/i386/intel_iommu_internal.h | 49 ++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/hw/i386/intel_iommu_internal.h b/hw/i386/intel_iommu_internal.h index 360e937989..04a8d4c769 100644 --- a/hw/i386/intel_iommu_internal.h +++ b/hw/i386/intel_iommu_internal.h @@ -190,6 +190,7 @@ #define VTD_ECAP_EIM (1ULL << 4) #define VTD_ECAP_PT (1ULL << 6) #define VTD_ECAP_SC (1ULL << 7) +#define VTD_ECAP_PRS (1ULL << 29) #define VTD_ECAP_MHMV (15ULL << 20) #define VTD_ECAP_SRS (1ULL << 31) #define VTD_ECAP_PSS (7ULL << 35) /* limit: MemTxAttrs::pid= */ @@ -376,6 +377,18 @@ union VTDInvDesc { }; typedef union VTDInvDesc VTDInvDesc; =20 +/* Page Request Descriptor */ +union VTDPRDesc { + struct { + uint64_t lo; + uint64_t hi; + }; + struct { + uint64_t val[4]; + }; +}; +typedef union VTDPRDesc VTDPRDesc; + /* Masks for struct VTDInvDesc */ #define VTD_INV_DESC_ALL_ONE -1ULL #define VTD_INV_DESC_TYPE(val) ((((val) >> 5) & 0x70ULL) | \ @@ -389,6 +402,7 @@ typedef union VTDInvDesc VTDInvDesc; #define VTD_INV_DESC_PIOTLB 0x6 /* PASID-IOTLB Invalidate Desc= */ #define VTD_INV_DESC_PC 0x7 /* PASID-cache Invalidate Desc= */ #define VTD_INV_DESC_DEV_PIOTLB 0x8 /* PASID-based-DIOTLB inv_desc= */ +#define VTD_INV_DESC_PGRESP 0x9 /* Page Group Response Desc */ #define VTD_INV_DESC_NONE 0 /* Not an Invalidate Descripto= r */ =20 /* Masks for Invalidation Wait Descriptor*/ @@ -440,6 +454,15 @@ typedef union VTDInvDesc VTDInvDesc; #define VTD_INV_DESC_PASID_DEVICE_IOTLB_RSVD_VAL0 0xfff000000000f000ULL #define VTD_INV_DESC_PASID_DEVICE_IOTLB_RSVD_VAL1 0x7feULL =20 +/* Mask for Page Group Response Descriptor */ +#define VTD_INV_DESC_PGRESP_RSVD_HI 0xfffffffffffff003ULL +#define VTD_INV_DESC_PGRESP_RSVD_LO 0xfff00000000001e0ULL +#define VTD_INV_DESC_PGRESP_PP(val) (((val) >> 4) & 0x1ULL) +#define VTD_INV_DESC_PGRESP_RC(val) (((val) >> 12) & 0xfULL) +#define VTD_INV_DESC_PGRESP_RID(val) (((val) >> 16) & 0xffffULL) +#define VTD_INV_DESC_PGRESP_PASID(val) (((val) >> 32) & 0xfffffUL= L) +#define VTD_INV_DESC_PGRESP_PRGI(val) (((val) >> 3) & 0x1ffULL) + /* Rsvd field masks for spte */ #define VTD_SPTE_SNP 0x800ULL =20 @@ -491,6 +514,31 @@ typedef union VTDInvDesc VTDInvDesc; #define VTD_INV_DESC_PIOTLB_RSVD_VAL0 0xfff000000000f1c0ULL #define VTD_INV_DESC_PIOTLB_RSVD_VAL1 0xf80ULL =20 +/* Page Request Descriptor */ +/* For the low 64-bit of 128-bit */ +#define VTD_PRD_TYPE (1ULL) +#define VTD_PRD_PP(val) (((val) & 1ULL) << 8) +#define VTD_PRD_RID(val) (((val) & 0xffffULL) << 16) +#define VTD_PRD_PASID(val) (((val) & 0xfffffULL) << 32) +#define VTD_PRD_EXR(val) (((val) & 1ULL) << 52) +#define VTD_PRD_PMR(val) (((val) & 1ULL) << 53) +/* For the high 64-bit of 128-bit */ +#define VTD_PRD_RDR(val) ((val) & 1ULL) +#define VTD_PRD_WRR(val) (((val) & 1ULL) << 1) +#define VTD_PRD_LPIG(val) (((val) & 1ULL) << 2) +#define VTD_PRD_PRGI(val) (((val) & 0x1ffULL) << 3) +#define VTD_PRD_ADDR(val) ((val) & 0xfffffffffffff000ULL) + +/* Page Request Queue constants */ +#define VTD_PQA_ENTRY_SIZE 32 /* Size of an entry in bytes */ +/* Page Request Queue masks */ +#define VTD_PQA_ADDR 0xfffffffffffff000ULL /* PR queue address = */ +#define VTD_PQA_SIZE 0x7ULL /* PR queue size */ +#define VTD_PR_STATUS_PPR 1UL /* Pending page request */ +#define VTD_PR_STATUS_PRO 2UL /* Page request overflow */ +#define VTD_PR_PECTL_IP 0x40000000UL /* PR control interrup pendin= g */ +#define VTD_PR_PECTL_IM 0x80000000UL /* PR control interrup mask */ + /* Information about page-selective IOTLB invalidate */ struct VTDIOTLBPageInvInfo { uint16_t domain_id; @@ -550,6 +598,7 @@ typedef struct VTDRootEntry VTDRootEntry; #define VTD_SM_CONTEXT_ENTRY_RID2PASID_MASK 0xfffff #define VTD_SM_CONTEXT_ENTRY_RSVD_VAL0(aw) (0x1e0ULL | ~VTD_HAW_MASK(aw)) #define VTD_SM_CONTEXT_ENTRY_RSVD_VAL1 0xffffffffffe00000ULL +#define VTD_SM_CONTEXT_ENTRY_PRE 0x10ULL =20 /* PASID Table Related Definitions */ #define VTD_PASID_DIR_BASE_ADDR_MASK (~0xfffULL) --=20 2.51.0 From nobody Sun Sep 28 15:28:21 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=1756732474; cv=pass; d=zohomail.com; s=zohoarc; b=lCvNlDylRbjyChltKiehRuVnK97CWnbE1wkVyZw37mK0mRV/fOCzj/ZfAafBI7hY4n8UMuuLyXutcaU4FATSEYz13iji07FtCIiymeUlBhAT0a16LcFIb4hgVibn3XIo7pwAKmbw280k09613HOnc2JQg3AQBNm2ah7dCdo/iRI= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756732474; 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=B7lra8Qws3rc1vggr8/JFdSGUSsRr6tA/GJCNAvJl60=; b=MI/A5SQo0vT816rkEDZQJwDqCZ4EY2Bhj8Ie/azUY+KQH5XrhjpoZqL3+4PhlVETfDBwIsuWY5oYbsDDcGnaU3m+60vuq7MYPPqsUOZuOWTkYnW/pPSAI9V+DeCYH/LLtVhGzn9HUm6u46pJ1dxSzKV+wFtQpvunf9IQy6jhwbk= 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= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756732474448303.94620315616044; Mon, 1 Sep 2025 06:14:34 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ut4Li-0008HO-V6; Mon, 01 Sep 2025 09:13:31 -0400 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 ) id 1ut2XU-0004KN-Sg for qemu-devel@nongnu.org; Mon, 01 Sep 2025 07:17:32 -0400 Received: from smarthost1.eviden.com ([80.78.11.82]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ut2XR-0004mQ-Gs for qemu-devel@nongnu.org; Mon, 01 Sep 2025 07:17:32 -0400 Received: from mail-norwayeastazon11013057.outbound.protection.outlook.com (HELO OSPPR02CU001.outbound.protection.outlook.com) ([40.107.159.57]) by smarthost1.eviden.com with ESMTP/TLS/TLS_AES_256_GCM_SHA384; 01 Sep 2025 13:17:26 +0200 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by PA4PR07MB7614.eurprd07.prod.outlook.com (2603:10a6:102:c6::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.27; Mon, 1 Sep 2025 11:17:23 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%6]) with mapi id 15.20.9073.026; Mon, 1 Sep 2025 11:17:23 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1756725449; x=1788261449; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=IRsktZ0RdbI0LklzhNw+41UVbOM4kCGPRGQw+LPafhw=; b=Ni7uXO9gohTOUsG7bGkjkoOfpTF7qw21mZvgTrY9aq8dIkg1Z6sP5Yl1 dFT5qQ1vi4M9hJCvIvXfOA1cMbrBVG/4xk5PVtLWpbhyb/DbpkS9fe+mO UzuWDlwxREiCUDUaq3uYvdxiMT6b73QnZdUzMPd3Z6qTxHgd0LOuVWzsS iIXLgqC0jWPpzfK6zTUCct92DxZ3SXm9UjpoTIM2wbJHaoHw3ex7rK9US m+Ql81JsqAzqNR3EOu4SVt8JFU3sOTPfeaXi0a33iiYz6mZ7+QHodpx/k Bndvy71bwyaSNjkVeN+Emezr7Udb7kD9AYKcOLUoT+IZG2wZ5HPZfuyyp w==; X-CSE-ConnectionGUID: 9cMGRzkCSPy+N14XnZ923Q== X-CSE-MsgGUID: wpPxyo2oTYqYxu4SgDeSHQ== X-IronPort-AV: E=Sophos;i="6.18,225,1751234400"; d="scan'208";a="42537903" X-MGA-submission: =?us-ascii?q?MDFB8pKe7WWdoQKv8l1rKoenGRzcsjc4gFf2kJ?= =?us-ascii?q?jgFQkNHk85853xegyxXNOFn/+DopUvNNnbQrzhBhyaiBHT/I7ANXCXcz?= =?us-ascii?q?UAAOtMHM2UwnPDxWRrcAXHli1Hr40EsSGgI644tpDntgJSQfpEG4XX29?= =?us-ascii?q?g+O9cS+Nu6xaZzbxmgAx5tWw=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=PEg7a/4X5VMFaFukDatwftPzJl7wfzFg++9PieHT9LUCn9Vk6lVaWeHYznZ83BStQcqSkCiEuFhmS5YeXk5K2g6jNO3aAJVzp99hHh1GGmuy156rSRV47l5TPIjM1YRHXKbsMSxziM05VVlpNxhp7Xu1+NwxdhCSEx8yKX3jnmcH/EKHfRZi4x4NX6EHe0Y2c3qanC5vpicytWA+vh50n2Rm4lwbR9/J9+dkTRn6yPDIhBUW9hItWp9nBsaGfMSKEEcmDJzE+psF7NjoPVvvGpfdvPcDm9XKzvytf8bsLtu57RFqW4Yf94oEMUvhCykTKem2WCRm+s95cLFkb9Xz3w== 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=B7lra8Qws3rc1vggr8/JFdSGUSsRr6tA/GJCNAvJl60=; b=tpVsWNbqnTDN5c7NT+/q7gjONlxGtLF9SecsSWPiXidUFZ22JPEGZol1zSLgTkWoMxeoYfvxFhtf+/XfqxQnzpBaauEBUC4BNN5Bedjbxv2OCCltyncY8Ed8XR9mxZdpVwgvjjnJT1oYg3IUOolIibAH9N7v98mHKg1nvzViWWkZ1w8UCOjLuuRMzqOS8MTxoEpskvF1lwTIPSUmZevW2L3UUCcYgUWHOw6FaWYQB9N0GwPN+LL4ULHt3lmkek84ZNxa+EIWxN52Drg5rwS/ttyvOjCsIszwmESmGRf14yVuUM3FPsUTQGkAA1T+1DRvs7Vkk3BBcFdz+mAun4vlpQ== 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=B7lra8Qws3rc1vggr8/JFdSGUSsRr6tA/GJCNAvJl60=; b=RjdXKV9GQ8yR6LMes5Usmrn+l1nPDZ4Mrwy5VHCJIVtjJOQv61zgBhHTJLM1HA/Bwvuxuo75lIwI+/wJyIjveISu3+CKMsX8Q+RoP2N7Q0YfyEUP32xN+Oa8CptdbTf23nGJsPzpDogoPdgM6E9xmA3cjWF1IYM/rklKVHFr/OfUD9C+yFrmGkDuOEbeAKVXPwTku2zncnZxMahtrvTyizWD8e4EagtByIW0WqVCargC/j8IGzFW+Zo32joeVFnRsjVBFHTCzsW3nkA74YqavzaG9528+5P/65XZrM1ApihntJDnYL48TCfMP/tl+q6BFnxQNS8B8gMVQLz18vqJKQ== From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "pbonzini@redhat.com" , "philmd@linaro.org" , "mst@redhat.com" , "marcel.apfelbaum@gmail.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "minwoo.im@samsung.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH 4/5] intel_iommu: Declare registers for PRI Thread-Topic: [PATCH 4/5] intel_iommu: Declare registers for PRI Thread-Index: AQHcGzH94De6bQrsNkmdssOEdWfIiw== Date: Mon, 1 Sep 2025 11:17:23 +0000 Message-ID: <20250901111630.1018573-5-clement.mathieu--drif@eviden.com> References: <20250901111630.1018573-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20250901111630.1018573-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_|PA4PR07MB7614:EE_ x-ms-office365-filtering-correlation-id: c03ab540-e663-4877-7a2f-08dde9491ff0 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|376014|366016|1800799024|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?Q?P2UzomyJIRfIG+Z//hayP6XMPnqA3xU6j7FS0CjpbZUzmdOgj0a12yL7b9?= =?iso-8859-1?Q?81lTFBMBe5paZRFtM6br0Z5M12hvGpHETZCXB/Fqh3cQN224zKpW0+u1xh?= =?iso-8859-1?Q?x4qLtXXfyJxs0yrFkoIH+SBXNDExJr20TMU3qUu/0A58zFBWUpW2SKkX1j?= =?iso-8859-1?Q?uneFZKkZ8ZBSVKEhZHLFlbxk3GS1gNlPmOhvci9Zljh8dG90u85t24GG10?= =?iso-8859-1?Q?wOgcLL1hDkhpaU2nq0Vh/Y5nrV/x+lYXw02u8FIze80fetf0SAXqgNTcMd?= =?iso-8859-1?Q?xX2/Wp7WosPNclEVLSzzmX5pF0r27H72fPFJMxBPkfj7hbZ3jrcYyW6LKp?= =?iso-8859-1?Q?RNNJM+QBCBOuJ9QRdOR1PxH/nuRF9jIT0Qai9GSyj4O02x32nwipY0fA9i?= =?iso-8859-1?Q?zq4SndK5kMG7RxFxyNCVxLDLlhDMdZkMCLKoO/HPoAPCTgux00vFHSumDA?= =?iso-8859-1?Q?n/CSxFYseyvFziMzEArLwXQrs08opEtIi0ZwjdlBnvTzoS4qeu7zgG6Kyy?= =?iso-8859-1?Q?Cg/P25ZANwDegG8zNzYS4zaFNrO1gdIwhQ3i+ccjK1882IKb/iefcjuwve?= =?iso-8859-1?Q?9tU1QjiBuAAf1Sf6jiEiKBeFdP4Z+sMEygvytsuJOWk3s/kiqC8KZEbPN9?= =?iso-8859-1?Q?8ZDPdNatTqKMttR7+bx7lzqlnisny7kWdVaJv6Z/IB0XG79wzH7oYvQ6As?= =?iso-8859-1?Q?y6KItO92T+0n36BYIG88eLJaqjjkxiYiPqxXuij+HB4w74QGAKqVFz1cdZ?= =?iso-8859-1?Q?chY2TXEqrBa9NCauiMrDPXk/pDAeT+U8daxY6jnAv7bcvdc8pV55OhCWZs?= =?iso-8859-1?Q?9aDeSKSyT0TxmsSupiRANu5JJj1SFbaEO5iRJ2peHaVwYUMf7/mggfHsx2?= =?iso-8859-1?Q?v/29j7y5llUYJYe+Dh29jo0Vms0wrB3QurMy8YyrEZJBDJ23uVGR6ivIhN?= =?iso-8859-1?Q?ochmR2s0Y70C9/56M52SADf5eCV9Zu18O5grXBWlSuFgf3JQO2PecT/RW3?= =?iso-8859-1?Q?rseDIQ1nvE9fS6I2tsqR9+K/w066DHv+2fyLXKCshLla2443JHTNcz1+Ly?= =?iso-8859-1?Q?WXEdNkdwI84NnWA13DjpCAUxpBCKd2h+YjC2G11lXk3kZr0LLi5IGYZRVJ?= =?iso-8859-1?Q?6l0Zb9mQWtZxAHqOxnf+de6sB4oXJ8H667f70SmG7rWhh5Mc7yoplYLwBh?= =?iso-8859-1?Q?zFBI84ID9dzYSCkF3z+M7LSnp3brdUwW+LuzX4AaQO1IurJcmD81iIxjvk?= =?iso-8859-1?Q?/2tchEOXUcaDhAS/suNi5LrFPAVjxe/LxdM9ibQ+qSqbS9OevkU2p3fVWa?= =?iso-8859-1?Q?intQK7lPz1rcDuISIi2WFaLvrFegqHXu1D2r4mgCH8tLtja2XZi32+LfUk?= =?iso-8859-1?Q?YO4vfzkiK8eOR6K8JKuYaatkxneq77xddWpPn/lJTYFVCkMdv0jfat6tOJ?= =?iso-8859-1?Q?COyjXEsvbDlEXDE/tJGbRD/SIOyHzsDuZ17rvmmvzlymFilfuBjnyyXEyx?= =?iso-8859-1?Q?LMWhjosmqgV3dHfcMpD5nWwMEuy5SqLNkxPRzopOmY0A=3D=3D?= 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)(376014)(366016)(1800799024)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?g6EDH1ExG4kA0HKOQa7hh4Mqg01qnBFC+EkApDphADhIH0tAaA8Mj2HAnh?= =?iso-8859-1?Q?tpfCt5lfSSK6c1X03+l7HNIpdFlEhFPcNCTK2yFwxEzUV2tVshxeaiaCFp?= =?iso-8859-1?Q?XUJObyuBv+pHqrAhZngz1cSyXuUnrDWYxI4A8jkqWscXG4WxVigD7fy6r8?= =?iso-8859-1?Q?6KAci6PJM38mszYuOCoH+ZMbL6Ssibpyq5bpQ+aP8RUnynl92j8SQTrkTE?= =?iso-8859-1?Q?gVG2LjSBnR7hqy40Xf5/iwNKwEj4TUo2hIK6CUynD4aA4I367jnvgjE3E3?= =?iso-8859-1?Q?JgcNYAru2/IniwPWch0QDuBu09YKdJuAIR2ooRzF/fBJIIOxmwuuNZLaUV?= =?iso-8859-1?Q?UMJ/eE4VZWrTZohEKUFEiggFOOZGEYs+VH5e4eivzlJwNFOYipETZYutoG?= =?iso-8859-1?Q?Md+tYm7kBkVT36zozwKQm3MNOPQpTzqFwgQqXBx9gf0pea+3KkcT/+bXZ7?= =?iso-8859-1?Q?7rDljnIPL5R6FiQTwkWjSfdRDN3bx4k53bUL9XyxeJVk256sh9858gDzWe?= =?iso-8859-1?Q?U+YafOHrMBD5Z5PairivL8rTsdjmok4GG8CxiVrHHC/2+I/sMFZeAQhc1B?= =?iso-8859-1?Q?8oB+pHC1OtvPlMcbGfq0w69rxJoAuv6WRrNqtsc1vGotB+OxCMPbsF6zeR?= =?iso-8859-1?Q?S4msWtSJ/v0uIsztvnLpvilZIF5mrl/cVmkDHAni4b79cOMfdtWwAdhu5c?= =?iso-8859-1?Q?X4BOUNy7v/N0C1qxsqyoqsOa4rZX7F+mqo5G3cd8KF+PEVBVf2lTBbqt/j?= =?iso-8859-1?Q?dP3D9GcT/7Dq6A4TC+TWLxOzU6rnRwnzeysqJeDn6Y1w0pREC0/iNiHV5C?= =?iso-8859-1?Q?kKEU4urCtIISCCWei8+1/5NjdMpl6F+3pIBOk4Ct8d17f+0OUTcDMR4tlr?= =?iso-8859-1?Q?23FLMCuGFTxbCTJt3+26N4LmHQtYG6viVzS+GLzXgdxQCMbdRD6yUCHVwG?= =?iso-8859-1?Q?MAftjI3MxPeLuvLnY+I5DNUL2dz6iHStj0j6bEqhjHM9smXJIrcWLtZgtV?= =?iso-8859-1?Q?GyyX08r9rk+vXmOhlN7nw3YaFqgQdegAdq66Fcq7eZ5FUF6xQVKkyZmeKe?= =?iso-8859-1?Q?pj1wwG+CfPkiQjt9Rp2yIGmM0ZD4mSZzt5klVQWL1+oyQcdV3MzvzhXCwL?= =?iso-8859-1?Q?aKeHryzPHsDCvkEtQvhvCilPI0KsiMHXdFP5lkuaOfbY5TjHDGhqxIurzp?= =?iso-8859-1?Q?btbh11Dis+Zc7M6ESFrZHc5/RCRoir1N0mBO7xr43kQjck4bKNcG3cINyS?= =?iso-8859-1?Q?SPlS/mrIbRewJjxJdB0jxBUXNTVCK2a9scMjO3XMgUNqJYns0gESKzdmn5?= =?iso-8859-1?Q?bQbezudzJl+IFJEihPzvAsBF3laCMi97uRJJ+xRqgsMIEbudxdyoAUhkTg?= =?iso-8859-1?Q?mBwP4xXYhArtPRveaqqGE1q1KUAgB1vNwl43nVU5O9mSJMwPIfkOJIww91?= =?iso-8859-1?Q?0fKLaKUYn1GXe2C9CM5A27xgJfeohwgirf4ExX7rg6jHR1onjstzPl0wSv?= =?iso-8859-1?Q?3lCuVDDnQo1OWMvOvCEAmRinvLxiNgB+x3sIcS2utNUuvMbGEIhvzZB4Oh?= =?iso-8859-1?Q?hN1922+vwhIF4oXFDD+dHihmlMsBIfjgkb11QA7vMSTbYf5vVNa/hwO7Ld?= =?iso-8859-1?Q?XPqnYgyT6yHn+4Zus6X3wZtnboIE2Uotc9U0VZaq3kQ9CxBegZturMEG8q?= =?iso-8859-1?Q?Ws2THr1cel1JdvugjrU=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: c03ab540-e663-4877-7a2f-08dde9491ff0 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Sep 2025 11:17:23.1233 (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: jmz0z03rnV2PTr/GHS2rwPtNVIGj1yZf7/8QMLeDykkBTHefM7Gkeqd9s8mE5U0ZFg19paipaPGSW85nl7vqVHa+YSN5HdVx0JXLMHAfTGad5//v4RCS0RAfm3QS0c8Y X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR07MB7614 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.82; envelope-from=clement.mathieu--drif@eviden.com; helo=smarthost1.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-Mailman-Approved-At: Mon, 01 Sep 2025 09:13:15 -0400 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-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: 1756732477467116600 Content-Type: text/plain; charset="utf-8" Signed-off-by: Clement Mathieu--Drif --- hw/i386/intel_iommu.c | 55 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index 4e7ad3a290..d952ec1428 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -3386,6 +3386,27 @@ static void vtd_handle_iectl_write(IntelIOMMUState *= s) } } =20 +static void vtd_handle_prs_write(IntelIOMMUState *s) +{ + uint32_t prs =3D vtd_get_long_raw(s, DMAR_PRS_REG); + if (!(prs & VTD_PR_STATUS_PPR) && !(prs & VTD_PR_STATUS_PRO)) { + vtd_set_clear_mask_long(s, DMAR_PECTL_REG, VTD_PR_PECTL_IP, 0); + } +} + +static void vtd_handle_pectl_write(IntelIOMMUState *s) +{ + uint32_t pectl =3D vtd_get_long_raw(s, DMAR_PECTL_REG); + if ((pectl & VTD_PR_PECTL_IP) && !(pectl & VTD_PR_PECTL_IM)) { + /* + * If IP field was 1 when software clears the IM field, + * the interrupt is generated along with clearing the IP field. + */ + vtd_set_clear_mask_long(s, DMAR_PECTL_REG, VTD_PR_PECTL_IP, 0); + vtd_generate_interrupt(s, DMAR_PEADDR_REG, DMAR_PEDATA_REG); + } +} + static uint64_t vtd_mem_read(void *opaque, hwaddr addr, unsigned size) { IntelIOMMUState *s =3D opaque; @@ -3428,6 +3449,11 @@ static uint64_t vtd_mem_read(void *opaque, hwaddr ad= dr, unsigned size) val =3D s->iq >> 32; break; =20 + case DMAR_PEUADDR_REG: + assert(size =3D=3D 4); + val =3D vtd_get_long_raw(s, DMAR_PEUADDR_REG); + break; + default: if (size =3D=3D 4) { val =3D vtd_get_long(s, addr); @@ -3491,6 +3517,11 @@ static void vtd_mem_write(void *opaque, hwaddr addr, vtd_handle_iotlb_write(s); break; =20 + case DMAR_PEUADDR_REG: + assert(size =3D=3D 4); + vtd_set_long(s, addr, val); + break; + /* Invalidate Address Register, 64-bit */ case DMAR_IVA_REG: if (size =3D=3D 4) { @@ -3671,6 +3702,18 @@ static void vtd_mem_write(void *opaque, hwaddr addr, vtd_set_long(s, addr, val); break; =20 + case DMAR_PRS_REG: + assert(size =3D=3D 4); + vtd_set_long(s, addr, val); + vtd_handle_prs_write(s); + break; + + case DMAR_PECTL_REG: + assert(size =3D=3D 4); + vtd_set_long(s, addr, val); + vtd_handle_pectl_write(s); + break; + default: if (size =3D=3D 4) { vtd_set_long(s, addr, val); @@ -4722,6 +4765,18 @@ static void vtd_init(IntelIOMMUState *s) * Interrupt remapping registers. */ vtd_define_quad(s, DMAR_IRTA_REG, 0, 0xfffffffffffff80fULL, 0); + + /* Page request registers */ + if (s->ecap & VTD_ECAP_PRS) { + vtd_define_quad(s, DMAR_PQH_REG, 0, 0x7ffe0ULL, 0); + vtd_define_quad(s, DMAR_PQT_REG, 0, 0x7ffe0ULL, 0); + vtd_define_quad(s, DMAR_PQA_REG, 0, 0xfffffffffffff007ULL, 0); + vtd_define_long(s, DMAR_PRS_REG, 0, 0, 0x3UL); + vtd_define_long(s, DMAR_PECTL_REG, 0, 0x80000000UL, 0); + vtd_define_long(s, DMAR_PEDATA_REG, 0, 0xffffUL, 0); + vtd_define_long(s, DMAR_PEADDR_REG, 0, 0xfffffffcUL, 0); + vtd_define_long(s, DMAR_PEUADDR_REG, 0, 0xffffffffUL, 0); + } } =20 /* Should not reset address_spaces when reset because devices will still u= se --=20 2.51.0 From nobody Sun Sep 28 15:28:21 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=1756732539; cv=pass; d=zohomail.com; s=zohoarc; b=NIOs6hEqIguBn6aSApF4vpVswudSJUUPoqsZ3Z/EcloiOCQrqxPqrjf3czm5VsLFd9i9iaOdr/f8pmW6cDX0P+bP0KJzfnvpxSy/e1KvbR6mDQjmIxxkunifUQkSKmg0kcxW2sEImQOaDfKeqNsQQ1CaYr/hBhhpo4aedsD5X8E= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756732539; 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=2nEKqgCMR9XJgI6KHDHIt1/lPAqf787DpiW4HvPJeOA=; b=GtGhb5MJuWO0OjY0hHGB+5zi2Y4qUsWT4d9VX+m3hLmt6YSpeNfKJMIzYaS+bEqYrAU49gpz1jSp5clUe7uKMUatMA9f29hRy7/e6nxTQLKLZdgwWi7XZPqEuqrnILlhx1yqqaH1YYTSLSfWDVC15Cgpfzbd01pJfhwaSaSehEE= 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= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756732539212888.9572358181606; Mon, 1 Sep 2025 06:15:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ut4Ll-0008Hs-4q; Mon, 01 Sep 2025 09:13:33 -0400 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 ) id 1ut2XW-0004LR-Sp for qemu-devel@nongnu.org; Mon, 01 Sep 2025 07:17:34 -0400 Received: from smarthost1.eviden.com ([80.78.11.82]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ut2XT-0004mn-75 for qemu-devel@nongnu.org; Mon, 01 Sep 2025 07:17:34 -0400 Received: from mail-westeuropeazon11013070.outbound.protection.outlook.com (HELO AM0PR02CU008.outbound.protection.outlook.com) ([52.101.72.70]) by smarthost1.eviden.com with ESMTP/TLS/TLS_AES_256_GCM_SHA384; 01 Sep 2025 13:17:27 +0200 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by PA4PR07MB7614.eurprd07.prod.outlook.com (2603:10a6:102:c6::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.27; Mon, 1 Sep 2025 11:17:24 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%6]) with mapi id 15.20.9073.026; Mon, 1 Sep 2025 11:17:24 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1756725451; x=1788261451; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=QLbZveL5tR2lUE+q2IUmv659j1pVgSwc+BLIXjEPXtE=; b=gft2k2DyWaGHHyzUTmii1HlME79Slp8QwrlnD8BOQf3oFXT3dD7eDmnS x6/BA0kBDvWDW9y864JeT00stz17gVsjsxpJtvM3PkzckgjMSqzK57v7N gGL5CFTQ4EANxx79KF9Mc5+FyGx9kWk2cS5NrOgrv4dzD9zSnO85rQYJs oDZjQtzgSNwtqWDc/q5DoOJhXYc/gyv/j9n8pEwnZhy45UhALJpRRZBLC +E/p67Mv4aDbkxUqQ8emfLbfjEkUQibFyyNmm7/qqk+FrF+Op1uZzjfU2 eLepuke7LjoThGFbB0rOrk57VZSHVileEnfnWzUmjOjtIJHjPAPtikLml Q==; X-CSE-ConnectionGUID: ZeilBGHxRPK2Ue6XNfbs7A== X-CSE-MsgGUID: S7hyr95oRGa0l4qgmMgiUA== X-IronPort-AV: E=Sophos;i="6.18,225,1751234400"; d="scan'208";a="42537904" X-MGA-submission: =?us-ascii?q?MDEvOiaSgzsxrWGBNNw5IVb8KkbJY6ByIGBGp0?= =?us-ascii?q?LaMFzKw4x2ZmFKyx0QVTxtMOQg9PgpQ6F+prWFkHJcAtZ+EyYQKS9tNf?= =?us-ascii?q?YiNwZ5cEHDMj75Ym4o8uCWAUmb35P9NB5C8Z5IjEE6OE/iYY4prBx7+R?= =?us-ascii?q?CuQp3/gQ+OXnkmfY9il46gTg=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=xidqM5dUj5ha8dwMWzaYI6DfjX2IBdyT8fAxQJbmLszEXGedAvz/7UlkX9IskdOnHQYgXoJKVGH+Rd51tZZaPPkP1ejtss3UfQJOVFLqrSaoxe3cRvNqA+HKb1cSkkJBwmfDkt4Hklekm/bpZHiRS0VhM1W8ZNlGnyqDsRAtJA3qW3Pf7CFhCM43qS63SIpzrZjQbLHIxued7Q2KOlrrFtMAvjuwEHW2tJCguAcp/Q2VwlRBDe4S5nIWKSan429VAd2t368bV5/IIr29yA0mrpIhn9VdUH9030209ELpO2Q79dN19RRiNLWmI2+nuQFTMPAXUsT1kCAaDVJXc0MK5g== 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=2nEKqgCMR9XJgI6KHDHIt1/lPAqf787DpiW4HvPJeOA=; b=EYvUasectYbqRvbbemaz86nMv3+12lvPw9QEEodPh+RwyNPKS29OiKmf7EXgA613d3kOoqhqlKL0S8hk0EziXpLqECvliAE52+PmxjGuAuQxxKkqwkyKfEQoui0BjmSZfF9WJny+KGB8PR+APZ1dSXlRzabjf6kVXafTwEiSYkwXqbRletG7PTBiMurrnSKSS3G7JAtdX38bwfsQDD8e2d3MPmR7C+JRUCIP9od9BQZfUdj1fF4zXolKDx78nQ7+tsixDlLFQ4B8VxzZiXFMlZhO7aWI2OjqlZWpGVD4Gd2Ksw6Y/Mz2ZRT+9yWu+gK8hGtEQTX9WKYghRT0vLaaUA== 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=2nEKqgCMR9XJgI6KHDHIt1/lPAqf787DpiW4HvPJeOA=; b=s6SuMisgnNA5q/nwT6LB+ckC/VuVnlXpdc4Kg7sR2VT+yhitGF5T9qUcSbxjUbFu7jnbWainyCLzd++/MVfRFwPKlTpM0hBvhSphFBbrHOWOwMWxy6gO3Uu8bTC7sYF6rvFP3KKs8IjGg0Ob9dWu3ix7tdtFtw5beKX/FHVqJoFcVp4SbwWtYBN3YSDrNi/O3AG5uN6rjueucsaA9+wGKBABQP92xpPugu6KovpqsYtOSesgANvtBQ5R1LkmSLJsJE3jTRL0ZbpMWbSVDBkzm95rJRyK+NP1/n4Xpp6utV38e8aCVfgetSnrsHxsEhgiDCK+f3mWYrOQyG95KEZIxQ== From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "pbonzini@redhat.com" , "philmd@linaro.org" , "mst@redhat.com" , "marcel.apfelbaum@gmail.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "minwoo.im@samsung.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH 5/5] intel_iommu: Add PRI operations support Thread-Topic: [PATCH 5/5] intel_iommu: Add PRI operations support Thread-Index: AQHcGzH9nLem0fnInkK2eQ9NyJbFxg== Date: Mon, 1 Sep 2025 11:17:24 +0000 Message-ID: <20250901111630.1018573-6-clement.mathieu--drif@eviden.com> References: <20250901111630.1018573-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20250901111630.1018573-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_|PA4PR07MB7614:EE_ x-ms-office365-filtering-correlation-id: 0708f22f-424b-4626-adaa-08dde949207d x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|376014|366016|1800799024|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?Q?UrQR2ciwKOhIAPHRNxfljZJ727CbUOsG9nGzqpTs1kMUc9d1KTQZdPtSi4?= =?iso-8859-1?Q?XWNVplBM/dMeOp5gVWVTao4G51vVrH5EO7u/wEL7I4WNo/WXcsFg3oky8W?= =?iso-8859-1?Q?feid23DQozaSFvtRoso+GsXzdhc180DQNUuftceDA3u2D/FG1x2wxJB/f2?= =?iso-8859-1?Q?p2TBst4hTUvltJ6MlQ88ExWjwMvhqSXCyuzZFYyd+FRgr3nUxY5sdpzFn3?= =?iso-8859-1?Q?0lS7L6lQ2Jk/DpaWzyW+QJNkyesCZ5yToThJKTFiHi69n5EWEqiJNizFSD?= =?iso-8859-1?Q?Nn6yI2z3kqz7sjeD26R3UWLvfhLsDeYeV08p1xORujYMwXtoh2rQuvEMDW?= =?iso-8859-1?Q?kI4HH/0AU+St8mPklTJrTz8Bqef7BezpgU0a1ZiuoG9wsYkkKcLDkHbEU8?= =?iso-8859-1?Q?xcMp2V8QBV1ofc/s5zTC9d0BXD2hmNSr3ROZZMRnCCJrfnfvPDXc1J0tKl?= =?iso-8859-1?Q?8Rbznlc1g7WgJyDfGqj1Uo0mM5/DBcD1JIpyauutGx4WQFq6uHe+PyTtir?= =?iso-8859-1?Q?As7fi29Cm/LpBLf0UN2e80dAvenW7a+DIldsbmwgTgqRPSl2bLXR0nLemw?= =?iso-8859-1?Q?3F5hSbRLc9OtSp/Xjxg8ysuOghFLb8UKtexfovivCVS3rX9sRNni3o+Vva?= =?iso-8859-1?Q?VO07PPg9Pb/TgryO/aV8a8Of7qyb8Cgzr1XmFpLPWVml6/0fn+QBhvY4cX?= =?iso-8859-1?Q?vtmnNOLOKVUchR3v2HlwrwiMz/OsM3fSLR7fsWlCfOPww0BomK50DpF4jV?= =?iso-8859-1?Q?LL2P8Z/ad6UKmhZpv6h2R+eGhPfvPxmdkG/hhxXJCrHOc4B2GSCJ/S9Tz6?= =?iso-8859-1?Q?RK5sagapWhVP/9rlSbppkl0bZzCR3YRkdFtn4dSlg6ZF4EOKDXbnciGteX?= =?iso-8859-1?Q?wBfCrE9hZekG+5YPS4wN12bSvjpHS+ZrVUkIJrKdLDHFsuqfkTs+b+58RA?= =?iso-8859-1?Q?3MY/xVlaGPg6JeZp6C0p9lmWBRSWhYT1COaeCGVI04THuafaMqVrRrvuJw?= =?iso-8859-1?Q?viWn5RtgJS5DhMAwCeRC+G3MJ8DnwOTqFxszurzb8cdBTdXTVk9JK5CJ7t?= =?iso-8859-1?Q?yvyCeDa6JJ8Tq62c/j8M560nm9DoyS8rZbSToGTWSGPLWN55aN1POz7pVK?= =?iso-8859-1?Q?0CSipcHD3VyF9MP0mNE+zeIGH7NrowdOVrypQBJlx7sHPlik2/AOmIF9gd?= =?iso-8859-1?Q?RO+j3OTbRl6p9sQv0lEiCknFBFcbYo9sVFlu36YolxCc+cdkIxDRKXHFB7?= =?iso-8859-1?Q?ouqmyKVcnRMYI+SkzVtEQJvVgtQ3Z+gQV258HkI+wpa79QGd8um8GakzFr?= =?iso-8859-1?Q?WPIptf/j1uvgT3CRh2JXlaZMln1KL3LGrOfh991ROJCVikJmDWF1okj3NR?= =?iso-8859-1?Q?aLySFTHNexNIhefgfqeVyPHsRb4V8NkePW5IfgGYbUWi4fhLpNFGeon490?= =?iso-8859-1?Q?Ml2Yj/4Y6NfVkjmObyiZo+hpBRlnMz9X0r2IfBM8JLTUMphyBKLKTIensF?= =?iso-8859-1?Q?Q2XcEFhO6le1a/U50ljHaU0tHHD8xevC/FaHsLhhP5Ug=3D=3D?= 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)(376014)(366016)(1800799024)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?koKMYdlyrPDcwJNwLIqC756620hRS/2+q3L2aYaujkHLYeSvHsZZiFeWRm?= =?iso-8859-1?Q?Jv/jxHlFU/4kkle7bvRI7gtB15i0IISLLFXgG3398dan7rxzhOklVVDZlg?= =?iso-8859-1?Q?nqclaasSLoWd1VsIzTelDP70tg+vUMrez7sCSqnFjcu9ozvDLEF6JUaaTL?= =?iso-8859-1?Q?ILxtfae1ueIKh+i+MreHpjTg36h/P3ezfG+pfo3IAi+SlwUXfePgeND43V?= =?iso-8859-1?Q?5tl2pKkyBBXuaWKboDZG3vlBA0IUQCuHWDARcBkjlS4WPBj908ixAF0qs5?= =?iso-8859-1?Q?5W+mFHpuSb6eU5RfRf9fSQr6iwbif6pL5LC5ycSF/zptBNtfULQpAH6A2K?= =?iso-8859-1?Q?PUO8kD1oBJPi53iOHonAQbI2zFRGw++dFSpnWwWXYszeKbytmyQs+MMVIX?= =?iso-8859-1?Q?3wupj78aVHXUyDY07yeNw3/bkwsgPoxXWSexCd//iGybMGmf6wU9FCLUXS?= =?iso-8859-1?Q?xVp3uoUacb9mCw+gB94233+oqvBCJddsLHNK9Tc2kAXKX30SvfTav2/xX0?= =?iso-8859-1?Q?mAw0h/AMq6M0+2lAg87zQy3EkOEMJx+iRKeAs/WQfNBlbNr13xsI2LKGNf?= =?iso-8859-1?Q?FJyu6cqL6dq43w30m51OYLY4L3RWVK0b1GtPeqZsOW2uZ2kaWiNOB+qXsC?= =?iso-8859-1?Q?WVN9bVTY4Sae8upD0I/bB4s80zRsltu54NX4pW5K3WShyeRWoRO7BHNlBB?= =?iso-8859-1?Q?TVu0x7u1mg0rJEAxtP6/Z2vEyPucZmNusWllq0UxqVu9so+uLvrkhRgw5d?= =?iso-8859-1?Q?cxz0Jm5LWfpx8Cp0b1w59/ELImznAqzxmfFcsGhg6w6fVhrwcSraHoEdhl?= =?iso-8859-1?Q?ePo68/6V3NeA2v10GblK/zoVwnZV0PXJdebqw50JsGNZYnzCwYDoTztF4Z?= =?iso-8859-1?Q?erqrqIPq0Cd0XFQ05nNMguuhLdB4uxy62NIJ/4SrzVnJoLNXkv+tMCSsEa?= =?iso-8859-1?Q?iYE38ZHRbs6cDpHORrhD5CHyj19AmHocxTzfSegj4PB/7lCaKmtuugYgZ4?= =?iso-8859-1?Q?/5aBt8qtr/XIc1NOsLDBxppj9ARetYR6U8JgCu6+yb1dprN1MlqeKee6U+?= =?iso-8859-1?Q?h+WS6RNUcinvMImQgbhB3HnBEEWoOp5qMMF9yEo5EcsEUa3gC4ICifNXKn?= =?iso-8859-1?Q?THF5FoIdCSWe/+JV1GK72Up+dPTPG7MrFJQ4mjKwIJE01Wmhkwqu41MYpX?= =?iso-8859-1?Q?ov2VwM8/g47yQUOjyX5IlGDw1oOZSvJu8zQSnvUKaD3kjKDs/y7c1itfMW?= =?iso-8859-1?Q?cc1v+MiFUCZhxNZsxipBVx1GdqJKWxnRQ4w+GuBI3UKGJLsopotHfRDKyJ?= =?iso-8859-1?Q?FK9U1EwOwDgXGhd1zGebSplnilGa2ynrBNmlbGKrCe6WP8iDCf8JgpkcvO?= =?iso-8859-1?Q?cQx1iY7LcYOB9/CBsO7oQTfLYRyCkrT266kuyZLt5PFHGoHItYz2asfML1?= =?iso-8859-1?Q?jTMkXD7PEkhxEUBHN2pRiwb133VmVF+SCCw37dDR42SABwnM3rK8Ujp8GT?= =?iso-8859-1?Q?IjG4hpwA4m3cCmASMFBcwWaWYoJrqWmB30bRWqHPSav//uuOkLsiJvIYH4?= =?iso-8859-1?Q?eXWQVbEj0J9lUlupbuvoxkeA+2X7iRHF9FvO5OKFeUew1coWdDTevedmL9?= =?iso-8859-1?Q?pZNB++OZvukRe15R0rzO0I8rFUA9Rx8TB/ERfTLS3Kn2kMqraE+kpwDCL2?= =?iso-8859-1?Q?e+tQTri8ElCr2/ZmxTg=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: 0708f22f-424b-4626-adaa-08dde949207d X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Sep 2025 11:17:24.2863 (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: FUv5N1SQj8tPoxsVLdpzYTXH22CTrS41fhkaiAfK9kFkwzyFkehZebC65NPfhyT+iaesaa++d00WlnHtWJ4JdyA3b9nwAd9i88HF+ysDgedDq1CHrvGXLT4qLb64AJcm X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR07MB7614 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.82; envelope-from=clement.mathieu--drif@eviden.com; helo=smarthost1.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-Mailman-Approved-At: Mon, 01 Sep 2025 09:13:16 -0400 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-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: 1756732542407124100 Content-Type: text/plain; charset="utf-8" Implement the PRI callbacks in vtd_iommu_ops. Signed-off-by: Clement Mathieu--Drif --- hw/i386/intel_iommu.c | 274 +++++++++++++++++++++++++++++++++ hw/i386/intel_iommu_internal.h | 2 + include/hw/i386/intel_iommu.h | 1 + 3 files changed, 277 insertions(+) diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index d952ec1428..2cc9bd5e45 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -45,6 +45,8 @@ ((ce)->val[1] & VTD_SM_CONTEXT_ENTRY_RID2PASID_MASK) #define VTD_CE_GET_PASID_DIR_TABLE(ce) \ ((ce)->val[0] & VTD_PASID_DIR_BASE_ADDR_MASK) +#define VTD_CE_GET_PRE(ce) \ + ((ce)->val[0] & VTD_SM_CONTEXT_ENTRY_PRE) =20 /* pe operations */ #define VTD_PE_GET_TYPE(pe) ((pe)->val[0] & VTD_SM_PASID_ENTRY_PGTT) @@ -1838,6 +1840,7 @@ static const bool vtd_qualified_faults[] =3D { [VTD_FR_FS_NON_CANONICAL] =3D true, [VTD_FR_FS_PAGING_ENTRY_US] =3D true, [VTD_FR_SM_WRITE] =3D true, + [VTD_FR_SM_PRE_ABS] =3D true, [VTD_FR_SM_INTERRUPT_ADDR] =3D true, [VTD_FR_FS_BIT_UPDATE_FAILED] =3D true, [VTD_FR_MAX] =3D false, @@ -3152,6 +3155,59 @@ static bool vtd_process_device_piotlb_desc(IntelIOMM= UState *s, return true; } =20 +static bool vtd_process_page_group_response_desc(IntelIOMMUState *s, + VTDInvDesc *inv_desc) +{ + VTDAddressSpace *vtd_dev_as; + bool pasid_present; + uint8_t response_code; + uint16_t rid; + uint32_t pasid; + uint16_t prgi; + IOMMUPRIResponse response; + + if ((inv_desc->lo & VTD_INV_DESC_PGRESP_RSVD_LO) || + (inv_desc->hi & VTD_INV_DESC_PGRESP_RSVD_HI)) { + error_report_once("%s: invalid page group response desc: hi=3D%"PR= Ix64 + ", lo=3D%"PRIx64" (reserved nonzero)", __func_= _, + inv_desc->hi, inv_desc->lo); + return false; + } + + pasid_present =3D VTD_INV_DESC_PGRESP_PP(inv_desc->lo); + response_code =3D VTD_INV_DESC_PGRESP_RC(inv_desc->lo); + rid =3D VTD_INV_DESC_PGRESP_RID(inv_desc->lo); + pasid =3D VTD_INV_DESC_PGRESP_PASID(inv_desc->lo); + prgi =3D VTD_INV_DESC_PGRESP_PRGI(inv_desc->hi); + + if (!pasid_present) { + error_report_once("Page group response without PASID is" + "not supported yet"); + return false; + } + + vtd_dev_as =3D vtd_get_as_by_sid_and_pasid(s, rid, pasid); + if (!vtd_dev_as) { + return true; + } + + response.prgi =3D prgi; + + if (response_code =3D=3D 0x0u) { + response.response_code =3D IOMMU_PRI_RESP_SUCCESS; + } else if (response_code =3D=3D 0x1u) { + response.response_code =3D IOMMU_PRI_RESP_INVALID_REQUEST; + } else { + response.response_code =3D IOMMU_PRI_RESP_FAILURE; + } + + if (vtd_dev_as->pri_notifier) { + vtd_dev_as->pri_notifier->notify(vtd_dev_as->pri_notifier, &respon= se); + } + + return true; +} + static bool vtd_process_device_iotlb_desc(IntelIOMMUState *s, VTDInvDesc *inv_desc) { @@ -3252,6 +3308,13 @@ static bool vtd_process_inv_desc(IntelIOMMUState *s) } break; =20 + case VTD_INV_DESC_PGRESP: + trace_vtd_inv_desc("page group response", inv_desc.hi, inv_desc.lo= ); + if (!vtd_process_page_group_response_desc(s, &inv_desc)) { + return false; + } + break; + /* * TODO: the entity of below two cases will be implemented in future s= eries. * To make guest (which integrates scalable mode support patch set in @@ -4864,6 +4927,194 @@ static ssize_t vtd_ats_request_translation(PCIBus *= bus, void *opaque, return res_index; } =20 +/* 11.4.11.3 : The number of entries in the page request queue is 2^(PQS += 7) */ +static inline uint64_t vtd_prq_size(IntelIOMMUState *s) +{ + return 1ULL << ((vtd_get_quad(s, DMAR_PQA_REG) & VTD_PQA_SIZE) + 7); +} + +/** + * Return true if the bit is accessible and correctly set, false otherwise + */ +static bool vtd_check_pre_bit(VTDAddressSpace *vtd_as, hwaddr addr, + uint16_t sid, bool is_write) +{ + int ret; + IntelIOMMUState *s =3D vtd_as->iommu_state; + uint8_t bus_n =3D pci_bus_num(vtd_as->bus); + VTDContextEntry ce; + bool is_fpd_set =3D false; + + ret =3D vtd_dev_to_context_entry(s, bus_n, vtd_as->devfn, &ce); + + if (ret) { + goto error_report; + } + + if (!VTD_CE_GET_PRE(&ce)) { + ret =3D -VTD_FR_SM_PRE_ABS; + goto error_get_fpd_and_report; + } + + return true; + +error_get_fpd_and_report: + /* Try to get fpd (may not work but we are already on an error path) */ + is_fpd_set =3D ce.lo & VTD_CONTEXT_ENTRY_FPD; + vtd_ce_get_pasid_fpd(s, &ce, &is_fpd_set, vtd_as->pasid); +error_report: + vtd_report_fault(s, -ret, is_fpd_set, sid, addr, is_write, + vtd_as->pasid !=3D PCI_NO_PASID, vtd_as->pasid); + return false; +} + +/* Logic described in section 7.5 */ +static void vtd_generate_page_request_event(IntelIOMMUState *s, + uint32_t old_pr_status) +{ + uint32_t current_pectl =3D vtd_get_long(s, DMAR_PECTL_REG); + /* + * Hardware evaluates PPR and PRO fields in the Page Request Status Re= gister + * and if any of them is set, Page Request Event is not generated + */ + if (old_pr_status & (VTD_PR_STATUS_PRO | VTD_PR_STATUS_PPR)) { + return; + } + + vtd_set_clear_mask_long(s, DMAR_PECTL_REG, 0, VTD_PR_PECTL_IP); + if (!(current_pectl & VTD_PR_PECTL_IM)) { + vtd_set_clear_mask_long(s, DMAR_PECTL_REG, VTD_PR_PECTL_IP, 0); + vtd_generate_interrupt(s, DMAR_PEADDR_REG, DMAR_PEDATA_REG); + } +} + +/* When calling this function, we known that we are in scalable mode */ +static int vtd_pri_perform_implicit_invalidation(VTDAddressSpace *vtd_as, + hwaddr addr) +{ + IntelIOMMUState *s =3D vtd_as->iommu_state; + VTDContextEntry ce; + VTDPASIDEntry pe; + uint16_t pgtt; + uint16_t domain_id; + int ret =3D vtd_dev_to_context_entry(s, pci_bus_num(vtd_as->bus), + vtd_as->devfn, &ce); + if (ret) { + return -EINVAL; + } + ret =3D vtd_ce_get_rid2pasid_entry(s, &ce, &pe, vtd_as->pasid); + if (ret) { + return -EINVAL; + } + pgtt =3D VTD_PE_GET_TYPE(&pe); + domain_id =3D VTD_SM_PASID_ENTRY_DID(pe.val[1]); + ret =3D 0; + switch (pgtt) { + case VTD_SM_PASID_ENTRY_FLT: + vtd_piotlb_page_invalidate(s, domain_id, vtd_as->pasid, addr, 0); + break; + /* Room for other pgtt values */ + default: + error_report_once("Translation type not supported yet : %d", pgtt); + ret =3D -EINVAL; + break; + } + + return ret; +} + +/* Page Request Descriptor : 7.4.1.1 */ +static int vtd_pri_request_page(PCIBus *bus, void *opaque, int devfn, + uint32_t pasid, bool priv_req, bool exec_r= eq, + hwaddr addr, bool lpig, uint16_t prgi, + bool is_read, bool is_write) +{ + IntelIOMMUState *s =3D opaque; + VTDAddressSpace *vtd_as; + + vtd_as =3D vtd_find_add_as(s, bus, devfn, pasid); + + uint64_t queue_addr_reg =3D vtd_get_quad(s, DMAR_PQA_REG); + uint64_t queue_tail_offset_reg =3D vtd_get_quad(s, DMAR_PQT_REG); + uint64_t new_queue_tail_offset =3D ( + (queue_tail_offset_reg + VTD_PQA_ENTRY_SIZ= E) % + (vtd_prq_size(s) * VTD_PQA_ENTRY_SIZE)); + uint64_t queue_head_offset_reg =3D vtd_get_quad(s, DMAR_PQH_REG); + hwaddr queue_tail =3D (queue_addr_reg & VTD_PQA_ADDR) + queue_tail_off= set_reg; + uint32_t old_pr_status =3D vtd_get_long(s, DMAR_PRS_REG); + uint16_t sid =3D PCI_BUILD_BDF(pci_bus_num(vtd_as->bus), vtd_as->devfn= ); + VTDPRDesc desc; + + if (!(s->ecap & VTD_ECAP_PRS)) { + return -EPERM; + } + + /* + * No need to check if scalable mode is enabled as we already known th= at + * VTD_ECAP_PRS is set (see vtd_decide_config) + */ + + /* We do not support PRI without PASID */ + if (vtd_as->pasid =3D=3D PCI_NO_PASID) { + return -EPERM; + } + if (exec_req && !is_read) { + return -EINVAL; + } + + /* Check PRE bit in the scalable mode context entry */ + if (!vtd_check_pre_bit(vtd_as, addr, sid, is_write)) { + return -EPERM; + } + + if (old_pr_status & VTD_PR_STATUS_PRO) { + /* + * No action is taken by hardware to report a fault + * or generate an event + */ + return -ENOSPC; + } + + /* Check for overflow */ + if (new_queue_tail_offset =3D=3D queue_head_offset_reg) { + vtd_set_clear_mask_long(s, DMAR_PRS_REG, 0, VTD_PR_STATUS_PRO); + vtd_generate_page_request_event(s, old_pr_status); + return -ENOSPC; + } + + if (vtd_pri_perform_implicit_invalidation(vtd_as, addr)) { + return -EINVAL; + } + + desc.lo =3D VTD_PRD_TYPE | VTD_PRD_PP(true) | VTD_PRD_RID(sid) | + VTD_PRD_PASID(vtd_as->pasid) | VTD_PRD_PMR(priv_req); + desc.hi =3D VTD_PRD_RDR(is_read) | VTD_PRD_WRR(is_write) | + VTD_PRD_LPIG(lpig) | VTD_PRD_PRGI(prgi) | VTD_PRD_ADDR(addr); + + desc.lo =3D cpu_to_le64(desc.lo); + desc.hi =3D cpu_to_le64(desc.hi); + if (dma_memory_write(&address_space_memory, queue_tail, &desc, sizeof(= desc), + MEMTXATTRS_UNSPECIFIED)) { + error_report_once("IO error, the PQ tail cannot be updated"); + return -EIO; + } + + /* increment the tail register and set the pending request bit */ + vtd_set_quad(s, DMAR_PQT_REG, new_queue_tail_offset); + /* + * read status again so that the kernel does not miss a request. + * in some cases, we can trigger an unecessary interrupt but this stra= tegy + * drastically improves performance as we don't need to take a lock. + */ + old_pr_status =3D vtd_get_long(s, DMAR_PRS_REG); + if (!(old_pr_status & VTD_PR_STATUS_PPR)) { + vtd_set_clear_mask_long(s, DMAR_PRS_REG, 0, VTD_PR_STATUS_PPR); + vtd_generate_page_request_event(s, old_pr_status); + } + + return 0; +} + static void vtd_init_iotlb_notifier(PCIBus *bus, void *opaque, int devfn, IOMMUNotifier *n, IOMMUNotify fn, void *user_opaque) @@ -4905,6 +5156,26 @@ static void vtd_unregister_iotlb_notifier(PCIBus *bu= s, void *opaque, memory_region_unregister_iommu_notifier(MEMORY_REGION(&vtd_as->iommu),= n); } =20 +static void vtd_pri_register_notifier(PCIBus *bus, void *opaque, int devfn, + uint32_t pasid, IOMMUPRINotifier *notifier) +{ + IntelIOMMUState *s =3D opaque; + VTDAddressSpace *vtd_as; + + vtd_as =3D vtd_find_add_as(s, bus, devfn, pasid); + vtd_as->pri_notifier =3D notifier; +} + +static void vtd_pri_unregister_notifier(PCIBus *bus, void *opaque, + int devfn, uint32_t pasid) +{ + IntelIOMMUState *s =3D opaque; + VTDAddressSpace *vtd_as; + + vtd_as =3D vtd_find_add_as(s, bus, devfn, pasid); + vtd_as->pri_notifier =3D NULL; +} + static PCIIOMMUOps vtd_iommu_ops =3D { .get_address_space =3D vtd_host_dma_iommu, .set_iommu_device =3D vtd_dev_set_iommu_device, @@ -4914,6 +5185,9 @@ static PCIIOMMUOps vtd_iommu_ops =3D { .register_iotlb_notifier =3D vtd_register_iotlb_notifier, .unregister_iotlb_notifier =3D vtd_unregister_iotlb_notifier, .ats_request_translation =3D vtd_ats_request_translation, + .pri_register_notifier =3D vtd_pri_register_notifier, + .pri_unregister_notifier =3D vtd_pri_unregister_notifier, + .pri_request_page =3D vtd_pri_request_page, }; =20 static bool vtd_decide_config(IntelIOMMUState *s, Error **errp) diff --git a/hw/i386/intel_iommu_internal.h b/hw/i386/intel_iommu_internal.h index 04a8d4c769..0d0069a612 100644 --- a/hw/i386/intel_iommu_internal.h +++ b/hw/i386/intel_iommu_internal.h @@ -315,6 +315,8 @@ typedef enum VTDFaultReason { * request while disabled */ VTD_FR_IR_SID_ERR =3D 0x26, /* Invalid Source-ID */ =20 + VTD_FR_SM_PRE_ABS =3D 0x47, /* SCT.8 : PRE bit in a present SM CE is= 0 */ + /* PASID directory entry access failure */ VTD_FR_PASID_DIR_ACCESS_ERR =3D 0x50, /* The Present(P) field of pasid directory entry is 0 */ diff --git a/include/hw/i386/intel_iommu.h b/include/hw/i386/intel_iommu.h index e95477e855..47730ac3c7 100644 --- a/include/hw/i386/intel_iommu.h +++ b/include/hw/i386/intel_iommu.h @@ -110,6 +110,7 @@ struct VTDAddressSpace { QLIST_ENTRY(VTDAddressSpace) next; /* Superset of notifier flags that this address space has */ IOMMUNotifierFlag notifier_flags; + IOMMUPRINotifier *pri_notifier; /* * @iova_tree traces mapped IOVA ranges. * --=20 2.51.0