From nobody Sun Apr 12 13:40:22 2026 Delivered-To: importer2@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+importer2=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=1714663924; cv=pass; d=zohomail.com; s=zohoarc; b=WPLtMRZJcdDuYu8QlvJ9P60TTFRFm54lu53HxLQdA+xEO84kkYm0pQ9941clFbikFHz2MQjsPxQwCEACl0886lFnK5YUPOvkNewOd9NiiP2SaISBK4NCzZjqvPFuw02yxMIooEJISPZrEKomiB1aTnjO2XPv4fAKvf15A3KobnM= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1714663924; h=Content-ID: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=oYY4iC6hjphMuWFvN9OX+COHJCqK87uXfmgSAcUtRSw=; b=OikxlLCqXBt2rlqkk7YPk6xSsCrDMQLd8LJqanyo6/Lsq4it44d8bhqnBI2r8u9qpGhHRDyvf2hYTl7FPUt4KS8Ei0ON3Ra0LlrNqVDEcXvZCBRHy2hTtnOlY8TiweaKjvXpUlV8rN3adl8gx1q35w5RRajknE5vo5vkGPJOPYU= 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+importer2=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 1714663924460667.8940334608084; Thu, 2 May 2024 08:32:04 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s2YNR-0003jQ-II; Thu, 02 May 2024 11:29:41 -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 1s2YNO-0003is-UJ for qemu-devel@nongnu.org; Thu, 02 May 2024 11:29:38 -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 1s2YN7-0005yW-IU for qemu-devel@nongnu.org; Thu, 02 May 2024 11:29:38 -0400 Received: from mail-db8eur05lp2104.outbound.protection.outlook.com (HELO EUR05-DB8-obe.outbound.protection.outlook.com) ([104.47.17.104]) by smarthost4.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2024 17:29:18 +0200 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by PAWPR07MB9661.eurprd07.prod.outlook.com (2603:10a6:102:389::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.29; Thu, 2 May 2024 15:29:16 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.7519.035; Thu, 2 May 2024 15:29:16 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1714663761; x=1746199761; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=oYY4iC6hjphMuWFvN9OX+COHJCqK87uXfmgSAcUtRSw=; b=Ddb6FRHYZuYx5VUDYe6KkooBN4fbur6fWp6XXmLFMB3lp8j6rE5N9Ai+ 6A5CSHDOPbb4qXCII/58D4lAFFZ7zPPosuL2+vvuQiOgXH2JqILREr7tM FDUt/TYrseouLLX8NhpvhfQYQt0RuXzcmadvydlVXLkTJCDbrrLEQwAga E5iGEa9AyEHqAAI4xP3gCRE8b1tcEXcyNQcMJNd/3Ute/pKnCK9NgomMA jluQHLcYzb47U4s99rxRjdQtOeQbazkn6VacRe8X/NdMEvLMY3c7jeamN X019ejIA1KqvS/pKa/bqQ9pXkUOTkPKfTk49myWqma4CWEP0M/2xIq7Cp Q==; X-IronPort-AV: E=Sophos;i="6.07,247,1708383600"; d="scan'208";a="11785873" X-MGA-submission: =?us-ascii?q?MDF8Q9DlUIYTKsz+pBjeCGQyjvrr6JjMUajRvq?= =?us-ascii?q?7Y/DbALCLgYUmj9qkm5+DniX0PZrxU6BpJ6AsGzqVuPGwnDyPdIp6POL?= =?us-ascii?q?S7J/3qdvoeL6Q71EX4RcoivuYEuGtffC0i9u6YLBsEY35rlJ6s18nhoF?= =?us-ascii?q?BUcH/WND7rOh/pi9oMe0HaQA=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mHmDtf0seW53LOY+6dsTfcU7/DD7mAxBozNvm6kgbYPlLsB4Gy//TyDmMa/ADZLYZWOwS6cGYnA8ny7bfU3D1QLvVfoHA1whGv8gKBkk0ayTh/hLXktu2nTizVBGUBPECIea+WE+P05KOnzyaRnbty3hGqOYwKLSMVHjQegJyWMYsfqBZTcOxMY39LrjLQeqIlS3UkalR9bmTOS1AeYAjAxKgs3blIB5eJOwDoedvlBfpkEbD8yAkTT1+eJgcqIjS2SL48XlCQf3oIIOTWPusUm8AFaAlKtR7OUh8SaYHx566VlU1y8rdIDObN9cFetBKja4+ngGFaMeZz/kcAZa0Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=oYY4iC6hjphMuWFvN9OX+COHJCqK87uXfmgSAcUtRSw=; b=dNkrrwQTPp3AJmHBacvNA0+dl/dqc3O5/fqiqitlQbLz9jASXn8zm2NmqfdFwIwqESO1M71t0dp/17CdU3hTeJX6zBFt+Dwv09mZVWluYk0m8Q3V4QcUjEgWXvpcxJTaRUo8aonaPwkc9whoYbCNGpRnHS1G1VSIYyOPywWs+PfQQJj3WvSeBQs/3SGQd975/V6EFw/b0HsblLU3Y1r2hckqcvhbPW+L1VRh+HOmgtGdSUr/0aiVtHbzMhrUkfv0wbtCasKywQNQjJMD88jDpyNxOixxwXPD62UguRLsdRFxQdXJL+6Xnyl7rGWSWQtTIAqrLp7QHk9CoQxwop8lKA== 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 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v1 01/24] intel_iommu: fix FRCD construction macro. Thread-Topic: [PATCH ats_vtd v1 01/24] intel_iommu: fix FRCD construction macro. Thread-Index: AQHanKV+0oFxZ/mIHESjydUfkcyb3w== Date: Thu, 2 May 2024 15:29:16 +0000 Message-ID: <20240502152810.187492-2-clement.mathieu--drif@eviden.com> References: <20240502152810.187492-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240502152810.187492-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_|PAWPR07MB9661:EE_ x-ms-office365-filtering-correlation-id: 85d91a4d-d423-475c-3ff5-08dc6abca121 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230031|366007|1800799015|376005|38070700009; x-microsoft-antispam-message-info: =?utf-8?B?M1ltRnY2MlF5WEpYTGppWURnaGJKNE83Mm5NK3A0U2VhZWsvT1lsWkpGTTE2?= =?utf-8?B?bS9IVGtMUXFmcnZYNnppOUViK2h3OFdReDkxalE2ZGtRbXVkMWp2RzVBQVV5?= =?utf-8?B?a2g2RE5JaW9Ua05xV1JLY3dkVGJsYnZ5NEtiSWpVMHdGanNkaWhNMk95dmc2?= =?utf-8?B?MXp6NnZZQXRKTnk5SWxQb0Nld2pxdFlCVzU5S2Z6alhDaXlWK0xQME5KNHZu?= =?utf-8?B?ZXAvOXlYWTk0Yld0VVhld0o1WlBWaEJESlBDck83RlN1N3F4ZGRIUWw4VVEw?= =?utf-8?B?eXJHeFBBemY2MXArRjdGT1ZYVXZZMURNaHZDMzc4MWJHZW8ra0o3dEtUdWNE?= =?utf-8?B?M1cvdjBWN0dVNkpLQnN4ZTNSZkhmaU9hZzFjUE9ZWlJUTTI4VjN0bDA5N1hP?= =?utf-8?B?M2hzbXRsRFBtZE1BT1VYNkkvN3k1SzkyM3NNb1owcHd0RytPOTRBM0QwVm11?= =?utf-8?B?RjRSZGltV2dSNi9Tb3VSS3JGRnZON3AyUUVVcWtWLzYzS1hITmhKc3MrSDhM?= =?utf-8?B?WEthTGE1ZWZZd3FsVk9FVWcvYTVma3F2RUJDRm8yell1ZGdkTTlqYkhhSThZ?= =?utf-8?B?QTYwLzV2bmlXdm1SWFgyUzRrWnh3cWIrL3hxQ3RtVVNMUGRHY0ZQd2F2RzdT?= =?utf-8?B?cTRKZzQ0OTJlUHRUd2ZPNGZ5Z0VXR2w0U3VNOVErUEJja1pwRE5wWEMrRm1J?= =?utf-8?B?MGlsQkNTeGFDS3VKazI0UlpqT0UySVNtTUh4ZXZIdE5DaTk1RW5ieEdkbkNw?= =?utf-8?B?V0RXL3RiOExqK3N1eUozbXRSVzFlek8zUmNZV1J4bGFoejFHNnIwWlc1ZUVG?= =?utf-8?B?dDdnN01QNjBBNXk1MzQ3VndpTlllZjgzVE5sbXordEJnNnNNZ3FZNzhIOEFO?= =?utf-8?B?dG5MeE8rSXJiM0owSGx1dmcxQm1qUlpWNXRkYVl4SFAwdTAzMEsrUXgzV3JR?= =?utf-8?B?Qm56U0Z2MmlMU3c2UllUeW95U1VSTVVvZGhMZU4vTkx2UWk3OTJiTDFKSXZC?= =?utf-8?B?RXB0MHpZOVl5M2I4TWx5bS9ucVlremR0S0orM3BZU3JlMUFJMVlua3VWaHpV?= =?utf-8?B?K1V1QjVsTVhCYndqYlQ1bkJYZ2dWNWxwZlJ6MHlITGZBQis0QWM4UFAvWUdF?= =?utf-8?B?bmFjUkJ0a0YxL0N0STBzTVZlVEllMVp2b1lMMEpJeE9adkpoNWhtYjBZZ090?= =?utf-8?B?MGc0UER2YXNocGUwWjdRdDNCejlxblVMbSs2dmdVQkoxV0NmbjdBQ21xU1Fy?= =?utf-8?B?V2poU2VMdndVbyt4LzJjekliRmpBMnZvam9oVHVJd0xMSlpCQ3hsZjYzWUR4?= =?utf-8?B?cE5UTHhMTFFuT1pxd1p0R3YvY1MwY0lsZFFpMi9NWWVYcER5cnhBNHlmS2Ru?= =?utf-8?B?UG0zb3M2Z29Vd3JBMzNCaUg0RDR2RDdIM3c4M2NnYmhLT2dXb3l3NzRGbFRV?= =?utf-8?B?M3dxNWhnMU1jd1lPQ0ljYzlyWW5HTWJISlcxN2lWbmVsbHdpYTZFRnE1bU5a?= =?utf-8?B?MFh1OFVlcXdzaFUzdGR5NFBXUUtKMVorNjg4M3c4MHB4cTFPM3FDcXpyTjgr?= =?utf-8?B?S1JaaEJGRWlROXJsdjRVb2tkSjV4Y1FEZXVnRGZ0YTh1cUkybFJOdWVZUFRL?= =?utf-8?B?Wk1JWW9YSFpuaHZlalBETlRMd3RsS3dDU0FhVnFNZzgrbk11MHFRa0VPbnc3?= =?utf-8?B?dDNKVSt0ZS93eFQ5cU56M3d0S1l1ZjNRNnowTEl1bFVEVno2K0M3S2ljeVEy?= =?utf-8?B?V3Y5Y3lsVlVWNFIreklvU2hpMGZSaDFxTHNsVlFQbVdzczVtRUkrbHJ5VDFT?= =?utf-8?B?TjdKQ2owcytYTVBNTThXdz09?= 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:(13230031)(366007)(1800799015)(376005)(38070700009); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ZGtwSjVyRzhpZkEyMTBJUHpreUJydGpTRURrb3VqS1hPU2ptVmwzYnY4bVli?= =?utf-8?B?T0sxTjkrSkVENE9rSzQ1dEUrTjlGTWRUdVhmSSthS2FyT0N4c1NrSDFaTkhi?= =?utf-8?B?VG5LZlliMFdBQVhDbTEzUmJOdC8vVFFNV3dtREMwOHlwUU5CSUJVMk1nV0to?= =?utf-8?B?UzRqYUdEa2dXQkhqUkd2eW16amFPU2J2eld6bHhXK2J3eHRrNkxmVVBXVHU1?= =?utf-8?B?ZklWRnBNTGp2SWd4S3o3QmpCbVZITkt2NEpyV1ExeWJJTERJNFNKODQ2WUQy?= =?utf-8?B?czB6WFlYVFdINm1uY0xpMjhkdTB0ZGVIMmNoUGNla2dsRXpaWmU0QloydHI1?= =?utf-8?B?d1d5d21xWFdqTHhIY1kyakQxcTdUM0VBVFBZeVQ3c2VyT1dIY2RSelUyNXZv?= =?utf-8?B?UEhqT0tBc2F4OG84aEorNGtiVjc3MGRNVFJlVlF3QkNLOS95R1czUXhvU3ph?= =?utf-8?B?Z1ZRZUwvdlM5Vm95V251aWVSUzkxR0VxcmJkQXRNeXRFbVZTemY5dlFxcENz?= =?utf-8?B?ZzF0NmJmZ3NPeWJPeDdudXZtTU1mUmcwcGU4RXZ2TlN4NVo4ZlBDOVBMbDZO?= =?utf-8?B?dmVPVTNaMThwNFRObmExbUlMNEZtOXBVMW04RGRTOE8ybnVHcTRoZ3ZOTjJn?= =?utf-8?B?TjZidWlUTzdqOVhqTk5ERVQ3ZnRFRmdIOHdlQ0hmTjVQU1VrcmFETklnSEpY?= =?utf-8?B?M0lnWTE1UnlPcU5wRDVNU1JtNVpQcHpRcTJESU04UTUxbE1ocnREbVo5SGRN?= =?utf-8?B?RlJGOEtwbm9XV0xqV3FKb2N0ZmZuWldLVkJDR0dLUkdRekZuYUN6aEh4c1hH?= =?utf-8?B?dmEwaEVLSDZBSjhNZEh6aTdJWVpXVzJmNW8zVlB3SHhhWFF1T0VGYTlLRWJJ?= =?utf-8?B?cjFJTlBPVStoYnF5NnJpYWpwZy9DZWRSd2t2OVRtUmZYZFlMWk9kWG9Jb2Fo?= =?utf-8?B?Tk9jNVljN1lOM1QvendaRnhOdXM0cWlqUW1pbVJYTFhLcGZDQzM0U1FDaVhL?= =?utf-8?B?QnAxOWR2WG81WndIb1N5NnhIWjJib0U3TTdqbCsrUXZIVnJnSVNXeGpUL1kr?= =?utf-8?B?bDQyaTJyMUk4dHR2L3lkbVRTQytOeGNqK0lMZzNHWXE1bURCaURMaU9WQ1Vx?= =?utf-8?B?STZpeHNOOTRpVTRpNnRhNWtCOXZSK3NCc1lFQ1NBR00zcm52T2ZJZDRLWmc4?= =?utf-8?B?RVYyVXdvRG5hbUVlRUVqeW51ajk5S0thMmx1VCs1dmhzOTFzRDh5ZE9WeHN6?= =?utf-8?B?STI0Yjc1UTc5ZUcvYVZCREZRMnQwWWFYR0VQVWgwNGhDSTYrNy9zUkZFaWVt?= =?utf-8?B?eS90OXBuUkdBMU1yTFQvR3cvVmhIZXhhdlZXN0o3RGZ0dVFPOElPNWloNTZv?= =?utf-8?B?RllGUHMzclArYmNSQXJ1R2NHZkkwNDBXOWt2NXQ2Q21XaTJYTzI2S1hvbXVi?= =?utf-8?B?eUVORXZGYWVaZzl1SUtEVUUxdWlSUDVVTnJsdExCc3N3aVZKNzgrUnQwMlJI?= =?utf-8?B?WU5ML0hadGRuRGdZTUhSR0hzblZzRlM1Ulo1dmVncklyd2JNUjd4T1ordWVI?= =?utf-8?B?Ujkzd3d0S1l1eDIzNks0ekRsYklPaUxFSVRGWXBEc2dVSDQ0Z0xoaCszeE55?= =?utf-8?B?eEY1VlNJb2lpcGxtK0cycm1VWU4xZHBwUm16bjBQcXlIZ0U1cWFqYTVNamFR?= =?utf-8?B?cEVxZDF6dzJzTWJxZXAybEpSQUZVemNhUU1BTFl0TjN6TXBXUHFEOWU0QmlM?= =?utf-8?B?L3p3NUF6ZVJGOXVLNFF4WmIvOCsyYTNzU2l2dDE5ZXdkUDkrSzFXMFc5S21P?= =?utf-8?B?MVZ0NTJ5WGlEMXpLY01GN0s3N0FzTlJoRG5sK2piUlpmaDVFalN2SU1TTDZJ?= =?utf-8?B?N0tjN1hvSWp6ajNaUWFjRXdzTVRCN1JWOVhqR09tQXB4QkFVZVNQbXcyVTZW?= =?utf-8?B?ZUtSaFQxWU41SVVVUDVQem5LVVByd0NVb3BCaUdKUUQ3NnFwMjlENFdGRXVT?= =?utf-8?B?RW5aRm0wRURVVWticFBLU0FXSEoya2l6NkNsNngzWHk4ekJGYld0RWU1TTNj?= =?utf-8?B?SGkxNDAxaGIxRkhuTi83eUFJUDBmdDhWMTh0dmFPR1hSQUhhcnJxOWVkcUxM?= =?utf-8?B?WnVzRFd5YXpqMUVrSVUzMXl6YkRFMUY2cmMwNzVOT1J5a2haTUR5cjVwNGRt?= =?utf-8?Q?0XofeQzjiBZI+ll+8lTAUTI=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <2B98B1588D36FF47BED2BD79AD3B541A@eurprd07.prod.outlook.com> 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: 85d91a4d-d423-475c-3ff5-08dc6abca121 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 May 2024 15:29:16.8837 (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: Z8DOwWigbMDGLj4xN4StLBfzSumIWQ5LPimZH13ofL3g45AJwzo0TTmlZn3hJfHnL+CwFY/GX+tpIASbi5l/tSaOPj7XPrDh19SHjIqalBHXG5R9y5OCotT5XhLlNmQq X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR07MB9661 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+importer2=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, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer2=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer2=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1714663925053100001 The constant must be unsigned, otherwise the two's complement overrides the other fields when a PASID is present Signed-off-by: Cl=C3=A9ment Mathieu--Drif --- hw/i386/intel_iommu_internal.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/i386/intel_iommu_internal.h b/hw/i386/intel_iommu_internal.h index c5efcff9fd..4f6b0154b5 100644 --- a/hw/i386/intel_iommu_internal.h +++ b/hw/i386/intel_iommu_internal.h @@ -271,7 +271,7 @@ /* For the low 64-bit of 128-bit */ #define VTD_FRCD_FI(val) ((val) & ~0xfffULL) #define VTD_FRCD_PV(val) (((val) & 0xffffULL) << 40) -#define VTD_FRCD_PP(val) (((val) & 0x1) << 31) +#define VTD_FRCD_PP(val) (((val) & 0x1ULL) << 31) #define VTD_FRCD_IR_IDX(val) (((val) & 0xffffULL) << 48) =20 /* DMA Remapping Fault Conditions */ --=20 2.44.0 From nobody Sun Apr 12 13:40:22 2026 Delivered-To: importer2@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+importer2=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=1714663943; cv=pass; d=zohomail.com; s=zohoarc; b=GzT20GGMKKp7J1Eb3d9OpLwFxaCg7zglrZqZ0ou8xqaLClGKrAWhmKxmHYqoraQnos7Q3ooBKAyZDvTi/Q8TP1MZjId9sMKewGUDR1WLOrJsxWbeD3/do6cUbVOR+LU+78xCCtf43SJbj4SHXGUyTVDGlZ45bu9V3PP2HZq73vs= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1714663943; h=Content-ID: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=PMN2/YZ4hr8ioAnlB9SWX5lZ5wPmzGuhK2ljrPklk+8=; b=S+w6GZUWMwjzZUkIUjoik/M9Pnk0Ks4JpRQfssW0DOwi1LCsnRaBwairTge26sLjocMY5Sf20TXr3v7oM77ufh9W1aEhOif3N5nM6YSzD4lr+fPDb8XvWXdsawQxiKEyzuMBIrmMftPFQOpneUN9AbpfiqY000FE+5yUF9IbYSQ= 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+importer2=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 1714663943529255.4945112959224; Thu, 2 May 2024 08:32:23 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s2YNI-0003fG-Cy; Thu, 02 May 2024 11:29: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 1s2YNG-0003db-0G for qemu-devel@nongnu.org; Thu, 02 May 2024 11:29:30 -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 1s2YNB-0005z0-Uk for qemu-devel@nongnu.org; Thu, 02 May 2024 11:29:29 -0400 Received: from mail-db8eur05lp2104.outbound.protection.outlook.com (HELO EUR05-DB8-obe.outbound.protection.outlook.com) ([104.47.17.104]) by smarthost4.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2024 17:29:18 +0200 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by PAWPR07MB9661.eurprd07.prod.outlook.com (2603:10a6:102:389::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.29; Thu, 2 May 2024 15:29:17 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.7519.035; Thu, 2 May 2024 15:29:17 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1714663766; x=1746199766; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=PMN2/YZ4hr8ioAnlB9SWX5lZ5wPmzGuhK2ljrPklk+8=; b=LfYj3qWUWMQfn8hDwFLQp5aoQFHb8qE3vpOoe1AFMwPIVcCrA37lW4NV +vvHXxZo6ZCY41hk1sKRTYX2jJ5OFhFyDEZCoSM9P36rRu90EqTLVwPW0 2+Hlqz6Mq9YYppWsKTFMI52mG8HouvrVmqzBqKLqJmnRIQ5tUyadBrKcM 4IWvN2dAIsu7ZXNgbcWHX91pOnBVeIywJcmSnB9GvNRzvIErfgXsVOaQX u8bOPFFYLRmu3Za3YX54xvhlYMpr5P59V0aim3KkiKnHFc5QYydBnpDfR AQBEBqzmQuCmA4O9mnt00Wul9jr5FInh2b3JgjJtQUDfsFehJuchHtS1O Q==; X-IronPort-AV: E=Sophos;i="6.07,247,1708383600"; d="scan'208";a="11785874" X-MGA-submission: =?us-ascii?q?MDEQ6+YV/wSmIPgAVcEG9NT8iFl5dXWIwJMnMk?= =?us-ascii?q?JaFz4GI8QYyM9c9bObEQSf9FRTGeGXQDn/IIPbzwCdfVmnqN20uyfcFx?= =?us-ascii?q?S1gJvR5ZMFJ4gfuPdip0Mub6zRJwPFx9MV03GTETU7e738+JSpGlgx9c?= =?us-ascii?q?dEt/0TjHWUFoPU3UabGmPF/Q=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=O0c5BYN+8d9hJ6wDwoLkxFFRZf+TcXqGypw4BxrGRDQrcEkyz5bn7H2xLysjghagX8U8I3Imm0XmnjxsOypprd5IA9aLAFhjsrtcxDhneytudKDPPj4CtfBYlDXUYIyyeCKP3mFR/KoJyNWcy6KLSJs2lwuSySrwp+qcB3IqPYKgjlUexd6BddYxbLhqOfQKBBU7ZGQ/x56iIC1Jmv1LwzmDJhncM4LxoXkZESFQOEwM1XSk62SQfY2SWfPPt29FI8H5pHOByabIiX+G0l8W+N6X+BQv4oAC+1LyqTscDecVV4gcoN8lNeHMnaQQqPMimYTTlRBE1ExAxi4KF/UBTw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=PMN2/YZ4hr8ioAnlB9SWX5lZ5wPmzGuhK2ljrPklk+8=; b=DKmf2fCSQtrm+A2eIxj0SNL/9oo4rszlMvSorqfgx/peaK28ZG98YK5gsFu9kjsfIqAZPXhHCrdxThNCOBfGoYwmkiG9M81gTqWBGOZ3B88OQ5+Z3BqzdatbN6Y+MVtFOd4HAC0tJ6rmiKgIvUMPjSEN4xXY7ngA3Xo6UcIZ488V3SCUJhuSyG8yHj2+Cri91z9L0m8j/ec2zhxVoSdTK2eqBm49kBsindgHbec2mjYJestvMUZvPK/Hr3WbwcX/kayPyIZDbBIOEsvrunfvp50u+mrVbhfTbMD6DxyTE/5bgnBMxpykDR7ONa3ooYG2OsNEeXdfeXkihAYkreNyIw== 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 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v1 02/24] intel_iommu: make types match Thread-Topic: [PATCH ats_vtd v1 02/24] intel_iommu: make types match Thread-Index: AQHanKV+D17/DXjLQk22A8eEISz9PA== Date: Thu, 2 May 2024 15:29:17 +0000 Message-ID: <20240502152810.187492-3-clement.mathieu--drif@eviden.com> References: <20240502152810.187492-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240502152810.187492-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_|PAWPR07MB9661:EE_ x-ms-office365-filtering-correlation-id: f2adef8a-e8a1-4d6b-8da2-08dc6abca13d x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230031|366007|1800799015|376005|38070700009; x-microsoft-antispam-message-info: =?utf-8?B?RzMxSFA2ZERHbWdzcDR2ajdQa1FBTjNMODkwRGlGYWVFc3dvY0VJcW54b2lP?= =?utf-8?B?L3JkM1NRZXVZQWg2YlNZOEV3cWxHMEtTeFBzeFJ3M1VoZ0dNOTRheXk4TDJ1?= =?utf-8?B?TkZhWjVqaXpnVkI0eWpqa3NWSWNHSGd1a1g0azk4aWk1Q0Uvc3BMSDh5dzdG?= =?utf-8?B?aDVvWTA5clV6b1lGR2lNWVZJMThtTHQ3UnNQUU5leFRWODNjY3R5WVRLc1BF?= =?utf-8?B?aUVrSHZBODl5QXZCakFobWcrNWRHNkdIcVQ2YkJTS2M5c1owR2tqQ2VxQU5j?= =?utf-8?B?NVN3YnJzY2xEb1ZBSy9yV3RDclJ6ZnQxeDM2OVVGL2hHeFZKVGM3bnBwbWdG?= =?utf-8?B?R0xubnRTSzc0U01pOW1ibTJBWFdvQUlVUUYva2FmYTNYSWIza29vQUhHdzVq?= =?utf-8?B?azdyOWFuMVhWWi9xb1BreGkxNTNqY3Y3TlVDV0czYWR3SzNTSmd5cnZVK2Nz?= =?utf-8?B?SUpGalJaMWJOYW1heG1PMXBUaittN21sZmQ5ZEZkOFdVZmxDVU9yNVIzZTNS?= =?utf-8?B?cExQbjZYS0YxZXhPTk9penFkMGQ4TTU3TWVPNGNWNHRjRlJ1dythNHFhc0JR?= =?utf-8?B?OXlZdW5Kd3M3Z21PZW1ZTkZ6TEY2WTZaaGZBZHNucUpIa3ZSNWR2VWpha013?= =?utf-8?B?NXNQYkFQOEZlb3UrdnNLZ0NJMm5nakoyWlQ0cWgvTmp2VWcxY2hVTjB0SEJy?= =?utf-8?B?YmRPR2Vsd0VjNWJnR1ZqRG9uWVUyRkJ2WTVlYjEzNmh5QWQ4NjF5eVNsZ214?= =?utf-8?B?L21MRVhUbkF0Q3kvZVBWcjQreTUzY3NNUlNVUm03UDN0RS9kMC9vT0N6Zk5L?= =?utf-8?B?ZlZhb0hKSEpPVFU4YloyMzVxaDYvZWRXeGZRb1RwREVjSUdWd2NmVGMwdHkx?= =?utf-8?B?SG1OMmtudjl0ZFYrYWF3RjNZNVdZc1ZOVmhNeVA5RHpteU54a0piU3QxeU9j?= =?utf-8?B?ZHVRK1luQ25hSHpGSjVzaWhHVVRpUGdtUkdXMkJucWhiNTZxNm9HTDR1cW5l?= =?utf-8?B?SDBJZVE3SWJuTXZIQzljRTVJU3REYjd2RjBxRW1HeXlkdFI0RUhHV2o5STJT?= =?utf-8?B?eFc0UzJJQ3JRVm5xaDcxb251RUhPT0h3dmRieGQ4V2pTNU5PSXUvU05pSzBQ?= =?utf-8?B?Q2dNNTVGN24rMjFvTnoyc05meSt1ME1vdnpNYzBRNEdSNE1rQnRCK0dxMHFI?= =?utf-8?B?YkdheDBSbVJTQmxTQnJva3lUWUhuZGk3dEQxcllXOW1ObzhDWTVpRzRLVDh5?= =?utf-8?B?OW9JYkRJVkN1M3JaOHNobmZ0T0RUUzArMnhnM1c1UHlGVVl1djNsTFpmY0do?= =?utf-8?B?NHR4cWQxaFNFTHdudElITFhoazJ0SzRuN2xSMlQ0Wmd5czlNM2padEplc0FZ?= =?utf-8?B?ZGFPTzMxOWZvZ3ZtN1FOa0xNd2VyQ0RSNm5GdVFsVmNaNUJuY0VISUM4RHQv?= =?utf-8?B?a0hHVnVSNjJKUVR3M0NBMit0MU5IUlhrU09veGZ4dXh6dTJiVjZXMXBTU20y?= =?utf-8?B?WDFDMjBhRU9GdDd6TnFtY1E0ZEpWR1ZyeDltc3RnRk1tWFY4TitXaEdXa2dq?= =?utf-8?B?U3Y0Y21NNDZGVVdVa05qUFlsQTl0ZUgzdmw4YmdabmRDdUJQSmFTR3VnRE5z?= =?utf-8?B?QXFwZ0t4SGZDNFVnem9jK1c2a1ZNdTQwSkI5MUhjYnk0ME83L1R4Q1g1cmVU?= =?utf-8?B?YktTWkFkbFFVbEpCcW82RDlhTE11SjJHNTNMRko4b01CR0JjVDJRZFpjRkZE?= =?utf-8?B?TCtKQ0REMnB3bGVlYmtUMmxPeEFTa0NtVklkZTZPTkNhWVh6L2FoT1RrSXZq?= =?utf-8?B?QUl4dnFnZWpqNVhzWG5oZz09?= 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:(13230031)(366007)(1800799015)(376005)(38070700009); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?dEtlcWk3M3JjYnozMW5ZV0dhekpKb25HQ2piQWdiZW1oM3p4cW84aFhocHA3?= =?utf-8?B?UjB6TytVQVdpWkpGYTlSeGRWSG9DUUtndzMzblNSVjF2V3JIZmRjUnJ1YVg2?= =?utf-8?B?NjJSN0xTNVFTK0VId2wyTUxLWVdZMUg2ZWtOUlkyV3dSK2owakJTV2w5NEE4?= =?utf-8?B?QmlyWEV3VVRwZkJsUVgyT1ZTU0ptY2EvbENHbWpDT05qL2pWSEdMLys3WGxl?= =?utf-8?B?Q1JlZjloR3VYbG1mR0p2b2RIVzMvU2FFeFg3Z0pRWTEraDVsLzZ2eWgwZmtx?= =?utf-8?B?ckROWVlYNCtnU3B5cm1Qc2tiK2tkTzhTVm16c0tUcmw5MWMyRWJxQTEwV0lY?= =?utf-8?B?TmRBOGswQ01yQ3JDUnRWMXhTWVF3KzRpVVMyR2l2TGIzL3FJUktTNkIvZk5V?= =?utf-8?B?UUg5ZG52bTgvTGU1ck1IcmdCLzllUlRMd3VmdmNKQ2R6aEVoMmRvYklDczdG?= =?utf-8?B?OU5HRzZzMVpuRmk3V1R6ak1WODl3RGJTWjh2bDFRU1orTFNYdTNYRzIzZGY3?= =?utf-8?B?aVVVL1l1QStwTUZDOGV2a3cyZC9NWTFqWC82UGh4dS9lM1VkaHNKQ1grRzZm?= =?utf-8?B?ZFNneW5FN2lVaEN2ck1BR2NldGlpK0cyZlR3bjBxR0VlZGtTRStTdk5oY1dJ?= =?utf-8?B?bDE5ZTVlZGxEbk04SVh5OXBWenZpNVNNU3Fhb2tHUGVRUk1Fdy9mM0l0K3Nw?= =?utf-8?B?QVA0TE9xcUdOUzFTaVZQckVLQUc0M28raGl2R0xKbGhPM3B4RktmOG10SFJD?= =?utf-8?B?VzVRZnYwQlM4ZUVZWW40RnYyb3lZeTBXSnM4QWJPdm5KNTR3Mkg2c0pZQzdU?= =?utf-8?B?bnF3R29CMGMybUhQb2VHbURtUE1pOXVuOUNHVFAzdlp5ZUVrQXk5cE5Xcll1?= =?utf-8?B?OVYyUWh3UlIyYWlkQUxJLzBnbDVLSVRKVC82bjR4L2R3OTF4NE1LL2IvYk05?= =?utf-8?B?OHl6RFQ4M3cwMnFoZXFCSjVpbkc5alRrQ2ZTS0l3UGhQSTJTakw5bnVZbXNC?= =?utf-8?B?Sm1WUnR6b0RBU1c4ZWF6am4xVVdmb2JmbWxhWjFaKyt0aVpNRllKSW15VEhj?= =?utf-8?B?NlpXaUhFY2NYa0l5NXhYamF1ZU40TXA1eEJ4RWFoWjBjek04MzFDL2d4anpQ?= =?utf-8?B?Mzh4NVFDYXF3dDZtaVFwSzRHNWE2T3d6UDFhMnZyalUrdVhpNmY0eTluZ1lo?= =?utf-8?B?TlNoVUdpck5uNFpZYTlsTW9UY1VoZ1V4aEpmVitqMWVUY08zNmk0NEFqSUtj?= =?utf-8?B?MG1wV1REc2FEMUZQdnVPNjhkWlp1Umh5K205SXNKYlMwWnBlc2lrcHIvdmdM?= =?utf-8?B?SGNDSC9JTjJtNGs5VkNrSWhGdndJSDJveTg4L1U1ejd5LzlTdThkRUNaSDIx?= =?utf-8?B?Y254SXF4QUJSM3poT2JGY1F6N01SelVBbmhueE1aaTJyaTNJb3hyaWxGbjM3?= =?utf-8?B?Vmo3ck43b2NlOHduQkRsR2ZkN3ZnQlp1Z2FQYVk1Tm1ZMHNwUVZwRTNWSTRK?= =?utf-8?B?YXh4RERxZFM4S1ljQit2aFppNldyL3hydENvdWhSQk91VjdwTDhHSUlSSDQ0?= =?utf-8?B?bzFmV1dFUXZtQnBWWnhhTHBjUU9YTlI0dW5oMUtBNXZ4Q3FPZW45cGNYT1Bw?= =?utf-8?B?SXRGclcvaE8yN09EM2k4YmEzSlRqaVlGOXYvd3p4Z3ZHNmdQdU9CTWZ2SW5k?= =?utf-8?B?dG04eEtDRTJ3MWhRR0lXWWpJZEVLOGZPOVd5K2pJekV2TDJzTXF5dHpiODVx?= =?utf-8?B?ZktPQ2wvbWJGcWk2cXJYMkFQSTA3QTk0eXVFbGp2TXl5c3FWYXgxcm1YK2lv?= =?utf-8?B?UDVJNm9iZlZtM0V6Ny83YUVLei9BTDByN0dQUUpzWFFnWjNmS1ZiM2JEWDlB?= =?utf-8?B?dVFXdFJzaGgvNG5qQnUvelNxczg2T0tjcDVvR1JqdmhlWk9SQXYrRFdESGhO?= =?utf-8?B?WjlUYXZKeEhlRUUxVTZpQ2EwemRkcFVEcFFqR09MUEs3L2NCNWYxTG04UlFM?= =?utf-8?B?ck9lbEF1bFJyejFvbHFYc0l0S1FoVXNlc29QZWRrSWtRS0hqR2xOOVRZMVZm?= =?utf-8?B?MjA4cmtNc1p2OEdtSld3dTZibGhvZ0VCbjVSZHE2NGt0TzZjZ0VuRHp6a1FH?= =?utf-8?B?Q1NiUk5udytzcUVSSm9wSytlcnR4UWZRKzFsM3piWDR5amRRRlNJTjNyeXFv?= =?utf-8?Q?NWNYJ3eAeKwcDaM/W/90gD0=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: 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: f2adef8a-e8a1-4d6b-8da2-08dc6abca13d X-MS-Exchange-CrossTenant-originalarrivaltime: 02 May 2024 15:29:17.1269 (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: jSadikAUYTBJLIvSy1THOxBI9pOmUHSQaVRcEjR9oFWNsvg6+Kv//QrvJ7c0qMFuLPQtABNMcXYOqki/+sdBbs2W6Jo2+f588TDVV27VOZeMRp3xBYugxL5aXFZGy+Zm X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR07MB9661 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+importer2=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, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer2=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer2=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1714663945101100009 The 'level' field in vtd_iotlb_key is an uint8_t. We don't need to store level as an int in vtd_lookup_iotlb (avoids a 'loosing precision' warning). VTDIOTLBPageInvInfo.mask is used in binary operations with addresses. Signed-off-by: Cl=C3=A9ment Mathieu--Drif --- hw/i386/intel_iommu.c | 2 +- hw/i386/intel_iommu_internal.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index 70735e2379..80cdf37870 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -386,7 +386,7 @@ static VTDIOTLBEntry *vtd_lookup_iotlb(IntelIOMMUState = *s, uint16_t source_id, { struct vtd_iotlb_key key; VTDIOTLBEntry *entry; - int level; + uint8_t level; =20 for (level =3D VTD_SL_PT_LEVEL; level < VTD_SL_PML4_LEVEL; level++) { key.gfn =3D vtd_get_iotlb_gfn(addr, level); diff --git a/hw/i386/intel_iommu_internal.h b/hw/i386/intel_iommu_internal.h index 4f6b0154b5..901691afb9 100644 --- a/hw/i386/intel_iommu_internal.h +++ b/hw/i386/intel_iommu_internal.h @@ -473,7 +473,7 @@ struct VTDIOTLBPageInvInfo { uint16_t domain_id; uint32_t pasid; uint64_t addr; - uint8_t mask; + uint64_t mask; }; typedef struct VTDIOTLBPageInvInfo VTDIOTLBPageInvInfo; =20 --=20 2.44.0 From nobody Sun Apr 12 13:40:22 2026 Delivered-To: importer2@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+importer2=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=1714663943; cv=pass; d=zohomail.com; s=zohoarc; b=NaeJduIlE4vV6Us7yiU9zzJt6jmMGxOwV1PgWJEDHefQcnHeTFevOYwa+epXQLc7SJIqmqgKKzUS5//CKvF9PtMUUiaUslRB0nmPLNbrbn2V6nNsYtYkAqpo0fKdKbs3dJ/psEq0DTnolBMHniQ7F61kOvDuqcR4uBw9bMBx2IU= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1714663943; h=Content-ID: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=Bmjrnlq+EsZbqElkWo+w4HVWYLdNhU0hhvoJB34zwx8=; b=UnuzLxVp7BQDgTyNH0MxyjIOj/09QhaReK6nr34W6KPGOx5dp9qLW4V3g1hzdx+VVfOSj9acMROtUiEHwts59HSZw/1/wBQymQgmoqsE7qp9V9/PjeMu9tA31cokKFugk/fvRwA3oS306a4V9jA0FOCkmLZO+3CYdFspsCbMkxs= 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+importer2=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 17146639433534.175695130188501; Thu, 2 May 2024 08:32:23 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s2YNW-0003mu-PJ; Thu, 02 May 2024 11:29:46 -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 1s2YNU-0003m3-Hc for qemu-devel@nongnu.org; Thu, 02 May 2024 11:29:44 -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 1s2YNF-0005ys-Q7 for qemu-devel@nongnu.org; Thu, 02 May 2024 11:29:44 -0400 Received: from mail-db8eur05lp2104.outbound.protection.outlook.com (HELO EUR05-DB8-obe.outbound.protection.outlook.com) ([104.47.17.104]) by smarthost4.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2024 17:29:19 +0200 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by PAWPR07MB9661.eurprd07.prod.outlook.com (2603:10a6:102:389::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.29; Thu, 2 May 2024 15:29:17 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.7519.035; Thu, 2 May 2024 15:29:17 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1714663769; x=1746199769; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=Bmjrnlq+EsZbqElkWo+w4HVWYLdNhU0hhvoJB34zwx8=; b=weR+vhKQtMAtOkE1TTsbK8u3tWULRlnRWSyvyuG5of2WnJ6egCxT7ZeC eMP19MN6gUbazFqnfG27yCOMdtn7HTLMXpIToUCGcORyHXKmBpBdDrLCW Tq8H25jO43qHA2qUPzUQovQfm1jdcZChlBOkrB5cPvPtXK8iXecZdNc6E yHhajc/wbavadSVbfOuJWvmmNBsIVVtb11lk1psYNyGjm3SQ+o4QDoUvs zu3cYYtRYT9nIqvFIVfVV42sHDE3JmOH0HWT2/RrPpQQv2KGbfE053RVa is0GolTWa7Wl/9s90MuWJDaExyg/aX3iG2eu3z+cK+BbOKqcCmQt+UqmA Q==; X-IronPort-AV: E=Sophos;i="6.07,247,1708383600"; d="scan'208";a="11785875" X-MGA-submission: =?us-ascii?q?MDGDUPH/ZPG72orzt6m8j73WFtRqr97aS8VOu2?= =?us-ascii?q?xVuIrlNbM0NRBT1i/woOAhBfeXZ20991KAkRq6fEuHinJmPzF6LAJkZZ?= =?us-ascii?q?1Qs69L1N4D1/uRXNmCw0B1d9e75dKRfYsBHw6IsTccfFUTOE3oZDJQdh?= =?us-ascii?q?FP1HHKlWBpFheo9PqfRB9pAQ=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZL2qUok+vOs52EQK4zgK9qkNp+2pG3hQS6pGFl/wRbSxNdpDfntyj9M1mx8SsrXYzn3qE1kvIHYA442NFJMxS0i9+JLvkc6NTFmnTcBRikyF0IHJ4cEFgkAeh6SAdkBXm7DiBHg+qLVYtzPoPG8QbsfYx9GLMBwqK7R6iJdaeDVB1cQTwjwrXFS5QsxLruv2Fou35LGydLUqXLpl6qY3jKnfaLkjwXBJaWkHXpTkSVd/TfCojqnYfOOp65PWkj4KtMLC3Fh+eXQjCmWI+kdcvkIlyHei6LBv51rQPBi5urGS56NvJ0prhhMg9SSmwu5FgcHuCTPauOU2ztZVqXzMbA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=Bmjrnlq+EsZbqElkWo+w4HVWYLdNhU0hhvoJB34zwx8=; b=UQi4FIcnLGpRKxOv6RU4dX607MVrmYklxFf2J4Quhpcf+TJ9FSIatjPhwPO/xFRUOPwsFN0B7uIcoChkS8b05L+7o9AK6c6b62yuZqW9J3pugMVPdKAcDqJ9lRQ3l5w6oat0fhJghgM1eb2IDcI3N/Bm/f2DAgSVqPfIX4F92JqJNpupNch5Zzepg7Ji8bnbUe62R+qUX6/S/egiVTYZkctSh+4AkbLb7ivatO1Z24BMhhVMTgMG6V1kz0Ikk0OAEZtHDnpZ/yWwHDmG2hjcyVRksfitoM7hKAHIcyNx1/P2FCMLU3YUhAwIoMLuBjsrI8UcgX31TfKz5p6U3I4KpA== 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 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v1 03/24] intel_iommu: check if the input address is canonical Thread-Topic: [PATCH ats_vtd v1 03/24] intel_iommu: check if the input address is canonical Thread-Index: AQHanKV+UzSPoW8ik0CkQzcjTSZ5Fg== Date: Thu, 2 May 2024 15:29:17 +0000 Message-ID: <20240502152810.187492-4-clement.mathieu--drif@eviden.com> References: <20240502152810.187492-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240502152810.187492-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_|PAWPR07MB9661:EE_ x-ms-office365-filtering-correlation-id: 92f60acb-d931-4cbb-b954-08dc6abca163 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230031|366007|1800799015|376005|38070700009; x-microsoft-antispam-message-info: =?utf-8?B?blJtS0hJNFUvVThmOWdQemMvcGpCZEpKdkV5RVF3ejRTYzdVN1BXdkVoaHBI?= =?utf-8?B?cENGN2VJSWx5a3BiNWJYSWdJYnVsVlJYRXJDeEIwSTFQRXExTmVVZDN1OWJ0?= =?utf-8?B?cEViOEE3d2E2NnExQWRrSmUvNEE1MW1TemxkNnRkSnl1WWVSRTJKQzB1MG5K?= =?utf-8?B?bVVWV3ZUVWNrVHBLa2RsenNBYVIwQnYveUorOE9BQ3Rxc3d0ZlozMEpaRVlh?= =?utf-8?B?bDhuZTNRRWdwbWZSWjIxaWNuYTUxUmxESHhaVW1tZHcrbFdqZ1FLMUlaUXcz?= =?utf-8?B?OWtiY3Y3a1hueXFLVWRILzc2blE5eEUwY1pWV1V5a0RKcHp2SUYwMjMzOXBz?= =?utf-8?B?Z0EzQmRFOGphTkdVWXg5cGlkcWtCaFBQdXNSUnpWRFdUKzV0MWNnZ0x0dGdx?= =?utf-8?B?bXJTbURXeEhlWWNESGlKKzRLV2ZhLy8zd1pCM1k2L3QwQzQ0SHNyU2R3ZEhl?= =?utf-8?B?TnlSZkdQRGZROWhvR2JUbnE2aUwxOTlzeEtsUU51RzIzM09nWFlON0pQTm9a?= =?utf-8?B?anRlRnU2bzRQOXBlenFrQW5nSEFQVDV2aUFzTENlZXFlc2RsQm1oYTdBNnJM?= =?utf-8?B?YndjVWozTjRINzdobHBwM3M2V0hqaDgzR2ExL2hvazVVK0JkU2Mzb1ZVOWNO?= =?utf-8?B?WUNONE8wajlWbFlMdnVwRXZkZ3hZQ3JPeWVleGFEelE4L0c1b2dCN3NLRDlO?= =?utf-8?B?NitxMmZ4VFptNEdUdEFWZG15R0hHWlMvTG4rVFFUZysza2tLdmVoV3BxSVNI?= =?utf-8?B?bWw5SzF4emo1ZVNBY29sbWVIc3kyQXF3aUZuai9rWkg4SkZ6UXU5WnNnVFJD?= =?utf-8?B?NEVSOEl3NHBQKzNsOURQYXh4bGxKQ3B3LzQyOGpIekpPa25MSDNvdC9qYmJR?= =?utf-8?B?bjFJUXVQTHRRTzhIemYwcVkwZ09IbDNHQzFXWTlrSWZ4UnhMVUVGZ0svREc1?= =?utf-8?B?N2NyUm5uWStWSEx6RUNPbkFtd2VRSGFSa2R5NGhQM3VXRG1BMCtsb0FPdlgv?= =?utf-8?B?Vkdpa0k4TDNvOVhOeWtZWEFkbElnbVdsSGMyZWNlVlFnSU9DdVNlOERaV1lP?= =?utf-8?B?Q0NUYjhhVUsyR0ZwK0ZueXd4SDFCT2xqYkZiN0pwNElnTVVwZjJtUmI0OGxT?= =?utf-8?B?cnRBR1owWExzRk1tWnlPbGUxVlkxUWZBRnIxTXplNmtMTnpKbWtLWThHbUEy?= =?utf-8?B?S0dnRUxoYUFyYmZCUmQ4ejFVSFUwU1g0dUhnZHE0TjB0T0RMaUVTZzlYbmlF?= =?utf-8?B?NUEwZkUrY0o4MkcrYlBiZE1kcmhNZGdVb1Vxa2FVOVVFU1ZIeCt1dEpibXFt?= =?utf-8?B?RElybVZyREd6Z0VlcmZvNWNUNHpRMWxhZytwakQ2Wms0a2U1UHprbUVza1p5?= =?utf-8?B?d0V3NlRFTTdVYXBHOXNPd0RrTk0wWmIwWlpqSXR6QUVraUZ0VE42RndqNDlt?= =?utf-8?B?Wko1Y2Jjbk0yRWprOVNPamp2SVNWSWtnZ1FnNVhSZVBxTWIrMGRGSUVGMGp3?= =?utf-8?B?cXNUaldoWmY1czFiTlFyUDM3R3J2RitWaTRHZkhnNU85MlBoQTVWRU5rUGkr?= =?utf-8?B?Ylk5Y1JvZVd3ODRFeU9zWTJFUVJjMjFOMU52NTNjRG9tdTF4cnlmMEc0K1pQ?= =?utf-8?B?ODlOMmg2UmtnR0J5WnIrcWZqZmZNemlBaTJUS1BOR3FPb2VwYXlDN0ZBSFVh?= =?utf-8?B?S2liMDhwZGN0bXNrRlhTQVBXM0pIOTcrUVhOazI1elFuR0xjTTJVUUc2TVd6?= =?utf-8?B?dUxxZTFqL0kwQ3dnMDZrVWxmZWFlaDQ5WDVjNS9LVmdlbmIzZERKU04zZ0Jl?= =?utf-8?B?Z3VJMndoOWo0UDVMLzh5dz09?= 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:(13230031)(366007)(1800799015)(376005)(38070700009); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?M21DTDlrYWNDc3AwRHJwbXpXdUxiN1pvQ2xVeG1ZT25LMVdjcHN4ME9uSm05?= =?utf-8?B?d2c0a2xUdTNnTzFNeFpNaDRGTW9BM2hDb0RsWXpIcnlSYTdWdkZWQ1ByVTNo?= =?utf-8?B?MXNBVFQ2TE1hTDBISzliemJYYzliZkg1RjFORkQ3SkJ2VlF1YWxYY3BDODB3?= =?utf-8?B?TDNSdGVnbVZjMStQN3BHQW9acHZtWHk3WEFMR0Y4MDVaUEwwQU9EN2doUHNu?= =?utf-8?B?N1Y3MEQxQ2VzaG1hT0kvVnpMY1U4bG5iZFhPeTErM0Rvb0o2QXZidzA3aTJQ?= =?utf-8?B?L0UzN01Ra0U5RUhnMVhlL1RCZ2ZrdWdMMmJlTUF5bkQ4UXhHS0w0TUhNODhx?= =?utf-8?B?NERHUFdPS1ozb2hnZVl0Mk0vbyswd0ZWckFmK3d3MkFFZmFabXp3SDFNbm9v?= =?utf-8?B?aXR4QUtYK1lxSFlEcHJFUmpLL0JkUG1NallNTjdCWkk4SFAxWGcweEQ1K2tF?= =?utf-8?B?VGlBQTVjb3gyQkRJRkNiSm05cXM0Qi9RVEZUZDJoanI2Zyt2eVJvU1ByWi9y?= =?utf-8?B?Mlp6b0lUVldhR25KcS9IVndSMUhHdG5uamk0WkRFY0VzWXplQlpYT21rVzVp?= =?utf-8?B?RGZkT29NRGtkRm1PcEFOMExHZEdOOVZlTXNLaEpqczJla3dnSWxpNHVOaEdZ?= =?utf-8?B?ZTRhSEo1VEx0UmlDeWpUQm1UTjh0bE8rL2FVT1VERFhOa3NPMmVYSitHS3NU?= =?utf-8?B?Mk9nQWxhV3ZBTk5GN0owOHdqb1J6cUxXK2lrY3FPQWJMY0pHODVvQWxGVzUy?= =?utf-8?B?L1ZiRThBY0NLWGtFYVQwRVJPSEFpeGtoWU9DSjhaNnVBaVBJOVF6ZDFYZ014?= =?utf-8?B?VVR0RWRHRU5MM1ROUzU1bG9vZ01YT2dFclNFNVBBYlhWeHZ2U0FGVFhJK2dx?= =?utf-8?B?dU1KYUsrTzZsM2tqQjNQVkM2T3NsRk8ycmpwNGcrZkJuNGpWKzErVHM2ZStP?= =?utf-8?B?am1ISVg5Rkw2d2tvNW5ITnlDV1FreDFBbzhQYy9zbXZuRlZTQU4vQW9YTXI1?= =?utf-8?B?d05GSE1yaUxQbmlDYktwNEdtU2IvR2UzNzdSUHJyWWRYRlRXMS9HNSsyanRZ?= =?utf-8?B?YUIwRDdMK0lBVGVFdUVzbXJJK05uL01nM2k1aitJdmp3cHFpejVpT2RLdGFO?= =?utf-8?B?SWVUdjBUa2RVbnExeWIrclRnYlYvRDlqbVRTRC8rUFpnQmkzeHdRclhRdGtw?= =?utf-8?B?Vzhuc2ZPUVRTbzRWcHU2Zjd4elVpNTMzbXpzQWx5aWVlZTcvVFhKM29tV2Z6?= =?utf-8?B?R0gzOU9kUGNTSzZqVnlMSXNObEVOUmovdUwzSGlMM2hBUEcwcHBRS3JmbjF1?= =?utf-8?B?OEJzSXZWSU5vc2xIOXRDdkRZN3E5cndwUWFsZSttWDlrb3hTNmFhMjE3NWNR?= =?utf-8?B?YitSQ1R5eFlCT2ZGT1dObDdVY2UwTU9YNWVPWGdIUEtqUkdSLzVxU3NjbnVn?= =?utf-8?B?SmlxS3BHMjdFRlVtSERuVmNRZm54b0tVZ2oxeTlXaUY1ZUlyV3lLd3Urc3JK?= =?utf-8?B?NDFkaXYzYVhpSGt6SFQwVTY5VitWU3hPUGM1L0dxbGZKUEVaVkQyZEJsYWM3?= =?utf-8?B?SjFROWVvZVFrU0lkZmhHbVJqRndxdFJPU3RMMVBkbitDaVBkN0htRTQxU3gr?= =?utf-8?B?Si9Wa3VBcE5BL0NUaG5NdHpBcGgxaDRvZWNITDZKYTNwbFdvSms2M21kR0kx?= =?utf-8?B?dUd3UEZ4ZURFbFJrTWh6R1R2dWZZRzU0S1ljSVBOdFRVY3NVVjFKenFscDVY?= =?utf-8?B?RjNWZzl1cmhLbmE1cXVXRUNFY2JNTkM2a0FhYVo1cjBPWUJVZEtyZVhzaVdv?= =?utf-8?B?TURTZFN5ZXdNVjV6bWplYjlqQSt1VjM4NS9NM20wcU9ob0ZUNThJdjVCckQ0?= =?utf-8?B?UFhCWkgrbytGRUVHSTZxcGh6ckFIU2l2cjJXdVZIRGV4Yi9uL3Y3bE44cFFn?= =?utf-8?B?dUd5SHdnTDNwMysyaTllMWh4dkNiSEh0UWdqMkMzZzZaaUdXZWhraStrZTdp?= =?utf-8?B?MnJuajVWN1U4ejhRVFRZNHpUZ2hUUC84bW54LytDai91ajB3eE5yMENpOUxz?= =?utf-8?B?bVhDVGhIcXdNZlFvbTl6amU1ZVJNamdxOWlyOXFIazIwRmpMNlJYUXdDcEs4?= =?utf-8?B?MExtMzRBOVVFY0NPaWJqMUpOU1FaaFlSNmt1SGJoOHZlK3R4aGtYOElqMTBa?= =?utf-8?Q?mSFp7oKh/zxYmb7DEpiczBY=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <6C7B7209A5DD2B498988CE68C26FD393@eurprd07.prod.outlook.com> 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: 92f60acb-d931-4cbb-b954-08dc6abca163 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 May 2024 15:29:17.3490 (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: ou8uIftzPsZfLfGHM5PBkBu4xG2AUNA8WjDdj99c4Qak7zB4X9t1ug829RFx1GazWRo6j6h8UKXldPm4BjdNuDIVEpt/HUc1WL/EXiHiCutuAf4ExLRP/3Jto1jAIpCj X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR07MB9661 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+importer2=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, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer2=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer2=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1714663945121100010 First stage translation must fail if the address to translate is not canonical. Signed-off-by: Cl=C3=A9ment Mathieu--Drif --- hw/i386/intel_iommu.c | 22 ++++++++++++++++++++++ hw/i386/intel_iommu_internal.h | 2 ++ 2 files changed, 24 insertions(+) diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index 80cdf37870..240ecb8f72 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -1912,6 +1912,7 @@ static const bool vtd_qualified_faults[] =3D { [VTD_FR_PASID_ENTRY_P] =3D true, [VTD_FR_PASID_TABLE_ENTRY_INV] =3D true, [VTD_FR_SM_INTERRUPT_ADDR] =3D true, + [VTD_FR_FS_NON_CANONICAL] =3D true, [VTD_FR_MAX] =3D false, }; =20 @@ -2023,6 +2024,21 @@ static inline uint64_t vtd_get_flpte_addr(uint64_t f= lpte, uint8_t aw) return flpte & VTD_FL_PT_BASE_ADDR_MASK(aw); } =20 +/* Return true if IOVA is canonical, otherwise false. */ +static bool vtd_iova_fl_check_canonical(IntelIOMMUState *s, + uint64_t iova, VTDContextEntry *ce, + uint8_t aw, uint32_t pasid) +{ + uint64_t iova_limit =3D vtd_iova_limit(s, ce, aw, pasid); + uint64_t upper_bits_mask =3D ~(iova_limit - 1); + uint64_t upper_bits =3D iova & upper_bits_mask; + bool msb =3D ((iova & (iova_limit >> 1)) !=3D 0); + return !( + (!msb && (upper_bits !=3D 0)) || + (msb && (upper_bits !=3D upper_bits_mask)) + ); +} + /* * Given the @iova, get relevant @flptep. @flpte_level will be the last le= vel * of the translation, can be used for deciding the size of large page. @@ -2038,6 +2054,12 @@ static int vtd_iova_to_flpte(IntelIOMMUState *s, VTD= ContextEntry *ce, uint32_t offset; uint64_t flpte; =20 + if (!vtd_iova_fl_check_canonical(s, iova, ce, aw_bits, pasid)) { + error_report_once("%s: detected non canonical IOVA (iova=3D0x%" PR= Ix64 "," + "pasid=3D0x%" PRIx32 ")", __func__, iova, pasid); + return -VTD_FR_FS_NON_CANONICAL; + } + while (true) { offset =3D vtd_iova_fl_level_offset(iova, level); flpte =3D vtd_get_flpte(addr, offset); diff --git a/hw/i386/intel_iommu_internal.h b/hw/i386/intel_iommu_internal.h index 901691afb9..e9448291a4 100644 --- a/hw/i386/intel_iommu_internal.h +++ b/hw/i386/intel_iommu_internal.h @@ -324,6 +324,8 @@ typedef enum VTDFaultReason { VTD_FR_PASID_ENTRY_P =3D 0x59, /* The Present(P) field of pasidt-entry= is 0 */ VTD_FR_PASID_TABLE_ENTRY_INV =3D 0x5b, /*Invalid PASID table entry */ =20 + VTD_FR_FS_NON_CANONICAL =3D 0x80, /* SNG.1 : Address for FS not canoni= cal.*/ + /* Output address in the interrupt address range for scalable mode */ VTD_FR_SM_INTERRUPT_ADDR =3D 0x87, VTD_FR_MAX, /* Guard */ --=20 2.44.0 From nobody Sun Apr 12 13:40:22 2026 Delivered-To: importer2@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+importer2=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=1714664007; cv=pass; d=zohomail.com; s=zohoarc; b=PXFT8MdapVdP6RqO5uxkcDGRrqD5JA/Fmn3eKMrOLbyllSfmDdjsnDpSK8vkPK6xTE5hArnry+D0pN1p3JqlSsOK+VjOgXcGA9DiFg6jEQBvyeLM9tIZdQlJMUQDY6jX9UAUPtL52W8KLfvrOGz9M1CTb+46NORS30bgqpmauBs= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1714664007; h=Content-ID: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=gouuSI73YO79A3pxghx3VxnSjCaNE4VgvnGoPug7hsY=; b=oCRIXt4GVXPRNBFxk/NfN7nQIOzcfZGRTl9TMh+yXpsZgbGfeOlz5QffyeO9PmhYeOqU2aWSeWEWGtXf3bbtyrH2E31P+SkUBK/qjF9Hi1+gt0C4SUS0PW2K5zZV77/+BF8fR9AIslfIH67KHOYSSZ/x5FwAAqvFFGuW0+1zTNk= 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+importer2=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 1714664007608100.23799134703393; Thu, 2 May 2024 08:33:27 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s2YNY-0003o3-72; Thu, 02 May 2024 11:29:48 -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 1s2YNW-0003ml-As for qemu-devel@nongnu.org; Thu, 02 May 2024 11:29:46 -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 1s2YNG-0005z0-Bv for qemu-devel@nongnu.org; Thu, 02 May 2024 11:29:46 -0400 Received: from mail-db8eur05lp2104.outbound.protection.outlook.com (HELO EUR05-DB8-obe.outbound.protection.outlook.com) ([104.47.17.104]) by smarthost4.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2024 17:29:19 +0200 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by PAWPR07MB9661.eurprd07.prod.outlook.com (2603:10a6:102:389::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.29; Thu, 2 May 2024 15:29:17 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.7519.035; Thu, 2 May 2024 15:29:17 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1714663770; x=1746199770; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=gouuSI73YO79A3pxghx3VxnSjCaNE4VgvnGoPug7hsY=; b=gPsT8bXMFMBjLqgHzeAEaS5dqVM+Ij7ftldqAV/qRIHed0TEcjKHlPs9 liZmsyQoHx/f3YO3HZ5vIjITnLXsm9bR82oJtOEE1NAAEkobnaKS0muYY R4c3ovOsVSKgOvVJxT9fgzW+jciXPR6aIB9isij68DQ0GF5dfA0ws4jwr SMAC0v9V/N0MQxMkjp8DZPKa+PzBfpVlRalf4Y7Tk+5lrhCQNETuqS3Ls BR1LNu40DDIqybBOoRmZA61hknOwEbYe6lvcBzRB+BwousOdFgdl9BMLX D8LcIwEc7bldjcXEsr15DCevCazmwOOpHsNSbRDWeotq0kbveeqOfcioo Q==; X-IronPort-AV: E=Sophos;i="6.07,247,1708383600"; d="scan'208";a="11785877" X-MGA-submission: =?us-ascii?q?MDHNQtB7hKQPhwM+Z9nxgpLMQvBBJkJCDhA5/1?= =?us-ascii?q?ku24GH7I+HEJmd1fpC8RZHTBlWR8qGbzGph4Ux6FSd/uqDw44A+kgizp?= =?us-ascii?q?HogMpNjPa22HyYWcUsizlL6hQ/hVZyNjJki/+3cI4Z7TsqpVMduw2Evn?= =?us-ascii?q?YLXprip315wkUCmG6a6k/p/w=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=D6ADbNN6/JcKUadYJWqEhZ8ppvGHFXlPHtorhPAp2fgUkX57ZO1kwUdVUEyf6O9yo6lwIoJxAlLuVxs9dvMFdHkvenC1mQyx4wSYA57gfvUOfpHAqbk3JlwlkFtjk19eRNyTOs8+/H/2jx/1ztTJuM8ecr5L0Unxo+/JqaXJk+nXpVuI1LJffaNglLF+cPT7GfDNkSoMe5ao83DKTjITp+FvwhgnO4jVqD8V/DsuCI325GiEvHfjjQR8LpEd7V1b99jQGOv24GtEDEpG/j01T6JqcfKHeKWqsLGthXVgF9aaofndID6RJ9YAjIZCy3fMoBlaxCRz2Rwdpa3tJEpPqg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=gouuSI73YO79A3pxghx3VxnSjCaNE4VgvnGoPug7hsY=; b=NvJT7gnnwMIEWJPo4GZXBaSDQF5mkTmaFlijPkbBSJeTs22ZzVL2TcQVfHJmCIOnBwOTfHeGUYJqObPHGzj8RyzsTxDeY8eVZcraLWu/RoHGgbcrGhPt6bZPMobU9lCwLKDViXY03MAeqwn70YOY9M7qmzuF3DC79xA7Tx0UxEAVg2eK6a8vuFDokYtdpTwFU3dbX/NZEyG9CZRJyBOVu3gl0tR0tpxlvg6FWNkoIT+aMXXvlzpwDrximEKbcMTXJ+AI5WC/cssz8LVvCFjfuIkB/effCS7D+4FpMYAnzVSzJ11xMQC095Y1rUJKdaoXJcJ+ZhhUMaPS4Mo0WZfsiw== 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 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v1 04/24] intel_iommu: set accessed and dirty bits during first stage translation Thread-Topic: [PATCH ats_vtd v1 04/24] intel_iommu: set accessed and dirty bits during first stage translation Thread-Index: AQHanKV/mhjM4ak/Ekuu9if0HXvkSw== Date: Thu, 2 May 2024 15:29:17 +0000 Message-ID: <20240502152810.187492-5-clement.mathieu--drif@eviden.com> References: <20240502152810.187492-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240502152810.187492-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_|PAWPR07MB9661:EE_ x-ms-office365-filtering-correlation-id: e0a055a6-711e-410b-e5c7-08dc6abca189 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230031|366007|1800799015|376005|38070700009; x-microsoft-antispam-message-info: =?utf-8?B?bzc2dFlUdDBtdUk5SGNDb0ZDWDBLM0FsZnRjbDB3a2poUG9McHkzd1BNV1Zo?= =?utf-8?B?WnlaUTNRb0lTcTh3bkE2N01KTFlraDdZTnU2UVA3SmNweE1PMnFibWMycjNx?= =?utf-8?B?eHlROXlUY2NmdkhBMUpTSXVNbnBWdTVOYTBzVitWc3YxTU1MYytydXRrWXVm?= =?utf-8?B?d1JESStmMjRUVEtpbVNnWVphTXZuSXZxL29UN2FsbTU2Wkh6a3VjYXRxcWNO?= =?utf-8?B?RVh2a2xDZnRUMVRQZWFPU1VqaTAzaVFxQ2Z3b1RaOC9INkJidlFvNnkwSXY5?= =?utf-8?B?clFkZ3ZYKzhDVlF2WFR1ODdMTzZKZU0wR0FZWTJVSjFlbktRMXYrdHFTMjVr?= =?utf-8?B?dWJXMWhQTmh4bmVQclV4Q0pwbUNCd3NVNy9DcFNRUnhjQ3hWNFZDUHQ4Zm10?= =?utf-8?B?UUZJQjgzUWRxVnRZMGUvdUZHMUdRa2JaRGhZNmdOeFhMeG9qMGltZ0FvZG0x?= =?utf-8?B?bXRraDYzd29OcnVpek95OHl6aE8rVW5aZHUrV0RNWHNhUENZZ0FJQ1k3MWsy?= =?utf-8?B?SmNmMFAwTmpWMHpOcWY4T3RqU09Fbmh4M0ZqcE83cWF5RTNTOGdHSDRBMkEv?= =?utf-8?B?U210NW8rS21nb0pJSGQvaXVDOHZFbzdVTkNTQlltWFRGQ3h2MmozcWtremxW?= =?utf-8?B?dDJQY0lUekFla1VlL29SaVAvRW5GdGZoeWlOUGw2RE9NK2FnV3lsNHVxUzVv?= =?utf-8?B?WW1XbFV5QkRyczMwTzdtcEJONTh4ZVdaZ1dON1pGZno0c2tGZTVoc0VDN21W?= =?utf-8?B?RmtnbEY2OGpjdnF5M3JkbUF6eUJIRnBIUFFTdWZNeWhyS0lSVm80NEd3dlJY?= =?utf-8?B?SFIzaGgwSEcvYkFpdzgrd0d0UStJeExJV3BJaFI2Q3p4TFRpbXl5SFZaa085?= =?utf-8?B?b25vbTNnTzI4QitmYTNRQ054OE43dmpwN1piZ0ExRDdMN21yM1hXK3JnZURU?= =?utf-8?B?bnE4MWoyb0hSYzhPcmFYRWRvdHhEbTlFZjRMd21MTG1WeklXNGVqTDZqWU1a?= =?utf-8?B?TWZ0YlBKQWltajEwUStHL1Q2TFZrT0VnSGQzWW1iWTFOajRqUytwU1ZtRTd6?= =?utf-8?B?Y01pZjV0dU1yQ2xRZjQxZVVweFFLSnJuazMvR3lvbUtNeFdzV1E0OTU3bjVy?= =?utf-8?B?QkhuWGZ6am9ud1lYWmF0ZXc0NHg3bU9UVEgvUCtUaEFIanRiVjgvQUZYL3B5?= =?utf-8?B?VUJ2TGtZTjFWVXlPNEVOVVNmRk9sRFN4S1g3ekQ1ZEZtNzBJNTlNWHBJTy9h?= =?utf-8?B?YjVQWFhuRm4zb0ZBOVZyQzAvRFNtcGN2VkgzaWtiRW93MkhPcHRtby9xNDd0?= =?utf-8?B?ckxmSVNJVnRYMlVxRU8vS1RSS0FVTU9ZbzNHR1ZGaDIxQTVBZzdkNFI3Njh1?= =?utf-8?B?SXdVcjQ2c3VhcU1rNk5vMENvWURnRjdYTm5INkROTzRJRis3SHlOWU9ISmRK?= =?utf-8?B?Q1EycndyRmloV0lxVk9zdnl3T2VVclJrMCtoazhKSzVWMzA3UnV4QlU1RVZi?= =?utf-8?B?QnBtQmFnMjBiL2NSblJKT1RsR0dPejRCQWFycmpna1czWWQrYmRsQzgvQjdv?= =?utf-8?B?bUVkVnZVeWlqM014dW5CQ0R1b2xINTYrMDVvdk14NC9Pcjgyb2Y4am1BQXl4?= =?utf-8?B?c1NERERuK25IZ3dBbE1LcDFPTjRKV1NBNmFuL0ZaRWpSQzNXY0g2UitZZzBn?= =?utf-8?B?M29EWmM0Ymg3ZjRMZUEzNnJZRkpTNGFLVk5vWEV5SUllMjkxb21FaW9JWVly?= =?utf-8?B?REVyVEU3STZ6VzRXcFpFbmpKSTBWdWdDV3k1YjArbDh1dWZQZUNEUlJZME5O?= =?utf-8?B?L005aWhLZ2o4NXNjZmplQT09?= 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:(13230031)(366007)(1800799015)(376005)(38070700009); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?dUlZclJPaTZNQ2FpZWxaRXltQUJCT3JkakovcmhoK0doQVViZUZ3RVQycGZE?= =?utf-8?B?MkhBYnhjeUVUSTFUcG16UmlFczZwZ3NKNlRxbnBZaTNmRjVSM1Y0WjZXWVdG?= =?utf-8?B?Y1lFcEpPV2M0QmdqSzU1SERPdnhtaE4rRTNPVFh1SFZBaWtUUmVzcWh2OUgz?= =?utf-8?B?VFhEbDExZTNXUlZGdmIxY2dOS3N6T3hxZkxXMkg0aUpxdVgzeGxDWTcwWktz?= =?utf-8?B?d2ovdmtXL0JNTVFNWmgzQ2JYOEc0enROcW9xS0ZvOEkxaEg1SzlkMFYvZ2ZX?= =?utf-8?B?aVpoMzQxbk02UGR1RDhma3oydFcvbXJibkNrd1lPRnZqekRzOHF6Mys1YTVo?= =?utf-8?B?TlYrT2dDS1hSS0RlaHZqbU1pTUVQM2Z1aitzbU5hNHFIOVMxQy9XVDRDZncw?= =?utf-8?B?cUlvckJTbm1aRHhyUVdLQVlmNksvVUV1MjVDaDZQU1Z4Y3RZbSt3TUwwendk?= =?utf-8?B?U3JDR1Q3QTh0ajd1clRjZHg1b3BxazlnVmt6OVc2OHJSTzBtYy95YWFRQTh4?= =?utf-8?B?NFdvRkRIME1RYjJKSU5vUWJRQ2xVY2ZDT2hDSXlqZTE3cktuUXY5Vy9nM1Zw?= =?utf-8?B?aVoyOWt5cEIyUTN3YkVxZGlycnFTbUVNOGIrTkVWcE5YNGlYbHY3OWRWYzls?= =?utf-8?B?SDdobDNOV3I2R0Y5WWFqSHNOZDl2QjBkZm1TcXRZQ25EVm94RnZwRTFRVmF4?= =?utf-8?B?dWlRakVFclRvNkZ5UmY1aDJjUE4vWnVyZUVHd0hZK0RRQWV4TWFWWXJkN3Rn?= =?utf-8?B?aWRkVVNwL1RBTFFYbW16cU5yZFBQREhWNGFERks4STJuSnlJb0gzenFaRkpM?= =?utf-8?B?bUFGRE9ZUHcxVEs4WU9MYmI2NFBUVTNvTHNqZ3g2YWFPSEVxRjllcExPMFcr?= =?utf-8?B?NzdpU2FxYjFoUElyNERpejk2cCtocXUxdFBNVU1rZ2ZJSHdVYjFtSjlYbDUv?= =?utf-8?B?ejdCQWpwWmt1L0Y1WnJ6Sm9XMzhTRmtIMDkxcUdjQkVNa1hpVHc0cHhTV0hJ?= =?utf-8?B?OUlSd2UydjB0Y3NUcHdCcmhqdkp4SjlkRXJTQmVPMXpIaVQwRFNnOEsrQmtB?= =?utf-8?B?R2IxM2lJOTdONE1OaHpzRkNMS1FvUk84Y1BWcHlwc1duVXBxWXlxOTRUUWNY?= =?utf-8?B?bGUyRzl0YlA2RGpwTG84SVJ4SjRBdTBPc2FiS24wd1o5RkJxUUhuVXFpamox?= =?utf-8?B?Sk1YVnFLKzA1UnpjKzhTUXBxb2UwaTN4Z3VaenFHVHZlNHlkRjFoVWNZVGtm?= =?utf-8?B?akZnTnVVSVFLczR3TTRraFg0VHFYK2JiVytvNy9GUUtNc29lRjgwSkR2OEVP?= =?utf-8?B?QkxuYkNKZjRwcTZGbGpZelJTQlNoanJKK3pPRUFvQ0JXdFIrcHVwa1BaVTZH?= =?utf-8?B?RzdJTFFFNVRTMmZiT1NGYnpYMWhKK2ZZTVdzZlN4TDJzTnAwMndoS1FkQjly?= =?utf-8?B?bVRVUHhSVkN0Tjg1Yk9VT1pqOEZ6dDdWRVBnQk5WSXhCVytWVmFLVGh4THdp?= =?utf-8?B?R1l3WFFjNW9yRVpkVWZRR0x0SmtYMWxjRVY3TTE2dmVRaWpjV21jUGZyeUNO?= =?utf-8?B?SDFDSzRob0kvSllscU5CK1ZLWGFmUG04UE9GNC91NDZWTDE5dENRVHM3dWp1?= =?utf-8?B?Ry9XSjBHSWZXSVFvM0VpdDI5V0pZZEZKeTBycGN6T3J0aUpJejkxczM3S3VR?= =?utf-8?B?R09YRkxwQVRHYndvRE9MOEhGbDA0aGNNNXVTdi84eFBmeVFUNEhuM0xhbGNa?= =?utf-8?B?UXorRk9UVFNiUG1yMWlHbTVVYmNCaThVamhOSjA0bUNybHBRMFdmbjh6WXBR?= =?utf-8?B?Tkx3Qnl5d0tlMCtnNnpKVlhXdzZkb1N1VmdtYjlaS2xnMDBSejNtbDZOREVB?= =?utf-8?B?bUVEZUszN05KaG5QRnJVR0xnYmE0Yzg4WTgxbXlKWktIOGpmZyt2U3JSYmx5?= =?utf-8?B?TXFXWlNaUFVuQndGazc1N0JsaUd6U2VWSm1yalBrOVppVkRJd0gwbjFsb0xI?= =?utf-8?B?aVdOdnAzUjFQQmQ2enluUzlmMTFZM2VNN0FsNFlIdXQzdXVob29kWHF5OUJW?= =?utf-8?B?cFlGYzNGcVo1VWVmMzFnRDJxbk5PcXR2K1lOcHhMQnpsMFJ2THpwaHNOKzRr?= =?utf-8?B?RlN1L1FNdUFPcXZOUWlBSWJXSEl2cVdvOGZ5VXdKeHp4Ylo0YXVrYkUxUEts?= =?utf-8?Q?GnGHzTpWQ67fkF4cEoWotlE=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: 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: e0a055a6-711e-410b-e5c7-08dc6abca189 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 May 2024 15:29:17.5817 (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: eO5s+VL9VErq2nP3qHlVrJgn0mDriQskyfOc4HtB6K89IbiV+6SC4tvBicYwHB5ePqkFsmsYUBBu7cprPGSvBbd/opD4pEPglMtR+K8tRqW9p79ClBPhMUs910KHGmj8 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR07MB9661 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+importer2=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, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer2=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer2=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1714664009473100006 Signed-off-by: Cl=C3=A9ment Mathieu--Drif --- hw/i386/intel_iommu.c | 26 ++++++++++++++++++++++++++ hw/i386/intel_iommu_internal.h | 3 +++ 2 files changed, 29 insertions(+) diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index 240ecb8f72..cad70e0d05 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -1913,6 +1913,7 @@ static const bool vtd_qualified_faults[] =3D { [VTD_FR_PASID_TABLE_ENTRY_INV] =3D true, [VTD_FR_SM_INTERRUPT_ADDR] =3D true, [VTD_FR_FS_NON_CANONICAL] =3D true, + [VTD_FR_FS_BIT_UPDATE_FAILED] =3D true, [VTD_FR_MAX] =3D false, }; =20 @@ -2039,6 +2040,20 @@ static bool vtd_iova_fl_check_canonical(IntelIOMMUSt= ate *s, ); } =20 +static MemTxResult vtd_set_flag_in_pte(dma_addr_t base_addr, uint32_t inde= x, + uint64_t pte, uint64_t flag) +{ + if (pte & flag) { + return MEMTX_OK; + } + pte |=3D flag; + pte =3D cpu_to_le64(pte); + return dma_memory_write(&address_space_memory, + base_addr + index * sizeof(pte), + &pte, sizeof(pte), + MEMTXATTRS_UNSPECIFIED); +} + /* * Given the @iova, get relevant @flptep. @flpte_level will be the last le= vel * of the translation, can be used for deciding the size of large page. @@ -2080,11 +2095,22 @@ static int vtd_iova_to_flpte(IntelIOMMUState *s, VT= DContextEntry *ce, =20 *reads =3D true; *writes =3D (*writes) && (flpte & VTD_FL_RW_MASK); + + if (vtd_set_flag_in_pte(addr, offset, flpte, VTD_FL_PTE_A) + !=3D MEMTX= _OK) { + return -VTD_FR_FS_BIT_UPDATE_FAILED; + } + if (is_write && !(flpte & VTD_FL_RW_MASK)) { return -VTD_FR_WRITE; } =20 if (vtd_is_last_flpte(flpte, level)) { + if (is_write && + (vtd_set_flag_in_pte(addr, offset, flpte, VTD_FL_PTE_D) != =3D + MEMTX_= OK)) { + return -VTD_FR_FS_BIT_UPDATE_FAILED; + } *flptep =3D flpte; *flpte_level =3D level; return 0; diff --git a/hw/i386/intel_iommu_internal.h b/hw/i386/intel_iommu_internal.h index e9448291a4..14879d3a58 100644 --- a/hw/i386/intel_iommu_internal.h +++ b/hw/i386/intel_iommu_internal.h @@ -328,6 +328,7 @@ typedef enum VTDFaultReason { =20 /* Output address in the interrupt address range for scalable mode */ VTD_FR_SM_INTERRUPT_ADDR =3D 0x87, + VTD_FR_FS_BIT_UPDATE_FAILED =3D 0x91, /* SFS.10 */ VTD_FR_MAX, /* Guard */ } VTDFaultReason; =20 @@ -649,6 +650,8 @@ typedef struct VTDPIOTLBInvInfo { /* First Level Paging Structure */ #define VTD_FL_PT_LEVEL 1 #define VTD_FL_PT_ENTRY_NR 512 +#define VTD_FL_PTE_A 0x20 +#define VTD_FL_PTE_D 0x40 =20 /* Masks for First Level Paging Entry */ #define VTD_FL_RW_MASK (1ULL << 1) --=20 2.44.0 From nobody Sun Apr 12 13:40:22 2026 Delivered-To: importer2@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+importer2=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=1714663866; cv=pass; d=zohomail.com; s=zohoarc; b=lEiXK8CO6vJa5nqZJsF1Y35LggZB0UkNWjXLhzXTyS6zqWvxG41IKWime7046N+tvIRrft7BCxqNlYIvN73nK9PZdNN3euypYqsVfVHT4mvzbcBvfSlAeCwbJyQLzt+7uLLJklVpdD/13rnHFhy2b8VdShnp/bifYY6pHQ5kMV8= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1714663866; h=Content-ID: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=yH5QD3XjZARI9NR7JHkHrpYtjXbw3x4j6DHe+Uk9p34=; b=fHWaYuB7vrZPOw1dZ/UBfK9ZU4YwTb3JvOkJFjr9QmIZpwOy4fMbffOCQHtRIwlXKFJg8GUtAIWYxXnfiQF4nCcanpVdbO0IL/NTieY5RC70ZkPLRxP6muS3uY4KSim2mK4Vx/w7oWc5l0Kv928dLBozyoAAP6pXXIEA760lPbk= 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+importer2=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 1714663866133257.45329405491384; Thu, 2 May 2024 08:31:06 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s2YNU-0003lv-2R; Thu, 02 May 2024 11:29:44 -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 1s2YNR-0003jP-Bu for qemu-devel@nongnu.org; Thu, 02 May 2024 11:29:41 -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 1s2YNP-0005yW-9i for qemu-devel@nongnu.org; Thu, 02 May 2024 11:29:40 -0400 Received: from mail-db8eur05lp2104.outbound.protection.outlook.com (HELO EUR05-DB8-obe.outbound.protection.outlook.com) ([104.47.17.104]) by smarthost4.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2024 17:29:19 +0200 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by PAWPR07MB9661.eurprd07.prod.outlook.com (2603:10a6:102:389::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.29; Thu, 2 May 2024 15:29:17 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.7519.035; Thu, 2 May 2024 15:29:17 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1714663779; x=1746199779; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=yH5QD3XjZARI9NR7JHkHrpYtjXbw3x4j6DHe+Uk9p34=; b=toMgdF567XjLkFcqXXqv+aabqQrkWROcv71vGfroQ7f84jdPi3zxs4WB Hj+LKn7uoKB42roLCXe/tX2f4/akQFXEdnePAVM1SOhaRFXbEiLmrqPlg IYOORXuuDM5Hl80nfI38cku4h1jixAz7kKEU/0kPdHy0nNJ0i2PnOIcRf UceCYs7j0ykX3NbQKK+808JkSx5ubmqjjDmxpfnsnyPSWfOflqTomqw4I NQHvNNwq36P597RwyZ0+m+7htSyoKpUBYJgsZ8qnv6LSwoB6L8Vjf4F/f 3vj6kOVBLpKKnSghRhbn1YtvnMooWrgEZQ51XhkMwvkA4fgtSZtsUCT56 g==; X-IronPort-AV: E=Sophos;i="6.07,247,1708383600"; d="scan'208";a="11785878" X-MGA-submission: =?us-ascii?q?MDHxsaKT8oGbN/KCLq7J2z77+Md6gV85rvSIof?= =?us-ascii?q?eX0HwGZWvHc30MwDGwm4Rlzio5nuJ1wkOBkTKuuvn3M0H1IWgJZWqbCU?= =?us-ascii?q?Ur+yGVt1VBUj61zYhoxlCH4Rg2l5VVRLruYN00vmSZRDmlIXYp3s+pN8?= =?us-ascii?q?4yqSl4MheiYEsWOP5HjswBvg=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bKAoig41CblaGdZvQWnJThAYrtNea6rYTWfuOSZqZC9w2Ywai3hoIfFUqUS0k4DS6gQ0Yz+ELkvjKvpgRHhQyl1pJGmkyk9eEBdG9l0qLnw6X0Zc1NKPKfOEbYhNY+1w4bLoG6G7JO9tcVZ1f+u2jG8bblLJP8laiRQZPcnoeYVyeRHcX6+6pcXaAVCPMdjwVHDu9nGlcxgGA2QeHJOeuGfY8+qanKjz6fU1MwRPnuybyES2HVjzvrEcg3BA+8VHdOwN37TjizxTz+1d9TtOReqcYFD+y4fxcVWbhknEnxKM9Cir3+7Do64p3WjH91jjBHSZivfzRZFBe4Mb+nkJlg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=yH5QD3XjZARI9NR7JHkHrpYtjXbw3x4j6DHe+Uk9p34=; b=CeyVWycabrc67TsChfBm2C44Ap6MogDqU3GITJogJdf+ztTaj27FA7SfsrZbUzZjGxa0cklhIdj7zoDDO7DoQ3mD/TznJ5E6CRO/H/XzVxzHA9oXbHV2QiXr/tUl/rLcOrsT6GyfvlFe4eoOckt5PcAll6Yvj2gmuQGPivgViI9NlvPiRsKzXSCkTFE0UQPeQY9q1IQx1C2lUP+tDsy4268QALfnOnubFnB1X980ktaPVif+HKrP94xmbJeKsdlLn2UWpkFNOAU1iyJzZzjTKCgHAsu/en0YnUWEDVAIiIsjpsZujKjIjdngXqwGV9d1qJJezmkUr5B1BClqM4VKBQ== 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 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , CLEMENT MATHIEU--DRIF , =?utf-8?B?UGhpbGlwcGUgTWF0aGlldS1EYXVkw6k=?= Subject: [PATCH ats_vtd v1 05/24] intel_iommu: extract device IOTLB invalidation logic Thread-Topic: [PATCH ats_vtd v1 05/24] intel_iommu: extract device IOTLB invalidation logic Thread-Index: AQHanKV/BbmNxN7x/kOFdRktKrBWGg== Date: Thu, 2 May 2024 15:29:17 +0000 Message-ID: <20240502152810.187492-6-clement.mathieu--drif@eviden.com> References: <20240502152810.187492-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240502152810.187492-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_|PAWPR07MB9661:EE_ x-ms-office365-filtering-correlation-id: cc74c998-6551-46c2-83dd-08dc6abca1a6 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230031|366007|1800799015|376005|38070700009; x-microsoft-antispam-message-info: =?utf-8?B?MitGZ1BUTkdyaGZvcGI1NnRiVGxDalIrVC84alhnaEtaRnNSNnJLMzhiVlJH?= =?utf-8?B?SWFmMkxRUDM4SUdmUTNNcFZqM0lyenJKWk16TUhlb25XVm1TZUxpY0ZObjFr?= =?utf-8?B?dVRKaDIxd1NDVGxCMnZTUVJQZ3VxbE42YVZGbkNJakRYL2kyMTN3dGpscnNK?= =?utf-8?B?dWgrakI5RFhpSFdNSHdCTUxuRDdDdmlKb3FVQVdtNzFzK2JVWHBxWVBuanI4?= =?utf-8?B?ME5hOWF1TVNkcGQvMTRQMzQvUUR4NFFXMnVaZGpXV2t1eVlkcFVFQnBvQ01S?= =?utf-8?B?M1F2OUJtQ3Z1UUNpc21kMDFhVjlOUGtzRy8vTnZZdmxMSmNnNk9hQ1ZibjFY?= =?utf-8?B?Z3lMb1FGTkdJY1pocTRVTnFPL2FtUTBjZHdYUXNySGVyZzZObzdZV2xwdDVQ?= =?utf-8?B?ai9hOUVDNDVHbjBjK3YxOFBlaUFmSklCYlFTTWdrNE5NZVdjdXFRUVo2MG9F?= =?utf-8?B?R0pYcEs1dHhoWENBcTZtOWZHT3B4ZW1HOGRycVJGRlNxbUVrenl4Ty83T1B4?= =?utf-8?B?aVVIRUFZMXluenlsbGdlb3E3Mlg0cUk3ay9IQ00zT1BSbmRBV3VYaDJHSWFJ?= =?utf-8?B?VXlwb3djNk52SXR6a1JWdk15aUZMVEwyZzdqMHJPcTBsT0h6bU5lR1V4Lyt6?= =?utf-8?B?OTNDeDlld3NCTjF2Z3l6djJIWU04d1pMeUs1VHdZNEpqMXU3SmNTT1ZGOUp5?= =?utf-8?B?K0t1Ui9yVTgrZlRIdmNvbDV3RjZFYzJPN002MGRzSnNNYmdxbVNxZVpFN1h2?= =?utf-8?B?QTlPbDVuYTAya3lyK2JxcTNhUHlndnAwVEtPazdLN05kaVVQUGp2dVhrOTd4?= =?utf-8?B?V0VMUWVSWWRvTStiS2NlY2VpTktUd3BTTHJDZEQxN1FNVzZxVXRDT2Rnallm?= =?utf-8?B?cVJTS0x4WmFvN0RmMkc3alQxYW1oZlZnaGNEcjhxTXNiTXlIRm1yODJmS0Jr?= =?utf-8?B?cllvOGJSMlVyazg3ZmUzNUxBdjBnOHJVVmFaSkQ4bzVaZ2h5ZDdFQ0pkWGZL?= =?utf-8?B?SUI3TFBlWDhteEc5RzNocXMxK3YvRFNwSXNBeGVISDY5UHZCdEtKdysvajVo?= =?utf-8?B?aTdDd3poVDZ5VjdTM0huNkJnUGZlNW9HdG9xcEpPZ2RualdFc0tBOHhSNUhB?= =?utf-8?B?YVhlT2tncS9BYWxEa1AySGpybFBtZkZkMjBHeGJDNlVRU2NuUys1cFpTSUdH?= =?utf-8?B?eC91b0pzTHdWWktpZEJvUWxLR0VOMmlIdWJodGxrUTdvSDkrd2hiSUMvNXRB?= =?utf-8?B?TlhEdzE3OE54eFpVcGxZSzVWbDB1OUtJUm1KSi9hRjRjUU9raG1zK3RHNmU4?= =?utf-8?B?SEJncWEyYW1MZVZwMlZFMy8xSWVEOWJlajU0cTlaK00zWng5eUFaeWIrZDRG?= =?utf-8?B?UWF6NWtyNTYvcGRJK2hYMmFVS0RNbDVFaGhZWXJyV1BqWktmWmhGQWxLMGRw?= =?utf-8?B?Q1EvbENhdHBhS1pRN3E2eDBiSU1DNlJFa1pjMmFKaFlza1ZDKyt1UnpJZkd4?= =?utf-8?B?eXhaaDd6eEkwM0IzKy9QUnlEUllrYndyZkpsSnppaklNY29HbVpGU095TWh1?= =?utf-8?B?WTRBRC9CVHh5aDYySlpZSS9LMkhLaVFHaWZCR204OXVrd2hhZnp0Zkpiek9U?= =?utf-8?B?K3Z5SGtJVXE5SDFma3VmeGZFWWJMR1VjMUs1WCtPSTh4YnpoNXZzVVpKVFV5?= =?utf-8?B?UDBRWVBKb3JFdDF1YW1nbWgxQzJIQXRTMTIwbWxGZkpOOG1ZVVR5OGRNb1Ja?= =?utf-8?B?NjVTQ1R1aWNoblNLVjNBeWt0Yk9uU0tRT256anQrU0kyRXRmRDNWeU1jU2lY?= =?utf-8?B?RFJmajFVcG1xWHovYkY3UT09?= 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:(13230031)(366007)(1800799015)(376005)(38070700009); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?U3B1YjgrNXdyQlFBZjRTT25VUEdwcWEwMmJOcjQzNW9RSVJmZnl0QUVxMkky?= =?utf-8?B?aUV1SWhVMGJQRGRPc1NaSG5XVkM0d3lOaUkzL1p6TlpJYVZPRmNNOFVJazMx?= =?utf-8?B?T2RhV0hLTXBMMXY0YXF0Y3UyZWxqKzdQaitjT2h3dnBxTGdFa0pxS0hBaXhJ?= =?utf-8?B?ZVRDWXZxOWFhSWZxRnhydUlaTnllaTNmZmdtMGcrL0luNTQrM1lSdVF3dytB?= =?utf-8?B?MVZHUjRkVFNYRURoTVZaYmhuN1JlaUhYTFhQdjFMNnRGWUo5eFdaUlVYdGJY?= =?utf-8?B?V1haaFE2dzRONnVzR1cvaUVyMlpSQmpYZ2RQdUNDRGxXUzJvSUc4aGllT2lB?= =?utf-8?B?dEVOTkEyYnNhclNONVh3QWgwWktwYmVqQmlCMXVxMmNKWTlKL094a09aWkl1?= =?utf-8?B?T3FuVXFqeVJwM1JHTTRUc01JcktsZDg1QW5rY21aSVVxbGI0cld4Z2VNK3Vl?= =?utf-8?B?UVE1cEE1NkhnUFYrRGpwUkE5b01EcDZ5NG41STloeDZBVjIrOTVQQ0lXeHRT?= =?utf-8?B?SnVuWUo3SWp3V0VmN20yYm1JSSsxS1M5L01ZVWg0eUxJd2pLK2htOCswSWhF?= =?utf-8?B?b1dqYUk2SG9oVGJRdjdTcVhSTitVZzc4SnAwYWEwNk05YURuek0vZTE0QURt?= =?utf-8?B?clEyVysvYjNQZ2xnUlc2Y2FoRGFmL3A2R2trQ0NkQmFqTUFaRnhFWUZjTmFs?= =?utf-8?B?NmhZSVFFT3BidXpjeFJvYWM5c2tFR0V5U0crVGVCZ1Fkay9MZXl3UWFXRSt0?= =?utf-8?B?eTBIbjZjT1lYYi96TzhPa3RmZHdFc0N2ZElIaVZFWWY2L0xZRTRhak1qb1ox?= =?utf-8?B?M0tKTTg1eUJadEd5YmV5Q3AvMCtlak02WitMR3E4NzNtZlFoM3FtdlZtMzRp?= =?utf-8?B?Nk53K3AzRHhBUXpvZGFaMjNRK3hMWU1abUVsWkRaSk9WeHR0cmZqTlV0dTNm?= =?utf-8?B?bWJ3SVMzclNuK3BGcTBVSkhidXJQcHNhUXlZUytYZkJsM2hOZTExN3RUMmJ5?= =?utf-8?B?d1grYUZmQ0xPcks0QTdtSFU3c0hGUHhHQTVDcllzZTk4a3JlWDI0N3cyUDcy?= =?utf-8?B?WmVmb0ZJZStxSTlCUWFsWCtUbVBlNEVreDZtZE1BUkp6ZzVPYjVyTm1odVd4?= =?utf-8?B?Y3lMbkJkbVVEMXJOQUZyUkVwQ3FVWnZ4STdvaHdEeUR1MmhhMmIwclpYRkdT?= =?utf-8?B?ekNMeTc5LzNQeitHVVVReXQwN0xGcU1NYWt2VWxTeVZ6SjFKTXd0bzFBMG5U?= =?utf-8?B?Z1FvSXRKcnBrZDJxdnNPRFB6eFA4blppb0I1bnZjQnZ3M3VLY2JjeUdxZlFi?= =?utf-8?B?Y1dMTm1TMkROcUN6Unh1QU5QVS9nS25qbGtlVnhCWjVVYThSSDUvcVJkTkpl?= =?utf-8?B?QjB1OXNUNU01WndhTU9IbEtZUGswazBmZHgwektENitrQ1hQOTVPS1FnS3ZN?= =?utf-8?B?bDM3eGk4cnJiY3JTOHlFdU5FT3FVT1l6QzZvTVZFek5wNGpwK2Zia3VGcENP?= =?utf-8?B?STYzbklrOXZBd2daNG5GOXNzeVZaTHFLbjMwNi9iS3ZCUHF4WVoxZ2ROeHhI?= =?utf-8?B?cnFDTi9ncTE3c1BMMFBsUE8wcndGTlZGSEpIUGV6VzFqam9iSE1ZVk9sdHp1?= =?utf-8?B?ZWVzRk44Zm9PbFQza1RLdHJ1M1MyL0F3bnhiT2diOTdkeHJSK0lqejZOMWZT?= =?utf-8?B?MW50WXVaRGJEdFNTZjJkMjdlaFo4RjRVNUJvMTBOdkNzdUx0YVZMdnJtb3NC?= =?utf-8?B?akY1eXUxSDZqaWhkQVEwWjd2WnpMTGxFY09WRC9TVDZiNythYWNaSndyNElq?= =?utf-8?B?MnlmREF3OWtZalVuUHFpTnpIdG00V1R1TFJjU2FOa0lwdFNHdDJWenNVVm0w?= =?utf-8?B?SDNobStCRDZ5WGdUY21sZ01teTdrZktVWWRKbjNFemhLSjhVM1hZQWdYRHJC?= =?utf-8?B?VTBaOG9mRHBMYk9qVG9qSDNZeVpXWGNycDV3QjhZVnRvM0FUdE1JS2hNWkR5?= =?utf-8?B?VkR2MVJHdkR1dE5zZHRDQi8xVHlLVXNoVjJhaTdCTkxOM3l6Y0puYW11RDlh?= =?utf-8?B?cmx6b0tFczBkcmJyWURMM1lBdVNNUEZhbnhLRldFdVhWR2tZbjFDRGJyeElx?= =?utf-8?B?b2JURjE1TVM1TnJvdzRZVjVvR1VQbzlnRWp0dWJydEw1YUtOSHpMZEdqU3Vq?= =?utf-8?Q?E61oMiu1VcFNBSgF1pru9MY=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <6EE70DEDE65071488448D2A2E2150190@eurprd07.prod.outlook.com> 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: cc74c998-6551-46c2-83dd-08dc6abca1a6 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 May 2024 15:29:17.8023 (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: cNm2E0Yw/7BCmVM0/dJCqEN1fNbwR8vh6/Ysws4ba10XueKBgFDeZKBrpawj5yo9esvcu9zhD6re6Aql3xHnXMNpMZLBtGIhSJVPrFjvJXeCdqVxChk5POsDK9gjczMs X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR07MB9661 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+importer2=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, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer2=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer2=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1714663867082100001 This piece of code can be shared by both IOTLB invalidation and PASID-based IOTLB invalidation Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Cl=C3=A9ment Mathieu--Drif --- hw/i386/intel_iommu.c | 57 +++++++++++++++++++++++++------------------ 1 file changed, 33 insertions(+), 24 deletions(-) diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index cad70e0d05..85a7ebac67 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -4295,6 +4295,38 @@ static bool vtd_process_inv_iec_desc(IntelIOMMUState= *s, return true; } =20 +static void do_invalidate_device_tlb(VTDAddressSpace *vtd_dev_as, + bool size, hwaddr addr) +{ + /* + * According to ATS spec table 2.4: + * S =3D 0, bits 15:12 =3D xxxx range size: 4K + * S =3D 1, bits 15:12 =3D xxx0 range size: 8K + * S =3D 1, bits 15:12 =3D xx01 range size: 16K + * S =3D 1, bits 15:12 =3D x011 range size: 32K + * S =3D 1, bits 15:12 =3D 0111 range size: 64K + * ... + */ + + IOMMUTLBEvent event; + uint64_t sz; + + if (size) { + sz =3D (VTD_PAGE_SIZE * 2) << cto64(addr >> VTD_PAGE_SHIFT); + addr &=3D ~(sz - 1); + } else { + sz =3D VTD_PAGE_SIZE; + } + + event.type =3D IOMMU_NOTIFIER_DEVIOTLB_UNMAP; + event.entry.target_as =3D &vtd_dev_as->as; + event.entry.addr_mask =3D sz - 1; + event.entry.iova =3D addr; + event.entry.perm =3D IOMMU_NONE; + event.entry.translated_addr =3D 0; + memory_region_notify_iommu(&vtd_dev_as->iommu, 0, event); +} + static bool vtd_process_device_piotlb_desc(IntelIOMMUState *s, VTDInvDesc *inv_desc) { @@ -4310,9 +4342,7 @@ static bool vtd_process_device_iotlb_desc(IntelIOMMUS= tate *s, VTDInvDesc *inv_desc) { VTDAddressSpace *vtd_dev_as; - IOMMUTLBEvent event; hwaddr addr; - uint64_t sz; uint16_t sid; bool size; =20 @@ -4337,28 +4367,7 @@ static bool vtd_process_device_iotlb_desc(IntelIOMMU= State *s, goto done; } =20 - /* According to ATS spec table 2.4: - * S =3D 0, bits 15:12 =3D xxxx range size: 4K - * S =3D 1, bits 15:12 =3D xxx0 range size: 8K - * S =3D 1, bits 15:12 =3D xx01 range size: 16K - * S =3D 1, bits 15:12 =3D x011 range size: 32K - * S =3D 1, bits 15:12 =3D 0111 range size: 64K - * ... - */ - if (size) { - sz =3D (VTD_PAGE_SIZE * 2) << cto64(addr >> VTD_PAGE_SHIFT); - addr &=3D ~(sz - 1); - } else { - sz =3D VTD_PAGE_SIZE; - } - - event.type =3D IOMMU_NOTIFIER_DEVIOTLB_UNMAP; - event.entry.target_as =3D &vtd_dev_as->as; - event.entry.addr_mask =3D sz - 1; - event.entry.iova =3D addr; - event.entry.perm =3D IOMMU_NONE; - event.entry.translated_addr =3D 0; - memory_region_notify_iommu(&vtd_dev_as->iommu, 0, event); + do_invalidate_device_tlb(vtd_dev_as, size, addr); =20 done: return true; --=20 2.44.0 From nobody Sun Apr 12 13:40:22 2026 Delivered-To: importer2@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+importer2=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=1714664007; cv=pass; d=zohomail.com; s=zohoarc; b=P6cPfaISn+48LKHJlrgXAC6iA2aUNEXzEOmu4mecVdOIr0IThElZEjyRNy2tWE/jKEtbEqSY66TNCJaMFZ/SsjaLNrRI695JOY49j0AR94w/F5WxKIwQFIgQwqL9OwuyikSxFaSBJX/AQ7SHDdaSRj3RtHS6cnj40I8bLT+FH/s= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1714664007; h=Content-ID: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=XdRcKz4UzvZ+woWJhI3pztr087NyonzEBAqo9r9/ROk=; b=k/bKR/DzqE8Z/puAofU5SwM2g6kF2NnhYlRdjgh4gT7eCi2GZtXBUjLJV41Od4eXl4EeGRJOknZJfrNiQa83y0RiphCa/2LOGf+vUZKrl46WCSJujOfUtLXcQnYOpisXUnJissUjXXK1ggVKD7pfnh7vuH9GqKRdKL/4f2XuNe8= 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+importer2=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 1714664007135649.7027220698137; Thu, 2 May 2024 08:33:27 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s2YNV-0003mT-Le; Thu, 02 May 2024 11:29:45 -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 1s2YNU-0003lw-9O for qemu-devel@nongnu.org; Thu, 02 May 2024 11:29:44 -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 1s2YNR-0005yW-Nw for qemu-devel@nongnu.org; Thu, 02 May 2024 11:29:44 -0400 Received: from mail-db8eur05lp2104.outbound.protection.outlook.com (HELO EUR05-DB8-obe.outbound.protection.outlook.com) ([104.47.17.104]) by smarthost4.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2024 17:29:20 +0200 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by PAWPR07MB9661.eurprd07.prod.outlook.com (2603:10a6:102:389::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.29; Thu, 2 May 2024 15:29:18 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.7519.035; Thu, 2 May 2024 15:29:18 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1714663781; x=1746199781; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=XdRcKz4UzvZ+woWJhI3pztr087NyonzEBAqo9r9/ROk=; b=bW8NTR9UgNqYyzX22Hw3y5BmsUMRlO8godOXixOaok9txhbFcbmputxK 3iXhETOGtfbUrbvX5mYUPOqxhcVFcKO9zBOaUaSySjL08XLEbpj4TQBnJ 1Bh3+j5Ydnrbwpy8dzuOmNmUl2M8WpYJOO9bzXwcSd3mJ9W+QB6Tggbpp /pqdVgy/vpPQzdBYmNl4K3LRUoPVxssyv4u1Hx5+D5EdGiE2OLxjqCaqm wqenQL7RxAdcOLOTEk2Rjdz2r7TmyBfXBo80X8PMa3ZP3D+WXMnSrLpsd g1RcloTMInaPXBQ2bWz09bjoqoRGF4q2B+7CCDEa1ULwTf+Dfcr14mM+t A==; X-IronPort-AV: E=Sophos;i="6.07,247,1708383600"; d="scan'208";a="11785879" X-MGA-submission: =?us-ascii?q?MDFYmYZnZ2+CZm+r5o283xyc7GRQXGT9Zpl3xO?= =?us-ascii?q?+Mc16/pfi9PITnBQ1zUNYJk3jGmXfsBPwQuz/6sQ8s2NyZNwbKAEz2zY?= =?us-ascii?q?71W8KtBlbxIsNwQyfAfjLUe+MzrLTVKJhWsma3oGPdV4/R++KStbD9Xk?= =?us-ascii?q?2ACYQ1ERxdO9E1TVVfIvbN2w=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fka65gef2756AG75BKwb/UeE4lNjWZoeOHwruBMuQ8TSVY67tcxP9IVJLtqExzyDNoB1PB0bu1T9+mwvWJtWR7S2IZaSwyTvuZGpJRJkfpA6sN8fM3D8U449AB5wHHh8WuPa4DNd8H8AKJ+idZvneZYGoVr40Os9UT/ZpAPaOUziHT+lkT/J97gHsn04lD8MVSYTw78GFp8dGKk7ze+vWiod5LIJaQtmFpDO/Ub0daViKz7s0P/7YBKkeG/rJAbYkw12/D0qh6+8OcxtaaJu9ZcxSNls8NfaOy5cfDyTEgKjtUGSLMFPuAkakgeg/U/svKmO7Vc7uf0nd/dW0FHxng== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=XdRcKz4UzvZ+woWJhI3pztr087NyonzEBAqo9r9/ROk=; b=hE8Azm2pBfZmYQ+pxctKk7kz0xl5MwYiXLGoFmDcQ8f4SvB9BX1fZ1cBpmirPTeomRfrLcPc0QTKy7Knu9Ang7ZpNTP6L8qow1ti5sdRA8Za+lBW9NKqIjvCuTWgb1z38f1RrMilIDx0dGOM75IanYqHObI9lKHBxp0+HQueW4USnt58z9Y9101YzVIxIOxKHhEhVaJLzn1BqrXbVe8GSWO0baaMstFv9QOK6bTnu/0ddAUkcAN+IzX8QQVcxPs1gJ1YkN/anaEmTWiwXHBJGb9GPiygQTi94uidX0wZ8k3GmSVxhexm81bXpFvG05s8FphGOW9y3QO3fUvH+5iueg== 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 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v1 06/24] intel_iommu: do not consider wait_desc as an invalid descriptor Thread-Topic: [PATCH ats_vtd v1 06/24] intel_iommu: do not consider wait_desc as an invalid descriptor Thread-Index: AQHanKV/hE21IWhVrEugDPFECrFAVA== Date: Thu, 2 May 2024 15:29:18 +0000 Message-ID: <20240502152810.187492-7-clement.mathieu--drif@eviden.com> References: <20240502152810.187492-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240502152810.187492-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_|PAWPR07MB9661:EE_ x-ms-office365-filtering-correlation-id: afc943eb-b053-4b0c-a9bb-08dc6abca1cc x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230031|366007|1800799015|376005|38070700009; x-microsoft-antispam-message-info: =?utf-8?B?S1ZtWU4wOW0vNSsybTdpYm5JL3NZdVJueHRtcWh3ejMzcno4QlpoZFc3R09u?= =?utf-8?B?OGZOTU1HQnBwczI3cUR5QnhqRmh1d1pueis3L2tvUitGSVJyQkRvaGh6dndZ?= =?utf-8?B?REZleUUwR0NheFhyUFlJQ04wdmhXb3BRbFNoejNnWEZITUdqaHdVRUwwM0FE?= =?utf-8?B?dHNlT3VSM0dxZ2VYeHUyRWNmSmN0SktiSUxiYjBtQ29jMSs3UjJPMTdZdlFY?= =?utf-8?B?YUp2ZTZwV3JreFNmNzQ1akdCbDIxVW5XaVh4MUxveDE3ME9yWW5YRW13TjJy?= =?utf-8?B?VXNJZjJoeC9zK0luNFhkRFgvdFFhYzVScjJuTWlEaFlZclRPUnZaYit1aUFV?= =?utf-8?B?VlJLby9LUVYyVVB0aDR4amFkelpIbCtUQjVjM1U4ME5kbHlVY2xQMSthVFdh?= =?utf-8?B?dnAwd1l5eVRoQThYVmU5SUNEK1ZhQ1Jza2J0VUpGTmJTdm40U2hrdFhiMm1T?= =?utf-8?B?RkpkcUVrYnN0S2hNcnZYelpwZjFXNUVhT2poMFJSN2NUdThhZVhqUVRKSHNr?= =?utf-8?B?eW96NFNLTUhRYXlEazJ1SzFHa1FjamthbkdTYXlabVJXZEZSOHpqNjZ4TkpF?= =?utf-8?B?RnhocE81Q3lhY3pSZWZKU1BObXRPeDhsR2Yxd1FZMnM0RjFGR1pkeTZuaXJD?= =?utf-8?B?c1RtR2pVT0F4YW55SmE4ZUZXUE9VQ2l2cUtvR0IzallrWkszR2Y5bkc5cUp1?= =?utf-8?B?dlNxMGlXOXNWQ2FwSTA0L2NCZUJzd1k0MUJWcks4V3F0dEU5VlVCMUphUjhZ?= =?utf-8?B?NlNLaVptWE1MOTh4MHJvYTkyMXdwMVVDdUthcHJYSW9jbDlMZWM5YTNkUWZE?= =?utf-8?B?KzArTHI2OEwxRVlwVlBVQUxpdUlNZGZ2QWZ0Z2UraHJtMnNrNjM5N3M0OTl6?= =?utf-8?B?TUF2V2g2b0d5dk5RSERZVUcyY3A4NHdtMnpkdkNLRU5oazV6b0I4SEpVeXhH?= =?utf-8?B?L091b3pNWDl5eG1FR094dmpCVG56M0hnekJScEdUcmI3YjB2NVJyVHJ5VVFZ?= =?utf-8?B?S3NFMU80UzlxZVJQcE1qUFFhOGh3VjhQREtjMzNMaEl5Y1ZIMGdWUFBVdFNk?= =?utf-8?B?K3RydFZUVU0ydFYzUFQ5OW1xMndFbWhDcDhOTlhXWWJYaVE2SlhTenhMUWJX?= =?utf-8?B?aFFDMjdwTzFvY0lXV1FtajB3c2VTYm1KaVZtVW1TaWxybklHN25YWVlBUTJr?= =?utf-8?B?TG1nWnc4MmxyUmhUMnZNRW5lLyt4SG04TVU0WXNvdnlSdlJNNEVSYjRhM0Zn?= =?utf-8?B?UzE2ejNEaUM0cGNtWmg1cDJUay9hN0RCRnhuZWtGVzlWZGtLcWpaZHg3cW5U?= =?utf-8?B?MEswSStsNHJPQzR6WmlIN3NvcVhScXQxSnZHTTVTZ3VHdnpJcXR4NUhTYjR1?= =?utf-8?B?MHg0UnBnZmR5MGZaZFBrd2gveVpBem12NWRmQTIybGhUejRtSHlTWW9xczFh?= =?utf-8?B?aGdMWUFJR2Zva280cHNBc0MrWlRHTlVBc0YwTGZKL0FFWE02U3Juc2VuU3BM?= =?utf-8?B?K1ZoQVBGYjBMWU45cXhBbCs2aWVvbHdqbFZsQzNtdTdpcDFMSkpZZXdlNlRn?= =?utf-8?B?bkVyK0NzWTcwcDVRTFluNnFHRWVpd0QyM1RTRnRVYzVVc1RNck9rQ2xaNmtO?= =?utf-8?B?RlB0SUtJODdubXY4dTR2MFFKdVNJbmIzSnJyd1VEdWEwc0NiZytsNTlDUnVx?= =?utf-8?B?VmFmZjZLUWpIT1pLbFVYcVM0YmZ0V0dVK2dMQVE2dkJPem5VMnZBYmpGYXJU?= =?utf-8?Q?ER9PmlNOcTWn3JabzTa5ZHQr2xt3YQqTsWrXWpg?= 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:(13230031)(366007)(1800799015)(376005)(38070700009); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?TERZQzQ5NnZ5T09TNTlMMHJHUW9VVTFBZnVVMTNKVUdvcGU3SDl2cUl1U291?= =?utf-8?B?U0tJZXY5bnhwZWNrWWJMS0tUdEVIMHlhbUxWZ0gvNWVIbUxXZFVBeXIxWCtM?= =?utf-8?B?TjloQk0xcno0NXo1QUVxNXI2VEJaV0Z3SEtFbW1wekhBbXZlTUhKNmNUZ0E1?= =?utf-8?B?K3BaTzMyRjA1emJ0UFl1Y0JXK05oL3lQY29vbGZhWUppTkdEMUJleW5ZVU1y?= =?utf-8?B?T3RhcW83dG1WRCtMajZZZ3NBYnIvMitITkpDa2UzS1gwd2duUnExcTAwZ01y?= =?utf-8?B?WnNjcmdGRGZRbHRpUGpMZXZOTnhUdzgraCs3UElvSVZYM0tPU3JpRWljcGow?= =?utf-8?B?OG1pazBUY3NQVkQrT1B4OHpGcEhvb0xZQ2g5Tm9wYVN6WEFyWFVxMzVZTW4z?= =?utf-8?B?cDVtZGZqbUhhUkVISEV0Nklrd1c0TFFkblh1L0dIeVY3anpxMkp5U1Z3M2F4?= =?utf-8?B?dTRDTTUrRms0QmZFc3Q0UTM0YkhGSXVvM2ZTSEErT2RwWnhsQmN3NzZ5bzNH?= =?utf-8?B?R0ErM2p5VW9NU2lFMGN4bmJLR1BiaWZ2cVgva2hxVFFLdFMwWXF5cGp3dUxn?= =?utf-8?B?M0JDblZVd0NJclE1VVNpTjMycWlSUzVVV1hLeldzemtpV0VvZEE5cEFoQ25P?= =?utf-8?B?OU0yZU9henJtUXBTMEpWcEs3QThUSGlMYjFmWXNGbzVaU2I1bGk1ckduN3o5?= =?utf-8?B?RWhiNjVrcE4wNFFhWDdQbGk5TWJxdEdGSzZYWUhlaGQ1N25IZFJrYmgxczJS?= =?utf-8?B?dDB2RkMzdC9rWExLdVpRYTN6TnZJMXFIaUdXRUt5L2plUXVvd3hveWxlbmFi?= =?utf-8?B?YmpqMG91M3VKandJNkJwa2NWTVYwQkFSV2F6VnJzYzRVVUZRMDFjcWtqSnlu?= =?utf-8?B?Tk9Lbm9IUCtiaW9MZ25EK0M1UkhPbEFEamdQWm84L3RTV2xOWXZkSjAyMEpS?= =?utf-8?B?SU1Ody9XQytKRFc2TmdFc2M3WmRtR1ZEeDI4REFCZjU1ajZJOWlSMlpnNUd4?= =?utf-8?B?bk1qelpIWlRxdnZBenJrT3E0UmNUaDRoM0dtUDJ0UlRCdzQ5L05MQjBodUNn?= =?utf-8?B?a3Y0cHkvMnB0WWRTNm1OTllJdWZWZUQ2SHJkL1ErZ2d3YUZ4eE9LNG5WdGF2?= =?utf-8?B?b25VT3A2bkNvRERuL0lRYzdndm5Iam1wYmJqNnJjTjVVVDM0bEc5RVpWSXdI?= =?utf-8?B?ajBxYXZjbjE2S1hWVWJvaHhZS3k1QVhiWkoxZmdTZ3pKTllPRTF3MWI3TU9G?= =?utf-8?B?a0dJdGJkTWdhSnhZdWh1VGhnZURKMTkxQVJJRmYrMmd2cnFaTzc4amZWQThH?= =?utf-8?B?S0NXV0E5MSticlZHOENPTHZVVzBwZ3IySGJ4ZG16a0xhZmhLV2N0MUJmOVNy?= =?utf-8?B?SzYvMisxdkxPRHVpR3JBRENMMkFRazhVYk9HVzdscm9pcEFieW9YVnBycTBj?= =?utf-8?B?WjVUbG0zczNKUFFSWDZtTmZXNGszeUFmdXVHelVRd1lPUEhaY3ZDRyttNVVV?= =?utf-8?B?My90WnVkQXN6dkJLVEpyTm5XMzlyU0kweGllNmpHZ3o4MWVxNVZNMW5vVVdz?= =?utf-8?B?VlFqbDFTRS9FRGY4TDIzaU5Ia0xxbFFEV1hOeFVxYTV5NmlneDBwcFljMnM4?= =?utf-8?B?VGNha1BuOWNTUjFkaEN0dFRkQnVTcXF6alJhaWkrQ0lwb1QrTGZYZjYrTHYr?= =?utf-8?B?NTM5bkxOVi94K0cra2JtYUdaU1N4ZzVRdUt4SHB2bzJra0diR1MwdHo4czc1?= =?utf-8?B?QjZaUVhuQWZ1dVRzNGVmSU84UTEwa1dnQlFmTU1Hd2VXOVZ1Nzd6NE1mSWU4?= =?utf-8?B?Z1BJbUFFTXFNY3laM0ViV3d2NEljcVUyVE85d21MVURnNXFYbnF0SnJCRVg4?= =?utf-8?B?S3NCRW41a005ZHpzNXh4ZTQ4OFo3WXhNWmxnY3BkZTdRTjVsdUY2MGNEWkt0?= =?utf-8?B?Z0ZSNDJCMWc2UzgrREpYeEhBN3RpVTVtcGhyb1lBNE5sU05odUpBMWF2c3Zy?= =?utf-8?B?WWNENWYyZDFWdFBHd043SUx6akJrNC9hUEJFSXpKM3pMc0E5c0t0dml2UUY2?= =?utf-8?B?WnF4aUdXZVJwWTdjMTFRVm9kTVFRYTV1WFpLUkNEaSs1OXhFcFFQL25BSE9H?= =?utf-8?B?aFk0U3hzNy95U1Y3c1dKeWxpeVYyMElOb0taWFJTWitKRm9yc2hVd2tZM09y?= =?utf-8?Q?6jMuuv+zrQPnCNHTNZ9Ye2s=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <1150C7861368194F9FDDB4AA94F9EE68@eurprd07.prod.outlook.com> 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: afc943eb-b053-4b0c-a9bb-08dc6abca1cc X-MS-Exchange-CrossTenant-originalarrivaltime: 02 May 2024 15:29:18.0512 (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: 8OFPuYCEOGtAoipD7JPbbFS95PpytgZVCb1GGjP53Z1icdQurrhES1mrVC19b6FcMwjrMBiqM+o8xE1kon6RNgXdrqGdSOCJLbn5XPYRF0pJH6AKHXA5z8HiXpbuBo0C X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR07MB9661 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+importer2=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, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer2=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer2=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1714664009423100005 Signed-off-by: Cl=C3=A9ment Mathieu--Drif --- hw/i386/intel_iommu.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index 85a7ebac67..c475a354a0 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -3365,6 +3365,11 @@ static bool vtd_process_wait_desc(IntelIOMMUState *s= , VTDInvDesc *inv_desc) } else if (inv_desc->lo & VTD_INV_DESC_WAIT_IF) { /* Interrupt flag */ vtd_generate_completion_event(s); + } else if (inv_desc->lo & VTD_INV_DESC_WAIT_FN) { + /* + * SW =3D 0, IF =3D 0, FN =3D 1 + * Nothing to do as we process the events sequentially + */ } else { error_report_once("%s: invalid wait desc: hi=3D%"PRIx64", lo=3D%"P= RIx64 " (unknown type)", __func__, inv_desc->hi, --=20 2.44.0 From nobody Sun Apr 12 13:40:22 2026 Delivered-To: importer2@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+importer2=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=1714664039; cv=pass; d=zohomail.com; s=zohoarc; b=TsNpDpfqF2HI699S327sRvJN6bXTu/t1loK4T7QMf1uxwcBKtMTVVb/rYulRR3z3bsPZeNnQKKyRTjapASVR8lMhd4NIRLXi5Z6QelixPp3KqGzzGnKvho33NEHdLljOBnAqZCp9RXUr5++wPaMg7bX4R0oM2gmesPNhR95e/r4= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1714664039; h=Content-ID: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=jM1EHjhFLT2EkJoFivJljUJFgLUgd0qqSvusSb1EhyE=; b=C0vqwoiHeaY4Gr8S9n/ui87KbWOH1mZldI5ZKpeAu6FM9dgEw3ffSjkb7TioiAebC9q7vIIZuR6lKM+ppGO2x77xve71U5kpbwOHMxZwVEHp7IUGl+ykXU2diaSHMZTu6o/zoj/tgFrNnDlgBs91zZ4s6O49n7nm3ZOdn1DMvMg= 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+importer2=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 1714664039392952.5182804373159; Thu, 2 May 2024 08:33:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s2YNX-0003nY-Jg; Thu, 02 May 2024 11:29:47 -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 1s2YNW-0003mn-Gf for qemu-devel@nongnu.org; Thu, 02 May 2024 11:29:46 -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 1s2YNU-0005yW-Nb for qemu-devel@nongnu.org; Thu, 02 May 2024 11:29:46 -0400 Received: from mail-db8eur05lp2104.outbound.protection.outlook.com (HELO EUR05-DB8-obe.outbound.protection.outlook.com) ([104.47.17.104]) by smarthost4.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2024 17:29:20 +0200 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by PAWPR07MB9661.eurprd07.prod.outlook.com (2603:10a6:102:389::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.29; Thu, 2 May 2024 15:29:18 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.7519.035; Thu, 2 May 2024 15:29:18 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1714663784; x=1746199784; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=jM1EHjhFLT2EkJoFivJljUJFgLUgd0qqSvusSb1EhyE=; b=WV5EC9r7I99sytiMrtXA/K4FOFpKHy/lcwJ70+AUKADv75bywd6ZTOEI 1dShO2YYDRMOkJjV/g01cMLZqvNX9pJ9aotCaguLlP3O25o/YQB5SVrRC ZDznfwOeKLNST2KanVC5W/yGLbeTGXfPm25he+qVjWQfQOaaDyHU6Rv7W KEh22N1VpucqblOSmfhe7yZ4hHDPPxU8IR461/Z64N1DgGwT/EY0tuNQY jGsp5byzMYl9L9HR/SRLUgdC+3K36uGGt4UZhYIEg8OL3RXzc9EGormfu TJX4n2qlY5tF7TehAX8UWhhY7oFG+JeFfPo6C12gRUVWv7UUTPtEuAoJr A==; X-IronPort-AV: E=Sophos;i="6.07,247,1708383600"; d="scan'208";a="11785880" X-MGA-submission: =?us-ascii?q?MDHedQyCWxBvme6j69c45I3Xc4XetY9H5xBY8k?= =?us-ascii?q?Sfr1uMvRIsLYHTBfXl44jQ0CXGLABIPY9QWOW7oSIWck0iRExaqonP2T?= =?us-ascii?q?YYs1u0AI1l2P2XLrg8hBSLFsvM7Gph6ncSoQvtNjqnAFjPFKsZX472PW?= =?us-ascii?q?Mei5I+z30HWnAH+dnOS6VWbg=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PpC/1Bd3Dsf1yT1rX2EnGOzyVWP6R10KOVvhOegzmDIZ08cVyUjRl7WQFT09f8sZELEBAGz0YsTBrXqmZGO+97JTAXJ4w8stApivkKy83oGl/kzyUThhuqId0VonLYmE8ps2+pb3EvDN2H9Ba7v97faJwvMYQoplfWRPmCfUrFRTBn/JUzG0nVvg5YPAHJmK9VbBtGK9+nz64/0T2MdJVinZSdMc1Dz6peNaOPkU4V8NUr/gNSc5+pJXMbG8KL8Op99VQU+QvO5xMWRC4XeqKAw9PAOUsFo37Tefj0Joh0HXKP5SJUEoR8QxMM6EAMGxshl47t0DncLfaoN08NcItA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=jM1EHjhFLT2EkJoFivJljUJFgLUgd0qqSvusSb1EhyE=; b=iWu+Xqx2xAwRWOttzuLuY5ueIdBbcSC73BiTa1iXlVWbPSX+L7ygVM/2wGuYXk4wlqxXCtSsADGRVI33nIdglVxx8zjt9vJ36mU6reVkUAl/bFuH7iX/1vaTPOaw3hYFeErWAjfBBBlO8wFhO3MrZqezroKxsUHQmHpntytYSeBOPQwSBxp1xmRVD/VqYiH83Ep6VlIbCrUW5yLEcX63JQnRLACKn6zr3c+Raqjm7vFmFfucVS8rKJ47GZ+zbe+oZGyCdRTq3lSfcYDGrhowZtOlMdj9spx5E6wisnZ/d/DAoaVw7BTUYFbxcYO1rqjLdOa1tF59aycGOMxWkC6Hqw== 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 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v1 07/24] memory: add permissions in IOMMUAccessFlags Thread-Topic: [PATCH ats_vtd v1 07/24] memory: add permissions in IOMMUAccessFlags Thread-Index: AQHanKV/BkiYnlnArkGPo2DOdz2MPA== Date: Thu, 2 May 2024 15:29:18 +0000 Message-ID: <20240502152810.187492-8-clement.mathieu--drif@eviden.com> References: <20240502152810.187492-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240502152810.187492-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_|PAWPR07MB9661:EE_ x-ms-office365-filtering-correlation-id: 0dda3ad2-c5b3-4776-caaf-08dc6abca1f2 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230031|366007|1800799015|376005|38070700009; x-microsoft-antispam-message-info: =?utf-8?B?VFFtWnltZ01vZEpDeTgxT3RRekFnRnBIaHVVRTVuMnBTWExqSSsyUDVhOS9M?= =?utf-8?B?QkNwd294UHlkbkwrWjlhUTV1OVArZ09WSFF1ODR4WUdnOUUvUzhXdFo1WERi?= =?utf-8?B?dmVZZGJDRC9rTW1TOFdUYThyNFJHZE5uaEhlelpaWnJERUZGNDNDQ3VKdDZp?= =?utf-8?B?Rkx4b20vUlRHOG50WGk1YllVOEZwSHpsOHhxcis5N3QzT01WOWxJWlhsalVx?= =?utf-8?B?ZTJoaTFhRHdCMzNBb3BrREc0QllDcG5jWlkzRjVsRHRGY3EwZWRVVlhIamhH?= =?utf-8?B?RDYzaFdpK3NMaiszSko3YkhVRGpNRE15VVJPR3FocnZtZFVGVld3Qld2OGl4?= =?utf-8?B?amJuRU5ZejdkUld2RTZ2VjVMVTZOMlMrRVE1NUdHVUpmZEU4VGY3NWhKVGNE?= =?utf-8?B?eGVORFpvQUpxSE9JOGxiV1N5dm1DRDFmbHRPNHlVb0MwNkN4bk03L0V5R1ZZ?= =?utf-8?B?ekhhZURhSmJ5SU8zN2E4K3NTbjRDUVd2Q0ZzREJHcVNJMWtLTnNKZkNqTTRY?= =?utf-8?B?bkdEb1h5R0I3aHJObmRrUm5oK2hGY21yODFaTm1EV3ZQUWk0U1ZLZzVycFQ0?= =?utf-8?B?YXVIaGVLS0FFRFpNR2wxT1Z2c2hWVUpXeERVSGhqZEJTeHU1TWhHVFRZbVdM?= =?utf-8?B?VjQvTjRmZTBWWEF0VlZWVEIrd085MHZiS3NESTgvVnZSbTFRUlRya0gvZ3Y5?= =?utf-8?B?VFB2eFVRbGVhZ0RDQkZBNHdGN2c3cVpmbVRKNTk5UXMweUZJUXJXVk5TOHIz?= =?utf-8?B?SHZ5TWJiWnJIV050cTFnQ3h0NjAvM01kelJ6SFltaTlGTEdtYXZGN2ZKS0Va?= =?utf-8?B?WGpiRjRDRTYyRXZKMzNGdjBqczJPd29Jd0tqQkRYZzNqZlNGa0V6clRXNTZX?= =?utf-8?B?STBLREVjT2haS1g2djF3Zm4vNEpBeURQSThIRnhHNHVUNW1ZN0V4Q3lOU1lv?= =?utf-8?B?dHNiYnMvRnhOMTd5SXBVSTl3a1BWYi9jU0c5bmFLNk5XY3kyd1JqcmFZelpu?= =?utf-8?B?M2JEY3pnZHRuL21JQzQ0RGJDNTVwcWdwLzNkSU9XRG5mSk9MR3dtL2F6VmM3?= =?utf-8?B?NlQyNS9aTW9jM2lZb05nb2VoQjVBV3BCWUFoT0dzT0p4NHBrUU9RaEJWaTNq?= =?utf-8?B?VmJ1cU1aa1lIWHowTWdiWjZJSzB5MmRyQ1RneUh3Z08rREZLRm9EOUhUN3JV?= =?utf-8?B?c3JuUUN4TUVvTVQxTnh2Wmh6bHZ3ZDZXa2xkMmtiU3BubWxJRllWZzJFYUQ4?= =?utf-8?B?c2ltNWg2MG1BNkdGN1FVcXh2b1VIT1NyZ2w0bHkyRjZVSVljQWRRV1UwQ0V2?= =?utf-8?B?bVVib2JBTE15aDRCV2d0VkV5TGR2VjZnN0w1ZE53aFZENFhDRU8xd1IxeDBn?= =?utf-8?B?b3hScDkzL3ZWSVhnVGZDcFJkYlFTbTE5UEpHaHl5bGFHZFhuaW53UCs2S1c5?= =?utf-8?B?bStEaDFYQ1VXQW1ISkZJclZnQi80M3l6TTlmN0JKbGR5cVcwRW9VaERRRkx0?= =?utf-8?B?UEloTVUxbjUvRUxqRW5wd1JmeGFxL0YvOFBsMzFTQ0N2RnpHOGlQSHpoaGRE?= =?utf-8?B?QmlMVHBuQyt5SFBhalg4R3cxNVJPUnE5UGxqQVR1c1JnYkVodVQ4Z0ppTUlM?= =?utf-8?B?QTMxS2JmUVpWUFR2aWU0Nk9WT0hwNVZuZkZzQWYxcWhLVVNZNDNQZW94czVS?= =?utf-8?B?R3ArZGgreUNGbTgxejlZcEl0b1oyVnVpK2tZNUtLZ1hoSEJmU2FqMEVpb0tT?= =?utf-8?B?WWNNZzFPMmFHQnBybzRGNi9YRmlhRi9lVUxNTzNKS1cxYmc2Qm82V1hoMms5?= =?utf-8?B?RDlua0l2K3JrbTM1Vldjdz09?= 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:(13230031)(366007)(1800799015)(376005)(38070700009); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?T3pTWkhpR3h1Misyck1oMEF1bGM5Qk9kSU5qQlJzZ05sYW41VzdXQ0RlRjlM?= =?utf-8?B?UktGNFVjZVhSdUIzQXd5K1FiMFNZcGQ5WkJqbUtlU0V2R1FMUlhrZHBGdHg3?= =?utf-8?B?bmJFR1Y5bWo2QzhZeHozckdBMW9XZ3RGb3QxNXJ0R0hkaXVzbUw4U1FWZzBN?= =?utf-8?B?RXpUakhIWWlYcG9aVTFVWDRVN2RGQmNDS1luMmRpaWd1RWtwTldaaUE5UVhM?= =?utf-8?B?cEtYb3BYZjhKZWF1MDdDUDZlcGU4L2VDSm85UVBIaTdMWFdxNkdIeGg1RFZZ?= =?utf-8?B?QklGV2J6REpWa09OelVJU1o3bm4xQ01ndU5TVTg0OC9UMEVwbDBHVFlnZUhv?= =?utf-8?B?OE9hbGZJQ3MrLzdnMEVnSE5QZ1FJby9wSll6OXRsSWI3UFdRay9hdEJxSEdZ?= =?utf-8?B?dHJ2a0NXYWpwYlk1a0ZaWjBKZGpyOXZWSmY3UGxXVkx4bklzTmNkbmFjY3lE?= =?utf-8?B?QStxK3hlTHR6dUNINm9KWVVyNHBqL0VLbVdOeXliSk5wdzFXM1lDUFNRRi95?= =?utf-8?B?TFozZDkzRDdWMDgvQml6Skx3U3JnQkhwc0hqWFVlYXVjWnA1RjBscU9RZ2Uv?= =?utf-8?B?Z09VSFJBREE0b2I5ditqZzM1N29WY2RiODhyaVFKTUxsdFpRSHVvZU1IbzhV?= =?utf-8?B?azZpYXF2bklYby9ZYVJxNG1aZ203bjNUaFExWERCQUhOMXQ5cEY1ZTRaMVNt?= =?utf-8?B?UWZjdGRPSUV6Y0M1Q3JzbXJTVnE0RzgyQW1BZFZxbUxRV1gzQTFSNXQ1TXRY?= =?utf-8?B?U2NVNlYzV3BoZDZZNjU5aDlXQWJrdURwYXJVTUZ4cmwwaW01c3VUampZaXVU?= =?utf-8?B?QjA1SDRHQUpQR3VlYmVzNmdwME90aDVJY04zWTVUTmIzSTUxNHphNVE4ODVE?= =?utf-8?B?K3U3NVlZV3VpZmdueEErREErdWZGZHF3cS9xa2ZLTjNpOFpYSHBRbW4zdHA0?= =?utf-8?B?Uk1IQXlBeEpWTm8rZHgzZDdFMkZzRG80TmxIL3B5cmdjanVZc3RFdHc2Tk9j?= =?utf-8?B?eGZWcjRRUStIVzhIRGRtOWdwa1hCT3Y4OExXeWkyMm9xSmtCMTcyWk9IVXUx?= =?utf-8?B?WHdXS1k3WmNPd2hUa2VpYmY5N2J5NWsyUGRLNEZ1aTFzRHVvWEg2Ny9qUG45?= =?utf-8?B?Q1NNeENhL3hPbit6d3VjS1c0Z0dsTUF6MkhUOW05aERvMENhWUM4TW1MV09Y?= =?utf-8?B?M05YYzF5ZE9zN1V6OU8zbzE0N2FqQUtMYzBDR2N3c1NwaXpPZTNnUkh5bHBq?= =?utf-8?B?Q2l4cHV4aGY3VnR1bXhUcDVTSlFaKzZ3S0ltY0ltZDRNR0pEa0V3emxGRzZR?= =?utf-8?B?SUs3VmVLNVZId1U5eWRQS1lsWXBZZ0hkZGdsRFl0WjBKYUhtaUVuYlRVVGUy?= =?utf-8?B?Mmp1a1RVVHJFZ2xvcFhuZ202VG1WZ01paXNiVnV5YktIN0c0VDRmSnpubEY2?= =?utf-8?B?T3RUbnFNUWVMVkEvckVINm01dTJSV1dMZXNpaURTanFIZjZRUm1NMDRRTDdp?= =?utf-8?B?OFZCTzFkL2NyNlhKU3BCc3lWNkovc0d6NitZUXRJTE01ZU1pUHo3TlFQd1gv?= =?utf-8?B?WW5NOWN1dytnU1k3Ymp4RTBRbzB1NDVMRGxqdHlrbmJVUDRqM25SM2lBV1VH?= =?utf-8?B?T3JVZk1iWmM5dGpZbzVSbzFZeUxPajV3ZXVNdTg3SFZPRFJ0U05NcTA0UlJr?= =?utf-8?B?RjVBMnJ2TlRSc2pMM1JDeXpjbVBzMU5tOWo3bFRuNXVWSjg3b3JXZy9oQ29B?= =?utf-8?B?bG5FWWVnN3lBU2grTFUzWmxXQUN0eE1hVndDeVdlNEdFQ091V3ZpSFlPQStH?= =?utf-8?B?QUxEYm1UOUVrb3RmaTEzNXQ4T2g5a1RXQ25CUDJVVllLQWl2eWk5cC9LVlRC?= =?utf-8?B?SUNkN1hWQ1BnUnVKaU9lV0dlYjBRT1RuQVhXR0hDL2dKUTdxTVRPT3RLVUds?= =?utf-8?B?ZXRvbFRhMnFoeWo4R3J1YkcydmlkRUp6SDFRNGxOWVB2ekkxN1FCSEh5UU1p?= =?utf-8?B?ZXpPUm92MjkyMzBRMzc5NWJQcVVYYmV0QS9OUVQyYmhVNlorb2hXbEVqNGd5?= =?utf-8?B?cVd5OE4xd3RtK1Nja0RzSjBmNE53WTllSU9VRWpSQVpuSmc4Y0k3eVgvcENv?= =?utf-8?B?WEZ6aTcwYlplKzY3eS9RUTRWY1N3YS90RFh6dVZ1WndwZStBM2krS3VpS2tT?= =?utf-8?Q?okubMOLaKasBOjv7e3GGq9k=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: 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: 0dda3ad2-c5b3-4776-caaf-08dc6abca1f2 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 May 2024 15:29:18.2838 (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: nM2XyIYeT6yRO6/8eV3+SxoRXwiBLj0rtfNfqkgX4P7KqPX7IzL94on+2FYCI1XAaQBRFbqXJ8pSCAmTjrpvqdUhLu7FXHdt2dr3Q3+cCokF8j+zpdgE5ElV3CGNFApG X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR07MB9661 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+importer2=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, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer2=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer2=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1714664039560100001 This will be necessary for devices implementing ATS. We also define a new macro IOMMU_ACCESS_FLAG_FULL in addition to IOMMU_ACCESS_FLAG to support more access flags. IOMMU_ACCESS_FLAG is kept for convenience and backward compatibility. Here are the flags added (defined by the PCIe 5 specification) : - Execute Requested - Privileged Mode Requested - Global - Untranslated Only IOMMU_ACCESS_FLAG sets the additional flags to 0 Signed-off-by: Cl=C3=A9ment Mathieu--Drif --- include/exec/memory.h | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/include/exec/memory.h b/include/exec/memory.h index 8626a355b3..304504de02 100644 --- a/include/exec/memory.h +++ b/include/exec/memory.h @@ -110,22 +110,41 @@ struct MemoryRegionSection { =20 typedef struct IOMMUTLBEntry IOMMUTLBEntry; =20 -/* See address_space_translate: bit 0 is read, bit 1 is write. */ +/* + * See address_space_translate: + * - bit 0 : read + * - bit 1 : write + * - bit 2 : exec + * - bit 3 : priv + * - bit 4 : global + * - bit 5 : untranslated only + */ typedef enum { IOMMU_NONE =3D 0, IOMMU_RO =3D 1, IOMMU_WO =3D 2, IOMMU_RW =3D 3, + IOMMU_EXEC =3D 4, + IOMMU_PRIV =3D 8, + IOMMU_GLOBAL =3D 16, + IOMMU_UNTRANSLATED_ONLY =3D 32, } IOMMUAccessFlags; =20 -#define IOMMU_ACCESS_FLAG(r, w) (((r) ? IOMMU_RO : 0) | ((w) ? IOMMU_WO : = 0)) +#define IOMMU_ACCESS_FLAG(r, w) (((r) ? IOMMU_RO : 0) | \ + ((w) ? IOMMU_WO : 0)) +#define IOMMU_ACCESS_FLAG_FULL(r, w, x, p, g, uo) \ + (IOMMU_ACCESS_FLAG(r, w) | \ + ((x) ? IOMMU_EXEC : 0) | \ + ((p) ? IOMMU_PRIV : 0) | \ + ((g) ? IOMMU_GLOBAL : 0) | \ + ((uo) ? IOMMU_UNTRANSLATED_ONLY : 0)) =20 struct IOMMUTLBEntry { - AddressSpace *target_as; - hwaddr iova; - hwaddr translated_addr; - hwaddr addr_mask; /* 0xfff =3D 4k translation */ - IOMMUAccessFlags perm; + AddressSpace *target_as; + hwaddr iova; + hwaddr translated_addr; + hwaddr addr_mask; /* 0xfff =3D 4k translation */ + IOMMUAccessFlags perm; }; =20 /* --=20 2.44.0 From nobody Sun Apr 12 13:40:22 2026 Delivered-To: importer2@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+importer2=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=1714664002; cv=pass; d=zohomail.com; s=zohoarc; b=OYRVw4hxfzDQ+Vt9m/7XyOMd9F55BGqQ+o6SXR9GxC9qD0Ny6XPZ00MylgJG9aJhNogy5fQQPXa7DvTxwHRmf10YbdMANDU8pSlmx+HQXkxrA5codH35GRG++wiwksSw3QhF71TqmsGNIeo/8t0X/cCnf5d0yD2UYSJyacBSwZc= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1714664002; h=Content-ID: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=9FxV2pX7chRK0bdJDSW+G+9YHH7CXug/vkDSNtE3+PE=; b=k8znM5+iKwXqxJUclRc4dUrLgvHknjY94OM5dNIaUzgaZrGSkVBop+pHAfd+3CLCB4wu8R9CK623pghsEGNbCGshkDL0u71L1TvDl7ZM4lwasfp33F8YgF6xuyuMf9v1Ob86qIU6HUNe+wQljh+0MsKLhgPpkAXOV2b0HddNl6o= 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+importer2=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 171466400213238.01334017454326; Thu, 2 May 2024 08:33:22 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s2YNY-0003oF-Ar; Thu, 02 May 2024 11:29:48 -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 1s2YNW-0003n1-PW for qemu-devel@nongnu.org; Thu, 02 May 2024 11:29:46 -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 1s2YNU-0005ys-UQ for qemu-devel@nongnu.org; Thu, 02 May 2024 11:29:46 -0400 Received: from mail-db8eur05lp2104.outbound.protection.outlook.com (HELO EUR05-DB8-obe.outbound.protection.outlook.com) ([104.47.17.104]) by smarthost4.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2024 17:29:21 +0200 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by PAWPR07MB9661.eurprd07.prod.outlook.com (2603:10a6:102:389::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.29; Thu, 2 May 2024 15:29:18 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.7519.035; Thu, 2 May 2024 15:29:18 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1714663785; x=1746199785; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=9FxV2pX7chRK0bdJDSW+G+9YHH7CXug/vkDSNtE3+PE=; b=b16vJBOm5WRvRuG3FoKkAQBiRcdoQIORmpPJ4VkxQLSOlyJW0e9i1zLD Qap56Z7FwEaSJZJmVPcywKmOk2Lx9wuJJVSFLQ97wTXv949gFeJTl6hsu RU5iR4b35dCMHBRsZhYE7LsbK+WlK3OCl+4FHum18w95FGYgqEnUZZmVI UByBbv+Uk6FhmOU0RhscJvOkWq4WzFTR1iH/XLH/R71e48Jvl8JYVvovV TfYM/gp/ii5LGrz4daDxUyPnN+8OVbi+NSIsPbdOUNRtnpY80JIOtUx5M UnvIgyc9h5EVv7nbhJ/edwhqVuDBhEQGZfs9/V9cvmWp1KC5+cPDF+u1P w==; X-IronPort-AV: E=Sophos;i="6.07,247,1708383600"; d="scan'208";a="11785881" X-MGA-submission: =?us-ascii?q?MDE4PCaUBIkpJLsr4UMsDamwzf9UlnKxuQ/fll?= =?us-ascii?q?2Wy2JUwWj2Vqroy4SHbVKDn3bqwBJWs9vQ1v1moN59drvqAQtyIkoi/P?= =?us-ascii?q?OQhLHJjWFlO1/hcne83scLVjihzayxK8EJTs1ZAHXLzH/ZnRC05NeeDw?= =?us-ascii?q?JrDUDq04nx0vMD+9Gd/X/oAw=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bn5vAuldfbP+LAIst3Z8c6bfATUo2NTQoVAjVWPItnfZMazQA+IWdQuBlV9I6bGSL1u4jh2z2HTszVmsajjy9hw3Kq4alHQ63WWzYnzhcBhTVn3IiDaCXNX/RWQE2RAu1rGi2F5fOmhbisKaVu619F1WCYszGtTzGk1h/Xi9mADXXnpjeoz3iSzdNllVnukg/+0sEfliD1lGIoTJMzLBveBN7dibRoNRYYkfOIoG6CUXB4bFFMZqYL/AeAk7U6HkB35rNCO6pFjq0GnJD42byXSx3w59MtrXRUCE8syGrTe3GMEhDInCKEj/SZuET1Bbk+qcE4X4dicQI6svkFgM1A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=9FxV2pX7chRK0bdJDSW+G+9YHH7CXug/vkDSNtE3+PE=; b=ZbFmmZObTOlj69jZKyw0hPOzL568tBVOk23+vsKZsDHBKxO4/SRdN38fQZLXOX7ZKwnhNd1yoauPSTX1Xt8pRSIGhQlGEiRSGrC4LqNLUZdi9xATo9h4xdrClkxiCkQzLGasSPGPXtLlRTEZyQBLrw3Dwsu6lwNr4jFqQj0LBIX3Jlup7G3+aLUHgXeIcz2DgFoq/Xa1vBYUTQpzIaTCjbIwwRW2qD/t+7dxGtgi0bjHNB5mA5WKVLjU0WMWVZ82/WWPPp2y63ouFmSJwty6PPigtDq+QJqmhJRp+c8Ahd2eiIaQSxKfXQECkM8u1TD5xp5A1z0qT2be6pEcQUQSCQ== 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 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v1 08/24] pcie: add helper to declare PASID capability for a pcie device Thread-Topic: [PATCH ats_vtd v1 08/24] pcie: add helper to declare PASID capability for a pcie device Thread-Index: AQHanKV/ZpfW7p59SkGnAmV2rL6amQ== Date: Thu, 2 May 2024 15:29:18 +0000 Message-ID: <20240502152810.187492-9-clement.mathieu--drif@eviden.com> References: <20240502152810.187492-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240502152810.187492-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_|PAWPR07MB9661:EE_ x-ms-office365-filtering-correlation-id: 7a3182d0-e6d5-48e2-f6c8-08dc6abca218 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230031|366007|1800799015|376005|38070700009; x-microsoft-antispam-message-info: =?utf-8?B?ZnlKVExLME9yNDJCSUpvTVJLK1VodnpRQkxldFJIcE96Z29WRXZFYTVzSERz?= =?utf-8?B?UlFvY3QvbnptVVFBWGo2bmM2bWV6bElhSkJBb1BOdmcxSFZuaFBCcEhRcFBO?= =?utf-8?B?TFVmeldCd2RNUkpKY1pPS1BFcWppYVRvTlNYb0FMb0Q3a3BOdEQ2YlpFOTV2?= =?utf-8?B?VFdvNlFscWloeFNpekY0bDI1M2toZTVQcW5qNzlmVTVjbXZ4UWZCZWhWdFpS?= =?utf-8?B?UTdPUzUrRTh4WUhkai9maDEvTFNZelZ4TTFITUVza2dIaGlTam56OEFvN2Vo?= =?utf-8?B?Q21DelVtS3hPWTlDZDVUMCtydFYwSUtlTzA5eVo0WU1DMWdOMHhrMk9WYnlQ?= =?utf-8?B?RFhzNEkrV2E0OHUydjJ6dGpjdHBRcnc4ak5lSlh5K3JqSzlxRmJSVHBQK2F3?= =?utf-8?B?VCtCNjM5LzlLSUJicFFRY0VHV0R2aTJybndnTllCMzJtamVzb3FtYTI0d1VU?= =?utf-8?B?VXFvTit4Ri9BbStVNnRTdzVzU0FaYnNiK1JkazN4SGF3bEc5cmI0dFE2dWRB?= =?utf-8?B?NHFFSW9wZHZSVUZPcUtsbC81M1ZGTmNnWmdackszdUtSc3NLcFJvZTAzOW42?= =?utf-8?B?TFRJcHBWOVpHTHI1ZjFoWXhkcmllU0k3aGVrQ29BemRUb24wV2dicy84TFdp?= =?utf-8?B?QXk3SlJMTHBaeCtSc2EzejgwaHhmL29kaXBLQ25NUGtBOWFXR1h0VkdhOHlR?= =?utf-8?B?MFhmSW9mdTQyWjMrN3lVeDRoUjFGdGRzNzB3aFJBN0NGdTMrLzlWbFBpbVJL?= =?utf-8?B?VjV6eEovZkxQS092c210ZmZwdFQ1RDltTVBoT1RKamh0SnB1Z2FzV1BVZllL?= =?utf-8?B?Z3RXN2VXYTY5ZG1mWlEwRFk3NHVkSURibnhZTndLaEdTbnBjSldzWkQ4aFMz?= =?utf-8?B?RWdEVzhJanNIZWcxWWc0b2V1YmUwUUNnQWNRZjI1Yy8rSWtoRnRmaEREYm1u?= =?utf-8?B?ZmgwMUh4cGM4eXNTNURQZUcycnVJWmdPa3JVOTZGKzVETy96YVA4UFQyTTlE?= =?utf-8?B?UHB2Yk41Y0FuTTFqejN1YnhKckk0dWU2VnorTlJQVlFNWm1XYjVJZHVyZ2Fm?= =?utf-8?B?RUJxZmFTeUpZVDdDNGlaaytFS1Uzc0VOZHVVSXEzN1NOY01wUzVEMlY3c1Mv?= =?utf-8?B?YXlCTitCZDBCd05wcENYVlNzR0hWZVJhTURldDhOcHY1czdmMS92QXEzWGQv?= =?utf-8?B?YkY1VEJ0ZmVlMW5GYThUb1c5VVhVZ1FKc29nVXY1RElLSUNoL3J0Z1NoZzBR?= =?utf-8?B?RVRRdGhxS0NTVWpLU1hjd0lnZnl5MmEwbFkrbDVEV25hZXdPWGNxVUV2OXFz?= =?utf-8?B?UWRveEEzN3k0Z0t2Myt4UHIyNzFkTzk2WmtCTmpubXlyU3J6RWQzVEFVcGsr?= =?utf-8?B?MkFmSjFwdTNTQTY3aWFGZXBPV3pibG5BZ3hKWDJ1UWVFd0VDMTUrZGFlNDRs?= =?utf-8?B?Z1h5Tk00M0J5T2RiQ1UzTjhSdHZQTzdRRmxkek1VUWxrREVJNUtPNGYzTGxR?= =?utf-8?B?d2lndkZTNGxremYxUzJHMTd0ZlNsSkw2aU5TUVZtMERhZWhlbHFiRWlVNXda?= =?utf-8?B?dzZSTU5IalNNNEFmSHNuVkFObG4xWjhTd1pLWlZSZ2hsQTJ6U3RscWRxTlAv?= =?utf-8?B?MmRVTm92bXN4VHl6d0xtSmFxbWlwRUFMbHBtUHZmRk5zV2haUUlITUF1TlpD?= =?utf-8?B?MTY3bXN1TGQvZEZhWmtCa2tReGFYZmRxbGI0dTBGejNZQVF2YUkzWE1JbVph?= =?utf-8?B?LzFFa3ZtK0NIRFhyWmxhZ01MQzllL2dSZnN3bmNDM3o4alBjSUYzekJTSS9R?= =?utf-8?B?cWovbFRPUGEweEVKbGtWZz09?= 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:(13230031)(366007)(1800799015)(376005)(38070700009); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Uk5GUVpzRk95MUdWRW5MVW9MYzI0UEs3RVNPZ0dsMkMvNjduTmV6SHY3TFhi?= =?utf-8?B?b1pRUHppVS9RbEl4dnNjSnlSOUNmdmRvT2dIZFl3QkQ1dVRwUndWTWdaVlA0?= =?utf-8?B?Z0tidGlwdDlvN3Bsdk9NeTU0Mm9EU0NUemdaK2hqdk8zdFJ3QndtVDcyeVRF?= =?utf-8?B?S1JOT1JyaVNVL0hGM1hxVWtEYVgzWTN1RkFVUk1CdjBZMW44K1pGak94N0pP?= =?utf-8?B?L2VkOWFHd0xBNTNXSmIxakpqTmpkRUJZRE9SMkw5MUJFalVPZytZRjloMzFl?= =?utf-8?B?V28xbmhJZUZhZjVRUHJnMDdrYXVMU3lwU2lDTDluVTl6bWVvMDFvNXFUL3kv?= =?utf-8?B?ZjVNL2VUc2JHZ0lhSGY0RW1PQXl1bUtaVXM3WG4zTXFoaDV2cjZuTUZkQ3FP?= =?utf-8?B?OWxqU2E2WWxYbEZzSVk1c1FBY0tpajBIQzk1aDEwYnhhaU81dERqVU80ODJ0?= =?utf-8?B?dXFEOEdoeVRHMnB6OVZKdFdpcjlFOElKVUU0QU5ISm9LY2QvRzZQMnNCbE5P?= =?utf-8?B?eXVQVndCZkg0SFYrUVhxajdyNU5nVFNpT1VGQml5a1NhOUFRbHY0NWpRUEtX?= =?utf-8?B?Yml0L1ZrUnhETnc4cXNJTTVBeDdWTHpCQlNBdFpMR3I5NnVkcHdoaEVMZEVV?= =?utf-8?B?WThTS3NuMEs4aDFFRmdYakk5QURmN3Z2dFRyRm5zWFBiSFRYNjhJaWVsejVz?= =?utf-8?B?TUI2NHJsSEZjbEhIR2lCWnJNTVpacEFJZjJUdEpkRmZYa2Jwbi9aRGl0dVNM?= =?utf-8?B?YXBtSHErVWxqMDgvbXBUSVBYc2ZKL0tsYkoza0N5K3czTGVpMWxWM0xNOGNx?= =?utf-8?B?SlM5ZTh4T2l0YmJuNXBPdkMyaUdsTjlkMXAzUXJ2ZUgyZjRlTnlvblpheUxP?= =?utf-8?B?aTkwOTgzRStIMHNQYit4WCtiWXlLSjBmR1FOOWlYSUhrclBNYzRxUmhhVWVo?= =?utf-8?B?WTk5c1Z0eWVBYlJKNkhmaDBpWTBsMytBYlY2WkxGMnBsWnY4YVhwYUZTRnRK?= =?utf-8?B?SnlsU1ZsdW1pT0R3MXFOSTN1MDF0d0F6UmZvS1FISmZxQ0laUmxKbGpPclN2?= =?utf-8?B?K3JkTFY3WUZmWHZlNWxPQkxYeDEzQ3JZZU5JOUQ3Q3hGb1BiNFprN3EwV0xG?= =?utf-8?B?WEpmKzN0amp3SE55aGlYMW9iSjJYUkRGUDNrVTlqRXJVUE9XZmxLa3BvVG9s?= =?utf-8?B?dC9na1BYQmtmKytNdFd2OGIvVDZ0SjhUOXFVTXV1cjdYeSt1QWxzSlFYMGIy?= =?utf-8?B?UGVERWo2clU3Ti82MXc4MnQydy9sUHVGUFpoSFF0Zk1OS0F0UmhoVnBQcFM4?= =?utf-8?B?YWVlbGhYV1JIc3JVTkc0WXlyWm1pYlBXaGtURCswWGpuQ3k4cFovcmExY04w?= =?utf-8?B?dlJxRktkZ1Q2bnY2WUt4QUxSZkFoaExQbnJWdytYU2JMc0RLbW15VjdkV2o2?= =?utf-8?B?dnpkUXVvK1E2Z3NEZElPUHFHd2lqeTlUVENxUlBDRmgxVFNnUmQwTTFKY3hI?= =?utf-8?B?VE1EVXh1NUxXcE1vSENTdi83dDFVZEd0YW0vdHFvOGFVVGNiOGtlamNkZ2s2?= =?utf-8?B?a2xCQWdBKzZXOGtnM1VYYTNwTGZOYVEvNk1zbzJHb05JK2EzZTZlNzhQT2d6?= =?utf-8?B?RnUra2drZ2FQQ0dpT1V2VVhBOGZHbmp1NWt2Vmk5S21hWEdhMElzUERaZDF5?= =?utf-8?B?cUh0NmNKTm5Wd0JZTlhYbnNVNTI5UXpHendZMU1LOXBVeVhTbEt2THZtQ2kx?= =?utf-8?B?K0VOTG90L04xdHc4amlhYndkSVlCQ1N3S1JZT21tanBxaWt2ZFA3NytxSE03?= =?utf-8?B?RXNrN1NtWUN3d3dsdE5LLzZ6L2NqaG5PNmoxdUZhV1J2Zk1tN0hKM0VDR0xH?= =?utf-8?B?c2FKTDhaaHVBSlAweHdic0ZRV0RzcC9nVnNtQm4ydlgzbjFON240ZStzMXN6?= =?utf-8?B?VG1YaDhSb0JGazY5SE5Xc3p2SDZqU1prbUpWcHU1Y3pTUmEwT1JkN3Z5b1FB?= =?utf-8?B?MnZ0V3AxRFJaM3kxWVV4cVZuNzJtNWZaQWVjS2hpSUMrQk16Z2hoemdRdHFZ?= =?utf-8?B?OHQwNzFGUUtvSmJkRjh4UkxLQnNkNytoOVB1ejdJam94blRUQm44eXNQUWFI?= =?utf-8?B?ZGtHa2V4Z0duV1FrZy9qbXVPWHQyc091WTArUnQ0c0VZMzBqTWxNOEo2WHVX?= =?utf-8?Q?ZCiuqS/9QBLXMn31j6I3qfw=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <750248B27314B54590BA69815BB74B75@eurprd07.prod.outlook.com> 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: 7a3182d0-e6d5-48e2-f6c8-08dc6abca218 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 May 2024 15:29:18.5251 (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: l2xVAx4F+S9BZz+OtF2ybYERV0A6uReOqjyYMkvf0jr2BMQKAQCkgbiq5MJ6ooEZBwHR5DUBppuWTfGvFok6XuSY6GiFIcYUFLIVfJHTOHiKq++fixVsiv/OYISc9p5M X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR07MB9661 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+importer2=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, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer2=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer2=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1714664003376100003 Signed-off-by: Cl=C3=A9ment Mathieu--Drif --- hw/pci/pcie.c | 24 ++++++++++++++++++++++++ include/hw/pci/pcie.h | 6 +++++- include/hw/pci/pcie_regs.h | 3 +++ 3 files changed, 32 insertions(+), 1 deletion(-) diff --git a/hw/pci/pcie.c b/hw/pci/pcie.c index 4b2f0805c6..c8e9d4c0f7 100644 --- a/hw/pci/pcie.c +++ b/hw/pci/pcie.c @@ -1177,3 +1177,27 @@ void pcie_acs_reset(PCIDevice *dev) pci_set_word(dev->config + dev->exp.acs_cap + PCI_ACS_CTRL, 0); } } + +/* PASID */ +void pcie_pasid_init(PCIDevice *dev, uint16_t offset, uint8_t pasid_width, + bool exec_perm, bool priv_mod) +{ + assert(pasid_width <=3D PCI_EXT_CAP_PASID_MAX_WIDTH); + static const uint16_t control_reg_rw_mask =3D 0x07; + uint16_t capability_reg =3D pasid_width; + + pcie_add_capability(dev, PCI_EXT_CAP_ID_PASID, PCI_PASID_VER, offset, + PCI_EXT_CAP_PASID_SIZEOF); + + capability_reg <<=3D PCI_EXT_CAP_PASID_SIZEOF; + capability_reg |=3D exec_perm ? PCI_PASID_CAP_EXEC : 0; + capability_reg |=3D priv_mod ? PCI_PASID_CAP_PRIV : 0; + pci_set_word(dev->config + offset + PCI_PASID_CAP, capability_reg); + + /* Everything is disabled by default */ + pci_set_word(dev->config + offset + PCI_PASID_CTRL, 0); + + pci_set_word(dev->wmask + offset + PCI_PASID_CTRL, control_reg_rw_mask= ); + + dev->exp.pasid_cap =3D offset; +} diff --git a/include/hw/pci/pcie.h b/include/hw/pci/pcie.h index 11f5a91bbb..c59627d556 100644 --- a/include/hw/pci/pcie.h +++ b/include/hw/pci/pcie.h @@ -69,8 +69,9 @@ struct PCIExpressDevice { uint16_t aer_cap; PCIEAERLog aer_log; =20 - /* Offset of ATS capability in config space */ + /* Offset of ATS and PASID capabilities in config space */ uint16_t ats_cap; + uint16_t pasid_cap; =20 /* ACS */ uint16_t acs_cap; @@ -147,4 +148,7 @@ void pcie_cap_slot_unplug_cb(HotplugHandler *hotplug_de= v, DeviceState *dev, Error **errp); void pcie_cap_slot_unplug_request_cb(HotplugHandler *hotplug_dev, DeviceState *dev, Error **errp); + +void pcie_pasid_init(PCIDevice *dev, uint16_t offset, uint8_t pasid_width, + bool exec_perm, bool priv_mod); #endif /* QEMU_PCIE_H */ diff --git a/include/hw/pci/pcie_regs.h b/include/hw/pci/pcie_regs.h index 9d3b6868dc..0a86598f80 100644 --- a/include/hw/pci/pcie_regs.h +++ b/include/hw/pci/pcie_regs.h @@ -86,6 +86,9 @@ typedef enum PCIExpLinkWidth { #define PCI_ARI_VER 1 #define PCI_ARI_SIZEOF 8 =20 +/* PASID */ +#define PCI_PASID_VER 1 +#define PCI_EXT_CAP_PASID_MAX_WIDTH 20 /* AER */ #define PCI_ERR_VER 2 #define PCI_ERR_SIZEOF 0x48 --=20 2.44.0 From nobody Sun Apr 12 13:40:22 2026 Delivered-To: importer2@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+importer2=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=1714663870; cv=pass; d=zohomail.com; s=zohoarc; b=f2LxJMreQnIHONmZsWt8+RrWMHw0xyeyfwkCc5M87ZMfQYa8WbXGnSblx99Ee6OS8pIUJjg+WUjRQ5dJCxlc8hAMJxzfkRfMP/33O9HtW68Ig9fNO5Xi9Ihw1Oy6iBvj7u6mB2akNszk4tPCMymTzqGKqVrE5+qmkJ3ZtscK3RA= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1714663870; h=Content-ID: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=zqR+oUgPhCm/33BfTla3yWvDsBBPd/qhyF4tDdgXLp4=; b=KIGpZroqG0eeC58eVQdiMYs/VH2Y1w4n+xsMTybL/IC9gf2qJAUiC2jRmJoeF18U19GEfSvp4UsGDwecaOZJSAiNAAg+qmhZVxvHkDHjLFwrfRWpJW3aCs0o+NP2vzET7CmPtLyTDLdAHNG8cscoKQkmyJqouW7dgINpdsBf0Ho= 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+importer2=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 1714663870194669.2818249637445; Thu, 2 May 2024 08:31:10 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s2YNZ-0003oq-Ef; Thu, 02 May 2024 11:29:49 -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 1s2YNY-0003oK-G6 for qemu-devel@nongnu.org; Thu, 02 May 2024 11:29:48 -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 1s2YNW-0005z0-OK for qemu-devel@nongnu.org; Thu, 02 May 2024 11:29:48 -0400 Received: from mail-db8eur05lp2104.outbound.protection.outlook.com (HELO EUR05-DB8-obe.outbound.protection.outlook.com) ([104.47.17.104]) by smarthost4.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2024 17:29:21 +0200 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by PAWPR07MB9661.eurprd07.prod.outlook.com (2603:10a6:102:389::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.29; Thu, 2 May 2024 15:29:18 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.7519.035; Thu, 2 May 2024 15:29:18 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1714663786; x=1746199786; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=zqR+oUgPhCm/33BfTla3yWvDsBBPd/qhyF4tDdgXLp4=; b=J5pNvBfgORB1KG4b0iFeiCCD6i1byLAxL0C2cq690EDmY1QWuZecWp9+ ZjI5KgOjzvGyD4FTHUPqdL654H+JeBghhQBbmtfRfpcyRvHI9HKRhVXNd PY546j71P7Pc0OM7JNDGT1FD8I2dLyhWpv+T/Pn17wW2d8EJtLDOJYPiE h9+La1V4ianjpMGPQRx9+btrTdKX0L8QYvupn74ezkdFKESvL4EgWm91D eApFLO96MzGF8MfG2e18TTPXIuLdkLHq9fO+RJ3Wk4jW8lUAHIHJI9hwQ dPIv853L68LmzX2IyZXFCOatpKMK8Cej8Jy1h9xCFk413kqqJ3VKLQor6 w==; X-IronPort-AV: E=Sophos;i="6.07,247,1708383600"; d="scan'208";a="11785882" X-MGA-submission: =?us-ascii?q?MDEi3xao4Kvt3rZqQl4rQRyfQwqymbsETIJfFS?= =?us-ascii?q?AaoA+1VbM3T7iHtqPhbP+zUbYLC/o97e1jUw+fyVau0/Ayt38ApENTFz?= =?us-ascii?q?qxboxWJ7coyKQaSv1JekeL3TQpdpAWKET2CJpPhJWKRFCNBquWGUQ4Ci?= =?us-ascii?q?n8p6CdT7PQp9vAU6PaDQMOeg=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BfhgJobScCgThDBrbXxtYrx9BgpCgCm0bT14JFPpdhRiZr7efy5lparmiqvtHY6HuzzbUJmj1ImG6Iw/KufC7pHvevgydS9la9RRTm+xXdz7mbg6HcoNJ4/LcsehQ29z8co68yhq4bXZ5IusVYDjBEGaPgOThtQUi62kXENmNTfuctPUQqff/ek7OUZkR2j4IgELx+JiSDKf4/U+efygVZDZPcso7cSJ6ZeXVJHc8lv0hXhZFPMIti8M76PriVj21nAdRrOSeTrWv4SOXv+9eWzplojQi67wffVqZydw2+kwkrC46FJ2mjXtrd7h0b+oFiy4oG8X+BRMfXKOu5Ti4Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=zqR+oUgPhCm/33BfTla3yWvDsBBPd/qhyF4tDdgXLp4=; b=ETUIJlqWVCWulWE0lAFJ3O7OQNxrYVm1509sejEMRDtxOCtbCU6eLZ1gigmvOflaCn3TyvF2UKKJeZA9CNK3ltK7r+BlZwegrFC4kEkibde727Te2b34gZAMkcRvxZTyVEgxb567Em9uYrSjxmzxrPYU3qdeXDLUxKDJ1gCYQ0QHarr4CGR7wfAVOEJkWplevA6rgABH1DvyKbg6MRrIzp5lE2DvT2eLKYXsPUAQ+plkF2IxI52L/JDGf6vuk1q7cQIqycEnqPk7bDGYLsfjwTDBBhv/rz9QlxaqfZtWmrqmLNiCcIOPJSR16y5JfZWZH7YP8bquV6mYpwt7ZYDrVQ== 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 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v1 09/24] pcie: helper functions to check if PASID and ATS are enabled Thread-Topic: [PATCH ats_vtd v1 09/24] pcie: helper functions to check if PASID and ATS are enabled Thread-Index: AQHanKV/PXYNdBYXO0q7q3BlD52Syg== Date: Thu, 2 May 2024 15:29:18 +0000 Message-ID: <20240502152810.187492-10-clement.mathieu--drif@eviden.com> References: <20240502152810.187492-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240502152810.187492-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_|PAWPR07MB9661:EE_ x-ms-office365-filtering-correlation-id: bab55448-ca26-4b8a-44eb-08dc6abca239 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230031|366007|1800799015|376005|38070700009; x-microsoft-antispam-message-info: =?utf-8?B?VW9DY3ZIWDhod1JkYWMwcktIaWc1R2xZczBQSyttTUpkT0JEM1hQTzJDVUNV?= =?utf-8?B?QXhMTzhEZkhsRk5jWVU5aUtNODZuanFZalY0cmJmRG54NTRPbkdwK3hUYzBq?= =?utf-8?B?L2ZuMkVRbVpUMUxJeEVsdi8xSkEzNjJlcExreVFSODZEMlFaZ0NWUHZybXBN?= =?utf-8?B?bFI0UHNJS1QvSVhPc2dXaXFaaHhGUS9YeXI5VzVMZ0ZGSFdMOVZmSjNrQmNV?= =?utf-8?B?cG1tYmkwWUV5djVlRDJWc0t0RmlkSHB6QjZVY05VbU1IYUt6Vlc2NnlTWTJ5?= =?utf-8?B?UGVLSnpoalBJeUE2MlpYLzVja25lUVVOa2d4eVlzS3VPeVk2N0QyZWZ1UXIv?= =?utf-8?B?NWFpUUtBRXp4c05NSmZhTUtUWlJQa1FUbnRwbUt5UXVDYitQcGpHUVJ0VG9h?= =?utf-8?B?enV4UmhLZjZCcUFLVVVKZ1lYeThERkdMUThmUGFOeVBqZDlXRXJaeElHM0Zt?= =?utf-8?B?eEhaUTB5blBiaTZEUEY0alZHVGdaQUdSbU01UFlzZk9qSThKWU9CbXM3dGdy?= =?utf-8?B?UjZwbWI5VEpUWmFLbGM0ejhpY2ltMDN5N0pEL2hmbko0ZHczWTRtblZ2RkpE?= =?utf-8?B?Q1VEYU9PQXltdzAzNU5oRXBVYjQzODJNdjBhdnR2b3hGV2xFMU9sZEtpVmpu?= =?utf-8?B?ZTFnSituWFJia1ErYk1kamJ6ZFZuVllPV0JvYWlldmJVTEhnUHpPelByV1lV?= =?utf-8?B?b2ptQ1p2ME5LdGdFakttUmNpbnpFMExocVRCMnM0cll3WTBjY3pPRjNLc05W?= =?utf-8?B?YW53dEdsU29Lc3R5REhCWmdKRW96aUljYmlBei9kMGxQNU9obEVLQTdJejBJ?= =?utf-8?B?bk03eDdtVnFmR3dqWkdSOExIK2VEVDVTcjdkWnlRck16UVFhUVJpZVIrQXZU?= =?utf-8?B?L0pySmFqZ3ZYdkQ3b3F4UkpqTlV6K3M5MDBMOVVydG5oc05iNllYMml6RC9p?= =?utf-8?B?QVNBNWlPTzVvUmMrbDNGbllaNFd6SElaMDI4U05YSW5HS0d1ZFNZdlp5Q0Ry?= =?utf-8?B?QmxmZ3NtZjVxL1RSUTdXMVpYZjMwemlVZzZQMVZQTFkraURKRTlobE16WHFO?= =?utf-8?B?cUFnMnZyMXIwbUwxemYvOHlDOG5lN3I5aDNzM013UEZramNqQTlnZWpSejhO?= =?utf-8?B?T0kxU2pqUnJCMm1PU2hNdUVsNmhHT1czNE4vT3pSTTVjcm85VForVVVWdk1n?= =?utf-8?B?TnBoakgxcjlZQ1lrenloRUIvZmoxa0F4YllBV0gwcEttdSs2eFpjaUloWWpp?= =?utf-8?B?VHRrS3g1azhGMXFIQTJ2MkNyVFNnZFFZM1YzMm9BMjVvVVJhR2gzR0RxMDJI?= =?utf-8?B?SkpUZ3FqVUVZYXhPRmZZYnlzTVhoWmVBRWxVTVdRN1Y4cnpXNW9yaXgraXln?= =?utf-8?B?Rnd1QkV1M3V0ZjFZWnRkNVhMQnZrRVZZMGdiamJvYm1Wam1OczRSZkFOdEx6?= =?utf-8?B?a052MnllNHIzOTJBVjlpejZ3Snk2Ykx0R2xtKzIrQkVwSVVTci8zZkQvem1T?= =?utf-8?B?MWJNMmFQOWhjc2VQZ2h2aDJXeXBUdmtXZEpFTzlLd2pxYk5IUTBEN2FaSDBJ?= =?utf-8?B?RUpoTzB4NjJGa2d6T1hhRFBRblJGRTRDdlcwNlZRbjV0Vk9uV3BiVS9VRDlS?= =?utf-8?B?VkgxemQ2cHBGdlVUcU8waVVlNnEzckdWWDVpdEp4US9oZmwvcnZ6U2UvcVJP?= =?utf-8?B?bWxCVFlsUlNUeHVGVUdrejhYRTZFVE83cHRvVURZUXI3WFB5cjgzOTRDYzZy?= =?utf-8?B?OXdrQWRvaFd5TlJKS290MGQrOExzcVBmUlR0OE90cFFjc3NYbmVJcmNDWHNa?= =?utf-8?B?WHROd2syV3JHR25aUStnUT09?= 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:(13230031)(366007)(1800799015)(376005)(38070700009); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?cXh4YVlCYU5qbkNVWFhldjNjK05aaTMxMjRlcWljM0tPSVp3MGdMdmVxb28y?= =?utf-8?B?TlB3ZnVYYlV6N3BGYXh3SWJISE9sV0xDUmh4NDdkWmppaFp1N1ppMHBadlVs?= =?utf-8?B?T1VmY05sVi9uaU9idG9HTUhld3FkaXZXbkUvR1JMOWc2VUFlV1VNTjgwTHAx?= =?utf-8?B?L29PaXZQN1NPRTFwVlNRM1Z2SXkzSmJoeFovWm9OdmpmNTN6QyswcDdkeFZL?= =?utf-8?B?ZTViWlpOMGdxa0w3UE9KNEppby9xazBIdGlldnNWOTI5enRwdDE3T0xDeWxE?= =?utf-8?B?Zy9JVUsrYWREQy9Ia2ZjS0ZtaElaSEszbUt4dzR4YW9WUWkvZ0ZQNG1RcFdF?= =?utf-8?B?MzFsZHdXaVN6U0NUeHVrUHY0Z2VqVXZYOWkxM0hTQlN0aTVsWU5DU2Y5UmpQ?= =?utf-8?B?VGRWa2FjeEp5eGthYlZBUjk5WElMZ2Z5OFVadndDUXQ0eGZ4SVVPWGw4N00z?= =?utf-8?B?ODJ1Q2JYOGZtM0pGVUVjWVVDMkovcC9mZzhWaERnWTM4QncwRmN6VUo5aFBq?= =?utf-8?B?OUMvQ0YvSThkdERWWktHc25US24yZSt4S05OZUtoTDN3Zi9xRWtuVVpBdm1u?= =?utf-8?B?SkVROEk5R080M3V5N0x5aGhJVm9KU0xuMnpMVkhGZGtSREVOQjlINVo4bDZ3?= =?utf-8?B?aHFCVEl2WG40OW9USjF1UXdVWVllcVBQbFo0UmlydUdyR3JuSWRLZksxbnll?= =?utf-8?B?V2ZaUVdTQUhnV3pSdTVOekF1QWxWKzIwWUMzN3VpOWdUNGhwT3JsOEFZekhT?= =?utf-8?B?MnBUaytPNUo3VXNrZU9lSW1zNVZRRXhRTHJ3bzBRUHp3ZHN5THl5QW1NWVZu?= =?utf-8?B?YS9GMW55cGNOT3NHNGQ3czRZbzNJeW9ZejZ3UHUxdXV0NGtta3FkQWlYT3Bu?= =?utf-8?B?MzkyNStNOU51eHdQbE5aVWpIbHM0MmhjUExIa1NEL0I4ejFXaWY5bmdrV2hT?= =?utf-8?B?emsyaCtVelRxTUxicFNMZ2l5QnBNOVBvMmtmV2FFbmU4OEkxZEl3cU5zTGJQ?= =?utf-8?B?dmRXVE4remIrNHBuVFZDd3hJanNkd0Z6dHE2ek1oS3RyY0tqaWtSWHN0VXc1?= =?utf-8?B?Q2h2S3l0bGNBdnphcTZ4WFJtQ0xlREdHemlkbEhDT0poN1FZaGpTYXJ6Vitu?= =?utf-8?B?NFJsMmpQYkVwd2dBL3hVVVVBZzFSUjh5VDQxajZXaGU2SkduenJjZmFMbEYv?= =?utf-8?B?d2xieGpPdDJzalFqVU5NTnlmcTcwWXJCTW5MbTRKMlpoZ0ExdGpmVVZNSzVC?= =?utf-8?B?UEM2U0xLU2I5N1NqL3NzcXN0eE1ONUFPQlBQR2h4c0VzRmVlbndoUmVSa0pm?= =?utf-8?B?V1pSN3FkNVdRZVhwOXROQVpvUDlOYXh2Z1NESlAzYnJ0YndUaHZSU29HakZC?= =?utf-8?B?cjNUNWlGUXJBKzFkMWI2UkhyaHlMR0NjN2hZNVZ5UWlEMDVBdVVmYk4xYk1I?= =?utf-8?B?RGk5YStPTkNoV3I2MnVtVEF0eUFYWnAvVFlDVFhtSHowWkpzdU13aWZseHZm?= =?utf-8?B?V0xaY0o2TmhKWm9uUlpreDZVaDE5bmVab0tuUDNoMzdWdVNtc2RMekQ3djd3?= =?utf-8?B?TC9ESHZjMnhQKzg4SWpSTklJKzV1WlZQY1ZhbkJORTRjRkRsV3oyVzdUb09p?= =?utf-8?B?aTdzV0FyUENNN09vaGcrMmdOTWpGRnl2SDZEbXF5eUxCS0UvaW51dHBYRWE0?= =?utf-8?B?WSt0V0FtQjFIYis4QmRNVGdlSkorYWVVdmlJZ0Fab2hiMlNzWVJXdFBWNFZy?= =?utf-8?B?OXFHVCt4ZGpkdVpRemlLTWRaZ3RyYmt0elBZajZLb1dMZ0NneFdJaGE2dWUz?= =?utf-8?B?T1RBa20wUTMxb2kvOWc0NGhGNXhzbU83cDFpQVk2djlIa1NZZ0FSbkNES2xl?= =?utf-8?B?SGY0VE9XREw1NjFFU2hqOGlUN0U2b21HbDU3bjFBenhac21ML3p1cDlrNVAr?= =?utf-8?B?MnhYN3FnUXlnN2FDWCtKQ0o1VmgycGNXcWhhVjZhcm1TN2syRUNXcGRidVN2?= =?utf-8?B?ZThlUEtTbjlwdXY2VmF4MWEvWE5Fbmw5QSs5Z0E5cE5xSlZYT1BFaGVnVzgy?= =?utf-8?B?K3BDbEJacWE1QTcySWZjOWl6VXo3U1d4VEJYc1o5c1Y3cEVlU1BBU29zTUVq?= =?utf-8?B?VThaNFN4MnBqcldwdHJNY3pPaGtpN09uNVZVcEF3cFM3V29pT2Q4a3ArVHdl?= =?utf-8?Q?fv56zcliX08NclIh2JpmcbM=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: 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: bab55448-ca26-4b8a-44eb-08dc6abca239 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 May 2024 15:29:18.7369 (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: CVwWyWk9Isj0OcV1iP7e+HezX01lgg0hI1MolJoIB1eu+1ax8zXspwT+iLBEQ5PHGB/skWR298uMjqNG1DewU2Nt50ZCfdOmhHIUPrhom3eI6wTPSO6ejSl2Phkfz+ft X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR07MB9661 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+importer2=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, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer2=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer2=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1714663870691100001 ats_enabled and pasid_enabled check whether the capabilities are present or not. If so, we read the configuration space to get the status of the feature (enabled or not). Signed-off-by: Cl=C3=A9ment Mathieu--Drif --- hw/pci/pcie.c | 18 ++++++++++++++++++ include/hw/pci/pcie.h | 3 +++ 2 files changed, 21 insertions(+) diff --git a/hw/pci/pcie.c b/hw/pci/pcie.c index c8e9d4c0f7..2a638a9c3f 100644 --- a/hw/pci/pcie.c +++ b/hw/pci/pcie.c @@ -1201,3 +1201,21 @@ void pcie_pasid_init(PCIDevice *dev, uint16_t offset= , uint8_t pasid_width, =20 dev->exp.pasid_cap =3D offset; } + +bool pcie_pasid_enabled(const PCIDevice *dev) +{ + if (!pci_is_express(dev) || !dev->exp.pasid_cap) { + return false; + } + return (pci_get_word(dev->config + dev->exp.pasid_cap + PCI_PASID_CTRL= ) & + PCI_PASID_CTRL_ENABLE) !=3D 0; +} + +bool pcie_ats_enabled(const PCIDevice *dev) +{ + if (!pci_is_express(dev) || !dev->exp.ats_cap) { + return false; + } + return (pci_get_word(dev->config + dev->exp.ats_cap + PCI_ATS_CTRL) & + PCI_ATS_CTRL_ENABLE) !=3D 0; +} diff --git a/include/hw/pci/pcie.h b/include/hw/pci/pcie.h index c59627d556..8c222f09da 100644 --- a/include/hw/pci/pcie.h +++ b/include/hw/pci/pcie.h @@ -151,4 +151,7 @@ void pcie_cap_slot_unplug_request_cb(HotplugHandler *ho= tplug_dev, =20 void pcie_pasid_init(PCIDevice *dev, uint16_t offset, uint8_t pasid_width, bool exec_perm, bool priv_mod); + +bool pcie_pasid_enabled(const PCIDevice *dev); +bool pcie_ats_enabled(const PCIDevice *dev); #endif /* QEMU_PCIE_H */ --=20 2.44.0 From nobody Sun Apr 12 13:40:22 2026 Delivered-To: importer2@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+importer2=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=1714663952; cv=pass; d=zohomail.com; s=zohoarc; b=Aktrac90cX/3da8MHdcpKu5cqXMXExeR6YDP7qC9fdTnXEUJ2i2KdLvxGSVKJ7Ic734VWxAnGQuqhdbDovU8P4RVa0TlTf5YQsPy9y6Jj7TsLNtwHHjlKORgTSAm8ztI0wPJWeDsm3pkj4vsD0PiqVlcD+uzlvCuXG1m38Hk9rY= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1714663952; h=Content-ID: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=qP+9tZP//WCtxDabgIyOzTMK4HBwNewfd490piBaCjs=; b=mjZkELVfUAlaxuFuH2g2IE+excSpYgpb95eN/YDmXsadgxNheX4OxET4SiqIpyPL3vvGIttshhLIxoN1pGtgUweIzT83SRK7V83fzzLRWFuUprzdxH8wC3Yu2harjW6wf2YWqwrRMqeHODh9c+mwb2qingu1IRCx7+SFzFcG3CQ= 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+importer2=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 1714663952826950.2250851894952; Thu, 2 May 2024 08:32:32 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s2YNa-0003p5-Nc; Thu, 02 May 2024 11:29:50 -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 1s2YNY-0003oY-LM for qemu-devel@nongnu.org; Thu, 02 May 2024 11:29:48 -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 1s2YNW-0005yW-Rr for qemu-devel@nongnu.org; Thu, 02 May 2024 11:29:48 -0400 Received: from mail-db8eur05lp2104.outbound.protection.outlook.com (HELO EUR05-DB8-obe.outbound.protection.outlook.com) ([104.47.17.104]) by smarthost4.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2024 17:29:21 +0200 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by PAWPR07MB9661.eurprd07.prod.outlook.com (2603:10a6:102:389::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.29; Thu, 2 May 2024 15:29:19 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.7519.035; Thu, 2 May 2024 15:29:19 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1714663786; x=1746199786; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=qP+9tZP//WCtxDabgIyOzTMK4HBwNewfd490piBaCjs=; b=nfLq1AJcQNg3UWKQVdFlIXAFMlRHX6f2sKhfxlgJcp++ofbQ4tmV8Kmc q5LvCRw/fPy1i5ux2vDMv0dhNajEhYYaEw9nrL8VNkgFibSivTI5nX5JW sl81DxHNnjz6MOlzplucFEYA+tYTeti0dZBQfJKyrZCM2+bNt9cfZOuXN 7HPh2V2LYF4hqeBikpsZswFqhQEUQeMMCB3RLfYnkiXz+QAYe5O1oHE1I O+YUzMbPslH4rvI4EqCvFh69t6Rq0RVgZoLS4XZ5DUOSQ1WiedE/YjMvi BapAEy0siEP8e+erbhUYS0/lfL0sxqN3RdljxPZDLqTDWzBP4O2RLbtRf A==; X-IronPort-AV: E=Sophos;i="6.07,247,1708383600"; d="scan'208";a="11785883" X-MGA-submission: =?us-ascii?q?MDElbVK/SWpq38mKELSxBuXCPdlgBkTbGZIAu4?= =?us-ascii?q?NGsWnWcLMYG7tkSj7QCECNj4BOCwzwVgT7qjz62ALT1fM5wL/mIwXOvP?= =?us-ascii?q?rBB/kwpgASBOdYhviKQ1kXPOS+iGTkfFSJWub8J6WZSP3HKckQBFmmQ0?= =?us-ascii?q?D5qL6EbmSZhupleL/tDnqdxw=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BG5K9to4zjg5nkhwSoKCrotTNmHkWn5EGjXSYUG4FNoO87g6YnjIfnclmnVNEAtLQTcCqZ3Npj60hmWjA37ma+QnS1PyNRT3z6nkWi4BkeX4lCfY9w8Ry6daNGI8L64X1NMGFw7PyMHwU0YYxglIlSF8mCtOHw6eT6V5fo1ePtG0NxFUZQb2l2Tuv2724yYman3BK2A3hmZX86Lfr89Uawqfp570hNXx0QOBSA7NcjnY3fJsZ9IKPw3MxKUv99bJoE24S/VEDw18WyQLFjALObCQcZsbYOVT9vmkc9oQ45CHcyl1uB9MqGyh+YgLqRp4cXwyZV04qhki66Pt0oqfGg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=qP+9tZP//WCtxDabgIyOzTMK4HBwNewfd490piBaCjs=; b=F38yPPrsJ+6dpl8/p4FYQqPFwiS27/6Swm5tt+DqT6ArNEBWzDRLFlMSiUAceQUh2rbdeaM9grfvsvPt9R4cu7a3ewY9MakoGXNZxwHRZYZ60wTjYdbasZFZRDfxtBcRV7V/O01Kf83RT0X+ei2mMKhz7hQ6/GH8MtZuoF9n1+EPVMKnIw4CBq1du/J+xMtKS/7AFZ29efw+HcK7TavssF8DSIEYLP0yC8ljUBYa+MvDBlPpz7lHCjss6qU0e49RyCjMXKXfFHdpOb4G7vMExGejTGUApRCbRUnbk8GAVypYzjf8BYIe3gVIdoerPbbz/ry1ztj7D41W30f0uCVmHQ== 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 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v1 10/24] intel_iommu: declare supported PASID size Thread-Topic: [PATCH ats_vtd v1 10/24] intel_iommu: declare supported PASID size Thread-Index: AQHanKV/VyD4Uc59nUWVMdk2G0UyEg== Date: Thu, 2 May 2024 15:29:18 +0000 Message-ID: <20240502152810.187492-11-clement.mathieu--drif@eviden.com> References: <20240502152810.187492-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240502152810.187492-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_|PAWPR07MB9661:EE_ x-ms-office365-filtering-correlation-id: 042051e8-1158-4358-b3c7-08dc6abca25b x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230031|366007|1800799015|376005|38070700009; x-microsoft-antispam-message-info: =?utf-8?B?dmYyQ3dhc3M2YzE5c1o4Y2Z1WXV2TXRuYzhEOGdiM1FqVWNlN3hHNnIxWERS?= =?utf-8?B?ZllMSHl0U2NwcGszdnd5dTRoNGlWWkF1Y2x3K0h5SDI4VE00bk1QTUdvbkN4?= =?utf-8?B?cm5vdG1McjdOYWFGemxjcU1IY2x6TmhlL2lJVXFJZ2RLcmJpdDZqT3d3eEpy?= =?utf-8?B?QUlNL0hOUmdMTlAyQi9ndENYbTVSeGp1dnVQTkhGN2RjQlQ4NXJwWkJOblpP?= =?utf-8?B?YWs4VUhtNnNwWDhDMkxFTUtsZ3F3Q2RTVDVvUlRrQTMzeFJGbk1uZis2WkNi?= =?utf-8?B?akpSaG5HaS9Sd1ExREJpTXY5UUk1WUQzVS9pWFc4cFIyVnVCQzZQREUwQzU0?= =?utf-8?B?VURlUGxHSWJKWlROLzUwUVVSa1E5aDJGTEpSRjFwTGNhU3RTYzl2QmtVZ29Z?= =?utf-8?B?N1pyL3NXY0gxaDJyRXRLMUp5UngzalZxN1V5MSs0TXd6aWRUVnNSdUVVZldC?= =?utf-8?B?eUUxQklBNDFmTUJORlpmbE5DR2tPTFRyUGJwU0V3WGYzQVFlR0M3Vzl0aW54?= =?utf-8?B?alN2RU1MVnk5TEhTeFF0SUxxQkJBRG9hbHpWMUtjd2w1QXNsUGdDVUtmZ2xw?= =?utf-8?B?VzVPd2hoTlNwMDRDUEVyV3B3MGtEeXZucXZQekV2TS9GRUl0M1o0K3N6L1JS?= =?utf-8?B?MnhzcXdYa25IeWlzOFlQLzdmNTA5YURqTVcxNVdlZGMvVkJ1UktpS2JETE5w?= =?utf-8?B?WXpYYXBSaVVxbnVtUWZxaTFKQ0ovSVlkNUw0VnkrYXBvUGkyV3lsRHo4cndx?= =?utf-8?B?dmc0N2RCOUxsQTltbllZbURId01ORnhiZXBqZ2lOSFRNRm9HNWJKc0JQWmJN?= =?utf-8?B?aW5yT3lVWlozZ1Y0U0xvSy9pUWhkak9PeUxUNlRrTkplV3NnRFd6RkhqcTZB?= =?utf-8?B?NVQ2Rm53NnpuNEcvVGdGdGpONGFFNHFXOHBQeTlCN2gyd0hKSUszcVA5ODQv?= =?utf-8?B?amRybzF1cnJ2d0dVVVFobmhlVUdWVWRlcVV5SURxdTg3UmdlZGxjNDIvMStj?= =?utf-8?B?UndkVldaTEtCUER1RVZIOVIralA1d0d5ZVR4NmkwaklMVHN3Z0NqT1dZSDFW?= =?utf-8?B?LzdSVHF2ZXl3MXdOSW8wcVliYTBFbWpwYkI3NDNxVVMzS3hIVkFXZ09rM0lM?= =?utf-8?B?Z0tjWXBOZFlVb3FMa2paSHJveVdoUVdzMGU0cG5wMG5uRUNtcldSQTFZZk84?= =?utf-8?B?VkFCMFhpWGp6Q0tEcXpOQks3Z3JhWFQxcmJUSm4wZEQ1bWxMd3Rua0RWMFZn?= =?utf-8?B?T3J3RnN4dUs3WTBJNDZJb1N1WEVwVW90QzhOSzhLb3VVcTlNVUFBc095aHNG?= =?utf-8?B?WTIvVUlITXMwdnhGaXd0dE1vcmZnT29VS2xzdlI5SzU4blFNVG5lbHcwM3JT?= =?utf-8?B?d2NydHFLcFJzbFVSVXErTlV0aER0MmhHQkNoUGNodFpwTEtWR2VFQVppQXVl?= =?utf-8?B?MFY0N1hrREVvYXJVdTNzN2trZjQzT1kxOEgyOWFyWDhIRDM4bUovU01kUzU3?= =?utf-8?B?MzduZjhCWWxvbitiaitYeDYybkI4N2JvQ0J1OFlValgxU3lXWGpvQjM1a0tD?= =?utf-8?B?dmlvMnBkYjVXd3dmQ3h5am40ZUZRQzZzQlk4Z05aRGtidVg0MXlWYmxkZlN1?= =?utf-8?B?cVNPOVdNTTdMdEZobnJFZXh2R0pRWWNhVHE0WVhwTmlvZ1Z4TWlTdWQ0TGg4?= =?utf-8?B?OFFrMU5KdDY3SmpabjhoKzlFd3NwZW9IZU4zRnJDZnZxYVByOXNZZ3AwaW83?= =?utf-8?B?dXF3L2Zrc2x2VlZSeWJsaXVkd0RVbjR5bGQ1YXdNNmNQU3dEL2dNdjRyaUVI?= =?utf-8?B?T1JvTVlpN1J3NHd1Q0doQT09?= 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:(13230031)(366007)(1800799015)(376005)(38070700009); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?YUVSc2xOTCsvU1JmSjV1MTRFTlZHWWo3b1JiQ01xTFdsK2JvU0hHYUkrSjJ2?= =?utf-8?B?d2Mxd3FNbi9KMWNSTlNKczUzYXQ0bXRvMnA0d1U0VTlRUkRSUzdHM0JHVXM0?= =?utf-8?B?SlhOblg3YXg5U29TcGV2RUM0V25ta2xtU3VJZ0dVV0FSUXdUbDBlcHVMNjkv?= =?utf-8?B?T2pCN0haaGFTbm1yV1ZoZHRjMFZPS25CSmM3YnBBbHRFS0srWTFmWmNiOG0w?= =?utf-8?B?ZlBkbi9OUnRXNmVNR0JmRDlyNEg2UDRIOUhLMmhtU3l2OE82dUY1bjhJZEMy?= =?utf-8?B?Q24ydkswQlJLQmZTcWo0bTRjb1hralFxR1A5M2dCK1hvZXF1QW1KRnMzYW9X?= =?utf-8?B?RlNHdnFYSG1zTnRId2ZGZ0Y0Vy82ZzdVcHRnUzNOMkZ0T3I2enpuOVNicXgr?= =?utf-8?B?K0trVWlJN1FUMGgxamVUYjFKVDJsQUhvaUdqd2ZIWDlYTnFBODlISzliNGZa?= =?utf-8?B?QzN6RHlWTEJLeGVXaUZmYmh4cXpPRW9rMFF5WVN1NEowUFEzR1JXQTlqbG1I?= =?utf-8?B?OTI1dTFKS2ZWVDB2Z3ZaSlk4Z1M1WTVOWVNEcnFJRWFHZ0tBVDFhanl6aEpB?= =?utf-8?B?TWxydHc5YjVvVk5RQ0RPVlN3ZnM2RTh4QkZkYlQrUkNyRzRBTG5CWGxuVjJL?= =?utf-8?B?U3RTUkw5TFdtaXpLSlptRVdtNlRiQ0xhV1pVVjRTQ2hoYWJpVWVVMkdwVHU3?= =?utf-8?B?c1YxZVNUaWxsTHYvM0RvcW5VRjRwcHhFVWEwSkFNM2dTRVk5UzRDV2RBVlht?= =?utf-8?B?MjltWUpDakRSV1pRQ0JmLy9jZHZobmN6Y2ZPRnBHd0JwZ0VXZUJqOThTNk1M?= =?utf-8?B?ek9pY1dTUmMrN3FvMnZVelNiak9vVTNFOENiN1hPcnZLL1Iwa2k3cDR4SDZz?= =?utf-8?B?dk9ZWVl6WGpkNm1OWUVFdVhYMDdmVjAvTGtGNjB3T2k4TzA5T0pDTDVxcTZD?= =?utf-8?B?Z0R5UU1TelczV0svRGhyOHk1VDdpbVFMRXJNdHd1R3BLd29TR204YkpUM3NS?= =?utf-8?B?TFc3U09MMnF0VDc2L25EVDdnTGdwanErTjJVanNFcVdwSGNTdmM4eDlrSjVY?= =?utf-8?B?T1M0V1k2bmVQK3pKTEwyRkRaZjdYT3lQb3FObEFmQXM5VTBmV2llYzFGYWhZ?= =?utf-8?B?T1F5emlISndDS005dkt0NTNwTm5iWGJ0aDhCcUo0bms4bmpnUDBtTi92ekNx?= =?utf-8?B?K0hEaFRtTDBCYmd6RW5qRE90WFRpSlJSRktKS3dtTVF1VkpXVk13cVRwWmx6?= =?utf-8?B?STJlOUZRRVRURXMxR0JGczBHelBxUTZ3ODh0ODhhelU5TjNlWTZQL2s0Z0Q3?= =?utf-8?B?UUQrQ3Fta0NQSHdBSjh0N3hFazBnaW1lZFdUM3F6NFVPMmU1MEVKTklwanNs?= =?utf-8?B?VEM4SnJFNUJHNnc3L213cnc2bGFBMzgwQkZHT2E5YTZNL21OQXBxeFhodjFN?= =?utf-8?B?bExqRHNQVmV3VHVHUXFaNjZ1Q1duRk5veHpINkdvcnJaZ0p2T1NwSWNLWlZa?= =?utf-8?B?LzcwUFVrVFFSVkJGU1JaWEl3SlJxUFFENmFySmdZQUZpdjBXZExxdmJnc3RE?= =?utf-8?B?c3doSExzcDV0NytER215WjZ5VGV3b3dXR0cvQUExcjBYNW5sT25FUFBVM0ds?= =?utf-8?B?b2pTQVZwVGlVUDRNUTNWUVFocmJVbUFaYVZId2RNZXB5Q0syRWt1OUg2NUtO?= =?utf-8?B?aC93bFdiZ1NjL1BOY1FuR0EwMkZabUhpOE5ieDRJaFFuTXhOSE1sQXZBVFEz?= =?utf-8?B?NGttTHVjWlNmUUVDbXN6VzhpQ2NMMEFmamw1TlB2SHB1Q1VEQnUweHU3Z1B5?= =?utf-8?B?ZEJoQnVNcnhobkx3SnhkSThySDhnNmZvWDNLMk95S2NxWWFJckpGRllkWEt6?= =?utf-8?B?MzJwMXB5Y3IxWmZiaHdTc1VKNTF3WWFLRFBlRnpCQnBLaEdEM3JLRTJvM1V6?= =?utf-8?B?SFJiVWYwYjlhVGZhYzRvRTZkeWRnMDJ2ZmVsZlNvalloQ1NmSmthaG5ObXB0?= =?utf-8?B?T2FvYk5RSUM4dFlIU0pPa1FkeUN2ZDJkYXNIY05ObzM2Yk1BYmJBNHB5OUt3?= =?utf-8?B?eGUwN0wrWnIycy9jSkRxYzFwWWtOVzIrZTRZdFFENFdtVk9yV09JbG5FWmJr?= =?utf-8?B?c3lyekhUaUMzd1pLaFREWXRTREhNV251cnBkaTZGS1V4N2NaRUhYd1UxcElI?= =?utf-8?Q?y/P0s/UD97rmustIy4lFklE=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <35F96B762E76A742AEFC4261F3672783@eurprd07.prod.outlook.com> 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: 042051e8-1158-4358-b3c7-08dc6abca25b X-MS-Exchange-CrossTenant-originalarrivaltime: 02 May 2024 15:29:18.9660 (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: oUeqIxn8s0ZYT0TjZw7+Amgh54sJE8TS0ALsd9CP41OyNM8ZzEvugorMwaiM+RzVLtlELuDQQ1uc13009PI+aCu8/pJyx1bz07vwUs0s4iQBaJfmmGYweNFvcqpVjsDu X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR07MB9661 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+importer2=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, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer2=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer2=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1714663953173100002 Signed-off-by: Cl=C3=A9ment Mathieu--Drif --- hw/i386/intel_iommu.c | 2 +- hw/i386/intel_iommu_internal.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index c475a354a0..98c4a70fe0 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -5822,7 +5822,7 @@ static void vtd_cap_init(IntelIOMMUState *s) } =20 if (s->pasid) { - s->ecap |=3D VTD_ECAP_PASID; + s->ecap |=3D VTD_ECAP_PASID | VTD_ECAP_PSS; } } =20 diff --git a/hw/i386/intel_iommu_internal.h b/hw/i386/intel_iommu_internal.h index 14879d3a58..d63ff049a7 100644 --- a/hw/i386/intel_iommu_internal.h +++ b/hw/i386/intel_iommu_internal.h @@ -193,6 +193,7 @@ #define VTD_ECAP_MHMV (15ULL << 20) #define VTD_ECAP_NEST (1ULL << 26) #define VTD_ECAP_SRS (1ULL << 31) +#define VTD_ECAP_PSS (19ULL << 35) #define VTD_ECAP_PASID (1ULL << 40) #define VTD_ECAP_SMTS (1ULL << 43) #define VTD_ECAP_SLTS (1ULL << 46) --=20 2.44.0 From nobody Sun Apr 12 13:40:22 2026 Delivered-To: importer2@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+importer2=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=1714663952; cv=pass; d=zohomail.com; s=zohoarc; b=VrsjD//7+umAFIqclcmvOCo+d16ZFKac+Z/KSLTDjDWzzRj4mlG08QtfI0/vOnOyHtAfWpfAtmhI/Ij5egj/idoywkibhVvmgvs90WBMcSe6UOBnF370/FTzjOEz63E0cfx5QKwp+nswyLtBePF+cKZkexbmhg9XJlQk+xfkE7Y= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1714663952; h=Content-ID: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=HqPBv4MByZu0WvDVOh1KhT9RsB1lIMuoLhy+mBu7tCY=; b=BuF/oN05UAKI7ft9eVmqqjV7bvEuJJkX3oiHcYiGjd2xF3ToyDvVgfYJ1VvpBLfXO6wkwFU44i2PXG+W33b3ChQuD3RE1CRlcrRyaheOirlqePm0K9FgmL8C1ZW4/2olnSnmopzVR+oGMq5ZNno/Sgi0MjeaopknWT/ebyV5+OA= 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+importer2=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 1714663952834217.57311978883195; Thu, 2 May 2024 08:32:32 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s2YNs-000432-FW; Thu, 02 May 2024 11:30:08 -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 1s2YNj-0003vv-Bh for qemu-devel@nongnu.org; Thu, 02 May 2024 11:30:00 -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 1s2YNh-0005ys-6J for qemu-devel@nongnu.org; Thu, 02 May 2024 11:29:59 -0400 Received: from mail-db8eur05lp2104.outbound.protection.outlook.com (HELO EUR05-DB8-obe.outbound.protection.outlook.com) ([104.47.17.104]) by smarthost4.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2024 17:29:22 +0200 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by PAWPR07MB9661.eurprd07.prod.outlook.com (2603:10a6:102:389::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.29; Thu, 2 May 2024 15:29:19 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.7519.035; Thu, 2 May 2024 15:29:19 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1714663797; x=1746199797; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=HqPBv4MByZu0WvDVOh1KhT9RsB1lIMuoLhy+mBu7tCY=; b=jSdHWi3m3X4vLq3ucmyZag02HT0STfwBAGiEerPfNavJQJLk/+ivmcUV lAG7EaoUB0N16wBuuQ9dcXsevNoP3ghYOXrs2EkNoNRoYYQIh5uP76LZJ 8Yab/6lY+/QSWmzXw/anLEPPxy8vgVkIZsjr6/OmhdoHPgUg9MUmqW0YR eDG7Firj32aQnxylYrMKbRF7bcnHW237h4+JnV5vM+u7Uw3rdOFnBk9cQ 0z43mqJQ5Dqy/iBW38F3OME8K3MxMTbaFMQfUdRBAD7ME7vBEgYNoI27F reZrfoXJXMxEXF4KlsDC1Xb1LE8KXkDAicI3Tm6ulSevgOez5hpWMPQQX A==; X-IronPort-AV: E=Sophos;i="6.07,247,1708383600"; d="scan'208";a="11785885" X-MGA-submission: =?us-ascii?q?MDH8ClsssreG0UR25H0CWpte79oVApOYudlbCZ?= =?us-ascii?q?O/y9Opi4QbVi968rzfgXcR7CfWQ+aAG4CUsbzNorls9nt/BW1Nb9O0wF?= =?us-ascii?q?RKsG6ckqPn4nNjB+uksuB09ZkWOrkLQogoGVt1KDNKbcKicXbTsS5ng9?= =?us-ascii?q?wsUDU9/+rye2fWZLefiZyMxA=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=L+IE+9TNGsoCYK5+KLDNYFbzIzHmwHitcf5yJsF430NgOhbIDikvYf2An6NAfaLReKfOSRFOVk/kVWbNxXHOKoFv2Rhre6kkgVxhuE+V4kA9og6xwhssnQhapsT9EOpU2gHXBUrBD/lN5sMZVYBLn/b53JhN/NUuYaGepKwVRnnmP5S2YQ+Kj/rue2uXFPz1wdcQUzzRAfmqqqN0/eCgbUISl4yea2GNYaUTuCttSimheq89+3UVCPYkbiq7QrqQZtaVEtBgxoVXaHYa2ZUo8vhsiC0/5Ji5jt2X01UKWXk2dkXugfdlr5ZbtjgWDZsh+hZR2rceKN9PuHUATwptPA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=HqPBv4MByZu0WvDVOh1KhT9RsB1lIMuoLhy+mBu7tCY=; b=I6zmWww2imCwV/APp2H2NcggPdb/57BUwcrdKSojwai5AthCjU51AQedNZ1+1ZLXAiTEf/2Fy6oAuJLDfpl9qdk5Q7Lc7zHnF7Yy6n/uJeBIZiXTQwgQiNt8TaE4iPKQnxAU8VvhzgsDqlhMg85jeznFvvHck197COIVOnYoT35GbO0nacALVV9zTawpNNIBApUi96GedL98/vNc2Iwzdkr4GxXf6CSKygrezfkfm6sYpBQ87D7RhsTpQ+ncznNSWA8+3Ekx+sBzKhMxN7PiuNUehhtnZ2dY7pRv/OoYTpeya0T/0uwruUtWVh0ahCE7y/8fGNZ6kP3pH20wc/OaRQ== 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 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v1 11/24] intel_iommu: add an internal API to find an address space with PASID Thread-Topic: [PATCH ats_vtd v1 11/24] intel_iommu: add an internal API to find an address space with PASID Thread-Index: AQHanKV/Ps259jorIE2wmk52NNnsNQ== Date: Thu, 2 May 2024 15:29:19 +0000 Message-ID: <20240502152810.187492-12-clement.mathieu--drif@eviden.com> References: <20240502152810.187492-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240502152810.187492-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_|PAWPR07MB9661:EE_ x-ms-office365-filtering-correlation-id: 8bdee101-becf-4a08-388d-08dc6abca285 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230031|366007|1800799015|376005|38070700009; x-microsoft-antispam-message-info: =?utf-8?B?RVV0L3BaTDVseEp5a0htcHlQbnNpYUp4VFd4QVp3azdGOTJpbVJKaEFVL1dP?= =?utf-8?B?SVdsZURyWGtqNnZER3RKYmZzQXdEUysyK0E3cDNWU3hQVm5Fd2ZBcHR3VG5L?= =?utf-8?B?eXV2Vk1aVWVTRFBna1JGb2pXN1hiY1R2NHlXVU1LOGdLSy93WlAwSUhnSmxV?= =?utf-8?B?dHFBWUs0YStubm5mSEhjNnJUMEExdEZYQXB6ODNwZEM3TW5GazB6T3UrcWgz?= =?utf-8?B?WURHT2xzOWNUSU1SUTBvV3hINTN5RVkzb2l2R25zWjdMdnpQNk1kdEpRekxy?= =?utf-8?B?cXZPdi9KT2dZVWw4S0l3ZUk5VEFFVzdqTmhLMU8yUnUxOHpndjRKTlpzdytF?= =?utf-8?B?NTNzSlRQVjVhbEUzQi9wTHJiZlcrOVpZRm1LN1pid1FpdGJrUTVMaDh4NVZv?= =?utf-8?B?VC9GRXJsQ0tPTWwvN1BUU0R6NUF6T3NtM3lkYXpxWkxMYi9SL1o4aWQrYWFW?= =?utf-8?B?S3o2VlRNcUVzNTR6c1lnVXU5V1FLZHowZVRiN1Q0eVRxWEF5S25rSk56cEph?= =?utf-8?B?MzRMaTFjVXFybzF3Rit2a3pITUpEaXBsNXo5MHZUR3V2YUJHdnRTY3NDK3Nq?= =?utf-8?B?U1VJb2F1L1Z0WEdkY1pEWW0vTkUrK2FkdmdqZVNaTkNTVTVsVW00MUFZc2JH?= =?utf-8?B?a3Vaek0xUDUyWGlKL3RGeWI2blIyU3NxVS9PZlRpNWxPZ1ZDVEhJd2RVR29P?= =?utf-8?B?cTc3NS9aNUxDZklYeDcwV1R0TVliSm5mUGthbCtBZlJhWEdzT1lxVDZuUGFp?= =?utf-8?B?U2xzNHJkeGg5bmtFNER4ZjRWcUdBQVJQYlB0ZmdBT0JLOW1XM1RKY3Jxdzlm?= =?utf-8?B?L1l2eEFhZTlpSE9JRlAwcFdKQW1LcUdiNlBYMEpoUytpWm5UVEFrbTRDQTVL?= =?utf-8?B?cFlUTlBkdkViR1h1czg0K1BGZWRGejdXcHpiNVE1bCswaEovVU0vaTNnN0Jy?= =?utf-8?B?dEtQMlQ5STJxcFFlRDFEc05CcURGTUk5MnhlN3VqUU5qdDVXeGpERFJXQXhX?= =?utf-8?B?Q3hjNFpQbFVjRVNnZkd3RVFMRk4zaVhZZVIySThzQXdyWW9EYU5uVVRHOU8x?= =?utf-8?B?WEZKVnRlUzN4Q25BUjR0VFFjN2NkbTNwcmxtWlplRFgzSGREZGprbGg0YzdJ?= =?utf-8?B?UHBsSUVxVFQ4N1lUcHF2N2R6eGpWb09Ld2ExMmpiRjkyaWVLNzMxOU1GeFlW?= =?utf-8?B?SjZTMnd3bzVjRUxhSk10a3NEbGFJNTl2MVNJMmswdkt0RTI5SXdYaGhpNGRC?= =?utf-8?B?a1R5b0U0aWd6RVppV1BzZ3p0RHg0bzI5SHFHNXBUbDRmWjdCbi9vU05NdHlp?= =?utf-8?B?Rk13d0NwYWlTaDdnSjdqRXU4OWRCVXR1Y2Y1d0ZCM3l5akNka2p3Z3lzNGsz?= =?utf-8?B?aWVza1ZqemtmSDZKb3RUT28yL1lDbm15dFFWMVlHSzlHQUdJUXFxK1ZCekhl?= =?utf-8?B?MlVDWTlhWlFlWEhHbXQ2b2VlTDIxaHJwK29leE9ldHBjc2hrZlFrUTc5am0w?= =?utf-8?B?YndkUXpHQTNocXJCK0Y2elVqb1JOdnV6QkNLSytjRUQ5cW1pQWVtVTQ1TFRm?= =?utf-8?B?U28vcE1wUVVHR1ZGSDF1aDljL1NuZ1dFY3B0c3phR3VxdGRFNFVWNktVSjFq?= =?utf-8?B?bEl4SXd6eEZnbFlmVnEweVpzT0ZUVXFSKzlyUTJIb2swZW1XSk5KalpCS0ps?= =?utf-8?B?M081T29XbzArSGFJNGpXYjJCd2hFVGx4YkE2Y1IxM0xRVENwUUluUUpYeS8z?= =?utf-8?B?cmE3aWs0WHFWa1FwR1U4V0hKM1JVVklCZnphWkg2S05UcTh4L2xXRU96amVa?= =?utf-8?B?VXhTQVppN1FLZ2t1aEo2QT09?= 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:(13230031)(366007)(1800799015)(376005)(38070700009); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?RHk2dHJNSjkvakdZMXFpWlFXOUFLL3ROVW9GSmVEYTNWTTVJc2p0a3pwNjdu?= =?utf-8?B?ZGdJSUtsTXI2cmxNcFkzeUxRS2VKQVB0ak4xdXdMYXJNcWhDeElURE84V2xs?= =?utf-8?B?bTkraTNEb0t6SStrZ1ErdUkyTWdvSFZ4VHJrNEZLVVRlbU52UEtmalFTK0hV?= =?utf-8?B?Q0c3eWpmZklQVmo0UlN4S0RxNVU1UHF5M0VyVjFVK2pHSnNhejdQZk1LRS9m?= =?utf-8?B?UWhhZUhRNkZEemtneEV5dk5tQlk2VWJ6c1JjR1VoV1JTVmhSSFd4Sk54N3B5?= =?utf-8?B?M2RrQ3o4aGdETFRqREdLZHdLUHdQeHY3R0lqNHhwdDB6a1ZQWTB0M1RGOG4z?= =?utf-8?B?TmM3L3Q1M0xiem0yYjRNNmRiTmdBZkp0WmZabVJRdmlEMjNwQWQrUlBYRytU?= =?utf-8?B?QmQwcFlnZ05lTVh4OGZDR216SHpuY0FKb2J4aDdJUWFUZlBublBua3lnSUNN?= =?utf-8?B?eEJlaEZoZUNsSjlsZUVaZ2RnRDlPUmt0R1hCejZESzV1UVlTUHo3RHVWejJZ?= =?utf-8?B?NDRUcG13VmZOclFJOXJjRzBoektkMmppNncrTmxsOGdVV1pyVDIwczhqUUFw?= =?utf-8?B?Z1F4eW0wU1hVY0VQRHduZG9BVE1IWnFaZjRldjNkVGVxYTFlTkNVc090YlZL?= =?utf-8?B?WHdTdlEycHY1cnJ1ak9YTmUraStLdGJPWmlOcnM4OWxYek5zYjB0Z3lJajRQ?= =?utf-8?B?MXpmS082MTZsTXA3WEFUUmsrQmU4TTJHejJZeTU2NENENEpUYjVBUSs1TTVL?= =?utf-8?B?RjZKS0V0NWZ6Ymk3OGw0SXVRMlBqaG05d2kyTUJsalZPRlRrcUw0SC9CV0tw?= =?utf-8?B?NmNnWE50M3BwYmsyYklycGM0QzRaa3V2akV5VlB4TzZ0OHhkRUdnMXRBRmVo?= =?utf-8?B?QnNJK3QzTmttajBUR29CTVA3RWlSTUx4UTlMblBsclM5QjhGYW5zdXpXc21Q?= =?utf-8?B?Qm9jWXJ5ckExaGE1QzhVZWJCaS9DalFzM0VoYkFNd2FyeXpLYnMzZWFqSkVy?= =?utf-8?B?Z2tsaDNGZG5jTjFCeGRaKzhEQTBWRkN2bW14ODdTS2tRY1h4dExydTJObzlO?= =?utf-8?B?ejlHZVdDSEdTd1JnVVVtZDB5Mm55dVVhaU9uaGVwaDlpUm1GL1RYWm4vd2x3?= =?utf-8?B?dmUyMUNISk9VaUVpNXNwd0htYk1MNkc5dUdGckpwaGt1MVF6Ni92UzJjSHI5?= =?utf-8?B?VjdkMjU1bzVZL3g3dXJ4QXFRME9iOTZncmNuNXRhTmVHYXJ6UHVLM21yV3kw?= =?utf-8?B?dGhxZUpkVjJtR1pKS0NxV3lTd05hNnFmLzljQUlrUHhJYVRucGsvaEVWSjBW?= =?utf-8?B?cFJZdDQ5MjliS0ZPVXBPTmdXM1lIUGg5Q0xoZXNjcHVjeEs1QTlWNUtUNVdG?= =?utf-8?B?VmpMMXJFNm13ajJveXJNeE42aURkUXhjVXNwSEFJS0NaTno2dXNrNzA3MGRJ?= =?utf-8?B?ZTU4NkRPbmg1WVhFa0NSREpidHhOODdTTFdZTlZnTXVKbVkxMzhiYk4rTUVk?= =?utf-8?B?cTVtWjJVMUd4cFFyNnc2VlptN3ZNUk5oWTRIUlZYZjlzTmo2NElyalFOMThG?= =?utf-8?B?OXZ6UGhwVHRlVE9PakVCdkc1RGJMVHFRUFZhQXVaMEErc1NweW9wVjJvbGs1?= =?utf-8?B?RnNYVzFpK0Rrc0tPVTdZYXZxVFRic1prZ21VdHUvSlprWHVpcUYwcWVaWStC?= =?utf-8?B?UDVMTXo3NWlObGxZdnBFQnhQK1VBc2ZQcURrcVYrZ2k3c2k3Vm9WblgvODhT?= =?utf-8?B?YzhFTW5nbDdZQ1ZmdkY5Umg2eVVvMWJOY2xxK1BYZTU0Z1FjWXRtV3JSaWZh?= =?utf-8?B?NXpGamlCTXVmSWtGSlJzNEZTOWJsb3NCM25Ja2VhSkRwZ2o3Q1Y1bUNlT1oy?= =?utf-8?B?VEpMcU1scllrMmZ5cnc1ZmNPWEIrS2hpdmRZeTdpWHgzQWYzR0Y2MWR3eHR6?= =?utf-8?B?RlFxMHFpRjlpQmVvU1lNYU1Hbk9oM2w5UkZGdlVvNG9NWERYR3ZLQnl0MkZO?= =?utf-8?B?OHJxYVF0MG1RK0hKd29UcXZWZktKYjZiRlRlcGZzQ01QRG03Y2pVU08ySy9u?= =?utf-8?B?dlNXNkQwZTkyYUV2RW40UjRFa2d3TDJqdW9KdTdHTWlmK2swRUUwdjUzZy9D?= =?utf-8?B?cmMrYUJxTXQ5Z1ZIa05ZTUY2c1JsRnkzYmUwY0xSY3o1dEZvdXFObjc0enha?= =?utf-8?Q?cgeyISxk0Bi8bri+0VDZuCE=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <5CDCFE5E0FFC314BB30D213F84C6F7B2@eurprd07.prod.outlook.com> 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: 8bdee101-becf-4a08-388d-08dc6abca285 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 May 2024 15:29:19.2063 (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: 1JnPc2ibXG8cOiI2nG5jVrIYTWZE+CIKUuP7vW3uczk94QmJ4GlRIQqJl1PtT712f06lZ/cepAHyOdY1tDPoigcMz896+JdiRqQudj++1zCMKmqat3uYE3BIr4DHvI38 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR07MB9661 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+importer2=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, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer2=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer2=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1714663953168100001 This will be used to implement the device IOTLB invalidation Signed-off-by: Cl=C3=A9ment Mathieu--Drif --- hw/i386/intel_iommu.c | 39 ++++++++++++++++++++++++--------------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index 98c4a70fe0..fe97930774 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -65,6 +65,11 @@ struct vtd_as_key { uint32_t pasid; }; =20 +struct vtd_as_raw_key { + uint16_t sid; + uint32_t pasid; +}; + struct vtd_iotlb_key { uint64_t gfn; uint32_t pasid; @@ -1931,29 +1936,33 @@ static inline bool vtd_is_interrupt_addr(hwaddr add= r) return VTD_INTERRUPT_ADDR_FIRST <=3D addr && addr <=3D VTD_INTERRUPT_A= DDR_LAST; } =20 -static gboolean vtd_find_as_by_sid(gpointer key, gpointer value, - gpointer user_data) +static gboolean vtd_find_as_by_sid_and_pasid(gpointer key, gpointer value, + gpointer user_data) { struct vtd_as_key *as_key =3D (struct vtd_as_key *)key; - uint16_t target_sid =3D *(uint16_t *)user_data; + struct vtd_as_raw_key target =3D *(struct vtd_as_raw_key *)user_data; uint16_t sid =3D PCI_BUILD_BDF(pci_bus_num(as_key->bus), as_key->devfn= ); - return sid =3D=3D target_sid; + + return (as_key->pasid =3D=3D target.pasid) && + (sid =3D=3D target.sid); } =20 -static VTDAddressSpace *vtd_get_as_by_sid(IntelIOMMUState *s, uint16_t sid) +static VTDAddressSpace *vtd_get_as_by_sid_and_pasid(IntelIOMMUState *s, + uint16_t sid, + uint32_t pasid) { - uint8_t bus_num =3D PCI_BUS_NUM(sid); - VTDAddressSpace *vtd_as =3D s->vtd_as_cache[bus_num]; - - if (vtd_as && - (sid =3D=3D PCI_BUILD_BDF(pci_bus_num(vtd_as->bus), vtd_as->devfn)= )) { - return vtd_as; - } + struct vtd_as_raw_key key =3D { + .sid =3D sid, + .pasid =3D pasid + }; =20 - vtd_as =3D g_hash_table_find(s->vtd_address_spaces, vtd_find_as_by_sid= , &sid); - s->vtd_as_cache[bus_num] =3D vtd_as; + return g_hash_table_find(s->vtd_address_spaces, + vtd_find_as_by_sid_and_pasid, &key); +} =20 - return vtd_as; +static VTDAddressSpace *vtd_get_as_by_sid(IntelIOMMUState *s, uint16_t sid) +{ + return vtd_get_as_by_sid_and_pasid(s, sid, PCI_NO_PASID); } =20 static void vtd_pt_enable_fast_path(IntelIOMMUState *s, uint16_t source_id) --=20 2.44.0 From nobody Sun Apr 12 13:40:22 2026 Delivered-To: importer2@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+importer2=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=1714663933; cv=pass; d=zohomail.com; s=zohoarc; b=fMvf8EILjmMeLeWeUjhJ5/XjMMnhTFlKm0HjNSDRA5iyYz6KV2+MCDGy39pybGPdvR1dqahKr4GPRxwtKuYVwlt+nZxMECAm07X8Tb6KUjDi7jthtTYsAxfOhejBpfkIb/GR+CgV7+sOOJwYgV9sgMIkftUGFhl8ZBVcMoa+rPM= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1714663933; h=Content-ID: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=utCfpqA582zPDO3rI6/KuwFYiXteNmSye6BL+9lf4fs=; b=K+90PPJ4c+Nk9uAKwu5/yghpAUHJcsz0t+2oAZfraR1Hpio46pac482m+XwMUMQb1sgXFH8vV2vVB8RaJGH8vqMPxiL15/MG5ktwXs6i87+JVXv9Lg9cPgz8pi9ioFRmyN7fcQ05UAzY/Z3ruX6aRtsFiwX7WBw8bVmK3gcR/j4= 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+importer2=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 1714663933064920.7568549920716; Thu, 2 May 2024 08:32:13 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s2YNt-000445-NN; Thu, 02 May 2024 11:30:09 -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 1s2YNl-0003xw-SY for qemu-devel@nongnu.org; Thu, 02 May 2024 11:30:01 -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 1s2YNj-0005z0-TW for qemu-devel@nongnu.org; Thu, 02 May 2024 11:30:01 -0400 Received: from mail-db8eur05lp2104.outbound.protection.outlook.com (HELO EUR05-DB8-obe.outbound.protection.outlook.com) ([104.47.17.104]) by smarthost4.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2024 17:29:22 +0200 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by PAWPR07MB9661.eurprd07.prod.outlook.com (2603:10a6:102:389::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.29; Thu, 2 May 2024 15:29:19 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.7519.035; Thu, 2 May 2024 15:29:19 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1714663799; x=1746199799; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=utCfpqA582zPDO3rI6/KuwFYiXteNmSye6BL+9lf4fs=; b=rEL1F/dASthvxkmAFIsXLtejVF1w8V6Ylk7zAU55C4U44vNdIxfrgpMI CLEqbc18NdeNyktnd4UKqYO8GUVSQE4YMaQGG9/AWVZq9fS3IIuyztE4z 9Jw3/GVL+yGxFSsryNXrL+T1vQfDIkWvlWYz6tF5UeAaOSIMfhn3oV1NJ zZagEmWw5i8e0VuZOJ2pM/PjtyYKaifppdsKVC+L79RXx0klepJyI5wBB M0dc8rhscagdXA1j6/uMVUd1UenWBg1fO6WX/gJ/Wn7U42R13IvddRkSN FlbBjaeLEZaXSoqx6BD6juvt9P8cmqWULlRpBgBVr5gRoaonCud2wK6Ix w==; X-IronPort-AV: E=Sophos;i="6.07,247,1708383600"; d="scan'208";a="11785886" X-MGA-submission: =?us-ascii?q?MDHgAXYiiHTKaGc0ZQWAV4XE3sg4DQSnWvuU33?= =?us-ascii?q?SWiJM3P2QVUcJYNlD+7BWdz7dP24pjanX0AjmjF0jcwAsfyuxFKPx3iL?= =?us-ascii?q?7QOGqIAA/NXCTjfYdVxsXuGcPGyiiyn66cWXwNqgkP9sVXja7aZC7X0q?= =?us-ascii?q?ZUzE2oiDF6h8DfxKyndWeuyQ=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XhH+uahRahSYoO8FehLbyrRTiohKjKg4eRpNVZ8Qeh5bAcvxrT9GH+va8YVaxTKIohS4MJG7UCr3s7qmhqF8TPKa8uLVrPfqWWB/JQWLb/VRXWbvxdCPtjjAe+Uz/gyJFyjDVfNWzfVwNzJbPPdbQFAe7VmtTdjCekv8VG/uPbvqCwKo0GF6VgdeJDIad4BCpnC0ims1RssrA3uXYfsBOBLyDLM/Eg/F847UupPMGYHsIUZ1QWeZAmwUHHRKJaz5looKxMgKSunINplVosIGROqnr2H2ZRzeDjwy8hSv9lLSkJvcElH/VXJFZqqpvdr+pxUnWzlDiv3gLUOLLPCzaQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=utCfpqA582zPDO3rI6/KuwFYiXteNmSye6BL+9lf4fs=; b=mS2qGpdM7LMqSu2H4ob2PaLV66/HNeX0ajBvGH4idzTcN+QCkM0WGgr/HM67pKXtBXiEkm6+sXybdIX2D6S/lWmvf2/ihJn3SY1wVxjKow4ia6569DJ1joRSGS+hLaxhPzzMYHKc5Gzk+pyo9tznNM80YcJiigJpE0dhobsQS7BigrhvRaPQyMalDp8npmxsq58RBD3uTAySuVcmpc/hLOhQdRm++TL3ogFi1eJT2svRAKSqB4I7pKgKic/MUYLT/WZWWahflf98zp/i+VI5UpGkY13qPrvuKuZZjjOW98KEgeVDSKESyhD81pgOMY780d774kMr5BJihANfzS8Hsg== 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 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v1 12/24] intel_iommu: add support for PASID-based device IOTLB invalidation Thread-Topic: [PATCH ats_vtd v1 12/24] intel_iommu: add support for PASID-based device IOTLB invalidation Thread-Index: AQHanKWAR9D3bMixykiyWgUWFlxu2A== Date: Thu, 2 May 2024 15:29:19 +0000 Message-ID: <20240502152810.187492-13-clement.mathieu--drif@eviden.com> References: <20240502152810.187492-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240502152810.187492-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_|PAWPR07MB9661:EE_ x-ms-office365-filtering-correlation-id: 7ca59488-8d39-4054-2f81-08dc6abca2aa x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230031|366007|1800799015|376005|38070700009; x-microsoft-antispam-message-info: =?utf-8?B?RSsrRzNUQ05pd1pVeTV6aFhjd2xCQ3k4blBka3NGSEVvR3ZmdTdQL1I2NXM0?= =?utf-8?B?MlNNbTRtd1NGSWNEM0V1QzhOM2FwVk5LU016L1hCNmMrM2RxdHNKMVZTK24w?= =?utf-8?B?M0lINjVtbERnWDZZRWY5bjl1VFh3aDhHZGp5K3RXQW9wOXR2RjV4MkF1RElo?= =?utf-8?B?ckp5UzRyMlJUM20rcGkxWkgxaWhkT3pacTFTY3U2Y2p4N0RiZFJqY1VIRlV5?= =?utf-8?B?b0VlTEFJUGlBRU5BeEtvWU1PN0JPbXNObnRJZDFIampqc1V5UkFKWE5qdmE1?= =?utf-8?B?djlXM3czcHNpU1JkNi92bVNBTzhkWDFDWnNIdHBFaTNYTVRLVEtweW9LYXkv?= =?utf-8?B?YmhQbzNlWkJSeTRTaGs0Z2JvUVp1NmJ5ZzJWWHpwUUg5djF6cmZLZlZyTzRz?= =?utf-8?B?UXpJYUFleFV1MEg4a1pWMDV5bUN5aWJyekVGV1JjVER2c1d4bmVXUVFWdjRK?= =?utf-8?B?L2o0bGNmaERXMTkybU5KcVlNZHNTbGorZmxFQXVJNjBoNmx2VHd3cmRkNjk5?= =?utf-8?B?aE5mVE14dDFBUGJDLzc4WklYRkJPL0RlVE1nN1ZvSHRiQ1hoLys0cXJqQVA3?= =?utf-8?B?a0kyV2hmMmt0ZUo2elI1MjZpVk5oTVBDSmpiT2t6cnh5ZEtVaStmMHJzYUhv?= =?utf-8?B?dU5WY3hNcyttRDF6VzVxTEM1M1hUdkpLNUI5cmhGajFXRWM0ZnVIdzQ5dTQv?= =?utf-8?B?bTFoVk1LSEc1Y2JXbVozT0pTcGxodlNLS0pTNkJOVGNWNmJLNm9QTlNzQlAr?= =?utf-8?B?YnRBSmcxU2xNZ0lOTEhHNWtPMWsvTWNmQVJQNDVWdE1KRHBpclRWc2twRlQ1?= =?utf-8?B?QVNtdVdvYXA5emZvYk9xZW1jVmdGNVZXdy80ems5YmE4bDNXTk9XVjVxRm5q?= =?utf-8?B?cFJSM1p5d2FjbHJTMTZsWXZVQ3JMYjk3bTIwc1ZIc1hwakdxQ3BzTURnNzhK?= =?utf-8?B?Q0NGRWFoaWFQUThiOGZOdFlXbkkrVTh2aDRTdXhPK0ZZMnlveWcreWxBVzNI?= =?utf-8?B?ZjVzRU5ENFJONm9RNkVyVFNTVEVQaU9HNW9Sa29XWU50YldKRUFSOVZVUmVB?= =?utf-8?B?eDl6TlVHSTZkMk8xcy9ZanpSRFFmZHNVeVBhSkJGUy8vQlREc0Z1ckN6bzBY?= =?utf-8?B?WmRqQXpQRG9SOEd1K3dlSmd5N0MvcEJER1NsUTl3MktUeEt4WmJtQnUvZStL?= =?utf-8?B?VUpHazkwNytYOGZzTlR6SE54TVMyU0lQWDJoUW5KT2tKVEI2MmQzNnpTdWpC?= =?utf-8?B?L1kwczNCemF5Y0RKbTAvb29WaWxKTHRTUU1xMjl1aTR0dEY1L1UxRVFpRnJU?= =?utf-8?B?TWpDNXA3dTFURmw0RWpqbmR0RWVHWmZYSS9lMEZzZHR3U2lERm0rMk9kcmlS?= =?utf-8?B?VzkzREVZMGtPNFpjVG5JbU12UXI0U3g5aTJiYkFqRi9qT1k5VHNFVDVpMmFW?= =?utf-8?B?MGNjeTJOQnFUZmlMNkFUbXlMSFpQM3UzQXlDcmpmWFNoL24xcWhHd2xKT3Uw?= =?utf-8?B?VzJzdVFnVkNiY3Qxc2VOS1pEUCt0QzB6eEtkellid0RtMEx0b0sxQWpxc1Ft?= =?utf-8?B?Yit0K0VYbVJFa1F3REs1MHArTk5CQ3ZMZ002ZWIraDRmK2JtRzRwUFFidXFX?= =?utf-8?B?bXJTTnJPRzVneUpEU3dyVEk2bHlWYkpSQ09IOEVaa2tqdHhLRVFLelZ4WSt2?= =?utf-8?B?YkZuT3NOQkVVbXl4Zm9qWW5CTGpsRXU2UnUzVG11OU9rYlhXL1l4Z0NKbGlZ?= =?utf-8?B?MEZnakNqb2hVNkYwOFovM2xHd0JZR2UwazA3N3VhNDJ4c1g1cE83R0diRHZi?= =?utf-8?B?N25Vd1NVUVdsbHcvSml4UT09?= 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:(13230031)(366007)(1800799015)(376005)(38070700009); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ZUZ6aGFReVZnUVJLb0dqYWZkQW1WQnlHeWl6ZGJSMXY3T0ZCdmp3MXFzVkFI?= =?utf-8?B?clVpR2NtV1NuTjdDV014YVpEUVJxb1l3cFpCZTRKMkVxdzVwUGFsRUh1L21h?= =?utf-8?B?YmZoYUE4ZUtCcjhJWm9DR0R3MlRRcnMyZzVkNHd2YlBZakZ5RFZBY0Y4eCtS?= =?utf-8?B?OVZLOHVSZk1JWWl6WW9DVEVnaURZVU9adkttY2grYnREd0wyb042dTJ1L1FY?= =?utf-8?B?OEpYcDYwcnNhTlNPRXBjWkEvOGxYRzNOUmNFRXhpdVVDUThUUUpQV2FNaTJW?= =?utf-8?B?SzhYOWExZG85UStEUmlZVFB0WDc2bk50K2pQK3NkUng3SVJjSEdubUhhRVM2?= =?utf-8?B?YkRUVFVyVmVNdUtldkdhakZ5SklSRGpNa0FrU2VaMDNuTk5kMWZUSm5IN2ZD?= =?utf-8?B?SW1WK2t1L2tyVHVjQlZyZ2FwVllPQmtnbHZMeTZzek42ZklPWWhDMXVZeklI?= =?utf-8?B?NzRpUzErNElVTldXeWxVSVd5a1kzd0VGQ1JUaHdZeFMzVlpNdXNnUDNPanV5?= =?utf-8?B?TzdjRURFaGFhdVp3Q2ZLYnVnbVNCM2ZyOVJlUkNOenNNZWxaZzc4UDI1Vk1a?= =?utf-8?B?Rk1yNTdwSDJsMm1DQTJ1NDYrVlRXOTJnZ0x3Q1dCVjg1OHY3VGR4ZGpuYVZt?= =?utf-8?B?RXluNWRGWUxscS91emp6bDNYc3I5TlJBZWZ4MVBJSWVPVTVER1pvOTgyREFW?= =?utf-8?B?eWV5dWdBTS9hMlFTekdVSi9OUmUyZllqVXBOQjBqTXBOOTRVemdWMEtjdlFZ?= =?utf-8?B?VDZVeUNjcnI5Ukp0L3NkWU1uVk8rSzB2OFlGcjh4YTBGM29VM2FuUkpSTldv?= =?utf-8?B?M3RXVkZiZFljSVVISnNBcWl0N1JGazQxcVVtK1VXQXRTWm4wcWJxaE9XcXNH?= =?utf-8?B?QmI0QUFnT1RwUklaUVJldzYvUmJyWGpmSXNOMFNGVmhLMWJsMXhsdG9NZEZY?= =?utf-8?B?ZWNlK25yKzZyOCsrUm9qYTFRL2cvdHk3RFFCaFYrME9nN3Z6TnpSTzVKQjVM?= =?utf-8?B?eERFYzJVdzg0REpWV3pVanhhOXlCQ2hZS25jZDJtYk5pUTBFUWIyUndQb0Vn?= =?utf-8?B?SngvRm1zREdBZm1ZZ2NKU0Q1Mm8rYllITkpJQklOK25aUVpKZldpaitGaWFa?= =?utf-8?B?WTNqNXYvRDJQZHUzMllrNTZnUFY0VlBJQTgrWVIrZDdwN2ZXVTFiUUorNXpn?= =?utf-8?B?K2NQUXNmUkIrVlVwQ0RiRXZVUlg4eDBYeTlKRHdUeFBFditQQWJPQkRWNStS?= =?utf-8?B?VkRHOGVacjl4WVZ5MlMxcFJVcmF2OEhLYWVDWFpJbnJWZWowUmRjU3N5L0dE?= =?utf-8?B?Z2Y4SXQvOEltUFpQOFUrUk5iWUNYUTcrRVBtTjhWQ0tUVXNkd25nYkdtRE9S?= =?utf-8?B?blJhVFNkb0tYcmM1UnNlRVhWUENNbnFHbVN2Zll5MEZWd1hpb3VxbnJjUnpZ?= =?utf-8?B?UmE0UlBCZXN5eW9sYXBQSG5ia0xhNGxoMTBYbC9CSXdoSndLUWpMRXFFbFpN?= =?utf-8?B?dnVkU0ZVTXA2cXRRTnIydFE5ME5BRzR0Z0R6MStHaWM2cittazM0ZzlmTmd3?= =?utf-8?B?dVRPTStSVkZZV3V2WWV0Qk55OTZpcHgrRFQwaXhIOHkzbGNld0Z1cEFyU28w?= =?utf-8?B?aWNiS0syc2xwTlNDZmtGb3lIM3hZRUJvYmQybS80c2ptTmNLb0FVc2wrZDBX?= =?utf-8?B?OVRNNDNIUlJxdmRoSm5PejAvUXkwY3ZpaWR3YjNCVHc4V0M4REhCNER1elkr?= =?utf-8?B?RlJKWWVyd2hKU2Z0a3A2eGV6OTljNVVsWVpFb3JyZldHUU9hb1VEbmoxcnpB?= =?utf-8?B?R1dCT0twblNkeVIrQ1cwTVJ3dWhROWlaYzNxditNelBVc2plbEQzWjZMMitZ?= =?utf-8?B?aDdIUFZNWDJjczF2V1RmUEhyNFRzYlB2MEwvcFR5enRhbTZCQ0t2dlVTd1hu?= =?utf-8?B?YnROSWRBcHpxRTRhK1Nvc2U5UmN3eTd1UFEvcmwxSVhWb1dENG0wUHEwcWts?= =?utf-8?B?dFRUYjdSbEw5a0hSZFM2SHpBc1ZRR3VwQTUwb2JVcXZjaVJoTkNQOTA1RmJK?= =?utf-8?B?R1Ewb0NtMUt6dGVaSXU3L3JuTDlDSk5CeXovMXZTVEF6eHVNY3BBZHFlWmRP?= =?utf-8?B?Mno2SVR3S0dNWFRNWkdsWVQ5Sk5PRnFRTHhWY3ZnRlhHZ3RPMVowb1pDQ2ZD?= =?utf-8?Q?uL/UaFr4h8HbZgXA30K/kAs=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <4038642DA5248349BEDC0B7947FA5F84@eurprd07.prod.outlook.com> 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: 7ca59488-8d39-4054-2f81-08dc6abca2aa X-MS-Exchange-CrossTenant-originalarrivaltime: 02 May 2024 15:29:19.4281 (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: GjS89IZwGBRrhrh1aldwS0yoKiLnOpOpXO7RtvVWG+n/9qREPQOcd+hrJEmf9WJmo/Ez9L7Sdd4ocytWSmsUtkTVvSj88GfgS1/JJ3TaGBgxJ8OKYDFRDgmYYI/QU4g4 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR07MB9661 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+importer2=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, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer2=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer2=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1714663935082100005 Signed-off-by: Cl=C3=A9ment Mathieu--Drif --- hw/i386/intel_iommu.c | 42 ++++++++++++++++++++++++++++++---- hw/i386/intel_iommu_internal.h | 10 ++++++++ 2 files changed, 47 insertions(+), 5 deletions(-) diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index fe97930774..e7c1a5582a 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -4344,11 +4344,43 @@ static void do_invalidate_device_tlb(VTDAddressSpac= e *vtd_dev_as, static bool vtd_process_device_piotlb_desc(IntelIOMMUState *s, VTDInvDesc *inv_desc) { - /* - * no need to handle it for passthru device, for emulated - * devices with device tlb, it may be required, but for now, - * return is enough - */ + uint16_t sid; + VTDAddressSpace *vtd_dev_as; + bool size; + bool global; + hwaddr addr; + uint32_t pasid; + + if ((inv_desc->hi & VTD_INV_DESC_PASID_DEVICE_IOTLB_RSVD_HI) || + (inv_desc->lo & VTD_INV_DESC_PASID_DEVICE_IOTLB_RSVD_LO)) { + error_report_once("%s: invalid pasid-based dev iotlb inv desc:" + "hi=3D%"PRIx64 "(reserved nonzero)", + __func__, inv_desc->hi); + return false; + } + + global =3D VTD_INV_DESC_PASID_DEVICE_IOTLB_GLOBAL(inv_desc->hi); + size =3D VTD_INV_DESC_PASID_DEVICE_IOTLB_SIZE(inv_desc->hi); + addr =3D VTD_INV_DESC_PASID_DEVICE_IOTLB_ADDR(inv_desc->hi); + sid =3D VTD_INV_DESC_PASID_DEVICE_IOTLB_SID(inv_desc->lo); + if (global) { + QLIST_FOREACH(vtd_dev_as, &s->vtd_as_with_notifiers, next) { + if ((vtd_dev_as->pasid !=3D PCI_NO_PASID) && + (PCI_BUILD_BDF(pci_bus_num(vtd_dev_as->bus), + vtd_dev_as->devfn) =3D=3D sid))= { + do_invalidate_device_tlb(vtd_dev_as, size, addr); + } + } + } else { + pasid =3D VTD_INV_DESC_PASID_DEVICE_IOTLB_PASID(inv_desc->lo); + vtd_dev_as =3D vtd_get_as_by_sid_and_pasid(s, sid, pasid); + if (!vtd_dev_as) { + return true; + } + + do_invalidate_device_tlb(vtd_dev_as, size, addr); + } + return true; } =20 diff --git a/hw/i386/intel_iommu_internal.h b/hw/i386/intel_iommu_internal.h index d63ff049a7..3d59e10488 100644 --- a/hw/i386/intel_iommu_internal.h +++ b/hw/i386/intel_iommu_internal.h @@ -424,6 +424,16 @@ typedef union VTDInvDesc VTDInvDesc; #define VTD_INV_DESC_DEVICE_IOTLB_RSVD_HI 0xffeULL #define VTD_INV_DESC_DEVICE_IOTLB_RSVD_LO 0xffff0000ffe0fff8 =20 +/* Mask for PASID Device IOTLB Invalidate Descriptor */ +#define VTD_INV_DESC_PASID_DEVICE_IOTLB_ADDR(val) ((val) & \ + 0xfffffffffffff000ULL) +#define VTD_INV_DESC_PASID_DEVICE_IOTLB_SIZE(val) ((val >> 11) & 0x1) +#define VTD_INV_DESC_PASID_DEVICE_IOTLB_GLOBAL(val) ((val) & 0x1) +#define VTD_INV_DESC_PASID_DEVICE_IOTLB_SID(val) (((val) >> 16) & 0xffffUL= L) +#define VTD_INV_DESC_PASID_DEVICE_IOTLB_PASID(val) ((val >> 32) & 0xfffffU= LL) +#define VTD_INV_DESC_PASID_DEVICE_IOTLB_RSVD_HI 0x7feULL +#define VTD_INV_DESC_PASID_DEVICE_IOTLB_RSVD_LO 0xfff000000000f000ULL + /* Rsvd field masks for spte */ #define VTD_SPTE_SNP 0x800ULL =20 --=20 2.44.0 From nobody Sun Apr 12 13:40:22 2026 Delivered-To: importer2@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+importer2=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=1714663942; cv=pass; d=zohomail.com; s=zohoarc; b=DRXTAU8SkSEyBUGyR6vOS5UdXK4g+2h5BqgYej3YVEbdEc7e9CtCtdlKjiNcWH0300rcol3VCA3IRbYHkKRPYF72TNktcu5f2RlC/+fH8ApEEN8/6i+ozG10opYXflWERITlI0fp6WklQ80qPeReXzkBPMYaXHKcMAFb+bHJxU8= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1714663942; h=Content-ID: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=SJ1YCWl5qPAPbgtTpbIIOYagtuq+mMLnpiag2CWvi3Q=; b=dzKboiGOdKGDg9hPazmAtyvDArsFGMADAvt+1zjOBn/IntHPNKvSXz2RrGVOyLEAVsGrwn2sMTvKdc70kkr5qqoErSKOxqJKngtL5j1MmDSfpCDCjSOv5BJZyXljJ8IAChQAMasfbpuVy3JW02VBepJOoa8RsjAKh7oT7QX4tOA= 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+importer2=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 1714663942756599.9263894864653; Thu, 2 May 2024 08:32:22 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s2YO4-00048h-Kz; Thu, 02 May 2024 11:30:20 -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 1s2YNm-0003yB-6R for qemu-devel@nongnu.org; Thu, 02 May 2024 11:30:05 -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 1s2YNk-0005yW-1E for qemu-devel@nongnu.org; Thu, 02 May 2024 11:30:01 -0400 Received: from mail-db8eur05lp2104.outbound.protection.outlook.com (HELO EUR05-DB8-obe.outbound.protection.outlook.com) ([104.47.17.104]) by smarthost4.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2024 17:29:23 +0200 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by PAWPR07MB9661.eurprd07.prod.outlook.com (2603:10a6:102:389::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.29; Thu, 2 May 2024 15:29:19 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.7519.035; Thu, 2 May 2024 15:29:19 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1714663800; x=1746199800; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=SJ1YCWl5qPAPbgtTpbIIOYagtuq+mMLnpiag2CWvi3Q=; b=mg0A+T+IylR9fP4vGforNWMFYqe5oXywmaND8ek53NPjsUpsVhCyM4ZE YWthMD/Om3CWsgBav3wAH1YLx2G52uvNDOTANk1+ckRM5Uve/H90XUYAa yXDkLidPcdnvWpYxfSVZZg8BxjNUsuc3g7EEtviWjMRS+KFqryus61B/4 yXlGkTlM3YbphzaC7pWJPnp3iRtwvrHUl3hPEwQHLbZehiyi1NaKKBp9R QE4H2lU9GA86F2eCescSRweNxMQUS455tuTvVdix7ep6jdf6VKBbXfAMJ ExDvOufITPTNHIW1QlVeOJswb2mduRW5HOAGy/2a9ScNlLuccMh5bHYWN Q==; X-IronPort-AV: E=Sophos;i="6.07,247,1708383600"; d="scan'208";a="11785887" X-MGA-submission: =?us-ascii?q?MDHDnbPocZIM7UPS0lgJkGyCQRsFEKCgvg/s5K?= =?us-ascii?q?gyg3DTBaKXws0NoDkg0XGZhQWWGIOeXVaOlGIPSerfOVfdkIaDIu0CZN?= =?us-ascii?q?5u2QslsTj3BcFtpYqjfwn5cosmXCkxwh4YtI9MCtabNwBvFMMU3fbAYv?= =?us-ascii?q?HJPDj8cz9Ko45StpLae2H85w=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RmgFPK8HSfMHIZyqGGZCuDVb1J86o2ADPyV5MUkdSSDf5qgSL591p6xnb33OEkq4tGl8K393IUHtOemxXel/86N3Z3ykr8UTclr/iujdQz+R+WdfI1adJleFoHh9jaIxaKsotnhedXzp57+mZOGor9THsahvGOSu3BvDplUYPq1ax7z6lUFdALqW0dbAhphaNjvyH4+Tqr4AiXgn0jl9jCoSBJx79Czg7vFVfTiarOMkm71vZp1mPbEIlBCwW3bIAw77o/kSg9Alui1rw/SGGHfNHr99J3tYSh36+YUoMu4HD3Yz8w9QHl1ri2UomkH0YIWNTYxKHMGGPTwe7KNYwg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=SJ1YCWl5qPAPbgtTpbIIOYagtuq+mMLnpiag2CWvi3Q=; b=irSt+PMEULVP7PKdxA+lLFH5qfZYT5wDcw/f+gdbrdkvPgdGJ5nMdA8pR9IgnWqNJH3RR0XKVcaSFM2k5in9ce2FHrbo8fJ7gciPBiN5zt1njYmGrKRLVlIcRwYL1oxnW8uUTbNSjf+jzexeeYJXJd0wSzjVmUuG2mgbzLEdUryQ5lNrgsv5OjOIlccdhPsivQxNAI0dmqn9rOdErGbdy1BcFEzZ+l34LchzMv2ewjZnMX1Lip2UoJsGBXr5lI0/JNSbHSKjEJyvGpsd8TuC1o9yICODh7ijlO6aSD1bwzjJVov7VJvLR7g3j1vVZdkk48JyquD9guw1r0kvRm/BSQ== 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 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v1 13/24] pci: cache the bus mastering status in the device Thread-Topic: [PATCH ats_vtd v1 13/24] pci: cache the bus mastering status in the device Thread-Index: AQHanKWAPapiaRw7i0K7512F3ib09w== Date: Thu, 2 May 2024 15:29:19 +0000 Message-ID: <20240502152810.187492-14-clement.mathieu--drif@eviden.com> References: <20240502152810.187492-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240502152810.187492-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_|PAWPR07MB9661:EE_ x-ms-office365-filtering-correlation-id: 16b1bb00-7e21-4991-9e73-08dc6abca2c4 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230031|366007|1800799015|376005|38070700009; x-microsoft-antispam-message-info: =?utf-8?B?aENhRjN2N1RyUmVMUS9HbWJWSUtjeW1JRWUwR2RiUkoxY21jYW1RNGpFZ2NT?= =?utf-8?B?cVVpRG9iVTNreTJ4SXlGcVZXeVNOWUU3NEp1WWZhVzlla1crMVJNNlBkQzBa?= =?utf-8?B?ZVllR2RRWkk0ZGRDOGJIUUV0Y0RHcnE0WEtLY0NOdklHdEJXc2VPcUpvMzRR?= =?utf-8?B?aE5sQzhCQlQ2emVqWXNxWmNESVdTYk5QcTQzRys5c3NGdkpDa0YwL1pxWTBN?= =?utf-8?B?MnJWbEVGVVUrcEQ2N0lsK3ZBcVFndWNWdDJSMG5NMHlMVytkRDM0Ky9pb2J3?= =?utf-8?B?N3BXSHBML3kwbUZ4TzhvUDBKa3MzbG9XVWptSG5TQVh3SldYWjJ4NHNVL1pJ?= =?utf-8?B?d0hpVTYwYTZpSGwyaTAra2xMWnhXalV1SXJLZTd0QmdUWDRockFDa2E5M2c0?= =?utf-8?B?aWhXbUNNL2JIbHovbTFGZ1RTQ1N0UkxWZmZta3JhaGRBVENLeS9jWkRmc2VB?= =?utf-8?B?N2wwYW5NOUZQM2dFY3FsUXNRaFVCUjg5eElpZGJUUkJoSmd2OTQyZzQ0ZDRj?= =?utf-8?B?U1Z0L01WOUlpYjU2d3hDT1FhbitwTnZxaWdLNVByV2kxdmUweXVCNFlCMWNH?= =?utf-8?B?ZlN4L3JreXcvTE5pS2Y0L0tpQldqVDc0b01tQUxZYjBZMVJRUGJxSEEweEhw?= =?utf-8?B?UVdZTjRSTXFaemhPcHV0QmY2V0hFcDE1L1JoeWp5ZTdOemFiV0JLeWFlWU0z?= =?utf-8?B?WWs4VGczeFpwejhnMDV2aTJha3lhdEdtenhNU2krS2dhWC82QzhJWitqeTha?= =?utf-8?B?Y0c1WVV3SkNuTFkycFhYZGlnV1dlckNZNjJCcGQ5eW9TRWVSb0U5RnRKUUhE?= =?utf-8?B?SHBWem1qbHpVS2ppS3VUTDdUVjBEL3VQNXdZU3lPQy9aMnNsMFh3Q0pDdjgw?= =?utf-8?B?NDJ3UmhRbmdma0x2bnJ4ejJIZ0VwZmQyMzQvM3R0NHBtcE94NGExQ3g3endY?= =?utf-8?B?cmVVSmJobVBSRlltb2Y3WjhKejBaS2xSRjUxWm1kRS95QUhDeVp2RFlvZjIv?= =?utf-8?B?MjZBS0xHUUZ3b25hYWJKYmEwSXpzaUNVVWs5c0lVcCswdGJ0SVU1WVo1aFBh?= =?utf-8?B?Yk5ZYVJWWGFlSWUwZ200R1oxOFlSejhFK2t4R0JoRUkxKzUrTmdjVmRtdWVB?= =?utf-8?B?NEJKZjN2L0YxcVpYdjEyOHYyb1dtalRBeElRbmpvQWhXeEZhUHNzZHI4Nkg0?= =?utf-8?B?WmVSdDRUS1BCeExOaWlkMFQraDh6N0VsNnovMGdDYUdXaFN4dkJFNytQbUta?= =?utf-8?B?Q1lDZ3lDQUFkQ0l3elg1OEF0cFk0YTVCR3lKSmt6Z09wZlBLM3p3OFhZamY5?= =?utf-8?B?R2MyUnJVdWpON21mc1IyUjEzS3FWK0NyNEtwdkNORVkralg5OTBaVEJZa3BM?= =?utf-8?B?VjNyeDRWekFseXJNTlFsZnpxVlBFeUJKZWoyaVAzMUM4MFo4c0EvSHBNcWhC?= =?utf-8?B?SXkxYXRYL09NeG1CZmloRE1CdXRXY2xiYitwU0lYa3VOVVhGZEZKSTh3ZmFO?= =?utf-8?B?RFNsbWd2WlIrYmdyK1AzNlpRanN3QVRWeklSY2NwU0Z6YWUyTmtCUHZVN2Ew?= =?utf-8?B?Qi8yZldoN3BuYmo0K1JhcE9iY2QyK1U4SmFTdlhlMThUM3Q3bVJKNDRlTEoy?= =?utf-8?B?MEluczVXVlJ6ek1jN0dkZllVNExSanU4SWdhekxmcmpablVlTUYvRWljODF6?= =?utf-8?B?L1p5VmROemNSMEREWUVJeGlWc2NrOE92cjlPZTZEczlSVWswOG1JR1JWTkNL?= =?utf-8?B?MGxiUjFRY01zaXN4YnFBWUFtV3RkVFhmb204QVRtc043cEl2TmJZci83YVBF?= =?utf-8?B?cFltZVFyS0k3bEFBa0x1dz09?= 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:(13230031)(366007)(1800799015)(376005)(38070700009); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?b1V6cDFqK21Cci9iWEVjME8rMUtLNWJoSHBUcVMxK0tmMGsra2JIZ0ZIN0Ja?= =?utf-8?B?QkhiMUVTTGZDQWEyUkppZTk3NzNEL1dOVHhUUml6YXpTMGdpYlBYWTJvS0hr?= =?utf-8?B?OUZkWVZkM2lGWXZyZHg2ZGw1dERSSmo3dEtpNGZkSWh1RjUzMmh2VXpFT0VO?= =?utf-8?B?ZWFETm9JaGYwRS9TOGc5ZFRkSURYY05HZTh5TnFPcnpib2NMZjJKSUdxeDlL?= =?utf-8?B?Uy93L3B1cXFwOGgxR2xzQXluUXJxWk0xMlArekNJTnVyZ2p0TGlnenZPR3Vx?= =?utf-8?B?M3NpTVQwNklOSG1vbTRHTUlxeDRlREhQREpDSlQ0eEc4N0VwS0REZDhaY0ZD?= =?utf-8?B?QWVncmtDeTZvV0VkU1ltV05wWjBxR2JtbmpDcVdMbW5tTVR0eW8vcnpVRlgx?= =?utf-8?B?clVuaUtVdGluSXlsbGh0eklKaENXUXhpRk5vSHNwelZMdUZ6di9wSzZYU1BL?= =?utf-8?B?OVp4QkdFU2dGSDFWaDZoVm1KUDdneGtCVGxydHBDRVkzNDRhanRZdm1RYUd1?= =?utf-8?B?empzQkRpa3lzaFZQK09jYm9qOFp0TUIweENWT3ljbDFDbDJoaGZScWMzRXhy?= =?utf-8?B?QlNDMDM0dkpqbWVTdjRKamhpLzFuR0VmSWhibURFTlRQOG1aUjJBMDlpaDVx?= =?utf-8?B?RnBTeDZWRVN5NE95UDkzR2R5M3ZNd3hlR0lsdldlV1hzcTRHUzhIaG9ld3VH?= =?utf-8?B?SU92NWRiZHdaSUhnN3BhckFZTUx2alIzbVUzZnl5YStvRWFmNjJHL1gwZVRL?= =?utf-8?B?eUlZbVl2ZTdSK1dUMUI3MXV4U2U2WnIzQ2ZsczZpb091ME1IZzFlVkN6STI2?= =?utf-8?B?ZlR6a29KM01MaGFxMm5uT2xvVGNqSGdEM0JaamRFTnlGN1ZGVzlhNy9XdE1v?= =?utf-8?B?YXNiUlNJNlg2V3RQUEtIakFTZXcwd0U2bjJoYWo0M00zdDRuZGJwemxYNitn?= =?utf-8?B?MEJUeTVWT0psRjVGRzhDdU5zK1hMOCtIbWdybGhxN0xiYWVDMnFRaVFpUzE4?= =?utf-8?B?ZVRsdGdCRkJtUThuUSswYndkMEw2QnI5MFphVzlmdHVPbGhBMFV1TFR4QWJW?= =?utf-8?B?ZktkZXM2TDdycEJ2dEthazI0SVlOUHp5QWQrbkZJUG1kSDMxS3J6UzRoQVZI?= =?utf-8?B?QjFTeU94QzFaS0N0TW9CY1p6QzNPaE42QlZaYlNLSENpeGlvWVJ5WGJWMEx1?= =?utf-8?B?WjNjcFdjdFBuMGdBcE8xcklTelEvN3N1Kzd3bGVvWHFEUi85QU1Sb3pRbVFT?= =?utf-8?B?dzlxMkVLK1hDWitIYjlBY1psSmhhOVNOWmhUV04vZlJiYm5LRjRRU05PbGh5?= =?utf-8?B?YWJaYy8vNElGTTZpZDdMaU9sM2p3WGZlZ3FUUlFPdms5NjJEUVZiNzZqTFB4?= =?utf-8?B?T0lMZm16UElOUTkrdWpWaU4rMGo0NGJHcEx2MWZMelVBSHNsb2Z1L0xKMHV5?= =?utf-8?B?WGhPVGsvZG15K3FtdGh0N3k3M2pQSlR2UXFoQlpLK3NvZXYrZHVna2NOeitt?= =?utf-8?B?NS9ncVAwbU5nSU8vbHlPaDZhTjlGUGRONkZhaFlTK0JsOWVPMzNmdlI2Q1JG?= =?utf-8?B?dG1sV2dpUzRjTjFlTDlzM2gwbFdJSms0ZlJOaVlxYktra2ZjWmowMzVvTW13?= =?utf-8?B?N2g4My9IcEZhRkk2N3hUK3dydzRFTEdCOGFLUnZBTE9BdCtDdjVmdy9WVVJB?= =?utf-8?B?ODlZQko5aHc4aTFMeDJKVkhXK3IraVIxdmFyRDBWYjMzdUpWN1RsSDBubVVo?= =?utf-8?B?Q0JBTVhSVmZYdXlFVzdLb2VKQU1VMEdDUGpYZ1Btalh6YnRzRGo0YldrUU0y?= =?utf-8?B?WTBEcmMzZVlKaWNLa1R6WE42K1NITUFXTC9PdlZPSyt3WjYrWGVxWnVXaVdy?= =?utf-8?B?eTh1QnFvUDNqVDIvRmNsYVVUYWJoNlVWWnI1M00yZ3pmZkM0Q3FKNEtDUlNE?= =?utf-8?B?TU5taHg0VS9aRTd5aVFoUFRyZllPZnNtQ3FnLy80SDJnRUd4UFFvU1pCVTZO?= =?utf-8?B?K3IxNkoyMTlnSHhlWnN2dmMwOFNMU3htaEwxTDdQbHhWQVpWNmZIL1U5UGhw?= =?utf-8?B?YjN4T2tsdkw2eWlyMmpBaEQ3OTRjMkxVNWRFWkIzWnJxNnRWaE1mSVJNZFE0?= =?utf-8?B?a0d5czRqU1RZWEJZTHB2VjVMd2NvU3g1WmVWaFZrM1c0c29nVitXbXpidFgy?= =?utf-8?Q?qM2YOPa3V92tTAf6plNIr4g=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: 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: 16b1bb00-7e21-4991-9e73-08dc6abca2c4 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 May 2024 15:29:19.6633 (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: vnKB2hV7eB8qE4c5gJJDGGAFHUdErkL7kwW2E0AICYf/g8MPUYcwBmk66FVfIkdqMytTCHsePIYqV1+H2RQL4bpWkbUxCr2FTX0Ol/VTzRQef7LJ138CQbiipaeBSyBu X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR07MB9661 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+importer2=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, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer2=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer2=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1714663943092100001 Signed-off-by: Cl=C3=A9ment Mathieu--Drif --- hw/pci/pci.c | 24 ++++++++++++++---------- include/hw/pci/pci_device.h | 1 + 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/hw/pci/pci.c b/hw/pci/pci.c index 045d69f4c1..e5f72f9f1d 100644 --- a/hw/pci/pci.c +++ b/hw/pci/pci.c @@ -116,6 +116,12 @@ static GSequence *pci_acpi_index_list(void) return used_acpi_index_list; } =20 +static void pci_set_master(PCIDevice *d, bool enable) +{ + memory_region_set_enabled(&d->bus_master_enable_region, enable); + d->is_master =3D enable; /* cache the status */ +} + static void pci_init_bus_master(PCIDevice *pci_dev) { AddressSpace *dma_as =3D pci_device_iommu_address_space(pci_dev); @@ -123,7 +129,7 @@ static void pci_init_bus_master(PCIDevice *pci_dev) memory_region_init_alias(&pci_dev->bus_master_enable_region, OBJECT(pci_dev), "bus master", dma_as->root, 0, memory_region_size(dma_as->r= oot)); - memory_region_set_enabled(&pci_dev->bus_master_enable_region, false); + pci_set_master(pci_dev, false); memory_region_add_subregion(&pci_dev->bus_master_container_region, 0, &pci_dev->bus_master_enable_region); } @@ -657,9 +663,8 @@ static int get_pci_config_device(QEMUFile *f, void *pv,= size_t size, pci_bridge_update_mappings(PCI_BRIDGE(s)); } =20 - memory_region_set_enabled(&s->bus_master_enable_region, - pci_get_word(s->config + PCI_COMMAND) - & PCI_COMMAND_MASTER); + pci_set_master(s, + pci_get_word(s->config + PCI_COMMAND) & PCI_COMMAND_MAS= TER); =20 g_free(config); return 0; @@ -1611,9 +1616,9 @@ void pci_default_write_config(PCIDevice *d, uint32_t = addr, uint32_t val_in, int =20 if (ranges_overlap(addr, l, PCI_COMMAND, 2)) { pci_update_irq_disabled(d, was_irq_disabled); - memory_region_set_enabled(&d->bus_master_enable_region, - (pci_get_word(d->config + PCI_COMMAND) - & PCI_COMMAND_MASTER) && d->has_power); + pci_set_master(d, + (pci_get_word(d->config + PCI_COMMAND) & + PCI_COMMAND_MASTER) && d->has_power); } =20 msi_write_config(d, addr, val_in, l); @@ -2888,9 +2893,8 @@ void pci_set_power(PCIDevice *d, bool state) =20 d->has_power =3D state; pci_update_mappings(d); - memory_region_set_enabled(&d->bus_master_enable_region, - (pci_get_word(d->config + PCI_COMMAND) - & PCI_COMMAND_MASTER) && d->has_power); + pci_set_master(d, (pci_get_word(d->config + PCI_COMMAND) + & PCI_COMMAND_MASTER) && d->has_power); if (!d->has_power) { pci_device_reset(d); } diff --git a/include/hw/pci/pci_device.h b/include/hw/pci/pci_device.h index d3dd0f64b2..7fa501569a 100644 --- a/include/hw/pci/pci_device.h +++ b/include/hw/pci/pci_device.h @@ -87,6 +87,7 @@ struct PCIDevice { char name[64]; PCIIORegion io_regions[PCI_NUM_REGIONS]; AddressSpace bus_master_as; + bool is_master; MemoryRegion bus_master_container_region; MemoryRegion bus_master_enable_region; =20 --=20 2.44.0 From nobody Sun Apr 12 13:40:22 2026 Delivered-To: importer2@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+importer2=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=1714663983; cv=pass; d=zohomail.com; s=zohoarc; b=eEhaRvdyCwCijvnSOO93AnBMWmrAG6feIRgbTa56vbyJrV/GMjJLvHYHVE0JT22XAKH3zuZFIgVgXFYoJ0GTlKYv4b6KmfdMT7mfGHCyTEO1YeNgHEg9tCnlEhprktrjy+6/zjnNWiquwhUinSpaiYn6yy36ehJr6hD83afJ/jU= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1714663983; h=Content-ID: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=+UqGxNkmEEVK9qOUIr81H5+0nzmF7R37bpPM1v81DI0=; b=n0/xWSuwjVlHQA67wuoVkIgGFClUroYfxUwPFHqtJ2Es7dJNrgIuoBBWCjDj0UR+Dxsj5dg5tskC5j6EU5+aLsnSaIFETQ+7bWRNtt7yef35nfl9Hw7UGC7P77q8XIUtZPXjdOsxyKRL62CoOIgCGUTIPcbxIqkMYO/y+ciFuv8= 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+importer2=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 171466398332931.47349633001818; Thu, 2 May 2024 08:33:03 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s2YOO-0004SO-Ax; Thu, 02 May 2024 11:30:40 -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 1s2YO5-0004EF-6S for qemu-devel@nongnu.org; Thu, 02 May 2024 11:30:24 -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 1s2YNt-0005ys-QA for qemu-devel@nongnu.org; Thu, 02 May 2024 11:30:20 -0400 Received: from mail-db8eur05lp2104.outbound.protection.outlook.com (HELO EUR05-DB8-obe.outbound.protection.outlook.com) ([104.47.17.104]) by smarthost4.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2024 17:29:23 +0200 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by PAWPR07MB9661.eurprd07.prod.outlook.com (2603:10a6:102:389::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.29; Thu, 2 May 2024 15:29:19 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.7519.035; Thu, 2 May 2024 15:29:19 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1714663809; x=1746199809; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=+UqGxNkmEEVK9qOUIr81H5+0nzmF7R37bpPM1v81DI0=; b=dDZywA9dgOl4Y29stv6ExFskigt8htP6GnBy/d5iK7NIMhrkwQ9m2sqk gv9QaF4jhnGfWHODP2DCilb7TrOaha5eqyO3PxdBx2G9vzqUSxMfN4PhD NkvlOcSAuG1WwXHkVVaU636CRGJ3uS1ucxJP6uQWBU2gK68DyoOryQG2u 1l5XSpkra1HVZ/mGLO84k1Hl6B9i2pxc8cWUvwFZc+QPjsoW10TrwMcZ2 T2mz/XtaEvo4iNTiprb8GRzptu8hSF6t0Wy7OzYS3gH6FZtEpGokYrjSR 8UK/eUGWDUsV0ObXFnymqiYrKm6qKTKPYy35/oVNSJbRZI0FjPUqwWtS2 A==; X-IronPort-AV: E=Sophos;i="6.07,247,1708383600"; d="scan'208";a="11785888" X-MGA-submission: =?us-ascii?q?MDGLwFYRyRSZnQWf8tLjkjOymNtqXk/1rh0DYS?= =?us-ascii?q?rjB6salSYBs8ONmvj33F4B6+2p0OmE6Z4qIXgZ58ZNoaOoydT+RovQme?= =?us-ascii?q?n+P8uVh0+VwhM2BLQchPL61xEBznbyh6mvE+08ktWANTazvgBsrym+EX?= =?us-ascii?q?y/B5mUd+8bJl0ace9xP7wEag=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PAtC6Pxg45LAQ9kUh+TF24As8CKhDgBAjC5MylKvzkPIw6tahBbhgxTe6Ziu2RhR+1kcFGgZ34ZILzEEVy6I49ICO2AAax8Iu60dctK6sJqUlVw3T/cNs4CKRXOFWJhN0wvj+VYsQkzrXE2+/Qg3H+XLut5pU9jUGs3gDOX50HYyhathHgf7vpnUrOAa/sENxu0DE5A+JyEXtt/eAdTyI9rsOf5GAp0iA046gu9AJNNT2rmsH7wQQC5/SbYJB5xnBZsUUeb+cjsvZQ83lf+c139EMuVnJW6ToAto5t8aBK5yEJnEeSWzVzceNDd4oBr5nxZPoZAtuDOyjBJzS89x2w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=+UqGxNkmEEVK9qOUIr81H5+0nzmF7R37bpPM1v81DI0=; b=IPAVQQhn3aTLGZEjm+VGK7e/o9QQ/T9WzJx7gNA4X4bcEGTjHXG4A1Fg86Z/qjpPPyIqDAaSJkg+qVFX1TrCMK2nvHeIvWlqKcS3dfnCgC0rR+GhlpUEUqMBpMJP9Gamg3STxh1oo2E5T5nReIutYjha3g10f1eU/R7D4AqiPwmRoF4C0cPrvqD/tTgwTfNUxRrhRZnmNsBy9xN26Y2PcnbgUdcnZLnqI8jJeAahG3501uUQvMkqAKtGUMqNHFWAEL/K8o8aB0Cxxa97PMVAxbAYWgXvBSC/1R8CWYCycvoq/THHF3H8ArctTzlRfsC33PTePphRMvXIQni8p1C3NA== 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 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v1 14/24] pci: add IOMMU operations to get address spaces and memory regions with PASID Thread-Topic: [PATCH ats_vtd v1 14/24] pci: add IOMMU operations to get address spaces and memory regions with PASID Thread-Index: AQHanKWAsBsGY5rV/UyOtoHHEEzYSw== Date: Thu, 2 May 2024 15:29:19 +0000 Message-ID: <20240502152810.187492-15-clement.mathieu--drif@eviden.com> References: <20240502152810.187492-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240502152810.187492-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_|PAWPR07MB9661:EE_ x-ms-office365-filtering-correlation-id: f8641a4a-ed32-4d9a-3bd7-08dc6abca2e1 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230031|366007|1800799015|376005|38070700009; x-microsoft-antispam-message-info: =?utf-8?B?emJUaEFrWWhuN1ZXUEMxMldMdGhTUXFjeDJNaGYyb3RZWDUwZVJiOHB3ZWpj?= =?utf-8?B?cGQzQ3Q5b3JEVE1vRmFzcTM1cGxTcUpXaUJEOU5aUjVhUzBSd1I0aUtIR2l5?= =?utf-8?B?T010R0dQZkJpQm5iU3Bkb0d6UmdCTmtXQTB6bEJ5UlJDSUg2c01zeDcrNFh0?= =?utf-8?B?cXpJYmxtVTFTa1NTcnRyN202VjYvbkM1S2RONG44VjZwc1dmbSt3K2pxZmtZ?= =?utf-8?B?QU5QM05CVDRKZUlZd0duZkxUNjFJRWVMYzcySy9zMVVxcmFaRFAvVXRHazZ0?= =?utf-8?B?N0doNUhQZG42cmFLNmhqQnpOMzNUUjM0aytpM1l2d21FMkhWRE9yTkFGSmd3?= =?utf-8?B?TjJWOVQyOEErcGxhZDFZU2VVNndwYWJNZTZHL1NLcGM0Y2lENlNNVE9zcWR6?= =?utf-8?B?cGlPMGI0Z3lsVFdXa0FhQ3VZdVp5QnlPWTRtWm9kS1JpWS9vMkdpZG9Yd3Ez?= =?utf-8?B?REN0a1dKVkxFcXZVVnNJTXdYa0hYRTl4V3JyK0ZTT1A4RmJHUzBqTDRxQ2Iw?= =?utf-8?B?MFNqSXRjS2FiZTk2d3g0V0lITHgzRXY3Wnk4WHlwRkpBRnFwUUdhTDNmZGZn?= =?utf-8?B?RHhjb0ovZCtTL3FKcDdjVlEwK2Q2UStBOXlUYlFOUkY0dnZuMzNWb2w2QVVK?= =?utf-8?B?V2Z3T1RsVjd0ejJjSzVrazhUSjl0OXhYY1RSbitYbzJ0bU4rS2ZyZnlWL3ht?= =?utf-8?B?SHZnd1JFRzkzWmR4VExlMDF3VjZkeVRldDBXRDJuM1Y5ajVOT3VZY0E4b2M2?= =?utf-8?B?OUVIZnQ5SEFWS2xzYTRpZmFBSE10TmhaREk3elVlSE8rbFVmOUFmd05SVzR0?= =?utf-8?B?WS90VWJ1TEJoSzFkMEpzOGl5UFQ0c3JlZ05BcGg3c3A3VGswUEszTWN0cGlS?= =?utf-8?B?RlcwNWtaSVU2cjFUQnpnUlhmVGNiOUk3eEpyUlM4MGNzUDIyM3hnMmhGZFl2?= =?utf-8?B?T242Uk56R01WeFdKMDUyem1LMjN3SXJuVzhsdGtkd0hRU3JmZFVPd3Fyck8r?= =?utf-8?B?UTZNTzk0elFVYVFIQ1JObkVic1ovNkR1dzNIeHZWKzlSMUlHTGhUTjBmTmdE?= =?utf-8?B?SWRqWmszS3pPWUtxaTlCaHk0ZzRxZldqTTd4TmE4aUkwZGNIUG5sVjNOMzJa?= =?utf-8?B?V25nMzd3Y1hVU0tXSVJ0N2gwTkNCSG9xNmRHQmJOOWx5VDZTbnFGV0ZHKzFi?= =?utf-8?B?dG9hTTNVc2RQSEJsQnY3cVJiMUpxdkdMQjloS2lpQlN3WllrZ29nanFFVkc5?= =?utf-8?B?WWxaSzBYSnpHaEVZdnh4UDNFT0hOR05yTlhYV2tOYjZXeXQ2ZE0zZm5ya3p6?= =?utf-8?B?RzdRbkpDR2lNY3V0dVYzc0syb2RPN1BqMm1xMWF5RWhRL05OWldITnZZdDQ5?= =?utf-8?B?eTFwYUVwekx1N0hkSzRGTjRSb3dFcHA2dXBhejkrczhJMHZqQmY1cVZyY1FY?= =?utf-8?B?NThWa0pSK2lsQWdIR3VCZGFNWWNjUXNlN3FIcmVBaVFKV2pOdWZsNlQ2eDQz?= =?utf-8?B?czNlTEU5UTJ0Z2FiR1Y1YWZtWERkUjVJdW9uMUMrNEp6VHlaclB1R3hENVFD?= =?utf-8?B?ZmUvRFlDcUFUUDhtV1RZbjQ4RTVnS3l3cnZ2bmZVYmlDQ1hCOG4rQm1yMGY4?= =?utf-8?B?djZMbURWVlBXanNtY3BsR2N2S08zcFREQVJ6T29mWXNjMWN5MDRvTVdPUi9y?= =?utf-8?B?dlk2eCtweHliQWl3QzRtUW5hT1gvMVp6SUY0b2tKMnZHT1lQV1BtcXVDUHlY?= =?utf-8?B?bnl1TU40NktEdGVDbjJnK0UyWlZkclpjeGlxZFZRcjlxTTUyN3Fia0tDVFkx?= =?utf-8?B?dzA1VjVML3k2Y3ErTDVqdz09?= 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:(13230031)(366007)(1800799015)(376005)(38070700009); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?L3ArSWxiTTQrdjExVjlsNWRGM0xuaU1PN1hBWTd0cktoRURXSWhjbER1VDJM?= =?utf-8?B?TUN5R2xtck0xdG9iS2FTZ3NINFNEbUpERzVBcnptV0sydGltSGpiLy9Ma0hx?= =?utf-8?B?TzRMMWthTGY1L1VtUG1DajlkNnB2OGVTelRFOFFVTFdwUEp4ZCtrS1g4T0sr?= =?utf-8?B?ZHgzZDNWck5ZZ1YxQkJxVlc1SGw1bW8zK3pnaHh1UTdwSkt4elNSNElKeGxv?= =?utf-8?B?MEhubE9iN1dORHd6aGxJak83MnF4blpiNHNEV2R2QlNqSkU4SXQ4OElhR0hV?= =?utf-8?B?eGxWWHdZenNwMEFYUVBBUGQyMGZvZkt6Q0F2SmFSTE94NzNUZjArd2xHYlcz?= =?utf-8?B?TTNyck10UjJqQjNpRGtudUhORnIrZTdzeTFLN05EZ0JuUWpLRTg5dThMQ2wx?= =?utf-8?B?SVhxeGNJMm1DTVpONlRSTjhGNm9HZGVDejl5TFZPR01ielVsRDVpdzdmTDZs?= =?utf-8?B?QTZ5TVJJczNKdkNRU2Jkamt4bXlHOTloSjkxVzkrQjVjSHdjSUFnb3dTcE16?= =?utf-8?B?NGcxOTJ2Mis5cWliR3Q2djE5dHdLL2FINThNRE5EWlo2WU80VEFMeUZKMkVG?= =?utf-8?B?dy9zUUg3Y2pSeEFKY29tQytkNUNrSEM1Ky91ODRNcmwxRW5RUWJtY3RpN0pk?= =?utf-8?B?a2N2aW1qWUVzV1g3UjF4aGNFZkx3U2djbjQ3eVpYK2tPcityaWEyWFRKaUlq?= =?utf-8?B?dWpMTjgybDVGMlVQYzBqcGQ3TDlJWXdRY1NjaFdSeERRd2Jxejl6MXdSME05?= =?utf-8?B?SklwQ2xVa3B5NGZvMHNJTk0wRlFqSnByVDRaL0RjenJXQVBxbEVGdU1teENq?= =?utf-8?B?YURhM2NFdlVRYkZlcnh3SnRmcXJ6bkdFNDJFdlp0QXRFMFZZSFFTeFhiZ2J2?= =?utf-8?B?WlpReENjdUNGUTdQRk9uMjNoajZaVXpUK0JsOXVrK0RVeDRCbGtTVFpKelEw?= =?utf-8?B?dUV2dEhkVE4xMUdZTGs1VEo0YVBDTTFWRnNDU2tNaVBLb29kU2VvaWFqdUJS?= =?utf-8?B?QzZuVkd5LzNLbDBGNENoWVM4OFA3OHdkcElQMVhkdHJxTTYwM0pUQlNnbHp3?= =?utf-8?B?UkFVSWlNQURMYWlWYWZiWTNHWFJiZkxPSVh3SEdLcDIrSVd1WmR6WnJ5LzFB?= =?utf-8?B?MlhFZkM2OGdvUHNEZzBmMU5yditxVng3bVE1bDQyaFFlUDdJeWUyb2NPUUgv?= =?utf-8?B?NTVGb2VZNUVhaHpCSTAwcE1lTnlCQTczZkNqVDA2YS9LTW92VENGYklwTkZT?= =?utf-8?B?NEpaOEJRbHYrTSs2RHp1blpXdzVPb0VhSjNEZkE0MmNtWTZ5bnVSYlh6MFV5?= =?utf-8?B?WXFleE5GTHBwNi9ta1E1d05neGdEc283NlJadUVDckR1YnBxenY1cDhGeGZl?= =?utf-8?B?R2xkRUdjSS9oSExWOVB1REFjMGp4VTZ0WGlLa2dwSjAzZHRXcUl5S0s1dng1?= =?utf-8?B?Ri9oNTFOTEFRRnVIOHNIdy9zQU93VThjcS80czB2VHVRRzUvTVdsVVQ1QVBt?= =?utf-8?B?NWJZU3UxQWdvYUhuYUM5UVNlSHBpcUZwOXhieGc1YnlkVmQwYkZrOC80bmkz?= =?utf-8?B?U1MybjFaelFFUWNJY0MrL0M0Wlk4aW0wSHlqQ1JiWTlPZWo0RW1RbHBTbEEr?= =?utf-8?B?NVArYy90b1A4aVRJSjZYc284bTA4WHpzUEQ0NEt5aDN0NG85QlNnU0czb3VI?= =?utf-8?B?WDBnS1l6M2x6UlJCZ3dnOE9LQ3NlejR6UHRCeWFaRVVCTGx1Mm5FM1BCMkFt?= =?utf-8?B?Zm1LVVZiWThwdWZMKzlLUU14VzMrdzRsN0QrbllCb3JqNWNxNXlzWGhNL0th?= =?utf-8?B?QVFQZG1UaThOc0tDM2RxVUdRMTZlN3pGL3NrOGMyNGVPVHRFMjBvS1JMVWg5?= =?utf-8?B?bDBlZE1mQSszRlIzeGpYZW5VazBXbjloZEhvNDZqQjFoejh2d2FTeHBWY0F5?= =?utf-8?B?UkxPdTc5MDUrRkZiWFBxL1BRU2M0YVZBOURHQkh1M3d0NGo4YjhackRUdnpp?= =?utf-8?B?NG9nNmIxYVFYVWF3ZG13VTVXdFViZUY1UnBwdHBFODlMT2paSUI5WGhrWi9M?= =?utf-8?B?anluVWRQYWlDRkJOOFQ0dUQ2NVR0QkdBaDhTbzhaSDJXay9ndHVXd1hKNkYr?= =?utf-8?B?a3A3L0dDR045djNLMi9WM1BueCs2eVdEUjh5Y0JBY0VnZFk1aWhFSUdlWVhY?= =?utf-8?Q?3PEcAQn0WqIZwkwDftiTVfE=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: 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: f8641a4a-ed32-4d9a-3bd7-08dc6abca2e1 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 May 2024 15:29:19.8588 (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: jYVUGmHRwXIdlTHFwvTWOH0J+BzrWmkaqy0plkezD+zdTRODVq7Uk5hRDAKP6bTw61dBh82Jb0iVQ49vB0gRWPc36GxapavZ3xGkw/FIE+k8y12gX0fbLm1I9GjpV4ja X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR07MB9661 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+importer2=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, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer2=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer2=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1714663985309100007 Signed-off-by: Cl=C3=A9ment Mathieu--Drif --- hw/pci/pci.c | 20 ++++++++++++++++++++ include/hw/pci/pci.h | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+) diff --git a/hw/pci/pci.c b/hw/pci/pci.c index e5f72f9f1d..9ed788c95d 100644 --- a/hw/pci/pci.c +++ b/hw/pci/pci.c @@ -2747,6 +2747,26 @@ AddressSpace *pci_device_iommu_address_space(PCIDevi= ce *dev) return &address_space_memory; } =20 +AddressSpace *pci_device_iommu_address_space_pasid(PCIDevice *dev, + uint32_t pasid) +{ + PCIBus *bus; + PCIBus *iommu_bus; + int devfn; + + if (!dev->is_master || !pcie_pasid_enabled(dev) || pasid =3D=3D PCI_NO= _PASID) { + return NULL; + } + + pci_device_get_iommu_bus_devfn(dev, &bus, &iommu_bus, &devfn); + if (!pci_bus_bypass_iommu(bus) && iommu_bus->iommu_ops && + iommu_bus->iommu_ops->get_address_space_pasid) { + return iommu_bus->iommu_ops->get_address_space_pasid(bus, + iommu_bus->iommu_opaque, devfn, pasid); + } + return NULL; +} + int 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 849e391813..0c532c563c 100644 --- a/include/hw/pci/pci.h +++ b/include/hw/pci/pci.h @@ -385,6 +385,38 @@ typedef struct PCIIOMMUOps { * @devfn: device and function number */ AddressSpace * (*get_address_space)(PCIBus *bus, void *opaque, int dev= fn); + /** + * @get_address_space_pasid: same as get_address_space but returns an + * address space with the requested PASID + * + * This callback is required for PASID-based operations + * + * @bus: the #PCIBus being accessed. + * + * @opaque: the data passed to pci_setup_iommu(). + * + * @devfn: device and function number + * + * @pasid: the pasid associated with the requested memory region + */ + AddressSpace * (*get_address_space_pasid)(PCIBus *bus, void *opaque, + int devfn, uint32_t pasid); + /** + * @get_memory_region_pasid: get the iommu memory region for a given + * device and pasid + * + * @bus: the #PCIBus being accessed. + * + * @opaque: the data passed to pci_setup_iommu(). + * + * @devfn: device and function number + * + * @pasid: the pasid associated with the requested memory region + */ + IOMMUMemoryRegion * (*get_memory_region_pasid)(PCIBus *bus, + void *opaque, + int devfn, + uint32_t pasid); /** * @set_iommu_device: attach a HostIOMMUDevice to a vIOMMU * @@ -420,6 +452,8 @@ typedef struct PCIIOMMUOps { } PCIIOMMUOps; =20 AddressSpace *pci_device_iommu_address_space(PCIDevice *dev); +AddressSpace *pci_device_iommu_address_space_pasid(PCIDevice *dev, + uint32_t pasid); int pci_device_set_iommu_device(PCIDevice *dev, HostIOMMUDevice *hiod, Error **errp); void pci_device_unset_iommu_device(PCIDevice *dev); --=20 2.44.0 From nobody Sun Apr 12 13:40:22 2026 Delivered-To: importer2@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+importer2=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=1714663933; cv=pass; d=zohomail.com; s=zohoarc; b=m+UV1KyP++XgWAgiMf/ZtmBkmYbJ2yCs3l6Mumb4VDB75W7gYXuRe49EpnTdlXoSXSI7Pn9tUDRx63moJWPfSnDwuuG0iK7uJF421QUI1RTVTeXavoJKjI70rxJ4+9hNj9WBwVH45sT70xrktOGHZIEngWo4Ky3Vo5VhMGlr2Ww= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1714663933; h=Content-ID: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=mkr4mAHYujE/VwywrBm3WrIt+MSQrhOwUyjOaK0g24I=; b=MarVNTSUEu5tP0DACZXp2uT0sKsfcotPxSukoyibj0u2bszrsyonzeV9gYdWSvtJu0RrRXxBIT/ugsjsGulHaKuUrIBjpjfWjGOjwTZEhV70/6MAsxzA0MLNb7z86S0e1M1XjpNXmPP/MxOSQHcLFxdPDR9g86UsOjbffNCIKcE= 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+importer2=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 1714663933230797.4176190306114; Thu, 2 May 2024 08:32:13 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s2YNE-0003cv-8v; Thu, 02 May 2024 11:29:28 -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 1s2YND-0003cA-Cn for qemu-devel@nongnu.org; Thu, 02 May 2024 11:29:27 -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 1s2YNA-0005yz-B6 for qemu-devel@nongnu.org; Thu, 02 May 2024 11:29:27 -0400 Received: from mail-am6eur05lp2104.outbound.protection.outlook.com (HELO EUR05-AM6-obe.outbound.protection.outlook.com) ([104.47.18.104]) by smarthost1.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2024 17:29:21 +0200 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by AS8PR07MB7768.eurprd07.prod.outlook.com (2603:10a6:20b:351::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.29; Thu, 2 May 2024 15:29:20 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.7519.035; Thu, 2 May 2024 15:29:20 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1714663764; x=1746199764; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=mkr4mAHYujE/VwywrBm3WrIt+MSQrhOwUyjOaK0g24I=; b=vVU5wqjE/kA+b0w+GLGx2rmnLRgWsyjkq89sUazkZyDXbTlDsB+i2/cY XGulaXlI1JGiqbAyUh9UMEIV3RqKVQX0bhNGIi0XOmEU0r/NIzsWdOKsw HdJkWmqY2ZXe31bFGFsgOJDrMA+6QrZthul1NQtsGoZVczoHQHCsqyngk 2D4aWFAkqqRI6iCEPV8A1X5YVtiokYhYqT8Kk/Z/qQ1EvpRgBc8wSe+95 xGXVpgJXU8oo5D0JoPCbraUJezv3S7hAZjdQJYDu01C6s+2+2w5cjJZls Tsw2V+lKy03g0cLJprxT+imucr3bG/teulHoDBP5YyyuFZ9nywAKN6ZIu w==; X-IronPort-AV: E=Sophos;i="6.07,247,1708383600"; d="scan'208";a="11730664" X-MGA-submission: =?us-ascii?q?MDGmGmUp/L1b7zUqzQsNQsjhFjIy7Q13EyTvgU?= =?us-ascii?q?CBKvNiVBUjvSiNo1OYm0OAgydn8LGXh4aww3v3TYaWQUelt+2O7vgq92?= =?us-ascii?q?Xhy2QCC3LJytPREwhksmVzp2JxbWQ6/gI405Jyh3D4UWVQ3JC/nhSGoc?= =?us-ascii?q?IasmGlu6jD2oxuwWXOoNf1fQ=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ux7jYakCEKLmjBecYrf88QrLFXGHSFtu/VCtZPOJSt/tc9P3qP1nNyg55/tf8LGGmW0G1tR+TFucO5xxa7pimLHLHviYN1vagRAz173Dl9oCaEsuZPNK+OFWCEBJckyVTHdUxcUFrqOWUIO5v6LC6Tg2/DC3tGLAu44KMLPn3atv49p+bph6EUadANWnhjS/WJ38oWYDoX0BYzlbA3ZqCT5gY4ITp8NOA7DuIT1vgWhxsVjukNq/wwOVYCJtZsi9X/b0oLcwgdRHPSmgRxA29Mj/4SPn3V+1Gl8qKclJNEYUbf2FAub/ryUijx1ouPxoz7vLkCIqofPv235HERTC3A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=mkr4mAHYujE/VwywrBm3WrIt+MSQrhOwUyjOaK0g24I=; b=ccR8W/5lz6fGrksP/zR2sayf5E8A6a27FCLy8itYfFcMtQPVQjaiedMwAJC6WPcpckvHUYXg7SAXrCwbywCGspuKB/JvsK98V4wHfQgnasGkA56prSL5fB5LQqBdJbr9bShRBqfRvq//9Y+8K5SvIIun+2meWEuHz9+FMRstnjUIMksPqIopA65bGoURYxgeAaSWpckBJZf58JjLl4pcKLeThQSGQwe5KU5wC4p7rLuxk780kvG/0gcQX/6oBYo+xPHyCpZ3aV08z5r8zp+aCHyt3w/Dvw6uniG3ew1wnCmS9lkAMGx8j80sWApBGBAz17tHx5RyFHZVpehZviM9cA== 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 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v1 15/24] pci: add a pci-level initialization function for iommu notifiers Thread-Topic: [PATCH ats_vtd v1 15/24] pci: add a pci-level initialization function for iommu notifiers Thread-Index: AQHanKWAjSp/SteTZkWYOxoa9suFmw== Date: Thu, 2 May 2024 15:29:20 +0000 Message-ID: <20240502152810.187492-16-clement.mathieu--drif@eviden.com> References: <20240502152810.187492-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240502152810.187492-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_|AS8PR07MB7768:EE_ x-ms-office365-filtering-correlation-id: f9ca77ec-438d-4017-67f0-08dc6abca307 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230031|1800799015|366007|376005|38070700009; x-microsoft-antispam-message-info: =?utf-8?B?cndlK1Q1S2JXOENEbG4xNWN0K2hxYzZzbmZsVlloSGNNejBtakdaZzhHdUd4?= =?utf-8?B?SmdSTXZVd0lsaWU3SlRFK3FPWEJJc0RnMm5ZTnB4MGYreFpLUXFhN3FQT0pQ?= =?utf-8?B?S21rdGtJbkhqMHovTGFPeGkzay81aWZnSU1PMDJqZ29sS1A5b1cxWGRtWjll?= =?utf-8?B?cVk4YkdhNi9vaDNwclJ0UnNmbUlOclBaWUFCa0lPQ0gzbjk5NFFBQjhaOWVR?= =?utf-8?B?bG8xc0ZmUFdlV3dmL0RhVmpyK0ZqMWMzcktDNlZneEd6RFo4OXhLNmdoYmV5?= =?utf-8?B?RHZXRkJpWUpJZVF6bGVKUkVRMnBHQS9zL1FzMFV1QTB3VnBaL0FDZWcvY0Zr?= =?utf-8?B?V25uSlJXdFl3MUhRTzRLMEdCZmlBM1F2cjZac2ZYcjFIb2JGLzdLMyswVXlx?= =?utf-8?B?dXNpVld6WktIN2RmbWkvdXNQOXFYbnhkelI4UUltTXc5TXJJeW9hR0FTRGhN?= =?utf-8?B?RWE0eUliY2o2YjNDTy96N2prenlMYUVEckZTVXVITTd4STdDOW1NbWUxSjND?= =?utf-8?B?TGdnT3IrVXA2Y1g0YXRVOVlxZXJwaHZ4RThBVndCRk80K294Q1ZFSWVDbEF1?= =?utf-8?B?T0lBVE1tQ1R0QlowV0FKdFBpNGM2L3N2NllVVExGc0NXSDhhaC9TVkxTQ2Iv?= =?utf-8?B?bU5ldVA0OHdTa3ovb3NmWmJmbXgwVUU2NzN1eDR1WndTekRqTk93OXJOeXFP?= =?utf-8?B?TFBRYkhNaHgwY0REelEzY0x6NTN0azBQS1VKcEcxYVIveVVqQ0Z6MlhxWDVV?= =?utf-8?B?RnNucDZyZEljMEdib21UWmFocjhjRUJXODJwMmFWR0JrVG5MZ2dNdUFFcEpN?= =?utf-8?B?MUExMU90YUpJSGl0YmNUalAwUy96QVRvcytKOUpMVm81QWpESlRDanZ5ay9i?= =?utf-8?B?Y2d0dk1Cb2RQVU9BSW9nTzRSUC9FTEUxMHZaK2t4L0F2RlNwbFg4RkdPbmVX?= =?utf-8?B?WHBGd2NYd0ZPemY5VjM4QThOcDljdDVLRTlvbzlkbEluazRYWnVOZ3F1Mnc5?= =?utf-8?B?ZE10YVNPZ2ozZmxLd2orc1pNek03L29XTnNGS25mWkJMWUFuQVJ1bHdsZjNi?= =?utf-8?B?TkVqQWNoZFhaNlg1bWlhMzc0NDJhcGd4aUNBWXUyRS9rSEJOZGxESWgzT3BF?= =?utf-8?B?SGRUd3JRdmFmOE9oWHZDU0JZYytHTVNZeVV5eE1SUzRPTlNEU1ZOR2Eya2Vm?= =?utf-8?B?anRJUkpyMDZBRTd3NFhzZFJqdWF2M29VQTZvd1ZzVmRJUzY3M0gzcWhDbTY4?= =?utf-8?B?Tzk2a2Y0K0xNTVhwMnpQZkp1d2s4c2ZxMGdkTS9CdjdnYUhHZjNoakxldDlj?= =?utf-8?B?WGRQU29JMENKUDNTY1JreVpxODE2WmlLejRDK3pUUnMzcEZ1MmpUeWtKTGJu?= =?utf-8?B?bjdFcm4xVlhIMXpRS2draDBnTlJReXhGUlJBdEdyS3BwV2QxRHZPUkVQcTVk?= =?utf-8?B?Vlc4RGNMQ2J6VW1PcG5YMk5sWG01RVJTT1c2UTV5Ky9tSSs1R2tjTUZ4REZm?= =?utf-8?B?cHdFV1JTd1p2KzRHcDV0dWJnRXEzSXhKbm9KeWRvSWtQUlRSVnVwNHUrdFNJ?= =?utf-8?B?RUc0WDVsbEFvZDM1YzRjVVFyZkdWNmhKa2JZcW43UnVPajA0eGN4SS9hZ09I?= =?utf-8?B?TmJnaUc0b3o3K1gzWC9IU2RKSjlhdDlNNWVTRGt6MmswYmNBU1AwclZIbVlz?= =?utf-8?B?QWo4bHgzNGkzNkJkbGF0QVhheFZtOVh3N0NRek1rY0ZMblJUQkY0Vi9CMFBY?= =?utf-8?B?SmNPODR1TnZrQm5NQWkwcDQwS3cvaGQ0T1BBQ21OMnFvN2NrWXE0YWd3TmRm?= =?utf-8?B?SVFRc2MvSXBEOGpXL1dIZz09?= 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:(13230031)(1800799015)(366007)(376005)(38070700009); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?NHM1eTNZbXc4NTJMNTMwSVVLVXgyVDUxVGcwNVRnaGNFRWJLUS8xQlF5T2Nz?= =?utf-8?B?bDNUYjRnd1YrQ2pDMml3UzAzM2RURlEvZlBEY2dCTytwWDNhTzR5UW43QmRS?= =?utf-8?B?QXFER2JiU2pVaDAydGtwdzNHS3JXb29mOGVwNGQ2RnNIQlNIdUVBZ0xwQnkv?= =?utf-8?B?UW9JbkxFVmtsc0dtRTZib1JJWGVDVlNKa2llYXZCdDBqejI3d0Z2MDd1Z0Fi?= =?utf-8?B?SUUrQlJqbHZON05BZEVPV2VlQ1l3VmIrS3B6ZVpDRGtCTlRMT1UwS0g2MGNP?= =?utf-8?B?RUo3WTVmVkRyY3FnZmE5Q3pvVHcxY2I5dGtlSGxIT2Q0NGovMjltdGRFSmJI?= =?utf-8?B?Z3ZqTEdPS2JKMmtWUm1EQm90RkxWeTk5MVBCQ00wZXpHSk14TjdzMEZFZW90?= =?utf-8?B?L1orckhlbzVKVkU2VC9PMHFJNzc0Sm5McnJ0TTJUNVl6M1VzVVZucFc2Y3d1?= =?utf-8?B?d0NlQ2JBQVM4Znc5ZW0wTmIvTFYzMUdUdDFxaExDM2lLeHhTTXRxUXIwMkFE?= =?utf-8?B?VHQvY2ZQc3JKWXhYSDNxVzAxS1h6ZzByR09FZW9jN0MwQUxadWtFc0NWaHZL?= =?utf-8?B?ZWVxSzh3Zm1tUFRrdjZhUGxDdENaRnFYV3lPV2NvMlRWSTRNOWc5V2RRKzhr?= =?utf-8?B?MXNhZVFEZXZ5YXlSSGpqUzBuazlMbTRkbzRKNzVQOVV2a01PM2Rndlc0bmdn?= =?utf-8?B?VG9rUlpvTnduN0FkSktsZGZQZ1pIUWlZRGxqVlVaS0VQYmZQVHp0ekt5RVFw?= =?utf-8?B?WEh6STkxRVNGaThvcmZ2VHVPVnpJY1RvQWRzQkpiNzlQa2FKK0tDd1JvRVRu?= =?utf-8?B?dFhYRnhmWkhqaG40dTFYWnJvMXg1bVRlendzS1R3NUprUTBFVGdCbFljb21r?= =?utf-8?B?eEhZajFiazkxTUE2T2ZKTHY5bWpESy9CSHFwU3hFUEF0U0FoMEI3WjZ6b3Nv?= =?utf-8?B?aThMV0d2aTNRV1kzVWpNcUp1ano0UmVmKzJ2Z3FsTS9xSG1ObUtXb1J1K1cy?= =?utf-8?B?ellxWTduUHFUZlY2YUl5eGZyYzVaTDBvcTlRTTJua0RtcUV3b3drWmc4V1lz?= =?utf-8?B?L2hGNE91czNoODVIQVJISWVNd05keG42SlV3RjRhZmE1NGE2QTJhQitjcDVp?= =?utf-8?B?QmlqeGRjOHYzTHA5VGNqNnRqYllINElWWjlJREtZWHNId291ZXdBc0J1VmY5?= =?utf-8?B?aGJ3TXlsR3Z2SHZ0VjBPdEZPaURYSzFEN3FiRnIvaDZ0SnFkQlo1ZmJJSyt4?= =?utf-8?B?TlQ4aXR2Z0I5QW1kSUVZWTl5K2Q3dXBwWEoyaGtCMFdCeHBqWGxZNnFyRTFI?= =?utf-8?B?OWQzTTZCTW4wZ21HS2tNWU5oMXFrVUdmWTJldjJkWW9vMm05SjFUdjlzTk1R?= =?utf-8?B?RkZKYmYySTFyMmtndExkd2ppcGt5Q1pZdVpVSEZMSHloa3J1NU5oK0htVThU?= =?utf-8?B?c3BybVgyVWVxalFrQnp3M28vV21GbWs2ak5IMGhzakx0SWdMcmc3cFd3VTlP?= =?utf-8?B?cjUySXhUVGlyM0QxTnp2blZvUWxaN05LWldQYTNPRjQyTTVtVmRFc0RFZFcz?= =?utf-8?B?N1pXZFhDRmNtU2pMelhpWkU1czVVMFoyaWRpR1dSSjZvNG9XUzdyd280T3l2?= =?utf-8?B?ejhRYkZlRDRwZmtIWmZWcllEcW1XRDI2dUdvS2h0dE8rdURUYmF6M2ZBV1pN?= =?utf-8?B?ZWU1TWdnTFdieEpBRks2QlR5VzlJMCs2MjdwZGNOT2diRjI0d3FTSXRsaE5i?= =?utf-8?B?UTFNZVR5MFZvcGxCZWt0MTBzaVdVRXIrZUFPUW5SQWxndXNCV3RpSExISzV3?= =?utf-8?B?VHFyVnl3ZTU5bmFMUDBDR091eWZ2S241LzNFUklVcXBRVmN6ZXQwbWljQ2ND?= =?utf-8?B?bVZWTUVRV1dYUW1takpMbDBpMU1ZaU53RTJTdUI2OURyQjRac3NxTGpJbnl3?= =?utf-8?B?MDljU1dOK0lMc1hLLzV5VnZxZzBsZy8xNWxSSE1ZZzhSOFlWZmQ4NVVSZDd4?= =?utf-8?B?a0I2UUxvUkxEN2JmYjhMcW9RME8xYXVZQkI5OEkzNjI3TkFuTVUxWWNQTjg4?= =?utf-8?B?cFYzU2N3UURsME1mRm9DT3NVUXFOZ3FBNFpHVHZFT2Raam9LUHRqcU9DdVJy?= =?utf-8?B?Zi9UZmVGd0FrQyt6MXp2ckhId2lJNTQ1Z1AzZTVCU3ZvN1JLbHArOTJXRzd3?= =?utf-8?Q?OmdYFKh80LISuHWBYH2+lSg=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <38FFA72164AA024BBB0D83A6B9C35348@eurprd07.prod.outlook.com> 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: f9ca77ec-438d-4017-67f0-08dc6abca307 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 May 2024 15:29:20.1081 (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: 1D/5j90V/BTBQmg9tqnGZPy6GMw2LgB1qg/DRsYEUIMxWiAZyM/mGMT5PIr6olNMtm5w5sKe3/D8d3sG7giAUH3vv19bpV28Yx4pyF3KWWkrYJN4LmyrCsyRH2DrODkp X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR07MB7768 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+importer2=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, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer2=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer2=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1714663935249100007 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: Cl=C3=A9ment Mathieu--Drif --- hw/pci/pci.c | 39 +++++++++++++++++++++++++++++++++++++++ include/hw/pci/pci.h | 13 +++++++++++++ 2 files changed, 52 insertions(+) diff --git a/hw/pci/pci.c b/hw/pci/pci.c index 9ed788c95d..d10cdb3d75 100644 --- a/hw/pci/pci.c +++ b/hw/pci/pci.c @@ -2747,6 +2747,45 @@ 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 (!pci_bus_bypass_iommu(bus) && iommu_bus->iommu_ops && + 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) +{ + 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)); + return true; +} + AddressSpace *pci_device_iommu_address_space_pasid(PCIDevice *dev, uint32_t pasid) { diff --git a/include/hw/pci/pci.h b/include/hw/pci/pci.h index 0c532c563c..1587c18cd9 100644 --- a/include/hw/pci/pci.h +++ b/include/hw/pci/pci.h @@ -458,6 +458,19 @@ int pci_device_set_iommu_device(PCIDevice *dev, HostIO= MMUDevice *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 + */ +bool pci_iommu_init_iotlb_notifier(PCIDevice *dev, uint32_t pasid, + IOMMUNotifier *n, IOMMUNotify fn); + /** * pci_setup_iommu: Initialize specific IOMMU handlers for a PCIBus * --=20 2.44.0 From nobody Sun Apr 12 13:40:22 2026 Delivered-To: importer2@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+importer2=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=1714664031; cv=pass; d=zohomail.com; s=zohoarc; b=aomAyh1H4EaWWCZW4Hek8uWrbN5M/cK7M9Usj9EINX5FBZUMNsaICye2obYk/Hdgn4B5DN9S+pidIILkQgJ8n26uEg4FapkZoYB0hfwL4Pm+8ceaTZT1W5p/6T8sVFHShF65R+DWKE/iYoKpZzctEpWmqJHLrN6P1CV6VY5CsKA= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1714664031; h=Content-ID: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=E2oyVReCNycO15PF5GywpqRq2wxJJlE+TmbfE5B4/k4=; b=GSbXMr6UWNgEN1E0sehlgUIBx2OZJllYLqLMLypEuY2Yxk5kgslAoS6HHdbA8llfCobpygwT/JC5nFl4pp4J7Nkr5JF6O23FT5piH+wiozx1sztg0BQFjuXIXKGekRDYesuoKyZBFUvBs6znht/9vl9ZXtKT2RR6bXI3gZTbNhs= 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+importer2=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 1714664031202680.1186195765354; Thu, 2 May 2024 08:33:51 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s2YNI-0003f3-C8; Thu, 02 May 2024 11:29: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 1s2YNH-0003dr-3n for qemu-devel@nongnu.org; Thu, 02 May 2024 11:29:31 -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 1s2YND-0005yz-OD for qemu-devel@nongnu.org; Thu, 02 May 2024 11:29:30 -0400 Received: from mail-am6eur05lp2104.outbound.protection.outlook.com (HELO EUR05-AM6-obe.outbound.protection.outlook.com) ([104.47.18.104]) by smarthost1.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2024 17:29:21 +0200 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by AS8PR07MB7768.eurprd07.prod.outlook.com (2603:10a6:20b:351::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.29; Thu, 2 May 2024 15:29:20 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.7519.035; Thu, 2 May 2024 15:29:20 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1714663768; x=1746199768; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=E2oyVReCNycO15PF5GywpqRq2wxJJlE+TmbfE5B4/k4=; b=et0dWkf4lh/o5PhG7C3lVEoemB8PCyoYG5kJ15FbQa5UHVOzqgNTb4bL 3ss0g92fsu1mmU+yDPq1KDxXsAAYPD5xi66c9TVTgt2tR/dW42Yfu34Bp F+CheEkUXQ6qYToirBLxkWzWkswVNT4EMQM4s047hKsSITPJpO7QQwUY3 BEMO/xnIjEzywUWLcTMqGbSeVrJxGEpy4lHjLnIj69nG/Ow3DmelimooZ Y6Tdl07gkLMHJ1NlumIua2yMqz6bJUWGdSgCJI+CLtgQ2cu2GapyryGIB 0WyjG8KFc4HxSB5qJ7vCW2Idi11JMKF9o9Dxl0llWJbxhdLioOSnT/Naz Q==; X-IronPort-AV: E=Sophos;i="6.07,247,1708383600"; d="scan'208";a="11730667" X-MGA-submission: =?us-ascii?q?MDEZqJ8AQz14cuTSg3bDFy0yEtYHFlxnDWtnjy?= =?us-ascii?q?Lgn7o5stfxqXUszR6pAsbfyl6ZapwNaA/8uOGN+kpBQkGFYUiCFW72Zs?= =?us-ascii?q?GQouA78b+8Q5EFBTvYxsta4iSv1eJwI0VFfEnpcOxfgoJ7PndXY+3s+d?= =?us-ascii?q?QL3jGGKYSzRXjg7m9YfD7gVw=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WTLyFIp8deA+vkuKcl5779Ur+rZiGJ11ZgiV1QtWG8uuhzDiul3c8n84aszfesjIA6kT2Bcg552yz12v6oBuvjziz2sa9kv5gSR2C/soT005xDDaQenIQpONjRXof0FDlWocLmQ6Oxyn17mtmSuC3KoG6JzhKWZrEppI82dckgaPLp/4SHtb0zZBROaKcpSnbceL3CQVHWkba7FckG4YnjqlESoN+1mit65NC1AlwSmroWo+B9dl9JnozYGqOyMyYot9PL0ZXYYDlal6LddrZkcijfLv+uFUfWtiBEml4+VarqE27EJ+w4p95zGyWl/iKg3bqSKXVUSPMHqFGs5VyQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=E2oyVReCNycO15PF5GywpqRq2wxJJlE+TmbfE5B4/k4=; b=aIjTf9OTf0ddPSEbxUdNn4sTJMd2YCq9VAazDfXIqU32mmR2AGH2AanUR+SMRbMDGciAeLdj9LVhlqtRCPMCkROzPdaIkZy9OhnnT1T9PoV4nQFAP2ZL9j06IvYi4PVhcrGcqreOiD+CsL5YzAZj9M4j2YoSSFonwmDo0OmiPA3/WpWmUGkuEmSwNThTaN6y5JHX6oKvgsjP038O0cW8lEMhqMPBWVsGohtktprmEE/9OUUlrCixpWg8WpoAaCrYRYQ6R3wBnYTmu3L/iKpNGG0yV6wwXAT6jdrGa1zQ7wEzG7cWxINEJr3k0mUOs2A+Caj/LJH1TCQxuA5vdzA45w== 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 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v1 16/24] intel_iommu: implement the get_address_space_pasid iommu operation Thread-Topic: [PATCH ats_vtd v1 16/24] intel_iommu: implement the get_address_space_pasid iommu operation Thread-Index: AQHanKWAk9uYkE5wSkm3TNSa/hRJRg== Date: Thu, 2 May 2024 15:29:20 +0000 Message-ID: <20240502152810.187492-17-clement.mathieu--drif@eviden.com> References: <20240502152810.187492-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240502152810.187492-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_|AS8PR07MB7768:EE_ x-ms-office365-filtering-correlation-id: 802e0276-0916-4017-8e9d-08dc6abca32d x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230031|1800799015|366007|376005|38070700009; x-microsoft-antispam-message-info: =?utf-8?B?ZVRxRHQ2bWoya0E2bWdaUTQ3dWUxT2tIN01SUXZsUnMyd3p2c1gwOG9OR3N2?= =?utf-8?B?aXdYYisyZFppekE5S0xLR3ZZYkZaSWwyUDQ3aTFibXBEWnBQWE9EOHliblp3?= =?utf-8?B?VXRZYVR6OVdLa3RibWdkMlhYdmY2S3dWeDhYWTlCbm5VUzV5OC9mOXhRNmZn?= =?utf-8?B?NjlESFJ4MTNaSzZ4MWFuK3Z6L0NRZytlZldFU0QxY0JERk0xNEJ6ZHdROHV4?= =?utf-8?B?bVRWcURJVnF3cnFUaFJIVHV5K0EwYm9BMFE2aU81aGtpdU1NTFNhaDhzMG43?= =?utf-8?B?YnNoQ1VsZUViMFhNMTV3NmxsVWxmTjJzN05iTVNDTTNNdlp3QnVMcG0wRnVk?= =?utf-8?B?QkZDWk5LbDM0RjRnSUNnNDJMczdjUENvdUIwd0hDT0d1aU55TlQrMWR3VURa?= =?utf-8?B?eVpSTFBoY3RsTmRnNENHWlpxeW93dHpBbWhYMllUbTI1TUhSVXI0MzZEckFi?= =?utf-8?B?OVVyVVBhNmFvbU55emVuZnFGQlIycWE1cisyQjZuRjcvWmwwejZ0YXY4eVVl?= =?utf-8?B?UGpaaDgxT2Y1UEdaRzF2Q3pUMktkQlpCZFY4cFB4VjdzN2lUVi95emlaMHFO?= =?utf-8?B?S1REN0k2OU05dlRzYzZQcm9weGlCUjNVY0FiL3h4RkxSMEwwQ3NhL2NhTXZM?= =?utf-8?B?TXZpTDMyZVQ5K2FQUjNZRmtwSnJHU2dNTDFiekNjRnI5TnExL2RTa1A5NnB3?= =?utf-8?B?MFc1SEhnTTlITm85bDRzVml5cmNreTFPeCt3N3A3S3RZWUw0cTBmOEtWTlgx?= =?utf-8?B?amdQLzVhdW1SSTJqeXZQTytpNmdTU3RIakY1T1FPcmJaOWc2TGUzNjVHdVNz?= =?utf-8?B?NFREMkVndVBHc2J0VUtDNTVsYitYUWVTczk2RFU4UlpjYlJJNUZ2NFVMcU9U?= =?utf-8?B?UVAwN2V3bVBXTTdSWlJFUXpKbTlsNVI5SWU3RCt1VE1pUGFQcXRtbGdYUnB3?= =?utf-8?B?NjZKMUNWVTRVc3FLSy85c2c0dUVhaURaUnlTUndZWXRYTVVWZjlCYkFqbnBa?= =?utf-8?B?ZXduMCt0U1JxODUzTlZ5eXhGRGhnZkxDbVhITzZjTlRURWU1UXZucVZCWlAy?= =?utf-8?B?eDBQa1lHMDBLU0RneFV5MWRvcXVxUXFYbWZDVGt6RDJhOWVTSFpZY3BxWHR5?= =?utf-8?B?aWthSFdOMHhIZlk3N1dKYVdFSlZNVGtHMTNXSkwxc2hwYThkMnNZcDNBaW1l?= =?utf-8?B?MHZoLzI2dGZtYldndVNlUFVnNGdQemRBMzFtdkhSNlhqcEdWRmdTdjlmUSsy?= =?utf-8?B?VkRNb3BYUS90cStlU0NaSzU0ZEFEaU1xY3RhSWlVVG16UTduemtiOGtOWnpC?= =?utf-8?B?bGU3Vk1rNjdlVG1NKzN1bDBucEMzMWpDSmtkYUpNQ3N3YjJWUEZwTjg5V21x?= =?utf-8?B?S0pnaDIzVVdwWTdPbU8yYWJNN3ZSU2NWR1VGWHJSZkMrL0haRnNKdDAxWVc3?= =?utf-8?B?N0hjOTZOUmpSVjhENk45c0w1bzJMeVVCa3pOVzhhV2FaZmdiVjdlSk9QclZr?= =?utf-8?B?Vy9wUzQ4V2ZNUkwrT1JjQ1NUQWV1WjZjTVg0SGhlbElPdmVDSFIzVUJlai92?= =?utf-8?B?bVIwZVZUd2hRcG45TUdVUytvcEp5RDN2ZnVLMTJjODFoOEZaUVlyQjhReUNK?= =?utf-8?B?Z1RuMmo3dTRxcC9XNjkzUmNLK2dSTFBlKzJCSTBMOUpaZGVsRHA2dnl2OHQ5?= =?utf-8?B?emtsNG1HWE5UbzBIalcwWjFTRHJ1MVJTcE5SQ0NUTzgzVDVtQzBmMXdQODhj?= =?utf-8?B?allPR0ZVdXhieHJDd0l3cXZ1TWVha1BwTzZUOS9kWkdrZGNvTFV5K0dqMVhJ?= =?utf-8?B?TzVZd2kvT21PWC9PM1JIZz09?= 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:(13230031)(1800799015)(366007)(376005)(38070700009); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?U2hjNHROaEFQM2JlbE9JQkt6NElYNHNxempkZ3pPSGVKenQvKzVmazllQWh0?= =?utf-8?B?bFpIcGJWNUZOejFTQWpyczEyWG9UVk5oM05CTnB2b0NXUFA1S2dKeHRTTmRY?= =?utf-8?B?OTVlYlFJTnRKc1p0ZytCWjFMRnh3ckxPMEJLem5CelQwbUNSM3MvYmFNS2FN?= =?utf-8?B?N1ZIUFZXVjY0K2VvMUlUcDZWK2NRZjZ2dUpPUVBrOW1uUlRqdGZWVUs4Qy9V?= =?utf-8?B?bWxDY09PQndSWWpPbHQ0SXdKejRDVFphWlBjcnRjOWZEVkdtR2xWQzZlallO?= =?utf-8?B?ZWFSbnRqMUF5SVBtUVdLdHdZQnBONnBkOVM0RzdqL0REaTRhSjNzTXJvdDFE?= =?utf-8?B?MWo2ejBPVEdDeW1LdG9NblJheEt6V2NreTRleENIVkNpRUM2YlJZRlJqYTg1?= =?utf-8?B?OTltR21MdU14RC85UjdGZ3htNExoUVFDN1FQUGpQVkpOV2xJVWhJVmxSN0Yr?= =?utf-8?B?c0JyS1lsMC9SOFgvVGxiN0JVb2laT0lnemhVUGdlQUlnbHBmMGdXL3VraTBJ?= =?utf-8?B?Tkk4QlNqaXdXOThxTGJXczlNTDMvYXViZ2hMTnAyRDFHcnBmOWlRa0FvVjRU?= =?utf-8?B?OXA2L3haWG1YNDZOSlFEMFpzYVJ6VEZYU1FyUVg0MlFWNTMvZG5CSTZwK1BE?= =?utf-8?B?SnIzT2RSQThHc0pvVWYxOFdleG9hMjZRbjJsbHh3RlVNRVlRazRmZDM5NkZX?= =?utf-8?B?eU00ZE5Bb01PUnRJQUMzeWY2TVMwSFR5VENVTFJ3Z1E5UVQ1cnYvejNobW1C?= =?utf-8?B?WXJGQ0ZpeFhEUkdGNThzUU01TmVPbE43M2NCSnVQR0I4dHcwdTFya2ZPNmdo?= =?utf-8?B?OHFHMWhKWVNSNWU5cklpOFNWWHdaL2VjSnAvOEVoQXkxNVBDUFJDdXV6dVp3?= =?utf-8?B?ay9GcGRWbm10QTNHT0tiQ29mRnVLQVkyZXVOcWJ0RnR1bjFKMTVQUHZXTXk2?= =?utf-8?B?ZXhoOWxnRnhyeEZPZ2FSZVVBVy9JakpUcEZwdkw5bW9xV1ZrMmwyVjNJYzli?= =?utf-8?B?VjlNaE03VzNKaVJxRDZ3YXErMkRxR2cwbmZMSlVuVHlQeFVCUzRQYVJtTWx1?= =?utf-8?B?Zm9EdG12TURsL1ViWFFKTFEwWTFBYzRUMkgyT3Zva3EvR2w5dGM3K1VCRWoz?= =?utf-8?B?Y0pjL3NnVjdMeGR4c2ZtMWFFV2EvTTFmQzRIL3ZBdU9TY2RvWEZjay9ORlJS?= =?utf-8?B?VG5XcEdHeFE2M3Y1cVB0MlJWdnB6RThiaFV4dFBkUFV1QTR3UVB5Ym0wbEdz?= =?utf-8?B?STFkMkRqZFdzcmppZUN3azZ2RmVpM25qVFRJREN6dkp1UjR1S2lUTHovbzZm?= =?utf-8?B?QXkxU09YWFRaWFFjeUxDN3dLSDRZN3dEWDc2ZTFqbmVSaldvWHlKQUJHREJ5?= =?utf-8?B?OXJHVDBhRTZwR1RaM1luaStjM1BzUFJxK3ZFZjZuZXQ0czdVVUZIRUhhU1Rm?= =?utf-8?B?K0pBR01FcDdkbGlRcUwzTTlUUVNiZFJSbGtjSmVyc2JMWm1YOFhJZG1nZWxT?= =?utf-8?B?VFo2VGlpQndiMkVoblhyQ0dsWkNYNU5mTk1BNnZpSXF5TGRtVFZXNk9vajVx?= =?utf-8?B?VGVubnU4Kzc0SiswZnNOVEhDakFTQlM2ZnB5NTFDNVBuOHNISTJQMTYyQmNM?= =?utf-8?B?Z3FFOXlJZThDRGRxcUt4ZWpXUDJLQy9FL2Y5cWRtK0VwR1MrbjJrNUU3RjVy?= =?utf-8?B?aWRiUmNHVjJ1blFUUDBNa2cwVGpuZEVXQXdYYTNlM3p4b0hNdFZxMjhmQTBo?= =?utf-8?B?dmRzU3BNc2Z3Y3A0cWk4OVRvY3RqRkxjbFQ0MkRjUDJjRTRpVU1SbEkyVVJu?= =?utf-8?B?UVhqTDhjajVKb3BvT1BSanNxVGkvUXNqQmp6U3RHRmRFT2xwMVhVRDF6UVdH?= =?utf-8?B?NVhjV3I3Y3F4L0Q4U2dNRGcxamI4cjdtOEo5V2NiOU53aklaRnNkNkp0TTFs?= =?utf-8?B?KzkzeXl0diswMlpSYWgwNkxRNEYyeitIZWlYcE5sNm9hdWsybjY2Y3g0Q2Z1?= =?utf-8?B?dGJIbW9QY0FUcXBpOGVnSC9IamNIMVZRR0Y4NVkxSGdpWnVBeFVrUGhuaGtr?= =?utf-8?B?K0MyRkk2SENsUEJHMStkTnE3aURRN3lGajd3N2ZlZmZ0QzRQR3RSU2Z0eGNt?= =?utf-8?B?MVNJTE8vV3FnLzA4d25KbDVjTHF0TENzRzJvTUdiVW90ckNNUnoyREg1ZXVV?= =?utf-8?Q?glKVOQDI7l5DVtKGInl5tms=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <2B95F4E780163A45933357B178439382@eurprd07.prod.outlook.com> 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: 802e0276-0916-4017-8e9d-08dc6abca32d X-MS-Exchange-CrossTenant-originalarrivaltime: 02 May 2024 15:29:20.3775 (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: GS3LOLPbNmPrxCpSf3rmdizM5cvOTy2Z+Lf/MQ54VAScW9r74kRqjg/FrnBZSq8HSE6vgIENZp1aLW7TkAu6DXMYX6czbh0I6Wq9PaUBndBrfo/N/dR8JDl1uJJD4UVo X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR07MB7768 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+importer2=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, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer2=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer2=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1714664031563100001 Signed-off-by: Cl=C3=A9ment Mathieu--Drif --- hw/i386/intel_iommu.c | 13 ++++++++++--- include/hw/i386/intel_iommu.h | 2 +- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index e7c1a5582a..e9fa48b378 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -5432,7 +5432,7 @@ static const MemoryRegionOps vtd_mem_ir_fault_ops =3D= { }; =20 VTDAddressSpace *vtd_find_add_as(IntelIOMMUState *s, PCIBus *bus, - int devfn, unsigned int pasid) + int devfn, uint32_t pasid) { /* * We can't simply use sid here since the bus number might not be @@ -5983,19 +5983,26 @@ static void vtd_reset(DeviceState *dev) vtd_refresh_pasid_bind(s); } =20 -static AddressSpace *vtd_host_dma_iommu(PCIBus *bus, void *opaque, int dev= fn) +static AddressSpace *vtd_host_dma_iommu_pasid(PCIBus *bus, void *opaque, + int devfn, uint32_t pasid) { IntelIOMMUState *s =3D opaque; VTDAddressSpace *vtd_as; =20 assert(0 <=3D devfn && devfn < PCI_DEVFN_MAX); =20 - vtd_as =3D vtd_find_add_as(s, bus, devfn, PCI_NO_PASID); + vtd_as =3D vtd_find_add_as(s, bus, devfn, pasid); return &vtd_as->as; } =20 +static AddressSpace *vtd_host_dma_iommu(PCIBus *bus, void *opaque, int dev= fn) +{ + return vtd_host_dma_iommu_pasid(bus, opaque, devfn, PCI_NO_PASID); +} + static PCIIOMMUOps vtd_iommu_ops =3D { .get_address_space =3D vtd_host_dma_iommu, + .get_address_space_pasid =3D vtd_host_dma_iommu_pasid, .set_iommu_device =3D vtd_dev_set_iommu_device, .unset_iommu_device =3D vtd_dev_unset_iommu_device, }; diff --git a/include/hw/i386/intel_iommu.h b/include/hw/i386/intel_iommu.h index 0d5b933159..bac40e4d40 100644 --- a/include/hw/i386/intel_iommu.h +++ b/include/hw/i386/intel_iommu.h @@ -325,6 +325,6 @@ struct IntelIOMMUState { * create a new one if none exists */ VTDAddressSpace *vtd_find_add_as(IntelIOMMUState *s, PCIBus *bus, - int devfn, unsigned int pasid); + int devfn, uint32_t pasid); =20 #endif --=20 2.44.0 From nobody Sun Apr 12 13:40:22 2026 Delivered-To: importer2@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+importer2=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=1714663796; cv=pass; d=zohomail.com; s=zohoarc; b=gsb+WxmcyedmBFEy3sZb9cmcbedl90dHpYSaU8fcdRZ7zh2SBEX5zIVcgLXB4wkLWPgo2hjqe1UD3CDbEF3kquw/LFsqoDb4q+bNNWyhhPgdPS0TDFWbZ88TdRSFmDdE5hw3y8zrxQznNOXFt5FKHLswrYB0K47tNnEa58YYLNU= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1714663796; h=Content-ID: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=3fG8vUdx571SSHY7CyRXK67viHVvSthpg//jIoJ+WGo=; b=kIRQHR4r0crEtmNjzt9tzyT5YZoOv0snIRFHZmaV9Ji7cUYp9y/omBcKdkPRJqwZYS1cImlXDggnKpMWYuq/mXfBEJCEwzULuysScl34M5cGUrS+S+4id3XwPrWUpAetI3UCuxdOG6TlPSckUPmLWH3IaG9frXGLLau5nO9fwYA= 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+importer2=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 1714663796758623.1213828417985; Thu, 2 May 2024 08:29:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s2YNJ-0003fw-AZ; Thu, 02 May 2024 11:29: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 1s2YNH-0003dy-8Z for qemu-devel@nongnu.org; Thu, 02 May 2024 11:29:31 -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 1s2YNE-0005zh-GF for qemu-devel@nongnu.org; Thu, 02 May 2024 11:29:30 -0400 Received: from mail-am6eur05lp2104.outbound.protection.outlook.com (HELO EUR05-AM6-obe.outbound.protection.outlook.com) ([104.47.18.104]) by smarthost1.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2024 17:29:21 +0200 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by AS8PR07MB7768.eurprd07.prod.outlook.com (2603:10a6:20b:351::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.29; Thu, 2 May 2024 15:29:20 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.7519.035; Thu, 2 May 2024 15:29:20 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1714663768; x=1746199768; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=3fG8vUdx571SSHY7CyRXK67viHVvSthpg//jIoJ+WGo=; b=cP93zFOhdzxlON0jM4waCuWF15ITU9mv1Zhw25D7GOhyIgEXC7IpZxIL yAYdF1LRaA++Z1CEfiDTK7t1LCVZ0mV7p4DmjBDOE/+6ilCYELLXanJ2r 680STcDwuL0bz3TeAKMLg71x5LbppAzTKCf35/aVHlnOwErmJF+Ards1Z BLDq478ze4Od8jsyO2VtAT+osfRmNbcM/rGQpi2haU7n9ZFjPyiQ3cVPq OsQkdr1lsH0pJoyVpj1zxtp1LqdEKNESAAOoDLAkTPqizBaiNr+jAmZYx y5psEQglF5fd9KKsTrN/5akiVspha/QIoB4Amgu7RtNKm/uUohD3M73iV g==; X-IronPort-AV: E=Sophos;i="6.07,247,1708383600"; d="scan'208";a="11730668" X-MGA-submission: =?us-ascii?q?MDGDJ/kIyvLiZqS/QC9Pr4FSPUFUO9lU20yQWO?= =?us-ascii?q?Hbc6fAqMY225E57m0n8jJ9VINrvIEnCxhj/LhFCdpwqMcmhcnIMeGWlI?= =?us-ascii?q?/QOpUmMh2yNCtFcsaLVyl/Jf2R8YQzWEGWeFzkAl4luoJcvOPguDxQCW?= =?us-ascii?q?xfQo68fTkWvobUDHkgzsbgjQ=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SUVj7YfnNfTBzC5lRjMYGYHE592nOnnoyNZKLWN1gWmD17lRHPj5b6+lbUNh/3BTVz2VrlXXnOkcvttd6vLHjPbtugjxXKnh1HEnhRAjp4XQcnLk7uEzOyjTXxa83BwfwEQcCCUKDP3MgWFnSc7xFDz6vA1rzcqXHWEow1t5qVZyehkMb3mqW8miyr66wlKQIdVxp2jnCH1F56Ii3nTd1ufS6uVDTKuLve5gJGsYmfYXXikicjM9IMMG9Z1nE5NyVr5Zky+tBaP2Xc2enRFVRlBsBhHxl4dpl5LQrJ5bVAvrHeko0yOl8TUP3AldwpUSNvgM67SSvkvE8fVPGCOLHQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=3fG8vUdx571SSHY7CyRXK67viHVvSthpg//jIoJ+WGo=; b=Ir3nlOrEeJIB4Ywou01ieq02Eal1B340ikLVIq5dDEjeQMjespjS+GRyWeafchpY8D5Fp6l5krUYsOpt0+FwepO2rqSUb3ID4C6bxYT1zTGkGI3GN+M/Kt6zXcTXTuyugwjyzBZU4eMqIWddlRAnUlwdGebrrlS47ng86jceVkOK8uibMY6duOcoccrWbhTSHbbbm8bcYN3m0k45PCa33DKfArTDxyCppV/WEFj3TgCRMVILt2hGrWp0s8CdOwT2g8MJBCiUT0NDRaCk8K/a654WBgFZWgysdnRYhtLdg8LgQXY0VfNCr13pJjUoEbj4OgbgtLmdnVjbMg458aplHQ== 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 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v1 17/24] intel_iommu: implement the get_memory_region_pasid iommu operation Thread-Topic: [PATCH ats_vtd v1 17/24] intel_iommu: implement the get_memory_region_pasid iommu operation Thread-Index: AQHanKWAb5rqVJmyfkWBpMIvcWYxIw== Date: Thu, 2 May 2024 15:29:20 +0000 Message-ID: <20240502152810.187492-18-clement.mathieu--drif@eviden.com> References: <20240502152810.187492-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240502152810.187492-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_|AS8PR07MB7768:EE_ x-ms-office365-filtering-correlation-id: 48620919-e592-4271-ad83-08dc6abca353 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230031|1800799015|366007|376005|38070700009; x-microsoft-antispam-message-info: =?utf-8?B?djljY0M2NHQvU2FyL2JzWGJBREV2ZmpZR29Vc0F2ZjMycXRnZXFJdjRDNnBQ?= =?utf-8?B?NzlPaEorZHR5TWxoSkhGWWt2dHc4WHhXVTFaRnNneWNiREw0R1g4MjdFa0pl?= =?utf-8?B?MlNiaG5wbzNnK2pJQkNsWFRiV3J3eFVTY1BXV2tpT2o0S2gyV3E4QnJXa3cw?= =?utf-8?B?dXdzU1p0VDYwdkQ2QnZVRG8wZkh2K1dtL09qZUZCSFhiNHJsMXBRNzVoRjcy?= =?utf-8?B?Nnh4eXR4MmZjcmtLWUJ0T1FFUkNSSVBzM2h2c1VRUjdSTktVZkg1UWxMZW1o?= =?utf-8?B?MlgxM21qTDkydnV1dS9Zc1Jpa244TStrMENweVMvU3pTOEx5Wkp4ejJBa3dm?= =?utf-8?B?VzJoc2wvWnU3MWpTemZoR1FzS00xZUNQR1p3Q0tWd2dHaUIreUd2Y2kzZm8v?= =?utf-8?B?d2xBNFlkemdhMm5taGUyNEs4amV5R1RtSE9GTmtiVkJ4Z21hZGwzS0xFdmoy?= =?utf-8?B?dnBMN294cHBHY2VZUmRWYjQ1d1FQR1Iyb2VPMyt2STlJRTdiZ2c4NVNlUVdR?= =?utf-8?B?Y284V2pQeW1aTjE4bTJsNXg1MGlvdTFCZkhlcVMydkxubDBRbCs5NEtUNVMw?= =?utf-8?B?Y1VNMUFqdE1hOXVBUzhQWEIwdkhwb29QMDlUYVZHdTBpUWdVTFF2Nnc1VEx6?= =?utf-8?B?QzNNWVpOSjltUDM0eGlQZXFkalNmWTh1Wk1TQnQvWWlaL2FoMjRsS0tHMkdo?= =?utf-8?B?eXNHVzBPRGgvK005dFRMNmVtRXN6RFVhejJ4bFRDVHhIQzVZbGJmdDNnSEVL?= =?utf-8?B?NG1WOE53WjZNWEw5anNCemU0QXNSbjNhODlaYXUvL0xEK1JpSHFPckhVYU4z?= =?utf-8?B?c0FuTGlmREJzc1AvNW5ocjBkcWFZdzUyRW15RGZleUtYNWRESDFqYkxzbG1X?= =?utf-8?B?QzhkTE1YeVF5dTFWSDErNk9xZHBYZVV3ZXJ3c3hZVzNlOWRKOFFiZnhkdXhH?= =?utf-8?B?aGdHUDdmM09kNmkwSnZ3cHIxaURHWHA2L0tsamRZVStudWo2UUV6UjdndXBx?= =?utf-8?B?ME9DUnIvYzB5ODF5N1hjcWY0dSs0QTIrOGIwN0hYVlpCK3hLSGozU24yYmxM?= =?utf-8?B?MHg2eHFCaUhxcW1ha3lUa1VzdzVCdU1NMDZoU2QxOVFmaXpDbzEycEtpbS9u?= =?utf-8?B?c1JmZVloRkRJMWFRSE5zNmxQbThJdEM2UjRrWXBjYmJXazZKTmZuWGh0UFVX?= =?utf-8?B?d2lXbW51UVR3b2lXaWtPMzF2My9WbGFUVXcrV0N6cFZiYis1VGhxa20vM09w?= =?utf-8?B?V3N4d0FhZ0NKOEJ4NW1WaHJwSC80Z2xFSXpHL0UyaGlnd0piU3dvREZDOGJ2?= =?utf-8?B?MjMxK0NlaWxPczVOdlRPYjJhV2RwbTNVSTBUUzNHZGVNRDh0WW5qckRHTVNn?= =?utf-8?B?Z3l4dysyWTJhRW90bWdkdWFBdmZQNTRDS0NlUExHUzdWOVVkVTcrZHM4MWIv?= =?utf-8?B?YkI3V3BPV25MR1cwOUh0N1hDZVFlYXA1Z2xrL2dtYVNUUlo2V1FhaHFtdzhU?= =?utf-8?B?eXVHNWUxUTlwQStJV2JrYjMzMjRQVk1LblVYZzBvMERhNjlCdHgrYmJnWHJU?= =?utf-8?B?L21IQ3dpZTZvOTJIbFcrbFBGdUEyNDgyL2NJOUVTVWZrWW1jd3B3dU5qcFVP?= =?utf-8?B?VzBDejcvbnRDWVIvMlZ1QmdTdHNxYnBZNW9nY0JhNXFJNmI3N0ZsUzFsTnl6?= =?utf-8?B?d2VQOWRtanEzRklFcFdNa0hLcHJ2aS9tQmNpNnQyYzE0bWZaS1c2ei91cVM2?= =?utf-8?B?NnRsYzZuZXVVa05nSkM1ak1qbEhwZ3JNWStBTjVQUGdCZnFaVUwxL2JtNThj?= =?utf-8?B?cG12eEUyeURoN3pyY1RqZz09?= 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:(13230031)(1800799015)(366007)(376005)(38070700009); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?blc4djhFSG81SU1pVGUrM0lnbkU4Ukl1bENCOXVkM3JiNnVWbUF4cmhSNUFh?= =?utf-8?B?UVhYWmI5L1c0VTh5dHh3UWJQT0pNdzlPNFdKYTNYeEZ5bWcrb040MnVpaWhy?= =?utf-8?B?SlAxeTdqSmd0d20rTWpTbzBNR041N1pxaVVZbURCbFVLSUphNnR4OHlzVjRX?= =?utf-8?B?d25CbDJVNGRCSUdxZmN2TnNpMzg4S2szekk0aUtacGNaTjBqTytPQVhtcmhK?= =?utf-8?B?ejdhTmovN2FZSEwzS0dnc0YveWtaVSs0QXhHaktTSUtOck1UN2xra1lpZXdr?= =?utf-8?B?ZmxhYnNId2xlOElvWmE3Tnd2ZXV2TlhBdWV1NGZkd3J4dkRRTC9uVDM0NGhy?= =?utf-8?B?MUNaRjk4c1o0K0Q5ZTBlSGtxVHdLMFllV2hUMlJTWTlsTHFvclg4SmFlMFJO?= =?utf-8?B?V2ErOVpkSFVLM3FpYzFLK0xkQThMS2luSmwrTmlpV1oyM2hubG9vZlhhWFJ6?= =?utf-8?B?ajg2dHpKaTFGWEllOENUS0pRMVQzZno0K0RsRWt6WXBDTkxGK0RTMmFkeVc5?= =?utf-8?B?eXRjWE5VSkN1NjVHUXFZVVpqaEFDSEVHb3B6aDBCRkdjUXJyZ3ZndzlhZjZM?= =?utf-8?B?UjJVSlo4bWhJcGh4OGQzcXF6UEVJLzFubHRJZ1lwMWo0a1QyV0h3eFY1ay9N?= =?utf-8?B?WnlOTERoOVVGZ0cyNlZoNzFmUGkySVhkdy90M3NXQVBoZXpDSzdjd1BKcksy?= =?utf-8?B?WTZMS0hqZHpNZDluVERhT3ZFVlE5ZFA4SVJrb1FuLzdJN0R5dEMyNml0bTVE?= =?utf-8?B?NVZ2WXBjQk1CUUxoLy8waDc2ckozcVdOUitkSkZ1bmZMWHkzZUZueGZDdDZ6?= =?utf-8?B?RWJZZ2U5ZnNlTVkvNWNRMUJkZFFWNjFsTFJJQXVrY2Z3Ry91WHBPR1B3aXYz?= =?utf-8?B?QTMvQnN4d2hEWW54ejFndFJlZlhFbzI3Tm5yQ0xoZDQxZ0d4NVVpVWVVcHQ2?= =?utf-8?B?UmdUTVhMcjZUUFZWa0w5S2xBYUxmQlJDR1JEM1hjZzZUTmJST2FNNzVBaEFx?= =?utf-8?B?bDk1ZUE3aWRJYUs5WnpTUm14WVZyTFpIZXhtVk5NNjRjUVN6T2hjRDYwNWpv?= =?utf-8?B?S2ppL0FvMzlhbXZhYndRcmJrWFJaSTJpQWxOcEJaZnRFNEhZTXJZM1RWN3hQ?= =?utf-8?B?N2tnUGVXOW1laXVHdE1LU0E3UFZadFd6cnhQaVVoM2NrakVMOTJ2MTJQbXFB?= =?utf-8?B?TFQzZnpkdXQ1TVRUTzlwTnZYL0VkTnBVUWZQZnR2OXBERHFjN3FYcm1IT1pK?= =?utf-8?B?NzRWLzZmZFJwTjdpdnZHSWdJckFTOXFsWmRQb2lKMFFXWFFpbmdtZnJBb0VE?= =?utf-8?B?UXdUc0VyVnlxcGN1ZmdtT0pQOUxwMUg2SUJMdDZSUC83TC9sVm5kZmQzeGdD?= =?utf-8?B?dmIyZ1ZWUk43RFhDalZRYnNDM091Z1hJRWRwOENNbVF0dnlDZVNZZk42ZEt4?= =?utf-8?B?TUhEWk5VTitUWGtoV0JaZmhva0dpaFJwVk1kQXBlTDhMUkVHajB3eTFBM0VB?= =?utf-8?B?K1hBa0NZcUtsZnVhQWViMlFLV2ltT3E1SFhKSUlJYjJvNVhYcHhNTUlLZXZo?= =?utf-8?B?aW8yMmZsZHFQMHNQaVVQcjViZWZsRGNnM3A1QkczSEVwb1ZCd1Z5ZkhmWVdE?= =?utf-8?B?czhPSVpuQXNSQzFwZm01R2ZFQ2daRnpxdnRYZzF2b3JMVXNybTVKSlJHSTJP?= =?utf-8?B?Z3dOcFowZlJNNWlYQnJFSWtBcmJiS3ZobGxvejZ1bnNET2U3TUs5YWNydS83?= =?utf-8?B?ZjUvRThPKzExWFdPcmF3RGs0U0RoVWhUSXhvekhHeStZZ0dHN3BLY2VBaWNZ?= =?utf-8?B?WlJFM2RkckRyWnI2eFJzeE1XSHVzVlUrVVV4bmxqNmVCdWppYlFYMFhoSVB5?= =?utf-8?B?OFRJUk9UNkUzMWRFUS9QcFhuN0p6UDdQMDlpWWl3dmg5UXNMRE1oN2lxd2RF?= =?utf-8?B?Z1AwODdJNVhVRDhTanZjN2hDdGVlT1RRT0RFZTQrOXhVaTlUMms5NnQ1cUor?= =?utf-8?B?ZUl1b29oNVp0cjFUM0d2QVprRjR5OEdFeEs3WEYrRmtPTHYwS3dkT1NjZGM0?= =?utf-8?B?WGlYcUFZU0h1SmJsVnBPSVRTWmJDTWtEQ0ZVMUg1YUpsWXJJMjIrNU9FcWww?= =?utf-8?B?b1hXNUlJNGM5M0xLajlucnJmQzRHbVQydWE0cEVyWmtzU0pCTEx0U3ZIQVp6?= =?utf-8?Q?Ip/HR2AkA6vLKgUbuHbzcQU=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <16231E084BCB4745B636E4BC4B098ECF@eurprd07.prod.outlook.com> 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: 48620919-e592-4271-ad83-08dc6abca353 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 May 2024 15:29:20.6083 (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: eBgjQdvRoQS9KQId5npK1U0gH5BMD5Yq/9THqOBxqWpXspDCB/VoAvo5We+HC4xzanpZot1XiGRK+YOsMXcm5AUuUi8qVFheN+XTNSlEfl2mjEawqUHnOE1ms53CXyFF X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR07MB7768 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+importer2=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, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer2=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer2=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1714663799189100005 Signed-off-by: Cl=C3=A9ment Mathieu--Drif --- hw/i386/intel_iommu.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index e9fa48b378..a62cbf303d 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -6000,9 +6000,24 @@ static AddressSpace *vtd_host_dma_iommu(PCIBus *bus,= void *opaque, int devfn) return vtd_host_dma_iommu_pasid(bus, opaque, devfn, PCI_NO_PASID); } =20 +static IOMMUMemoryRegion *vtd_get_memory_region_pasid(PCIBus *bus, + void *opaque, + int devfn, + uint32_t pasid) +{ + IntelIOMMUState *s =3D opaque; + VTDAddressSpace *vtd_as; + + assert(0 <=3D devfn && devfn < PCI_DEVFN_MAX); + + vtd_as =3D vtd_find_add_as(s, bus, devfn, pasid); + return &vtd_as->iommu; +} + static PCIIOMMUOps vtd_iommu_ops =3D { .get_address_space =3D vtd_host_dma_iommu, .get_address_space_pasid =3D vtd_host_dma_iommu_pasid, + .get_memory_region_pasid =3D vtd_get_memory_region_pasid, .set_iommu_device =3D vtd_dev_set_iommu_device, .unset_iommu_device =3D vtd_dev_unset_iommu_device, }; --=20 2.44.0 From nobody Sun Apr 12 13:40:22 2026 Delivered-To: importer2@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+importer2=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=1714663967; cv=pass; d=zohomail.com; s=zohoarc; b=gcR4Mqn9Yiqbsr43cxuGNtMcqS/L+Kkch+bVU85ocz5fOPvd5oTMNPVHpNmm1456RzdAFzFKnjLC9XJ2R8OcHPe6edhzO6bMp8u65NTh028QCGP3OnttJ4U9LD7QW/atljHYDqZKU+4hXh558znX221UY37QdvTLRSCz2eqMJug= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1714663967; h=Content-ID: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=GhKk+A6NwQ+38r5/YF5BJggGjMk6pSdKGBywgZ7mQgs=; b=HCIDJibZqkK8isq1/A83EtTiWvfAclYK6oX5GRxa9XGLjPnIS8YCN7TNosPpK43bDIQEar9i5G9qZ9lY01jWQMWb2987amVHRUQxwFs/crg/4amPkOLW1mTYtmmsFhRBeLImfNe1gtqCx7pwShV2QlaAkpAAp4S1ZRmymIx0vLM= 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+importer2=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 1714663967706536.0580726655242; Thu, 2 May 2024 08:32:47 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s2YNO-0003iY-9r; Thu, 02 May 2024 11:29:38 -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 1s2YNL-0003h0-Gi for qemu-devel@nongnu.org; Thu, 02 May 2024 11:29:35 -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 1s2YNH-0005yz-KA for qemu-devel@nongnu.org; Thu, 02 May 2024 11:29:35 -0400 Received: from mail-am6eur05lp2104.outbound.protection.outlook.com (HELO EUR05-AM6-obe.outbound.protection.outlook.com) ([104.47.18.104]) by smarthost1.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2024 17:29:22 +0200 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by AS8PR07MB7768.eurprd07.prod.outlook.com (2603:10a6:20b:351::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.29; Thu, 2 May 2024 15:29:20 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.7519.035; Thu, 2 May 2024 15:29:20 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1714663772; x=1746199772; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=GhKk+A6NwQ+38r5/YF5BJggGjMk6pSdKGBywgZ7mQgs=; b=F6y7/u3Cl8SJvN10qOl/SLgIxU/MTnQad9gtttIRhAG18rrkkKsb9ST/ quCt+UJGt8OUkJ0cUuMokBCk+4TSyXw+fv9hG4MAH4/Eesfwbpvfpx3bX eHpiWoyTcygswEQLCvy03jQFsC1aOKVCdo/zcSbX7W5vFW+bz0lPIQ12t qo7iXupcgBk3WZX+EapMrE2fMLMu5yDI24t6MLLoyGnok682HN9OvnV+x P7Qsyzj0h1qnbbXBTYbV9KKDHqtyn3L9oVA4KsP2vRjwjN//7tyMZ/J62 4dlZHNzDGKkpQkxSZSAUsojbtVHQRvz/pzTCqz+P61dJy6ugWi8fIIZzT A==; X-IronPort-AV: E=Sophos;i="6.07,247,1708383600"; d="scan'208";a="11730669" X-MGA-submission: =?us-ascii?q?MDFhSrC/IQCPdwO2SHbYWZIfcT5m7kD/g96Qnj?= =?us-ascii?q?cSF2hSa+XS89Y9GUx22a47+pGwJHxnzFWyf+dDx9ZBUPalD65FPUNBs5?= =?us-ascii?q?Bci7aCt8COs7xUR87mLVa+PZ6Fb4zLSf8pa+Q8QEY7uYyW5i8WX8CgPG?= =?us-ascii?q?fH/yA0lRB8V+hyXBR6gAPZ8A=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BQcIdsJs3+ka+N9LHFiKevuuuhfPudlRP4SkwqZOkHvQMq6XWCpq+otF9fvMFRUWCCA08gCNuOTpHcg3FjskOQZAvO5AGhl1BHojwkaZU3lbbPgkT/rkNbMovrQS0Ph8lFL6FyIHpUMMBhErJKEfHmdZoecNRNy9Gx5WJRmI1n8cfrGh6zpAr9FMLdU81qXFcW63+ASNTCKhl/0slEUl8qKP7mnjF7vhTvC9ynAUbOBVBLVJ53CB5vX2tEfWA2cfE+IPz7knERaVGiz8dEu+77Rivfew0LFPsNfk/uWhuL7BvfvnMamHf1+yZRskZlx+XkIr5MoDs5kUtKxLmp00Xw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=GhKk+A6NwQ+38r5/YF5BJggGjMk6pSdKGBywgZ7mQgs=; b=iqALBWJ1R6KCU5ijyJBReE2zJusHfb6ufSGK+inEj881BS7GOqXzLR68dF1cbBsrkyLoJsoZs7suAZ/qONoJllx4x7kt9dH4nTEz+lGtCwseXqOyt67kJRiRJbKA3E1l1vzFa8vKGCRumfEvbtRLaE+juc4tC+4knG1VhPYt6ax+lRMWgkB+kWzFpvM7ABsg5AemLvPJqjSI1ZDeerPlXuiSvMgCfDwtf4DH8kk2j1uW9r08erppVQ4zM5Ly8HOXyLxoxmWnr8a4KWjTU8I3iWx+njW5UG82Zg84xQZDTTe8P2/RMWGgUbwMPxJ9VskdiNVdyIhws79WyrIJ2E//1w== 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 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v1 18/24] memory: Allow to store the PASID in IOMMUTLBEntry Thread-Topic: [PATCH ats_vtd v1 18/24] memory: Allow to store the PASID in IOMMUTLBEntry Thread-Index: AQHanKWAt2VhTY/OvE2prqz0y3GhlA== Date: Thu, 2 May 2024 15:29:20 +0000 Message-ID: <20240502152810.187492-19-clement.mathieu--drif@eviden.com> References: <20240502152810.187492-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240502152810.187492-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_|AS8PR07MB7768:EE_ x-ms-office365-filtering-correlation-id: b6b52596-5daa-48f3-80a3-08dc6abca37b x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230031|1800799015|366007|376005|38070700009; x-microsoft-antispam-message-info: =?utf-8?B?TGt1alhpZ2x2RnJuNXNBR1RVaGFEVCtKL3EyT1EyS1BVbmQyY1pJcDIwbjFJ?= =?utf-8?B?cmlwU0pzRjVaN0EzWFRoSUF6YzR4Z1JlbnFOZ3Y1Nkp0bXEzbDQ2eEZlaWRB?= =?utf-8?B?bFlONnZNc3QwUEx3azhYZC90SHVJUU1VS3JkaHJpTTVEOWlDSXYreko5eGZG?= =?utf-8?B?SklOby9DeDNzYndrMDVYU3Y4VHRXaWZyZ20zejYzV2RUNmNGcm13WC9IZnpv?= =?utf-8?B?ck1BWVY1d05hWVU1bEIrU1MzRnN5YS9wYjk0Q00rcUg3ZkJieVc2UnRiamZ1?= =?utf-8?B?WXE0UStmUEk3NGcyck9RV3VMMmgxMDF2MHRLa3FaRGNKSmovL3NCVGJJRitk?= =?utf-8?B?WktnazRNNlJxL0FTRmdnMFlST2FlZ25pMlY4ZHpTY3lxcGZyVTcrU1pvb04y?= =?utf-8?B?U1F0b3Y2TzBhRXdvK29QeXdzWFFFeHB1R1pYbHRNL3BiSVVmZFg3bHVBajYz?= =?utf-8?B?dmx0eFN0M280UTM4L0dMbyt4NFZDMjh0Q1UwMWVtVEVINVlPUFVqY2VKRDRP?= =?utf-8?B?dW9qcG42bC9Zc256clR1RVJ4MnFjK3dJVnl4NEZmdDZpOVFSQ2dJM09HRC9W?= =?utf-8?B?TkdTT3B0cStseWVHaWJPcEx5SW1FVW11ZEJLRWlIdGwwVTNRWlR6YW1UR2RH?= =?utf-8?B?U2FmN1I4aGZiSm1UWENjV2VJb0Mrb01EYVFKSmxJQ21yQ0V0Mk5KYUJpbTRH?= =?utf-8?B?N0JGMFRqV2czWVRIay9HZ1d0TG41bGRmVjVsVjc2dUVDUjgxbEVsRWxEMHlO?= =?utf-8?B?NDlNZkhxVVR0ckJWYTBSaUI5Q3Zhb0I2MmI3UlV0eTMvb1BCNkJIVGpXZU44?= =?utf-8?B?R09xT1BJaUlSU2ljamF0Yk1VbjVwYi9iM1JWZ2M1R3N0cnhKemFhbnVpK0Yy?= =?utf-8?B?amtyc1dITEhueDE4ejhETWlvaVFJMEo3MnV2Y1hUWUl1eHd6cjViQ3kvMDBI?= =?utf-8?B?cEJjM01Xa2YzbmI1SGt1eU5WdTRTc0xuZDhieGV4S3NNWW9UL1ZkYjdnTWJi?= =?utf-8?B?VmlJd01RZUNDNHlHdFE0Y2ovWGFLTmI2QzhLU0JBYThTZktOMEtZV1A3cTE4?= =?utf-8?B?YytWbjVXM0hlcUFHb1UrZ1JsUVpyMC9rOU5mS1d3Wncxam0vczQ0UDArRWZ4?= =?utf-8?B?QTBGOTI1TjFUYllIcloyZGhqZjQxbGZJeTBlb2MzaUl3ZFRSdVVRbnlBWStL?= =?utf-8?B?WGVYaGdUZ2FMYWFaeHVCdDdMWGw3OUxMVmRuVW9lRmZDR3ltNytxVGUvSDNL?= =?utf-8?B?ZG1XMDlsR1lvZHUxd3pVSkJhbGh4dDU1T05CeTVoL25NTWoxamd4cFV0Vk9W?= =?utf-8?B?OFhEMHUzL21SUnlGVWRxZWlPcndYQjZheHNMOEVZL3pibk9OMU45b01KVGZU?= =?utf-8?B?aUVHYzVHSWJic3Q3aTREMTA1amhhWnovZUVoV3dYNDU2UEc3SG9UVzdZUThI?= =?utf-8?B?SUYrLzVKMXR3cEhkZkk3VFh4emZTSEVWN0NjOElQQXhBbUdRVXJBOUhNL011?= =?utf-8?B?cDdock1tcFRKb3hsOE0zZWF0ZDdUbGVvVlJVeThEcWJIQjlHaFdldmhVdzVx?= =?utf-8?B?cGZ4R1lQUmJKK2xVeUkreTlPK0grTkVlZ3VEQStqcFhpZlhMekwvZW1hMFMv?= =?utf-8?B?SytCUnpvNndxTTY3WlZZZE1GQnNMVy9uZDJKVTArZzdNNjJDNDI0T2x1cWxY?= =?utf-8?B?VHdSM2Z2c0VTblhLVjNsT0xaNVhQZVpSVjRTbTY5T0l5aEkxWjhOVDRJUjZG?= =?utf-8?B?aEc1YytYS1dXbjJnVDRrRitSQU1JNTlycDRaVmE5WkZBUDBEK3MzWWptaVB4?= =?utf-8?B?dXNmaEZWRTZwbHNQY2dvdz09?= 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:(13230031)(1800799015)(366007)(376005)(38070700009); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?WCtXVFVMalRCZWV3T3FLTTVyY3lZZjd6eFdEdHlvc0pLTjh5U1pwaG9xd29G?= =?utf-8?B?eXVnMUNIQmtIbWtna3ZWWGtSSVNnbFY4NFVzcVJ3RXl1ZVB3R1lZSUdQVlJa?= =?utf-8?B?NitwNG14SFNwZGhCdnJrSzR0VUpIZEdveFNxS2NxQWkxYXdHRzZTb0R6OEhs?= =?utf-8?B?ZThqbVhjcGFQdnBUZDJzVFJFTlY4NEthcWZxN0RaV2JlWmtwNnJSWEpITW1i?= =?utf-8?B?SXVuMFcwOU13cTlpbUZvQ0tuYVkxekoxT0tqeTVjWTZESXJ4R3NZcTBocjJQ?= =?utf-8?B?bExDUmh3cmNUZCtGdzB3Z0pONElCL2dFaFdNTzVFWkEweXI5SGZUWldIZmdC?= =?utf-8?B?d0ZGbGNqdGs5SXczTjFCMVl4ZEJHMldxRGg2dFhLZHNrYTYrVEZMRXdNUkNz?= =?utf-8?B?L1dhYU1kV2RXTzNEblVKV3NuYTI1OFVTcW1sbU5zQm1RdXhjN3UraWw1OENS?= =?utf-8?B?Vmx5U2h5MjlHMzhPUEsrRUFkUWZPM3FoR0ZWV3JnN0xheFgxdnhldXljcWxj?= =?utf-8?B?ekRMT0dNRHBrdVkxRHE1TitVNHVZbStCTUxQY2h0YlJ6L3l3MUh4Z3ljL0xY?= =?utf-8?B?Z0pSMUV3QzlQYkUrWTQzeFRxLzFGM1g5TFZ6WU1kSGwrTXBqQ2RlTWJhcWdO?= =?utf-8?B?L0FnRGZoc2lFRmpmUC90ckRCR3BnaExJaXlmLzJFMldpcFZHZ3I4Zmc5NTNT?= =?utf-8?B?SW1XN1VYS2FYU1E0Rk1jeWYxcGtCYXVTRFNCcGhmWmtEWi9PWDhVNDVJWW5B?= =?utf-8?B?emJJeklWd3lhcE1SdW1oUkFreXozdU14MmZHS3JaTGM2Z1g4dm0rRnl0eWxl?= =?utf-8?B?Zk5ESHBJMkZadnB2OGZvZDk0UGFJbTZ0L3JnZkJSRmtoTGJvR1JRc2JMU1dz?= =?utf-8?B?bDdiTmxOaFVwWGl5RVo5UmgzSlRtZFJDWFIzaEF6RGlGbmVJaG14ZCt1Uzhu?= =?utf-8?B?ZkladzJ4cnNiSkE1NTBzNHozV2F6NGFUbHYzeVM3QjBGUlIycXhhdkx6KzBv?= =?utf-8?B?dWFtYkF6dDJ1Njh1ZHlnd2dSUzVBTkdXUXJ2SGM3OFFxdXN1MEd3TWhTZG91?= =?utf-8?B?WjVhRFdsNHc4VXY3eGtWRElZdXFZL3FpV3ZXdk5vY0VyMk05UldsZHdtZUQ4?= =?utf-8?B?aWRodHIwTjNKeWNsTzM3dnUrcHArc2tGQkVOR1dGZ1Q2RzBqR0ZrcUgxQ0V5?= =?utf-8?B?d2pOWFRyS0RWOGVOMVNyNUV1eXcrRmR5U0h4RlBodFY3eURKbVpDSng4a2Rs?= =?utf-8?B?cXVvY09SWERnK2lDcnJDRTEyOTRDTUtkWU5SdkEzL3ZIcU9JNW0wVVJWSWdu?= =?utf-8?B?S2RrT0o3TzludmFTZ1IrTkliUlVMZEpuYVc0dTEvVFBmcjVBTFhHUkFGZjVM?= =?utf-8?B?emtsNnZkZGhJYzk2cml3SmZiKy9RWU00RDdYemNRYWw5QjFCWmRqbnJsK3hI?= =?utf-8?B?K2V2ZkRhelBUbTFSeFh5SkFPTy9wS2dmc1Qrekx3OVQxSmJYYytlcHBlZS8x?= =?utf-8?B?UlIydzVaZnpIb1pRL0s3NjF0MG1Pa1FEMUpQVHBITnhOK2VQN2JHRFk3YzJy?= =?utf-8?B?aUxvSEVQQmw5REtkYjc3QUd4WWhrTHZESXVHSzdEWEJwcEppaTJVL1hLVzk3?= =?utf-8?B?VGsyTHdwaWE2blBneHJzRlBCbkZEL0JwbVFxN3YxY2tPb2NHTWhGR2prdWlo?= =?utf-8?B?blAwejRvRGs5WStWbVNYUzVsa1c2YkpkdHJFTllzYlAvQ3Q4KzI5ZEVKVXFr?= =?utf-8?B?YWhVbG4rQ3FBdmhaMEVEOFc5eGoycEE5VHJFYWZUVWlvUWRxckRuc2FhYmRG?= =?utf-8?B?clA0NHR0K3BvU3o2RDdVWG9hWm1LeDNKb1BLdkx4WDJGemtybWkxS2ppRzQ0?= =?utf-8?B?UnREaWxqRG1HQ28yaUVpWHgvbE5MdThCS3UzVCtTckZLaXJrMDJhVUFsYStt?= =?utf-8?B?Ym9mTGhybnBjTEp2QWsvcmlRTXNHWjQ3aHEwTnhaeXN2M2VVY1ErNVF3a0ZT?= =?utf-8?B?Yzl0RGlBMVdOeStYWjdiOVpZWWVXdFdLeHhEUFJTK0h2WFF1NlVZQnVvNUcv?= =?utf-8?B?dTZzaTFqUUt4dUEyaXJwZk1idVZUNDFHQ1AwVVhUeGFjOEJWdnJ2cUR0SGhZ?= =?utf-8?B?eEl5VFlSRVNFbys5aVg4RkZBaHlkNXczSFQ0WURIcWdTMW9Hek9oRWNmNXlB?= =?utf-8?Q?CUf+DAKnup8CeZH+CYfGXNs=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: 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: b6b52596-5daa-48f3-80a3-08dc6abca37b X-MS-Exchange-CrossTenant-originalarrivaltime: 02 May 2024 15:29:20.8572 (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: ooHJ2pYVP/m+F3Tv4SXrwO1PmMSCOu4aExpmSezWRQ987tf5RhWDXnMZvTZPlpJFyENf0uaHQArIusO0L6G/4VvWujrBAjO60NDxFxH4DlLiHaRO8PFhvGrVY67KytpH X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR07MB7768 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+importer2=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, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer2=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer2=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1714663969300100003 This will be useful for devices that support ATS Signed-off-by: Cl=C3=A9ment Mathieu--Drif --- include/exec/memory.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/exec/memory.h b/include/exec/memory.h index 304504de02..f4b33415d7 100644 --- a/include/exec/memory.h +++ b/include/exec/memory.h @@ -145,6 +145,7 @@ struct IOMMUTLBEntry { hwaddr translated_addr; hwaddr addr_mask; /* 0xfff =3D 4k translation */ IOMMUAccessFlags perm; + uint32_t pasid; }; =20 /* --=20 2.44.0 From nobody Sun Apr 12 13:40:22 2026 Delivered-To: importer2@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+importer2=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=1714663989; cv=pass; d=zohomail.com; s=zohoarc; b=X46ofPYuiGhLFQjmuNRMbZjD2e6IDFHG9aTlxq/oheZVzOHFrpHOtsIU0KXJWw9qQvf/+IkUtGzScPoPlzpkLHCVRf2g3I+9ow07AgX8bsSWcvi/Bno2jE7f0ayPBj8QrgbfU5z3vC770Sk33nWAO9aWFHCPsXbPa+Yp6MG3xZI= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1714663989; h=Content-ID: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=PEzIBq9lDZaXfLf0WUXeN4trwrfZyhyn417eRg/Zhek=; b=JaznxvgdpD2fKOGTOxRgNOihptHPp1Bq/vpDSr7n4Co+wsZMWtDxCpzeMggGM1V4yTUruXVKhPUEe8o/vVjRjds9TP94ciL3QRvCNwbs2m8LFTRLYRFmmfj/c9NEb5p/ZAsqwlkod6cX6MgM3gdycEhRW1iVfwfBWvB75lEQfRI= 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+importer2=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 1714663989040601.7991347275866; Thu, 2 May 2024 08:33:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s2YNL-0003hd-Uc; Thu, 02 May 2024 11:29:35 -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 1s2YNK-0003gQ-CS for qemu-devel@nongnu.org; Thu, 02 May 2024 11:29: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 1s2YNH-0005zh-Iw for qemu-devel@nongnu.org; Thu, 02 May 2024 11:29:34 -0400 Received: from mail-am6eur05lp2104.outbound.protection.outlook.com (HELO EUR05-AM6-obe.outbound.protection.outlook.com) ([104.47.18.104]) by smarthost1.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2024 17:29:22 +0200 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by AS8PR07MB7768.eurprd07.prod.outlook.com (2603:10a6:20b:351::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.29; Thu, 2 May 2024 15:29: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%4]) with mapi id 15.20.7519.035; Thu, 2 May 2024 15:29:21 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1714663771; x=1746199771; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=PEzIBq9lDZaXfLf0WUXeN4trwrfZyhyn417eRg/Zhek=; b=E/ZV2T73bOlILIbjZsjmMGArJx5Tf1Fjt9al0f14TctTVlgNFtN4LY4T SHbV3x1xQBlOAKiAsaPHVNnsVyw11udsxYK5ehwhLmMOgF/MzyT1BzLbc CbEcpjuj+mcMnRXBacn4i+xKGUGrrvKuyUFe1xYrFuRBOnJqfz1fVsDtB 6INi66mhC53hheMO+3sL5TwO9Bxj4MIZHiuVoAYc3JJf6zelTrHbbY5rZ SKmqZmkNqptIthZiKG3A4LmiTCZc43Bcqby7VM0TfGgrqmk7XYIhoVrIR juV947hJfwzfpqdyVSoFiLLTRPZiYOIgWs4OyWMdSO6KxlI0PWKdZOtM7 Q==; X-IronPort-AV: E=Sophos;i="6.07,247,1708383600"; d="scan'208";a="11730670" X-MGA-submission: =?us-ascii?q?MDGayLYUZl7AF5RudSH0C4/9kh7YGBbbqC+MYM?= =?us-ascii?q?QylglOm9WiJsj0UfXR04X615TflanUQzwiQYGdefNeEEx1o2IvfDaVC9?= =?us-ascii?q?CWvZXIeAnxerya07Q8dEo5Wt20sbBplLAPlqiMKbjk5YRLh5T1oS5ACA?= =?us-ascii?q?JmE40XriVuYzNboRjBhbPK7w=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PmFa+5meWKRQsn2aTJvtnYWg5RfInB3UnJ4tGOFCuYp4MpbZulk0qEeiEB7FlDgcPIjr2apd/STQ3fuF7Tlom97nyYDSkTjS3Y0edMsE95xTxq8fGABOvokk1GnLKdLpYy79ao7tqeLFEjMe3zuQEWfED/CI6WrpUiTs4JNMvwFxm2rEwuKGqMF3qjyUCOLro5mXNMEa7VzfaM9ON7tHhKYkHXdHA2YbzLPVEPkqsHeFfvA1n4xQ+NmmrKLC7wBUgYW9wjPmHGb7kguzJIz4fY8LZzaRP1k5K1KuJYDb/39bWMgfr3EA2txjfWxg4TVq2Dlf+DidMKp5R0SX2NqBdQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=PEzIBq9lDZaXfLf0WUXeN4trwrfZyhyn417eRg/Zhek=; b=i4R6hAT744FNaRJJB/tucXOkAC7jhOzuMWMPmOLXw9i2CpMp7P2j4XVhcLnHVXkl/6/arhUKUjiRLQCZmbaL/tWgJL+HXp6HLIkTGs+QdP2VUy1Eez7zycBiHTWmeokbpkRiTuj0wPDvx8yHS+Bmr7lML57hkV7A05BQOJ1PfFZmKb7oZwRjc87kauULQEXk7+MrHzj8j4abpXhsLM8s/CZG+xtpwWk+h2SlUOe5h50bhixiwFp4+MysGgD79KILmXVmO2U/BCvRebGGEToD5HMXCGRAGEDRaiE5eWgY2G2Bo3NYBaoupvrbZK2cWOmSBvlFxk0qhlV25VQdCW9fTA== 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 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v1 19/24] intel_iommu: fill the PASID field when creating an instance of IOMMUTLBEntry Thread-Topic: [PATCH ats_vtd v1 19/24] intel_iommu: fill the PASID field when creating an instance of IOMMUTLBEntry Thread-Index: AQHanKWBZFgBt0AaL0q4Tqeu9PVqZA== Date: Thu, 2 May 2024 15:29:21 +0000 Message-ID: <20240502152810.187492-20-clement.mathieu--drif@eviden.com> References: <20240502152810.187492-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240502152810.187492-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_|AS8PR07MB7768:EE_ x-ms-office365-filtering-correlation-id: c7f5c3f4-9197-41f0-f61a-08dc6abca397 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230031|1800799015|366007|376005|38070700009; x-microsoft-antispam-message-info: =?utf-8?B?U2NWamo0MlVWYjRTdUFMQ0lRazVOMHlEYVFiTG1lWE9DZE8rbWZmT09wc0k4?= =?utf-8?B?YnljeWc2UHlzcXRTdnlIdDNuQlRKV2ZJbDdDNzBrQlFSNk5wc09qdW5xUklr?= =?utf-8?B?SWpXMXAzR0RLWXpCbXUxOGZ4RUVNbVVienh3OGVQRDhrWmJ3Sjg5MXpmRW9x?= =?utf-8?B?YVdjMk12RHE1b01EdlZKYk5mQkJIWDdoYkFYZDBDbGhxTHd6aHVGYUVqS2Zi?= =?utf-8?B?TWwzcktxL09xbTJ0MUZFNWk2N21KWDRhYTRpVmpHcUVRb2VzcmJMZ0hFYXNF?= =?utf-8?B?SytQMEpKcVczS0dTazQ0YXZlWVBDOS9qeTlZNVFWQU9DdjBiTldCTnZ4bGQy?= =?utf-8?B?ejlEc2FTVnlsT1RSRXBuQ2ZvY3RXNjY1Z3RLRjUzcTNzamxDVENsZm9ENDJ4?= =?utf-8?B?SFpYYkxDaGRQamY4aGh0dXFYdlpYY0VvUm5hMHBQcUFKOElwb29ndDhEZGxK?= =?utf-8?B?Ri9nMlZ4MjhMLytwR0pyRjl5WWszSTJHcm5sNlQ4ZStwSDd1RDlQcG52azVh?= =?utf-8?B?TVZyWWo1UmVBOG5XL0lHNW5kSy9wMDdqZVFvYXJzM1FoNUJxZDZIMFRRaXd3?= =?utf-8?B?QitSUDJRc092VVdCRUprclRrakxxRlJHZUZGZFlUaE00RjlJRWNmRzRoOXpG?= =?utf-8?B?RjZoV0czY2ppcUN0MmM5VTl0WXFKWXQvVXRSTmVkcTVKVU01L3lNZTRTTkVE?= =?utf-8?B?WFV4Z2dVRmVieWpheml4aTFWMWhtZElONHdUNWkybjhrYkRhc0luWVhUQm5P?= =?utf-8?B?Ri9WYU1NdXdNQ1JWQlNGbUdwa1F3V2NLcUxjQ1g3SGc1eWdWdHRhYmxMZTlh?= =?utf-8?B?bUlZcjNTRkNEZWhNcVUvZlFQbitnNWlhSUdSMFNNQzFpcVdCdWJ4MEpLTmN4?= =?utf-8?B?aVFXa2J6YnB6QU1DSGFZdEE3OFkzVitBdlQ4bnE4V3ZOMENwamRmR1JMb1VO?= =?utf-8?B?Mis5UzRaZ3BXcHNsMHdVVmlLZkVGOGFpM0RUenY2QWMxYkRSKzk0Uk9PUHAw?= =?utf-8?B?YTFreFBiSmlqbzZ2MEE2OWNmMHI2SDJuUlRCZ1ZFSUEzVWdJN1gvMmozdkRj?= =?utf-8?B?cnNHZW1XaHNHLzNPaVVzMitCSy80VVF4LzVvc3BCR29ycU5OcXZjYlFaZjlk?= =?utf-8?B?RnBtK0VBeHNTck1FTERvNVM3N3VuUVJtOGJKaVdZVjRUUENTaDdIMVUxSWk1?= =?utf-8?B?WldhVk1PZCtKUEVMYko2N2hOcVhDMTc4dVp3M1ZUSldoZWI5MVNNSHFEbERX?= =?utf-8?B?amVPMTRGQlJwMFc0V0ZvcWlXdVROSytSUk5GUUpzbmVtNmY5QXRGTEgvZGVL?= =?utf-8?B?TmFMcGhOOUZrdHJEYVg3M0VPVEErMUkrenlqSm5QYnpsTmlWQVRMam9aNlNL?= =?utf-8?B?djBQVTZ5RFUzK29raDk1NmNMZUpYOXZOM1RhVTdUTkxDdGlzZFAxV25pU3Jj?= =?utf-8?B?SEQzVm51QkNzK0lsbi93VDVxTko0em9FYVhNc0xyTStsMVhvMGxPbFNMbHpC?= =?utf-8?B?bnBGSFpBbjZpKyt2cnRqTHh1OVpTM3EydDRUa0RRd2VQaGlqV29OSkVpSzNH?= =?utf-8?B?RDVYL0RFRFplMHY3YlQvTHkvSTlBVFdtelJTOU1DT1dQWUZmTDNqOEtBdVRt?= =?utf-8?B?N1RUaFZ0ejd1Ym5yMWNSWG9JbmlUQjA5V0RGYWJJSTNhZUV6OE5XU3BVZTBl?= =?utf-8?B?T05hU0pqUTNQQXN1cytOMTJDYzBHMlJaZHlnREtQamlGNGtyVzh5NG5hbVBD?= =?utf-8?B?V2lFSDRjZm1nU2ZEQlNHZEszOU9BeTFkUnhhbzlPVkxTVWZjZGlyRDM1bHNx?= =?utf-8?B?NjJwSXB2YjcyazNPMUFyZz09?= 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:(13230031)(1800799015)(366007)(376005)(38070700009); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Rnp6QWFMRTIyRTg0QS9BWXllTi8vcHZEQzhaRzBXLzFEQ3Awd2UzRUF5amxO?= =?utf-8?B?QlVHdkptMU02M1VzVldzdGIvMHd1WmFQT2QreUVOSGlUL3ErRDY2enYvbG1Q?= =?utf-8?B?QjJ2TGlHWkRoYUxPaWprYm1pUk5peUxLZ09KRklhamJYb1RLMVBHWjNqM2tS?= =?utf-8?B?WkFZRUhFakFZUDFKR3dISXY2aDU2bVVFc1BmbmJodU9lVWxZTkMvOEtkQ090?= =?utf-8?B?OTVyNlZCTkpNMTZPemdGYjZTN2U5WWk3WVJEZEM2VzVENXU4L09zV3BMYWVH?= =?utf-8?B?Sk1nZHFIMXpmdkpOeGZIZVZpVXlZSUYrWm9GaEZXY3hpU0FKa2hQMU1ENHR0?= =?utf-8?B?RFhneXhsci9GUUxVR0NuQTdsTXBHTlZRbGVCTGowM2l0UmRzVFdiaHdPUEJW?= =?utf-8?B?YUl5MXZTSHRtSTZtbjVJdG1nZjF1ckdZYStoM3B2TS9vS1ZtTVRrZ2Vzdm9t?= =?utf-8?B?NE1KcHl6RUozdUw4ejNWWEo1M045WUxoaXV4WEhWeEFwYnFFUVVOTHlNaHhP?= =?utf-8?B?THNQa3M5QWw2VmNOaHU1dmVhSm4yTXlwVmYwQjNrK1FjaUhrUmYxQ3FuUThD?= =?utf-8?B?Y3RqTFIxWFJleEthYzJCR0k2RmVJUE54UEhSRnRGM3gwMFQvRVJqMjczNGY4?= =?utf-8?B?RGc2dVV0L3k1R20ybTM4ajJUMElvVnVqeHVrU3g5WWd0eStQZDRteEFQZ0R0?= =?utf-8?B?WkRnTHVTT0IzQUh6MjJNbDNVQ0JlOG00c29pZlRSMXk4am5TT0dIeXF1bzVa?= =?utf-8?B?OC90QkpFSmx4L0pReDFHMmVvZEFTM0NVWkkrUThnampVdlFpUjNMblpESDRn?= =?utf-8?B?YnF4cGx6ZmNmMTZPSGJvSVcybElOM0NTYUlLL2lUTndRY3pKa2c4c0VFaHJX?= =?utf-8?B?NFlNUlZYSjRVdVd1dmJZQVd3TnMyWEJZTmx6WTlTc25mVnQzb08rSXBjTlUx?= =?utf-8?B?dmJ6VEJMQU1NakkySDdxMFJxdi9YSCtPMHN4ajZVVy8xU3VKUngvMjRPZVNK?= =?utf-8?B?T2dZSFhXdmtqd1NVODJac0h3cHZEL1ZmemExZENrN3cxY0M4N2dlVG8xYWJY?= =?utf-8?B?dlJzcTdBTXRML1RjenNWTWg5b2R0UWpMZ0pnZTdudFBmVSsxK1dTVW5MSDRO?= =?utf-8?B?TE45cmJDQlNldnFDZExtakFYNlcrUjJONDBxVHNNRzZTTjVaM1VZN0ViMVVx?= =?utf-8?B?UkE1SXoxdC83QmZycHVKSGRQV2tEaTJJbmxNUzJYZkJWQnZTUjhsZnZWVUxn?= =?utf-8?B?VVBtR3R1SkR4V01XNm51SHhWbnBzYW9Rc2VlWFBYL1hpaFBtT2hlZldsV1Rn?= =?utf-8?B?SGN2dklGR0p0OTl0dmduYUlLaWtQUUk0aTV5YmtPMkQ3M2w1U3RsOXlneWdE?= =?utf-8?B?czNtSDVEOXR6a3haemVIY2JPN3RUaG5IMmRHbThRUzlNSVlVVFVaTmh2VWo1?= =?utf-8?B?RTE0d1lIcGtVNHF6NUVHSmNzWkV0RFlSbGt4cG9KSnJTQTYzb1FOT2xXdHFC?= =?utf-8?B?aXRpcUc4Tjh3c1I5ZEk0bUFlU25hb2pQcHVtODlRODNzSVJCWTZ0MWhkMG5s?= =?utf-8?B?WjF1SzhrQWs3bFlkaml3UnBWNnlWdTFRa3M5L1Q0allIRm5nUG12YmxGRlB1?= =?utf-8?B?QWhqN0k1OHVEN1JqR2hKcEw3dTE4cUlURVhtdWoyNGlwUnpVZ04zVmJ2SUNU?= =?utf-8?B?Mm1Sc1RyYU5kcjRaMm1tY2lCUkFscExOT09pTVpBL3F3MGhPdHRQRU1TWVBC?= =?utf-8?B?dndORlF5VERGUko2dk1vOEF3ak9jcVovZ3c5YkFqN3JkRDdUYVlyWmxMRHVv?= =?utf-8?B?eXA2ZzRFbjErenRwS1ptakM5R0xCcnB1aFJPcEk4c2hJWk1zclZ5SE9xNU80?= =?utf-8?B?RHhsRzMxaHVrN2hZSUxQQ3ZxU0F2ZUtlNE5BTHhwUnFHRFZJemFhMXQ1TDdN?= =?utf-8?B?NkpKT01FYjdsRXpDTnhQQnROQkRjaG5pZWZ2R2xRWDlmZ1JEaFpycCs0Rk1E?= =?utf-8?B?VU5CQWdGdjNVMlNlQUdOS3NYaVBmeXRlNGJML1ZqVFJXV05PTkp3NTZjNEI5?= =?utf-8?B?dTBNM3N6MG9NbWxyOVp5S1EzeWx4dVlJTVNXUUR2MkdwbTEwRWZCcXZ6ZmFp?= =?utf-8?B?a2VYRFlZS0pDQVJveGluZk5ZeEtpakxLWlhjeU8yTVdreWJrclBreTFGeXNG?= =?utf-8?Q?VpIdHHmlqbk7X4KqkI2oq/U=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <55194E1E493CAC45B137755E0A182A12@eurprd07.prod.outlook.com> 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: c7f5c3f4-9197-41f0-f61a-08dc6abca397 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 May 2024 15:29:21.0598 (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: MINmG1/XkSCW0x7Hbr8IMiK8sfOES6CHX2wNAbphaJTIbUw+Uvv75BUahEcDEEcXhVh//sdHnHeXynqLxuygipgkevqy2MdAj4EdOGrkL9YECU2iXkRyVB6Iq3skBscc X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR07MB7768 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+importer2=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, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer2=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer2=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1714663989348100001 Signed-off-by: Cl=C3=A9ment Mathieu--Drif --- hw/i386/intel_iommu.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index a62cbf303d..02c5f0fa4f 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -2302,6 +2302,7 @@ out: entry->translated_addr =3D vtd_get_slpte_addr(pte, s->aw_bits) & page_= mask; entry->addr_mask =3D ~page_mask; entry->perm =3D access_flags; + entry->pasid =3D pasid; return true; =20 error: @@ -2310,6 +2311,7 @@ error: entry->translated_addr =3D 0; entry->addr_mask =3D 0; entry->perm =3D IOMMU_NONE; + entry->pasid =3D PCI_NO_PASID; return false; } =20 @@ -4338,6 +4340,7 @@ static void do_invalidate_device_tlb(VTDAddressSpace = *vtd_dev_as, event.entry.iova =3D addr; event.entry.perm =3D IOMMU_NONE; event.entry.translated_addr =3D 0; + event.entry.pasid =3D vtd_dev_as->pasid; memory_region_notify_iommu(&vtd_dev_as->iommu, 0, event); } =20 @@ -4914,6 +4917,7 @@ static IOMMUTLBEntry vtd_iommu_translate(IOMMUMemoryR= egion *iommu, hwaddr addr, IOMMUTLBEntry iotlb =3D { /* We'll fill in the rest later. */ .target_as =3D &address_space_memory, + .pasid =3D vtd_as->pasid, }; bool success; =20 @@ -4926,6 +4930,7 @@ static IOMMUTLBEntry vtd_iommu_translate(IOMMUMemoryR= egion *iommu, hwaddr addr, iotlb.translated_addr =3D addr & VTD_PAGE_MASK_4K; iotlb.addr_mask =3D ~VTD_PAGE_MASK_4K; iotlb.perm =3D IOMMU_RW; + iotlb.pasid =3D PCI_NO_PASID; success =3D true; } =20 --=20 2.44.0 From nobody Sun Apr 12 13:40:22 2026 Delivered-To: importer2@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+importer2=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=1714663829; cv=pass; d=zohomail.com; s=zohoarc; b=ljZR19Fp5fy2YGPBKI7PlY/6B9TUornbp82BiJjCPYy7PBKj4MFmCcObdNwXUvFTmliaWY4vYnXxoN7d/vk5/YP2DK7dDtCtrARIErKVoeVlWRVno+AgL9ockozosJlwpDtdFD5/Ntbh4TBOL6HE5/AOtzNZq4GCC3pWzw6lkIU= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1714663829; h=Content-ID: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=UM2oKYwJZ/PFCyVhG3rBpAgMLxmzRSRdT/0ePXifSdo=; b=JQnlXsg3pzYu3tyVADi+rM72WlyNONa7I74QDCRooOWjP2SMySj6Oh1BEBn1289XzcMvCJlFsKKv+Aa6UXEDxdUdxgeIB02ueDpqa2XkBRJL7uQ5vKFBNemqOjAw8niE8zO/V+Eg5f5aaJV17KsD41mQ8z8c2OI2hsNQ4GvBq9Y= 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+importer2=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 171466382933329.316363851704864; Thu, 2 May 2024 08:30:29 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s2YNk-0003vs-6a; Thu, 02 May 2024 11:30:00 -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 1s2YNb-0003pf-S1 for qemu-devel@nongnu.org; Thu, 02 May 2024 11:29:51 -0400 Received: from smarthost3.eviden.com ([80.78.11.84]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1s2YNJ-0005zE-IP for qemu-devel@nongnu.org; Thu, 02 May 2024 11:29:51 -0400 Received: from mail-am6eur05lp2105.outbound.protection.outlook.com (HELO EUR05-AM6-obe.outbound.protection.outlook.com) ([104.47.18.105]) by smarthost3.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2024 17:29:23 +0200 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by AS8PR07MB7768.eurprd07.prod.outlook.com (2603:10a6:20b:351::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.29; Thu, 2 May 2024 15:29: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%4]) with mapi id 15.20.7519.035; Thu, 2 May 2024 15:29:21 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1714663773; x=1746199773; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=UM2oKYwJZ/PFCyVhG3rBpAgMLxmzRSRdT/0ePXifSdo=; b=RUSDFaGlBNv0InvFShfQBQa6Ag24FC1M1xDx8acoO3O5qa63bIgbCeZ/ g/WmS7h+dHQ1dBhfeQgZNhoZnU+XbPbKvP5PVamfSAXV1IVYT6d2DWJQE rw9ajC6yrT2gkf8Bz6a+Yk79p5qQQFIga2H1th/saqgBQlNP8OCQJJeBt dsCksPfbPaaCII2zA+H827aDdYsNQffpTK2GQ43u03edh1JNQdSz6WzvM 4THOm7iWicjqchVqHbMCfaPnWTY8WDVsPOfdpnKhpX+wDaDXadFQguvWj kaSp1B6sTJ1/4WfgnsTpm12jPbiNkyVJQRT+SOFQRhAYq7kAXf/prCPki A==; X-IronPort-AV: E=Sophos;i="6.07,247,1708383600"; d="scan'208";a="11730624" X-MGA-submission: =?us-ascii?q?MDGBOW60AbjKHZcGtBbmMTOWRYeEI/3NL1PpJ3?= =?us-ascii?q?4PK7CB9abmHUXHRdu935Byd/hdcDWzNaZr1O11USRCEhLEG7Lbzv4727?= =?us-ascii?q?h8y46dQC4QqWSZKB/nveJy4Wi8/ck+spUEcOAS3X7rpP68LpzNyXmcmp?= =?us-ascii?q?hltNm2ZFTI8PdLafUha3mrQQ=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NLp1qHviByVLChC0B6PFHPdtJ47W7EtQbndNJ0qHHyVzmRZNNaXCEuGfwODcmFviplgis6uVOIJ7/CF5EefXLqT6pZrsTbbK+bbKh+Xdc8D/SmdLX6TdnjfRP0oZ6SAMwDmUTOxGN0tZOA76WpeJJMMSmKZ954+vJ+oCg6OvN++daRRtO10Alsuw2IHEHtzjJAl501JUWJwgfFpSs1qpNFBdHiNARAwBC0pFCiXaKBC76VOEikU/WIH53A8+6tWZfkad8QwdjCIV2v2eBUOAaO9r6vq+VrdH8tS0vIw+J5py/HneKn1yr+RyxJe5lHq721RG+fUhlmLtfAYDzWObQw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=UM2oKYwJZ/PFCyVhG3rBpAgMLxmzRSRdT/0ePXifSdo=; b=J3Gugyghl/1lQRj7vSI6G1YAKbfgbvEzm8F6pzUeEveZbW1r0beLq/DcXq0YsZKCPhXTIsQcMnohtZz8Vqjw1+rKDtw9P/tDrIZRalbFQCglSx+NXDJF8JSFdu+3l6k7TwV6Q+9Oj+FxRYMu3MoS5IVMHtHzOXd5xu+xTr4pggwli7B+yWS3avnmxfPGpba8G/mSyQnSpa6t8ZjTlhUirRUC6yZp5R9guSbt2sE1szjIMYDpwR8F3L0YqouJRNm+VBIbRZxb5tQWkEMwQvM4vjQolXSG6b5+UvMq0F49LdjRnndjy2X4YuvEkXkX3v/LC9D3u13lazCUSW30MiAyVg== 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 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v1 20/24] atc: generic ATC that can be used by PCIe devices that support SVM Thread-Topic: [PATCH ats_vtd v1 20/24] atc: generic ATC that can be used by PCIe devices that support SVM Thread-Index: AQHanKWByKvYDmYBd02klTL221t3Bg== Date: Thu, 2 May 2024 15:29:21 +0000 Message-ID: <20240502152810.187492-21-clement.mathieu--drif@eviden.com> References: <20240502152810.187492-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240502152810.187492-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_|AS8PR07MB7768:EE_ x-ms-office365-filtering-correlation-id: ec7ed4a8-e661-4cd5-b22e-08dc6abca3cf x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230031|1800799015|366007|376005|38070700009; x-microsoft-antispam-message-info: =?utf-8?B?c0w3Rm1TZk9OUS9NV2UweWNHVzAxTmZTNXF0ZUhvTUNoeWYvT01zWC91cklO?= =?utf-8?B?TU54ZXowRi82NGxNOTNVUlNLZWZqS2dZTXpwVXV5Z1A4S09LMy9IUUxRRnp6?= =?utf-8?B?TkpjZm0xcHpvVVR2RFNwclJrSjY3anFHdW15K0tadlMwVFhsZm81bHNuNVZr?= =?utf-8?B?UFBJeUVHaitGN0dHSXNqUFZqa2JOSjdrSWlrN1hzaTJ1RjdKVTBpMHk1MUlz?= =?utf-8?B?UWJOY05aamx0QURKTFdUK1o1NjZ3RDlMZFJyczhBVzZaMkVWRGQyeHJ0b0l2?= =?utf-8?B?VDQ1YVVRSDBPeitlNVlFV3pybDZOeU0zU2hRc0NoNzJPU0llQzU2aXdFZEJO?= =?utf-8?B?dnlJMWxTVWtXYTBURGowSDFwY0dYNTcyTlFaOGtmY2l0NW1xbjBMOFFiWm1y?= =?utf-8?B?RWlSTUY3dW14cXEzQzRMWlBTWWdDdW96bnNQdmFJNytxR3k1TDZnMFR0VDVx?= =?utf-8?B?Vml6dUgxRjc0elpnL2hNVTZHSGEzWWx0QW5yNzJTWjFaMkdTd213WHBCSHk3?= =?utf-8?B?WFhpZGJ5Tjd4clNWck1mclZYZ296RWRTWWtQS0VwZXN3ZEJtbEpMQXBmaHFa?= =?utf-8?B?d0UybDNEdGhvWUErdlliSTlJWXQxc0QwTTc5YUpZVnZadkdSWk9lZ2FhZUJE?= =?utf-8?B?dHVWbjVoSzVTdVBwQmhUcGFQWVVqbUpaS2FCY25CMlFFSFRZdEZwL0hJcnRP?= =?utf-8?B?dEdBTlpGR3pSOXRNdHcyTUpmbVVzR3REdDdoUEhQVUp2Mk4xcGdTV1NpUXg1?= =?utf-8?B?bzZST1NCTkJ1eDZJMDhJQnpoSUhIRStQMVFocmdyMEVjamFiYndiS3BqV1hT?= =?utf-8?B?bDFNZXJTR0txOUN3ME8rR1JjZ08vVlBZQ1VmUm9LR0ZIWmVlUGk2VHlpcDFW?= =?utf-8?B?Mkx5NmlDK2RRYzNqbjd6UjJYYnpsajRXQUFENXV6Nkg5bU5wQTJBZ2tWVHBq?= =?utf-8?B?M0NnRXVsejlMd2R6cjB6d1FKKzJRTFZwd3pwREtWQzY3enVoK3VGb3lYU1d0?= =?utf-8?B?UjFEeXF0MW43WloxODI2QlJKcFJVd1BDTDhjUHVRZXNDZUlldElOS2lEQXNL?= =?utf-8?B?cHZnQVgyblJMaGdWOWJqRm9WNEZWcU0wZlhsV1NOaXk5OExwTnJCYWpyeGZX?= =?utf-8?B?MlN1SmVYNi9RQXNTaUVGT3hjY09jOUtaL0dGaTl1cXd3bGdVUkt0N1JKS09Q?= =?utf-8?B?SnVkYnJxdmR0UThIenVrUTd1ZWJyMjAzM1E2S1d0aUF2MDdVWWxJdS9TcGJF?= =?utf-8?B?V1RBSXlWQXpob3ZOeVV2QWFvdDUycXg5YmNHVXUzQlZ5ZS9xWWN4emlIOVM3?= =?utf-8?B?Zk9nSDhYYnFwVUR1a2lXd2EwcFpoT0d6TXJLaXFVSWlWdWFhT1VCSEZEZDJ2?= =?utf-8?B?WjNKUFFLUGVXWDYvM1kzckNiaU5uL3JadWdONlIzRzY0RnJLbzVWK1BQT1E0?= =?utf-8?B?c3dsRitjQ3Ruc3VMNTlIaXJEa1VoTERMenNIanRsK0hPbjE5L21zUVV3MXkz?= =?utf-8?B?cWdBNmx1amJJRVIyalVRWC9jczErOU5aU3F6ZzZTN3Z3TkQ0RmRmaDlVNTNH?= =?utf-8?B?OWp6cWlrRFdWYlhlUnUvV0J5Y1prS0swc2RkUmx2ZkMrR2J2TFRZYW9GYmZ0?= =?utf-8?B?bjdERllVSXJnZW43Vm9IRER0MHhuQ09RUURlamtDSnA4UnBSSVQrZkV0bXBI?= =?utf-8?B?bG96UUpEQzFwQ2ZWU3pKWU1TQThoVmRVVWluTXNHNUJnWWp4aFE2c2tRPT0=?= 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:(13230031)(1800799015)(366007)(376005)(38070700009); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?a0Q2dzJ2S3M4Z3puVkVKUlorRUpMTGlEVXQ5TEJxWGIrNlM2UlczM3VhelNx?= =?utf-8?B?aldnVzBKSm94dTVIejJMN1dmYzdtd2svMG91dUlIVGJlZUd3V1VYUGJyMG5i?= =?utf-8?B?S2ZMRWd5eFl2WUU3Z0pCZ1duWUZJc3VBWG0zZ2NVM0lMYzRmenkzV09Jb3dy?= =?utf-8?B?T1E1d2hDMHVHVkZFczQ3bVdjc3dNNnpZWEFmSzN6ZXJjUmlQVmlmMkthSEw0?= =?utf-8?B?bEJaUGVxcFRyMFIvUWlRVTJxN3dtN2JCb0NnbmFaamJ2ajVGbU91K3lRcUlV?= =?utf-8?B?aFNRYm1aRmhlLzFDN2UyVFJ3Sng3NWk3dUFxZUgwMkd1blkwT3loRE11eUZs?= =?utf-8?B?MzlCdWhWMkdLVnR1ZzM5S0hhMmllRmJZUHB1Z3h4ejQ2bEpXazM3RVJLSnV5?= =?utf-8?B?dCsveTNTR2ZCajJoYmtxOWdBSXR4SFRaMEVTQmpBTWRQbzZqblVsM2svQzNq?= =?utf-8?B?dE9lRmtXd3F6dUd0WThld0JJUG8yS2NQd3pFU2hsNGNHRG1kYXBMcTJXZ1Np?= =?utf-8?B?VUtIcFJETHI2aGl6dEtxKzFBSEt0L2QvSXRUbGkvdGpqSm5jS3V3bC8rUklI?= =?utf-8?B?T2xydVVDeHozajFCVHZ2OUZJSCsxUnJTSmt6ZmlLMVgwRUNLckdlK2JybEVJ?= =?utf-8?B?RFZNM1N5ejM4djYvdmhiSWRlRTd4dHJzeHF3RUxRNzhPVmo1Tnh3NC9jaHNJ?= =?utf-8?B?ZkFCcGxHMmxTc1lYNEVkWlBPWFV6ck9rUW5scnh4MFh1VnVJZVBhNUY1Zjlo?= =?utf-8?B?dEUwaEZldDBWVFdadXNKOVJaVFJhUnAzWURmcWUrT3h3Y2ZrbXJaKzlDajQr?= =?utf-8?B?Y21LZ3pjenArcXZpRG9QZnBCVVNNanM5aWpDWGE2dkpCVGFYQmdXNlFkZFFm?= =?utf-8?B?RU0zMzJnd1dPaTc1NDgrYnE3RjJ4RTJ6cVNFYUhXT1M0TWtxcVRTTnBXWTRF?= =?utf-8?B?Ry8rTHNnY2p2OUs3L0I0TGJHL1dDTzJWMGsrcVc0RndRbENzVzg0SmppaDRY?= =?utf-8?B?QXp0NHJmS2Z1TkdOTW4rS0FCWWJEZktXTHFGNUxaejgvVlkySU4yWFk4dVAx?= =?utf-8?B?bVNCbFREbGsvVVVldGdMalY1dkQ4enpoM3FUeDlkL24rbU5YSUplZnJUNDRR?= =?utf-8?B?MUY1OWRVZk9pc1NqUUp3SThRd3dSY2owKzFuWm9sUnFEcDUyMHZ6UTdUTDgr?= =?utf-8?B?eFlVd21jSWNBRzVCeHcwZmkyTU1DK2ExTXh3YlRsR0xPMmx3TG01Y0w1TWE0?= =?utf-8?B?K3B2SEUyc3FmOXl3MUtzTU1mdkN0ZVpJajFsaWhiVS9hdFFic0JxcC9oNERY?= =?utf-8?B?MHh4dnFOdUVZVitVaFhzS2Zza3g4MVR2YUlmL1A3SnFVQ010UWtLeUcva1kr?= =?utf-8?B?d1JiaTQxSEp2aW1STDRid1lDK0lNNlJNeDZlYy9TNWI4SDAra3Ywd3VKL3kx?= =?utf-8?B?T3d4Yk56bVduelU2VW5mWDhEVUVuY205VnVlZE1vV3RUSkxSUitoUkNiSXdE?= =?utf-8?B?SmtpeUk2SGJnK2Z3UlhFbXVFdXVvR003Zk50TnNqQTR6Qzk5dCtOUm1haG1q?= =?utf-8?B?YU1VTU9sZDNjY3VaN29SSDg4LysvK2J1MUNTdXJ2Y2tZYWJSMWllYjFGdzZy?= =?utf-8?B?M1c0UkcveWdwczNUMTB0RU1tcXhwd2dSL0wvZTVGUTBjeHJZZk5JWVV2ZTVr?= =?utf-8?B?U01EeEJicm9ZYkZGUVB5cEcydlN1Q2NDMXl6QjFNcC9kejZLcU9jTGFic2px?= =?utf-8?B?SjlkeFFZVGJvNk1yTTFGY3FCbG1MQ1BSemVVbW5HZExUd25BcVFjeitaVU9D?= =?utf-8?B?cUo0c0h2em9VTGxqcG5xdDZqTlFHSmR0R3ptVlNqU3Z1d0FhaFpEZDNJTzBD?= =?utf-8?B?SXdZM2pTemJDWWxMWnB0TkhHaTloU0sxK0VPNWJTd1NyOXlFMk1kMnJJa2Vx?= =?utf-8?B?elptRDJGNUxhQnE1ZDZ4YTc2QU5YU0puU3VYY1RBZGVDUDlRU1V2R0N1UEpV?= =?utf-8?B?Y2N3bjk5YWNwNGZZNFRCcVpSbGVHYUJLbWVHckl0NStlVVA2bjd0WUlld1Nl?= =?utf-8?B?RjA0SjU1WGlxeGxZMzZBRkI1Y2libzM5Y3BuTmZxaUNsRnhUV2s0TnFNTmQ1?= =?utf-8?B?YlBIdnN5VURvRDBTZ3RNclgwbkdaTUhTZ3V3ME8yMjJvTmV0WStldVlIeHp0?= =?utf-8?Q?I1YxjDwvop9csmCNQsRUBoM=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: 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: ec7ed4a8-e661-4cd5-b22e-08dc6abca3cf X-MS-Exchange-CrossTenant-originalarrivaltime: 02 May 2024 15:29:21.3993 (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: ySGOcTrVyw7Zv02b7SYp00JHLrdKU707IdGw6y8ADa+S0lggbdVEMt58G4XM9K8K57XVlxrEVZYk9EsYM871xEiG5qCqdPkkWvjuxQtlUFI1hkBfCpSIC8ri1gsXFKgW X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR07MB7768 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+importer2=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=80.78.11.84; envelope-from=clement.mathieu--drif@eviden.com; helo=smarthost3.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, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer2=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer2=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1714663830641100003 As the SVM-capable devices will need to cache translations, we provide an first implementation. This cache uses a two-level design based on hash tables. The first level is indexed by a PASID and the second by a virtual addresse. Signed-off-by: Cl=C3=A9ment Mathieu--Drif --- tests/unit/meson.build | 1 + tests/unit/test-atc.c | 502 +++++++++++++++++++++++++++++++++++++++++ util/atc.c | 211 +++++++++++++++++ util/atc.h | 117 ++++++++++ util/meson.build | 1 + 5 files changed, 832 insertions(+) create mode 100644 tests/unit/test-atc.c create mode 100644 util/atc.c create mode 100644 util/atc.h diff --git a/tests/unit/meson.build b/tests/unit/meson.build index 228a21d03c..5c9a6fe9f4 100644 --- a/tests/unit/meson.build +++ b/tests/unit/meson.build @@ -52,6 +52,7 @@ tests =3D { 'test-interval-tree': [], 'test-xs-node': [qom], 'test-virtio-dmabuf': [meson.project_source_root() / 'hw/display/virtio-= dmabuf.c'], + 'test-atc': [] } =20 if have_system or have_tools diff --git a/tests/unit/test-atc.c b/tests/unit/test-atc.c new file mode 100644 index 0000000000..60fa60924a --- /dev/null +++ b/tests/unit/test-atc.c @@ -0,0 +1,502 @@ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License along + * with this program; if not, see . + */ + +#include "util/atc.h" + +static inline bool tlb_entry_equal(IOMMUTLBEntry *e1, IOMMUTLBEntry *e2) +{ + if (!e1 || !e2) { + return !e1 && !e2; + } + return e1->iova =3D=3D e2->iova && + e1->addr_mask =3D=3D e2->addr_mask && + e1->pasid =3D=3D e2->pasid && + e1->perm =3D=3D e2->perm && + e1->target_as =3D=3D e2->target_as && + e1->translated_addr =3D=3D e2->translated_addr; +} + +static void assert_lookup_equals(ATC *atc, IOMMUTLBEntry *target, + uint32_t pasid, hwaddr iova) +{ + IOMMUTLBEntry *result; + result =3D atc_lookup(atc, pasid, iova); + g_assert(tlb_entry_equal(result, target)); +} + +static void check_creation(uint64_t page_size, uint8_t address_width, + uint8_t levels, uint8_t level_offset, + bool should_work) { + ATC *atc =3D atc_new(page_size, address_width); + if (atc) { + if (atc->levels !=3D levels || atc->level_offset !=3D level_offset= ) { + g_assert(false); /* ATC created but invalid configuration : fa= il */ + } + atc_destroy(atc); + g_assert(should_work); + } else { + g_assert(!should_work); + } +} + +static void test_creation_parameters(void) +{ + check_creation(8, 39, 3, 9, false); + check_creation(4095, 39, 3, 9, false); + check_creation(4097, 39, 3, 9, false); + check_creation(8192, 48, 0, 0, false); + + check_creation(4096, 38, 0, 0, false); + check_creation(4096, 39, 3, 9, true); + check_creation(4096, 40, 0, 0, false); + check_creation(4096, 47, 0, 0, false); + check_creation(4096, 48, 4, 9, true); + check_creation(4096, 49, 0, 0, false); + check_creation(4096, 56, 0, 0, false); + check_creation(4096, 57, 5, 9, true); + check_creation(4096, 58, 0, 0, false); + + check_creation(16384, 35, 0, 0, false); + check_creation(16384, 36, 2, 11, true); + check_creation(16384, 37, 0, 0, false); + check_creation(16384, 46, 0, 0, false); + check_creation(16384, 47, 3, 11, true); + check_creation(16384, 48, 0, 0, false); + check_creation(16384, 57, 0, 0, false); + check_creation(16384, 58, 4, 11, true); + check_creation(16384, 59, 0, 0, false); +} + +static void test_single_entry(void) +{ + IOMMUTLBEntry entry =3D { + .iova =3D 0x123456789000ULL, + .addr_mask =3D 0xfffULL, + .pasid =3D 5, + .perm =3D IOMMU_RW, + .translated_addr =3D 0xdeadbeefULL, + }; + + ATC *atc =3D atc_new(4096, 48); + g_assert(atc); + + assert_lookup_equals(atc, NULL, entry.pasid, + entry.iova + (entry.addr_mask / 2)); + + atc_create_address_space_cache(atc, entry.pasid); + g_assert(atc_update(atc, &entry) =3D=3D 0); + + assert_lookup_equals(atc, NULL, entry.pasid + 1, + entry.iova + (entry.addr_mask / 2)); + assert_lookup_equals(atc, &entry, entry.pasid, + entry.iova + (entry.addr_mask / 2)); + + atc_destroy(atc); +} + +static void test_page_boundaries(void) +{ + static const uint32_t pasid =3D 5; + static const hwaddr page_size =3D 4096; + + /* 2 consecutive entries */ + IOMMUTLBEntry e1 =3D { + .iova =3D 0x123456789000ULL, + .addr_mask =3D page_size - 1, + .pasid =3D pasid, + .perm =3D IOMMU_RW, + .translated_addr =3D 0xdeadbeefULL, + }; + IOMMUTLBEntry e2 =3D { + .iova =3D e1.iova + page_size, + .addr_mask =3D page_size - 1, + .pasid =3D pasid, + .perm =3D IOMMU_RW, + .translated_addr =3D 0x900df00dULL, + }; + + ATC *atc =3D atc_new(page_size, 48); + + atc_create_address_space_cache(atc, e1.pasid); + /* creating the address space twice should not be a problem */ + atc_create_address_space_cache(atc, e1.pasid); + + atc_update(atc, &e1); + atc_update(atc, &e2); + + assert_lookup_equals(atc, NULL, e1.pasid, e1.iova - 1); + assert_lookup_equals(atc, &e1, e1.pasid, e1.iova); + assert_lookup_equals(atc, &e1, e1.pasid, e1.iova + e1.addr_mask); + g_assert((e1.iova + e1.addr_mask + 1) =3D=3D e2.iova); + assert_lookup_equals(atc, &e2, e2.pasid, e2.iova); + assert_lookup_equals(atc, &e2, e2.pasid, e2.iova + e2.addr_mask); + assert_lookup_equals(atc, NULL, e2.pasid, e2.iova + e2.addr_mask + 1); + + assert_lookup_equals(atc, NULL, e1.pasid + 10, e1.iova); + assert_lookup_equals(atc, NULL, e2.pasid + 10, e2.iova); + atc_destroy(atc); +} + +static void test_huge_page(void) +{ + static const uint32_t pasid =3D 5; + static const hwaddr page_size =3D 4096; + IOMMUTLBEntry e1 =3D { + .iova =3D 0x123456600000ULL, + .addr_mask =3D 0x1fffffULL, + .pasid =3D pasid, + .perm =3D IOMMU_RW, + .translated_addr =3D 0xdeadbeefULL, + }; + hwaddr addr; + + ATC *atc =3D atc_new(page_size, 48); + + atc_create_address_space_cache(atc, e1.pasid); + atc_update(atc, &e1); + + for (addr =3D e1.iova; addr <=3D e1.iova + e1.addr_mask; addr +=3D pag= e_size) { + assert_lookup_equals(atc, &e1, e1.pasid, addr); + } + /* addr is now out of the huge page */ + assert_lookup_equals(atc, NULL, e1.pasid, addr); + atc_destroy(atc); +} + +static void test_pasid(void) +{ + hwaddr addr =3D 0xaaaaaaaaa000ULL; + IOMMUTLBEntry e1 =3D { + .iova =3D addr, + .addr_mask =3D 0xfffULL, + .pasid =3D 8, + .perm =3D IOMMU_RW, + .translated_addr =3D 0xdeadbeefULL, + }; + IOMMUTLBEntry e2 =3D { + .iova =3D addr, + .addr_mask =3D 0xfffULL, + .pasid =3D 2, + .perm =3D IOMMU_RW, + .translated_addr =3D 0xb001ULL, + }; + uint16_t i; + + ATC *atc =3D atc_new(4096, 48); + + atc_create_address_space_cache(atc, e1.pasid); + atc_create_address_space_cache(atc, e2.pasid); + atc_update(atc, &e1); + atc_update(atc, &e2); + + for (i =3D 0; i <=3D MAX(e1.pasid, e2.pasid) + 1; ++i) { + if (i =3D=3D e1.pasid || i =3D=3D e2.pasid) { + continue; + } + assert_lookup_equals(atc, NULL, i, addr); + } + assert_lookup_equals(atc, &e1, e1.pasid, addr); + assert_lookup_equals(atc, &e1, e1.pasid, addr); + atc_destroy(atc); +} + +static void test_large_address(void) +{ + IOMMUTLBEntry e1 =3D { + .iova =3D 0xaaaaaaaaa000ULL, + .addr_mask =3D 0xfffULL, + .pasid =3D 8, + .perm =3D IOMMU_RW, + .translated_addr =3D 0x5eeeeeedULL, + }; + IOMMUTLBEntry e2 =3D { + .iova =3D 0x1f00baaaaabf000ULL, + .addr_mask =3D 0xfffULL, + .pasid =3D e1.pasid, + .perm =3D IOMMU_RW, + .translated_addr =3D 0xdeadbeefULL, + }; + + ATC *atc =3D atc_new(4096, 57); + + atc_create_address_space_cache(atc, e1.pasid); + atc_update(atc, &e1); + atc_update(atc, &e2); + + assert_lookup_equals(atc, &e1, e1.pasid, e1.iova); + assert_lookup_equals(atc, &e2, e2.pasid, e2.iova); + atc_destroy(atc); +} + +static void test_bigger_page(void) +{ + IOMMUTLBEntry e1 =3D { + .iova =3D 0xaabbccdde000ULL, + .addr_mask =3D 0x1fffULL, + .pasid =3D 1, + .perm =3D IOMMU_RW, + .translated_addr =3D 0x5eeeeeedULL, + }; + hwaddr i; + + ATC *atc =3D atc_new(8192, 43); + + atc_create_address_space_cache(atc, e1.pasid); + atc_update(atc, &e1); + + i =3D e1.iova & (~e1.addr_mask); + assert_lookup_equals(atc, NULL, e1.pasid, i - 1); + while (i <=3D e1.iova + e1.addr_mask) { + assert_lookup_equals(atc, &e1, e1.pasid, i); + ++i; + } + assert_lookup_equals(atc, NULL, e1.pasid, i); + atc_destroy(atc); +} + +static void test_unknown_pasid(void) +{ + IOMMUTLBEntry e1 =3D { + .iova =3D 0xaabbccfff000ULL, + .addr_mask =3D 0xfffULL, + .pasid =3D 1, + .perm =3D IOMMU_RW, + .translated_addr =3D 0x5eeeeeedULL, + }; + + ATC *atc =3D atc_new(4096, 48); + g_assert(atc_update(atc, &e1) !=3D 0); + assert_lookup_equals(atc, NULL, e1.pasid, e1.iova); +} + +static void test_invalidation(void) +{ + static uint64_t page_size =3D 4096; + IOMMUTLBEntry e1 =3D { + .iova =3D 0xaabbccddf000ULL, + .addr_mask =3D 0xfffULL, + .pasid =3D 1, + .perm =3D IOMMU_RW, + .translated_addr =3D 0x5eeeeeedULL, + }; + IOMMUTLBEntry e2 =3D { + .iova =3D 0xffe00000ULL, + .addr_mask =3D 0x1fffffULL, + .pasid =3D 1, + .perm =3D IOMMU_RW, + .translated_addr =3D 0xb000001ULL, + }; + IOMMUTLBEntry e3; + + ATC *atc =3D atc_new(page_size , 48); + atc_create_address_space_cache(atc, e1.pasid); + + atc_update(atc, &e1); + assert_lookup_equals(atc, &e1, e1.pasid, e1.iova); + atc_invalidate(atc, &e1); + assert_lookup_equals(atc, NULL, e1.pasid, e1.iova); + + atc_update(atc, &e1); + atc_update(atc, &e2); + assert_lookup_equals(atc, &e1, e1.pasid, e1.iova); + assert_lookup_equals(atc, &e2, e2.pasid, e2.iova); + atc_invalidate(atc, &e2); + assert_lookup_equals(atc, &e1, e1.pasid, e1.iova); + assert_lookup_equals(atc, NULL, e2.pasid, e2.iova); + + /* invalidate a huge page by invalidating a small region */ + for (hwaddr addr =3D e2.iova; addr <=3D (e2.iova + e2.addr_mask); + addr +=3D page_size) { + atc_update(atc, &e2); + assert_lookup_equals(atc, &e2, e2.pasid, e2.iova); + e3 =3D (IOMMUTLBEntry){ + .iova =3D addr, + .addr_mask =3D page_size - 1, + .pasid =3D e2.pasid, + .perm =3D IOMMU_RW, + .translated_addr =3D 0, + }; + atc_invalidate(atc, &e3); + assert_lookup_equals(atc, NULL, e2.pasid, e2.iova); + } +} + +static void test_delete_address_space_cache(void) +{ + static uint64_t page_size =3D 4096; + IOMMUTLBEntry e1 =3D { + .iova =3D 0xaabbccddf000ULL, + .addr_mask =3D 0xfffULL, + .pasid =3D 1, + .perm =3D IOMMU_RW, + .translated_addr =3D 0x5eeeeeedULL, + }; + IOMMUTLBEntry e2 =3D { + .iova =3D e1.iova, + .addr_mask =3D 0xfffULL, + .pasid =3D 2, + .perm =3D IOMMU_RW, + .translated_addr =3D 0x5eeeeeedULL, + }; + + ATC *atc =3D atc_new(page_size , 48); + atc_create_address_space_cache(atc, e1.pasid); + + atc_update(atc, &e1); + assert_lookup_equals(atc, &e1, e1.pasid, e1.iova); + atc_invalidate(atc, &e2); /* unkown pasid : is a nop*/ + assert_lookup_equals(atc, &e1, e1.pasid, e1.iova); + + atc_create_address_space_cache(atc, e2.pasid); + atc_update(atc, &e2); + assert_lookup_equals(atc, &e1, e1.pasid, e1.iova); + assert_lookup_equals(atc, &e2, e2.pasid, e2.iova); + atc_invalidate(atc, &e1); + /* e1 has been removed but e2 is still there */ + assert_lookup_equals(atc, NULL, e1.pasid, e1.iova); + assert_lookup_equals(atc, &e2, e2.pasid, e2.iova); + + atc_update(atc, &e1); + assert_lookup_equals(atc, &e1, e1.pasid, e1.iova); + assert_lookup_equals(atc, &e2, e2.pasid, e2.iova); + + atc_delete_address_space_cache(atc, e2.pasid); + assert_lookup_equals(atc, &e1, e1.pasid, e1.iova); + assert_lookup_equals(atc, NULL, e2.pasid, e2.iova); +} + +static void test_invalidate_entire_address_space(void) +{ + static uint64_t page_size =3D 4096; + IOMMUTLBEntry e1 =3D { + .iova =3D 0x1000ULL, + .addr_mask =3D 0xfffULL, + .pasid =3D 1, + .perm =3D IOMMU_RW, + .translated_addr =3D 0x5eedULL, + }; + IOMMUTLBEntry e2 =3D { + .iova =3D 0xfffffffff000ULL, + .addr_mask =3D 0xfffULL, + .pasid =3D 1, + .perm =3D IOMMU_RW, + .translated_addr =3D 0xbeefULL, + }; + IOMMUTLBEntry e3 =3D { + .iova =3D 0, + .addr_mask =3D 0xffffffffffffffffULL, + .pasid =3D 1, + .perm =3D IOMMU_RW, + .translated_addr =3D 0, + }; + + ATC *atc =3D atc_new(page_size , 48); + atc_create_address_space_cache(atc, e1.pasid); + + atc_update(atc, &e1); + atc_update(atc, &e2); + assert_lookup_equals(atc, &e1, e1.pasid, e1.iova); + assert_lookup_equals(atc, &e2, e2.pasid, e2.iova); + atc_invalidate(atc, &e3); + /* e1 has been removed but e2 is still there */ + assert_lookup_equals(atc, NULL, e1.pasid, e1.iova); + assert_lookup_equals(atc, NULL, e2.pasid, e2.iova); + + atc_destroy(atc); +} + +static void test_reset(void) +{ + static uint64_t page_size =3D 4096; + IOMMUTLBEntry e1 =3D { + .iova =3D 0x1000ULL, + .addr_mask =3D 0xfffULL, + .pasid =3D 1, + .perm =3D IOMMU_RW, + .translated_addr =3D 0x5eedULL, + }; + IOMMUTLBEntry e2 =3D { + .iova =3D 0xfffffffff000ULL, + .addr_mask =3D 0xfffULL, + .pasid =3D 2, + .perm =3D IOMMU_RW, + .translated_addr =3D 0xbeefULL, + }; + + ATC *atc =3D atc_new(page_size , 48); + atc_create_address_space_cache(atc, e1.pasid); + atc_create_address_space_cache(atc, e2.pasid); + atc_update(atc, &e1); + atc_update(atc, &e2); + + assert_lookup_equals(atc, &e1, e1.pasid, e1.iova); + assert_lookup_equals(atc, &e2, e2.pasid, e2.iova); + + atc_reset(atc); + + assert_lookup_equals(atc, NULL, e1.pasid, e1.iova); + assert_lookup_equals(atc, NULL, e2.pasid, e2.iova); +} + +static void test_get_max_number_of_pages(void) +{ + static uint64_t page_size =3D 4096; + hwaddr base =3D 0xc0fee000; /* aligned */ + ATC *atc =3D atc_new(page_size , 48); + g_assert(atc_get_max_number_of_pages(atc, base, page_size / 2) =3D=3D = 1); + g_assert(atc_get_max_number_of_pages(atc, base, page_size) =3D=3D 1); + g_assert(atc_get_max_number_of_pages(atc, base, page_size + 1) =3D=3D = 2); + + g_assert(atc_get_max_number_of_pages(atc, base + 10, 1) =3D=3D 1); + g_assert(atc_get_max_number_of_pages(atc, base + 10, page_size - 10) = =3D=3D 1); + g_assert(atc_get_max_number_of_pages(atc, base + 10, + page_size - 10 + 1) =3D=3D 2); + g_assert(atc_get_max_number_of_pages(atc, base + 10, + page_size - 10 + 2) =3D=3D 2); + + g_assert(atc_get_max_number_of_pages(atc, base + page_size - 1, 1) =3D= =3D 1); + g_assert(atc_get_max_number_of_pages(atc, base + page_size - 1, 2) =3D= =3D 2); + g_assert(atc_get_max_number_of_pages(atc, base + page_size - 1, 3) =3D= =3D 2); + + g_assert(atc_get_max_number_of_pages(atc, base + 10, page_size * 20) = =3D=3D 21); + g_assert(atc_get_max_number_of_pages(atc, base + 10, + (page_size * 20) + (page_size - 1= 0)) + =3D=3D 21); + g_assert(atc_get_max_number_of_pages(atc, base + 10, + (page_size * 20) + + (page_size - 10 + 1)) =3D=3D 22); +} + +int main(int argc, char **argv) +{ + g_test_init(&argc, &argv, NULL); + g_test_add_func("/atc/test_creation_parameters", test_creation_paramet= ers); + g_test_add_func("/atc/test_single_entry", test_single_entry); + g_test_add_func("/atc/test_page_boundaries", test_page_boundaries); + g_test_add_func("/atc/test_huge_page", test_huge_page); + g_test_add_func("/atc/test_pasid", test_pasid); + g_test_add_func("/atc/test_large_address", test_large_address); + g_test_add_func("/atc/test_bigger_page", test_bigger_page); + g_test_add_func("/atc/test_unknown_pasid", test_unknown_pasid); + g_test_add_func("/atc/test_invalidation", test_invalidation); + g_test_add_func("/atc/test_delete_address_space_cache", + test_delete_address_space_cache); + g_test_add_func("/atc/test_invalidate_entire_address_space", + test_invalidate_entire_address_space); + g_test_add_func("/atc/test_reset", test_reset); + g_test_add_func("/atc/test_get_max_number_of_pages", + test_get_max_number_of_pages); + return g_test_run(); +} diff --git a/util/atc.c b/util/atc.c new file mode 100644 index 0000000000..3332d7e2b8 --- /dev/null +++ b/util/atc.c @@ -0,0 +1,211 @@ +/* + * QEMU emulation of an ATC + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License along + * with this program; if not, see . + */ + +#include "util/atc.h" + + +#define PAGE_TABLE_ENTRY_SIZE 8 + +/* a pasid is hashed using the identity function */ +static guint atc_pasid_key_hash(gconstpointer v) +{ + return (guint)(uintptr_t)v; /* pasid */ +} + +/* pasid equality */ +static gboolean atc_pasid_key_equal(gconstpointer v1, gconstpointer v2) +{ + return v1 =3D=3D v2; +} + +/* Hash function for IOTLB entries */ +static guint atc_addr_key_hash(gconstpointer v) +{ + hwaddr addr =3D (hwaddr)v; + return (guint)((addr >> 32) ^ (addr & 0xffffffffU)); +} + +/* Equality test for IOTLB entries */ +static gboolean atc_addr_key_equal(gconstpointer v1, gconstpointer v2) +{ + return (hwaddr)v1 =3D=3D (hwaddr)v2; +} + +static void atc_address_space_free(void *as) +{ + g_hash_table_unref(as); +} + +/* return log2(val), or UINT8_MAX if val is not a power of 2 */ +static uint8_t ilog2(uint64_t val) +{ + uint8_t result =3D 0; + while (val !=3D 1) { + if (val & 1) { + return UINT8_MAX; + } + + val >>=3D 1; + result +=3D 1; + } + return result; +} + +ATC *atc_new(uint64_t page_size, uint8_t address_width) +{ + ATC *atc; + uint8_t log_page_size =3D ilog2(page_size); + /* number of bits each used to store all the intermediate indexes */ + uint64_t addr_lookup_indexes_size; + + if (log_page_size =3D=3D UINT8_MAX) { + return NULL; + } + /* + * We only support page table entries of 8 (PAGE_TABLE_ENTRY_SIZE) byt= es + * log2(page_size / 8) =3D log2(page_size) - 3 + * is the level offset + */ + if (log_page_size <=3D 3) { + return NULL; + } + + atc =3D g_new0(ATC, 1); + atc->address_spaces =3D g_hash_table_new_full(atc_pasid_key_hash, + atc_pasid_key_equal, + NULL, atc_address_space_fr= ee); + atc->level_offset =3D log_page_size - 3; + /* at this point, we know that page_size is a power of 2 */ + atc->min_addr_mask =3D page_size - 1; + addr_lookup_indexes_size =3D address_width - log_page_size; + if ((addr_lookup_indexes_size % atc->level_offset) !=3D 0) { + goto error; + } + atc->levels =3D addr_lookup_indexes_size / atc->level_offset; + atc->page_size =3D page_size; + return atc; + +error: + g_free(atc); + return NULL; +} + +static inline GHashTable *atc_get_address_space_cache(ATC *atc, uint32_t p= asid) +{ + return g_hash_table_lookup(atc->address_spaces, + (gconstpointer)(uintptr_t)pasid); +} + +void atc_create_address_space_cache(ATC *atc, uint32_t pasid) +{ + GHashTable *as_cache; + + as_cache =3D atc_get_address_space_cache(atc, pasid); + if (!as_cache) { + as_cache =3D g_hash_table_new_full(atc_addr_key_hash, + atc_addr_key_equal, + NULL, g_free); + g_hash_table_replace(atc->address_spaces, + (gpointer)(uintptr_t)pasid, as_cache); + } +} + +void atc_delete_address_space_cache(ATC *atc, uint32_t pasid) +{ + g_hash_table_remove(atc->address_spaces, (gpointer)(uintptr_t)pasid); +} + +int atc_update(ATC *atc, IOMMUTLBEntry *entry) +{ + IOMMUTLBEntry *value; + GHashTable *as_cache =3D atc_get_address_space_cache(atc, entry->pasid= ); + if (!as_cache) { + return -ENODEV; + } + value =3D g_memdup2(entry, sizeof(*value)); + g_hash_table_replace(as_cache, (gpointer)(entry->iova), value); + return 0; +} + +IOMMUTLBEntry *atc_lookup(ATC *atc, uint32_t pasid, hwaddr addr) +{ + IOMMUTLBEntry *entry; + hwaddr mask =3D atc->min_addr_mask; + hwaddr key =3D addr & (~mask); + GHashTable *as_cache =3D atc_get_address_space_cache(atc, pasid); + + if (!as_cache) { + return NULL; + } + + /* + * Iterate over the possible page sizes and try to find a hit + */ + for (uint8_t level =3D 0; level < atc->levels; ++level) { + entry =3D g_hash_table_lookup(as_cache, (gconstpointer)key); + if (entry) { + return entry; + } + mask =3D (mask << atc->level_offset) | ((1 << atc->level_offset) -= 1); + key =3D addr & (~mask); + } + + return NULL; +} + +static gboolean atc_invalidate_entry_predicate(gpointer key, gpointer valu= e, + gpointer user_data) +{ + IOMMUTLBEntry *entry =3D (IOMMUTLBEntry *)value; + IOMMUTLBEntry *target =3D (IOMMUTLBEntry *)user_data; + hwaddr target_mask =3D ~target->addr_mask; + hwaddr entry_mask =3D ~entry->addr_mask; + return ((target->iova & target_mask) =3D=3D (entry->iova & target_mask= )) || + ((target->iova & entry_mask) =3D=3D (entry->iova & entry_mask)); +} + +void atc_invalidate(ATC *atc, IOMMUTLBEntry *entry) +{ + GHashTable *as_cache =3D atc_get_address_space_cache(atc, entry->pasid= ); + if (!as_cache) { + return; + } + g_hash_table_foreach_remove(as_cache, + atc_invalidate_entry_predicate, + entry); +} + +void atc_destroy(ATC *atc) +{ + g_hash_table_unref(atc->address_spaces); +} + +size_t atc_get_max_number_of_pages(ATC *atc, hwaddr addr, size_t length) +{ + hwaddr page_mask =3D ~(atc->min_addr_mask); + size_t result =3D (length / atc->page_size); + if ((((addr & page_mask) + length - 1) & page_mask) !=3D + ((addr + length - 1) & page_mask)) { + result +=3D 1; + } + return result + (length % atc->page_size !=3D 0 ? 1 : 0); +} + +void atc_reset(ATC *atc) +{ + g_hash_table_remove_all(atc->address_spaces); +} diff --git a/util/atc.h b/util/atc.h new file mode 100644 index 0000000000..8be95f5cca --- /dev/null +++ b/util/atc.h @@ -0,0 +1,117 @@ +/* + * QEMU emulation of an ATC + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License along + * with this program; if not, see . + */ + +#ifndef UTIL_ATC_H +#define UTIL_ATC_H + +#include "qemu/osdep.h" +#include "exec/memory.h" + +typedef struct ATC { + GHashTable *address_spaces; /* Key : pasid, value : GHashTable */ + hwaddr min_addr_mask; + uint64_t page_size; + uint8_t levels; + uint8_t level_offset; +} ATC; + +/* + * atc_new: Create an ATC. + * + * Return an ATC or NULL if the creation failed + * + * @page_size: #PCIDevice doing the memory access + * @address_width: width of the virtual addresses used by the IOMMU (in bi= ts) + */ +ATC *atc_new(uint64_t page_size, uint8_t address_width); + +/* + * atc_update: Insert or update an entry in the cache + * + * Return 0 if the operation succeeds, a negative error code otherwise + * + * The insertion will fail if the address space associated with this pasid + * has not been created with atc_create_address_space_cache + * + * @atc: the ATC to update + * @entry: the tlb entry to insert into the cache + */ +int atc_update(ATC *atc, IOMMUTLBEntry *entry); + +/* + * atc_create_address_space_cache: delare a new address space + * identified by a PASID + * + * @atc: the ATC to update + * @pasid: the pasid of the address space to be created + */ +void atc_create_address_space_cache(ATC *atc, uint32_t pasid); + +/* + * atc_delete_address_space_cache: delete an address space + * identified by a PASID + * + * @atc: the ATC to update + * @pasid: the pasid of the address space to be deleted + */ +void atc_delete_address_space_cache(ATC *atc, uint32_t pasid); + +/* + * atc_lookup: query the cache in a given address space + * + * @atc: the ATC to query + * @pasid: the pasid of the address space to query + * @addr: the virtual address to translate + */ +IOMMUTLBEntry *atc_lookup(ATC *atc, uint32_t pasid, hwaddr addr); + +/* + * atc_invalidate: invalidate an entry in the cache + * + * @atc: the ATC to update + * @entry: the entry to invalidate + */ +void atc_invalidate(ATC *atc, IOMMUTLBEntry *entry); + +/* + * atc_destroy: delete an ATC + * + * @atc: the cache to be deleted + */ +void atc_destroy(ATC *atc); + +/* + * atc_get_max_number_of_pages: get the number of pages a memory operation + * will access if all the pages concerned have the minimum size. + * + * This function can be used to determine the size of the result array to = be + * allocated when issuing an ATS request. + * + * @atc: the cache + * @addr: start address + * @length: number of bytes accessed from addr + */ +size_t atc_get_max_number_of_pages(ATC *atc, hwaddr addr, size_t length); + +/* + * atc_reset: invalidates all the entries stored in the ATC + * + * @atc: the cache + */ +void atc_reset(ATC *atc); + +#endif diff --git a/util/meson.build b/util/meson.build index 0ef9886be0..a2e0e9e5d7 100644 --- a/util/meson.build +++ b/util/meson.build @@ -94,6 +94,7 @@ if have_block util_ss.add(files('hbitmap.c')) util_ss.add(files('hexdump.c')) util_ss.add(files('iova-tree.c')) + util_ss.add(files('atc.c')) util_ss.add(files('iov.c', 'uri.c')) util_ss.add(files('nvdimm-utils.c')) util_ss.add(files('block-helpers.c')) --=20 2.44.0 From nobody Sun Apr 12 13:40:22 2026 Delivered-To: importer2@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+importer2=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=1714663796; cv=pass; d=zohomail.com; s=zohoarc; b=Y2MsINZG1s63ICrJ86EIoHuZFeAAnWDbC2D/yZPH5/ymM56GcFJ1qJ2pLuWsm4LaS6WcHULPLcHiGgpotXmOB+DkjGtvlsUKnsdxJe35g8Dj6MpAR+PMEDE3HOuAUO8bDOdTD2R6fVTx4o8rIz2/jQJR0uP+89X06fpkO98kM0M= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1714663796; h=Content-ID: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=w3ksL9XnsGogkygAQJlBpy6EUuIt8oHQXnFG1VyOXcw=; b=dIi7+1eCbGeufGrPSpU3a9yqKmJ12wqvfc9pklodVfAbg6gck897j9eu80WK4Crl0j9OwYVJSZkZwfJMAkwK47RuKtWHxZQoa7uriGMgaz+4NINDhwUuIuj0pjtSYHlYJsYOEDzFQXMXlF/nuz5y0o8HoQW1zai16tQdd4P+zgA= 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+importer2=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 1714663796755725.3671730342173; Thu, 2 May 2024 08:29:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s2YNK-0003gO-9H; Thu, 02 May 2024 11:29:34 -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 1s2YNH-0003dt-5G for qemu-devel@nongnu.org; Thu, 02 May 2024 11:29:31 -0400 Received: from smarthost3.eviden.com ([80.78.11.84]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1s2YND-0005zE-4b for qemu-devel@nongnu.org; Thu, 02 May 2024 11:29:30 -0400 Received: from mail-am6eur05lp2105.outbound.protection.outlook.com (HELO EUR05-AM6-obe.outbound.protection.outlook.com) ([104.47.18.105]) by smarthost3.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2024 17:29:23 +0200 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by AS8PR07MB7768.eurprd07.prod.outlook.com (2603:10a6:20b:351::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.29; Thu, 2 May 2024 15:29:22 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.7519.035; Thu, 2 May 2024 15:29:22 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1714663767; x=1746199767; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=w3ksL9XnsGogkygAQJlBpy6EUuIt8oHQXnFG1VyOXcw=; b=pfO/31z8JWPAAzxInLbZmxBXQtvk23g/Y3COdm3ijVowndUoxeXI2R+F 7EEyWjMdIUuo9I3Zk7qheNTlJPBv4BoxQhOCv4mRChy7jLk6v3LRD6RM0 QSzN47u5C87Dwz1ID0sTPxkbFv9JDcwnJcVl1KyJRdI+4duc+sfZ/uFfV LI/PBWYvGOy6dhF7ZoGNggS9h3rwvW/cgsqFSw0/HrumDuP+OoOajDbnl B+ksq4NtVUWGw4ZzfMUUhyjmggbFc+a4S5OIUprUV0hL00RbBihCQv8zt fh7q2BWu+yCCjL14ukQHox3iBEo4cle5/mO+H6j3/TRa8MIULczAz0dVY A==; X-IronPort-AV: E=Sophos;i="6.07,247,1708383600"; d="scan'208";a="11730621" X-MGA-submission: =?us-ascii?q?MDFZJjiiO5iR60E78Yz1bCCO/nXmMpmgiLCEVZ?= =?us-ascii?q?F3lU8ff+szYowitUEo2zkIrjn1d0eR4i8IEYPV1GUbKqgK7yAWTAh0fQ?= =?us-ascii?q?ojzvtp2eetHEuvCCGgpH/ciATvjGrW3mpZ7wvpucgQluLo3U5haJ3jjo?= =?us-ascii?q?TaddFezN2B+05cilPp/FL3GA=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GORuSqUg3eFA4wRkV9Z4zXR5Ih9aMPvmu7ErqxnEKj015N//v7rcDFQI4MrlrAB6FlBE9zBJcVBSQvmRCOXFDQuu4iyH/+5rwfd7zHoKNxakC481P+YFOx1HvDmcmQk14TZ5p+agYa8GwQQZF3n8Eg9l9RND8fQ+ezacbIRpePeN4RdmIor91/EPvMaknxM8SjrrKOVqjrx5j3SWmpiDMRvx5Cs0zO4a+Zl7marTvfpfJJMV4VZJbvESs2mffJu91S2wiCfbAh3vI7EUb3aIrBfKJR5LndkaP7Z7n3463zg+h0OCwtikwUeIsQTxSUK7RR3VnZS68WSA5FW42fOhDw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=w3ksL9XnsGogkygAQJlBpy6EUuIt8oHQXnFG1VyOXcw=; b=XTUiN9riMOoRj/u2sdxkMX3UPMrw57YMyq929pvRdc6fs4zgDwmOt5bJpLK+ShfpvOCsOQHAIGFudrH8bqqspgbpFVfeGAu7MKH3OkLGZcEavVcxOFl5LoON7nmQnbPf7w1jyBUNFHzZYvenKbBN1x9VcImaVUpK6B2JoaaKnScbWOxOOLTDuQZpImwv1GAaYK41hRB3K7yT09vVCrXbWg56onsAU5EGuR6Gv7hX0pH5qqCRMKrVobLAVWMOAWNsv8eh+/Uff1eHphXctQgBTt2x2jwJ4YHuYHQmpab93yO7loWZIHgv2kI7dUuvgTeSyCYlnRBE+ge+KM1m5skDCg== 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 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v1 21/24] memory: add an API for ATS support Thread-Topic: [PATCH ats_vtd v1 21/24] memory: add an API for ATS support Thread-Index: AQHanKWBI/xSV/efz0Sgz6TcWG7H3A== Date: Thu, 2 May 2024 15:29:21 +0000 Message-ID: <20240502152810.187492-22-clement.mathieu--drif@eviden.com> References: <20240502152810.187492-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240502152810.187492-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_|AS8PR07MB7768:EE_ x-ms-office365-filtering-correlation-id: 7cf05623-a7ed-4a51-8e7a-08dc6abca427 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230031|1800799015|366007|376005|38070700009; x-microsoft-antispam-message-info: =?utf-8?B?TUZHbnQvUFhzY1JkU1U1dW9vaElvZitXUjUrTmc5OGh2UjdIblZVQlRZYjNX?= =?utf-8?B?VWNCT0dldjJhRXU2dXlWWW83Nk9kUmwzS3VQNnYrMjExZzFPTFZ6RDFVSFVR?= =?utf-8?B?SXJVbml5Y2I5Tm14OTF5eEFvQ1hYUHZpVlBOTHFuMVhrbUJTamtyRjIxWjBl?= =?utf-8?B?MWtSQ25KOURrRlJvaW1qa0JwNWx5cUJkbDFkZEVGWFZ3SFg2dzBqMVFUTDU4?= =?utf-8?B?WURDTHNNdDZjbWtLcjMxbmdhb2xKOEpobUdnZE9zYUcxTHl5NGpGZW9zbndU?= =?utf-8?B?YTFCc2hrbmdYVFRpcXpDQVJ2VGJJVWpaMUZkNnp2bkVDb2pQVnVETUJOOUhV?= =?utf-8?B?cXlyWTByTzVFa2cvQ1h2V3pMWXFMOEh1U1E1VGlTcnZ6d2VRMHppVzZ1bmw1?= =?utf-8?B?RkpDZjNabWpGd3ZrbkJEOUNWbFRaS2gvbnFKSjV5YXdBaU5zUEVaVU9FM3F1?= =?utf-8?B?NHBmUlcvSHVCSm1TdVVWSkl4MlpDYjFtSjl2czNhSndhVzJzMkVHSGJyem1u?= =?utf-8?B?R0FGaGNuNGZCRm1iVVNoL285Nmg1QVhRcGNtUDBsZjFINWw1OFB4WksybnNi?= =?utf-8?B?TkMrTFRXSnpsR0cyTFNSZWJ3UCtXRnNJa2NoUFN2ZU9ISnZYU3hIUGRrcjd1?= =?utf-8?B?TmpKd0wrTXR0WEIxWlRtZVZ1ZGJQT1YzT1VpWk5xamVpbGFRL0lMK21xbGND?= =?utf-8?B?T2xtaHFDYU5WRmIvaW9mTVhEYmdZckRKMUlyZWRiMkxXRk1uRFVXYml5b0I3?= =?utf-8?B?bGhXb01lNXlKWkx1aXhKYVdRZ3FkSDlKUldvaDF5dEY4U0NaZXNoVUFtTGIv?= =?utf-8?B?UFhMejUxMm9GR1Jqc09BL01Xc3B1QkttVFZyeU45SU01ZGlwVWtTaU40N0Ez?= =?utf-8?B?QnFUb2Z6OHBmU2djWEppb3dFci9KQVJNMG9rTWRhbUFtZlM4MmhuVGs3MGR4?= =?utf-8?B?SzJQWUdqV1dSdEFWVGVIbkhmMGNkVlg4Mjc3VjhPeUdLNXBiSGM5L1hyRldi?= =?utf-8?B?YmREMXZlelIyTU1Wc0hDTWtqVC9KUmJLR2xwcHdnOGNMTWxBaHQ4ak9hMXAw?= =?utf-8?B?QksxUzJ1UkFyRmlNYjFsV3BOR1ZUZGljOHdGNEIrV3VQd0JGTGtuRk10Umtp?= =?utf-8?B?QjVrOFlGdzlLd2U3TmU5MTVGWFk3T09GZExaWWxQVjNxQ040eWFzZ2YwcWRE?= =?utf-8?B?YU9MN0VuNFlSY3ppbFlBNE5laW9EOHQ3TTJDakpNMmhZQW5JZHNzbGZDMFlW?= =?utf-8?B?TUNCK3lkakRtZVF5S2hJcDFDZEJTcXp4WEJ3QTB1cGVsZVF6UkZaUld1dm8y?= =?utf-8?B?T3Q4WDJMQWxic2FQT0FrMmZOVkR5YzFZT3NRYTFCeHNoVEFGRXVGWFlhWXlT?= =?utf-8?B?bjJNZjVCTGxuNGNPaktQYWxBWXZiaWVFWEM4a3NKL0hMekdIYXdLUEtHcmNF?= =?utf-8?B?VkE5SlpnOGZoNWRwTnJwUWpEL3ZTQkdOY1hXQUg2a0xWMGV4cGlpVVA1L0h4?= =?utf-8?B?NGhRK3dwM1BlSmNYakgvZGZTNmpqRjVwZTkwQXR5eG4vVVY1MHQ4anYwTm9M?= =?utf-8?B?S2dCU3JwUVRtYmh4YzR6b1Y3U2gvTllMSE9vODVwbEJRSjlNc01OYzNuT0l0?= =?utf-8?B?dEhiVFFQL3FtbjcwdDFjQmtIK0pSWHJVNFN6QkdMZm1iNFgyZnAwRStoNlR2?= =?utf-8?B?ZjRKU0gwVzlZWktyUEZMaW15cWQrYzBOZklNd2MvdlVONkIrMnVCYVA1UlFT?= =?utf-8?B?MDJLYXAvUmJqS2lRS3hLYU1NdUNWUUtGdWQyK2JmeVNkczdMek5Lc0Q5Vkd0?= =?utf-8?B?WGJmcGsvT3RGeEVVTEZXdz09?= 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:(13230031)(1800799015)(366007)(376005)(38070700009); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UkZwRVRFRUMvQ05MQjFrU3pqNERVRUZ5ZURVay9leDFRcUMxYVJrRkFwK3JX?= =?utf-8?B?ejV5c3ZpM0VyTHQ4NllsZUkzNmxlazVtaDVndEtjdUp5K3ByUzk2VnlmaXNL?= =?utf-8?B?azdxYmJtTEl2cFJmWE8yUUpOTEt5bUJEa3FOZHcxcDhLWE5ESjNydE15U2g3?= =?utf-8?B?SXJmSGNMV3BSdTlEMUNHdWVrbXdCd1BvYzlLc1VIZVB1KzBHczd0d0UyMHk3?= =?utf-8?B?elo4NUdlbEVleWhoVG9QNHhKRUdORW9DQ01nWU1xeHBiRTAwelRKUlFRM2ph?= =?utf-8?B?T1k4TjIrWk1qNTc4WWVRVUd2ODRrZnM0NlhXcEJiL0RtWEg2ak5MK2xEeHFw?= =?utf-8?B?aysyQ21HblFCejJBUDd5bGFmeHRSQ3VJaE9QZDAyOVc5UTJ0VSs2R0FMYkpj?= =?utf-8?B?eUtWTUlNSU0yZ3RIaUJXeWtleHhPSVlYUEVIaTZrOHVzcHNlbUNwZi85QkR5?= =?utf-8?B?Q3dXc3gvT3Z0V2VHWTNibWhwYTEySEM3U2U1SmZLOVlpQWhkMU4vcDhhOTc2?= =?utf-8?B?dFdiM2puVyt2OFJrMkRCWnVXQTdCcFc4ODN1NkNZSnRFdUZ0R0dydi9XdFpi?= =?utf-8?B?N2ZWZE5iUS82STdpTlN2UWp3SkJBWU9Va1c5ZGN6b0RoQkhPWFRvb25qSDZY?= =?utf-8?B?NG1kWmdmYng4YWQwbzJtaW8zbHR4cVJCdTR1RTh6Z0JDS05OZVRLVjBvUmhq?= =?utf-8?B?TkM0eDdHdUVmT2doMWZFbE5ieVdoUGxtc2hpT3MzQVVvSG9Ra1lqaTQ5Vy9Y?= =?utf-8?B?Y1Z0MERtRnlUcERTN1pJYkswdm9uN0xiN2hCd1UwKzNEY1k2QXQ0eGtrVDFC?= =?utf-8?B?UE5XR3hScVNleC93TGtjY01ZWFRoSUxUSUkvcXZnaEN2aFB6ZGV1V2FsTFRl?= =?utf-8?B?Rmh2cmphQndMTHd4bG9GRkxnZmUwNTdObTdiSi83UnlLQmRWbW85MVBIc2M4?= =?utf-8?B?YmJGQU1mQXJXMzVPeWROVklpazBxa05HTmltRHdGK3owWUlRL043elhpQUZ6?= =?utf-8?B?UVZQYkFveUpuTzUxUlY0OGhLYmZlODlvR1Ivd3Vob3o1OW85R0RJYUtPTmE5?= =?utf-8?B?R3dLVjFoQkN2MFFYSHJWNUNYSklvK0lvSTBFYUtzaDVYSnF0dzFPd1RFY1pp?= =?utf-8?B?VEdXS1RMelgyR2NrYzlmRm9QOGxqNDAybkIvOFpXeC9xeThnZlBHRWJOYlBS?= =?utf-8?B?b1lycllHdElJTGJaT3pvZzNBTjhzdEZYZzFvMDJLWnhIWjlZL0hidFVHWVo0?= =?utf-8?B?Qks0UUxubjFsMlZWN0pLZG40elRTZTZad1FhdHlPcWwweC9Lanp2TGVHakQz?= =?utf-8?B?VlFLSW5Ld3F0MExNRnVTd0U0Vm0wV3pDZWhHQWhWejY2VzZ5ZVA5dk1Vajdj?= =?utf-8?B?ZS90cUY3aEVqN2VSekZwMUZrS2sxTC9yUjE1M0ZyR3JETThGRmVDVmN5VVhM?= =?utf-8?B?R1IxR20vbnRrNHV0N24rM09BSERvK3lTSE40Z1gxaGg3ajR3SWFWY1NJMGR4?= =?utf-8?B?QS9xMlBPTEpxeFhURWQ0VW1IcUxYejdpb1Jvb2dIS3BuUkpBSkVVNU53Wm1S?= =?utf-8?B?RTkvQTZnTzRTSEVMUnVFSWZ3a3VkS1BXZ3M2UG1tZ3Z3a1ZsRjNmWVI0Mml4?= =?utf-8?B?UGxhbVZFR3BKUG5ITlJRWWVLNzF6cGZCa2R3cmdrM1NGcWNDOVRQNUx2MnZW?= =?utf-8?B?c2UyU3VteHh1ZHZ0Z2xDQVB2dkJBNDdGVFJPcHJya00xN29MUkFNNWwyL1Na?= =?utf-8?B?NFdpNUhnRktOT3BDeDNXcys5NTJtU21wY1J6MkE3U1M2WWJTemx5bUN4MVRq?= =?utf-8?B?SmtPMEszeWpVM2FUWnRlT0hubzJBUFJxZUdiZGtpeFBHWmcvSWNJVjNWRTRi?= =?utf-8?B?ZitZYVZnSnNXTmtjNUMwOElYRFRaSDFWVTNJQkdERzk5ci9JQkJYanhHMkFW?= =?utf-8?B?ai9MNjZSd1RvS3g1eTN0T0tPOVJnbEdDcHY4b3QxSGFJcmRxU2o0U2dscWhT?= =?utf-8?B?NEltNHdJNmZYOFJnWDdpMXd0VFpRK3FWTFdxM2FHVGJ1MzNBRERscnFiNC9p?= =?utf-8?B?cHpRTzlHd2JaMFhPS0Ixek5XT2RFMFRjTGJ0cCtYLzFBenMzQ1d1L1BSL0NX?= =?utf-8?B?akFTd3JJcFNWdk5kUVE0dGFoQTVGOGMxZnNkVGlRN2N5WklrMkc4WVZhOFlv?= =?utf-8?Q?GT+ClB6sQ6fbcPZqUBvNW8g=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <64E5536BC0CE454BA701C57731D7453E@eurprd07.prod.outlook.com> 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: 7cf05623-a7ed-4a51-8e7a-08dc6abca427 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 May 2024 15:29:21.6236 (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: HJVry1AH09bjqv82zS70L0Ro89NBw1/fFQer752HpVCyABq2CVKJh2VKfeH9Kre6zZsMfFS63Z/y9klXvA1shWHNxRkMhrN5JVsT4kYpoB3FcSfpfDxbpKxokXNKkPlV X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR07MB7768 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+importer2=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=80.78.11.84; envelope-from=clement.mathieu--drif@eviden.com; helo=smarthost3.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, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer2=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer2=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1714663799208100006 IOMMU have to implement iommu_ats_request_translation to support ATS. Devices can use IOMMU_TLB_ENTRY_TRANSLATION_ERROR to check the tlb entries returned by a translation request. Signed-off-by: Cl=C3=A9ment Mathieu--Drif --- include/exec/memory.h | 26 ++++++++++++++++++++++++++ system/memory.c | 20 ++++++++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/include/exec/memory.h b/include/exec/memory.h index f4b33415d7..5b157b9711 100644 --- a/include/exec/memory.h +++ b/include/exec/memory.h @@ -148,6 +148,10 @@ struct IOMMUTLBEntry { uint32_t pasid; }; =20 +/* Check if an IOMMU TLB entry indicates a translation error */ +#define IOMMU_TLB_ENTRY_TRANSLATION_ERROR(entry) ((((entry)->perm) & IOMMU= _RW) \ + =3D=3D IOMMU_NONE) + /* * Bitmap for different IOMMUNotifier capabilities. Each notifier can * register with one or multiple IOMMU Notifier capability bit(s). @@ -567,6 +571,20 @@ struct IOMMUMemoryRegionClass { int (*iommu_set_iova_ranges)(IOMMUMemoryRegion *iommu, GList *iova_ranges, Error **errp); + + /** + * @iommu_ats_request_translation: + * This method must be implemented if the IOMMU has ATS enabled + * + * @see pci_ats_request_translation_pasid + */ + ssize_t (*iommu_ats_request_translation)(IOMMUMemoryRegion *iommu, + bool priv_req, bool exec_req, + hwaddr addr, size_t length, + bool no_write, + IOMMUTLBEntry *result, + size_t result_length, + uint32_t *err_count); }; =20 typedef struct RamDiscardListener RamDiscardListener; @@ -1870,6 +1888,14 @@ void memory_region_iommu_replay(IOMMUMemoryRegion *i= ommu_mr, IOMMUNotifier *n); void memory_region_unregister_iommu_notifier(MemoryRegion *mr, IOMMUNotifier *n); =20 +ssize_t memory_region_iommu_ats_request_translation(IOMMUMemoryRegion *iom= mu_mr, + bool priv_req, bool exec_r= eq, + hwaddr addr, size_t length, + bool no_write, + IOMMUTLBEntry *result, + size_t result_length, + uint32_t *err_count); + /** * memory_region_iommu_get_attr: return an IOMMU attr if get_attr() is * defined on the IOMMU. diff --git a/system/memory.c b/system/memory.c index a229a79988..9c9418c5ee 100644 --- a/system/memory.c +++ b/system/memory.c @@ -2000,6 +2000,26 @@ void memory_region_unregister_iommu_notifier(MemoryR= egion *mr, memory_region_update_iommu_notify_flags(iommu_mr, NULL); } =20 +ssize_t memory_region_iommu_ats_request_translation(IOMMUMemoryRegion *iom= mu_mr, + bool priv_req, + bool exec_req, + hwaddr addr, size_t le= ngth, + bool no_write, + IOMMUTLBEntry *result, + size_t result_length, + uint32_t *err_count) +{ + IOMMUMemoryRegionClass *imrc =3D memory_region_get_iommu_class_nocheck= (iommu_mr); + + if (!imrc->iommu_ats_request_translation) { + return -ENODEV; + } + + return imrc->iommu_ats_request_translation(iommu_mr, priv_req, exec_re= q, + addr, length, no_write, res= ult, + result_length, err_count); +} + void memory_region_notify_iommu_one(IOMMUNotifier *notifier, IOMMUTLBEvent *event) { --=20 2.44.0 From nobody Sun Apr 12 13:40:22 2026 Delivered-To: importer2@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+importer2=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=1714664040; cv=pass; d=zohomail.com; s=zohoarc; b=Vaovi5VJsU6l/86WdRMKmKf6ZOoD4fXc5rB631lxSM3bL/brqKbF12Nos0Q38u4kUE8FTVbgJSvW8Dd7vIFNmZuQVNN7c5IUn+UYoTmFQduLTUzISxaie1ztwTrD9G1mATx3Z7JHlC3jukDN1G27PsRbbyx7OndB1ko3zPLOAYE= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1714664040; h=Content-ID: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=0dyCf//UOltd40tgWVe301nYDvZlQODv3yCaC6nBVp4=; b=WYez2AOioP46vY3qzN5FZ8zGIczZwFx9Ecm59/Ab6JfyIqNJtGVj1dfYG9bhi0OE6JRww+6VuzcaKLdyV5lYrpwI2QSprlvDAJpskfSvquUVAjakgaEPwOw/W1QsLg5OS8/tDTZhfv2XeTtZf1R6C+c+Abx1sfQ6Ml1NRAl+QFQ= 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+importer2=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 17146640404671010.7654191580702; Thu, 2 May 2024 08:34:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s2YNO-0003ih-LO; Thu, 02 May 2024 11:29:38 -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 1s2YNM-0003i3-Tn for qemu-devel@nongnu.org; Thu, 02 May 2024 11:29:36 -0400 Received: from smarthost3.eviden.com ([80.78.11.84]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1s2YNI-00060W-KC for qemu-devel@nongnu.org; Thu, 02 May 2024 11:29:36 -0400 Received: from mail-am6eur05lp2105.outbound.protection.outlook.com (HELO EUR05-AM6-obe.outbound.protection.outlook.com) ([104.47.18.105]) by smarthost3.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2024 17:29:23 +0200 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by AS8PR07MB7768.eurprd07.prod.outlook.com (2603:10a6:20b:351::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.29; Thu, 2 May 2024 15:29:22 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.7519.035; Thu, 2 May 2024 15:29:22 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1714663772; x=1746199772; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=0dyCf//UOltd40tgWVe301nYDvZlQODv3yCaC6nBVp4=; b=mgcBf9kQq69iZITSJAnhtndR++rG8mTIpEG1o2y8Xh1vgr0bymhmUsxT 7CYXkMoVicutC1WTzpEydx5Qc/IhpkJkIZUYO3w9xWnvf/OWdq73hNMjD HMVvRmVZ5/3QN8ahnQcH9maq1qa2VvRb6ySg3UUXTC9rOIYttLD3a+A1H LM+t1zrXnM+YluKMOMZ9MnOKN3CJ5bvE6wXhL0ceV5+74FRYw6CREppmc 2ZM2CDh0EoQjk86BdmhpMxipkixzIeYnh8M2okFCaWLo9vqX4EkW7EV0U jPpLoU3rkK50eLgjKHP3E0u8Sb2lYhvlHJXGZuqDcLk82Sl86aZR+OkmU w==; X-IronPort-AV: E=Sophos;i="6.07,247,1708383600"; d="scan'208";a="11730622" X-MGA-submission: =?us-ascii?q?MDGQsfRvSsSaehLIfacEuktvZvdiwWESRB9SPA?= =?us-ascii?q?MIjQKpH88tJ7pg50BzfPWToXVDjel8WgkrQaeV+bQNK8Pg7ZaVpwJJIA?= =?us-ascii?q?Hx3CQN3LU+jC3f+etr0ovbxgnNcb8YEOfKwOwpULn1OtF5YxJzWb7t1f?= =?us-ascii?q?a/IIIaqPy4y4ThJKwv9h4qAA=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QsA9s/DAunlOnu+yWLcQnDOm47fKNoXLLTp17WtJd0KYLayciIOHWTq2xyoorPfWKY/p3XTIQG2sxeYeJCT/cYE8xRfyobss3kvSehbCFrhQ7RAQ2eKFV0WwQ+4ZpCOapQ9RLT544eiANTBxAaxegCHrPnIYcPXAp6NB0PFo1KSrgaCTE5qxrkzNefsI9yJ/3KrFtg+UQ7CZtaNPPJD1LsyBEqUSh8yLGerxQoyMCUOPcB35KUMLDCPTdbWNqVQg6D38EQW31eBuEiFZZdIVaqpUtrPIybTAMFfXAYDZ3n6UCmPnB/cwWmBp7qXJi6+4iuxVqZdD/4UwOxsY9bPYOg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=0dyCf//UOltd40tgWVe301nYDvZlQODv3yCaC6nBVp4=; b=RORHlQwZPuqEqccJ239FVOJOCsjLsT8jig9WG4S6L06mH+UPoED5f2oreVDkVYifhJ/3hpjINTjKkJ5GfjY+WDJUBIDxnXP72Cht2bWI2lNzkrjmqmzle+aCgqeI7ktB5jSiHcrpzk1B5ME9UrWH2z6Wc3Si9YcAxurEFdHQZpgqLqnieYZeWe6e87/yZkYtB1STB6CzFOTqV5J2xStb5RjjEk4y4Gw5lx4OFqmytKGKUuJZrQ1qiUCh9t+0SZW9E2bNbuUXvtwvlc3S8e8uXJzG8mmUNGyvaUiLzqO/YZrZ7Kc/F0Mp+sNP8tZTCwVPVeMVj3YQDawKMNGCPGZZRg== 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 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v1 22/24] pci: add a pci-level API for ATS Thread-Topic: [PATCH ats_vtd v1 22/24] pci: add a pci-level API for ATS Thread-Index: AQHanKWBzgAlAYPHMkWgdFDysW7Q5A== Date: Thu, 2 May 2024 15:29:21 +0000 Message-ID: <20240502152810.187492-23-clement.mathieu--drif@eviden.com> References: <20240502152810.187492-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240502152810.187492-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_|AS8PR07MB7768:EE_ x-ms-office365-filtering-correlation-id: 86226a82-0315-4713-cd5c-08dc6abca441 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230031|1800799015|366007|376005|38070700009; x-microsoft-antispam-message-info: =?utf-8?B?a1NMSjJUVFExaW9mMXFBcDV1LzE5TEdlTTBQOHJodlJsZER3KzVXNXF3UWRa?= =?utf-8?B?bFQ5SzZwZG5Wa2FLcDFUVUUvbHF0aVFVZGlDVFRBVWtNWGN3UHEzVFJpTUFW?= =?utf-8?B?dXZqU0VGbWVXMzVvSjAra3BlaStaSVBobURPTlVERitGTElXSWZhZUh6Z2NQ?= =?utf-8?B?NXRHSk9HeXJLZnJnaFNMbFlmSkJsaTRtNzc4TCthdU16ZE01S2x0QWpLTHV1?= =?utf-8?B?QU4vYmhqaWUvWkFqcVVNTUdmbVNmRk9SQjVJeVV1N210K09xMTEzNjd6RWcx?= =?utf-8?B?OUdpL0t0aEJvMzNoRys0TDUwbnl4ZkVvV0ZXVHhqSW1SbzliaGgzalAyNDRq?= =?utf-8?B?UUR6ZzVsQ01WblNNNUVqL3hyeUtTc3pUc241dTZoU0pHWlV2TnFENkNhckla?= =?utf-8?B?cG9ORzhxNmk2VndHWVRJSy96bWd3VURVRXJsTzM1VCtVVysrYWJTYWN3cG1Q?= =?utf-8?B?OWQzZnArTTgvQUhFUWJwTHVpOFdnNDBsWktuN1ZPaWtsQjFib0czK2RtdGI4?= =?utf-8?B?Nm5ka1ZvdXA2WVROSU1PRFVGYUY0ak5UR0tUYUdMVDdzakdvcjRhV1ZGTXF1?= =?utf-8?B?M1oxTGE5OTlWbmNJc2FnekxvelVvQU4ySklGWEN5RWJLZnU3MjhZTUVQVTMz?= =?utf-8?B?K1pHZUJaeHBrWWpBcG95OCtVQ3RwUjFnS3hiUUJYenpsTzNjU1Z4RWxmdFRN?= =?utf-8?B?Y0llMFhlV1hqcGF5Rzl5TTJJTDRmbWFES3prTlM3NnZEVnYyWHprcXJBc2dB?= =?utf-8?B?NnBLZTRKdFAwWGw1cFk2QUVkR1kyclUwUGtnMUxJckRZSDY3clFndHhxamdV?= =?utf-8?B?eWZCbGhpeU1xaVFOTisrOW9Fbngwd2FrRHAxVlo2MjZqSTl0VGJocExraHlk?= =?utf-8?B?SWtobFAwL0x5Nkp4Q3J4L1o3eFhYQXRoalJ0cUVrajBHcFJ2WUcxY3F5Q05z?= =?utf-8?B?SDMwZUFvZm9kSVh5ckpsM0Z0QmRYTEIzTGFaQVBqSlY4dE82ZXE4VGlqZzY3?= =?utf-8?B?NkdkQU1VSlFSaExBSGVnbU9nWVlpeTA3Ujk0RFIzQkpJR2ZjR0RGV0ltOXE4?= =?utf-8?B?cXc1RndYdUQ1YjFVOVJIYWQrVTR4WTdEbTNFeEpKWHhBdjNZUEpQY0Vjc2Uy?= =?utf-8?B?b0htWGFFeU5LbFNWRDh3SWJTV2dBY2NtK2Eyenl1YTdjRUJ2K1oyNVlOS3VS?= =?utf-8?B?MlZWMkhCSGxpUEQrSytFaUUyQitxRGNiUHFWVHoyZHhxTkt3Uk1ud2I4QWZp?= =?utf-8?B?SDhzZUZtYkpDaDN4UDRBWk1UdG1BQU9JUklienVxUjVaUW53OUFvbUgvUG16?= =?utf-8?B?QlQ1ZCtzVEd4RlhUaWtyOFRvU1dydGo5WjVwRUljN0dCMzYwNUVHNm9HQ2tU?= =?utf-8?B?NkdNcFVmWXVrcmtRNkw1S2ZjODBucUVrM2hLWVRVbTUyanBkWmZUSVFpRkVu?= =?utf-8?B?ZXprYjJkRHgwUWNYcHk2bVRjSW1tbzF5cEN4RGZnc3kvWEtNc0szUkhyVVNt?= =?utf-8?B?dHFBT3RQUGhtNWRlL3FDbmxCWVUycURrVnNUSmpGcGhydWNPNFBiY2VRWkJ5?= =?utf-8?B?bUduZHVnTzFaRUowRUJVSGlrTUN4MTU1RWdXR0R5NTR2ZG5wN29uMGczY2NR?= =?utf-8?B?b1QvTjA0Zm1pbXc3dWcyc2FVdXBOazVKZmRhayt6WkR3WlBLaGdHSDVIb0Jz?= =?utf-8?B?eWk2ekx0eHgya2JtV0N6R1luK1VGOU9BdmlITzl4MXB0OTVONnQ5aVhqQmpo?= =?utf-8?B?WGRuQXNkSGJzN2lnc2F3YnNqWWdPcmF0TURVQUtNY1cxOTNiZzJUY2k5bnVK?= =?utf-8?B?WkxUYkN3dEdSbnRibFZTZz09?= 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:(13230031)(1800799015)(366007)(376005)(38070700009); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?WWVUazJmVkFEVWZiMFJYZC9mZ0ZmeVMvaExvbXVtdzdGMVJORm9Rd2prNmVq?= =?utf-8?B?d1czaGZYYmhhTlNzd0ZnV1BMWm0yYVhJQ2xwY1ozOHFmeGhTdGhzR1FNMjRU?= =?utf-8?B?VkdpeHUvWEF4VWVJaFFKZGZKOGpadUdDTzRFQTFoR0RuMWZPYThESk5xUm1R?= =?utf-8?B?OHhUT2dqSHhlTTl6cnkyejdjUHRjS2NZTWZjVnpEa2ZhWXVaeGNHS3BZR1Y5?= =?utf-8?B?ejlWbWZ2VVFuM25GQlBrd3FPTWRxVUFGUW4zemU2NnVkb2dWbm1yZzRNZFVS?= =?utf-8?B?VUR4SVVlVy80dHJ4aGMxSVk4UlR0cm8zUVl6MEo4TGJVaWRyUXpCdXlZd1J2?= =?utf-8?B?bm5tZWs5bENGQ2IvOTRYbzZqOG1wZkhiOVFKejJmUno3Y1BRMzVEb2RyOVdP?= =?utf-8?B?STloK254SFM1dTBxUUVQZk5KZnkrdUVJZFdKaFZSaFkrcGFjMytIbFZjMHFV?= =?utf-8?B?MjExMS9Rd093QnhpQXg3T1h4Y2VTcTFDQ2J1Nk93K0lyVDFDd0Y4b0NsalIz?= =?utf-8?B?T3lDUWNGbklORUZGT3Y2Y01XdCs3ZkxiNjRudTI5N1dUeGhjMXF4UHdSZlZo?= =?utf-8?B?elNSM0VsUDdXMmFvSitwMEM0TURGbkppUkJleUJiV2RIczRvQ2ljT0NTcFZt?= =?utf-8?B?azRacGdKY0szZnRsN25mUjJOQy83R1NUVzVEWWVFQk5tblN5NU03cnZ2cm9p?= =?utf-8?B?M3FxbVJxZVc4ZlBwbG5neGVUVUZwM0NDR1FHNU53RWpvckVGSHBIdDQraEY0?= =?utf-8?B?dHRJUDNucUhKT2F2LytGOHEybXAxS2EzdGp3ZzNXc3BGK3h3Y1BLMnp2SmlO?= =?utf-8?B?TVJCeGlOUlNoUHBBK28rSFBrVUZ6aU8yR1J2MGpyR09XNGZ4OHdqSzdJY1p0?= =?utf-8?B?bnV5OEVUU2JycEFXeEpxK2RhYlJQd2sreDMydm9aQzk0bWxsUG1ReEVXT0F0?= =?utf-8?B?QktvRWdPZ3RVT1g3SHF2YXZKNUVSMEdPMWY1dUJERDhEM2lYZHFrWkVpdU94?= =?utf-8?B?S3dheFNZR2w1QnNWRHZCdGRBSG5GRkNVV0RkSWVBZ3A4U0c2b0xVT1FkZUhh?= =?utf-8?B?T1ZTNU5TT1d6ZlpxR3lXV2VmR28rRjBiOWk5Qzlqdmh5a2R0R0NvSWpUOXFk?= =?utf-8?B?bThHM2N2WHRtSVUyQkVSRm94NkNmVDZMRW1adFlaRTNGSk1yeDRkS0RiS3Z0?= =?utf-8?B?M3d0a2Fjd0c0WW0vOGJTYy85UCsxL2hvK3oxTTBXY3o3SEZHNUQxS2o3OUky?= =?utf-8?B?eGdjQndCbDN5UDh1MmZsN3FyVTIrY2pEVXNROWU0WVZpelJhdlVoSUhBbkkz?= =?utf-8?B?ZEpYdjRRWEU1UVNZMmxDKzRaaitYbk5Lb0dDQUN3YzhLYnVtYnIzMzVuQWd6?= =?utf-8?B?Qjc4VkZhZVZScFpPVnA5ZmZrNmxLaXlHWVR4VS9tWXkvbFJqS2g5dDlvVVNE?= =?utf-8?B?ZkVUVVVBeU16eE4xZThlNVFlVGIrZW5SNC8yeEJPS0lNSTl4Z3lGd0xZUEFT?= =?utf-8?B?LzFENjlWelJpbUJOOHZ3UlhadHd4QWNLcTc1ZjVOZnkzZTdWVUtHVk5NTkgv?= =?utf-8?B?MjQxWXc5UDdYUWlEaDloMzEreVlrck1nNS8rMWZYenQ5RWFSWXVYRVNLYkJi?= =?utf-8?B?bERuSzRTWXp4am9kVWxEMjROZzM0SzNEbjY1ZWVhUk5PeThPcVNGNnpPNWVn?= =?utf-8?B?NnM2YjNMQmtZa3dsSjVBOW9kMzNoSWRDUXJ5emMrQmV5RE5IU1MraS9TK3B2?= =?utf-8?B?cVBWK2RpQm5jYWdyczhrWElvNzR2bVU5a3FzNzdqdCtQNDY4MjJxdndmdktu?= =?utf-8?B?bTlmbnpNaU1KMzROdkh2NWhEZUo1aWF4bTAyTFRTQWxCNDF6dEpDSWNuR1VK?= =?utf-8?B?OFp3WFZ5RlVlbzczVHM0YytPaXowTWg0bmk4clZSMWlpdytuazc2NDlyTDha?= =?utf-8?B?ZzNraFp2SFF1eURXaXQ5ZnVMM3JJWkh2NW1Fd1h4bUZBdXBVM004bFN1Qitl?= =?utf-8?B?dWtrS1hsNFBRa3NXQWl1Z3FaTTB1MUI1WkpabDlEczJtenlCdS9TS0RTN1lW?= =?utf-8?B?OVRncHJsUTlTcjRQKzRlR1BuS1oyYWlWV2tDSDlFRTlxYmpSZWpxSnJGdGM5?= =?utf-8?B?MUh3bkxUNXlLcG9vQXJGaVA1MzFiOHVKNnNDSWtHc3BIb3Y3SGYrM1hoRlpX?= =?utf-8?Q?xgyoW49m8yCRzEiaRxasxbk=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <6BF640420CC32443963EAF491B25EBC3@eurprd07.prod.outlook.com> 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: 86226a82-0315-4713-cd5c-08dc6abca441 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 May 2024 15:29:21.8888 (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: yl/n3JGOMXxpUyLUZgx7FHFm4tIF0iBZfesjBRh17p58vUdnJHhYhagFgrDwOSQynEHvsyczPbp40iS9p5HzWLb622sJ9Onk5HfzCi10eWRZXjvV5AF+UlCYRIfWsoN2 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR07MB7768 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+importer2=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=80.78.11.84; envelope-from=clement.mathieu--drif@eviden.com; helo=smarthost3.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, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer2=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer2=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1714664041564100005 Devices implementing ATS can send translation requests using pci_ats_request_translation_pasid. The invalidation events are sent back to the device using the iommu notifier managed with pci_register_iommu_tlb_event_notifier and pci_unregister_iommu_tlb_event_notifier Signed-off-by: Cl=C3=A9ment Mathieu--Drif --- hw/pci/pci.c | 44 +++++++++++++++++++++++++++++++++++++ include/hw/pci/pci.h | 52 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 96 insertions(+) diff --git a/hw/pci/pci.c b/hw/pci/pci.c index d10cdb3d75..fea9b57006 100644 --- a/hw/pci/pci.c +++ b/hw/pci/pci.c @@ -2833,6 +2833,50 @@ void pci_device_unset_iommu_device(PCIDevice *dev) } } =20 +ssize_t pci_ats_request_translation_pasid(PCIDevice *dev, uint32_t pasid, + bool priv_req, bool exec_req, hw= addr addr, + size_t length, bool no_write, + IOMMUTLBEntry *result, + size_t result_length, + uint32_t *err_count) +{ + assert(result_length); + IOMMUMemoryRegion *iommu_mr =3D pci_device_iommu_memory_region_pasid(d= ev, + pa= sid); + if (!iommu_mr || !pcie_ats_enabled(dev)) { + return -EPERM; + } + return memory_region_iommu_ats_request_translation(iommu_mr, priv_req, + exec_req, addr, len= gth, + no_write, result, + result_length, + err_count); +} + +int pci_register_iommu_tlb_event_notifier(PCIDevice *dev, uint32_t pasid, + IOMMUNotifier *n) +{ + IOMMUMemoryRegion *iommu_mr =3D pci_device_iommu_memory_region_pasid(d= ev, + pa= sid); + if (!iommu_mr) { + return -EPERM; + } + return memory_region_register_iommu_notifier(MEMORY_REGION(iommu_mr), = n, + &error_fatal); +} + +int pci_unregister_iommu_tlb_event_notifier(PCIDevice *dev, uint32_t pasid, + IOMMUNotifier *n) +{ + IOMMUMemoryRegion *iommu_mr =3D pci_device_iommu_memory_region_pasid(d= ev, + pa= sid); + if (!iommu_mr) { + return -EPERM; + } + memory_region_unregister_iommu_notifier(MEMORY_REGION(iommu_mr), n); + return 0; +} + void pci_setup_iommu(PCIBus *bus, const PCIIOMMUOps *ops, void *opaque) { /* diff --git a/include/hw/pci/pci.h b/include/hw/pci/pci.h index 1587c18cd9..dc247d24bd 100644 --- a/include/hw/pci/pci.h +++ b/include/hw/pci/pci.h @@ -471,6 +471,58 @@ void pci_device_unset_iommu_device(PCIDevice *dev); bool pci_iommu_init_iotlb_notifier(PCIDevice *dev, uint32_t pasid, IOMMUNotifier *n, IOMMUNotify fn); =20 +/** + * pci_ats_request_translation_pasid: perform an ATS request + * + * Return the number of translations stored in @result in case of success, + * a negative error code otherwise. + * -ENOMEM is returned when the result buffer is not large enough to store + * all the translations + * + * @dev: the ATS-capable PCI device + * @pasid: the pasid of the address space in which the translation will be= made + * @priv_req: privileged mode bit (PASID TLP) + * @exec_req: execute request bit (PASID TLP) + * @addr: start address of the memory range to be translated + * @length: length of the memory range in bytes + * @no_write: request a read-only access translation (if supported by the = IOMMU) + * @result: buffer in which the TLB entries will be stored + * @result_length: result buffer length + * @err_count: number of untranslated subregions + */ +ssize_t pci_ats_request_translation_pasid(PCIDevice *dev, uint32_t pasid, + bool priv_req, bool exec_req, hw= addr addr, + size_t length, bool no_write, + IOMMUTLBEntry *result, + size_t result_length, + uint32_t *err_count); + +/** + * pci_register_iommu_tlb_event_notifier: register a notifier for changes = to + * IOMMU translation entries in a specific address space. + * + * Returns 0 on success, or a negative errno otherwise. + * + * @dev: the device that wants to get notified + * @pasid: the pasid of the address space to track + * @n: the notifier to register + */ +int pci_register_iommu_tlb_event_notifier(PCIDevice *dev, uint32_t pasid, + IOMMUNotifier *n); + +/** + * pci_unregister_iommu_tlb_event_notifier: unregister a notifier that has= been + * registerd with pci_register_iommu_tlb_event_notifier + * + * Returns 0 on success, or a negative errno otherwise. + * + * @dev: the device that wants to unsubscribe + * @pasid: the pasid of the address space to be untracked + * @n: the notifier to unregister + */ +int pci_unregister_iommu_tlb_event_notifier(PCIDevice *dev, uint32_t pasid, + IOMMUNotifier *n); + /** * pci_setup_iommu: Initialize specific IOMMU handlers for a PCIBus * --=20 2.44.0 From nobody Sun Apr 12 13:40:22 2026 Delivered-To: importer2@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+importer2=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=1714663818; cv=pass; d=zohomail.com; s=zohoarc; b=He7m+YmTivIU6jMoAYdUOE0Xxa8CcvKaYHsJFo3OQDdIb6AzMZJWIptlegZf7f6jIyFCh5GpgfDCNrhWqMCli1W4IR9mZQHKI4O9aaeK8V69eT/S3sObd0t4nVatKk0OG7AuQAZTOfQQQRgvaQn1h+g3AFqYrzbVfAIRdWBnJ4M= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1714663818; h=Content-ID: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=jqH22yC3gZ1HF0ZE1kcRC60g7aPGVpRl1CeIoCk/E/I=; b=BFhU71eiXUYw1+5iVOuVOkFMwRneYjXm/zp0hftRWO1pqKtrJFBTh5Gqd2zIphMkcEpQ6AO9eVgJNJdIlHb9cWx/bmovI+BlVMLn+BqxlebT9MhK4qj+FjpyQD9Nwi39g1ctL+JbcB5UTgclF4CzI0beoAiNYbbCx+ffAYDTd1Y= 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+importer2=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 1714663818389967.5010310811307; Thu, 2 May 2024 08:30:18 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s2YNK-0003gZ-UN; Thu, 02 May 2024 11:29:34 -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 1s2YNJ-0003fv-7T for qemu-devel@nongnu.org; Thu, 02 May 2024 11:29:33 -0400 Received: from smarthost3.eviden.com ([80.78.11.84]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1s2YNH-0005zE-HC for qemu-devel@nongnu.org; Thu, 02 May 2024 11:29:32 -0400 Received: from mail-am6eur05lp2105.outbound.protection.outlook.com (HELO EUR05-AM6-obe.outbound.protection.outlook.com) ([104.47.18.105]) by smarthost3.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2024 17:29:23 +0200 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by AS8PR07MB7768.eurprd07.prod.outlook.com (2603:10a6:20b:351::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.29; Thu, 2 May 2024 15:29:22 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.7519.035; Thu, 2 May 2024 15:29:22 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1714663771; x=1746199771; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=jqH22yC3gZ1HF0ZE1kcRC60g7aPGVpRl1CeIoCk/E/I=; b=HXy/3U4yqF1rI4c+pVpIbEdKQscOymKvQmPPYTxyBJdqY5XX2SX7yR5N 0QU4NMePTFvQXdfYKdJ2uFs6MReno3LzUEk/9z5eMjAx9XDjMSM61uYMT stanjsVhbuWL6q/e7IxdgGvRpFxTq564U1vpSY8SXmICmmJr6PTmc6Rve gCUiBh9f8AlGuuCrjzzVi72EqTFe/wX+EV/HMxz8gD59tvBJ/uCKI6V4V mdd2Tu1c0GNO2WasZVBrm5DsfM0g+HW0D62K/dqcHi9YwemlQpRYq4/h7 AyG5i6FwgobPe54IhU3Zw+/0S3Vh0/G/ypj27oBZn3zakyW9Ro149DmZ3 g==; X-IronPort-AV: E=Sophos;i="6.07,247,1708383600"; d="scan'208";a="11730623" X-MGA-submission: =?us-ascii?q?MDGyCjIKEHE3ompCo/zyD0zy8d6BiKd1agTole?= =?us-ascii?q?4wPqvjJHjF9N+y4lPZp1Y67N6n/RDeudaUgRo0EaTAIQj/7l6yf0UQe7?= =?us-ascii?q?+kfxqAw1ZCd89RpktxcSMw7QUG1l81AQXKDGFgIjqCUm7CAP2EH3H1TF?= =?us-ascii?q?CcF7c6grIkIr8D8je8N3/zcw=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SuqdJRYm2S/QUG3yy6ZVoqtbotcKWqJjnLuN8JWI3LbkBpKKHpoh0wGW5saoXzuHe5voxNbMDN/oy4QBe0Q8dC1JWoKZHT79cfvYONB4gIy7Gl+O5Sh/0x9KmAmycTIgr4lEWHlYANXqHcWvUb+nEbf6GH5YAdnlLJiWQL3fkqlzhlFXOIb+/eoDguK9eKq6lvIFpswVSFa5EYI4jTj8An85gTR8idvTxmV2V5CwBxeUGP5hinJjRjXk+HPntzLdWxbepHlVoZRLpieVtg9BtNZ/YyaQeUObzEIt4GvoK56/u1R8gK2KrQVF8jCa5C/YpV9KEPgoHzEqjRqb7AdO9g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=jqH22yC3gZ1HF0ZE1kcRC60g7aPGVpRl1CeIoCk/E/I=; b=CCU35lR+KZqxNd7Roo7V0Jgzmt55bI/PIbyKp5YcTPrOarmieYIDaGbqaVi/kHJ+TtNvTTn8cYAJ98MoDWYtJrtpUGGS6umEbZuGCKJmLZAFf+8hB0JFYGwq2z3pKHYKSrN5zEllcq+MCbwM2wTsxrmiAl1eGR3G5FprCKuxi0oKQe1frLcww9PTiIi417o6oXAfT3EuozM4BecfLv336ptxXZNKLtDIbQP1zbOkiAjVge0dwbTmGuKyLvi8VSnWweLJshCjPm4m/1VD7DZys16NaAs7s8EjnGGA6GhKkJ6qmgRcqTYNxV9xc4ZLrP5DA4ik+RgmMHRHWqKJ2lAOog== 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 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v1 23/24] intel_iommu: set the address mask even when a translation fails Thread-Topic: [PATCH ats_vtd v1 23/24] intel_iommu: set the address mask even when a translation fails Thread-Index: AQHanKWBYNOsIYIeYk+58ghVT37p0Q== Date: Thu, 2 May 2024 15:29:22 +0000 Message-ID: <20240502152810.187492-24-clement.mathieu--drif@eviden.com> References: <20240502152810.187492-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240502152810.187492-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_|AS8PR07MB7768:EE_ x-ms-office365-filtering-correlation-id: 45ab644c-da77-4a2a-7023-08dc6abca459 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230031|1800799015|366007|376005|38070700009; x-microsoft-antispam-message-info: =?utf-8?B?dVdqN1hTQlhjUEIzM2ZsbjZQR2thYXZUZVRmK1FVSnh5OWxSd1MycTZZeXpX?= =?utf-8?B?V09rSzVDcEw4YzA5SjlRL1V2NVIvc1lKemtQU0VqbU9Kb2cyZjJ0ZzJucXhj?= =?utf-8?B?ZzFBd3FXK254Z1BpQ0p5NjBPY0ovbkZISW1LaStYcElQdXUxc1lYbFdYUmcx?= =?utf-8?B?aWhtODVMTVE3VmIxVFduQlU1ZUlBb1p5SUZlZUhyUnlBMTZMNFVmdmQyWDN3?= =?utf-8?B?MFVUbm5QT09WNWh4NjNwSi9hbUZ1Um5DdzNHd04vV0d2cEhrNHRMZXg5Sk4r?= =?utf-8?B?ZExFMEYxbWk5SmV1cHhlTG5MeDAyR3QvdklUNkpJRUg3OTNrL0prNlFBWWR5?= =?utf-8?B?MHg4YjlpTnIxU1gwakxveUFnbk5PQ1FQUWJZbnRTa0FZeVVVM1k1M1V6M0Jh?= =?utf-8?B?Y2RUcXczclE4bWlTYjVUUVJVOHlrbW84ZFZDS2JDaHdNZGNsTlBDOU41VVJ6?= =?utf-8?B?TE8zZHRyL3lhUWw4WjBmK0UrWlhSQ21RSkNoVS85VURyMzhrWmliTDJwMUQx?= =?utf-8?B?ZER5OXJ4ZnA4aU8zTnNjdlh4WlRSK2k1cURmb25EOUpMODlhcXIrWVpiZjNy?= =?utf-8?B?ekZXQ1drRjFxQkJtaWpkaFdJTUgvQ3hKSmNoMUwvSkJEMDNTaUluREZyMHZL?= =?utf-8?B?YXpDU2FWSmRWQjUveHREZW41K2VDYzNlK3lnSVBuL2kzT0NyM2RhMnpmUkJU?= =?utf-8?B?QXJMc3pUWmFydzNOVU5aR1hMQVZZNk1yQWsxK2U5U013ZlNNWUg4dVpBbXND?= =?utf-8?B?MXVsdkRpK21ua1c0Y2FRS0hSM1JqZjJhWFBlM2tQbjFZK2ROVnJQMXBBK2h5?= =?utf-8?B?Um0rSDFpTkNTcFJJWFhPMW9rRWxwUWp5a1p5NGR6M25JeDhqREwvM2s2L25S?= =?utf-8?B?eDc0ZnJSeEFCY2ZxYy8yaE9qUXM2bmFQdUJkK3E0RmkwU1IxRlRpeDFvVFJM?= =?utf-8?B?b1lldE83NlNOWUI2c1pVU08ySXNpR1ZzTkZGaDJLZ0FQeWlOdlZzMmpNYThm?= =?utf-8?B?Nk5tNUxmVFBZbnliREVrcGZPUVBOaHRmdVJaTGFOcmtxN1FvbnZKbXV0ZmZn?= =?utf-8?B?TlJxVml6U1VkU2RPaU9TaHNCdWJFeGlQVVhvcWs4a2xWZVBFVVJzd3BiOUNF?= =?utf-8?B?L09XbG5JQXd6QWpWQVJOL0tFcHdtcENZQUdGSC8zZUlxK1RjM3htNVQ5U3RJ?= =?utf-8?B?bEdPNXZQNWZVYlVla2lhVWFIcWFyUFJjYlJROVVPTTZsZ1lrZ3RFNXdzMkdI?= =?utf-8?B?Y0FRdkNnZjlGUWI1dy9ybW5qWHQzY0lZN0V2eDRFM2cxem42TXRHeW1DN05V?= =?utf-8?B?NTRwMER0NEM5Q25SWXVhcEphVmliMUloMktSMWNJNzNqNGloaGJoL1pITkJY?= =?utf-8?B?dHM4Unl2QkVKVUFZaWd3aWZWY0JlYnpmc3NrREtNUTcvNzEyVjdrb1pwcHdp?= =?utf-8?B?YTB3NjdwWWFlclp6ckhRYzQ3SVpoWXJhRDFrSE5qU0FuWEZ0SGZKOFFvTkFG?= =?utf-8?B?cnM4MEJmUlZZSEVwNjhjMmRpajBONkM2RE43QkFhRFJONlRubENSNUFTajl4?= =?utf-8?B?R0xOamE2VnhLdGIvVVpiTG9mOU5TT2hEZGpPWDVRRUhSSjRZMDFQVkpBZFdM?= =?utf-8?B?Vlc2Y3FEQ2J1UldJeFlzYXJqWnZXZ3ZPN1NXRkhrZXplSnhQODlUbWFTSWxI?= =?utf-8?B?eVQ3UG84SUhEd3NjcmlXZ2hTcDlQUEg3NWUzYS9Ma0U0QkpJbnU0UGlHMk5v?= =?utf-8?B?V3VGa2FkbUd2R0MyU2o4czh5NTczMWhjWTJOVGRPY0Rqb1M4ZGhCQU0wNnV2?= =?utf-8?B?eUpOUHJNcFNveitkaDJlZz09?= 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:(13230031)(1800799015)(366007)(376005)(38070700009); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?NVo0THdDWXhWVysxUUVXaVkwejJMbm5xY3M4bjNCaUZKeHFyckNmSmhLVllP?= =?utf-8?B?a0RhbW9VRzZlNDhWSGhEU3ZFSzl4c3pXbUdBYXFjQ0IxalFwaFh6VzFFZjJH?= =?utf-8?B?OEJXQ3paMkhHbGVmVzk5LzlqdlhqaDRHNG96Wm51SXM4TjM2VnlCUFlvMnRO?= =?utf-8?B?R2VueEllTTNkY0xVZnNrTUhEVVBWQXBYbnJrOUNEeWVkalpYRjQ0clBCYVNv?= =?utf-8?B?eFhZd3ZXV2dzRVFhZGFQcDFhdkRrdElsK3JvbEhHTHJ2YUhFbVp4dURwdm1p?= =?utf-8?B?Sk5mV3JaQk5TbFJzeFVlQWVaNTVwd093ZGhLTHhISElzMEk2ek41Z0hQZUVZ?= =?utf-8?B?K0FMbEUzSHdxZTFSOGx3OGdoYStjMTNOaGRwcitQYXVyYW9Ub29xK2tES0hE?= =?utf-8?B?Y1BYQXV5RTBvdG53aDd2NkdjcWtQQUlrOEsvVGpYOHB3dXRnUjJ0YUFZTzBi?= =?utf-8?B?QUlDSUVVTTFvNzdBVFpzeldxTi9MdUMxeWFLc3hqMDdFbnFVb011aE1lUWYy?= =?utf-8?B?elB5ZU9SZ2FKNlpLQ0liMktHdTdOZmUxREJyVVdlQ2hsVGgxWW9UaUNtQnlN?= =?utf-8?B?WXczUzRKLzhPVmo3c1hqaTV5VmZGbGVnNUlvbWpYZEIrKytlVXBSR3NYN1dR?= =?utf-8?B?V29mZG5WcEY1OUFWU0c0aW0wN3RYMlYyU1BvcHJ2Skxxeko5VVNyeFdxdnhI?= =?utf-8?B?RHI5QitRYm1QTVlRYS9hek5Wd0JFZmdDOTJCbjQ1OTdyS1ArUS9pTmplb2N6?= =?utf-8?B?aHMyUitTWUd1MkpsY2ZHZmkybXprVENWbUo5ZWVnL3ZiOGl0RzkzblJETUdh?= =?utf-8?B?Z2xIQW4wUjg3ZlJnUzhUSm9JNnlLWGdWSzdXM1BtUUVlVVZ3bGxBMElBWEVh?= =?utf-8?B?ME1DdXBQS2xWSDZiQ0JGNm1nSll2M3JkSVdnYlFLeEhBaWR3NGJEZVJidVlS?= =?utf-8?B?MGpPUnI5Yyttd3VxSlJkbTdlUGRVNXBpSEhWZ1RReExRSnlscG9SRTdsZU9q?= =?utf-8?B?KzFKdkIrV0pKdlE5dlRYYnpVUk0xU09kZHFYMVI4K21xeTdwL1VmQUFhSkRt?= =?utf-8?B?aTIxeUlPYURnMkJsdWZnZTFJMjlyNWZ0WCtSZ3FPMzF3MGZKcGNGR1Zoc2Vv?= =?utf-8?B?MHlPQ2FlWm9pRjgrc0dHOHllK1lYR2pIdmt5VmZyUm1iQUpzOGxSVDUvWkRO?= =?utf-8?B?RGRtWGplV0VGUGNpbXVyZWg5dGZVa0wvSW5qK3NuZ3ZqamV4RTU3WFZZd2t4?= =?utf-8?B?aHpVZExnTzgvU0ljbWloL0o5NHQ2eDNheHZVQjlCWk1Kcyt2WmQyMGpoMXpS?= =?utf-8?B?ZjJ0UlB2azl6RFp5VDNPYnc5UDFZZ1I0d0pQTTM2MWFjY1R4bkc1cVZIQ0sr?= =?utf-8?B?UmprcXZ4U2ZKcjhCRG1YcC9ZL2NzL1Q0bXE5UXNCRmkwWWVRWUtXMkNzN3RX?= =?utf-8?B?Tm5TOUFSbGVHRTdMRm1rNTNYZmNLNzlrNWVwRFBFa3pDZTBTd2hPWUhhc0Zz?= =?utf-8?B?QnRKa2VtNEVsaFladE9iNW9Gb0hIMTJUUWJtQThiMElsOWg0WTNmL0lHTzdX?= =?utf-8?B?TllsV1JpK1doZnJRYVdrTUhzM01kdHpObk9lbDhHSjBqVFBtRGU5WVcvWGli?= =?utf-8?B?bFpsNkVOTlFGVDQ4V0tlSjExZHpZbzRyNkV2cUtqNjhTNjdBRVl0YXZrakZX?= =?utf-8?B?M2s5QU9LSFFXTmVhdDNJZ29manNqZDVhMDJMMHdUbmpuYkJ0OU5YNk1zc0Mx?= =?utf-8?B?ZnhhdnZ1cFY3R01jQVE4TzY3ekNVZ1lVbE9qT0ZDRVpGbHJVRi92S05qbG9C?= =?utf-8?B?ZmhpTkJvU09aSW82NGJPeFhlTGhQemNFcmdQOWx0NC9oUnp1R2J2NG9jb250?= =?utf-8?B?em1KR21jK1FqUWF2UVVnSjRPcFBkWDRQS1hTODRWajFldjJsTFdzaEVYdmEr?= =?utf-8?B?RzRpSjQwYXRwSEthQU9HZGtSTzR1aWp3Uk1FdURjSll3V1JCRDdMTGY3aDE3?= =?utf-8?B?ZFNLWmZLM21hcnFYblVTdlYyVFo1QzNPLzN3U2M3L1o1OFRmMWdBLzF4dzZq?= =?utf-8?B?UGxYL2M0N2I2WVZLQ0NtUGhGeGRvMEN4KzJvZEU1NHRndURRN0ZBQnNuZ2Zx?= =?utf-8?B?aFJWK1JxSE1iQkJZQ2pUYkgrUlB4bHJQZldHOXJ2U3VzaHZpaTdZNFA0UlM4?= =?utf-8?Q?AmyYCfmG2i7hKsI7tvtu3NE=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: 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: 45ab644c-da77-4a2a-7023-08dc6abca459 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 May 2024 15:29:22.0893 (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: QP2EpWIcSTk490Ep0IvC7kLbQlP+5Klu6ELg9clKiUV5tfbCQV3Qj2Hf30WGnJ8oNGHoyA/ZZ76DYcuuPhF8im7goPJqbHaUsLp5XxNqebj2xuBym8UDNvYVV/wyie4s X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR07MB7768 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+importer2=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=80.78.11.84; envelope-from=clement.mathieu--drif@eviden.com; helo=smarthost3.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, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer2=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer2=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1714663820544100003 Implements the behavior defined in section 10.2.3.5 of PCIe spec rev 5. This is needed by devices that support ATS. Signed-off-by: Cl=C3=A9ment Mathieu--Drif --- hw/i386/intel_iommu.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index 02c5f0fa4f..aac7677063 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -2167,7 +2167,8 @@ static bool vtd_do_iommu_translate(VTDAddressSpace *v= td_as, PCIBus *bus, uint8_t bus_num =3D pci_bus_num(bus); VTDContextCacheEntry *cc_entry; uint64_t pte, page_mask; - uint32_t level, pasid =3D vtd_as->pasid; + uint32_t level =3D UINT32_MAX; + uint32_t pasid =3D vtd_as->pasid; uint16_t source_id =3D PCI_BUILD_BDF(bus_num, devfn); int ret_fr; bool is_fpd_set =3D false; @@ -2309,7 +2310,12 @@ error: vtd_iommu_unlock(s); entry->iova =3D 0; entry->translated_addr =3D 0; - entry->addr_mask =3D 0; + /* + * Set the mask for ATS (the range must be present even when the + * translation fails : PCIe rev 5 10.2.3.5) + */ + entry->addr_mask =3D (level !=3D UINT32_MAX) ? + (~vtd_slpt_level_page_mask(level)) : (~VTD_PAGE_MAS= K_4K); entry->perm =3D IOMMU_NONE; entry->pasid =3D PCI_NO_PASID; return false; --=20 2.44.0 From nobody Sun Apr 12 13:40:22 2026 Delivered-To: importer2@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+importer2=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=1714663982; cv=pass; d=zohomail.com; s=zohoarc; b=eM9bXeCYpBL/lAkeqP0STWU64DNmHLBF8hP/PHvp8PdWcXjMEbw9kzRhiQezIJtXa02rzbrOZ/Tk//8iQjiccTurdW4JqD5R/bGz1ZKs4BJOiYbuVTgoxOT3iNLw5DUsKitF6CYmqDZdtwwUs2LX2fl+8m2Fl07TM+udbf0t1X8= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1714663982; h=Content-ID: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=Qy+dDCFr8EtqKzLzd6rPk2x+cI0Kod24gn2AwSbFlT8=; b=AJX3WzApS9ktJp46emvigyWqT6UicEl9Hy6kGYOpOSfAezxs+68nFoVRtc6QHwDTr0PpjL0L7qaGDp0js/PkyEgW1ZqjFaFpeBJVs3ptoJDo6LehUocXjH/OspZKndIvc0+SIaMKg7t1l1tYM5M1a9RjKcNmDHEtzKGyP7xaTBA= 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+importer2=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 1714663982358744.2445164059823; Thu, 2 May 2024 08:33:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s2YNV-0003mI-2q; Thu, 02 May 2024 11:29:45 -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 1s2YNQ-0003jF-Dz for qemu-devel@nongnu.org; Thu, 02 May 2024 11:29:40 -0400 Received: from smarthost3.eviden.com ([80.78.11.84]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1s2YNK-00060t-9D for qemu-devel@nongnu.org; Thu, 02 May 2024 11:29:40 -0400 Received: from mail-am6eur05lp2105.outbound.protection.outlook.com (HELO EUR05-AM6-obe.outbound.protection.outlook.com) ([104.47.18.105]) by smarthost3.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2024 17:29:23 +0200 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by AS8PR07MB7768.eurprd07.prod.outlook.com (2603:10a6:20b:351::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.29; Thu, 2 May 2024 15:29:22 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.7519.035; Thu, 2 May 2024 15:29:22 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1714663774; x=1746199774; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=Qy+dDCFr8EtqKzLzd6rPk2x+cI0Kod24gn2AwSbFlT8=; b=xWvk1V9oIOIGEpqZnZZN7x2116Un0F5Ai/j8rhnjwwtDwOx8VE6fUSr4 UiyJQqdB2P8zNCR+rNr+45Yf/OY8KpcSHzczgTK30gq7rjy5FxP0+YzO/ Lm7AZ2YfQ+Py0R6t9K/eMWkyg7RA/AAuQfM4+ViWGdeO7LbYyk6mgVtiC 9spbei13Ggf9bbEK3WjYWsMQNGYAtPnwcACxBVcgQHlFPoi3vSQhS3FIj x90lCPhTJKYQL4weoywxgaTOLtuBB3NjVShF4IfHArqLCOPrpEi0lL1cn yQ2mGv9DkglM0EmWkBnzMMiMz4hQmCysqKSFs9wlIQKUCEHHGIGiiw0Sh Q==; X-IronPort-AV: E=Sophos;i="6.07,247,1708383600"; d="scan'208";a="11730625" X-MGA-submission: =?us-ascii?q?MDFer2e/lzIURv0zLCxMB/nco9tlFPP2MPZwCS?= =?us-ascii?q?D9EX/fCFzjl3kX6QEr87Tvr6m3KDLJGGK2G1F2K3cVPnBtEhy2q0QpQY?= =?us-ascii?q?zkXEnT+6PTEFjCIP9V+SuuiOBZX7B3VTep87nXqgUEqXmswJuyMClbvW?= =?us-ascii?q?xYME1jlKasRffKWxxwjWyP8g=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Q9oUagOxuPv/6IdqsNtRo1Qn+EghV9wEn35XXRjOsc+TtGG1sxlto9awU5rZkmTHYb1RF0MRTTYIMKeBy+YPhztay8lmvFd/oD7Z9DwFTQX3ysMI1OM2aedpbGFxX90f6rsddbc6IYFyqHQ2ubcMDS7ILHEVcx9iDrI4G74C4zbRvlpXX20ie2Cg2ZloldK+0h/nkCSqzjCBP+KGEw35PbYKtF2eN0rHAqgxLCJIlxqLRAPus1N5RWAFZtEPK0rjPfMdzxBTGaxzf+qTMdBrNgG14JinOksKVy+TzVuB7Vl4rYvnSaaLMflgy88EceAdsogOfGDCdqPdsBziQTY+fg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=Qy+dDCFr8EtqKzLzd6rPk2x+cI0Kod24gn2AwSbFlT8=; b=BKFmmTNz6QiGO4xrBU/ZOv+2yi521ySpGPD/yGYYl3KsVT0Ng1/9CWODH2xNKD+xScgJC9rcxisZ+thANsGT0ciGd9f6kdHhx+QIadTjjQYXptvXTGEsFkQ/zyVCowTT0doNvY6udxsTbn9n2fsFUDor4qtYNYgybxZqm+qMQ9dQfa9CpBK0MT30Xhy70j1CfsT5taNesrzSU8CbrBVDQvWH5yl1WxluPeX6+Ys38EXsYkh7yUhrc5hd4Pif+B9IP/dZ/OB3i3nlhQnlWSF6gcc/0kpy8AdjzlnCiefawzSsPyTWu4voOa94dGokM4/Sr3731sizFYGRGDh3jJXo5w== 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 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v1 24/24] intel_iommu: add support for ATS Thread-Topic: [PATCH ats_vtd v1 24/24] intel_iommu: add support for ATS Thread-Index: AQHanKWB5uNGEVbEo0CeorZYk4jRwg== Date: Thu, 2 May 2024 15:29:22 +0000 Message-ID: <20240502152810.187492-25-clement.mathieu--drif@eviden.com> References: <20240502152810.187492-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240502152810.187492-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_|AS8PR07MB7768:EE_ x-ms-office365-filtering-correlation-id: a0f1b1dc-4040-4b41-dfd7-08dc6abca472 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230031|1800799015|366007|376005|38070700009; x-microsoft-antispam-message-info: =?utf-8?B?b3JsMHBWYlpLOTAxbnB2WVFlNDJlZ3k5U0gxb2ZIT1hHZG5OTmRqcGhyRGFK?= =?utf-8?B?T25HaTBSZGhoWGJzQjBRQkJWalRpZXk3RjFpMkt0eEp4ZkVCQVdxNVUvd1I3?= =?utf-8?B?bU5ObVBaeWs1dEhOVzhycTlvZ2QxSWNnNzQ2ckRxYkw0cWM3MDM3a3JrSGRQ?= =?utf-8?B?QTYxU3RndDJNRDR4VWJQNktWNWtiSWo1ZXdtVWVtQ3JPanhpcTRsUmREeEhz?= =?utf-8?B?T3IxeHRXMGhsZ0V5alVMWTNPbFdoNC9GMnliaW4xYy9abDZPc3lod1VnNXZv?= =?utf-8?B?T3VzLzNheUpXRWNXNVAwbDhrb01FYnBrNHpBMk9nelJoSGlNS3RTcDhoeU9r?= =?utf-8?B?Ny8vci8zUkt2L0dkcmlycDhxRkhmOVV4RXVEWWh5d2hwcVpIU2hZZlFDU3Fx?= =?utf-8?B?aXphZWZEOStjdUZ3a3NTK1dKSVF6RzZLZDJUWkNCcGJzV3IrOFhHK080T1JS?= =?utf-8?B?VVVjRmV3dTI4Z1lMZFI4aTZ4UVFzVTF0RlFXUkppNll2MDYxOVVBdy9PRjhH?= =?utf-8?B?Q3Q3WkFWSkFxdldEZEFPcGlUbGRTempEcFgyTXoxQXlXZjJiZWE4OCthL3NR?= =?utf-8?B?eWxwSmlmMjgwZHJsejNCNy9jWEZWaSthSEN1MGpqRXhpbjVSUUxLZVh5QzVL?= =?utf-8?B?VzAwek14d0FmSkRIMnQ0NkFXTG96em5jR1NzTkk4c1h0bUlTcloyZHZtZGVX?= =?utf-8?B?U05sWFV5YW96K05mVmw2UXlBYXFSUTNqS2hFWmxCbUw1ay9KYjg5UlYxK0k3?= =?utf-8?B?Qm9RWnJ4cGF5ZU1GQldPdVdsUnNuT1NoRXdpZXI4Q1ZUZTI4ajg1amZzMGRp?= =?utf-8?B?TFE0ZmNjYmlOb3pOSUQ3MjVCcXlSUCtGZWlXTkNJdTMvVU5GUXJORWpKeWRJ?= =?utf-8?B?ckVlankxczBFSnpGNWFTcVhsdUE2L2l2U2Y3WnNsVS9FTlo1VTVmaTc4bUE4?= =?utf-8?B?dDBQbXVSZkpqUzdVcXRETkNYUFNPRDVYRngreGdaWmYrZEE2c3dLSnpvbzQ1?= =?utf-8?B?amxrOGMwSTYxbXZZWWJ4L1FFRSthVEMxQVRHdlVycjlMNXlpNkg2NDd2aWlF?= =?utf-8?B?bDlicFJkaVVEOFl2RmtKOElVZ3cwTHVObmNYcWhjWElvTjdQU1V4NkZOOVhW?= =?utf-8?B?d1RqTjEzUW50NHduVmJMQXA5YmJIbWRLR2NUWjNJSW1iZ0tBWGNmVlhaSkNR?= =?utf-8?B?NlNpMWZ6TENsZ1dNTUxwNzFYbGU3R09LZnh1VnRIQ09saDI0MldncWRSVVAw?= =?utf-8?B?UWJiam53SGdaWkFkTFp3VGFNSTF5YWFDQUZDdFlERSt6dmdOZjB0MFJ1dnpw?= =?utf-8?B?eWkxMnFVSnRReDU4STJNNmI0TEk0TWMxMUVFdElYN2s1R0h2VG91YkllbXpW?= =?utf-8?B?VnNoM3FqTW00UnNsYmIva3k2aE1tTmFBdVFJVmdKbmpxNnVLV2JKcFpTek1B?= =?utf-8?B?UkJXK2pWSDFSMzJNR1dtaFVvbEFnL1poOGlrSTUyNkNlZjd6ZzBvd0dmZWR0?= =?utf-8?B?bnpPZ1R4ck9YRDBLY1B0UVp1ZWlQS1R2Sk5nQndpYU1hZ0lkV2x5WDlXUEw0?= =?utf-8?B?Sk1BajY3SEsyMGF6WVZWWnJaSkZVRFV4STQxQnVVQ1V3YXdYOVE3U2RIdGM1?= =?utf-8?B?ajNPZ09Bd2ltUmtWa3BCaGs2dHkyWVU3YjdmZ0E0b2drb0ZpaW00UlNhczN6?= =?utf-8?B?YkJOaTZFblRFckVWU2RqV1RwRER3KzU4UlJYdzZCUWVZTytrWjAyRDBub21t?= =?utf-8?B?eEtkVmFYNkhDdGhVTm9jWmxCb29vY0hFM0kzUmcxamxrMEtPcUJGaWF6bXpT?= =?utf-8?B?d3pqU3M3RUdkdXlvc2RDUT09?= 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:(13230031)(1800799015)(366007)(376005)(38070700009); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?YnAzcFAyL01MWmwxQ1puQzlCaU9CaS9lVmxMOEc3VCtWVEhoZVVXWXhmWjZi?= =?utf-8?B?a25EVWtkTS9nWnlUNmpMQ2pwN2dIQzdjcmptbDE2cGN1ak5ENHowWjVCNnB3?= =?utf-8?B?amMrbVdXVkVKTmNsa2lVODRySmRzN0RldlRsQ0RSNVVUcEdqTzlCM0JJdHo1?= =?utf-8?B?RmxSeVVDdG8wejJLblF3cTJqK0c5RmRCeFI4NkI4bVNXQzJsU0RNTTZoWFdw?= =?utf-8?B?SzdjRHBCa3VVOGwyVlBsSVF5cWcxRGhDTitta3h5NFNsSjMzZ0lkODdyeG1S?= =?utf-8?B?UUlRQkxoNDIxZXd0UzMwanl4RGhHWlVTU1BzakxxTTB5cnR6N0lSbmhSbGxQ?= =?utf-8?B?QXFXcm1UUWQvQWthSmlGZXhuTVY3UVpUWnhnUG83dlhvL284Vko2SmlaZE8x?= =?utf-8?B?KzQrM25RWjloazZIRExLdDdBV3MyTWc4RHB4L01rVFQ3anRGS2RmVzZzdlFy?= =?utf-8?B?aUcxQ0FkS3pFWGd2eExsTjdwMUQ1aWlpMmMySElNdWQ4b3UxV3F0WjZVUWJV?= =?utf-8?B?OG1IbnlBRHJLbzltUkw4bXc2bzNvUDVHR2JRWmpSdVMvY3J4Smp3eVRYN2dO?= =?utf-8?B?UlBuS2NINWFLWlk4cElDcVRHVlcrTCtEalhVS04wVkhZQ0FZK1JCcllpZ0dD?= =?utf-8?B?TTRxVDhUa1NFT1FOMDYwbXZQc1RqcXQzRk5EZ1A0YkNNZk4zWnJ2NGpjZGl0?= =?utf-8?B?Rk9wcER6bEhEYWZ4TjJnRlI1MDREaDg0dDNpRVd4YmRiaHh0NmN2NzhTWk5Z?= =?utf-8?B?a2w2TmMwMXRJQUlOcDdDeTFTTE0vcEdmUkphcTRGR2VJT25BaEpPZktwT3VT?= =?utf-8?B?RU5uTldXaGxNNVhWOHVJSytwNXQrUUloczFxNTQwbk01TDR2S0ZZRjlTS3A0?= =?utf-8?B?bmZmbDV5bElsdUJIZjZMbkJaN092bEJuK2Q5Qno4MHNuaVFpNVpOay9FRFZ0?= =?utf-8?B?WjFUdGI2cmdTd3RBaXY3R1dVL3BLSXVsaFpzaWVJZjdBNEkxb21NMnhPZmVh?= =?utf-8?B?dlNsTjVSN0VEL3RwYnhVVHoxdmhPMTVqejdBU2VQZnZhUWdJbU92cGtTUnRZ?= =?utf-8?B?bkpkK1pjN0dWWmRvUVMvNXBSRllBODJXNmcvZWVTMWRMdng0Q3BUNzBmVVd5?= =?utf-8?B?ZzBoTmlVZGRBMlVMNzdEN3RoVHdITFBLbkVmc2w4UWxJRjd4T3g4TTU1YWtJ?= =?utf-8?B?ZStDQ201S1JNWGhpd0Job2hLZEtvWHJMVTRMbXduSHh2NkE3OThrV1lTaDJD?= =?utf-8?B?WURhdjc4WnBIUGZvOXZMLy9mSTB2TlBRK1Z0a29VaWl3a1cxNnNsTngzL2Jo?= =?utf-8?B?L2FRQWhKLzZ2Mm5nRXg5cTFiUlZqN0tnaHdoTXJzRFFkblY1UUF6elFUb3F2?= =?utf-8?B?K1FpZUw5MjhjdmNEeThDSWk0bTl0UXE5ZWgxZHBzSlpndlUxcElJRVV2eno0?= =?utf-8?B?NE91MVU1ZllIbklzM2ZKaEJyZzdESDdjdXFhL05TMWdHQXJBcjU4eGM1aThq?= =?utf-8?B?bTQxRkx4ZXZuSWhldjBybytJZGdrejFiZ3gwWHU3NGZCVWM1dVltRFUzcitt?= =?utf-8?B?cVp1VXZUcmltalFLOWh6cTNlTUxJdktPYjUwVUcweVBwdmZyc010NTJ0OXIy?= =?utf-8?B?MmxHUEJLNWR2dHBMQTYwa0ZzNEdDNzUyeFk2VU5kcnlqdmJmLzN1YUMvdHZu?= =?utf-8?B?b3pLdnZNR2c5V0VwM1BDcUlTbitEOG9sTVZQY2tNc0hMZ1hpZmptSjJZaWNN?= =?utf-8?B?N0x2YWUzNDR6YnhHdzRDUXozL05hcE1uRTBRZFVWeXFEbDFQSjF0K2h5R0VV?= =?utf-8?B?QmliZmlXc2RCZFhtc1V2emh3ZEsvaENTa2tRcUtBSWpiTHVBT09XQzNITWsw?= =?utf-8?B?TndYZ2xNVVlWZXViUWVOOW8yeFQ1ZXM0U2NMenNCeFFxWDBFaE9vSVZpeUtz?= =?utf-8?B?NFMxYUZCeWJVREtOSkkvdmpnS1lsZGJMYURrZlBpNy8wRkRpamhtaHFGMVg3?= =?utf-8?B?WmN2VlRBQSswbzdjVDJpVUNYeitlZ3NnSTlpNGxvaldxTzk1eEFJTG9BZ2Va?= =?utf-8?B?ZWJGc1BJRlpseHY4WTNubzd0V2JEZnVUaVhudmFmemZjQnNIdkViTXNnelcv?= =?utf-8?B?RW1tOHBGcnBEYVp2dGtSQUptN1FPdVY0N25vcGpHK2hBTHh6YTNvTGlzVlZD?= =?utf-8?Q?uwxpqnYi7q4X9xoZkdkPlCg=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <2F6709242A64EC4A93A4EC0E4EF2501C@eurprd07.prod.outlook.com> 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: a0f1b1dc-4040-4b41-dfd7-08dc6abca472 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 May 2024 15:29:22.3322 (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: t2h20BGHUHJ4JGJTgTRATEPpW6NdmfL3dPYbmRXUqjNGY9bDlc95hHjjzLvYaUp+JoeLZZIm8k54PxHcVw+U17zdK+CFTnsOtVs2mrd25pPkacmlEiFVJZyu/kPg1fXU X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR07MB7768 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+importer2=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=80.78.11.84; envelope-from=clement.mathieu--drif@eviden.com; helo=smarthost3.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, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer2=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer2=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1714663983301100001 Signed-off-by: Cl=C3=A9ment Mathieu--Drif --- hw/i386/intel_iommu.c | 75 ++++++++++++++++++++++++++++++++-- hw/i386/intel_iommu_internal.h | 1 + 2 files changed, 73 insertions(+), 3 deletions(-) diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index aac7677063..400b27fc95 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -5395,12 +5395,10 @@ static void vtd_report_ir_illegal_access(VTDAddress= Space *vtd_as, bool is_fpd_set =3D false; VTDContextEntry ce; =20 - assert(vtd_as->pasid !=3D PCI_NO_PASID); - /* Try out best to fetch FPD, we can't do anything more */ if (vtd_dev_to_context_entry(s, bus_n, vtd_as->devfn, &ce) =3D=3D 0) { is_fpd_set =3D ce.lo & VTD_CONTEXT_ENTRY_FPD; - if (!is_fpd_set && s->root_scalable) { + if (!is_fpd_set && s->root_scalable && vtd_as->pasid !=3D PCI_NO_P= ASID) { vtd_ce_get_pasid_fpd(s, &ce, &is_fpd_set, vtd_as->pasid); } } @@ -6025,6 +6023,75 @@ static IOMMUMemoryRegion *vtd_get_memory_region_pasi= d(PCIBus *bus, return &vtd_as->iommu; } =20 +static IOMMUTLBEntry vtd_iommu_ats_do_translate(IOMMUMemoryRegion *iommu, + hwaddr addr, + IOMMUAccessFlags flags, + int iommu_idx) +{ + IOMMUTLBEntry entry; + VTDAddressSpace *vtd_as =3D container_of(iommu, VTDAddressSpace, iommu= ); + + if (vtd_is_interrupt_addr(addr)) { + vtd_report_ir_illegal_access(vtd_as, addr, flags & IOMMU_WO); + entry.iova =3D 0; + entry.translated_addr =3D 0; + entry.addr_mask =3D ~VTD_PAGE_MASK_4K; + entry.perm =3D IOMMU_NONE; + entry.pasid =3D PCI_NO_PASID; + } else { + entry =3D vtd_iommu_translate(iommu, addr, flags, iommu_idx); + } + return entry; +} + +static ssize_t vtd_iommu_ats_request_translation(IOMMUMemoryRegion *iommu, + bool priv_req, bool exec_= req, + hwaddr addr, size_t lengt= h, + bool no_write, + IOMMUTLBEntry *result, + size_t result_length, + uint32_t *err_count) +{ + IOMMUAccessFlags flags =3D IOMMU_ACCESS_FLAG_FULL(true, !no_write, exe= c_req, + priv_req, false, false= ); + ssize_t res_index =3D 0; + hwaddr target_address =3D addr + length; + IOMMUTLBEntry entry; + + *err_count =3D 0; + + while ((addr < target_address) && (res_index < result_length)) { + entry =3D vtd_iommu_ats_do_translate(iommu, addr, flags, 0); + if (!IOMMU_TLB_ENTRY_TRANSLATION_ERROR(&entry)) { /* Translation d= one */ + if (no_write) { + /* The device should not use this entry for a write access= */ + entry.perm &=3D ~IOMMU_WO; + } + /* + * 4.1.2 : Global Mapping (G) : Remapping hardware provides a = value + * of 0 in this field + */ + entry.perm &=3D ~IOMMU_GLOBAL; + } else { + *err_count +=3D 1; + } + result[res_index] =3D entry; + res_index +=3D 1; + addr =3D (addr & (~entry.addr_mask)) + (entry.addr_mask + 1); + } + + /* Buffer too small */ + if (addr < target_address) { + return -ENOMEM; + } + return res_index; +} + +static uint64_t vtd_get_min_page_size(IOMMUMemoryRegion *iommu) +{ + return VTD_PAGE_SIZE; +} + static PCIIOMMUOps vtd_iommu_ops =3D { .get_address_space =3D vtd_host_dma_iommu, .get_address_space_pasid =3D vtd_host_dma_iommu_pasid, @@ -6231,6 +6298,8 @@ static void vtd_iommu_memory_region_class_init(Object= Class *klass, imrc->translate =3D vtd_iommu_translate; imrc->notify_flag_changed =3D vtd_iommu_notify_flag_changed; imrc->replay =3D vtd_iommu_replay; + imrc->iommu_ats_request_translation =3D vtd_iommu_ats_request_translat= ion; + imrc->get_min_page_size =3D vtd_get_min_page_size; } =20 static const TypeInfo vtd_iommu_memory_region_info =3D { diff --git a/hw/i386/intel_iommu_internal.h b/hw/i386/intel_iommu_internal.h index 3d59e10488..aa4d0d5f16 100644 --- a/hw/i386/intel_iommu_internal.h +++ b/hw/i386/intel_iommu_internal.h @@ -193,6 +193,7 @@ #define VTD_ECAP_MHMV (15ULL << 20) #define VTD_ECAP_NEST (1ULL << 26) #define VTD_ECAP_SRS (1ULL << 31) +#define VTD_ECAP_NWFS (1ULL << 33) #define VTD_ECAP_PSS (19ULL << 35) #define VTD_ECAP_PASID (1ULL << 40) #define VTD_ECAP_SMTS (1ULL << 43) --=20 2.44.0