From nobody Sun Apr 12 13:54:16 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