From nobody Sun Apr 12 15:18:48 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