From nobody Sun Apr 12 15:23:06 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=1715757527; cv=pass; d=zohomail.com; s=zohoarc; b=IPH6uZNpfqWDn4cRQH6hLjRNIJAG/Rm0oaTJEktV0XuNYE8saHISykZv7HqWEiBcfirXeD6+A9zMFsLKdvuPZdBI64N5dyyteR0oZrIXjAaI2Tb+IHSQdlS8LRW6DpKgcbKz57YUuaEJueMknUAtcQUbCGy1fKwejVG7Pjd77/g= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1715757527; 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=9U8NReqWpaS6WMzQ4uEVQ6iKKTM2a3k2YHd6FNepzus=; b=FvjK4VoenWoP5wK01NgFNtfzABFDk6aaIBBBR3wmF5TpPNYnbFVcPmV4Tv/8xAiZTaYSbr+K28BEVjEf3y9YGGvVeL3j1xqzX0wEdgPXpoYu6GmwT2Vh6xgYGw36VUy6MyFOUGKrSix6kSUeitX2zWkkuv0tBpm2K5/Zi6BYJLw= 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 1715757527584595.4161080831551; Wed, 15 May 2024 00:18:47 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s78qa-0004bi-MD; Wed, 15 May 2024 03:14: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 1s78qI-0004XM-Ml for qemu-devel@nongnu.org; Wed, 15 May 2024 03:14:26 -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 1s78qF-0000oJ-Aw for qemu-devel@nongnu.org; Wed, 15 May 2024 03:14:26 -0400 Received: from mail-db8eur05lp2104.outbound.protection.outlook.com (HELO EUR05-DB8-obe.outbound.protection.outlook.com) ([104.47.17.104]) by smarthost3.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 May 2024 09:14:16 +0200 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by AS5PR07MB9896.eurprd07.prod.outlook.com (2603:10a6:20b:676::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.55; Wed, 15 May 2024 07:14:14 +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:14 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1715757263; x=1747293263; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=9U8NReqWpaS6WMzQ4uEVQ6iKKTM2a3k2YHd6FNepzus=; b=m83wxokB+oYxatC3Pe8+yY0n1ir7T9vCvodtvzHtnkZVn6shQScp3PZd X/Zcm+itJcV0WD9BETMxfo9EVWAODoFxDTZfkINyoVuAE6YeWiNk+VikG jdAy0ETSt1o//NVNnjf47t1tQlBTULD0kn6abzdd76/d2rkvArbWLa1PI E0J+JR7GmqHr2pdj7cTLPEBMfrCJLRJBjhu/5y4sUi+GhzR0tMCQwYXOP ZzhLu8J6xSogOetSTkPHM42fSTGuA3Rfvqo9meD18/YD3lqGUFOKVUYDb LU77mjFX64x0KpF2OtZUEYmBl3gdQX+zR+nA8+7vAg4aGonv4bVviu+yL A==; X-IronPort-AV: E=Sophos;i="6.08,161,1712613600"; d="scan'208";a="12581794" X-MGA-submission: =?us-ascii?q?MDGlluJ/98O0j2vwu7fZS51/kx2v2UWTZy1PMg?= =?us-ascii?q?qciebDbvZqgkPzhN9FW9p34KXR3Ia4rsN+OxbS7CjOGDVc7apfUuxwuC?= =?us-ascii?q?wGqZPMXymuPYL+aH7QDCExxHTLAbcbKAR/VbfhN1eXaJGoSyPAcUDCjO?= =?us-ascii?q?irgOOp+3jckof747d/hNIfmg=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AO7CCowNHKvwUWWjoURfp7UlWcTwwNl6J91kB2ojt25gsl85A9bv8DGf/tYBp7dVTPacNC0i25HpbYo5QhyVcVJM07+Aye8mPC5F4Zxx8PbjnKXLd4dbpnnE5OVOYp4pe9oICrAOaiRfrR4rCI3ZksL7OxmjSvGPuyILv77JI65E/uAtBrwkM3WEc4Mie0uMKrQIhAYBpeCzTfcvs63ssrS1YU9TQ9sElNceeoaFdmq+NfDGS97AvfSARLWK8jPGsH5zeCZORI9f+3PDfHP0+HqrhZuj/8MCQdrasMBgZ3aXn2tGdOEjy+97NkSj/MNR6ZDm1b1BmZkfUd4+O8Kxig== 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=9U8NReqWpaS6WMzQ4uEVQ6iKKTM2a3k2YHd6FNepzus=; b=cJt1cygquSvtnVI3uSSroWA4kZL1OyGfTmZeezQJwmxweTkSIpW0hzq9vbs6WZ3f2AFvpTkovzusim4y1dpglncBhIWj4pEJo+L/8IMk70A2GyUGEEgHZy1tzgvcexeyx9hpSLwFwIs9Pe2domA/FPnOA9q1hapRCrLdOCVtAKRa94qxxgYvvMwGUKkeiYHLYD2CmfFbDWUf+Rv/vXb/EsXY4Dtd8RdQjyvTkon1YzDtw8yImxvJuFfyjzFZ138WGGjG8Y3m6fbGWzkJmw+NStkKEnKUdViYREhcQhEo1GW9kxrHofV0ZIJ6k3JW9edM+UYeXSkgWid46pHCFaoSIg== 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 03/25] intel_iommu: check if the input address is canonical Thread-Topic: [PATCH ats_vtd v2 03/25] intel_iommu: check if the input address is canonical Thread-Index: AQHappd+KiUrruFNmUS5CpwZ2UWvFQ== Date: Wed, 15 May 2024 07:14:14 +0000 Message-ID: <20240515071057.33990-4-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_|AS5PR07MB9896:EE_ x-ms-office365-filtering-correlation-id: 9bc55aa1-ccb1-472d-1d6d-08dc74aea0a2 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230031|376005|366007|1800799015|38070700009; x-microsoft-antispam-message-info: =?utf-8?B?NkNoVnV0TEhEOW8xK3N1MnRPcFVKK2JHTC9qd1Z5WXVOUXc3RW5wQW9tby9B?= =?utf-8?B?YmtUb290Q2p5bEIremQ5UjA2c0x2dXFIMGNDYmZZMHI2R0MxaUltbXFOdjND?= =?utf-8?B?WFpscTJZZnhuaEtjNkRTV3lTSFlaYkpMa1VhNlhJSFZ4Rlh2STVDR2gzRUxO?= =?utf-8?B?eTY0SmR2bDgybkFLK0tIVVV5eEdIdlZMWGxXaEQvcU1kYXp3YVhaYnFuOWJT?= =?utf-8?B?aHpXNDdsb0RDU3RicFZEZmtGTG9Tbjd5amFxdWtvYUkyeDNRN2xIT1JSeE1S?= =?utf-8?B?Z2pUR3QyRmdoZHR4UUZDNDVHZklHMGcwQ3RpdHpoS3dab1F2WmJpS0ZDTFRv?= =?utf-8?B?Y0hTT1UveUtYVDFXSUM5S0FlUjlmNC9yWlNwdDBOUzgzcXJoVytsNEkydGd1?= =?utf-8?B?d2ljakxySlp6VmxYSEpTTit3bTRPbk4yVnB3aWp6QnIxQm1xNXVoRmhZVDJY?= =?utf-8?B?bUxPK2lsMUxsRjNleFFWQXdoVEFrL3BoR0JnQWxMMXpTVFJISHU5aDBzMEhY?= =?utf-8?B?VXdoMWNiWUp6b200aVVCNXBmTDlXWGFiWktuSDI3YW03M1NUeE5oc2ZyOXBu?= =?utf-8?B?Wkh1SjRVeThxdkJ0R2ZnZUcwQ2QrazZpcUJkcFFkaEs2ekE5eWZqNFBtRDlq?= =?utf-8?B?QTBodDJsN0RLWW9vNHRwV3dCVTZ5UDh1cDZuWUdpa1RqNDRINmNvaHhuRyts?= =?utf-8?B?a3VDRjlXTHMzNmtVN1QwV0RtM0ZzTUJUdWc5R2tpYTc1MDhjK0hndW5kcXRC?= =?utf-8?B?L1gzTkRWdUVlVTFKZitBeHhyVHlabldBNDRJSU1zenExUzhHeHpvWnVYTERK?= =?utf-8?B?dldFUFpKRHhNcnl2TzdCMThkSndkNERLbTAzTHJiWUhLRHpPc1NTYnJqSFM5?= =?utf-8?B?b3FXbzVlNXdCN2lGYU9QUmNFa2RHSHA2L2NIdlNUMVV4YzRlOWNvQ3dyakNB?= =?utf-8?B?ZHkxK0FCT2xMcjNxZ1hkWDlGbXJLcllQQzl3MXZrTHh4NGw2TjZYajg0UVVr?= =?utf-8?B?bWFDVHVmcFVZemJxSXFwekNOV0F2cVA4czVYWXNxUC8raHZuTGVpcmNyRFZ1?= =?utf-8?B?K3lka1BJTjRpMnFFMHlBWWdBcSsxNUJHQkdlUUw5YldCNitxK1B4cUNXQmlx?= =?utf-8?B?WXJxTnhxeG9TMGlYc3NLVU1VQVNmR1J0d2RPZjJsd1AwS0syUWMrWkcydjJR?= =?utf-8?B?eFVIU1RwZlpyNUNIN0tNZ2lEcTBVZDZ6eG5rbEdFcGZSYzlSNFo5S29BKzNn?= =?utf-8?B?aVR6c2xIWjlaTExrNDNaZXN0dUl0QWwxZTZTY0ZlSWc3SC9OZXV3WGdCcWt1?= =?utf-8?B?VS96aEd2K01zZGZnNUZCTkplVUllaDV1UmJpVFFhZHNwdjlSYVgwS25MUWk1?= =?utf-8?B?RXpjZkNtMU5ZZUZTNHpENmRPbDlnQ1Y2bWtRUWpyL3RhQ2kxQkJoNVRTb1V2?= =?utf-8?B?eHd5UVJNQ0hadEx6elJxcUg4SmZoUGlBazZRbWIzUE9qWHZoYmpUbngwbnJr?= =?utf-8?B?VjVjK2F5VkM0VlhKYzMxeFF6TDJING1Ea1JhbDN6ZHoyRUhEOFdad2NxcmFy?= =?utf-8?B?WnhxSmlGNmtuOUdDeUdITDJHZUZlSmVSUHQwNWtEeDhxVzZYRGFsK1lKMFZx?= =?utf-8?B?alFneUVobXZ3d09oRGFnWTJyYU5jakpBU3loODZkUVRnVWM1V2llcmtGZkJN?= =?utf-8?B?RHNqbkdkSzNXdUw2bUwxVEZSTWZleGozSWsrUFJSQ256RHB6TGUxMWtuUzZs?= =?utf-8?B?ay8xRml4VUw5OWc5WTNhN0JReVNzV3VzY21zdU9GOWs4Zzhub3E1bTZYR3RI?= =?utf-8?B?UEdYM0M1R3JHODNFWTJCUT09?= 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)(376005)(366007)(1800799015)(38070700009); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UTFsaGo4bFJPVnZuL1lLZ1Q0a0dKYlcrZDllTUh0QmpQd3lpdXVpTHZCMXB3?= =?utf-8?B?QVU1dm9YUTA0OHd2RklweTllVmMzSTh1dk9nTzVTQlg4ZTZqaDNRdkdRYnNq?= =?utf-8?B?emtYRG5UTU4ybmdEbXZ3c0FtOE1zenpjYy9oMFJlcnFROHc0UHJEM0NMUmRu?= =?utf-8?B?eC9LNjgzRndqckVaaUtHQ2tEekxyeVhtYkxrTXdwQWtaaHMzNitkMk9Qdm92?= =?utf-8?B?eGhidW9YZlNNeURSdm9PTFY1bWZWbUU4b3RiTEJycCsxY0hDS3A4QzVCNGZk?= =?utf-8?B?bzV6VlExanVWYUFhL3VqUFB5RUtZc2RZYVNiT1ptRnRXQ3BwUjFiZ24wdFdx?= =?utf-8?B?RS9LNmVFZTlPbUc0eUIwcmw4Q29wS2VyQ3ROeVVNNXdFU1VUYXNkRnpieTNX?= =?utf-8?B?aHU3WWJEalE5M2tLemhnR3RnZU5XcktDbVN5RGxmRm1IaU4vdHZYNEdzMUFi?= =?utf-8?B?MGRHUGJkRkk4RWtBY21jUGVzdy9haVFmekd6N0dieXdmNGJRcnpTZTJ3c0pW?= =?utf-8?B?S1BHcDZzQnR4TU9EbUM3STdHMTJkdkU1SlorM0hSWDVDNzFIczRCakk2U2dK?= =?utf-8?B?amF4djVhdGhpNkFnMGJSRHNJcGNWRUhMd3hiZU9hR1R1U3VzTVBWSFRMcHFv?= =?utf-8?B?M2cvZWZJYlRXZXlFbWdJaGtXZm4xbEM0RzRYK28zelF1UEpLT1pDL1dweTBr?= =?utf-8?B?OGFJV1dmLzdTblpTNzNjdXhYTmorL1ludmI5SWp3Rk9JT0FEaGx3aytDVU5t?= =?utf-8?B?YVA2VmZna1RtNE1oZjdUTHZ3N2lmalhOOThMSFVNR1dYZ2xONGxpanFwejBW?= =?utf-8?B?YnNkdGk0ai9qOWZxTGxSSTEyaTNDUzZsZWd0TDQxMG1GYjJ4alZsaWFNcjhn?= =?utf-8?B?b2Q5LzB6VXgrWE83VEpIbzByU0xORmh0QWZpMjFhVk53QzlpcDNBcHZsQ3Z6?= =?utf-8?B?YXFsZWZmWVFRU1k4Z3NWYmhjUk5EZTUvQ0V2M2ZHakgyK3Rxb0hlUm5mdjNx?= =?utf-8?B?L0FHSUxqdE1VRWdpdktnbXpBdEZNK001NTc0UW4rd2FQMmsvbUozK0dSeGVH?= =?utf-8?B?RzJlaVRZVG1yTVRxT05yQXNjb3l5djQxWjV6QmRJZG1mTVNiMzFKSVBhNkds?= =?utf-8?B?RmMzem9nakZFQi93TGRuTXNJdGFjUGFsL1ZOdVowamp1TE5EeXkzbnBNZmdV?= =?utf-8?B?ell4MForS1hjbTBUcnBkcGN3enhvNEdMalpZQ2xqRnpIZUN6U0VRTnRiOHNa?= =?utf-8?B?RTd3Q1NvaCt0cmlmZTY4SmpQb0F3R1RZRDAyZG8yRHhvcm9yZUQ4MFlyNXln?= =?utf-8?B?MG9wcUhIM01VMGdGWjhSL042ejNtMHFwYWZCVGIvMWREV2ZvWWF0YVJzRVBm?= =?utf-8?B?eVBmME1zclVnRTYrOEVzVURRdVAwYWRid2hSVkd4dWl4RUk0dUQ4bC9rWDZa?= =?utf-8?B?ZWhUSzE1cWtleWJQcFhRT3NURFduZTFvcENZc2c5ZTNUWldZVUtVeVdYTjJz?= =?utf-8?B?NW5HS3dRNlMrOEZjSG8xNld1ZldOdVZ3RHo4NzhFa3psUUwremxjWkVEQ2Uv?= =?utf-8?B?Z0lXSndWRjI0YXVna3l6cXhROGU2dkVTcHkrQWZFY050d2h4Wmh3bEF4L1dl?= =?utf-8?B?QXRzVjlBdHVETW4yRTVmV3RJZ1NPTGlMOXJKR2pQWnIxMVJNd0daS0RtT0tz?= =?utf-8?B?YnBGZ1FBYkZhelFDeEs0TGdJcGVybDgzdXhkYlFvZ2Y1M3RoSHBiVEpldUth?= =?utf-8?B?ZGtSRnZ1a2x3ZzhGd2lyNjRLeGU2Uk9SOVFFNVpBMENpenJZZ2M0dEtUcDho?= =?utf-8?B?OVMzVWNzSE5TL0c1UElyZWJNd0MwaTJib2tsZlFvZWVOaVpYQndjbk9QcVVS?= =?utf-8?B?bkc2MTBIM3ZWN3h2WU9XT0JvUmR3cXJua2xRSzhTM3RralRxUVNsVzBPYWc2?= =?utf-8?B?THB5eW1neXIxWE5GL0NCbzNOM25XcUJzSVJnOXlBMGJSSWk3SFYvQm81d0gw?= =?utf-8?B?U0R6R2pDVGpFY0krb2JxVmhtbzNCdmJ4UGs1cysyMTEycmk1RE85YUloOU1M?= =?utf-8?B?N1ZKVzNmZUNReWUvTXNXNTF3NnVxakU3bXd0NHl3NFJveWZCQUZDeVBlS1pX?= =?utf-8?B?MWNkVGpHUnRGSkFaMjlVZGxXYW1CKzdIL3RaZHNSdlJ2SlVsMjFtL2dFRXRk?= =?utf-8?Q?fBSOzsR1QmOSeHiL/LXdd1o=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: 9bc55aa1-ccb1-472d-1d6d-08dc74aea0a2 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 May 2024 07:14:14.7333 (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: aByEgcxOj8EIYo0JplJZLILyRvsmqYaB5H3cWMbdcmSWdYfUGpO90ez79FbnMcFUuwEYaX+DjdJbeWbD95HdnEUHFZ169SBg1wwxDaL73k3WCGBxsG6uzv7pNw0V/RVr X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS5PR07MB9896 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: 1715757528351100003 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 | 21 +++++++++++++++++++++ hw/i386/intel_iommu_internal.h | 2 ++ 2 files changed, 23 insertions(+) diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index 80cdf37870..0ecf00f37a 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,20 @@ 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, uint32_t pasi= d) +{ + uint64_t iova_limit =3D vtd_iova_limit(s, ce, s->aw_bits, 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 +2053,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, 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