From nobody Sun Apr 12 15:24:46 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=1715757560; cv=pass; d=zohomail.com; s=zohoarc; b=e4dZeSXSdkouka24bpnlEhlY1bPexsVbqhpJ/6Ujza+DL3gvsFPBAmnjdG1mxgmkmYqAOYbSi4zXKpoZVjJ1Mr1yJ3z92llu4BeklUg6lD1EiH0nv/F3gEiB0P8RlhprTdVT2uY+pJP0T07M49PVhWLVPI8LvJXftFUTrOKMQgk= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1715757560; 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=aKnisHdbFAfgulEF7yIkNe9+bvQwr9U5G5fWP8kqic8=; b=jOFBF+EMLMslqhza6+/Sx+We2TCt7c3HEbP/e5Rsi41GnBHHT2+gNTxvpbrpTltg+pvptcQ2MWmpROrzfI97VO1s2LBRBvhJhd+1wJXPFpYlt7i9UpeBeZwYoCkc1WDJGd9ggM0kiFkxu/XzyOlw7HTJdIWg8h1dvDshOhwtTeA= 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 1715757560918543.0704454075374; Wed, 15 May 2024 00:19:20 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s78rn-0006QG-89; Wed, 15 May 2024 03:15:59 -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 1s78rF-0005An-TY for qemu-devel@nongnu.org; Wed, 15 May 2024 03:15:29 -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 1s78r1-0000oJ-RT for qemu-devel@nongnu.org; Wed, 15 May 2024 03:15:24 -0400 Received: from mail-vi1eur04lp2051.outbound.protection.outlook.com (HELO EUR04-VI1-obe.outbound.protection.outlook.com) ([104.47.14.51]) by smarthost3.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 May 2024 09:14:23 +0200 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by VI1PR07MB6718.eurprd07.prod.outlook.com (2603:10a6:800:18f::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7587.27; Wed, 15 May 2024 07:14: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%5]) with mapi id 15.20.7544.056; Wed, 15 May 2024 07:14:22 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1715757311; x=1747293311; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=aKnisHdbFAfgulEF7yIkNe9+bvQwr9U5G5fWP8kqic8=; b=nWN8KDReeKonxkijvqwiAJpYR2sET/OwUB+ub8cMUKMFuK02sjXTW03b /cSLWa51g9p+5F1481f8wfVGC3OYHdskdk6PswlfjZ7DNXx0lhfcNqb4b Nzo218N+2i2eLnkruwhLgEmHI3gq0uQ/u1+ZMrON+r2iAkUp8mI2Cybmb UuTrF+vP9OcTs6q++PqYtwExFCiYZNugFtWq/uUJqJJuFI1Z0ySk29NcW 4tIOlp/6Oq37SrLLeg/nngrN64QkIz3hXGMVw2cr1VJH/aUKT/lxa7G6I M1nB2zBjCsJO+6BE60h71HKvWhLj/peFs9zzH2dufBniKWYRplbsnXuhV Q==; X-IronPort-AV: E=Sophos;i="6.08,161,1712613600"; d="scan'208";a="12581817" X-MGA-submission: =?us-ascii?q?MDGXDm6pemKBV0ylHiqvuQNKgFoMO9nhaIfc5Y?= =?us-ascii?q?re/TZYSDYfWstlXbZExqBVKXxQhopXc7kMR8DgCIT2Vu34jyDHgfRRR6?= =?us-ascii?q?5KcjSr0ZHuSzv62qkn208mPNoGwuPXiypDktrwymCBfjMSyspJqDXMaq?= =?us-ascii?q?78QEwIv+pcCaL8hhoH4SgbFA=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KL3WAGJBDzfVJ+YKzNZJl8yK+7NSa3ToEAuAkm/S0UDomzTasgxYBA3LDgl2uJMEqBqjomrrPMtwBe8yStYrlA6rzzl3lykE4Gu99wWTayssJJhqQVwUPHmK/3MAyKv836eHibpV3FhBJCZERfwSli5gg5PV0yI+IZEmrhb5ynthp/hmb8tAZVhLxhZsytHNI4ULwAYy45R7ixgFavBfK6mI08F5ZxzrQuuG98BtgRePvR/OVI9IncWWLH31PwT4TQPiFGLNIILnM2UMv8stnv7SvHHbfNGDUutYvkstQfnDNgcwmd6jRUpVj59O5A1qSIvJx20NrI+v4UTbwZGubg== 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=aKnisHdbFAfgulEF7yIkNe9+bvQwr9U5G5fWP8kqic8=; b=R8AI0y94YrBap/HVfoT5z+9L7rzCsxaoyydox2R3HzdkgD3gYhfab0RAdXRKoJDMLVQJRlTCKsnNa1ZPlXedellDC+1L/XAS3b4SYMiOK5QzQMYXXTyTUUH/g0tFoHaRfG2uEw5LPcDE1hT0bcxbN0g0aDtyczKv/HmUe6g2v+HR9gfkS0Hnf449PQJVK0TrBhYTS07uZO1hNlQBEDvozQohVDaUNDzrXFRMhxdqn8O+CGuT0lcPXMZK1Ckodk7YamKzkxSEJHNpBQkc6H1WCZ0ibUiJ1Z73w5/M4TxHeGNFT5cai7oQMbvqFdWHL6ztSkfgOOPFFYgfDXnXgaU4TQ== 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 v2 25/25] intel_iommu: add support for ATS Thread-Topic: [PATCH ats_vtd v2 25/25] intel_iommu: add support for ATS Thread-Index: AQHappeCjqBaENfy6kaXOnkN/YX9aA== Date: Wed, 15 May 2024 07:14:22 +0000 Message-ID: <20240515071057.33990-26-clement.mathieu--drif@eviden.com> References: <20240515071057.33990-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240515071057.33990-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_|VI1PR07MB6718:EE_ x-ms-office365-filtering-correlation-id: e560f823-9b38-4619-ea1e-08dc74aea509 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230031|366007|376005|1800799015|38070700009; x-microsoft-antispam-message-info: =?utf-8?B?Yjl5R00rSFRhelVmOUVMbVUvM1RCSnEwcFoyYXA2VkRuMFI1TDUrQmRSSkF1?= =?utf-8?B?Qm9QS3FQRWcxeW1yRVZpR00wM1hwSmNMQWJDdEljYXU4bkx5N0NoNUpCT2VH?= =?utf-8?B?bjFEams4Q0pXaDNKcjVWWk5PRlVTQ1c1OGJHQ2VoK0FDK2x0Z3M4UTFXdTV4?= =?utf-8?B?c3BWbjA4cm80c3lNakRNR0dJZlh4djZGK052ZWNVbGVTbWw3TENINGdTL0pK?= =?utf-8?B?RFRFMlE5eEdpR2V4bVpOUkVyYnRGczBPS01jWnluS0lnTzFNbEN1S3hWZmZR?= =?utf-8?B?eUMrc1pSOTFNeG1WdmVidmRMR0M4c2dXOGI5SG0xZWFndDJneXRhL2JnNVpi?= =?utf-8?B?ZXhZcUpUZ1FOcERKblQ3SDh4S1huSmhlVm9lYUVZdVh5NU1zWUhhdkx1aWJv?= =?utf-8?B?dGRJYVY1Z1pRLzJ1MkFyVU5zMk1UOCt3K2QwVng0L3l0MjR0elhsOGFzQ0hl?= =?utf-8?B?NDN5WWxTNTNUbXU1ekhreVU5UkZmWXpZdTZqU0dvU084K0NqUWFVaUt4OVVj?= =?utf-8?B?cWhlTnVWZ29tS2JMMXVEMnU1bm9BQXZzZFdTTCtxQ2toS0N6am12Z0xGYlJt?= =?utf-8?B?V2hNdGZpMHNFa2FCdEVzOFFQVWdNUjBMUlVULzZ2R0dIRVhYcm9wQjdlTUpX?= =?utf-8?B?VlhNcVUzcWNLR0NaN3R5VE8rbTdIZ3VNVEgzTUNNdkt5SkJ0WTNWT3lqRWJp?= =?utf-8?B?VVJ6MXZ1bnlNakRXQzMwbjdLMGE5MHB2T0NhSEhtVG04TzNpd0c0Ymt4T0ZP?= =?utf-8?B?VGJ5QkNSUktBbnZGcFVPOXVZYzY0NzVhdFl2TGxxOXNMRVpvSHRCTDNPN2lE?= =?utf-8?B?S0E2cnVRckwvVmNvTTlzeWNqZWh3bVFjNU9uamliWkNKaDhBSzhmL2l4NVRR?= =?utf-8?B?dFBIdHc3QnZZdFRIa2Vma1RXRnE1OUtCMEphOUpmQWZrZU5POVZEaDB2ZkV2?= =?utf-8?B?NXl6V2dubGo3TkMyMlMxckRYUlY3Y3hqL1BEaWwrUU01SU8zSFFHQS9XRjVU?= =?utf-8?B?Y1NFSkh1Wm1aaEhMWjkzTnErMFAzaFRCcU1haE1OaHJsdURVQlRmaWh4Q3FH?= =?utf-8?B?NldVV05sU2thazI1MHlSTlQya1MrQXpsQ1B5UVdmdEVnMENpSCtENXlOR01o?= =?utf-8?B?aDc4WXNnODNDbDh1ZFhZMnVwWEY3VmlpK2lvTnIzYXJlSDIvVUZLai9oaXR4?= =?utf-8?B?dkFXTmI2bFNGR1F4RHQyRWVDODVoRVhDQWEraDEyMEZDK0p3QnYyaDc5blVU?= =?utf-8?B?TEhTVm5XbmJXWDV0LzdvNzF3M25zejQxajZSVFhOMm13NEx5VkRwbGQrNG04?= =?utf-8?B?Q3M1eHRJTm54Vmx0cU5wTFIvLy95cVdDdU4zVEN0WXJUby94K1haNFVLbXUv?= =?utf-8?B?dlA5Z25NMW5PWXBlS3BaTW5CUlBjc3I3MVBBb0o4YWpUNU9ZMlZ3aVB0N1ND?= =?utf-8?B?dHVKM1hJNmZkYm5CVWlhOXJzc2RaQk44QUNtd2QrVVlSSWRFOXlmS2hWeVF4?= =?utf-8?B?Y2xKMWtEVWdQcnVGZkgrZ3BLZHlOTVhHY01XM1l6NGJCbkRJWlZQN1VyOHdM?= =?utf-8?B?QU9qbHYzd1pwcE5DekNEdjUwOVNRS2o2aHhEWWllOGpqS040U2lod0hXejNs?= =?utf-8?B?TVRTSmJyQWwwb05lZU9HV0owbTF5bUFwaHpIY3JkeVFiaDJ3VTFLYXFZWWZW?= =?utf-8?B?aWNDZUhDbE13cDBlc1VLSWxSdzV2anpLaGlwaGZ4enVRT2ZJc1ZHb0xqQVg3?= =?utf-8?B?L1c4aWZYV2p1Qmhtbnp5SnRHNXRPM2U5WE9nZzI1Ynhlc21QNzhQcDhXVS9v?= =?utf-8?B?dHZTTm5vZ0FNZlNuZ0tEZz09?= 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)(376005)(1800799015)(38070700009); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?cmpPOUlMQm4rUWxYcUdwWS96MUZQMENEc1lLV0dKdzJDSFMvUE5GMHlHN0tG?= =?utf-8?B?QVYxVmJibEtOZlRKR2tGY0JGZVcxU0dYM2dmbVpscWh5VkEvcjFhcEMrUnJG?= =?utf-8?B?TVplenEyY2pJSlNyTGRPejJiZWpvVnV3Q0syR3BEMHJmQ3lFN2dpM0FNN2JC?= =?utf-8?B?dUhnNTVsU0RSKzNwUUxvaEVlNTg3QmtLbkFZY0NwSGxlbWtZZkgreWFTQkRH?= =?utf-8?B?N2hqd1pLMFRseFNMMkFUZTlMeEN2RndIM2crUE5LdHViOEVkbG1hTWpJSzN6?= =?utf-8?B?WVlGYXAwdWYyalFGWFJFdHpwaldMQ3gxVjhQRTBkT083NytyWUVlWlJlUFow?= =?utf-8?B?bW1ZMW94b2N2UHJIZUNZU2dNcDM0bThXdERXSHNMMnV5NGRjZEVlcDBoUHlm?= =?utf-8?B?a2RBNHQ5N3FuUUl1dUJ3U1hOTmZqYUM4TXNqTVIxYitZZTFTZm5wNGQzK0lH?= =?utf-8?B?Syt5bzA0SEdQUEg5MFJNeTRCeXJLNVVkdmFNYURJcUxyTmNJOFFiUkdjdUcz?= =?utf-8?B?NVZ5UEZmMkpiUVRjajU2QlVWZ3dmMFJwVENhNCtaTFhGTHk5VVp0U3J4ZnpI?= =?utf-8?B?bndyTDlXNHgvVyt3Nkw0MS9RUFFTVzVKRFFOQWM1UXk3cTBSVWIyNHZHYkE5?= =?utf-8?B?c3pqdHpjOVN3Zk9YSWFKNXhrMDZHaDAzb2lZQWx1MkpzcUdTbU5ucUJ6aW9Q?= =?utf-8?B?b0U4ZEl6T1NYQ2UrdWNteUZrYUZOZ1hOYjcwbnJPakE1cmxMSW5JeG42WC9n?= =?utf-8?B?bE1JYWwvak9GMlZQcTdJMHFCOFpsVDUrWHRlSEtpZ3d5UnJnNy9pWUpKZUJq?= =?utf-8?B?OHA0THBRem04RHlYNnJQWUlDVmxwYlg2c3lxOTZzY2RyRGNGenhZTzhwWU9K?= =?utf-8?B?eUp0emJQQnhHTmZzS0ZHeWx4emxVaHRKbHlsV0MySE1GaVpkV3o5VFNhRVdD?= =?utf-8?B?Nlhnd3cvVlZ5RWF3TnJUZDhBTWVLdWkrR3dXUnBIUEpUTG83aFgwcU01RU5E?= =?utf-8?B?NjlxUE1PTXdWd3lRbENzL1liSEpOTExKKy9mRVNDVVdjL0g1YXJPNlRIb2s4?= =?utf-8?B?Mm5GK0xzTHpPaERGNE1XOGNESUVWZG1xb2tZR3lBdnREMDN2NWFmU2tJdWw1?= =?utf-8?B?R1hkTUhJUjJaWWF6WEdEVnZPd0YvRktOL0FWVENsOTg0TzlpYUd5N1ZnZjgw?= =?utf-8?B?cVBCMWRDbUpOa2x3cGhHMDY2bnZNUjdPcXpNRU8wZ3RnOUxXQXZDM29TSnph?= =?utf-8?B?ZFdQN2s1Z0UwSFVGaXBoY3FUcmFlMWtPQ0pPUm4zS2tzOTlDN1lxcnhmcnI1?= =?utf-8?B?akswbWlPQno0Qy9EUHBWQldDcmdESTN4OE45T25GVC9rczJVYVlTcmVEV0M4?= =?utf-8?B?WlFVYmtvOGNnRUdJcVFzVjZiOXd1aDBFb2lCc3lZOUc0YUtKUVZ3OVZKT0hX?= =?utf-8?B?Ti9qcnE0S2tJSW85aHRZR1piWk1XamJJY2dLL0F2L0hPbVRsRUhqWE5OOE9Z?= =?utf-8?B?UEJrMWRkY0gvYmtxc2J4bU8zUEo0alZ5ZnJ5S3Rpb0VTSVgvOUM0anQyYUI3?= =?utf-8?B?dENyVnlGZHFGYS9XdzAvbER6ZEhzWks5VUdoYzI4N0w5ck5pT2F1a3dFVndP?= =?utf-8?B?eWQvTUcvYXRERngvQkhDWVFPYjBMMTFIWnczTG01dFIrVHJvZVNSMTdudDJM?= =?utf-8?B?bDFKY2xZRmNpOVlDejdGVCt5L1p4Z2FWUHhXRnpjb2hFM0dJQ3QzdHFvU1NG?= =?utf-8?B?RExvSEdwam9JQzZIUzhCWjl1Zk1DV2ZEY2I0TXlRQzN2V282djFkbUNjd28w?= =?utf-8?B?NmpnQW56UjFpVDNBTk1jRDRpY0EvV3BkdE5yQ1VIcUlQaTc2TEpTYksxUlQr?= =?utf-8?B?SGpEdTVCNWlFRGxXK0NIcnFKdDRRUm9QbU1QTmFWQ0RtTU4wdVRpRTBYUFZV?= =?utf-8?B?VjlKeUhSUlk0QXRRbW1pMk9SRGRFTlBJWTJxTDNuYysvQUlxVU8zSW9qOTRz?= =?utf-8?B?eEFyUlVBOXk5Qlh5RzlaVjNpbTJsamN1K05pZWs4ZVN1RnE5dHJESEVmNlpp?= =?utf-8?B?Vkt6eGNjU1JNb2x4V2k0N1VJa2RSbC9UQ1dFTHBTNkt5RTNsSEhQSldHcUZ0?= =?utf-8?B?Q3JBZ0J0QnN1RSsxWUs0V2swdlpLWUU4U3Jla0F6Y1dKeXRydmxKOHBnOTdH?= =?utf-8?Q?MLzG1/c/r/EAIXzefG499g0=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: e560f823-9b38-4619-ea1e-08dc74aea509 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 May 2024 07:14:22.1185 (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: YRlVO/4RKl0tZbvBPClQdtdT1nMzusoPoCUYqgFJ1s/uDMmx2/jJ2JUXLzqi6/7mMMa6dKkpqUBS28GeAAMo98gWzeK9LPlQeSZkYJ2GuUWC0ZxCuZJjQVYn4KCq46bc X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR07MB6718 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: 1715757562565100003 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 67b9ff4934..7421a99373 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -5394,12 +5394,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); } } @@ -6024,6 +6022,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, @@ -6230,6 +6297,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