From nobody Sun Apr 12 13:40:20 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=1715757502; cv=pass; d=zohomail.com; s=zohoarc; b=b/J+2rCWh78RFZ4aB2eRbelq8PzW6BZ05TfdxVzQtuadR5VEVbhCnSoaKVMm7Vr9DzNKEundWsjWGk3/XA2LihC0ZIrfnxQTPqEdBqPnEcriUin5jvNDDMJyRlNR1H6oYsuenvkqADCFrzLoPH0leJ4OD3NilgtZdq2wXA3jeFU= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1715757502; 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=hUrWBK35CrSEO1lYpywbtOCiRbCm7hmI2V19+XEiGwnxvkyiFPT+GSGJWlvMTNhYp9JSeosMWd7Qf+I1eNEyJSC4AmXnhUgLB7VZH9zytYi8ElY51guIcex8J6kKODoTu0dlVy3/ujwfemuJkS8NBCGfaFuaZMa7N7cvBcGqh+s= 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 1715757502018578.959240765268; Wed, 15 May 2024 00:18:22 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s78qI-0004XF-8d; Wed, 15 May 2024 03:14:26 -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 1s78qF-0004Vs-52 for qemu-devel@nongnu.org; Wed, 15 May 2024 03:14:23 -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 1s78qD-0000oW-B6 for qemu-devel@nongnu.org; Wed, 15 May 2024 03:14:22 -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:15 +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:13 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1715757261; x=1747293261; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=oYY4iC6hjphMuWFvN9OX+COHJCqK87uXfmgSAcUtRSw=; b=u/ur5GVlhXnJORysqrHKHlDcgcV3PZXJ8j3JXgRmyF5QaxAsUwxEtEfa 0GyDhtdYuUZDtsiEI25KWm/7qAB6sXzekjeUiX96/YMNfh5bjs0LgXyif 9ElZFh/G75f4VCVActDAc9i1CqdDYgjxY2XRsJ14BXFAxnKd8Ajfrzl6c Q7Mlv8kbX2pP+Uq0v3keiXbC6LcX95gpBxGW0B1O3MMQUx8gr4742jOk8 Ns0vbjUmu54+6YXttGJFOMvQP8ceUvVVFZhUDvjnCDv2P4rtyH8GfG2fJ ZOxpk3jnK582MAa0TlJq4iE1cl5EdIl3JUFvDp+lbIlZf07WTDyACNbLO Q==; X-IronPort-AV: E=Sophos;i="6.08,161,1712613600"; d="scan'208";a="12581791" X-MGA-submission: =?us-ascii?q?MDHLic8GIb8P44XQJMd5iXMUqrMQcUO+B2t9Xu?= =?us-ascii?q?DVFk/vKpfgR9fSFfoqlh84Gsr0eE0Lf+9HBCBKmm9/Huao4ZpNjjsp+0?= =?us-ascii?q?uQlvx4/mFekoy/aH8Sq66viOoBkh26w9jLuzgAH+XFIHlHC4cHTHvD8f?= =?us-ascii?q?CF+E1JGMkQC27ErL2CRnXRng=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=i+9TDeDtX0qg2c1RdU3ct72eZ4ixxKxPQq+q+nsBqk+F/dYM1Qnufisa5J6EwIrAGw1rq/KkLCRdrHDRSeNUHJu9HfJSUgfNcqkIe86FIAVBNivYBOrDZ6J/3yj4GH4NV3cK8JUPkw7wGFXaiPwzCoVGqw7QY2cE7IxEVT2UrLH8oY6bWtKrRUg0O1tNLwL1ytrLkVqOlFKvaGcDnuYAjk8T2yMVFwEBfdxmlHjQCylxcek7y2WXBMw613js9WClUaXMRLTpDG/epsscmkfTfzRzS9+0Bz6rAUFM/2mOp9o48x7ejINwQ3vlzAwfmMuSGHwesUOjX6f1AQLtvHqJWw== 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=H4QLhS6MBQCh6d6IHxM4IcHoFws8Xeaz+FPtZVisV90dJ0ZMLJxWntypu3KtaDfSFsYSHLKGnNGSoCNrN4MVd3Vg/rP65FhAQm80UyGw30GNkpyYRnYZaPrhUQbJuRfTMF/x8kgp3SKIYbghIN+NiVPGXhAI2J1uPsWhF2KI9I2ombjGAbX5LkiJOJP8VSp8xTUSYRDx5ZKaRsEo2GVmdE2XXeobchLe30x1xrH53aYnZA1EQ7OJ9FWdgTkjnEptpVsbTOrSrmlNy+Zgemz1QjXgWXBlYkO4AXTm4GlbsAjsJvzr1dpHwg78vvQy7IDlQS6SWV/OKBVRsynsRszH4g== 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 01/25] intel_iommu: fix FRCD construction macro. Thread-Topic: [PATCH ats_vtd v2 01/25] intel_iommu: fix FRCD construction macro. Thread-Index: AQHappd9IJaBN0w6+0yo/6p5M8k7GQ== Date: Wed, 15 May 2024 07:14:13 +0000 Message-ID: <20240515071057.33990-2-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: 460be09f-431f-4ca4-29a7-08dc74aea026 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?RGtKemR6R3JmcWVlZHRtYnZXUmJQYnYyemY5ZFJzV1VFVTFCUVVlR2s1ei8y?= =?utf-8?B?ZTJIUVJVWmplS1hSVTRtcXhpRW1lOWxTOTQwNkRORlF6OU4yb1BmaFAvU1FS?= =?utf-8?B?am5NNzh3aC8zSFppR3dLSGF1UVVXOVVFbUNvMHdreW96a0djUmY3NTgwK1RD?= =?utf-8?B?aHpTVkJpUTRjOG1yaEV1MUwyR1UxR3VLYmoyQmU5c2tuaStyaG5DbXR1YWo5?= =?utf-8?B?QjJTd3FjbGhYajFmenZtK2RFNUFLWm9UQWN3NzlkUHpyZlJlQVJRQldjdUhu?= =?utf-8?B?cW5YVTdjWmdNcHh6ZExsbk9MUGJXOVBmT0RWQ1pjOFhINVdqUjdWQjk5SkRh?= =?utf-8?B?WFJZamhBYSt5Y0dETXJ0ZzNqaXN1bmlQRTFsbVphaXZ6cXNmUnFTeWtqcDdy?= =?utf-8?B?MERnekJVaDE0NXdScU5Jc2NiNWMwWkFpT3V0ZnY5a0pTNWJrcW9jeTVSY1hL?= =?utf-8?B?ay9OY25hVFJkdGVseDFVdmRET2ZXa0FXL3M2UmtuOFppYTgxZ0FTbGcwcURF?= =?utf-8?B?cGxvYXBLL2htMGUvOTQwZ2FyNFZBbm0zck1PYnFDVi92Vll6dlIwcTFzZ1l0?= =?utf-8?B?MzZmQ1ZZaE5BVU5RUE1vMHRYQ0R1QWFjS3libWFwZ1N4WGpsaXNidXVtejdm?= =?utf-8?B?WGtndXdva3BxdU82bDc1MFFOekZXbkZEWFl4SjlpMFdCekVYOGpDck1SbmVm?= =?utf-8?B?QmJYS25tNXlJNXhnb3pGRGMzeHRFeUl0R09FSXFLVjJKMU1JRk1pTzFodWxE?= =?utf-8?B?RjdEN2g2Z2FGUG1ZbStGUElyZzUvSEtzNWY0Y2RjWEVybnMyS3R5aWhvb0FH?= =?utf-8?B?RmQ5UnhtcHI5NXNCWEYxOXRQRjRmUEdQYk9VV2Nhd2x4c0pEMWN1NUdUWlpa?= =?utf-8?B?MzZQZUpVL1F6R1FaaWRpS3haZHloUDcwK3NRYkFMMVl0NTRGOFI4ZDMzOTRv?= =?utf-8?B?KzUrWG5WUkhlb0dPUVU5eWd4OGY1WURORmU4aGhTM1lkNHdidWdRajc3dmU1?= =?utf-8?B?MEFOaVQ3VEVCbkpOdEpqcWxFcDZCZlFCa1VPNnZ0dlFQY2xlZTBKbXBROEFS?= =?utf-8?B?dnRBUHZjWDFMQ2ZQOTJxZXg1NGpyb011MUhmbzNNSUxHYkNZM0ZSQUVmUUNj?= =?utf-8?B?R0lsdnhiWDZYamlOTFdEQ1hTVzB1aW53NE5sZXlrWjFDZFA1bkxsYzZTTDZi?= =?utf-8?B?dFpCcFVsQXZnTUpicWJGZjA3TXVyRk9vVHpWbU43YlV4ZjdTenlGbWdpWHY3?= =?utf-8?B?bXAvM2xUcStWTDFqR1hPSkVUdjllMktVbnFWcGk5N08xUFBBRFZTcWJKc1lq?= =?utf-8?B?WW9hcnNlMkxlempkakh0cmljcHNlSjE4QVJPbDcvUm9JNXo4bWtkdXgrQVZF?= =?utf-8?B?M1J6YmdTVlRzQWs2bGlsMHB1VnpqNnFYM3FHWUdXaGhnUDFIZEdEWU5HWkty?= =?utf-8?B?MEVEOTZNVitGbFRZejlwV2J0dkZ0MVFVYjdUNUwvNWNTUmVuQ3VlczJpQVYx?= =?utf-8?B?WjdFVzh2Yjk3OWJJSzJMeE1TMjZsL0ZrQUI4UisxNkJqS240UEJxT1QxQm9t?= =?utf-8?B?MTUzYlBRdnlvcmRCQXRRbUpmdFJZQk84dHJHTjZhdTBMQlJuNlEwaDBBc2xV?= =?utf-8?B?NFhLS1FMbzF0YVhDU2VmaS9jSlFHNVN3ck8yN2RRZWVUUDZDemZmajBmMXVu?= =?utf-8?B?K3pmTjZ1cVREQW1qcmxjRVNwRjJUb0xGT0tOWXYwV0pWZC9tb09WQXI0V252?= =?utf-8?B?dEpvTzJhUEFISDQ4TlZYYzlIb2V0ZmFDUE5BTXZDekk5djZnOUNPR1hBb1lm?= =?utf-8?B?Q3Z0V3dMTmhqSnI4ZlRjUT09?= 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?WW56MVpuUEQwZ2N0QWxCTFBRK0h0a2ZJbTlmWHY2WEhTVS9JRWJFL2N1SkRp?= =?utf-8?B?d2lLMjVybGdkVWtLTkFqdE9NU1lMa0ZiVXBOMlJiTGFsYU85QmcwNnhqZVA5?= =?utf-8?B?V0VuanZqOWlxcHFEeFNMUmJrcGNYdjIvTWVTbXVoRjh1K3pNTnJIMDBrVlZR?= =?utf-8?B?NFZoeXAwVlRGd2owRXhkMjhyWVdwa2p3QXR1aWZKN3hXZDVsSGpISUthOWpn?= =?utf-8?B?SWx0Y0F2TVVuREZGdnZYMGltc1E0d0E5UVczMEFEN2VTZ2JOMXVBZE9ZbEl0?= =?utf-8?B?OEhUUU1XdmNFMGZicEYxb3prd3NEUTlyV0FsbG1iSVdtdEIrL3RBQkFzSm5B?= =?utf-8?B?LzVpREl5K2RBV05XaENobHd6VEFlL3RzMTJwdThsRU50VVUxNEtpc3dxY3Js?= =?utf-8?B?dXB0ZXFJbTVkQ2EvVVNnN1oxSlZmUFVDNUIrYVNqQ056SGZMelRoVC9oZUVa?= =?utf-8?B?cmJRWWR1bnpFN1ltaDQ3WkMwM29UWkg5d0NVK0xLV1l1OWw3ZVU3OUp5Q0ZT?= =?utf-8?B?Vzh0UWdxRDlIRnNlRElTSUxhanNhUlhXcVpHSFM5dWJsZkJicmVoQ0RHYmRV?= =?utf-8?B?WkJ1MUI2a3NpcUlsdTB4dnNScktOYnJuZUtBTkI5NEpBR1lqc2RuZXFpZWkw?= =?utf-8?B?VUJhY3BuL2JuZWpaNmRTemdSUkJEQ0lkQmxmTTRiRy9XMDV3VHN0dC9HV3Zo?= =?utf-8?B?TmhBUWFkN3h1WU1EMHBvcXUwWE83YkNzeUJUb3lJaGxBRUxoR0QxZFJXNkdj?= =?utf-8?B?aG55Tmd4NGtFd1grME5Tck9DVEwwV29uYkl2MElCV0Fnc01teVJUZ2x5SGo3?= =?utf-8?B?dndZdHVNNkQwWGJVbk9mNTNCc0trNXVQNm5NN0lGdlRBWU4yNVRDTEtqMDRm?= =?utf-8?B?L2tFb2xPQ3RsSDBTVTJ2S094U1dsSzU3M21zUFNFRElVZFMxQ05UWlEwejJN?= =?utf-8?B?ZVovRTZ5ZDdqZTRhbGw1a0t5RTNGVjNWN0ZFMkFTZEtCUGNnTHM4a3BlZkQ3?= =?utf-8?B?ZEk3L2ZHWTAzcWI0NTlwWFBLVmpIZDZBUDJodXFxbGdPSThzL1YvdlhaUHBG?= =?utf-8?B?cWhpbVUxT1pTMzFPYVR3ckZmenV4dWlJOC9DK2J3aUE3dUZGRU16OG8yQkUr?= =?utf-8?B?RmhYczJYbU1sSjNhYWdOTWFNSnR4aEN0WjZTelJ0Sm03TS8xVE5WSHg3RFJ6?= =?utf-8?B?ekEzQ010eWlKNklIanZFanI4RGt4M3ltdi94KzJyQmFyWDlnM251ajEybXhu?= =?utf-8?B?Z05MdC9jMTJMSWRZY3YzbDVRZmFpNzJJUDkybmNjTWdXTEtUTmh1aElYRjRH?= =?utf-8?B?UGpjR0s4bUVISWxBakJkUXhtOFFQQnZGOWM1OFlHWk9sbHBXNzRQT0YwczFO?= =?utf-8?B?c05Lek1LaGdqYTVOTEd0azg2aHpyb3g0Q3hQNkxTOEFKRnZaNzZsWkkzamo1?= =?utf-8?B?amFHMmpEYkwyOEE3YnFjVXFUMENKRjhSNXhaRW8wdlhTZTNoU0pKcHNJQlhX?= =?utf-8?B?aFhJSDR5SVpVV2pWcThFcWZjNmk2aDRrSW9RZGhqbTdvNVE0UStIenNMWWVC?= =?utf-8?B?eWp6Q0VReHJLbk0xQ3VZNzBXQUNkMTBQR3IxNVYwN3p5YjlYRHJLcGV2SGRK?= =?utf-8?B?Ky9ybjJBZzNabmJ0SVVRTGkrS1E3QVpudmRiM3lzUzE2Nmh6QmFtbzEvS2xr?= =?utf-8?B?R1c3MTlkdnJFT1dkZ3plRkVtZG1MVDc2NDNJY1RLVE5wRmliNDVwQXk2Y2NI?= =?utf-8?B?MDZDenVobDRNNkliOUgya0NzaEVCOGFNR0o3aW85TTRsa3pnUVBwK0lUSEpU?= =?utf-8?B?cFc2ZHp0Sy9ZSi9hNjd2dGZ1MlhrWHNQbThwQkw3ejdCakRSc2Z4eEliNkhn?= =?utf-8?B?b0ZTVFZiK3NpQzRDTjFpaGZQbUQya1NTbnhDTnFRRkMza3l5cFlXMXpRckx6?= =?utf-8?B?Ylpuc1FiM2VpV3ZoVzRhdmJEZnR1UnhIbjhiQnpjd21wWnBibnREMHhzUFpG?= =?utf-8?B?Yy9vdnFaTmEzeW0zcEV2TzNLdytyZUdRRDlUUWNkRVFxV1FtS2hCZ2NLcVN3?= =?utf-8?B?MnRnSVpmWHNNbGJmRG5TeXJXREdmdEtpalIwYmNlSHJpaFpLVEVBTVlBaXVu?= =?utf-8?B?d3FEYVZIdU0xamtpWnN0djZQbmpZaUw0U2VSNGRzamgxSlVKWncwdll5YjZE?= =?utf-8?Q?9smEvf9qIUYafMMPwmd79H0=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <9B6B8BC14EE7344AB84FF1068C64F457@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: 460be09f-431f-4ca4-29a7-08dc74aea026 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 May 2024 07:14:13.9268 (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: 5OuSB1LSPvE2v7FmlZiJgeO6C/6jiagrFJ/chlSGutNRQtVLd+2NDo9wX0rlAG9B3Bb58ku3N4JO/c8mVvNDUzO1p4cNTWagLSA83RlvZvc+OoeEjZVdaIRYV3Uka445 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: 1715757502207100001 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:20 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=1715757344; cv=pass; d=zohomail.com; s=zohoarc; b=lpaUQ8CQjOcuqJEYdfhNf9zPt0XYcBlgE5TYCP50qx9OUQBIXE0TB09Dboz2jCDuoAVCM5CdPyVXKWvJS7EkTjH/Hx4+RZrLdU8q2q5vLiNHQAApXm4Jyk5heWzYfSHfPL60UQOaPgnbdCISBeFuX9Bm1Nt9aTkPvZsX4HaTjTE= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1715757344; 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=DsajlPcnZcQ2oA+KXPoBTZ/juwLzW55Eb5eSnfuThKgCkyIBLEpG08jTbGPN8NGZrk+LJKUiaJzH2RhSZL8hPluTI+nfhu/a4b0Rxx/YeCo/jcCIXPe7zSAnegVBbUw1BehcKXF6IFObMEv/OndcIObGVBvdYGKKjqr/0ZxV4FY= 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 1715757344844672.9770679361353; Wed, 15 May 2024 00:15:44 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s78qJ-0004XU-99; Wed, 15 May 2024 03:14:27 -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-0004XB-0k 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 1s78qD-0000oi-No for qemu-devel@nongnu.org; Wed, 15 May 2024 03:14:25 -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=1715757261; x=1747293261; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=PMN2/YZ4hr8ioAnlB9SWX5lZ5wPmzGuhK2ljrPklk+8=; b=r5YSsRb1lCSbps2z+B5VHHz3rxYO8sC1Ko5+oPUDbvlcbyCxglJlIdZW +/yZTneWOx1dDofl/6LN7JqgmOeKz9GDDq38SqyCDf1VeN9+DBsXLu2OV vq7f+axdL4aoo2OJ2Rdxc6e5Pl2S60vRzvKkkJAuHGFs2ZoPpJZLUO9Fd IVW1dvG0zxkGghpziEpI20GD/NzVUuYSiOH3JYTd9PNXOFNPBho284eO0 cFDHmLb0eigz69Yqv97vrZkKT8nyxyb1Q2N1AHh6iDXZjveUNUQXYpTeD votmfgmE6E3FVkGnuKR1b6wtnZf1fE90tiy+w+OZiOZrN22Si4KWFRpty Q==; X-IronPort-AV: E=Sophos;i="6.08,161,1712613600"; d="scan'208";a="12581793" X-MGA-submission: =?us-ascii?q?MDEY7VqxBRDW9HoLGQwG05wxTjZBoaUi6o/VJv?= =?us-ascii?q?rEfLtbZqreNFW4x+bhF/jv25gH6yUkhj2lFC3gf4HnG/fMNyUHFrerWe?= =?us-ascii?q?yLBB9f9ZhxE309iNHzz7QIB35xvKDWLgY6/tc2zyUsHOP8J2fCvTIJWC?= =?us-ascii?q?2xfpUUyo6IcskqKDz+oq+oSA=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZB7Gdo6sD525RSSwdyJ9Hxkixzj+sGTwPZYTkWuv10zY8CLdaWwp+fhMW/l39gChx+vZ2xpq+4x7bqAPG3qJaxEGpTcCSfOEiiidLVzMhfsEA+VCtuKciIExxE5XAWGWmy0a7/p7+IDxm63ogugXDud1L6aaGkEE+U6b5MTegE1tkN3xS824MhX+rs3tUtN5xU79nSroFmosW/r4eyT8SeCPjCAzedDACqATfGMNBiKm2gV8d+05xlFckLhmVkFsPI7e3DSnUiN5/Kkh8SUu9r024Nnk9hakIs2Cveiusc772AtKgpSCq9kIhM0MtT46LkVmBCAH+OKiKP/LNwXPFQ== 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=j85GBVGhbgZoZ5OSZyPl0kmnopmIpNe9aiGer3vUvrX9kScEsvZvccyh6B65i07thxzJzi24+zV1ECyBwlsom4x6ONecTL1lKUl0Rk7RRc2oDbs9MVmE9zFJ02gyyVg1LiLr+GVcaC8W3sx8uowcUjOSoQAq7N67wrSLLkq54kHPDlihHwgTWnC5KbD6bg4GpO9mnzPIjsR7YOk98kZiVyG1bgt7CqHGHN6OvHYH/AnzYoRk6c8AFCLwRuAI3KAY9QsTBjK+v0aZA2Fhg6IttgjjwK7PEaGFjbUL+6Od3gSUs7F05WUpFDlEel2jpL9aSaeUZEft73t+W278GASxAA== 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 02/25] intel_iommu: make types match Thread-Topic: [PATCH ats_vtd v2 02/25] intel_iommu: make types match Thread-Index: AQHappd9882RJ9fKeUKo9Sr4V6SJrw== Date: Wed, 15 May 2024 07:14:14 +0000 Message-ID: <20240515071057.33990-3-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: 3b4cfcaa-542a-499e-fd00-08dc74aea07b 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?Wkozek45c1ArdEdUQWFpSGQvRjV0ZmdVN0xPYUE1SUpaS3AvOVZ0YjhyeHpv?= =?utf-8?B?ZVRYUmJzMkJvM2JFUjlGajNjcnhXS1VGckVZM3Yra0NQUFprbnpRaGdZbTkv?= =?utf-8?B?OTVqODllMjlFQnNoaklpRkE1R0lOM3RWQXM5cFAzbWdkUTh1UUpOdGRmc0Zk?= =?utf-8?B?NUFOZ0NLUHdvQTlBSmVEdk5tZzd4NExVbURtSlBtaG0xWi9wSCswbTFGREZO?= =?utf-8?B?TnY5NmNtZ2s2QTdOS2NwSFRTemlITThoWE8zSVZFZVpKd20zRlQ3OWVFK2Jy?= =?utf-8?B?TEh5TWNIeFQwclhkaW1sQUhxdGZuU2VtVzlEalBrQmFQWjY1dEUvOXMwM1NJ?= =?utf-8?B?ZHYvVmlSc3dudGNRaWVVTkFyUVBYdkdsM0pKL1lDMmczQU5kSTA4YUpLaFpk?= =?utf-8?B?UWlQSDFaMGQwTk1RNW01RC9BNGxCVGxxckF0eWFIUzBmMlNsT1pBVkVWams5?= =?utf-8?B?c25QOWxpOFdkYVF5ZlVzYkM0UXkvRDRKSWtWS3F6dmxSSVh0NDBIb3dlM21k?= =?utf-8?B?Yk9IZVpCRlo4VTRKdW01MWMyb0xOTXNCVWVPOFdEb2diRmcvWE1vVElUSnpE?= =?utf-8?B?d2JsR3kzSDFFdmtCVVN3cklWMmo2ZmFCMjhBSjNrQkROVUZTODdlTHAybG5z?= =?utf-8?B?OTNTN1hObkljb1ZTUFNtK2NqREFLU3BjL2s4Z3BMYUxpcjVVb1liVnZMQmFq?= =?utf-8?B?ckdmTWM3LzRDV2hqZW1QMStsTGxLUHkyb0tneGRnV3haVlFTbit3QjFIWkdj?= =?utf-8?B?UkRTbDRINTE4cjRBNWNFYU4vbis2RlJnRSttc0c5WVJBTE5rVFdKRzFRaDJv?= =?utf-8?B?NkFlVUk3M1FYYTZJVFZvVWhNOGNzNDIyamVkYzFQTzlKTU1YZFFYVTVFRGdr?= =?utf-8?B?TTlRSDY0c0JCK0NyeUFOc0xnRGtlQWdPRC90U2xPWC9vVmdVVWZDU1N1UG0y?= =?utf-8?B?d2dPYXdlUmg5c0pUVkd0Tnl6MmdEL3Vpa09tdHpsbzYreitGSkRTOTdxS2JZ?= =?utf-8?B?bXJqWGZ3WndyY3dQa1FXYThxelVKK081bEY4MVE4eENvbWJQSkU5UDhmV2Jo?= =?utf-8?B?by9ONnY3MzM2SGVuN1h0QWdPUlVBTXd0NWpNYW54VFlGMk9FeDlzSWFVUDEr?= =?utf-8?B?UEVyV2RtUWQzQjRoUWJXL2UvYXIxdXJ5TVhPZE9NZm45RDFiM2MrZzlNZy93?= =?utf-8?B?cFdrc3o4NzFGZjhSaDJ3QjZ3WFF5emozQzdNOHRoS05zN0JoRXd4RU1FSjFv?= =?utf-8?B?WGgvWmdtME44TnNQcDZVNFVDYTUyR3FFYlRLMzMwdnFxdG9ET0hodHBiWTUw?= =?utf-8?B?UEJBV1RQU1h4NnFKOFBJdEJsWWRsZDcxZ3JPNlBXRnprbFRJNlh3QTE1RWVk?= =?utf-8?B?UENZSFZQUFJwUUxURzVBSXNSTHI0ZlhDN2cweTArODI0OTA0RThxaUUwTDZu?= =?utf-8?B?aFV2YXZlV2pqRnRodjdUSkJpdlI3akpHMWRCWmMyV3h5QnoxUXI4NmptOWxE?= =?utf-8?B?S01VOG9YMUNyb09IK3FzOVRDQUVDVUlaOWdOMFZQWTFISFFYQUNNSi9PZFJH?= =?utf-8?B?cmFCdkw1QnVMNXVtK2VNaXA4OU1JenFGT2lwN29BQXEwa1FWWnVNRktQMWNi?= =?utf-8?B?WjlQN1BoY0pINzh6OVcvc1VpblVyeXhscjU0NFo1RTlnRHFrbFBrT09QYzd6?= =?utf-8?B?NnRlRnNzVnFhNE1tWGRXb3Bxc3BhM0tYTUpkRDhkc2pya0pPQUtXQm1aQVNv?= =?utf-8?B?NEpXcG5qcXM1NTlEeW02cjJiUVFzYWlUYWFWTThrMlZ5R1ZVYlVlRVVLQTds?= =?utf-8?B?R21ucS9PNnZ2REkyaTBNUT09?= 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?YUQ2NzhiMjlEd0lvRnRLVnVwWmhMeW5nU2VXbmVUWlFXa3QycC9SZDJhRnpK?= =?utf-8?B?S05kNmVPRUw5dTdMdC9GSGZsdGV6c2JtMkxSblRuUUdHemRKc0xwckpJcGlr?= =?utf-8?B?Z0dlMnpHV2NRQUJqc3ZWVk1aL2hTYVRjclJnVUVOeHVuTG9ZNkc3NTZtVnpz?= =?utf-8?B?SnI4WTYrendBQmxxMVozLzE5Wk9xcmRIWFJuRFp2YmtYMFdPUnM1cjFvcjBr?= =?utf-8?B?anVXeThGUThyNVpnOCtydzBaQ21jL3JQSmN4amJpSVp1aUxJenhYYWVuS3RC?= =?utf-8?B?V01pQzI2dDBXWXJmMW9ZYU5WaTY3c0ZqdFdvV0p0VlZMdCt5MHYzUHFhUkZa?= =?utf-8?B?TnJDUFpVeEVXOXkrWkRUS0dXdk9sTTBJYzEyNUZ5RnhQZUtTRjFKN2ZnelJv?= =?utf-8?B?REVyWVAxaVZOVzJSenM2ck8zMVp2aVQ0YjR1bURaV2xZZTJlSWhXc0l5RVdB?= =?utf-8?B?WVBjeDR5OEFlL3YySjJHejRJR1FIcEswS0c3UjZwNFl4NHRreGdxSFNzbWtO?= =?utf-8?B?R1VWS2R0WGtIazRBZ3ZSRy9CM1g3dndQQllkVFFBU0dDT1IzSkRHRnZVc3NX?= =?utf-8?B?cHJVR0x0eWs1ME9RUzMzVkVWZ0ZNdjZJbStsb2hzMWhQa2QzU0FDN0xlY0t5?= =?utf-8?B?eTVoaE42cGErNDA2cXJOQldOMG0rODFiU1FRR0U0TFZ4blJRdjdJWlFhOENE?= =?utf-8?B?Z3JuN2lQUGRrMUhvSFIvcHNadm41cW9iSHN6ZEozK1NGWndjOXgwa3IvRmJp?= =?utf-8?B?VG5GZ1hrbitHamNXeWlvejFNbHBCYWRmbzhjdnJiOE5aOVdLY2Z4eWhHb2Iy?= =?utf-8?B?c1Q3REFZR1kwRUdlYWZEZGs4SXpndUdiekVYYjRkN0JUcGk1OUIxbTNBcU9K?= =?utf-8?B?WkRnWEhKSnZKeGdiLzVTTlp4ZGVpS0pRQ1Z3UWJ3cEJld2R2M29mMWE3WGc1?= =?utf-8?B?TjdGOFRRWUlPaHEzTUw2MkFJQVo5cGRrbGlzSUgyQ2M4dld0VGV1QU1xSGMx?= =?utf-8?B?RTIySWtuWUZOUXcvdy9JYlJ4WFcraXdBd2NTVVQ1RFFsa1JjL0pIUEY4eTR5?= =?utf-8?B?YXhybWxaZHlnMWJkazlkcUVuMFd4ZEFzeEpxY2M3M2t2cjdiRUJiUTFFYTJz?= =?utf-8?B?c2lFbVBnTXoxZ3BFdkxkbkNJa0oyeDFEREpVNXh5SHJrL1J6MmxQR2tvQVZh?= =?utf-8?B?ZTV0UnBjVzVBS2Y1QjVhV3p5WE12OUw3ZkZVZDhpbUJRcXNodHFqNHBqNG5S?= =?utf-8?B?MXJibTBXUTZqUWw2eXVJVE83VDcvVnJWamlGZGxRcktJbElwZzhQUWs2WjA3?= =?utf-8?B?Nnh4YjVrOVZJbEVJTDJSdDJXQTg1bU01U3ZMYzdCODYrWGJiQUt3N200SFcr?= =?utf-8?B?VW1lTEF4RzFkTnhrYWZjWVRNOGZuKzBTZVA0UVB3ZjFaUVVyY3hIb3FEVTda?= =?utf-8?B?S2Yzc1RGN2JrOHhjSng4eHAzVjZGL284ZUs4d3I1czQzM1FrWjRUVEJkMzRY?= =?utf-8?B?V3VoTlliMHZwOFNqVW5PcXI2TStQOVZ1NVh0TmF6enFtY1crbnhLUzdQTEZv?= =?utf-8?B?TFFIZlE0Qnp5NWc4cEpZK0VpLy8xbWxlOEJSZmlvOUpPZHN4V0NTUTFiZjFQ?= =?utf-8?B?UUZEbjVieU96VHpTMXVrM0xKczhrT2VKNjdKWHZrMU00U042Uk5UTUpyYUg4?= =?utf-8?B?cXlwS3RGbk9NeCtUVXF5UW5nQkprWm9ZK2N4S1JTZWVEeXltUldUY25wMjJl?= =?utf-8?B?VGJwT05wVHlBR2N2cDdCUWc1VnppTzJBR1JtUCt3WHJ2ekhrbUkyK1NOdlJN?= =?utf-8?B?U0hZZmVRSXVSRWR2ZTFHNHFCdlk1OW9uNUpGaDVYa1ZmbTNQbERGMXNNeGtS?= =?utf-8?B?ditoSlR2dUNRUGV4aTl6dDZEVHFwNUUwWlRUZk5hNm15WkdvaVJ0bU9QVXBL?= =?utf-8?B?b05jbkdSajhiYjk5S3JIT3EwU1I1WW80a3FrR1BoWVN6OStnekpZZDdZOUo0?= =?utf-8?B?aVZPdDVjc2VUM1pjdjFzTG9GckNvdHdQWGJmM2l5d2EyblhROGk4cDR3aE5Q?= =?utf-8?B?TXkvcEZHYy9jV3M1ZENZZXp0MVV0eTJxbmRqdW9rTjRFRXlEcmloL3VmdTV2?= =?utf-8?B?MkwrcmVoNi9BOUthc1BNUlpONGdBcnlwSG16QUZCdzZaMjh5NTFoaE4xTWRE?= =?utf-8?Q?0SeLEINSiNsi28AjmxR7QwE=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: 3b4cfcaa-542a-499e-fd00-08dc74aea07b X-MS-Exchange-CrossTenant-originalarrivaltime: 15 May 2024 07:14:14.4798 (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: gZyqvtyxkidNwvf8U00jvGQk1Gx62TVnrC+9j7nS5UvNuIcXWXeolFmoYBJBmX1sH+hatUhrjyl6bqJbpd6zeC0MxPWmZcmx9NYbkq6X2h0l3OZgo4hJ6RtTkdiMtzcz 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: 1715757346586100003 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:20 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 From nobody Sun Apr 12 13:40:20 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=1715757338; cv=pass; d=zohomail.com; s=zohoarc; b=X+eqyUj1PS57KAP2uUpRuUCGaU3wy1cvAIysOe10GjoRsipLsOL/rIiR4J8nCUsFd8Z3LQ0ZTbB6DCPhTdUpZZgukxcQkOARJc9z4GprqxDhdA7lp77PHGROWswDfASQq0wediQjOBQ14a06/QhnZFD6GjAAMrGNUAVTN1t9z70= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1715757338; 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=Iwcyrl9KCw7Jh1dv0E/FHT7n8wj4cy1aJ6V3NU3ckeM=; b=b4QllIdNsx7gC+PaPQHAjHTfCekg0EYZgW1EVBFbFbjtIHiI8wuK7PAW4HvKo/qjycub0gFdlJnP8oV1Q2jZvkGV2QE+4//yM6vj3Z63ItgmnTTaK8UIzXIqvZRSzjawZ1uHRIAToHyHoJe55NDAFWcGD3cL9jJDTBwOAKwRGdw= 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 171575733831517.76817516802373; Wed, 15 May 2024 00:15:38 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s78qP-0004Zu-Nd; Wed, 15 May 2024 03:14: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 1s78qJ-0004XV-9t for qemu-devel@nongnu.org; Wed, 15 May 2024 03:14:27 -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-0000oW-NX for qemu-devel@nongnu.org; Wed, 15 May 2024 03:14:27 -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:17 +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:15 +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:15 +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=Iwcyrl9KCw7Jh1dv0E/FHT7n8wj4cy1aJ6V3NU3ckeM=; b=NKEJIS1B5yeBtQq1SEIHceQ5N8czr24gjxZSwNbLVJwMdUe3CefPW7tC Sw3pSuEoWJ17Jyta8G26sZJpRdvecCem+yDOxeVFsWISJXEURUJODzaZY 04+H5KCx3A4I+/7GhCUWFvudYfMqSEHu1ed1n+4Jvk9rhEpqgSvLQJssd /1DyFrCbWMOnvCZtD3ObAVh/HpgGKK9H1Lb32VTtfmpzRWnmYYUE7KER1 ICsEK6wbBQlbrLwrzxxho1BJeHvI7+zVdFHYi292mtcATD25BfTfDzEBp ncB9fFLWv9K8XRnd/t6aIZgJJ8DWOkmq4J22YgNUWTx93xeZYFGnZaIPZ A==; X-IronPort-AV: E=Sophos;i="6.08,161,1712613600"; d="scan'208";a="12581795" X-MGA-submission: =?us-ascii?q?MDECe5PZv9r3WN/RiCMzTDZoqjrcYsH7bqlmne?= =?us-ascii?q?zuZkD13qFuxGsTqA2cYMCH0C8RmpfC+nUsP7RZHtnuExZltPc22LgFUP?= =?us-ascii?q?zaihmG2iERTna4pwjvMQhffzuwydifk6OuObosG5eC842ldtdmP8eW9v?= =?us-ascii?q?a0vq/JKIBPbtqN6z+zm51cpA=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JTaaeFzPeLdVB4EWi3r6wEG9a0W/GMtoY3kFfb5C1ESdNRi7ge8zKkoircmlpKTDySmuNychjBUjEsezh6GnkS5E5eKs6CfDJt7HFsncyv1DqMBsa/HqzcP/mK3mY8OkjFISbq0Aa04L55wXQHFZ/ohSh+T6X9plz1FmZ6W03jHWxsuX6VxbKv24RouZ/3ZoUClUvR1ax9ciHf5P7zVMq4WKFObHq7VPfnccfNT6ygWEW3gak32t9ICIezWkmPnUAesV3yrGl/Qz22sZVtnBtWonPA7a62/h5U9W/Dw9XSENgj2LpLlDRASlvjTW4fgGYj89ltTLwjqW9P53FBWVMg== 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=Iwcyrl9KCw7Jh1dv0E/FHT7n8wj4cy1aJ6V3NU3ckeM=; b=Ho6MlY2d9+PTFfZkE9Fi+M3dG7j99q6OONx8N3aUdT7JIUgjMv100OvO5rUHQryiDjm0LSPX1eJb3A1iQ67APLfxhQwK5xCaTtEwsVd4vY50AJSTEuQcnFwmfSYPU1W2CaDH66iUYkAuAlwGsWxIkAK/JQDhOpWiwhpoCAAYcZ0SXgpmbTMF5K4kWTAR1yKq7rX9xQOgLETnlEuJkjVe7Xnr8BFzQI+/mm6vyqGFx7tiWW9OG2DLL+/vSjPlM3sT4PtnXsQGesE72EKQcSqbHk22PsfnOAyjLsSC96R+TrPjxsW/ffQ3LXKyU68di2Nfp9GFfQmw7MU24rSpHw/X0g== 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 04/25] intel_iommu: set accessed and dirty bits during first stage translation Thread-Topic: [PATCH ats_vtd v2 04/25] intel_iommu: set accessed and dirty bits during first stage translation Thread-Index: AQHappd+pmoR6qJa2US/JV5yJx2XMQ== Date: Wed, 15 May 2024 07:14:15 +0000 Message-ID: <20240515071057.33990-5-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: c4372143-42ac-4cdc-61d8-08dc74aea0c8 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?MjRpbm5jSnA2OS9hS1VNN2hkZkhzNkU1d1MvSEtKREFHNjJVVWN5UytXdDh2?= =?utf-8?B?L3dXVHN2ZXhONkhrSEhDTEVwcm5ubzlXSDNSWXl1VmxwdlNBYlJqWFYvSUpu?= =?utf-8?B?cVM1eDlzbjVIekxFeDZ5NnBia2lpUGgyaEFrWTB5Z0MzUzNQM3NOSVk2ak15?= =?utf-8?B?cjZCZGlBbElpUmRRRWtkeVlIcHFwTC83dGVnNVpKL0UwNDJaL3dZbFpDV2l4?= =?utf-8?B?aHdYWjRWc2JPcVZncWh1akZHMXFRWHZMZE5JODhwVkZ1dnVleWxqbjJDQ2Ez?= =?utf-8?B?U3ZEM2VMZXpSWVJwTzhPdUZxKzFGaG1WZm1lWktOSDhNYTRxOXpENXhnWjVO?= =?utf-8?B?VTBkZENHSUR4S3JnZzNVaGdKZFdyTHNvNHFES2RwcG1MWkIwdU1UTzA1WHlX?= =?utf-8?B?WDNLY2E0ck1PemJHVTh0VWpQeVFBUkwyVzFvNi91dmhkV1FIa1pHeWN4Ymtz?= =?utf-8?B?ZVRzVEFDWlM5L3NJb2RVNDdBc0svV2xwWDNBa25QMXBwUkFzbzJpejNUQ055?= =?utf-8?B?OXlBNEtMV2E4eXZsQmJvcFg0aXc2RUZ6aDlDcDJ3RFNINiszTXJCSFVsMWdL?= =?utf-8?B?d2huS3hnalU0bndud1ZTT0Z4cnlsVzg0TmE2cHJKOE5iZ241UTUvZUFmOUhS?= =?utf-8?B?NitZcC9rZzB2TGs4UHNWd05VcGt1dSttbGdRQUhyVThZOFBJZGtLdEo3dUk1?= =?utf-8?B?cDF4NHJFeU5PWlpJTHJSVUJmMkEzMzBOeVBqL1B2a2FJZHdDbU1wUjRzdXVI?= =?utf-8?B?amRUNjRGRGZmbmNzWk9MeGJZS2hHWmhhdzR0SDhaSlhoMzh2WU04ZkU4SDVL?= =?utf-8?B?UWNzc2FiVS9TTUpoMVd1WUlRNUkzR0lnMS9KZ2dXdDY2NGw1L3ovaTdrellY?= =?utf-8?B?NEtnaG9BZVArTHd4Ylpyb2VleE9oREpwUHlDazMwMXg5VThpWnFpZlo4cVU0?= =?utf-8?B?eEJJbERHVFJ0K0RRekhCTmRibUpGY244KzFaV1dncy80QmpzUTRRUGRPc25S?= =?utf-8?B?c0J1SDJ6aVhxekFJMHVraGxqYVNNZU5JV0dLRGd1aktmbGwxOERnSWdqSkhi?= =?utf-8?B?cXREOFVsQWYrQy91VE5xaXVTdWlLSkVEWDVZUXl3VmQzVDRNTitBSyt1NEMv?= =?utf-8?B?VWl2NVBRaHFvWGZnRjhETmwwZFVZd2g5cVlmdjRXR3h4cnJKSk9JVVRBOHV6?= =?utf-8?B?OThTNDVvUFFWZllubmV4dXhjenRYZjAzWU1MZC9zWU1HQytwM3U3U0pwTjM2?= =?utf-8?B?amo0dmx0T0N0OENhMmJ1SHFCWjNXaHhzNSt0ZGxPdGxZUngvUWFXOHJjWEZ5?= =?utf-8?B?RDJZUmVMN2VkcXZNczRNQ1JOSWdSdG15ekV5LzIwVUR1VDFmYkVSVlkzUWlh?= =?utf-8?B?aVY5Nys4b201eHYxVDdsQVRhZk56VE4rOE53KzVwZlRYUS8xMkhsWitPQ25B?= =?utf-8?B?eGNXaitpV2NWd0hEQWVVZitmcloxRldweFR4dDhQbHhvWkIzQTk1SHdqakd2?= =?utf-8?B?VlBFR09pdG5pVE9iUEY4ak04VU9uejhnT3J3Z0hLS01nUEp6dW1URSszcWZJ?= =?utf-8?B?NjJpVHhqSCs2NDhCeFVwNkYvWElCQ0hVWFBXbGpwMW1xSmtiUlc1V1NrR3ZI?= =?utf-8?B?UEhKMVlHaG1RS2R2NG1XN0wzbzJWaU1hU2FNb2l1eWkwUG9rS3FhcHF2Y2p6?= =?utf-8?B?VnZVYjRLSEkxckRPNEtsQU00RHJ1aTF5YkMvbGFlNWdXWlNZWktQa0x5VE1o?= =?utf-8?B?YkZTT1RDMHZaTlRVNXlMZUZYUkY1V1IweXB4OStEcURFaWF1ZWdxdXZZUDhD?= =?utf-8?B?alZaTlRYYUF5RGVDVUJkQT09?= 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?RzF3UG9NMWRiT25CZGFJNjI1M0J1dmZhbFJJNXBBQW1kbXpTeE9IZHl1RjBq?= =?utf-8?B?cm1XOUpUa015OVJkNDFhTWRQVnArZmROVnZYMFUxWitiNTBGbW0yNFBQRmVj?= =?utf-8?B?SytYSXVCVTNUQlRGSzJmVWpEOTg1Q1hlWU1SL290MjRjOHp4OXRWNXNRQjlt?= =?utf-8?B?dkJmSFpzQThyWU9vQ3NJSkEyYXBFakpvMVhsSkhTNmFtUE5OLytXamFUckNJ?= =?utf-8?B?YWFteFlIRER2ejVSb3VMakZtRWVTVWxMZmVjY0VDcFRnd05WRzBMZ1lLZXlQ?= =?utf-8?B?SEMvMkVOK0V5cWdDUDlwMDVMN0liSUxnZU9XN1RpMXNhR3N3UVJJWFZWZzZC?= =?utf-8?B?TjJXTHZIRGpQczhub1RhTlBFTThJQjBqWlZpYk8xd2IyTnBEbm84d29SaTBN?= =?utf-8?B?WWdTeFprZ2QwRmxQbys1MmhFTVBGT3RBVVdjRjdPYThhQnp4bGR5VE03QzVs?= =?utf-8?B?aU01cU8zYTZxME5YVHFJWG5pS2w0R0hJYm9Kb3dVL1ZvSDAxVGF3OENhL3k0?= =?utf-8?B?SUoycjMxeVFpbEpIZndCZ3B3bndtQmlJTWRXTjkyOEVLeVU1Z1didlRqUkh5?= =?utf-8?B?ZFN1MVFvaW1ybG5FMk1xN0hvbi90elUwVWIxTk9KZTFoNWhuVG1RV3VTZDFw?= =?utf-8?B?NDlKS3dqRWVNQnpROWlRN2doQ3RUR3d5a0QxQWxKdDVtSHRiRDd2RlFXMW1n?= =?utf-8?B?dTJDdnc2K2RiMEhuYzYwclZ2eXExOVh4TFpQYWk0RHc3UDFKVS96VS9mQ3FE?= =?utf-8?B?OEkrZDd6SjdsVXZGTmxzdWthZWFsbWNyVm1HMU5lWExsbjdFazRLRTdEb3Jx?= =?utf-8?B?OUlRSEJncjAyTVo5TEpOQVF1c1grb3ZvQVdUM2IrdVdBNmhXczZYTW1PN0sr?= =?utf-8?B?VTBSSGtXZ2s4RmdMV0xyOC9mZ1Frb0R2ZjBpM2xhb2QyM3gveTA2TjI4UnI2?= =?utf-8?B?RXdYaTdzYzNoSGRDU2hVanhLVURvOTNmaFNhL3M1cGRGeDV4dzJHRjFkc2E1?= =?utf-8?B?Z0ZHZnVZaWFSRmlMLy84TWpUVHhWRjV2NlN1OXFpblB3dmpKMmtPa2FSVnMz?= =?utf-8?B?KytvZk5TR2Q5aVk4QzZBbGNmdVBwcW84MXI4YjNTSDk3S2dZamRxMEhqQkV5?= =?utf-8?B?STBLV0IzK2VHQ252R1VVeUo4QnZFbWFRN1BrZE9jVWY5ZUYzeUJ2NWJUTmZq?= =?utf-8?B?YjNKNEtlTWd2SFJkZVhnS0JXai8ySktZUStzaWNtRTR0bHF2WFVwNmRwTDVK?= =?utf-8?B?N2RlTHF1dFl6N0xQUGVXMnp1NGR2R1lFVyt6N085Szl4TkZqOVBhRWJXS0Fj?= =?utf-8?B?MFg4RUtxa09LeEY4RmsrMXo1Q3I2ZXZ0TkV1WUtZS3lVNTJMNEZWMWpsZVk3?= =?utf-8?B?TXE0RmJyWUl6b2FNUWF6Mjc0eXV4US9vUk14TEFzWGFta1pnZEZ4cGFpY2Zt?= =?utf-8?B?UlhuTnhDTmRsWFkvUHJxQlhyTVRMSkdCREVWdXplOUFHaHliS21ZdWd6Mklz?= =?utf-8?B?cFFKOWZaNGI5NEx4b0s0UmdVaFN4RkhBaUI0VUtMWFpIaE5qRjNUcldzRFlH?= =?utf-8?B?N0tkVm9NdDhyZ3VlMHllM1RDaGF1cG5STnNwWUF4VGpDSzJyVUo0YlladGZT?= =?utf-8?B?NlY4SVk2dDR1MklEbTYvck42TzN5bEJiSW4wVHdObjNtN2FIeDF5eC9SQW1C?= =?utf-8?B?N3JDTU5tWkkwWmhiNklWT0VvNUZpbUNJYkpnVGxUNlFmVk94SDVGcHhHMHJ2?= =?utf-8?B?QkhKT1R2bUtPM1NHUGJNTTRiK0hsc1hHOHBkdWltSFFncnpzOENaQjF6dDRM?= =?utf-8?B?cnArVEZvUVQySHI3ZjB5OW1BeVRZUEZaT09IeEsvTCtvWW1rejdqS0pKZ3BD?= =?utf-8?B?SmdXRWlOWFJZeittYTF4V1ZYenpFVTZBUWorQnNpUE03dGtpOTVXUjhhS25M?= =?utf-8?B?Y0R6VWJ3NU1WSTlPeWw3VXNQUE1Da21vQ202NmhoaGdxK3U2Q09yOUV3V0tp?= =?utf-8?B?dENBTzJhUThwK3FOUkVxUnJrWTRrbTQxK3JPUXFVRXp0WXhFYkZpbTJnUWRl?= =?utf-8?B?NXM3UXNLUjg3VjRlalZhK0huWVN1aU1nL2FPYTNvNk4rc3VWbFh3WUtXQS9I?= =?utf-8?B?ZzFTNHpJQm5zaUhzeTlmT3NxT0VtZEpKMTJ0QjgxZk5aelNHaEsvSVhSK0Zm?= =?utf-8?Q?6BHT6QvcR6ZjBImMvMPnxxE=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: c4372143-42ac-4cdc-61d8-08dc74aea0c8 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 May 2024 07:14:15.0089 (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: 5wbXepameibmKyYB29GPJV8lTkOkpwbwcIYEHo0GPhV0iKO7rdMbhenr81dN5kIdruBvlXzukI6cH4hs7Y7Eb2g822zomxHi81+zeZt7xDVpNDAR+RI6LSYzPX3qAHFY 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: 1715757338549100015 Signed-off-by: Cl=C3=A9ment Mathieu--Drif --- hw/i386/intel_iommu.c | 25 +++++++++++++++++++++++++ hw/i386/intel_iommu_internal.h | 3 +++ 2 files changed, 28 insertions(+) diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index 0ecf00f37a..252364893b 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 @@ -2038,6 +2039,20 @@ static bool vtd_iova_fl_check_canonical(IntelIOMMUSt= ate *s, uint64_t iova, ); } =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. @@ -2083,7 +2098,17 @@ static int vtd_iova_to_flpte(IntelIOMMUState *s, VTD= ContextEntry *ce, return -VTD_FR_WRITE; } =20 + if (vtd_set_flag_in_pte(addr, offset, flpte, VTD_FL_PTE_A) + !=3D MEMTX= _OK) { + return -VTD_FR_FS_BIT_UPDATE_FAILED; + } + 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:20 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=1715757530; cv=pass; d=zohomail.com; s=zohoarc; b=XYYCAS1WbRg/YQxXmhENlvzPHL6i1OTQKPDVPJgtln2bci4hCUJka4K7J5xWg7Zd7u1zpNNhxQSn3MwahmUOKXXL/PrglUi06Bqn1A4HTf057WyMWwHZuDlgVlQQ+O+e+GIbQ1wz5MClJAqY7iEhaaazsb+TkWcBkIR6b6L3wm4= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1715757530; 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=XcjKecxBdsPpr9IsLkbs6s9MkMnBwLIwAGN4s71C3bc=; b=W+omqN7eP7/Gt/z9PzJeXToAtYGSN+OFbg9kkj5lYK/G6+QOophXdCDccOpcPAHSrFv2gtq4jMVWoZLg3osoIafuntd8tYaLzVZ7i5a7LQPY71EeR6I/CUx3iKCrU7Xh57Iqfur8wuTRVvwJBlOC1+cK2A9xQBuQDPLtKff+zgI= 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 1715757530488794.077474566715; Wed, 15 May 2024 00:18:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s78qV-0004aQ-4u; Wed, 15 May 2024 03:14:39 -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 1s78qK-0004Y0-JC for qemu-devel@nongnu.org; Wed, 15 May 2024 03:14:29 -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 1s78qH-0000oc-0E for qemu-devel@nongnu.org; Wed, 15 May 2024 03:14:28 -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; 15 May 2024 09:14:19 +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:15 +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:15 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1715757265; x=1747293265; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=XcjKecxBdsPpr9IsLkbs6s9MkMnBwLIwAGN4s71C3bc=; b=L2sx8td6Sgro9SZ6ouh0bdY6T/Pc+G3ddHHl+1Tut5X+9RQzRfz3s3zl YH5HejPQ57/lms1vU+ySfErQyNUfOJBob1+e0iSqy8UOqvsb56/rz7Wt9 XDAApD1Wok9gsh9K99qXs9cEWxh7u9Aw8iuSBGl7G2Uq/TIQrXPjpq/WV gfDEu1KQrp74YQhXuS94Fx5IGR/d89IPvdcCZZvhIVoWpbeZDj6PFx8tC +w0aEQiWXVYUPXgXEf2txwIo6qtxrEByVMietjxI9za6z8hv34hgUnbgD CSE0g+dOWo9MwO7Iyo9ftfA03QpuXlSbS1tDpLV8cO2Y7qVqGv36+uWDR g==; X-IronPort-AV: E=Sophos;i="6.08,161,1712613600"; d="scan'208";a="12635437" X-MGA-submission: =?us-ascii?q?MDGdBZAET//s8o3GItneiAiU43x3WGBbR/XnX5?= =?us-ascii?q?9ruL2nVx+nSEfm9CwdGVsKwhYCQhKNW4rOc+waaFl3LxoorXk7FAtBKf?= =?us-ascii?q?ICTHicB0LjvozUSsTLyYGQvgbW8PRYc+loXZq0U5/bawOkQbCnmsec9n?= =?us-ascii?q?L38xn4QDG9zOAaWtquygv6Ew=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KU63CaEajKbDofofl/vB8BIn9lbMk1oEABVvjbGKFkGwm3ZmvyZvp/9IZiYSWwIoK8X8IPb3JEEzhgnaWSaGth66geNwDWhvAVTGAzCuNJxYd3k+A8ulUew7N7DMpMQfeMkUIidq/IbkhWv32/nrwx/i4TbOSXLsTLNVQwDZ1ZpmbiLHoLCOMM80CssW7TlcLpmwCwOSM7SCPp+BZ4h3JzhxdVZTiWIC9wufzW6ZL66THPAFhfIXQHKi1eZUPupwF2pIKdeN1xKTf49GDoaAABZrEYbtf2Bs+IJQyCqh+0CoryDwrhM8Sjb1m/eZT5Ofy+OH+/iqJ/qAshPmbfomiw== 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=XcjKecxBdsPpr9IsLkbs6s9MkMnBwLIwAGN4s71C3bc=; b=n0xpH61ikuy5qEnXFf9O880I7pFaYUJhEwrUX5C0blPYZoLW2Rd2uRae9QybjcmmYRTfnjQ3czeJlNJOnLw6uGCenzM4lk2ahOrh4YQcPyctPpYLWk/D/KV1IBMAlH++i4hKWCIyWFj4x2V81bLmjJVCKC4VJb/QjHXgTVVGLgUHk9JFeHobf66Fz6EBzMQW+6dgP4TOohyOngSqyu9Kcc6I+FvCd6Li0yW6dTj1fkQ864G6t1MNWrYbGNxiQcIi/9T9gADnEISA6l8Y/wpRwSELiLEeBuW797MJkIpYSOJ/qiLo5vS4fr59XooXDPQVh/m58tN8T2aVihZC7t3gzg== 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 05/25] intel_iommu: return page walk level even when the translation fails Thread-Topic: [PATCH ats_vtd v2 05/25] intel_iommu: return page walk level even when the translation fails Thread-Index: AQHappd+BZPelwlHbkqPdUTJeAISqQ== Date: Wed, 15 May 2024 07:14:15 +0000 Message-ID: <20240515071057.33990-6-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: 1ac4e559-5523-48e9-9bda-08dc74aea0e5 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?cGZIa2NFN1F0N2JicFVwTW5wbnEvMkZMZS8rcXkweEJHWWZhOU85YmRGSDJP?= =?utf-8?B?cUhoTTFVVFJtVUczNWkzRmJ3d1RnbldBNzM1bE5ES240ZXJydnk1V0U4Vndm?= =?utf-8?B?ZFE2dEZuQTFLZTYyRWxCN2xwNVllK01EejJMamh5Szl4cnNDL0E3eFJrcVdD?= =?utf-8?B?VEM3Z2JnWmtsQVM1MVA3K0gvVG1vMS9NZUkyL0ZKbjFZM21DdlY2NWJPNXdP?= =?utf-8?B?OGRENThwaURIb0RNY3V6UThEdUF3Y0dTNFU3TlZpby8wbkE1c2poM0RrL0JC?= =?utf-8?B?VEJBa2ttU1JtY1A4WG9KV0V2a3hnL01oV1BIaG5FbVJiZGFxYmdHV25yTG1U?= =?utf-8?B?NFFrUHRCb0lhU2lDOFhOZEh0Z3FzOFlQdVBaUnZpVCtNTVpJdVArejZxN3lK?= =?utf-8?B?ZEI5SUZOYXFxOXZzSVRCUHJSdzAxVEdldTB0U2pqTXBVTVQweENoN0ZPSCtO?= =?utf-8?B?SVBueml3SWhsdHdIRHBUTWhQa3JGZjgwc3BXZ1FnTVM0QmQ2dTRvUW43OFdX?= =?utf-8?B?MnlBM1VpTU8vdUFBTzI0V1FRdGg3SHY5MnU3TXRhT09MbFM3ZEJqWWRrUFAr?= =?utf-8?B?T29jWDU2di9kdmVXU0xEMkRCamJWTTVTbWJLcW5KMENxSVkxMnhJYTNaQzBY?= =?utf-8?B?cS9SblhRRFVnTGZqMTZORERuUUhvOUhCUUMzOUpRS21JelFnOWhMZkg0V0xJ?= =?utf-8?B?alBxSXh1dThrdHNMcjduRnZmYUNqQ3YxbFRDcmV5M2s3YUZlUW1LbUkrM1Zo?= =?utf-8?B?bWJxcDdqYWhOUXRtYUE5VzdYUW1Za2VmYkpZR3M2R2FCczlEWGlxNHAzMjNE?= =?utf-8?B?M2JBNGJ6RC8wMGpoR0JiZGZzQ1ViRnZrclM3SWh2aXVzTkZSMUtEdTdoMXpr?= =?utf-8?B?cWk1bW1QZFhwK2QrbWx6RFRLRGVBemdtN1Z0TUhUcXNwQ3NsZzVBOW5GUDIr?= =?utf-8?B?emFPZHQ1bDByYVAyeW1iZERtQ25XbWQ1TnUzY3ppRVNQcmpnSjFSV1l0TTZC?= =?utf-8?B?VjVuU1k1WG50RW10TGRvWWNSVmlsZXJGV1dtQkZVUHNnT254Y0d4aUZrdnBp?= =?utf-8?B?SEQraVdsUE94dEUrM1JrTWhqYmVTVERHeXlta3NsTkw1aFJSZ3hLcEszYmhI?= =?utf-8?B?bDQxZU1ubUFHeUs0cVhBZXFnc1hNalFValdZZzQwUjhJcGNsTHB5Z0FMRzFH?= =?utf-8?B?c3dmQWVzZUt5UHFXTkdzNHc4SW50bkcrUnlYNXV4eUJFYlFrYXdJQVJUOWhr?= =?utf-8?B?b1F4cytRU3JJb045a1BqMnRKRlNvMllxQjFTUGxrYndZL0JWNTJ0WjUrWjFp?= =?utf-8?B?b2dTYVM2VG9iNzlzYmNNWlJHaEtOcTI4cFlTQ2R4dmIwYThXcDl0M1RGcjZW?= =?utf-8?B?WmxMVC9MM21SYlpJbEhIbS9vTnJSM2pQSk9VU2FvZTVwM2R4R25EMXhGdUcv?= =?utf-8?B?SUVib0FhWm5GK3Z0WXlkeVZYV0E0c3B0QzVST2FBcUk0YWhrQWtRQXBaM3gw?= =?utf-8?B?cklVZnZHdkRCaWxqajBEZnZpVllUajJaSEticlRncXdoRG82cWhVajNBZHFu?= =?utf-8?B?RmhMMDFzMFZQdGp5Zm92cEFhRWlPU1llRmlCR25NYXBUaWQrdmMxQlF2cE43?= =?utf-8?B?aWVMVk1tbW1KbXlDQ2owL0VnQlpGZ2F4MDRaalVmcVNYakRNcjBTTmROTmwv?= =?utf-8?B?OFMzOFVjYlRoOEtPSktUNFVCdHpvS3I1eHpOSHl5M1dkY3VLekpsL3pjZEhJ?= =?utf-8?B?M3NtNmQzbVlvMGh5UVdmZHhscWh6QStTKzlrNHNSTnBNNEgrZm1kWUduQ2Jj?= =?utf-8?B?L0N5UHBkYjhsYm5qb3c3dz09?= 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?a0psVG5YS0JPcHNhb24rcTdvdXRjdkovUWhDVkRPZDNBNzM5UjRwdzhmM2kr?= =?utf-8?B?MnNWSGw5TkpWZDRBUUpDN1UzNm5RUU1DQWZnL3FQeGF0dU9PVHlUREdINkF5?= =?utf-8?B?aGFZaTAvU0h3QWZJQjczdlgvcWx0VTVlWjJ0ZTVYK2JLd0h2b2ZxUWl6TFFE?= =?utf-8?B?ZEs5dWRMbTNKdTZZQWhUbXZHRk9YQW1IaUdCZnNQRkxIc3FPUXZSenNwZnNK?= =?utf-8?B?WDF4UFkrdllIVlhMTWUxckZVY25DRzc0NkZ6RVovZmM5UzJrODlEWmtnQ2Zj?= =?utf-8?B?dTVHSjVMbXRFK0I3Qmw3UnFLTFdFdHhiVTV4SVhrZnVlOVI4OU5ZMTBBVkVh?= =?utf-8?B?VTBMWVNzRTVBa2Y4V1Y0cUVUQ3ZFRHFSR0c0SWhJTHFGMFZVUCs5TjdTN2Vu?= =?utf-8?B?M096TW9GYWI2UlNJbzdFNnZHVXhEQVRwQ1hJemsySmZsZ3BGbzMyNHI4R201?= =?utf-8?B?Zkc3ekMwWnkzQ1NFUG5VWmdUdCs5VlFRbzF0OVhyY01QMUdodU1zeUp1Mk1N?= =?utf-8?B?cUlWR0p0Z0MwTG1JTTUwbHEwUTZYTFB3UFNmRmNoSTg2NkU0eVdPUTVsSWNO?= =?utf-8?B?YzFIWmdNS3JMZmtObGx6ZW9HVmxPeURrMXV6cHRwRnJDdFlVa0JCQXFScmdn?= =?utf-8?B?SEVvR2xYZXduWlVKR2FzTldpUWo2UURHLzBWb294cW8yU3UramtVNmlLcmpV?= =?utf-8?B?Vkx5MnJJVFVNbktlVk41ZDZnVVdUTWZXMzNXOEVjbFRoZ0g3aS9SOFZNdW85?= =?utf-8?B?OVRIbnVxbHdCdmszdEpjc3RVWExmZ2gxMUZqNnBxaGFzMGMxbTNhMlFINmEw?= =?utf-8?B?YzIrTTlGTCtySjBvSkl4Yjg5cW5DdmdnbFRzWlF1cHQwZDJ1NTFTNDN5cnlC?= =?utf-8?B?Y2c2eUpndFJieFJUdnh2RUl5WmZFTFdVaVhvVkVramVuVmFDOExKMzJzSG12?= =?utf-8?B?RVY3NVR2MkJFZWRqVm9aWnNlbDR1L0FrM3dSMTFKdnQ0WG9SSUtuZ0FQUnJr?= =?utf-8?B?MFBkSUxjVlM0T0gwZ3hUUS95c0VJWmxkbUhQQUhhUGdUbER5NklKQWhLcDlm?= =?utf-8?B?RWxxR1lYWFFIOUx1L1grY1plc0t4Q2tGY0hXcmJtSHRyNm8xMFIwNEZHb1VN?= =?utf-8?B?RHlnUFdESHRHbERvYkt4U2I3dWZTWGYySEEwWS9uNWwzTTNzRVNkcW5OVlI4?= =?utf-8?B?eHdrVFkrR2R2TlE1V3BLWEZIZVFvQkpqejF4UEVoSEZlbXRRR205VW9KbEJv?= =?utf-8?B?OFFrN2ppSjM1U0Q3TnM5RVdob0FsRFRCUndJSE55bUoxRjFTUXRINHZLYmNa?= =?utf-8?B?UFhxYmlzS2hvMkVqbVBkNGdXTUNRR0xZM1BQWjhlbjd5VEg2eUZHMWtwUkpY?= =?utf-8?B?aS9vSzRwM3JqbDVhSU9ldVJHOWtWM2VSbE5lVVlUWncxSW5RdUV5UlhPNjh1?= =?utf-8?B?dGFxQncveVkyc1pqQ0hqbEJSZVhHeTVQQkxzeGwyQVdySjFjTHBFZHJTaW1G?= =?utf-8?B?cG5pbk9GdWVsV2JoM1huYnF0bmswUmNDSlpzWVBBc0JKcGx6NTZ4alhWZ1RO?= =?utf-8?B?QnNTZ3lEYk1FN0x6SjRuOGYwUXNJc0RUQjlTOUhYWlhKTFBtZGpVditGV0o3?= =?utf-8?B?bjFCY0JnQ2cvakduVW9EVnNYdnZldWN2WW9WRlFKcks1a0xkazJFblRsckVL?= =?utf-8?B?MkEzTmJxeXpnY2t5bkQ4TG5UZWRqT1hwd2FHRDdTdktwbWl1elY1VEdhN3Ay?= =?utf-8?B?MEpmZFErMzFzR1haWXNrQkxjejZOWlJ1dDB5Y2NEY2hvMzJrVlBwRUlESjEv?= =?utf-8?B?Q1o5RlRoYm10YjJvR0h0QXVwY3pVLzY3WnFiNEJaeUFvYlgrUjdLNnEwaE1u?= =?utf-8?B?dEJLanoza3BBRW0yR0w0RXdBODM4ZlROOTJZd3Z2WUpYS1JhSURUcjBWRnlB?= =?utf-8?B?Y05Sa1VDTEsxbHVBWTBWQWZHbitaUU4va1pLWE5GZE5ON0dqZUh6WEdXbmhq?= =?utf-8?B?ak42eGUzUjRoNHVmYVhIYUIvZGl2TFd1Mi9acGhLMUxlQkxJS2JEWGpzcTIv?= =?utf-8?B?cjUyckpoNUFFQ29WWjNXSWFWVXNNenZKeEdpQU84VWRwMS83N1NHMnA4SmFr?= =?utf-8?B?S3dWdytFSmtKUXJpejVYYjZIQmNpQVJKOTFRZWxuT2lVNWUzMStMcVBvUGRL?= =?utf-8?Q?EGPa5e4Xi29MxlV6dzFMlIY=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: 1ac4e559-5523-48e9-9bda-08dc74aea0e5 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 May 2024 07:14:15.2240 (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: g/ukO6+HTU18UZ3b1zZRolYqWHZjaggE5tyPSrz4exaiC4WhgbXdhgRJlAipy0n0OA3FbmIWeuf6dHM0KOuuNXka8TVFmDQr2Y05l7nU8tGEJCnOqLpWWt6hb8J1oQYW 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.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: 1715757532366100003 We use this information in vtd_do_iommu_translate to populate the IOMMUTLBEntry and indicate the correct page mask. This prevents ATS devices from sending many useless translation requests when a megapage or gigapage iova is not mapped to a physical address. Signed-off-by: Cl=C3=A9ment Mathieu--Drif --- hw/i386/intel_iommu.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index 252364893b..7a4dd738a3 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -2064,9 +2064,9 @@ static int vtd_iova_to_flpte(IntelIOMMUState *s, VTDC= ontextEntry *ce, uint32_t pasid) { dma_addr_t addr =3D vtd_get_iova_pgtbl_base(s, ce, pasid); - uint32_t level =3D vtd_get_iova_level(s, ce, pasid); uint32_t offset; uint64_t flpte; + *flpte_level =3D vtd_get_iova_level(s, ce, pasid); =20 if (!vtd_iova_fl_check_canonical(s, iova, ce, pasid)) { error_report_once("%s: detected non canonical IOVA (iova=3D0x%" PR= Ix64 "," @@ -2075,10 +2075,10 @@ static int vtd_iova_to_flpte(IntelIOMMUState *s, VT= DContextEntry *ce, } =20 while (true) { - offset =3D vtd_iova_fl_level_offset(iova, level); + offset =3D vtd_iova_fl_level_offset(iova, *flpte_level); flpte =3D vtd_get_flpte(addr, offset); if (flpte =3D=3D (uint64_t)-1) { - if (level =3D=3D vtd_get_iova_level(s, ce, pasid)) { + if (*flpte_level =3D=3D vtd_get_iova_level(s, ce, pasid)) { /* Invalid programming of context-entry */ return -VTD_FR_CONTEXT_ENTRY_INV; } else { @@ -2103,19 +2103,18 @@ static int vtd_iova_to_flpte(IntelIOMMUState *s, VT= DContextEntry *ce, return -VTD_FR_FS_BIT_UPDATE_FAILED; } =20 - if (vtd_is_last_flpte(flpte, level)) { + if (vtd_is_last_flpte(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; } =20 addr =3D vtd_get_flpte_addr(flpte, aw_bits); - level--; + (*flpte_level)--; } } =20 --=20 2.44.0 From nobody Sun Apr 12 13:40:20 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=1715757546; cv=pass; d=zohomail.com; s=zohoarc; b=WycjeFhH10z0k0LZtrjHTiylcRRZqAa2xRzsHhu3gevWxN3Woo7RRyQZxH6atIWe4BnaqFLegSOghC5n/ktT1j5oQbb3dk856Fe1bFt8V0hPtMamFrHpDPpyNvorGLQ5KFAY1Rfm/iFjj5ux2VSTmyy7HedCvqRetT8K+3kTcSc= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1715757546; 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=DF5SAdKmOTa81i1Lq2VmreQVuK6SYI6Kvt/QgV8+aZ0=; b=Yy8tyWDF2AbbxJLso70dTOp0wFbzuPT1RflgFFuX2VU5XI6tjJmwRmLDbP38J1fqP9+QmbKPzzFGLKSf4Kbvn5WWJP5QMFikCH/zTVC8EsULQm3Qf0s2PS/4R8qbzKgkPNoyFU/rIceYn9q5/CxAjIv3NU3AOC3NHLfbzDdMIRI= 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 1715757546493668.8273129719767; Wed, 15 May 2024 00:19:06 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s78qa-0004be-EC; 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 1s78qK-0004Y2-Rf for qemu-devel@nongnu.org; Wed, 15 May 2024 03:14:29 -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 1s78qB-0000oS-Vm for qemu-devel@nongnu.org; Wed, 15 May 2024 03:14:28 -0400 Received: from mail-db8eur05lp2104.outbound.protection.outlook.com (HELO EUR05-DB8-obe.outbound.protection.outlook.com) ([104.47.17.104]) by smarthost1.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 May 2024 09:14:18 +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:15 +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:15 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1715757260; x=1747293260; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=DF5SAdKmOTa81i1Lq2VmreQVuK6SYI6Kvt/QgV8+aZ0=; b=DHSKGvy6qDHnw4cUZ9X0C96Y4Hm2ZS9xyKhIfHPSpqzogft/8Ad1H88i cAJjocMw3t6X9ryLGSOtyYWW6Y2c24F73+fMF7lf9RXIdz44FaLWFtdDr AlEa/jJQ4375ofIp9N2Be9UtgVC9w4+jxLg+KgsH2rPanagvstpFSl4oS GgCTt8GYe8jtA01jl8uOhc1LPuSBIl89KmLaFxOoCdA6rNDEk+CvcLPZ/ 0lwsFC3jlj4z8d7QNuDz/MVdcYq47GVVv7d9izkMgctE/e5zlSJUDLqMY vQHZmZapfH1qbvX40jQi2OQgxrw+qO75+0gjmnN+WeX2nEH7GAcJTUdhK w==; X-IronPort-AV: E=Sophos;i="6.08,161,1712613600"; d="scan'208";a="12580198" X-MGA-submission: =?us-ascii?q?MDHt+GikQvihNGNDiRqe7P9GNAmc04/nzB3Blw?= =?us-ascii?q?VlPSEegY3m9i/MUGF3X7xRy8HYXrpikdPlyHd+TYBuJSAa+yq1ih0jfV?= =?us-ascii?q?s+5lN0tLu9XTH885HqUs85TINKsmQPpbmOQ0idpyEqPg8uE+EJnDsidA?= =?us-ascii?q?CIp6gcZ7tmgaKKsdhRQQ0hbQ=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=a5FYm9PHVu0ViGJJhnT76xQ6ZqR+X/r9geAQ2vWl5zaIu9+em2BeY3KFjTp76dIk8lLBUEHLwNnSYxiu47qSYDReF3GR1HEt8j2cSL7kTZy9TLXJVSPDJrNoJzvBYrg6EEtJcf1ZfJj30WvDJI8HgJZS9NOB8mfqkNV5XWOZ3l81oYjCBtPN9e6deBctFcSYgx6a4TuS3ogCL6fhw8uAcVw0bwfOs+Rdu5z7Affy6onANURtgWLX4griiFJfoO65tCLjU0CQPGigcHQ9+iDcsqeV2kzRmxRPeVKJT8zpsFrLBYV+Jls8RMPUKqFYrXC8ljNGMCXIuMcm5HjG+jDWAg== 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=DF5SAdKmOTa81i1Lq2VmreQVuK6SYI6Kvt/QgV8+aZ0=; b=HyWdUGW9yMoCk3hrYFSng2VyIf+mcPc6xdF/f5oQ1FJF/onekk6CCsXTK7DccLja1zhs8pT6+OL2HtEcVjDZcE7gUsnEwevbzPIEEEww/4pXy8o+OMszOlsi7BH+lyqLBDjX6vswByKtHv+gHef/bmGwSSbC3oXzPzVvgTm6Mi3dZGK2R6ygBufr99cXBSPutl0Ua41mYmqQFbqgZAdiOOEFTj0rcReGVaiHTPV7Dzk1sdASTJMkur5vEUT3u/TnMlyY8Wj3AkOQysWCZRok/1311jsecZp3Ubsg0B5EJ+V9TbSwgcNGF7RozOATKboesAJHbrXgBsYa5Jv73Pt33g== 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 v2 06/25] intel_iommu: extract device IOTLB invalidation logic Thread-Topic: [PATCH ats_vtd v2 06/25] intel_iommu: extract device IOTLB invalidation logic Thread-Index: AQHappd+ypinSPAnNEWGRCEtiSZMgA== Date: Wed, 15 May 2024 07:14:15 +0000 Message-ID: <20240515071057.33990-7-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: 4aac8f47-67a7-4ac3-98d8-08dc74aea114 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?NG5LdkZUcFJ2eTgweHFGYms1U1l3WEx3bGtmamc1TnpramxsOVhXR1FFNHlm?= =?utf-8?B?eXMrNHgvVnlVYkdSVXpYVU5LT0psUEx6V1R4YTUzbmtlRHNZL3d0SnVxRlMw?= =?utf-8?B?cFlMdzc2TTdoLzA5OUdPeDZzaHFxYnc4MjV4bktnd0hUQXhDUUhRdlJHSzRq?= =?utf-8?B?aTJ5ODZnUEhiNHFzUW5CdmxEY00zVXE1WlYramVVZVFJUVc3Smo3SjhTdWxn?= =?utf-8?B?cC8xQUpzNzBTV2svNkc5c013SlNxczNKakUxclRNY1hIYXFSdUljMTQ0S29K?= =?utf-8?B?OG1RSU1ZNDR0dHk1aFdSaDd1K0lxbGVtdjBSRjV2amNsUHZ6L2FFOHNSdlZ3?= =?utf-8?B?Ny9tQ2RwMFkwWnlYMG11WkZvWVRTNi9pWEVaZ1JCSEphcnUxNmhaSXphaHBC?= =?utf-8?B?WER3VTFReHlia1kvdE9nNzJ1S2hMbDNwQzhCT053dlQ1ME93NVdlUzZVMzlj?= =?utf-8?B?Mk9CeUg5bTFFN3diZ2xFQ1VibmsyalQ3RUlmLzg2dENOTDdxeTdaQ3Rrb2to?= =?utf-8?B?cWV5MWRHcDFZcGdQa1ROWU1ETWVvanY0dFFsajFyZ3JqUG0ycDRnS25DVlRE?= =?utf-8?B?dHFZOVFuTVlPNno5WHc3YVdvMlljeUpwcDRiYXpGZWFQekxIU1IzcTRVc0lV?= =?utf-8?B?V2lxRUx1Z05EZFo2VnJGRmZ6cmIyQXo0TlJ6c0FWK25xbHl5N1BYWElYc2Y0?= =?utf-8?B?OGxzQnlUMXpBNWVMOXV5SUFOS0kzSkVEZkJxQWxDNU9scjdwQUcvc3p4Ym5v?= =?utf-8?B?NGZuK2w3TjBVWm9WTi9BTlFxNlc5djVvOGRBM2UxT3VOOFEzM3dxTnNCUWlP?= =?utf-8?B?TlNIOWQ5NWhPMlMxQTl2RzRhR3ZNR0UyR1VJZGttZ0toTnhCNmY3THFTRjBB?= =?utf-8?B?SkEvanZxa21XbHVIc01JNG92VkhrVnlaRzJHMlF6QzJyMnErN3VYQ1Z6R2RR?= =?utf-8?B?RXlUMEpjeEU3RkhpNWJ1YTQ3MlB4dDVjc2duYUJMUktGeDZnWUVkWmNJeUlO?= =?utf-8?B?Mzh3U3IydnNmVmZsTkY2RXUyL3BncG5WNGJGUVROejZ0ZFZFV0VSVlg5cjJh?= =?utf-8?B?Q3FTZnhuUzU0dlgrMkJ1cWdUQXkzTzM0VUF6TjJFZG11MlA2ZWpDVnprdVFx?= =?utf-8?B?aGRCVGd0aGVSakV2bXp3NkRSb0pRSEZPWi9uSGdEMitjSWZVKy9BUzlHSHZ1?= =?utf-8?B?eDhucGxzcjFSYkJKc0s1Q1l5bndkdFVlTU5USWVMZjBEOUxtRzJBRHllSTlw?= =?utf-8?B?Q1pqR0ZiK2g2UldvY3JyMW1iRkFDREJlSjdMejlNS1R1cTNNU3NJa093WWY1?= =?utf-8?B?TmpCVS9RczZTZ1dJdkV0cm0zc1kyWkNMVTVEQ3FtTzNWbjFkcHRvbTE2U1RZ?= =?utf-8?B?bm01SFMwc2dxbWEzMGQ1eDk0VzZiRjA0RTAya0lFR1dWMmtySVZSRDlyZWxu?= =?utf-8?B?SnFzTFdMUEg3VS8zbGIvNTBjV3lySzFNRDh6bVRMalpvMnp0b1Zib2FmZVlI?= =?utf-8?B?Mys0VmsyNzIwYjNwYm1qaE5zdU5ualdtcStOandxZVdLSUV3N2Nzb3doQytq?= =?utf-8?B?NDlhZTlIQlFLblZZWWJRVnpvMlR2YnlGME1tb21nNWxONTE2MXgyeGtWZTMx?= =?utf-8?B?eDB5cVhRYWxZelcybkdvWmxwWXBTM2swaHQ5YUJQNTh3d1AvWUJiMDJGYi96?= =?utf-8?B?aEVZNldaVUFhL055N1RDc212eVNJejNGNUR0aDYyN1N1b2Npem5lS1VrSFZ2?= =?utf-8?B?K0lwSkxPdDdvemxKTHF6YUx5TEJmRHN5czZPV1BnTXc5R2F2aFNqeFMwMkVH?= =?utf-8?B?R2V1b3AzV00rWHdFV1U2UT09?= 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?N0x4V0lNTEtlNjBVODVOQUIxVE1hZUJldzhFYUJSTWVOOFFkeVYxT3FacUI4?= =?utf-8?B?NHNicmk5MEs1MHU3NXhLVTl3eVZKVENxOTZ6R2lhZWRjZUl5VWk1R0tYQW9z?= =?utf-8?B?L0pCWXh0cXdaOEhNRFJxanF2cmFsdm9rMGxqOHo4YTFsNFhyS0ZVN3FjcDJa?= =?utf-8?B?VUxhTHFha1l4elZzMWtOaVFzYVBGeXZxdzhNQUNnQnFXRW16NVIrM0FWK085?= =?utf-8?B?M0dpRnNHTENnZzdsR3FGUUFZYTN3TEtPVXVselBYbVJBVE53VFJzTnZkNHdX?= =?utf-8?B?ODR2bFYxMjNhb2VPUHhTV3NwTFBrL05BWDdtbmFBZTBwMFVyNk0wTkJuU2t4?= =?utf-8?B?bkY3VXNRK2xwMktJYXNwc0pXVmExOGpTM0VSbkF5eXgwY0w5a3BNLzBXeCsx?= =?utf-8?B?cDFzSGtZc0dXRHJCaWVKdjRGdUlTTER3ZEUrMVRFWHozbjc1aHBwR2NCdXNJ?= =?utf-8?B?WmhRbDZRelhRTk14RFlnTklRbEF0WkoxcmNQbm1jRmdtaHpldFByd3NwM1hQ?= =?utf-8?B?Tm9ycllrTE1XY0ZuZWJkU3kzeEFicE00OExqQWNOOFlTQVN0Q1k4UUVvUC90?= =?utf-8?B?eldzTDR6UVlqQk5BMGJab0YxOWxoOGlzeVdudHpOc2N5ZlVSa2xEbzhCTFJm?= =?utf-8?B?dEtoQXZoQk5lNlFiYzVJTllrM2JhN052d25NeWV1akdoM3RkYWFlekp5ZE1E?= =?utf-8?B?dTcxOG5XK3JiOUlUcVo4MkprUWdnUlBrSG1SM2hzQkF5cnNhd1gxZjNIMnVB?= =?utf-8?B?MlFNVVl1NHR0bFBnbXVCdisrTHUzZk8zOFlMUTFJMS9mYWsrQ2Y1Q0lvdXpI?= =?utf-8?B?d1hadTcxSnhqS2ZWSDdteE5QNjg1ZkhEZXZhWE9XNzd6UmlXUDNWbVE2Ynpk?= =?utf-8?B?M1VhZm95VUxaWUw5Qk0zQ0RSMzBJRXBQZ2lSamFReUJXNnk1TG5RL1dvaG5v?= =?utf-8?B?MmEyNHdRcVdGV0dWTDFlZjgySDQ5RzFEWS91blB3T0F2VE9iWk9BbEQ4SEJw?= =?utf-8?B?UE1YUCtjQ3FzYVVPTlJESFgwOEJmQ2FwYjRjUVN4NkpycHhNVWE4bzNkZjNL?= =?utf-8?B?WWNEaVptYWt6Z0J0UXRDRTF0UXE2bUJ3ZXJUQUw5dnhxUEhCWFBxc3dUSUxx?= =?utf-8?B?bWRRcHFLZmxxME5LVHU0eXNOWmFmemJFeXJyMUNCZENzV0E0UmNrdjdqcXBC?= =?utf-8?B?TnBMdWllUW83UGtzMVF1MmJydGVvSjNldURka0JqelNVWUJvK3lNQUVuUmg4?= =?utf-8?B?RjNqWUV1TXN5OU9qNEw5UE1aN2RnZ1JIY3BFNEYzd3o0cVRVUE1lNWwzdVgx?= =?utf-8?B?WThhNFJJRzBSRFh4aTFjY2ErVnZWK0didnd1aEUvMy9LcnhsS0t5UWVHYWFP?= =?utf-8?B?UXRhbHdCMTI2dyt1K0JPcG0xblJrS2x1OVR1RWtvdCtDaXhsaGF1aXJzQkZh?= =?utf-8?B?NWtVVVBkUkx4c3Z1VWE1OW9DVVdaa054eUFEZFZZSWJMUm93b0JQaUNBQVVi?= =?utf-8?B?WjFyR1JRck1rU3QzTGhlaXZUeGFxVzhLQUxPSFl4OG5jckd5VlZsNmxKcnJs?= =?utf-8?B?T25oVDZxOGs2U0FIbFJTb2lKYmpaSHA2ajFsTW94ekVRUGdRMzk1aS9TaElM?= =?utf-8?B?K0JvT2FXWnlBczFuT0MvTEJZbEZuUWI0WnNmTGJ3Z0JFeUUyVVN3aTdiamhN?= =?utf-8?B?Q1d2bWk3THFRQmdHb0FRZTBtOVU0T1E3c0tyTW0yTlZCUVMxT0VZYnFlcEh5?= =?utf-8?B?a3MzL0l0R3h2Qk04RVBMSENHTjBMdW9nQmpKRzR0TXdkcjNwcTVsT1p5QXhW?= =?utf-8?B?cDY0bDR5NDU2U0hvTFF6eVIwdXd4OWtpeDRjZFNvSjZEWDBVM0JhL2lBUW0w?= =?utf-8?B?RlIvRDUxdUZpejl0MklMd1V3UWtUc1NzR3BOb1V2QjdYTlVPalB5Q2N5U3lq?= =?utf-8?B?S3MrK0Y3aEp1ZTA0eDVTL3dQangrYVlZUVpHQm53WDZkMVV4QzNaRFZrQWc2?= =?utf-8?B?ckx4THpYWTh6ZUNtU2gvdlFyam8vc0R2K2lsVXNDZzNacDV0QUgzaEZrTkF6?= =?utf-8?B?NUlsZzl0TWFabGovb1p0T2lQMW1kNmZDM3RTSGM3K1VSOHQ3RVJ6NEtnZk1r?= =?utf-8?B?VHpieldmbFl0bzBlZHpuU3Fza2ZOaHU4akQ3Y3ZRRFJFM0xiaEFtUW5rSGov?= =?utf-8?Q?LMLYxkzDZ0WE//ZFQjeFr3w=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <715FCAB949C26347B4CC5AD1170AF369@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: 4aac8f47-67a7-4ac3-98d8-08dc74aea114 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 May 2024 07:14:15.5207 (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: /Pg/G4dDC69kvgKxr4GONU2oTVXFhZ3snYRb2YQ4bsFfaO+E1mij68JE6DsZFGfCoHTYd/hBy6+u1O50zz9nTfPoZftbuHS7JYD0wegRCZ3zsdKZ/SYgD+y3u15eTfUx 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.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: 1715757548437100003 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 7a4dd738a3..dbdf13470d 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -4292,6 +4292,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) { @@ -4307,9 +4339,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 @@ -4334,28 +4364,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:20 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=1715757376; cv=pass; d=zohomail.com; s=zohoarc; b=LwCYawd57HqvD7PIBzw4KnN6tQXbxjeiADJx/ofwHWotSgttYmzsFucw1Pgai5+fvamE712Zrk3C2kRXthIZyjYVfZNM5MVQDn3vaVgzIP8a7vK5uf55F72xvN6PX9Y/3EIUw7VJ5IbyVnOlb3fGCJF4utf8yIF2d8VofZBJOKY= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1715757376; 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=C4gBjDFokjMiRkmDgDz/2mxqzwKco7331UmMB/qHfvs=; b=NZtobPZzwkH4VJKv3KvCC79kzdlAdM84pM+Le9WfPst0HaGIXBynm2ZQbPpdJL+JKK/rDtTPND7QKB8H410vVkq9X8CGBYa3l3/OoNjF6Zwd4eFT1VLzGxLf3mxPaigo6VDZ2mrm6q4QsZtdsTidgPjWl5ge40sylisbcLEREOY= 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 1715757376050941.2467475983781; Wed, 15 May 2024 00:16:16 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s78qH-0004WT-Hn; Wed, 15 May 2024 03:14:25 -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 1s78qE-0004Vn-V7 for qemu-devel@nongnu.org; Wed, 15 May 2024 03:14:22 -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 1s78qD-0000oX-AS for qemu-devel@nongnu.org; Wed, 15 May 2024 03:14:22 -0400 Received: from mail-db8eur05lp2104.outbound.protection.outlook.com (HELO EUR05-DB8-obe.outbound.protection.outlook.com) ([104.47.17.104]) by smarthost1.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 May 2024 09:14:18 +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:15 +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:15 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1715757261; x=1747293261; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=C4gBjDFokjMiRkmDgDz/2mxqzwKco7331UmMB/qHfvs=; b=Pa2TS8MiyxP36y1fRxmVZmM6yPIzMshHsSiOtXscBpTfwfOPcMXXA+bt 3QbI1c9r5HDRdzFJW/qFL4r4f0Uj2aGd+hleCQ5UKbCIRWdS7tpi3zC8O VwD5Aty0NzNEW/v05vHZI625zAEJ3Q/ZBJ0kl+dR+3BEh//kLQA49Q3Ri ZJbydReIY30laZ8zJRL+8v7T7L8KFCotoPwlw0CF437sd6ApTieeGv2KK 4Y3fwbgBJ8zVWX6p1E9TehSGnw3jEsVYoH3ncMaWl0E6SiinkLFz12ysj im6BTCO+f60D2zFcgPXf6ufLJRLcH0A0GInDAErXEEDa0CZrleBPjPPwl w==; X-IronPort-AV: E=Sophos;i="6.08,161,1712613600"; d="scan'208";a="12580199" X-MGA-submission: =?us-ascii?q?MDHzlVTf/YYzHiiVBkoAmIWY6zr6YNDOkdeblV?= =?us-ascii?q?n7luMLaDcngjqRtGKQlatIw8RV/TErmQaGaiEZOmys06c7poBObkFNz0?= =?us-ascii?q?tJbG4ueCA/cmSIQ/gLWsXjTVmh+8kyni1WDLp2l2R6jAtoNsa8LVBvlK?= =?us-ascii?q?9CY8lS0ViEOX0fNikM76Gciw=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZLALIcBEaaHrmE/Yj0CkxK3cVxz6G7eWGI9c5L4Lk3QdjhNKDQZvD3Mrmjj84r4SFZNJ+OQU6owoFAYb6/IvT55VkDZwB4TmqsmAQjYnLyHM9tUg3kCfVsTiruLXBOdbt7EbDdvpW6cCYwOhSSE2yA1u8lWd2mkxyy1EdjtKFNoOOdi/gp6UhZ33h+LHBvs9sYOupF7G+mwuvZPvCc97ObWczu5hI2af6hwBH0qmZvl8y7FDazogOG8VfOOsQ/SIGq2ksCPAAzIe3CuJUkZ4M2fvHvDiHlBhvpASXRWlisdQFfVb9Mpz198O4Tkfmioh5Xzs3J/r2e1vxF5z5xcBPw== 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=C4gBjDFokjMiRkmDgDz/2mxqzwKco7331UmMB/qHfvs=; b=G3NfbUr6UJvYmPUBjB+hzofl6awblPddcgX1grgSuJ1ed0Z0TQiNIRAW+ZtLc8MEcpIcf16RnnYzf3xe/cXjjAychc+PjNPjwA2T2dHph1qDDuc94dpmAU5PqF3XDZijeM2Sc2iVNzm2Djbsv9RUuaOy3JlPmnzEUHhDefKYllbua79s9q68CQ1JNgpij3PuURU2rbFrA9T6wBHLtw8zLVdp6E/e9AvNwhQ+tBDSYhYRdF6kQSwKR9FeiW8q/VPv5he5YYOVoSkHOjNEDnPg57C0IJ9xIpnSkCJySzwwywmaOcx02M0KHGTjquyvRFBRAjD+6uTVuz6yrQMhpMVD1A== 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 07/25] intel_iommu: do not consider wait_desc as an invalid descriptor Thread-Topic: [PATCH ats_vtd v2 07/25] intel_iommu: do not consider wait_desc as an invalid descriptor Thread-Index: AQHappd+nTq4jyKQGUeJGP8dDaglxA== Date: Wed, 15 May 2024 07:14:15 +0000 Message-ID: <20240515071057.33990-8-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: 570e829a-6320-4080-4c50-08dc74aea144 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?M3E5dHZzLzdIT0o1eHZ3VjE2ZUExRG1TUWFBT2tiZEM5NkdlN2t5TU4vNFVa?= =?utf-8?B?cnV6VS94VmtSWWhWM1ptVUM1QWpaQll0VDkzN0E5MGlMZGVlQWR6NW9rVWVr?= =?utf-8?B?WXdSQTYzTVVGZzloTWpDS3IwNlpHY3pYTzVsZloyU0RTMk45T2lqTktkcW8y?= =?utf-8?B?ZmZweWlHYjdNN0FieWtvTGlCbDQxcDJwZWFZemRwQ00xalhkbVNsajhiK2NC?= =?utf-8?B?V3VkNWR0Nk9OYVkvL2VTZkxRS0JQenp2THU5VldjRGlvRHNiK0ZxWmpNUDIw?= =?utf-8?B?MVRXS2pBanB0Qi9ML2cwOGZ5dDJYTnZLbHlheG5Ed283alU4ajhucVVsbEtq?= =?utf-8?B?MEczbnV0RU9NTXY4OHVnUWFERnNoOVNtS2U1cTRBZ3llY1FQN296bDA2aGEy?= =?utf-8?B?SGJwQ0NFNHE5NWVzRFAzL2E5bkMwMWZWODAybkxIWXc4azBIMll1ZXUyTWl2?= =?utf-8?B?WHFpVWx6QUh0NmNxNmR6RkVRK1JtWkxidlEwdVgyS1NHTHd1NXd3R1M5RVdl?= =?utf-8?B?VE1NdXQ1UXNkS29wVDJFdTN3UU1jZWMyQjJ1NXdxVHBRV3hBTmo5ZW04T0Vz?= =?utf-8?B?elFrenZUcjE5azc2N1BkazJkQ1FOMnZQbHc3TFpHNk5kSkJzNTBiUU0xbFlx?= =?utf-8?B?ZEpMRFE1b2N3R2ZmUFlFQllRNWp4aVZ3MXh2ZHhRS3NEQ21ZcXpmd0puWlJy?= =?utf-8?B?bU5NelR0NmxOZmI0TXNXbWlZSkZxdVZWM0FsMUpMVEpiWExuV3R0MnN3ajdx?= =?utf-8?B?VFljNkFkVVpOSXkxd2tkWkNnUEFIa2JveEE5Y0lYQklCYi9ZT3FMeTBPSGZQ?= =?utf-8?B?Q083U0hxRlVjRmhGQzNHcHJBbmo0MGZjMXNkU3p4OHFlTk9DaVJvVS9zZUhn?= =?utf-8?B?b3VLbWc1MU5rMG00VkQ4SHllUTBQdnNRNklER1VDWXFDN3JVSGtTb0FaV2wx?= =?utf-8?B?UXVJaGxwTjg1YkpCVkRWQXgrUEFVeW1tYmh6SE8rNkZNdGd3dXdQZ043YVh6?= =?utf-8?B?ekFaenBjc3JZdm84K3h0bEJzS29SSFVXTEtHQmhYZGhSN1NHUHV3RmY3QUFk?= =?utf-8?B?YlhhM0N2WitDMG1lWjRTamhCVC9tS0JmRk9CRDZkYXl4ZWlhbG8wNmduMXZQ?= =?utf-8?B?NXBCeDArWnh2TTBrVURwK1NLVUUwQllKaHFUTmdSSmxqczArRjl1eHkzdFVt?= =?utf-8?B?NmRKd0NQTTNJWk80emVkMVpmM24vRUdtS3JRNHFreE1QSTBldVI1aGlQSXlw?= =?utf-8?B?U1RWU1FFU3hPNUNZTHlBY1BTcG1Sb3lJSnMxWW9OZUp0VTFlWS9na2Vmaksx?= =?utf-8?B?Uk5tdU5vZE9mQ2k3dWFjMHF1MkgreUFFaTdRWWhNOFlWN2VLc2poYlRFa2FG?= =?utf-8?B?NkxRcDdVZmc5TTVFMzlKK3dzOGd3SXhWQXFjdUowVG8zc2RLT2Zzd0Fxc05X?= =?utf-8?B?Q2RzbDg2WFQra3liaDc3am1aNnlRcThnajBhWWRpSmRndUFPQ2hKZE94ZS9z?= =?utf-8?B?VjNXT2ErbFMySi95NGZnK3k2eUkxUHpLSHZqb2JqRHhGR25QdE5lbjdPWDdR?= =?utf-8?B?K1M3M0M0UGdUeGgrWGhFNUlYamkrTUkyalkzUVlEVlpjL0pXeEkwOXlMaWY3?= =?utf-8?B?MllVZURsVzFEeXBhTER1TFpWSjQzRlJPOHBYbVdZYUF4MnpJaUw0RXdVMFNx?= =?utf-8?B?WmdvM3lJUFV3Mk5sTEJTcUJsSGRLL2lMdnZZRjZvcTcyVkIyaTVwSlc3M2py?= =?utf-8?Q?KG/1oqbjtW6ZCzd0uZdCzrVrjzR3+hREGZ1gSDV?= 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?SDZJRTR2OWhBYmozN2JXUFh3ZDh1S0VhRVViM1BibW9uR3BNcS9aRFdzNXFV?= =?utf-8?B?Sk5TQW5qajRreWp3ZmZ3OUY0SllSNkNRSDBIajZCUVg2dFhBNU95R3E0YUhW?= =?utf-8?B?R1kvTXdkNk1pa01EeXpjZmdRdEEwcXFsSy9pYVhkbytEaTVIcXhqZTFNc25p?= =?utf-8?B?czc4T2EwUnBtVm9uOGNDZmRwUUtTNDlvVkUrTlVnZUxXNkIxaSszQnlWWVVG?= =?utf-8?B?VG0wV2tVTlhPVjBTYldydUZUbC9PSG9LZ2s4M1VoaDJqY0U2RHc0bkxVWmh4?= =?utf-8?B?K1hiZGprU29OM2tsK0JwR0NMRzRXS3JsOGVUZ3BPODhFbTdTRjl2Um5TM3dU?= =?utf-8?B?MkUvUC9kcFN3WlIwS2NCMGVCd2FKdGRPb08wWk9UMEVOaXR2QlRDYnFQb3VM?= =?utf-8?B?bkNralZOWWFMRHd5b3MyVnkzN1VjWVBpVUg3VExlV3RpcjRmdGg1U2JrOEQ0?= =?utf-8?B?YzU3TndZRW1xcVA1bWMrb0RHN0VzMXdIOHFhbkx0UXNsYk51eUVpVWdzekx4?= =?utf-8?B?TnovcTVsTk9SZ1gvWS9jSldxSk8yL1I1dnVvRVNRdGptcTVuL1dYMTJMZW9k?= =?utf-8?B?WnlGbGdSNnVxcUl0RlhQR2FnbXNXdlJYaTdHQXFLaU95SFgwM1Mya2NKU1lT?= =?utf-8?B?T2xjTVo2YTRnTllvSGhtME52bzRJSEh3blZ6WWxHOVQ0aDhycFlyVjBjQkhZ?= =?utf-8?B?Mk9QbmtvblpwK3NFekYrbXhvak1JNDdNaG9aQW0yWU94VklkSDYxbkdrVDNR?= =?utf-8?B?OHRFbDBYS0E1a05OR3I3VEtCNjVSa216UWNUUW51cFJqSWRyMTlyYXRLWWhn?= =?utf-8?B?U1pyZGp0dUxWdk9uUTBUQXRjOHQ2NmVpK3pGNEh5dVNRS2s1YXJGV1dZWURh?= =?utf-8?B?OUZwcXExV1ZWN0k3NWF0WWRuSWsrRmd2bDJ2QVY1Y3Fwc0JFWC9tV0JTV2tJ?= =?utf-8?B?M2QrNk81Q2RkMnJsYVB4akFMaFg0NlRwMHBtelJHRkVxeDJwb2RNbVJKUHkw?= =?utf-8?B?a1lod3BRbnVwV1ZGRXYrRDhnVTFpN1pYMEhNcnlvVkFyRjVUMnpDRHZIRURL?= =?utf-8?B?VW9SY0pheS85QVFCc0hMQy9BZnRRaXJwempWOU5XT1FoS2hWWC9YNGU3Y1By?= =?utf-8?B?d3A3RThncC84bEEySXI5cEN5RFBCTDBXRyszZk1FbksvcXR0K053YSsyUkFk?= =?utf-8?B?QlkrSEdsVktBMUZSazNQYklMRXdTSXRQVy9GOWdKV2ZBR1lGY3hKT1k1bGlz?= =?utf-8?B?dDQrQThzTkJNVFM5aEJFeW4zRzlucW5PNFk5VDdsQzBPNzZQMGIyM1pvYVdS?= =?utf-8?B?SityNDBEc01RUGdLUUZxMTZ0bHNGb0dSd1o2bC9OcFlWMzBSYmVMSzhJTFAr?= =?utf-8?B?aU95bEV4ZXZESDBHeEdaeTdUOWdDc016aE13a0krWnFNNW83OTM4WEhhL2hv?= =?utf-8?B?dHgvZVJ3SFhSZkdQVDRuUTJ3RXdMZG94NkkzaHRxSUd4ZmltOTdHNkFHOW82?= =?utf-8?B?aVVVcU4xa3JXV2gvZVR5bW9uQm83dDVVOWR2dWgxYlMwdXQvOWF5K1pKU2JF?= =?utf-8?B?emg1WjR4M3RIRGRUTVc5cXBpWDBIbWF6R2IwSmFTZFpYMS91TVBXc2FaL1h4?= =?utf-8?B?WFVzTzhjaHpFKzU5cm9PUlBaNGxUYXovbVpuNjNmblVsekFBOEJjSklWWGky?= =?utf-8?B?WEM3bHI5OHl6REFRVENxVE1NTEpxUHE5RVcyWnFGSWpIWWZCMTBDeEUyK1k2?= =?utf-8?B?cWZsSHU4YS9kTlVOdklqNm12ZE5pMGFDVmpMS0hBb0FxOE5jRGtjdkJ0c21F?= =?utf-8?B?SXhYeEcxNFlFeFBJOTczd2RFUmNic3BMTld4Smg0MFNCQ0VvOGFBeXdMTXlC?= =?utf-8?B?ek8yMFFYMjF6QlVDL0hET0VqTHpOOUpxQ3A0d0ZWNVJ3bkErQUJYZDZra05E?= =?utf-8?B?WnQ3ZTFtb0NEZ1lua1FHRUJXdE80aWVWL1VRc0YwNWVsVG1Cbjg0Wkg0b3Vj?= =?utf-8?B?YXR1bXZQdE42MFNIdExkQUVYeFdXbWJzWVBwdFJkZ3ZqaVMxRVRLY0M3VFZU?= =?utf-8?B?ZXIrZHlQL0ZjRHc4c3UwT1l5bDNNbzJVQnU3aTJ5d2JoRmthdTF3aUh0Q29z?= =?utf-8?B?L0gwRS8wbTlkL0dxalhUeFhOcjB0MkhGbm5EU05vMmtsNXI0b005ZDVJaEFQ?= =?utf-8?Q?z1i4oi/T4g8g77ecYsuUB00=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: 570e829a-6320-4080-4c50-08dc74aea144 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 May 2024 07:14:15.7896 (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: olNBsh70JBWHc93Owe1We3cbfAuO8fLtMEu5iSNZ7uYKjsJz1gTnR0JILqKRaiBPp8V5BqzTIn7GTfXPHC/4PLpFxjAhOgJ6v2hFinkYVXN1itw8Lya0EQJiXhT/xIto 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.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: 1715757376846100007 Signed-off-by: Cl=C3=A9ment Mathieu--Drif Reviewed-by: Zhenzhong Duan --- 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 dbdf13470d..373f3d254a 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -3362,6 +3362,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:20 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=1715757520; cv=pass; d=zohomail.com; s=zohoarc; b=X6UDiQi9fohNZmqtpRtiGnlEvAVK/QSawyWZo3voOhBRN94YtH/2AjBkkNHIn77XUBZkPGYAu/l0Wi9EedUsUsXJpqNevBzOf+qBjFtgLC4kFn5p4GmB6+GyDjyhcjqor5qYP68k1EGpgAijGl1HL7/30DS2pjo4rR6aINEOvGQ= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1715757520; 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=we+kjz2Cu2q6YkP/UfGNhUBZcgYGej5Wk02odB72gxg=; b=l1moIPTI+03LwjBz8VkcbbLy3H5XlpT73GfAvLpUjqQ6Ra2n+TFM/3gxRNbElF578TWkqJBkG3Jw9gpditE3BbLAudpg4kNkRlfV1zirt/68BYFDBtPa8e+pXYHill1E3xD9zHs8PVhW/uQiKx3sYP2FXpWe/iGgk4K0JyvmOMY= 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 1715757520020697.7466230218863; Wed, 15 May 2024 00:18:40 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s78qV-0004aL-52; Wed, 15 May 2024 03:14:39 -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 1s78qK-0004Xy-B7 for qemu-devel@nongnu.org; Wed, 15 May 2024 03:14:29 -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 1s78qF-0000oX-AE for qemu-devel@nongnu.org; Wed, 15 May 2024 03:14:28 -0400 Received: from mail-db8eur05lp2104.outbound.protection.outlook.com (HELO EUR05-DB8-obe.outbound.protection.outlook.com) ([104.47.17.104]) by smarthost1.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 May 2024 09:14:18 +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: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%5]) with mapi id 15.20.7544.056; Wed, 15 May 2024 07:14:16 +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=we+kjz2Cu2q6YkP/UfGNhUBZcgYGej5Wk02odB72gxg=; b=HMATLW3K4Gx9PaZ3ZqGDN3bl4xzlzSWjGSHfoUJvkxzLqTWaJH7nPhLk /h86k8w0nDmtKv1MJlJF/nPX8Vreaw5wxLlG2SZAkrCZP4dzAODCTVbLy h31snZ4PjFzkszTaU5zAOSs/3HCZPP0Nbdk8qUkhE2PrS128PVpcy2QpP 0jgrn3wYcVTUVrdHy3vKpxh5sSOuDbR3rGwy+EZRuDdGXXfyeTo9tRAu2 fwW6ikva/t8ba1uKcQmOtLfSE1p6BzAUWdFPWKchv8T+Sl6/wZedtyvVs xtcYOg2Jp9diDps/KlvlgAs2gQnlrwEt4UU2Dne7pu9Hgjyr15vD2v4xa A==; X-IronPort-AV: E=Sophos;i="6.08,161,1712613600"; d="scan'208";a="12580200" X-MGA-submission: =?us-ascii?q?MDG/UngeG5tFbfb74bx+GLGzcYkjaFuLvdHlwY?= =?us-ascii?q?e6Uq8ayALWL0Qiwf7vAW/Xj/Ts73458gvinrywVBBYexoTPlm7gIREys?= =?us-ascii?q?6587bBvxx65dXJPn79wOierRvXwmuaIoBsmfcvWTtfGlsUE48+SKdDpD?= =?us-ascii?q?hE70rryiw0CXEOktMSiPngbg=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GhUlnoex8SrpzNw33KZ8MYtJeq5KOAiyf/EX8uC9l597FQv5gXzQc/qfJgdVUMwClL8Uqq1bNZtTrH0vBqIqiBw1TXNnOg3ijBA90BOUAyshIQq4n3k/s7YY/lhWjf1gEdKa494PFObDRANfQ+8TsdSSDlzmXLHtgqlozp6Y4vz2ZRk+9arGfFsZcK4pJ2y4YeMmi0uVyW5Z1pUJdIHCteTCtx9CxRoo0oU65XY1uPn5JW+/hCvmh9xTQKXQQPWYvqlD2rXl7TRO7zlVwYmTGlAFgqGiNAaSMWEZoN6FApDRG8iPZeW5Z/zztlFTda62i3Gssfdi8C0VZfaKAQhAvA== 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=we+kjz2Cu2q6YkP/UfGNhUBZcgYGej5Wk02odB72gxg=; b=VxxZ77+++1sCTx3EJ/zW7ywlpG/ulQAtMW1KPDPRw4/IJP5oeQ3CSCT+xat768SPJUcOBP3Qq/6fo7lk+97ymo/e6Ldy7SOr3R/rPTz1R9pUjmn2u+OLyWz0FDGONTWhkwPxrP0yGxTH28ydHeLVclPiHMFOAJyyJFdnG60KlyVKJem3lZLnALcWTrfgwy0ERIGGQr2TGcPkjTGPKJQqBRPFOSf5+5+jAEhncsVa2zkrE8JFeGK/uo8VtXhwifwiJXatvY/kzRPWnqtE1s/q+W6KdJVpkE0U6PIkPjrsdt/EqukPsddsefoRghSXiwZBa4poigOF2zRzcn6aS9TZLQ== 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 08/25] memory: add permissions in IOMMUAccessFlags Thread-Topic: [PATCH ats_vtd v2 08/25] memory: add permissions in IOMMUAccessFlags Thread-Index: AQHappd+1X32ylJH50OSWYK+S1O/wg== Date: Wed, 15 May 2024 07:14:16 +0000 Message-ID: <20240515071057.33990-9-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: c398351a-dad0-4328-66c3-08dc74aea16a 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?WTBhcWlpMkNOeXBYUEovcWdyRFZGVldOaVAyZVJSUElwM05iRFlMS3VoRE5l?= =?utf-8?B?R214ZnRad3NZOGt2RFR0Vk41OW51UjNtSWJBQ1p2REZRU2VYT1FRMlpIOHRK?= =?utf-8?B?M0I4WmpocWk2SWxHYVdKKzdGTTZ5WC9vQXVvWFlZZ3JNMFRrYm5jYzlFSGk5?= =?utf-8?B?UEkzRzRGYWx3dWo2NjNJaUdZVUtFTENmWWRUdzdGbjN6UUsrRVhNTnBrL1lV?= =?utf-8?B?Y2xKeHhqUXNMdlBLdFBlaGhtNjlTejc1djdlVGw5MzhGUmpnMUtKZjkydG9h?= =?utf-8?B?OHVwV1c3YXo2cE1uRFNQTHdtZ2RKRHpvREdnN3hOMU93VnZSZ1dVTWhlaGZt?= =?utf-8?B?SEdGa1FmREQ5VnovMFA2V2tuU01oaEZ3bjlIT2hsUjZ1dks4OFgwQ0Y0RWMx?= =?utf-8?B?VXhzZUVST2dvbjZNd2NOVnNTWWR3Z2sweVVQK2NsL3FhWDlNbGZtdzkvUHB0?= =?utf-8?B?UUplS3VkWU1ZYmh6RktUTm9BVlp2MWtOZEF1dmQwUlI5eGs2OG9OcVl0RFI3?= =?utf-8?B?dXh6djFXZ1AxMW9xTFAwWWJsV24rOWtmSEFwS200czd4TFNBRUZvWTlySnJr?= =?utf-8?B?ZGMxVnVVWmh4LzR1U0duMm1venQ5b3RBMHZFMlBRdUsyRTdhWUdJNC9GVkZG?= =?utf-8?B?bTdUWEhIU2kvV09RMEo0aUpNMk8xdVpESFZZM3BidE0rUnJQd096UDdpVXR5?= =?utf-8?B?UEQ0L1ZtNzVtamdvRkRZS0lydExrRWlEWWJNclZBUE4yVUNtMlcwVzdNZkVT?= =?utf-8?B?Zm9WTWNQSU1BbGtkeTQwRzZQb3d4Y09tRyttaFNnUkg2TW9kdmczT081Tll3?= =?utf-8?B?VCtzYy9yRHREWkxuMWtCcllJSzdlM2VqOUlqWEZxd1VqZVlvbFZndXpSZVFl?= =?utf-8?B?YkxFaUlGZHBuRHNBSVJzRyttYkFJeDZYbldjYnVHRXFYQlBvTCt2UnJtZnNj?= =?utf-8?B?d1pWdXJBYUY3RXI4dDRMaHFIUlZUTjFpUzQzY2lGM0t0VTdScVlQZ2xkTGFs?= =?utf-8?B?U3BKbmVHd0NVclpiQ2Z4K0NTbkRPT1Fwd1hRREFrcTdSdzk5RmVoZlV4bEVK?= =?utf-8?B?TnlGQ05LMFVwS2VMOFJuTnlyK1Vyc2EvTlAxczFaT0JEc0J6ZDRQMUNKLzBO?= =?utf-8?B?dnBqeGNkK0tVK0NWSkphbUFWRGJONStKRG9FYTZXVERPbCs1LzFveHhZd2M5?= =?utf-8?B?bm52alBSaDRmRUVLYStydnZBaTErVkhMazZjeWFId3ZQb3Zyc1krUUxoSjhL?= =?utf-8?B?WUd3cTRiNUdMZVlkcVNRVFpWUHhsOXNxVGx4TUhCNGtqUUU1VEYwM0QzUG1W?= =?utf-8?B?VXFUdUNvNVZQeHZxWXlsSFN3blNWUmhMVC9KQmxIdHZ1Uk4xOHc2VktqOXRr?= =?utf-8?B?enJNSWJ0aXN6dlFLb1JnbU9VOVFiSC9seGpBeFNOcmlUVUk2enh2SHhrS3l5?= =?utf-8?B?UWYveERZUXdqanM2dVNzbkQ4REFWWCtheGRNRlljdFk0YzZxWmdzWWVyUXpn?= =?utf-8?B?R3c2bzUxeDFuM3Erd2djWnQzWTdQZjlTMzduTFFyYzRMYmR5VTVCYXgvRC90?= =?utf-8?B?OVRkZTd3Q2tlckJaMEx1bWpmQU44QSs5blcvZE8yc3BqWDFYQytDV1crUUF0?= =?utf-8?B?dTFybjZHM1A4RnlSSnRkelZRWmVhdFlHNG1PSUhIWVpsdzdsWE00R0lTaDRV?= =?utf-8?B?blNuaFJPaWdYSmxXRXovTWxIUnA3UFlnVXdQOXA5QjNwU1ErRlgzTVQ2YThD?= =?utf-8?B?UDM1SmlKd3M4d3lVaUtiOG85VHcxNjE4S296eTY4QXBjV2FzVkE4UWdnV1p5?= =?utf-8?B?MlJJZ2Y2QlNUdk4vSkRRQT09?= 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?UDlycTdKOUtNVkJSZnlHblhEL1I3dVM0OXVSd3d6OWVKTmppRWtPeXRqSmx6?= =?utf-8?B?N0EvdDFqTnhvejVqejN2cWtVdS9wZFFFNzdMcVY2aTJDNFdheVRwWUdUY3RW?= =?utf-8?B?VElud0k3WWc2OHBWTkdYRFpOM2JBRU5uQ0xCdVNpc2RBWkw5YVdQRU5Uck1x?= =?utf-8?B?bko1OHkya3A4ZDlJclNnQnFIYlJxMEtZbzhzUkp0dmxpYWF4cTRHQUlCbHAw?= =?utf-8?B?cjAwZFRXWUwzZUgxb01xdHhERUlyYktpZmMxYXNSTEtnc2lsTW1rbm9naHhE?= =?utf-8?B?VUE2VXhmVUJYRGFSSUd6bUlkVWJ3dk5ybWVmeXRvaWRiWUJGS2NyaDBmaGkx?= =?utf-8?B?Um9Ub1hnTkVleUFFQ2xOQ1hWcjZkMHJlQzExS1VTUHhCVDJLcGt3S2V1VUJP?= =?utf-8?B?K0RnWUJqODJlWjdiRmtMZ2FxbmZZOG5rSFJ4QlZjU2s4QmRrc3FpOWtZRFVL?= =?utf-8?B?TE4yVUNDZWt2M1R3Qmt0VlZYVzVEZ1YrYjBCRG53c1FDOG1FVjBBZElud3hq?= =?utf-8?B?RzVGNUNleW92SUh1Q21IZlIzWlUzck9ORzV4SEkvT0kranI5RUQ1SjhHaHVU?= =?utf-8?B?ZWVlMHpreFNjNkx0NUhTK1dOK2lLc093WlN3VGd6MVBFQXlrZTVRVUFWYTM2?= =?utf-8?B?NW9ydUEvRC8wVHhCU1BaNEMyU3FMTkJ5Y1AyY0s2UkFqT1JFVnZKbHNwSWlJ?= =?utf-8?B?SWtaM01VeGV2SFM5N3NQbWwwa3lWYTBOR3A3eXI5MDRYVDNzUDBaTDhuR1JW?= =?utf-8?B?WWZRcTJwdDBHam0xcTByMFBDaWJkRncyZ3RiNmpJazhMZ1QzN2VsMUJoUDRH?= =?utf-8?B?WnFuSVFXUFdjOUFFWWRrU2tKQWFaQllvdWcvODNpN2xKUGxlZnNLdHNQOVhR?= =?utf-8?B?T3ppbWRhNExPdlRpU1IrZHRUVWYzdWVTaXRwZ0IxZ3BNYWpHbDdOaUQ5Ui9u?= =?utf-8?B?Y2Q2SmxMZlc3Q2RMdWcybXpuNTJQR0pDRWZMeXArVUVndlAzb0k2bHB6Sm43?= =?utf-8?B?aHJUdm9HYXN0bVhwQ3Z0ODBvdW9GNU5DS3dZbGdNeUphaTdDUXoyeUE1VUdE?= =?utf-8?B?ZDBKeE9UcDQ1NE1HSWtxdGxqdXN5dHQrWXh3cTYxbXB3cGJwZ2N4RFhsWnhM?= =?utf-8?B?cklwSDZiZ1dhdE1wVUZBU2xwWHRJK2t6bEVJcnFQTFZ6VEtoNnlielNZY1pq?= =?utf-8?B?Tjl5K1BpdEVkTHFsUFloOXYzbmlnQ1kwTHBBbzNvS1dJMlIwQ2xhb1FZSERV?= =?utf-8?B?b2g3TUZyRHhzb04ydVIzUjVOZi9lVTljZDh0aHB3WHhrbE5qZFJHVVNESC80?= =?utf-8?B?dnN0ZnVBVy8vajdMSEZpZURRUzR2U2VxSU13bktBUWIxM0xudm42VWRTVEEz?= =?utf-8?B?a1FhQTFHamZSQkNkVVIycFExd21tWFNJakt1d1VKT29XT3hiY0x3UUkzU0Ew?= =?utf-8?B?VWdqM2Qyc0hxVVl3UUtvK1ZkS3NWL1dEbGdaK1VGSWl3VjlObkxiOXdTbVli?= =?utf-8?B?VDBWUS9pRGRJbEcrOVp1eHlkVGdZYm9hYmtCWVNFYllSKzhObFZQYllGOEhP?= =?utf-8?B?SitCR3JzY2lBSThKbTRzMkdBMnR0R0c0OFRTWTljMkZWUFlyNVZQSmtPZXpi?= =?utf-8?B?ZlA4MklEdXZXOUIyT1VOK3FQN29WcnZMdFljeTFBelJsZE9xS0xMOTlvN3Vo?= =?utf-8?B?S29ialBLd0JtcVA3c3RQajFCb3d6ZGpkNWxTWGJwWnBWdjZuc2MwUzZtS3Ft?= =?utf-8?B?bE9yY2JsMUxXdElBOFI1d2xuaXIyZ0g0Rk1FdGEwUUtSTmhRVDRvUnJybjB2?= =?utf-8?B?dVNhQUdwMnE5Vy9jQXpJRDEzQVF0OTBITmFuQlJOMEF6VWNZbXhvcFJoaGU2?= =?utf-8?B?amNEVnpLL0VoVEV6M0h3SmtOTFNjMm1QbnJ3S2FFNmNyWHJoOXJJVk15blgz?= =?utf-8?B?c0pIWVRRL2c2bk9JRzdZTEJKSVVDYTdBOE4vUmF2ZHhtQkpndVMvS3p1MHI4?= =?utf-8?B?ZzZDTzhxM1RlRXZ0bkczMUZXd2l5Nyt4bENQYjZYN0RzWHJkUzhNQ3Uwb2RV?= =?utf-8?B?UVJ4Q3V5bTFyVFRReXpneTZNZzhUUlcxSGlac0RlU0lISy8wWEdPMjREYloz?= =?utf-8?B?aXdPT2ZSeWhsQi9ENExZcTNIeXJPejlmQzhLMWZjQzNvTURhZG1oZVd5MTdL?= =?utf-8?Q?9ny4R72ec5AtTAT6vmFBgbI=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <3733CE74C9BF6F41855D04A026995368@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: c398351a-dad0-4328-66c3-08dc74aea16a X-MS-Exchange-CrossTenant-originalarrivaltime: 15 May 2024 07:14:16.0610 (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: IdDGmkHGhjNije6IwAvr14cnVmj+n3zr/7rZ7jx8Qa0j+zDVJRE2V0T0O85BiaouhNjuvaqxytckvFULF7h+fXQjH8gB93OpS5+YPwjY/jLalEhkopPA4NiG43CmBlxK 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.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: 1715757520258100001 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 | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/include/exec/memory.h b/include/exec/memory.h index 8626a355b3..2c0e964c07 100644 --- a/include/exec/memory.h +++ b/include/exec/memory.h @@ -110,15 +110,34 @@ 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; --=20 2.44.0 From nobody Sun Apr 12 13:40:20 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=1715757336; cv=pass; d=zohomail.com; s=zohoarc; b=FrHFxd1Bh78TyuI/9VCHFGKDzOVmpxJHwTIwm/49FtglMtKaWMi4JjvygIt1SggBOb38zYG/tD3TGBCDv6bCWsKdLKPLWuoVG1Om4alrTxRfTCYEwoRKxcA6I+La9KvPsTp7YKUHHAWrCIp//IB4eMrRUtFYyR13HkApdGbsfhk= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1715757336; 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=AokO+Y+dmAog8wVRs7/0+s0ZVn9kR7aKuJmrVWyh9P0=; b=JGFxSbrC06SPm9xZCFjVQIDPgKS6QhFesjIwPzCJnmGyByVe0QDDPVVtw7CS280h5ylk5CuF+J3DhPHocDD5E/cooAb0maUIzPuP2Pg9X7MMOHsA76G2PQd75mtrTIRxfVmeEUleMQJpVhaTB73aeLEcIdyRdYXmRhYwKhzPyt8= 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 1715757336135233.7094296756154; Wed, 15 May 2024 00:15:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s78qM-0004Xg-1D; Wed, 15 May 2024 03:14:31 -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 1s78qG-0004WE-HD for qemu-devel@nongnu.org; Wed, 15 May 2024 03:14: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 1s78qD-0000oc-P4 for qemu-devel@nongnu.org; Wed, 15 May 2024 03:14:24 -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; 15 May 2024 09:14:18 +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: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%5]) with mapi id 15.20.7544.056; Wed, 15 May 2024 07:14:16 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1715757261; x=1747293261; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=AokO+Y+dmAog8wVRs7/0+s0ZVn9kR7aKuJmrVWyh9P0=; b=e8Yb8eFTwRoM1Sex8uV7vJeGt4/S8fbApI0+GeWBSA8tBNCZIMssqLXl Y78KC5uXicqSfQ/bZs/2JA+QMST1TtQpjg52n/z2QVCPPirlDwquP07tr hEWZaEKvpoouelDHolkOcpdcg8UCoV+6XoaSYSD6gu429M77RtIXyu8ol 4b58XS0/UaBGuMpFwMaBq2h4JL93FYmLmJAfuV+jghWwju51Gze91ysUU +10yxeAwMDf9qVGIY7l+YUY/W/lwrfFqFyKTYm3SOTcFKxisa2EAbidmb erkmXBnTwro1Z3be6UxKPDRTyK5QCcL8q0ek6UvA+8Um7ZSLaBxphJFbL A==; X-IronPort-AV: E=Sophos;i="6.08,161,1712613600"; d="scan'208";a="12635435" X-MGA-submission: =?us-ascii?q?MDEvMaYoVmKgfibQ5D99Lv3zNQgHXH26XQ4V8W?= =?us-ascii?q?kkvEX/xWX92iLZV43wrb9CXB6kftmQj8Bh/o4D+65zoLc7ow1fdGqXka?= =?us-ascii?q?LIAcVA9traemO8FejFIG/s1CgDxh1Cj4EWqZD7sOULvei6qiIS2WJ2fc?= =?us-ascii?q?PiOV8zcBun2fir+TSdU7VOyg=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GZWwukd5W8PbCgbqSS2eVtXQtZAXz/rcwkwB99C3GBPvP3HKbh0eAc1C84cnoFWvb1zktzK/GzdbHsTHugmbeIMfatKDWD81tkcZ0QxOTnuOrxnqT9oT43aljS74JR9tBOdXASpMy6Fo2PDrHLgqzdBwfke/JsqEGv/+zydWYv4ZaEuZiV35JNTWSQM29VSdMxViI+7iQbTROLUkdsxRX1yuT82B0+YGvzLUUKu79dohI0vtz4vR+ucmFj9mOHlJ5yZE+pSxVRaE+lWXbEdQsl51I1atsQFy5ToyRW570Qw7Eckd+L04BBFgZdC01SvM8d8vQw53LWgJvI1oeXBwjw== 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=AokO+Y+dmAog8wVRs7/0+s0ZVn9kR7aKuJmrVWyh9P0=; b=DmsKQCm//hOtLmxtA3YAzveB6tiIwLr/fCXIjyl9ynhkKcnwEXYgyvD0x0DMXSEPTyGEgKH2qgE0PJO0OIvCKzGHhk+fMAU0ciU1MaJUphBHMownbKviIEYr3qD5WW2H25gHe7DpRtVRBY1xB4V2GVQQX5CYy2J43jcFYQefoYB6XZ7fNM6pMR1uhCQ/Q9K+9NUSVv6jXBgyJio4DSBIhwFkGj1HsJFNkAxe/8eurRSEj+SjfdSEskr6TZ6Cj+RDZJ/qQBCvdDq4wMn7J48zIQzBWrTwEXwX9VNLvZ6DOPXA2bu6rGrYNcOjZuETpmfEJv9RBwSB+CgV9GYV3aBzjQ== 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 09/25] pcie: add helper to declare PASID capability for a pcie device Thread-Topic: [PATCH ats_vtd v2 09/25] pcie: add helper to declare PASID capability for a pcie device Thread-Index: AQHappd/7uFSi459/0Sy623t6JmRtA== Date: Wed, 15 May 2024 07:14:16 +0000 Message-ID: <20240515071057.33990-10-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: f7c61076-24be-4780-8b93-08dc74aea190 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?bjVlZDFsbVJYVExxMnZialhSQm9oYU5VVGIzSk53V3dZSFdvbExuUkFrcDBL?= =?utf-8?B?a1NSK1htQ2xNK3djeVlOMUtwT1NxaFhOZ3h5Yll1bVJ0MmlKQzJNSG00Tnhj?= =?utf-8?B?QnlEQVp4dnY5clduazM0bzU2dFE3SHlhYklxZjVOK28waUk2TjE0cmFyQWdV?= =?utf-8?B?VDNVb3VBWlkwbVRNSTU1Ri92YS9oWW1hSHFyTnJyZDRBM3Fta20vMmsvMzNz?= =?utf-8?B?Q21NcWlYV1hJSDZLVnlqRW9oZHZqSlNVL0M2U2dBOC96dFhBRlpLSHR2VnJN?= =?utf-8?B?Yk1KNFA3b2s3ZDBjR1pSU0hKSDRQVWNRVS9BWVYwa2duSWhvVXB5RzNobW5N?= =?utf-8?B?cWdrTW90SzdYZFVPa3FsU1BoaXpBSGl6RTJwYXVaUUhrMkxNTUwwTjlITTh2?= =?utf-8?B?dnoyTjhFY0ZlUWtsbVllTnphK2tyU2VBZzJnREc5cG04Rk5IczBsbDBNSVNZ?= =?utf-8?B?Kyt5ZWVSaWhMMCtuMEN1WmtXVlhqV1gvcVdLSVNHNUxhdWZwOUY4amMxYW9U?= =?utf-8?B?dGJNQlE3dko5N05iVDNWQ1hLNzJJTTI5WFExVDVZNzcveEJFdlA4cmc3Y3gw?= =?utf-8?B?MEZCU0xWVWEzb0cyckhRcWtPcHJ5MVNDTGRYay9ZOERpQmFsTU9rU29lSzM3?= =?utf-8?B?ei93ekdwM0FvUzV2U2psV3VnVnIrKzE0SysyUElHdWJCWjYzNHBNd1c5c1ZX?= =?utf-8?B?YjJpQ2hRbzh4L3pidlVhTjRNZ0psY2pJOHBnZGljR2cvVmlpWW5KVUVJeVRo?= =?utf-8?B?SFZ6c3kxSWtERUVoU0RXelQxOUlUTUd6SkhGM1duVmgyb0piN0trOC84Nkpq?= =?utf-8?B?bGZKd3A1YVg0WWtFcld5dVpVOGJqeDg0Q3FvbUpqUmN3UHpWTVcyZTQzY2Jy?= =?utf-8?B?TzNsM3NJMkU5ZWFjbWVERWVZRmRZOEZzcmhHb0htRXp5emRZZDJ5a21iMWE3?= =?utf-8?B?aTg3Z3lpSDBTcFg0clhtRGxNdHBoa1d2MzBkS1QzQWczYS91YjRaN24xaTB6?= =?utf-8?B?d1JnbWgxL1dmM3NubTY1R1A5MzNwa3lUaGsyRXZha0xnMDB3VWhEeFNabE5x?= =?utf-8?B?ZVlISHVvTkx3U2JXMjhwbExlaUdiRkRLUHcrcWpJSk1DVFl0bWNKVWFrMTFZ?= =?utf-8?B?R3RhSEthU2hWVU1TTk1iTGJiV3U5bVBPVWRTdFIybk9Qd3prcG1NamJLSC9T?= =?utf-8?B?ZnhFdFVkOVZndGpEcFd6WTVvOTZPdCtTNkEwaUxOY05ZQmlzZGR0aEw3MVJm?= =?utf-8?B?MlFqZGI4TEJicklKR2w0T2RMNWg5cGVXQVJQZXhDNmNGMDJqZ2xlVXdGSnkz?= =?utf-8?B?TG4zbHNRWUFTZUtCejhOcVg3bHU3N1VYZ09IRkx1YnFWUUVTVU5aYlNsZWFP?= =?utf-8?B?aXRkQUVlMWdqQWYwZXZ5aHlGYWlwNnM3elhyMTc4anAwQVdvSi9JZE5vMVFo?= =?utf-8?B?SjNhM05GUXY1eEJZc3F0d0V5M3RmM3liQ3lZdFpvMUtmUFc5UlYvWmJ0M3lQ?= =?utf-8?B?MEFkQzBPSmp4L004Qmhlb1J2dXJKQXJ4Z28wUVpEQkdBOFBLUGJ1eENPSDl4?= =?utf-8?B?a2QxNjh5WVNMeEVuclpRL2puUE5qQXJuaFBVeHF2UTZMSDZ6OWVsa0RLbFZj?= =?utf-8?B?SWR1WGYzTHZvYWpwbWZQK2h5bXRCbkZSSkExWTNlNFNYaCs5Z3MzTGFmbG5r?= =?utf-8?B?b2hoQmw0bm1mWFAyeVJoTWlQbFpkSHFicmRZMlY4bDFLRXNCMGlQWGt2UFJj?= =?utf-8?B?dEVPcjRFV2J2T3JWbVNTRnR5VHpoYTR6OFdKVE0rYkp4bTZpL0ZkUGg5Unor?= =?utf-8?B?di8wWTFETWtCVENNbVhRZz09?= 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?NEhIVEJjSW9sUXliWC9OL242aWFPWVYvZmRLM3N5UlFNNmFxU2RQNDYvWVB1?= =?utf-8?B?S2taRTdBSVdRbC9xcnk0WWVqemorZVpTTHRlVFN6YXlkVmR4ODlZL2grS3Y4?= =?utf-8?B?aktCUExRNnpMK0JVQmN6OTRXam5YQjFpMnhSRmxhMFJkVHhUdkplU2xrSEE2?= =?utf-8?B?SkpWUEFBYzhQbUNtc1JlOXlMVzJzcURDQ3Q0djdmU0hGRWFZVlJETVlTSE5m?= =?utf-8?B?Rnlkazdvby9kWTNobk1FUFJMMi82UG9tMS82R1o5bVRrejZaUE5URk16Zksr?= =?utf-8?B?MVltUG51NEQrNlVLeU0wNENNQloyMkxDMDZVMjhKcWUycVdleVp3RXM3RzNl?= =?utf-8?B?VVBSVjNoQVNweVRqdlVIZFgrWHB0NHJKZkpqU3owK2Z3NUtEMWNFaXUyRHRK?= =?utf-8?B?Qi9pcjVFUEtscG0ybTZoUDA1U0N0czdHNlFZN3lqMm1HMGQwL3ZVeGdETkZy?= =?utf-8?B?OVZVeHlTL3FTQnppSnRFSlF3L3BDeEVUS0ptenpTV0JYUWJZcFdqcEhJY05r?= =?utf-8?B?cTNuZjdsT3JkQm50ZC9qaUUxUGFFbTMrZkFSL0Q2L2JWbFNRS2U4NmJBNGI4?= =?utf-8?B?R2x5b1BLNmJQVlJWcndLKzVKVnVIRXBSN3B5YmRqZm9QL2JFV1Z2NjFlMkdq?= =?utf-8?B?aVBKbTBVL0NKdDhsU1FnZlpHRGRuS2s4L0YrK0xmVDNVQTFZNHRhRTc5Sjkx?= =?utf-8?B?UFhRS0xHbDM5dTBEQUFkMnJ1bnFNSWtzOUhmdlZZNFRoT3lHMXZ0bGx2V2FX?= =?utf-8?B?cmRjUWJnb0pDMXN5d25reGJrYS9Bdlp3TVg5aXJxWmV2RVhjdzljYy9ZVE5T?= =?utf-8?B?WVB0M24yT0UrTnZMTXdXcWdmVC9Cait6Q3VlVGxydDd5SEdVcGN0WWVsbEFY?= =?utf-8?B?R2tad3poZjlWb3VrYW9HNFFDR3RSTDhuMzRqT0FEdGNoaG1PLzlQbEpCcGRk?= =?utf-8?B?YjlkWVQ5SFlES214bG9OR3hpODRIeWJ6YkZYWldnRXA2QXRzOEgxUEhiYklJ?= =?utf-8?B?aE1lRlN1eU9JRkNFNUtnSlFQUUw0bGhkWDF3TUNucWhBeW1LN0tNblRRVElS?= =?utf-8?B?Z3ppekE2VUZvMmFTbVB5YkowT2VVSVpISDF5MWpGWklUaXNsVjJlekxHUlNu?= =?utf-8?B?NDJhZVQvMnlHTDhFeTlTWkJCYnBWcFdnNUpWMEJQTUsvNEF1Y3ZKMk8vK1Yy?= =?utf-8?B?YzJnWXdtdHhzdjN0cVZPOVUwTnRGaHQ4WmtqUzdTY2gvMC93RGxwbElES2Z6?= =?utf-8?B?b0JnYjJlY1krdjQyaS9CVDZQTU1RUUo2WWpzUEF2dERTRFk5dzJUeUlKTG5s?= =?utf-8?B?b0QraXdGMmdINDBEb053V2NXZ2VidnJiK3N3SUxDSkNQK25Oa1l4cDRTL2dn?= =?utf-8?B?YkovdHcrMzV1UFR2bVpzQUhQVlpkdDZhRDhhQ2Q5eXdsSFZzcm9VenFWc2Ix?= =?utf-8?B?UnBoMFFpTnc0M2dMOE9rUm9CeHZacGUyTW9KTEsvNkNMMUM5R3hQODdXc1Iv?= =?utf-8?B?aE1GRk82ZC8rMHZiVGpzWkUxdVZ2QzFsUFZocllaUEhZTDZEUlBvdHYzdWZT?= =?utf-8?B?cUJQVVBXUWRYejdrU1Yrd2ZqTHVNeDhPbHA5SGJUVEJUYWEwSlhUZy9DZkIr?= =?utf-8?B?YWU5V1dVb21lbjVVRHNaQlFkanRXRmh5d2dCbHUrd0RnSm5yRmtkVXd6U2F5?= =?utf-8?B?UFpRVnpPemgwK2VGQkRPRGFRdm9qdWgvZ1ZPQW14UFJzUU82Z0RCa044ZjVV?= =?utf-8?B?d0FLT1BTc1dkVFoxY21KOVp6Q1hsUUpoZENHTE9FYjdMcTVJS0sxUllRSERv?= =?utf-8?B?RjZIbWIvK3plazNnR0o4Sklud3BkT2ZOMDJwQVY4MC94Ly9Wb3FsQ1RUZFkr?= =?utf-8?B?ODlacGE1d2R6dnpBMGJnbjJ1N2tGekRSMVhvQXcyUVZqRkF0VStYanhLOW0x?= =?utf-8?B?cXFwdytwWDhWYnh0eHkyZXUxeUpuTTVLSEgwcVZSRXZBaHJOQkJNOUp3ZTdh?= =?utf-8?B?NUJIbUdtaXZHOGZLZ2dHb2NaanpOT1lmcW1DcEExd3owMVgwL1I4cTRQR0JN?= =?utf-8?B?eTNBUlNaczhycW5hUnpPTTlURjk2ZzZweVlVajZUVndoZlVPcGRmUXN1a05J?= =?utf-8?B?RXpIOCtlVHFPMUZZMENHbXNRdG10cnZVQ1VkSXVxZUVyT1dUTGZCcENrTU9N?= =?utf-8?Q?KpSR78yz8xP1GlD5/nDWaCM=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <90317D1ABB80924C8C5CB9ADFC71C2D7@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: f7c61076-24be-4780-8b93-08dc74aea190 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 May 2024 07:14:16.3231 (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: Q4GfcaMWGY1Uhx8q76lAz9TYdkVKEayaES5iZA7lvyMNtzWZvaymI9L5c3L80VD8pMhzlkLLX0UomOJI6LNH/eRIIlbDYeK/U3emczJnWpyNV+Pgo17qz1880iTW7gWB 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.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: 1715757336682100002 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 +++ include/standard-headers/linux/pci_regs.h | 1 + 4 files changed, 33 insertions(+), 1 deletion(-) diff --git a/hw/pci/pcie.c b/hw/pci/pcie.c index 4b2f0805c6..d6a052b616 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_PASID_CAP_WIDTH_SHIFT; + 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 diff --git a/include/standard-headers/linux/pci_regs.h b/include/standard-h= eaders/linux/pci_regs.h index a39193213f..406dce8e82 100644 --- a/include/standard-headers/linux/pci_regs.h +++ b/include/standard-headers/linux/pci_regs.h @@ -935,6 +935,7 @@ #define PCI_PASID_CAP_EXEC 0x0002 /* Exec permissions Supported */ #define PCI_PASID_CAP_PRIV 0x0004 /* Privilege Mode Supported */ #define PCI_PASID_CAP_WIDTH 0x1f00 +#define PCI_PASID_CAP_WIDTH_SHIFT 8 #define PCI_PASID_CTRL 0x06 /* PASID control register */ #define PCI_PASID_CTRL_ENABLE 0x0001 /* Enable bit */ #define PCI_PASID_CTRL_EXEC 0x0002 /* Exec permissions Enable */ --=20 2.44.0 From nobody Sun Apr 12 13:40:20 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=1715757479; cv=pass; d=zohomail.com; s=zohoarc; b=GFcJtKrFpSGMDPK+e+g15G6Pl1ni3Qtk+8eH0/cOWnbXltw6YhoWiineTadtNyg50POqfZoK9HhGiPPfAfhNePL5KSIk4slgOccZiohAfRGAkYfqvLf4dJIbwzz0t+toOoJaV291HY8G+gLfDZqtsZ9OSRdRRSxWbRHJZphTD08= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1715757479; 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=RCojRL0EejAMJ9/fcfk7FzAhNuHzVs08KnMU7NdYJV0=; b=Zbb2lZeyn3l2lcWtBGCXKfMvI+Hue1SruCMm3vRppNM4BsnQQpZa+OlteUHlRccYGHvCcmsc0GY0IA8KzX1OaxclMOkYQP3eUVZE2szPg1TH76VhaR499yaFptHH1cfnz45a17kmBsV2J4mggPyPAJjHi7Ug2hJIX9uaLlJcmB4= 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 1715757479243701.5932593419753; Wed, 15 May 2024 00:17:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s78qa-0004bf-I9; 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 1s78qK-0004Xk-14 for qemu-devel@nongnu.org; Wed, 15 May 2024 03:14:29 -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 1s78qF-0000pL-Uc for qemu-devel@nongnu.org; Wed, 15 May 2024 03:14:27 -0400 Received: from mail-db8eur05lp2104.outbound.protection.outlook.com (HELO EUR05-DB8-obe.outbound.protection.outlook.com) ([104.47.17.104]) by smarthost1.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 May 2024 09:14:19 +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: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%5]) with mapi id 15.20.7544.056; Wed, 15 May 2024 07:14:16 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1715757264; x=1747293264; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=RCojRL0EejAMJ9/fcfk7FzAhNuHzVs08KnMU7NdYJV0=; b=ps1CYm3UDwIh8vWcHoLvNA7MNWDibBiSTL0iv5hknYmj6nijL4PKCNab e8UkJ34zK1WW1yhX+W8cYA7fzhNtyyeKbpEd7FKLAp+qFJjcinXSakiA6 c52YidwA05BgbDM2eBxGaakeS8nyL3R/FXyMvpZMF6xfnKe9C4i4b+fmg aVoj9TGwYKen4XthjN59UryQOSM06NIM4oq4NZdrwn95pW8l2JIvz7rzR L3Dxwz4iRlpuXyr/O+hdv8WY/Ls0RwQnHIG/OtV15nbQZAzUPP+xZGojq 4zN7xj/ASSyZaOV5mxGx3OAs4/i/1+a/tiQXEgqfPOoWss+BHpgQbhtRW w==; X-IronPort-AV: E=Sophos;i="6.08,161,1712613600"; d="scan'208";a="12580202" X-MGA-submission: =?us-ascii?q?MDHUVgm7ZeognavAQFZ7F/aIbJ7lQew7Z5DCRA?= =?us-ascii?q?cm57q5cN1D2UJPLtWB6uOkRIqISFImQl5Bi7cOjh8EUMPqGgFcCBZ+k9?= =?us-ascii?q?iZnx3GE36rGSAtpHbpAsUBZ7MqxANtc5JGAIoww58UkynohpN28Hjts4?= =?us-ascii?q?Y39OYYW2IYcWV2iXVucI7zWQ=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=d5O66+J9G1xfWzOaOHIsOVCprHXtfmMxNO/f4pJBcNeiU+xRVuFJ550VlIK54zB8wfVE+6YPNKxuH+Fh7STen+/b6ohT6o/2zckz7UX/4L8h1/TBJlL2noueGZtL2tSzkz1eTsrkZPodPWhluRXaFTkCXqj0gj9uulmfTMv1stThZMDOeWZyrB9PfseAtKpYpkKjRDlrz2bOSkfxLDiWjYwAjGvEFzJeMVcXA/ilB0KGWMhLZX06otrJKTLxEJ/0eCrIRbBAsvZCLe+GZIu9S2g68qTdMsHRchYkcncLVY05KAobFfA+nLYYg19ygUAoATKsw+/Nh5PmUFQVETHaJA== 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=RCojRL0EejAMJ9/fcfk7FzAhNuHzVs08KnMU7NdYJV0=; b=JoADzLKZi4vHku5Y/+zetgkgGqvtQDGDwdzNH1RlkAFmfPXrxCu/mDfLRTMbg4ipFzyeSnR7A1WDMPgmFNrGjyeu5qDyEdUI7DSmPskcm7S/nNNxZC5Y38tkf+xUlEealjtH1EkepDAUPPi4VHyh4mUxnKLokaj2HlY6FxRzb7TlefPfkK0CdEOH0+qFzYOrzRzwpLmc7izmzqifCP6o+AgoX0slpCKR9uHDw3gyL+UpIdfAsEVPfK0bIVfrUZ3MNzZgr/lvdiUxAGOs46lZa6XwpUM3KP+EOivySeeARVckZvhFaIHldsA0ymulCJVKEvqU87ND35yMueizJxMFYw== 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 10/25] pcie: helper functions to check if PASID and ATS are enabled Thread-Topic: [PATCH ats_vtd v2 10/25] pcie: helper functions to check if PASID and ATS are enabled Thread-Index: AQHappd/ggmcqc5wPk6vSoBAbpA6Gg== Date: Wed, 15 May 2024 07:14:16 +0000 Message-ID: <20240515071057.33990-11-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: 1450162d-34c5-4d5c-260b-08dc74aea1ae 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?ZzU2cHhhUEVNeU5UeC82ZHFIYnZ4NWo0Q0N4ZWxEYnU3NEVTUnNJU0RGYk9t?= =?utf-8?B?VUdtYWhoaUV0b09EdDF2dExkZUVYSjU4b2lLUzRZUlpYeElhYTBwSGVnb2tl?= =?utf-8?B?cWtyYk45bFRrR1V5RGtuV0RkNGdabGZxdzdHT2U2OUM1UlZGMGkzNnAxOUdX?= =?utf-8?B?M2JxWVJ1MG1GTHNoemxJb0FXcndaS1B1bHUweGZlcEtiaHNnbUlESzkxRGta?= =?utf-8?B?TEFPa3UyNVc3Ly9RQUVvZHVSclZRSHpqVE0yNVByalJtZ1phRU9HeUd3M3lS?= =?utf-8?B?dWRWM2FXd1doOVdHa3NEcFBCMGU3Wm5MbGRDTytOTkt3dlZaQ01hcVJQbVZM?= =?utf-8?B?L01YL1ZBeENxanVjQ3U5bVhMMUYrd3NJZnB0VWgxcUZ1QVE0OEtjOUhZcGtw?= =?utf-8?B?ZUFBUVRKTFRaak8razZxb05UdndHVFc2S1B4RW5kUTBGc1FjMWVBTjk3VnVk?= =?utf-8?B?VmtXTUdJb3YyYmk0RXNJQVFRMTQ0aW50SXkzTkw4UmdnK29XeTdNakpySVZ5?= =?utf-8?B?YkRaZnBzMDVwVFZHT3NGWlhoWmJsdGlXVTUxbno4MEVZaERRWCs0bSttV0Rk?= =?utf-8?B?RTQrZlltVExKVHRDemwxeEZjS3RHMVl4WEh3UW0xck5pVlQ1UDlqcDlVRWJY?= =?utf-8?B?UDN6NklSUTg1d2VNVkVxLzR3ZmdEMWNNVE9xTmxjekRnU2Q1RWp1aDVqM0FV?= =?utf-8?B?bDFPdlJDbkF0TkVmeEcvWDB0MCtyUFJZTm0vQ0ptdzdXM2tiY0pvZGx1TDNF?= =?utf-8?B?aWRLYk5NUVduaEVVU01aUHFPZ0RydlZsbFBQV2ExN2hIZnNuM2tySmlRRzYr?= =?utf-8?B?TWJ2dWJYR2E2WE84MU9QU1k3SE8rdGRRSGlsRGpSNjNvZkFEcnlzVDNJaCto?= =?utf-8?B?VUtkQ1dZcytBUTFNdjRtVnNBY0ZVVVRoMmNPa0lTMGpaS0FCNXN2eHJQYzBD?= =?utf-8?B?aFMzWUZhdWFUUjJFQ3A5OCt2elpjVC94MEJRY1c0STRobXJIbmxYRUh3YzBS?= =?utf-8?B?cEVTUU95bFZzK09seHhabS91enIzK0l4T2FkaTNsQ3g1VnlRM2ticjFPSGNJ?= =?utf-8?B?N2pGRmVkazA5bk9iS3phM21NMVlFQlcvM0g3TVp2eVFzMUFtaFNQSDFQcnV0?= =?utf-8?B?UkJ2STE1VXVxNXIvZEhyYWRHRnR0Sy9mYkgzUC9sQ0l2bXN4d21aOW1WbkZ4?= =?utf-8?B?a1pWTHRjeVZJYlV2YzVCWUdqb0taaTA0UjV0dGRyZGdYVFhhZUlEQ3ZPNGRn?= =?utf-8?B?Rk1iRUZxZVBHSWxoaHAydnhCYU9FekhLQTdmeFpvT0NrZWY1VVRyYnlGakJY?= =?utf-8?B?bGV2Q2xORjkrR1hDUS81ejhCRDJmRnRvbjNnQy9wbVhTMUJHZGpUMFlXZUtw?= =?utf-8?B?NXhPczVROEsyNVNNa3JwVE4ycm9PUWZERGJSN1ZTbnFLK0twZE9zWU10SG94?= =?utf-8?B?WGx4SjFvbUVZdjkxSnNtS3hMSVl1Mm9GcGtDTUVIZERFVy9mWjkxZ1pTMzE0?= =?utf-8?B?OGh3THBBQysxaUYxVU4vYzQvZmZiYi9qTzQ5M1pLVEUzZ1NkeCtYekljOGtp?= =?utf-8?B?ZnNlMysycjVLclVXQ3NyV2dSVjRMUmM2eEo1dWVMeTRELzhoVy9RK1QyZmVq?= =?utf-8?B?U1pIUmxlSlIrWGtIMEFIN25JUmhQR1p4U3FIRWZUdWtacjNid3AyaXBlMWlW?= =?utf-8?B?KzhLN2VqM01rMFJvWFdoaWZkSlduSnNRSlpNd2l5ZUJwTElOaEFXMkJMUDBD?= =?utf-8?B?eHBlL2lHbXZsNklEQ0Z2Q2RBc1gxYWNnL1hEb3JLQjRZZ0k4S2lZZHBxeDBS?= =?utf-8?B?b1lYVldjd2xLcndYMUxHUT09?= 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?OGYvKzNLbm1DaWVhOTA2RVNHSVlYWEUyVFZoQlN6S05qeXhKQWl6UWZJdmpQ?= =?utf-8?B?YjBZR1JWSG1xbmpjU1Q3QlU2LzQ2R3hNUm5RVk95MllZRlgzbVdBL2Zsa20w?= =?utf-8?B?d0pRbWY1S2p1M2gyLy96Z2VPdmI2ekt6TDFJdHFDb2J4UVk4UXdrc3p5Zmww?= =?utf-8?B?TzBtSzM4R3JVZnlBK09yeUh5bXlkeHR3Yk1IVEhNQ0JjbWpWNlJYNXNrdnJR?= =?utf-8?B?NlpXV3dSbzN6aUJYdmY0N01Wa0NmSWh5djJHRzhNSGNKbVpXcW1YQVh6Nms1?= =?utf-8?B?NUNZbnFRbjJySk1adGpUNERHa3pVK2p5S1hwekFvbXZqODhMSFEzS1YzaGFE?= =?utf-8?B?VVhydHRSVHZqVkp1eDVkSUFoL2t6YTd5MUdEM2Q4dlZYeDRrbDVrYWZ6ZHlX?= =?utf-8?B?ZHhUM2Y5TFFDUkoxM3JkYXpXM2xpK1pRZkV3MHhaT0RVeGkrYXVVM3VvYjlh?= =?utf-8?B?am5LTU9zRThkYU5iV0R5WEpYTDN6bkttQ0M0WmJMUUxORGNtMmFrcWwwb3hz?= =?utf-8?B?ZFg4RlFHTmhEaCtNNG95VndUWXVvb1JzdFo3TU1hajk1KzVjNEUyd1FOUHRK?= =?utf-8?B?U3VDRTZYR1FscU56RkpCRTA5dHRZcno2S3E2aEIxZWJWL20rS2EzOUlzWFUy?= =?utf-8?B?R2V0R21hbjYybUp4YzV2b3dPcHRsM1pxRmcvRkYyakNMZzJNaU9iUjNhNVhD?= =?utf-8?B?dURRclpBcWN2Z0lIdi9rWVEzN2VJYTdNNUg2QXg4Tk94RHFPbGVONGtXb2hX?= =?utf-8?B?bEI1VWEybkhkUHZ4djl1dlVla0QxUmw4czBkWWdOb1VxdjFMVStXQUptdThj?= =?utf-8?B?eFdKcU9ydTBpVFI3cGsyK2YyWlFsOHZ2d0pCVHRqaTFQOFJBbzZIdXpvVm94?= =?utf-8?B?NVZDeTk1ZjR6R0Zya2tXSEVydGNncG1Pb0hwYVpCWlN1SGRuaFdGTTRwemo5?= =?utf-8?B?ZWxPRmduTDRJZUNVMFBVeFlPOHM1OFNYYmRod1JnSVRGZzFMQjRoT2ZEQ2Mw?= =?utf-8?B?djNab08yMk5INjd0bS9VWm1sYzEvNkpDQVYxclJEVDFmcklxMWxBbzlIdGRh?= =?utf-8?B?d01CK1VFQWtlbU1tOHVXWVM3VUNCMG4vVGE0b0YwN2tLWGVuL0tENkMzMXlW?= =?utf-8?B?MG40YVU4NFV1eExidHhqbzduRDBzaTdwRjZ4Q0ZZL2s1ZWZFNmN4Z2xIc2Rr?= =?utf-8?B?T1Q1YjNvNXlXSDRKaDNtTWhlUnBmMmRBa3duaFArL09KMHlGbEd4REljQmZm?= =?utf-8?B?RkF4NEF1ZndqcFlVdFF5VUV1bHpjckFLTlVyQlZGK2RoU3ZMc2hjYWJxRVRu?= =?utf-8?B?VUlvT28vQlF5L3p6bU9VTnJNRHcyZTVvSXFBb0VrN0lLaTlxRGJiT1hNVXNN?= =?utf-8?B?REdibVVJTlpFaWM3ZlJ0eFlkMVp1b1V0RDNwY2x0T3h0QXd6VC9hMm05RFBG?= =?utf-8?B?bW5IZkJMYktUZ0JkODRHS0Roa2U2WmhMMzIrWmEvY2d1RVNwUXAzNDd1OGdH?= =?utf-8?B?MURORDcwV2ROVmNBa3VpS01udVQrdzVKenNBQXExZ0hZeVpIWXBkazgzZEZi?= =?utf-8?B?bkZKM0FkOFN1MmYwN2xrSTVTM0RxU09xanJwK0E4T0s0MmcxR05LZ2QzS2N3?= =?utf-8?B?bi8yZkpHR2sxZ3RHb0l0dHVGa3hTcmoxRXNvUUJHdFlPWTlRVCtsSkhxL0py?= =?utf-8?B?MERhM0x3ZzNUZTU2eUtnQzlmOHpibU1xL21DVDU1Z1BYd2M2cDdabG9XRzVQ?= =?utf-8?B?WXJpbkZmUS9wT2IvNkNJdXVxc0xuUmFnVUt4Z1djRFVzQlMwMnBPWmQxNFNz?= =?utf-8?B?dWdVMy9iVmVkTFBqN0xIdkZpZ3VTdHd2bHF1YzBxbXZLUzU5eGpJL2orb3NG?= =?utf-8?B?am1CdE1RamNuQ1A0Mzl5Zm1TSklxYzV1Z090SHZJdEtWejlRbEF0MjhRdE9M?= =?utf-8?B?VUxVU2RKNi94MnA1Wlp6YVAzMFd5TUhiUXA5Wk1CL2FCL3IzZWl5RFdmRUl3?= =?utf-8?B?blFzYVdhenFUdXF4TG9BcGdLbjlJVXRPeWhSeHNXZ2ZXdWtVSGNHQ0hueU5l?= =?utf-8?B?Q2FaUzBQbmUvUEx4cXp1Z1hUWHpNYXZoZi9BTkgzL2pCQ0tYN0tvcHBmME1R?= =?utf-8?B?YkVrdEVNSWRVYm81cTMxZVo5L2w0U1pCWEdHREdVeVowVEZkZXVmaUZSTS9Q?= =?utf-8?Q?vNaTDgAvGVeRhGHNG/fGw6Q=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <7FFF1DC0F7EF6D47BC36A075EA511FCA@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: 1450162d-34c5-4d5c-260b-08dc74aea1ae X-MS-Exchange-CrossTenant-originalarrivaltime: 15 May 2024 07:14:16.5324 (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: iAn2PXiGXd84WyUPQf7WlgLxnHHX4keek2kaYMdo9qZnObMb3rTMk6dhvzkvaMDpoHP3jcO4G/ClRBAG8D9/s8+JTyMdO/uZekwaacaDQRbuK8FmTvH5/Odlcqjaaoj2 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.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: 1715757480196100003 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 d6a052b616..4efd84fed5 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:20 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=1715757403; cv=pass; d=zohomail.com; s=zohoarc; b=iOF4Thswpn2C2wjuO4787NyLj9CUyuIcy9csCsR9R0O6POZ7nq3J6/Gy5wuPKOHO/jtnP3PwQRSjNnLZzQ0v2jNV+u2HECD48s44+2UUVcXPw7YrSpGfkPR2sqaM8eeOxLb+YyON970YlASmV2/AheNxoWZkg+XYaBtCR+GHuUI= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1715757403; 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=SQ5EBdFXBuQPjyxJF1qpaAn6WNCxfDRml9Uogf1wA/I=; b=OzNOvTnhu+SJ4FRtpehTTzqVAP66S6Zg6ixKCJGB3pcyppA8AtmMt+YlN3qfHSR1i+R3gM9GMK5yZN/GAsg2lARjSlfuLs5CJbHNV8rLEJNMJ5GXNhYZ90NyXyNTiRTaokKNF7oQoukMLYDBdVL9SK8JRkXsQQPkP1AYQ4z+jdo= 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 1715757403445837.4955935825712; Wed, 15 May 2024 00:16:43 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s78qe-0004cO-7W; Wed, 15 May 2024 03:14: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 1s78qM-0004Yq-IJ for qemu-devel@nongnu.org; Wed, 15 May 2024 03:14: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 1s78qK-0000pL-DX for qemu-devel@nongnu.org; Wed, 15 May 2024 03:14:30 -0400 Received: from mail-db8eur05lp2104.outbound.protection.outlook.com (HELO EUR05-DB8-obe.outbound.protection.outlook.com) ([104.47.17.104]) by smarthost1.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 May 2024 09:14:19 +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: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%5]) with mapi id 15.20.7544.056; Wed, 15 May 2024 07:14:16 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1715757268; x=1747293268; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=SQ5EBdFXBuQPjyxJF1qpaAn6WNCxfDRml9Uogf1wA/I=; b=BWjSXCCiec6Nr6CeMtLvrFPqSpDPx/AlEjn193vhbKm5nD3YKNOa3TWN 56yyVJAFtkd5JnUyxpPhyJDRZXCnPT9mwP9FkMqv0SdIoZ/NnBYaQF9wC ZiUGguYPni7MeNmbfyAl/fvvwf7A67xAWe69eYY5rp+t8b8XkCqPZpNSX UYNMKgD/GK+3kjm6EL0+fmvyZi8cPVjLe58tyj1hhBQQt3Pfupg2RBOXI Stm0+SMbyUMttYdlQcuKgFhXtcdoMnuuXMHuRZppSkAxW3I7Iz0funvTo QV1cFYb/nzIaTRlTLoKCbXiXKDzEA50xtU5WSMULGOHMsC+b3xVbiay43 A==; X-IronPort-AV: E=Sophos;i="6.08,161,1712613600"; d="scan'208";a="12580203" X-MGA-submission: =?us-ascii?q?MDGmmE3d3CIwkf1cumBBYKB2oqcPqbu27qHwj2?= =?us-ascii?q?Xe0VMpFj7mUOp7kJqZ2ldy5Hb3eaj/clZbhKRKCAxVg4iNYmB+TchwJX?= =?us-ascii?q?P27wQuQk/IbN6UYGk6eqskXMGufHZ4ofE0ugo2g7Wynns/4SXE0c/Qrc?= =?us-ascii?q?4YZDTleeRH8vombqGtOUxNig=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=g4iohuzC7IeprcSgpY8NW5EByn+7Lt89/nwjx8QdNcPAgV5wmfEwimd5vRbHkS6ANLx+yrmOo6Y/VloISN3z+jmYzkRVVWvMosi3qJVz8A8ipuZn1VPTKujGG6IDF9o7hZZIexMQ9Y4ZR9Mn4u2EcF4rpSmt10GMbiyJ1QIO+Pw73vcwFt19bSP4ZHDWL83gzctFJeK+HGUqQ+Y9hOm+157pZgrTL6lyobNU9xYybv/PWWlKEiE37dmEkoixqlPsIZOrYF5HfuWxnR0y8ca9Ap5SGrjBAUsPUtDbqtbXS9hT3Bj9A83Y9cNnyJwncuxBSsEx6eEyLp/k2FolMyXhKA== 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=SQ5EBdFXBuQPjyxJF1qpaAn6WNCxfDRml9Uogf1wA/I=; b=nEUR/8HanKdMf27mfDfpd6q7Q4CrGq6fF7rP+tXypodmvmgCfmMTiwQfEcqoTeWm1zWbV+pEqlMPOqzO4uffXOe1SwWRecwGxF4nx1xRI9XArJIexrKIF+rafz6nXWSVFqpDnwOQf/QCpjtEAvPPp0S0MsTvL8pRfRtya4wa66jUjCO+2lAeYAATrm5DdFOxdmKL/zRkkFoNnvoRJYM+n7pJfwdpwd1EE3II9dcW/FtzunwrtYp/HGueI2jLLuuStQ/dj4JjPMb5rRyiHmQrvRArR4OL+fQFoJf7MTE37pIwmBxjwj00jfzrHOr8b8Efw+jVmskhNdazxERoY+5iZQ== 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 11/25] intel_iommu: declare supported PASID size Thread-Topic: [PATCH ats_vtd v2 11/25] intel_iommu: declare supported PASID size Thread-Index: AQHappd/Z5e9p1ha2ECfEwYekTPbnA== Date: Wed, 15 May 2024 07:14:16 +0000 Message-ID: <20240515071057.33990-12-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: b29eab28-4e97-4db6-5656-08dc74aea1d3 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?dUFMeWxqNVdBTEliT2JnZDJtRURSbVpWd1hiWkJSenpxang0S3EvRW1vMmd5?= =?utf-8?B?RElta1lSa05yVHZEcFU3Wlgvb01ZYTR2VEd0alU5Yml5ZWtreXE4cGZJdXhR?= =?utf-8?B?WDdRY2U1aHNwQ0VKMUdJeHo3WUU3N1dCOXRHZ3lJeVRxRGYwR1JsbCtpVDdB?= =?utf-8?B?ZDVLZkt1RnJNdUpBY1NsdmdPeDhldG5PMjI0R0pyN2RrVzMxd0NjWGEwZERY?= =?utf-8?B?cCs3SU9aTm1mYjVaODN4UWQvM2N2alJObXdVNXB4cnRpTk9uc3JGejBaL2NP?= =?utf-8?B?L0JUcEJoZEw3aXFMZkJ5RkMrS3pSUjBLOFZxOHIvR1duWGthYzMvcDBGd2Yr?= =?utf-8?B?aDJrZ0hTcmp4OEZhNnR6UVhDL2NWUEt5MzZwUnp2aEgyNXJmdmtweG5uN1BJ?= =?utf-8?B?RVNaUGNJQlZIQ2p1bG1Va1hmb1VndWxUTXdHSzd5OXduVHZEeC9GVngrZFdS?= =?utf-8?B?aWNxL3d0RGhRMlB4S0t1MHozRlArK1RZaXd1MG9HWTVWVEpMVitMazlwQzhB?= =?utf-8?B?L3ZVRTA0c002LzRuM01sVlZjOFROTGVJeEkwczVWTXJ3eUVOSXAvc1hFc09s?= =?utf-8?B?ZEVZUFQvVnhnZGhPL2J3ajZSTEE0d3FVU21hVklZaTV1QktXb0p1aW81MFNC?= =?utf-8?B?a0pYRFNzLzZYdFMrODdHNXZTMDhjalZhMW52b2ljS1hCZ0ZEd1NQOGRUcFZW?= =?utf-8?B?U3JwTkd2YXY5QS9tRFVDa28xMGQrUzZqOGhyRmxxQUZNd3ZHUVlPMzRhczRx?= =?utf-8?B?THh0TFp4bWYyNU1sOThmbnZhYjdwK0ZrZFpLaWpoU2xEZVhUQllYdU9iZzZv?= =?utf-8?B?QnZmZGNLcVB5OHl0S1ZVL2xxemw4NzF1Mk4wdUVsYVgvTm9EL1dLZ2Fac0pZ?= =?utf-8?B?VW1KcFlLaXo4ZGdscmhRS0MwMHBjTmFuSkRCelo3TXpzSllodGVQVlRKR0lo?= =?utf-8?B?WUFiWnIwa2dYdjZ2VXZNWEM5Z2lRaE1ORUdPMDVvTlp3S2NLc0J1THZMd2Fy?= =?utf-8?B?YnNJSUhZUFRtQjYwNDNuZzczVVBUcE9lSUwreGNOYXdKbDl5UGRhTTVVUGsy?= =?utf-8?B?Y25tSHgySzQzcDliVVJLMGd2alpEVnNkZVNWTWl1T01ERDNucUM3S3Y2SVh6?= =?utf-8?B?OXFoVkN4WG9QQnY2VHR4NGQ2VUpIY1hySUpkSlNZbk5kOVY5NHY0L0ZoZjZP?= =?utf-8?B?emxhTXd2UmhsdlVpbXU3RjhRRlB0TmNpZUh2MzVzOW8yeHAxRVdEb2JlVVN4?= =?utf-8?B?TDM1N0ZscWVZQ0R0L3NpcFFac1lpekFpZ2FYSTMrK0s1R2FMdGFjNEZNNWlz?= =?utf-8?B?TUdKd0pqT3dNSENHU0E4Tlc0ZUViMU9kZ29nRFdBVUQ4Q3hISUIxR0FkRHBi?= =?utf-8?B?ZnZkalpHU2VPeHNXSTArYmtKN1JTcEEzS05mYWVqNk5WZjNVeEhYSUFkZk9u?= =?utf-8?B?UW0zKzc2VnlZNmlPZEszNzR1dkVGRVgvOXFmZ1h0OVlHd2JqNDhIYjFQS1dJ?= =?utf-8?B?WVZWdXVmaTk1S2tlN2I4V0kwTmxqUmFBUXl2M2tnYnZWb0hkQWdZaFgremdl?= =?utf-8?B?OVpSN0ROeHI1OXQ4T2prK01PS1BETmZqYUlKU0Y5SUZ6RldWRk5pTEVFZVov?= =?utf-8?B?Ri9wOHRyMit2NXBMTGl3Ti9RZ2RScmxJMDYrR1c1NCtkTzNJc0djSU84VXhm?= =?utf-8?B?WFQ1a0VoZlNLbkE0cjJjTjIrY3VMYmQ1UzNldS8zOExxaCt2bTM3Ukt3Z3F4?= =?utf-8?Q?dtrkpzbOCJWN4XPNrPW5GbH5hiHi1jwnBA2zkcL?= 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?cXdsdEViUHdiVFMyalVCMTNYS1JuVG1sckJGekhjbThKem56WUVhV2FOLzVQ?= =?utf-8?B?Ylg0amxxa0FtUmlpUmdNS1NuZzdkZ29xS3FqcDQxSXFkT3N4d3ExRDN3WlEr?= =?utf-8?B?NHBoQVljYUpDZWU2ek9CMkdzVURYRTN4S3Y5UVVydm9rOWx1em04US9pQjlv?= =?utf-8?B?OGZxSDFNQ0N2aWdFb25rMEVqamlrdTNDQjlhWUNFVXJyRytCdStKNjBMQkN5?= =?utf-8?B?VUNyUG45K3ArS1FDZ0E0OStHT1ZjTzcrYm1FaVhmYUFPUWpENk9rN0lrYjZG?= =?utf-8?B?MXZlbitHQml0dnpocXREdHVqcjFheHZNVHNUMVFoNWwxUUdDOFRYQzQyRFBZ?= =?utf-8?B?ZldDL0h3YkVhUnVLdUhhOWExTHVLSFJPV3Rib0hsTHBsaG1WRFZNUGhMWDh2?= =?utf-8?B?N0g4NjdwaXBuVWFqNDRXeW40Ky85dFdwdXVGSlhJdmpDZ0FDTCtPazQvWnBt?= =?utf-8?B?L3k4ZU5nK0VTV1M4VnN6MklnZytxdW54WVRBaTg5YXdkODBtZGMydENxWjFU?= =?utf-8?B?N2dHSW0wL3MzcnhKcE5lWmI0NjZrQUdZdVZ6eXltOVVvV3NDQjV3QnVaeUl4?= =?utf-8?B?VzRzZE1ucHprSXd2VGt5ck5Kd2JpbGxBRGMxWTkyU2xXZlR2bVo5MDBEekJr?= =?utf-8?B?aXhDM3B4U2Z6Ty9ZcDVzL0lBb3VHdnI1eVlTWkpOYk9VcE4yTDRKMS9FcVpU?= =?utf-8?B?eVVpdTMzSGRpVjB6RVh2MmtvNklaSlArZ3VJcUNIU0tzdDdJZEJsQ3ZheGw1?= =?utf-8?B?U3RhNXQwQXBlWmw5c0ZUbWI4aXVKYm1HTFowZDJUREJqNGt6dHljVXRHZ0VF?= =?utf-8?B?VzAxRlRFYVR0cTV2cGhxTVVtUmdHV01EbzZialJybHlCV3hNaG93dmpxVTd1?= =?utf-8?B?c1lPdWUyMndsZGtZRDBrdFZzNmtmOVZEeGplN1d1WnQ5VU9MdEt1SlpuUjNF?= =?utf-8?B?UzlSNFVWMm85SzhEUzFUYVJUcnk3dWUwWmprdEtzYWdNQXh6d2daT3FHMG5j?= =?utf-8?B?bEVnRDdWeFFCOGNjdDhiT0YvWWlqaGJ4N3hVMmNFYW5meHo4VnkwL2RyQ3Vj?= =?utf-8?B?Z2ZQMzdzWlpvU0I5RjNLVTA1SjN0b1cwK25jV0NZZmJsUXpMV2IzTE4zay9w?= =?utf-8?B?UzdRd1dNNDJtdTRlYjJRN0MvbWxjaGo4QkNWYjl2a3hoWnMydC9TY3FRRVdX?= =?utf-8?B?eDJNeS9TdkJ0bzVqaEFNTE9DYktyZDN5blphMFIrZnRSU0ZQQ1lzT3RxcDh6?= =?utf-8?B?NTlqUWFjRjdxanF0ZytmenRpdSs2T2VRaklpamlPTTZDMWliVFhnR25Ta1ly?= =?utf-8?B?dEl4VVQyOGE4c2pjb1R3YnZQWUNqV29lRDljVERNcmpBVFlWTnNLUXNHNjBZ?= =?utf-8?B?NHJ6aDdrT0dDMEhUVE1HdUYxRnVwbDJ0NkhLSG9iZjZGdnRtbS9WTlh3ZW1O?= =?utf-8?B?aVJ0b1ZNSXdabksyN09TK1NQVVVDMWF0bmdSL0NmT0dOKzJkUzdIUlJkMmpD?= =?utf-8?B?NVJoM0xmU0hTd1BQY01SWFpDNmZHMWFjbUhpSm1ZUGI4ZGVrVGgwWGt2MFdS?= =?utf-8?B?dFIwWWdINGdiRHUvcUdRVTBpS3o4MTUzVnpsSHhqWlduY1ZnOVNubTlDZWNT?= =?utf-8?B?d2ZydVNVSENvcmYzeEd0azVSa3VObHR2VTVaaTFWK0xWOG5VdEdsYlVBVjFU?= =?utf-8?B?LzkyYUI0SlovQmlBSWZBUEVweEZ4eFdvVVkxYWJTV09heE9tS2JMYStNTTQ0?= =?utf-8?B?bzh0d2tDcmxLTTFUTnlxT1BGYlg2cEhyQ1JUanZheE1OQUhld2NGTVVORDZ2?= =?utf-8?B?Tkp5UkpwQXc4RHVwSGc3RGdCZXArR2NQV0dnaUN1U3JjTXBUaVZQbTErQU93?= =?utf-8?B?Q2xPcEtLbmFqUjZEWVlGcVlURkJ5ZGd1M3JNMis5Wmo5OXpxVmFwSFRqM1A4?= =?utf-8?B?RU9hVURJaWFHQk1Cd2U5Q0wyMStkVUZLMWYzb05WVWZjOWJQNmJoWXNOcXhO?= =?utf-8?B?Tkczc3l1aXFsdFlhMVhHT1JOTW1zSzFXcXAvbjdweEJSUGFzbDN0QU5CMVEv?= =?utf-8?B?N2ZFVEdOWmtrVlNSZkQwaWtWd3FsK0VWL0thUXhDNnk4VGZDVURQSlcvMjNi?= =?utf-8?B?bHdnQzZpc2doaXQxOVgzeHlvc1BLRGdPekM0MEFOZW05R042Q3ZlOElJZGV2?= =?utf-8?Q?csrjASE546EzpKitL1NsbpQ=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <332E853495862B4F889502CA941A0127@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: b29eab28-4e97-4db6-5656-08dc74aea1d3 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 May 2024 07:14:16.7389 (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: MDilii34Hk1qpaHqYN7OrvgHpFE2nVXwDPnjJfpNSmWzBP9frYgK40numFU03By3xX3OhgiLSh7L5w0I9xAlOLtHNRipXjr5CEX2dMca/+LTCh06tp5p7ThQGdMqBasm 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.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: 1715757403793100002 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 373f3d254a..3bb4d385a8 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -5819,7 +5819,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:20 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=1715757334; cv=pass; d=zohomail.com; s=zohoarc; b=DI34ChvFsLubPBODC+d3ZYno6vGU+VSHF/oLHfRK8g3RRLF8xYeEA3SF4wQ6nbyiXk7GLkUMQi6R39za945X6M9W2TnNDCGR6DrUp0hvmMIVwz+5kM8WvZGloYB23Asy1Dvc8GeolR7kORjldyWnPN9P+/WawYgKUC9gVTTM6PM= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1715757334; 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=GKIOVj4563Xwg5yAi0Ofm5P6tTAe9BSIi+5+5GummPQ=; b=AklPoLLHKuBtdVZBgvcmGz1j1s9JuMTfQzId6ZFwTzoLGvWAgHxrj/lycQeUFM+Btyfzbva3jZTlMfB2cgXH0nxkMRt+Tp66J+KAFPc5DttKMTwYvjnVCYT1AnPmVvyD9n2GtThJUDZeaE6AdJRbJQ7n7XjhFBrMgCmkC2UrMzs= 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 1715757334837442.0451234036648; Wed, 15 May 2024 00:15:34 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s78qQ-0004Zx-6U; Wed, 15 May 2024 03:14: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 1s78qM-0004Yn-Hb for qemu-devel@nongnu.org; Wed, 15 May 2024 03:14:31 -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 1s78qH-0000pt-Q9 for qemu-devel@nongnu.org; Wed, 15 May 2024 03:14:28 -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; 15 May 2024 09:14:19 +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: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%5]) with mapi id 15.20.7544.056; Wed, 15 May 2024 07:14:17 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1715757265; x=1747293265; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=GKIOVj4563Xwg5yAi0Ofm5P6tTAe9BSIi+5+5GummPQ=; b=iIspgF5wDixkr3DbFsWAkLjETNuQCCMvPy7o7bqCPzP1VcFUIDln0c02 ol/JSvzMfFQRCsWRWRXRiGFit4vsdkEB/LVIzgN4wW/2gDyExWjhF7Nq4 Cdr6gpapywv8Z3O2Nq2BhYd0+iM+X04BjASCR7ZZS2v779U6clv5XGHba rV4Z3atXL1D2vZVV2a5mho8AP1jPE5oPLn+rQvLYUZXXDpTOmTraKjXua xxwfjwaO0y8oYiromEfkHSjleIiNghSDjV2BhBQGvYiqHyll6ZjqiElkn pBP9bAmk8ntxTEindfEo8xiuc2yPXybjRZk3FYKWopBGaqWrWisjdnnvw A==; X-IronPort-AV: E=Sophos;i="6.08,161,1712613600"; d="scan'208";a="12635438" X-MGA-submission: =?us-ascii?q?MDHRUPpkh4kGvzUy8xrEy9SzgFOTzzfPzUDYC0?= =?us-ascii?q?iO0IpoLqiR9lNOfLs5gFLDNjCuWnLdz87SXniAhr5JHl2vgSGWfBzg3t?= =?us-ascii?q?k9mzfBM9V3Enr4R94y3kOQ9DqsLa6sIrMDZ7saiZxXthplUNW8W/mkqv?= =?us-ascii?q?iYt3j4RARfLY9RmPMoR+IdRA=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fsfBInf5XmLssGOsNhq4teGLSx5MJGV108U4x4jzsT1e5q76c7LzrZQzIrg4FH3izO5Fnpp9gcaGHiDFE1lMm8Pz7IyBA1pQ9w+JUkAcoDHSv536ZG85OW+vlg7S8xFU0yEUouMJ/t0FXEOfgxeyfTRyXUfU7V+0MagswRC6DywgOiuEPCGXRrkQodcsEPjJL8k/jnOnqLzJ55cnn5LycIaBXHO5UtWivobSca+MFYDjG4rTOAJ+GnZJFIZTHAqBCuniwRos6jwvaPs7Bl1RcS5I6AJcYR5PX3mcBW1FbkLLnxcoejfWP/NBa0cjM4ZbQyOf/nvf6TYaqCzeFdhwmg== 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=GKIOVj4563Xwg5yAi0Ofm5P6tTAe9BSIi+5+5GummPQ=; b=cH5qPvwwB+xn3znXguiPWrREbYlEk1Ih3/bS/AN0G3yRb+PI4mF33HiiHdtwF0YpJpbKw8U28kf3LG1UGOn/pD+Bg7VBBVU0LGZgP6p5BWCRJRxmzy3zbZ2LGo7pmR0EPfDlm28k8aum7ko5FHMRXZLl8KezrocKzhd3siwSPD0OHe1Hp9Lpy5xD/qMRmO20NLeCpot0m4YCKOe74MYMzsw+HvR8jAQfdNSkBrp0H7bC+gvNKaA41LA949zwQm2d/Tqm9U1bA/azfKbJnavRvRabR6WDUj7JewxLvrw4xgxIIRZ6itUWMNYQZwvXWGYNk7fnDfOs7BtAQubJWSgQlA== 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 12/25] intel_iommu: add an internal API to find an address space with PASID Thread-Topic: [PATCH ats_vtd v2 12/25] intel_iommu: add an internal API to find an address space with PASID Thread-Index: AQHappd/JvyZoFH1rEa1gdjZ3Mno9Q== Date: Wed, 15 May 2024 07:14:16 +0000 Message-ID: <20240515071057.33990-13-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: c35d33fb-7499-4b54-b1d4-08dc74aea1f4 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?dzQxOXB0UWFwZWpzTVpVWnF1K2VrbWNpMENVUUptZjdpbGw2UlNNUmxuUlIz?= =?utf-8?B?TlBjOTN5M0V0cklnTVFvYVVWMFJGQkRXZUQ1WTU4bDNJYWY3UEdHSVh5Wndl?= =?utf-8?B?RG4vdWc2aHJ0WWdOT0JxNUl2NTNEdWplVGRjSStDbk44MTR6cGFGVXh3UHM2?= =?utf-8?B?ZnNFYzF2NnpTYTd0UFA2Zm9hNjF5N293cXEyUTBjSlJlazBZeFgrRUZ2YTBt?= =?utf-8?B?cFhFeWEwSGhoMi9Yem1ScGVPWEVQZkt3ZFJZTjhSNStDbEM2RGpkbzB1dHFN?= =?utf-8?B?WVhMQm1GOFEya1Rka201b1FoTEN2U1VBZXdHdUw3ZERrMldTZ2Fack1vb054?= =?utf-8?B?b3lXNDNzSHhvVGRNU05WNFgxMnZGV3NkY0tzREtlejl2VmJ5SitXaStGMjI3?= =?utf-8?B?Q29oeHYzSDI0ck1xL1ZnY1RFVG05M0d0OWNnbFpKZ29CUmdIUmNic3N4MDlN?= =?utf-8?B?QTdTSkh3dDNKTVIrQVp1cVBheTIvdzEyM3lUNkovd3lBVEJVNHdLUzdXOG1G?= =?utf-8?B?bUNRUmJrem1xSFRWWVZIVlN0UkdDbWRicXlyVHRsMnNnbVNSUkQ1ekYzR1dm?= =?utf-8?B?RUFSTnJoRGpEUE9DK3IxeFZFUHJFVCtjQlhueEFORVFBcGUwV2M3NUlzalA4?= =?utf-8?B?TWoreWluVWNUSzRvTlRQWVdYZWx5QUxPMW5OSmFFYm9VNzV4ajdKNUZoR3ZE?= =?utf-8?B?aFM1eWhRTG5vTXhVYStxb203UWtueGpIbTVoaXdkNDJGSy9jRXZUZEd5cDRy?= =?utf-8?B?MHROZ0tsQllEV0lyZUEzOGlTQzA5WUpRNTY5U29OZnViU3hjQUgyaDByVklX?= =?utf-8?B?UWxFVmIyNm5MSUpnQXQvS0JTZFZhM00yNnJ5U1Flbnh6RkVoR0lyUTRDTUhz?= =?utf-8?B?NyswaHBsK3hCNnZzcWxYelVONi9EMnBLR2lKYlBOZnhXOU83ZUNVY2dyNnVt?= =?utf-8?B?TjFDL0VnQWtWWXlKUS93SWExWE9KbGRsK3BzM1BYVzRDTERTVHl2b1l4WEJU?= =?utf-8?B?VWZmTGEwWGZYN3JIcEJQbjZvVllyK2ROZG9zKzBFbVFJLzRxdkRxcWxod01S?= =?utf-8?B?S2ZScVI1V05GNzZjU1dKQXJjdVE3aC85aUhiQjIyLzBIQzhJd0pjcGQxOGdi?= =?utf-8?B?ZzJEMDFEMFlSV1VtUURRWXgwV2VsbkhQWW4ycllXNXNRdDlKTUtmYk5RTGRZ?= =?utf-8?B?UjUvVnBTejl5VkxkbDNpNEFwMzByTGdhTEYrNlB5aTh4YU5MdEdZWWZlcWVa?= =?utf-8?B?bVVLcUxEQTdiekxRVFhVYys3V2M1dndvTlJHUzZzYlArVFNGMXJVMTdXTzZw?= =?utf-8?B?TnJ0eU5aUjA0MmFYc3ZMVFJHcjlrTDU4dndLLzh1a1FUL0lwWVlCOXFSR2VX?= =?utf-8?B?ODM0M0RnajlRQ1hqRlduSUExOFJIQUFnUU5kODNLZ0pkYVdqNitoRGh1SXdE?= =?utf-8?B?VW1OVjcwcjduOFhHNktGekJmcFkxRzlSY08yclBoVE9YbWJxdVJHajFmSFYz?= =?utf-8?B?YWlJbkJ1bkdpVlE4L3paUUo0N2ttQ3BaMWxvTTRqME9pa0krS2NOOUszWTFY?= =?utf-8?B?ZEZXbVY0VWp2VGZ6RmNvQWprdVNBNGJCMFlkZVg0V21zdVR0R1FIVStONTk3?= =?utf-8?B?L3VDZGZIQWVibzRNRmFMSWFYb0hJS2NveVFSUnp3NmY1em1qMzBMVEVkYjE0?= =?utf-8?B?RTVTbDlsM2gxMXFFUHRiSE9ZMnpiOGlCRVUrUWg1SkIxZU5OMlNCakhUK2Rj?= =?utf-8?B?aFRDVTJzbXNNUnUwTjdhRlZMbkYxNkhRNjVuei9xeWFQMkN3QlZYSGFKTzZh?= =?utf-8?B?c3FFblZheFJPeGpSNVdWUT09?= 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?RjAwTkNuZnZEeWRQbjc2bTBXNXlRVTRlL0hUUnIzb2ZYNDUxQ1R1UHA4QUgx?= =?utf-8?B?UFNZeHczNlFGdHY4T2xXNytqRFZFRGVlbVBoODRFSW5jMURKdmhKWENVUVg3?= =?utf-8?B?M2NxS2Z1TlVtYjlLdUhVbFNRRyttWDZiYU92WEtwazdiYTd0K21ZT21XdzhR?= =?utf-8?B?UDlzTDFmR3BQbG1ONVBnRjg0ckRoMUpockxaVkVXZGtRT2JpcXRYSnBIRElF?= =?utf-8?B?eXhxNnIya2krTkowcFUyU0FRK1BJYXhlQmNMUGwxdTljdnZ5eU83NXZRT0lM?= =?utf-8?B?YWR2UmY1VVV3YjhvRG5uVnU2NE5lRldGTEhRWDE0d1l6MlFvem9odWRMVC81?= =?utf-8?B?d3Z4MTZXQ0thaThoUFowbFJrWXF3bEhxRVNkMmpCK240REV5VXBHZkVRTGZp?= =?utf-8?B?WFFUemc1eThCc0o2aTVxdC9wZW1RaU1UdldxWU5zdXFPV1ZmVUdIK2lBOUdK?= =?utf-8?B?aVlHa2NKc1N3T0tjRGN2L3BhNE5BMllFN3UrQUFRVHZsMDNudGRZTm93c1No?= =?utf-8?B?U0NjdWhNa3k2MUZWem50Nkw4WSs1ckVlbFRGS2VDWmxvL3V2TEkzeFJMOEI3?= =?utf-8?B?bGJtYzRRVHdZQjJXdHBOSlVuRUxtUCtHR2ZOSFIvam9MWFFsanlpZlpDM1V3?= =?utf-8?B?dFJRc1ljVUh1aWVYYTVzcEFhT2VQU2VRd2owbFFqOWJ4ZWxLUCtuQk5CdC85?= =?utf-8?B?dzhjYzJvZUtlbXF1YmhEYWplRSt1N1YzcTh3dWNqbmpuTmFqRW1jQjd6c1BH?= =?utf-8?B?bTlLTk1HdVp6Z3k2aUpCSCswNDl0dWxlRkNKaVFaVnJFUit4T1NDQnBDbU1v?= =?utf-8?B?M0tXaEZnU2hPSEVkRmpDQWtxZm1mL1h2OG40Ky9uTGtoNmVkR0JNSS9rdlRv?= =?utf-8?B?ZUwxcHd2MlhROUYwemcvMWRIVHYwWGtNUTNwRERZeHdrWTRPS1NRdUtNSG92?= =?utf-8?B?bXk2SkJIUHRFMFFPUUwrSFltazcxdXNIYWltOXg4TVVxRlJ2RlJDZzkzQmNm?= =?utf-8?B?Q2h4bGFaUzJZdTZ0MHRneW5qa2d3ZHBZb3A0THZjTXdYRkRSQng2cUloVkIr?= =?utf-8?B?d3V6bGxtRDNqZVJ4bE5xRVhzQTJRQk0zaHVvUkpDWUpqWldKeWVMcUQ5QXkx?= =?utf-8?B?Tmc0Y0Y2UFI2bHN3RnV0N1B6REJCOEVOdm1iTUZjZ3VJRUdyS0RYZzcyUU81?= =?utf-8?B?dFZ5U2w4dHUrcFFva0RabUFQL3pwYlVTdlJRQTBxRVRXcnVuSnNPdUF0OW5I?= =?utf-8?B?Y3g1T0lPSmRTMlZnNzNRSVVuOWgzQXU4WGNEVWlUN1BjUndSeU1vbFZ3UTI5?= =?utf-8?B?M1lIdGtFVEJsU2FLcTNRbWJrY3o5eXFYQ3QyVjJpVWlhMy9JTElkbVpxOVlQ?= =?utf-8?B?V0RBeGJiMDZSajk5bkUwVE4xVGFpdHlXV0JoR0Q1WVBYK1pYRVJTckpUWVpk?= =?utf-8?B?T21JaVJiRmkrWUt5STlMZ0txbG9GN0M5UTZ4dktoWVh2M0lIODgvSUl3MGNS?= =?utf-8?B?OHZBZExQNHVMS3dOcnJ6bVdDMjFqakpKMHBwNkE1V2RqczRUR0FqWEZWNHMv?= =?utf-8?B?b1pkNExzZmtodUlPZm5TS2lsMVkyUll1YlVlWURrR2VNc0JaVmxsbDU0VkFE?= =?utf-8?B?d1NHZ0g3azFvMVAvSmhUZTUwVWtld0c5YTYrNmF3bmQ1cmxSVEhWUkYva2VX?= =?utf-8?B?Q05PRjhyMlRxTFk3TVlWNXQra0lJd1Vod3hIRDE3ellkQmVBN25VUE92STMy?= =?utf-8?B?ZmhEWElnTS9EMHlyWnVHaUhPZy9mTUhud0pPa0Jxa3ZESXNIR1gwc3B2Qmti?= =?utf-8?B?R2N5U1pDZURjWTdKZm9HaFFtck5vYWZOYS8rRG94K3I0U1JadjBySmZkbi9x?= =?utf-8?B?MXVLeFRPNzhnNEY1VnhqN1VpQzZ6RVpFbVRESjZrdTBMSmhIYWlzY3hOdWgr?= =?utf-8?B?VEFkVjlacUVXUjR2MVUzYUxlRVJhcGVocnh1K201NkhqcS92bzl5SFc0elFj?= =?utf-8?B?aW5vT3dUTlZxYU9JUWpPQ3kyOEtFRTl0akphbEtvWG1USlhZc3hmMlJvcVZC?= =?utf-8?B?TWgxSlF6OXZvd0VDWlJiMXM0blgwUTlvaHljTTRMYXJoVG9ISnkrUGFKenk1?= =?utf-8?B?RFY1WTdHMkd0TXh3RmpjQVRTZld5Q3pML0JQblcraFhBUmpCNVZtN3YybTFP?= =?utf-8?Q?+WjKb9PsaUqA33qjAMwAziE=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <4EF59DFA9EF05D4FB801BC9E1BA70981@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: c35d33fb-7499-4b54-b1d4-08dc74aea1f4 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 May 2024 07:14:16.9654 (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: cSYfXRee8q0HRwgvZKfIQENzSPcRCE8BV8TpDlkSegDh6xOEoL73PmDpL+xBsEZQ8uLncWzQMO+AR6Ckgj6SrVxH2K3O9rniW3WtNBjHvY9UH1dE+8LM2x4+1KYzt4he 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.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: 1715757336700100004 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 3bb4d385a8..166103510e 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:20 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=1715757372; cv=pass; d=zohomail.com; s=zohoarc; b=V4aVnsNThOi1+WyrskZceguxi5Xaa+Eiu2w4hYy3PzRI136vj3EqE269/89BGAT67tfrsVk0MUwIPoQUnpir+vPRSBwOAjOsanAJBSKtozsk2sH/zOPZDOEk/3Vw7yrjgyF/ZurvYfsnJLemsIHD4VY8Gh3QgNoc0DnvR4yjNZc= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1715757372; 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=mWrNNAaJaIPTkry3BhmfpwvoRGFU2OPTQ+DvsncCn3U=; b=hsYSzpLXwgNZfrXafOUfygTPk5P7+6gqT9Clhn0RSOltVYwFgXveJCrI+OIuf2pQCnkomEIB1kT2G9IYkR7c53X1vzzs+MvFFy9kwsDKdi+RTm3j8iHeIYGjx4rheMauTP/m1bZOIi746D/gP7BoHjGEV7DGRDNKCMch/B+NK/Q= 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 1715757372639364.549805286632; Wed, 15 May 2024 00:16:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s78qe-0004c8-46; Wed, 15 May 2024 03:14: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 1s78qM-0004Yr-Ik for qemu-devel@nongnu.org; Wed, 15 May 2024 03:14: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 1s78qJ-0000oW-Lv for qemu-devel@nongnu.org; Wed, 15 May 2024 03:14:29 -0400 Received: from mail-vi1eur04lp2050.outbound.protection.outlook.com (HELO outbound.mail.protection.outlook.com) ([104.47.14.50]) by smarthost3.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 May 2024 09:14:19 +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: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%5]) with mapi id 15.20.7544.056; Wed, 15 May 2024 07:14:17 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1715757267; x=1747293267; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=mWrNNAaJaIPTkry3BhmfpwvoRGFU2OPTQ+DvsncCn3U=; b=C2EUs9hPTmMNBNxS1b0pSM6JPSjpL8XkfexAsuNzyG4hAFUyCBTn7rw9 rhElGGvLGDiUElLgHZvkmjUD2fFpQ3HU8/6zRyY06S0YTvqvayTzHyiEX xm1D4BwnNMOxGX9iQEOLOEZ8qtUYSLNgJGg2BRzwKXS42PULy15j/BsMc oVCTaVaPKeAV1HY+0eVuRrjcq6vxdd8dxVV+193MZouLYK46PVNVjJBpX U8TOvdFPAjMvvK1Bm7AOLVHB0ylxcyws5R73fG6hBqYcnHbhD4uA9BBZU TznYdPdonKilaQI/37ngkHauBoje7TDplsFqfxjXt2W5zF7Ng1VsfozBq g==; X-IronPort-AV: E=Sophos;i="6.08,161,1712613600"; d="scan'208";a="12581802" X-MGA-submission: =?us-ascii?q?MDFvjhHg6qsZitBI+5IywTdK9eursV928Nv+//?= =?us-ascii?q?b1YdeGCQmczQCVeYlh5Njkgt1p5MohSiecv5wcV+xKci0NKGLUfsJJF5?= =?us-ascii?q?SzBIKnz2FP3P1p8hxenLcBZL0/EprF+FvJPpngwp9l361YLI5+h42U05?= =?us-ascii?q?reqfP8Zz/yS5shCnFlAjyw2Q=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=j6PTvIrfW9ZydZPrNE/ofGAMwrieRyp2uxOx0kTjVvz815AoSOJMRmj4L1I9a9hIZ8qHdlsgC2WXEoHX59kBEz4LkkUxbwg17463xb0wdz0/Fb7Fhkdie2yo64AOMJzUC3DeSR8FgOCIDSU6n9omArbPmiUMu+uP9mHk/UD9OOCGH84ATzB4F2UzV4ArhmkhGK4bWU4o5QEB1piiQKpk6gLayNlIvr+DdiW8DFcBtHOs7a5UygaFmKZ9Ue8b6dvC5ins5Lq6w1rNSmqhQjFBqNPpC8jfWPa/8Loy1tnKr0PIh7XwV3C4homGwti9xP7zW2o2G3TLusePIJcZIx40mA== 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=mWrNNAaJaIPTkry3BhmfpwvoRGFU2OPTQ+DvsncCn3U=; b=mpd5tyAEltd3W5I0ldwwF42A4E5e9ex/R0aSQDR7NaGzcmnw1ndmQoOudj4f4i/35F4yWJl7y0FHVLhdwQQV0QwD+ItjedaKPfPea7423Iq79YeyxtJHxs94re4Kvkx/ZYl3qCxaFgjGHUv4s59gut4yw4fSVTj5ilu0Qq60Y/nzr0vJkCiB8f0qUO3IOFwVNe4IHEPGneu6F+5H4NLk0yxHH1wGdL3A5OaOFFEczX+kyP79c2dz2oKsSkrwqTc9e+Ea7erk9fWcb8kiuMOY43phPyr1Ac7XOyK9KLny9nXAfSOuFDmixxule6myOJ6QJ4M2XETV71H/+XmG1YXeNA== 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 13/25] intel_iommu: add support for PASID-based device IOTLB invalidation Thread-Topic: [PATCH ats_vtd v2 13/25] intel_iommu: add support for PASID-based device IOTLB invalidation Thread-Index: AQHappd/Mn4U7rZK2kaAPkj64rXn9w== Date: Wed, 15 May 2024 07:14:17 +0000 Message-ID: <20240515071057.33990-14-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: 0a08e020-04fe-498a-e046-08dc74aea21a 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?LzRma3h4ZmdiTWl5amtyUXl2M0E2dmt4WVBwUVdjOFZ0b0hpV0tmdUo4U1Vs?= =?utf-8?B?cDNWUy95alUxdWhPSHRGeGdHb2hRNHMycUpFL0pXKy9pNm11cVV3K2xTY01B?= =?utf-8?B?RHp1Q0o5Q3MrRnRTQ0pObTNjbVV3SmJoek1FK25vVDdHQnlPd1grV25NOUVG?= =?utf-8?B?RnJGWXAvRll5TXNrb0RhdnpZRVVWNEdSblNHdWlWZHUrN1l1OG5sL3RuTWo5?= =?utf-8?B?STk1YTBUamZWTlFTL1JWSHkvcmZ2aFFZUFFvN1V0YnZYMzVWU1Zsbm1Rb3Az?= =?utf-8?B?d2xhN2xqa2lkM1JURThqV2Q3NXdFM0hISzVuOFdsNFpiS0VHSm9uZk16WFZM?= =?utf-8?B?bm83eGlrZXMzNERLbE5qNjQrdGU0VW1zZStFR2R4U1JuUDU4cUZCYlFESStJ?= =?utf-8?B?cXdwNDg5Rmc4emxvRXI3NktraEFXZnRINUFmUmJkUHQvMVFkZW9ha2Q5by9w?= =?utf-8?B?anJkRlkvM3ZjQUhhODg3elJoTmJpYStyRlF3cUo1UmJLcERpOTYwaWgyMWtJ?= =?utf-8?B?QVl6NG5UVHI4S2NnZkJlYkFSMHZEcnpGalVKdFFCT3lWTDNuVXFWTXMvOVU4?= =?utf-8?B?KzdKeC9LeVRSYXpqSlFJY0ZqMUh5MDl5U3krck11R0Y1Y1IydWljVEFDZm10?= =?utf-8?B?LzM0aWtPR1ExdzhYYXptNmErS3ZEcnFEWkluNGFQSVJLeHk4MTRCZmdFTkxp?= =?utf-8?B?NHBEOU40Z3hSTHE2KzVON0hpblZtMGpJVlhVcTRuOS8vVjJ1eGVVdDV6dlVX?= =?utf-8?B?TlpzR3NsVXFPSkFMNVJQc241K0FidkJSN2kyNU95WTlhWlZyVUJub2xZcWdU?= =?utf-8?B?a00wTkFpdFZpWGQ3bDJ5WE93RFpFbGk3aHZKTzZLWjl5dXg4a2VsNlZNbkFI?= =?utf-8?B?bXBWZWdBMkdkZm0ycjhvK2xrbG1RTXdIVkJ2YTdRcVc0cEV0bG0xV3o2LzFH?= =?utf-8?B?SkFXendBb254NFU5YUNianViM3BWWUNabWFJUUVycXltcTlzaTg4NmpZUGQ2?= =?utf-8?B?bUVWbzBnSERzSHdQME9XbFdEbXF0QzRMdGhhQTJ3OUsrVVZQUmE3akQ1Ny9v?= =?utf-8?B?bkIzam5YWEpjMFB2OEZESUVWV0lLbVR3aFZtazd3dFEzYXdEU2xYVENMeHlQ?= =?utf-8?B?OHJ3ZEtVWnlTRk5qYXpPVDRtQkw1R0ZkTy9UTXluQlFZY2JGcldNL0RKMTEr?= =?utf-8?B?bjFBME1LeGxTN2RYcVRCM3FBd2pwWTJ5YUhpVXlkbWdBSVB0RExjVXpGaEt5?= =?utf-8?B?VVRsUWh0Rk1ycTJNK2xMOWJNNzlJK3QvMzRNS3oyeFo1VDJ5ZWlwTGdsK3F2?= =?utf-8?B?S0FxSVNQREhRZFppRGw2YmMzNlJxYkZRa3VzS1V6cXM4djhsN1ZSRzlXaU5K?= =?utf-8?B?NllJdlJLQ00vL2MxNml0R29PRE11L2FEbHp5T1k4NG1wZG14NWxPUERZZTh6?= =?utf-8?B?RmxxZWN3S3BPWFN1K0ZrQ1hRRjExcDNzUHZzL25NZFpPbUpCdzlITm1Hejk4?= =?utf-8?B?WDVIMDBBWUJHVnVERTkwaHZabGl3SlBVRGVhbE5EUWxFTVpxaVVrcml3Zmp2?= =?utf-8?B?VlV2K3IrOUVXNitmcklKeGN6bTJrcDl5ZmV5WXZjY0txeVNHYXJmT1RNOThF?= =?utf-8?B?bTJZanpCMWN4ZHBDdVhpOFBmMWgrdkVscTNqdnJoTG9wcWx3M3ViRlpxSUZo?= =?utf-8?B?ZllGNndyVFBCM0JGdEFEbWJ2amJ0V3ZwREFsWE5ZTnE1MGIxam0wQkUvZTBh?= =?utf-8?B?a0c1eENGN2J0RGMwVnR3V1lBRFZSQXNYSmxjVWxBaWVUZnRET1NUNjZ1TmNU?= =?utf-8?B?cFBnczFXZzBjQzBTVm8xdz09?= 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?dVFMbmF4UEcrbHJvbzVNWG9PNkRqQVF1SzNJWTJaSUkzb0x5WTVHOFY4b3dV?= =?utf-8?B?ZXNkVUVUUUpEa1JOZlc0TlZicGVrOXdUNGdiSi9nbjlQTTA3WDcrYWJaSVZY?= =?utf-8?B?T2Q4QzVpYnM0ZEJuanpDZE5GTUpHbzd0eTZOYUJBbXUwNVhwYy9CdG5RTnRT?= =?utf-8?B?Q2tqemtkOGVUcmJOWUpSOUJITmhqV0JkWXJHQU8vWlpLU0UrK1NnVjJPb1Fm?= =?utf-8?B?MGZGdGMxVzNZdUtOazNLU1Z1Zit2eTdqOFRxd21DeWxuT2pWWWhGREpHVzlH?= =?utf-8?B?c0J0dFBPTEV6aFdoYXV0KzlFUHNKOHdxdjNSazRuSzhFQVRZeHI2djZoTW9v?= =?utf-8?B?RkpHOVRyUXQwRHNoNlNZMXNwYkxIZ1NPZjJHUnliQUJXSWx5NFgxVkNwSHJL?= =?utf-8?B?MTlYb2I2UTBlSTFqS2NPcUNhZjg5MUdyNmFieXF0ZEY2Z2RzM2lWbmU5a2Nn?= =?utf-8?B?V01iM2NKWTRHWmx4RjFPc1NmN0lTY3A1MjMyaHFpMTJOZHVWVlJ3TVF0N1FZ?= =?utf-8?B?UUNJY3M4QVRraElLUjQycGp3ckZtR2dIZUVQUDdlNWkwTUpBV1I1VElRZmR1?= =?utf-8?B?YXlEK2QrelpTS1RDOGVycHJtbVhLcHNMeFhMWmNSK3p1NEF3L3ZYaWlBSmtn?= =?utf-8?B?R1NTbDkyVDFNWlQ5cURLT0lQbnZMaFdVWUgrOVoyRDdHU1paYmRZamFlWjdF?= =?utf-8?B?MEVvdUZJKzVwQllLN09odzgwaFNmZTBBcHIwVjFEbXhiTjdneElSU2RGZUNC?= =?utf-8?B?SHprRHJwcm5ScXJERDFDL2N4eW16R2FzY1BsUDhmZVdOQlRGa0RERXZyVXUz?= =?utf-8?B?dElGQWNiYVo0MmQyTVJFbXBBQ29PbFFubzZLaGxweGpLVTR5YUxEbjJqTGJu?= =?utf-8?B?Qnd2eDN2QmI4V09PVjZXWWhJa2tFQmk1R3BHU2JScjFlaEZKQXoxY2VIbXl2?= =?utf-8?B?N0FjWm1yRWJxU1VzbUhHdDVOYlNqdXhobTh3UUEvQ240QlVIdi9wRkUwdXFV?= =?utf-8?B?ek5tbFYwazBxeTIyOUF1WnBCMXJCV2tMYk9hWWhBV01qVHNnbUtXUXRUdmVZ?= =?utf-8?B?RzUvYzM0c3NOWTVIL0Z5UEF3L1h6VlF6VTZHc1dRSVYrajVSZWFrOU9xN2RV?= =?utf-8?B?V0ptd200ZUhEanpreXZYTnJWS1AvMk5zZElwZ2t5N3BRd3JuMEZsYVVyRkh3?= =?utf-8?B?Uk5uZTBmcFNnMGlkbFE0b29LWVYvcjFxMkpuTkVKOTR3cWV1aXZNUWZWSHRa?= =?utf-8?B?dng1c0tvcXBWYlQxNmIwSjM5c245QUZtbUEwK3R3cVpwK3ZPNGVudUFmbWlC?= =?utf-8?B?VFlJL1V3clVqNHkxeTlWMUFMWUxmcjAvOW8zQ2M1cU04dGkrVGZlbytJNHBB?= =?utf-8?B?Z1dCbm96bXc0ZXFFR3JpOVNKangyWFJyTzVuQXYxa2FPQnQ2SE1TZEVpVU1r?= =?utf-8?B?UHgwd1VOOE5mL0lwVk8xYlU4clFDUlNrK0FUUk4yQ2tNSk9wNGZRbU1XODUv?= =?utf-8?B?MUVTVjRPTkd4MVkwaU93MVlpZ0ovVFBhSXpSb3Z3NVgwd1hPUEE5bjlyUi9a?= =?utf-8?B?ejNlQzdlUTczckgyNjMxMUU4REE5eks4a0RlNm5QOFFUN1lzVHh2NVhtK2tY?= =?utf-8?B?aU9rcHRUeUR4TjhTbUxnL1lENk5rL0lTUzVqazd1NURxMlhXcGlndkJNdTls?= =?utf-8?B?bmt0ZnZqUDZvZ1ByZ0czak5lMVpzbkhQdUczTDg3YmdlOGFxaC9mQThUejZT?= =?utf-8?B?SFBpU1lkWFVueFozZTdBRzhzSE8zbHVDcTJSZ0NNVjZiS2UxcGd0bU5vRWdO?= =?utf-8?B?MnNrbCtNVms3OGN5Y211ZTFqeE5pOThKTEhFdXc4SktReUh4YWtCOTFuUEVo?= =?utf-8?B?U3dxcjBjN3ZIY2pkaUJndmtxMmpzQzhSVTg3UGJleGh4eUxZSDFmMTlDaExG?= =?utf-8?B?QzVWVmxaTmU0Zlc4SVhsaVE3YXJaTVF0d21UeExkR1F2SGdBaVkra0xtL2VO?= =?utf-8?B?RURIcmFjbk1UYktXS09id2p4eGhnSTVTb0lFRklMZG5qOEx4UkYxK1NOOGQw?= =?utf-8?B?V3hTYTZFZlFWZ1hRTHhPNzVVVVNmNkJmdlFsc3JoTjYrcElPNXJ0NHB2QmdN?= =?utf-8?B?WWRIdWQzTlpxNWNqbGd0S0xWM1lFS1ozajZ0TG1ZcWwxNENSSk9BSXFaVlM1?= =?utf-8?Q?MxexGMxeGzJGDR9kiSVaYNo=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: 0a08e020-04fe-498a-e046-08dc74aea21a X-MS-Exchange-CrossTenant-originalarrivaltime: 15 May 2024 07:14:17.2084 (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: BVu02JEEbSkBG141tPbXlYQgoygAgbwdc+7gXTkX2BIxZqYe20gBv8Ch2lUUrMpyFIvwOawRJG8pl7lMDPNxdkJaR89b/u04ijAYCmI5LUR/d9aWUif+hGuyHRYsKLIG 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: 1715757373015100003 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 166103510e..fd4710ba28 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -4341,11 +4341,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:20 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=1715757391; cv=pass; d=zohomail.com; s=zohoarc; b=fOuhMbWPI9FqL5KzrKD8UkfacX8SjQYWnx7iN5tyWOKk3Hd2GnobJWQSSWErg55BqBjuf23BSAePtXpK1/G9q7QKcZxCypNAuNyBOvNTuam3vYT21XlEeXXxeUj1bifEAXMUMZekEVmH5eYSXqX95bIhdk3nfb7buuabF+h96UY= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1715757391; 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=KyHLXyuWDzvRasdPrgQE4M95cx1e+wCF3jumm0O42KORMR4NQTux/BIMTTiufdL7qc+FxJNlb8RKNoB/09N2Sg3RlbUPe6ARg6Awr82QB7J7diNBAwzGY9XTLDlg8RZA8mAdfKguzrz/Xvou0qCTmEgKa3wC81K94qZuadeok+Q= 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 17157573917331009.2093390635683; Wed, 15 May 2024 00:16:31 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s78qe-0004cB-4P; Wed, 15 May 2024 03:14: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 1s78qM-0004Yp-IT for qemu-devel@nongnu.org; Wed, 15 May 2024 03:14: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 1s78qI-0000oi-Bb for qemu-devel@nongnu.org; Wed, 15 May 2024 03:14:29 -0400 Received: from mail-vi1eur04lp2050.outbound.protection.outlook.com (HELO outbound.mail.protection.outlook.com) ([104.47.14.50]) by smarthost3.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 May 2024 09:14:19 +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: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%5]) with mapi id 15.20.7544.056; Wed, 15 May 2024 07:14:17 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1715757266; x=1747293266; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=SJ1YCWl5qPAPbgtTpbIIOYagtuq+mMLnpiag2CWvi3Q=; b=pESl+BuWp7iJ826tKY5E9zFj5Xxe/W6U1+FVV5koEg/zrVLbh9OyOaKa nn/PSXi8hDaf9YBKTTfMmeglYZFhSinlMPgL1hR3n4BF6BptxjNFqUi3w y6En9IPyITmY2Qq3ULMp8vQp7xh1FEeByXOOqG6b/m9k+1dX+OiGEkWbf NQtYfkKlHbBYNL22ouAbOmUp//d1P2M8HkDghbjSSxZxY+hMzT+dQKCsM +MYuveIAYaLmLM5pVRzhw81iMayRNCun9nfhDTaOxmyJf5/9zRUEMwht4 UnBCYTgDr0Y4CbCAohAbYcSfssz4BIWZVzUgAX2d1+y0541A5gdtD4HXu g==; X-IronPort-AV: E=Sophos;i="6.08,161,1712613600"; d="scan'208";a="12581800" X-MGA-submission: =?us-ascii?q?MDHx4whN9SMVnaGGfYV6BBWX1XOENwqbVQjwRr?= =?us-ascii?q?3GMD/I9NpWYPl2iRmaeW0wcyCHKaOCzxu7/5290ykULNAyUTbFLU43x8?= =?us-ascii?q?ieiuo05xPzkASpAJ6jr+pBhK4rFNq0Wf6jWOOiDkQB2XbWbJBm0q5WSx?= =?us-ascii?q?sfcDXYUsC1+VCR+PxE4Ic/Jg=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ajf136jKUmPKMI9P1Ijy17shvdhEFLSpYgfBehiDfwR0WKa4QqCJr/tcdJqCgwkM0d+C+bxDNFverjo2O88AMQV7pmOyT8KYWFwQYpUXeWJquUQJFHkS4I+f1GrUtc4E6YJpjxd4mziN0ZFqVlkYMu08IvDVwToyIZ3PCosl1WjcSgePIkOka6JP+ZQyjEMZJpI3nQrwERKmmnswFjal+6nlgCVcplLcbyPi9dx891kr+EgOgkh1xLlaXV1TzwkJ6Q0DPsoHW0Ok/t1+tqIO2aM4CMIEXqDIvmnQoR3IYOuhbcrzXcScaYBusutz5Qm26NDu1KZNeKVBUDgiYHlbzA== 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=GDNmgWlAXCTXodH+jvvFc+dgUHj4mZ6+3oh7x80pPX6pSxQaj2OcweW9A60LNlnXDZuBi3Ga83UroOSp6cPfLxrYo4j5r2HpJbMFW6ChtJOyhgUQYfoXCWAvpfbEiJYmVR3XAjtJfPpluOKyMdaD7IuwYzNDnc3DgmQS7pGyjLobVNHDYUt/U0rgKQDXNAbUFy88RhzXXFk6fXe6NHtvvIS8c8qoKdOyyKW7I6ZWzh0DyttYCJeuGoJHzEZn1Aqg1ibRnDPH7PxDVPJbjSLq2tYOuezUzpHefreCqyR6QXfGG83zOnVP5u1BsGJf5O+knjTE+um3r1St3ut2zW/VTw== 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 14/25] pci: cache the bus mastering status in the device Thread-Topic: [PATCH ats_vtd v2 14/25] pci: cache the bus mastering status in the device Thread-Index: AQHappd/gqJL+7/DAUC7s2Qdjeq8ZQ== Date: Wed, 15 May 2024 07:14:17 +0000 Message-ID: <20240515071057.33990-15-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: d893a9f5-e861-4dee-a7ef-08dc74aea263 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?M1R3L0Nxd1NmVTlhS2J0aFFUaFZyMWR1cE51MFArRjN5NkpUT1hpL014czlS?= =?utf-8?B?UGZ2TU9DVG5Yd0hjT3RJYUh3UWdFRHpVakRKVi85V1RYMEljMERaKzBZeVFO?= =?utf-8?B?RUFaWTJ2aXhsQ0V0SkF4Yk9WSnRnVnlhcGNYMS9nSmNMRnJNYWk5QVh3blBz?= =?utf-8?B?OHpkZjZLdUU1WHVFVHFNcmxXUW9LRHlvZmNWa0k1SEtEcjQvb1NyZm1DaWkx?= =?utf-8?B?RXgyOGh2SmxnTXlWeWFOZTVocjhuWE1UeGN2Y3o3LzAyK2x4YWJSSFdmQTN6?= =?utf-8?B?YmVDcmtLUGs2LzRIajBFOFdFaktaL2VwaTRacCsyWmJmTCtvdG9tQ1Vkc0Zs?= =?utf-8?B?YlNkNGdJMForcjJZSUxpVjhvQ20xNXVmeGRzaG40MmgyM201Y2lQeTRhYmQ5?= =?utf-8?B?ZzZTbHdybG5KN1BZa2VHaFEyNmZWSU1RQWQzLzVpbzZOUlFDV2VqLzRGQlY5?= =?utf-8?B?czYwN00vWkJpcWV6ZEt3dUtVY1REWk1TbTlHdVh0RTQvbnNoYjliWXEzemZV?= =?utf-8?B?U0xKa1FjN0hSZjJsVHlkd2YrTDd4aEw1MXhPMEI0RDd6UTVYT1hLNG5qTGNu?= =?utf-8?B?c3o0M0w3WVRaMHE4ck5nNnN2My9uQURwbkFsbkpkcmJjRm1OQTc1UEFLYmN5?= =?utf-8?B?RUJoN0pKY1dHZHQ3Wmt6cmxpVUN1RXRwdW1ldm92cUFhRzc2VDNWcm1Gdmhl?= =?utf-8?B?b283c0RlMkxVY0VLMlAyS3ZnUmlMZkpDM2Ntb2J1bTdoSFRwdlNQc1liVlhI?= =?utf-8?B?aS9lN2VBV0lxa3Y0eWZkR2VHSFhtRE5SNkRCTEcxcTNNbHhtVXdaWEdkOEtX?= =?utf-8?B?OHZhNG0veDI5MjRsdk1oTjhJUTZEVTNUcnh5V3FjNXc2Um1xR2FsTEhjNkRq?= =?utf-8?B?andBVFI1ZDNQbG9JbXpyaG1qOVJKQnYvYlhpUFJhQmdpMUs3SjFiUUFVVnRj?= =?utf-8?B?dHhjMTZtSEE5WWZaNENiSmFoOUd3RWY4RlJwMVJrOE5VT0U2ODB0SEpubmVL?= =?utf-8?B?eTBjUmR0dzVBZXJpcEhPbFZKU3BnZ0FNTHhnaVhSS245aUFJSU0vRmFyNHhT?= =?utf-8?B?eFJtTzlvYlhWT3crb3BsRWlDUy9wKzRCcFZkNDRnOVNvMEZUNnZJdm1WMUJV?= =?utf-8?B?YXRnTWxpMUhjQXM1THpWUmRTREthS00wZWV0VXRBUmVtT2pqeUFrL0JoQWxj?= =?utf-8?B?YUFKS1RZaWprMlMxMTZVUHhJTUUyZkJDbDJNWkpPNkd1dVlUTi90Z1MwZTcw?= =?utf-8?B?Zi9TbEVFZXQzc0hhbHFjWU16Rmx5OWpnd1dyTXNjTW13bE9pYXRHa0JPeEk0?= =?utf-8?B?aHcvVWczOWJ1aE9IcXZCSUVLS0V6b3NqcmlnREpGb29kWTFIVnJrVkgzRXNw?= =?utf-8?B?dHdOTWt5a0ViZkM5TnVkU2x6QzhMOHpXbC93ZjVUVDVZN0s1YldBb2ZFOXZV?= =?utf-8?B?dHFxS0Z1VmtFb3g5ZExKSzE3K0dKbkhkWnN3UHVoL2RQNWpvdjVOdm1sVmcv?= =?utf-8?B?dnl5dDJ4eHg4R3JBUTF5R0s0bkJ0NFpMWWJzeHo2NmpqNk9RMVhLeUl0NHZq?= =?utf-8?B?bzFGV24rbGF6ekN0WXR4WkUwa3lJdk1PSHdNaFlQRGxDTXd0TlNibUwxNTBt?= =?utf-8?B?WmNtbm9qZHdmUXRnYW8zajlQSWVTYVQ2cG1YZzhSVnViS01GMWtGZFFPV3hR?= =?utf-8?B?ZUM0NUN1QnBwKzEzUGdvcnVmNnRjR1lZRzljZW9WN09rRitKcXNUVVdENjQ5?= =?utf-8?B?c1VhYUZrRHJpR3NVSHpqZlhtMytyRnArSzNxRkN4RHVuRldOc0VTNVNUeVhj?= =?utf-8?B?SUQyNWEvMk1iMXB3YlR6UT09?= 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?RWY5OHRoOXd0d3FyeUJ0L2w2VjYrbVZMRFNMRmEwT3kzZW01K2FrcCtqU01U?= =?utf-8?B?c2FxU3pSM2cwWk5lckdNNXZFNHY3WVJDVGI3a2gxN1ZPZk5pUWZ0a1pqYUdu?= =?utf-8?B?di9hYWRLMjJhQnlua1NxWnZ6Mm00MVZ4MGtWTjVpNkd3RXBLWXdobHFxeFJU?= =?utf-8?B?LytnTjN2N3hEYzhuQ2E0di9zQXlxVURWRVQ1Q3FzL3A3Ylc3eFVwSC9mKys2?= =?utf-8?B?eHN6S0hmVmtramZHSFRNTXFTejYrVjZVa3htQXVndGxRTjdCbTEzY2VNSUkw?= =?utf-8?B?REFWaVVSQVRGVnlRclhOZ0oxUk04OGU0cE1QNWV6TEhBTG1QQjlVQmpObmVG?= =?utf-8?B?clNNMExIZFQzWHkranVKV1ZNQzFKamd2V1FkbmN3bzQxczFtbnh0RU1PWUpP?= =?utf-8?B?Y1MwVUd6YThDeWlkWENGcEVtTzZYR2FJQjJUVkJocEd2aEtTblcxQk5hSll5?= =?utf-8?B?Zm1uWndJZlJqNmhYTms3Q1Q3bEFWQVBhaldJbTRXaTJpbndDQTlaZzZoYm0z?= =?utf-8?B?V05HL1drSk1jcm1TZkhDWHVzMjRpYlNWRkFnQjNTUVNtWG5VL254RTlPRXZR?= =?utf-8?B?bEJIdU9Cc3ZsRTZERXpLRm1McWlkeklvOVc5eWV2VWZPWWpYQkgvTEZEUTRv?= =?utf-8?B?UGRYZU9aUkJscFZab2tOWFlJY3hGUjRxRk5UVGRPSGJudVl6aVRLQndrT0xO?= =?utf-8?B?engxU2JQQ1N0L2ZDUHo0RFAvTHUwWXlubFE1RnFNUzc1c0xyUmxueEdiTVNM?= =?utf-8?B?dElnM0Z2Y01jRWhvS1Y0WXhzSzBuZktXWTRaRkllbEQ4NTR2bVFmL2tWUExo?= =?utf-8?B?bzBWUGlmdU11OVNYSjhYeUJxQkxCaTFZOEc2OGNOTkZWQnFEOTRPcTFnNXRq?= =?utf-8?B?ZnhzZ2pBT2UvRHRQWmQ1YUEyUnplNVduVFd2cGRTMVdGUmJaeVh1T0s4ZEVo?= =?utf-8?B?dUpuaHBlQlhES05uTmJtRU5vUFZVZVZkbm1zNkxuMEhYaXQrRUpXYjNzUjFJ?= =?utf-8?B?dlNTMmJZcWJSQkl6SHdFaGhVMktPekpwREwvdWh4L2ZFRkZ5dzJMdHphR2c3?= =?utf-8?B?WDFoZXRVNEMwZElmQTlydFRBUitWUE9wemgrS0NjS05WTWRDM1F1WmIwOEZB?= =?utf-8?B?SWtIWDM1dzF3YVBlSU5XUnJiM3o3QkZ1YnRLQUdiQk9ZTkNxZ3ZQKzBDeXZ5?= =?utf-8?B?WG9qd1BiRGhJN09FSkh2YmtZVjd6RGc3MUxqRmJCdVN3QlVBQjZKN2NidDJB?= =?utf-8?B?a3UxNFNDY0FKLzY3bVpVVGV4SGtwTFVWaFRQRmVBRUR0bG10TkkxUVBIYUZv?= =?utf-8?B?V3oxYTRGVnR6a09DVnJsWDkrTGFUTWVJYjg5dXRJeGg2Z0tKdXh2RE5jUEZq?= =?utf-8?B?eU13bEZDbjY2cit4WUpXRWFIOUdRNXh2a1k3QldOMStlTm5rNXNUUjRLRUNa?= =?utf-8?B?SVppQzJFUGgvMlFCWkhrT2psQ2xjMEhzTkoySzYzd00yZmFOMEVjWUw3d0tM?= =?utf-8?B?bWlYWmszZCtmeVVRdjJMUFVSN0N0bFp3TUdwUnlzeXR6dXVZSWRKaTRITkFZ?= =?utf-8?B?VUFqSEgxNG5SbG1zckpWTURVMnVINlE3b0dnVjZIWUR0a2RheHk0YUZJTGlh?= =?utf-8?B?M2NqdDAyYVFINmpXckhlUk5HMDJDUndBUEQ5cVNVV3drbGk5Uk1IbUxqa3RL?= =?utf-8?B?Q2NTWFkzbnBUeDZtLzZ2TWN5bVgzWll3cnY0djYvaGhOeXZNSkxpWURpa1NC?= =?utf-8?B?bXpINml1OE9qdzFkbmZMSW9OZURMVXRSSWEzdXBGVDRocDRxTDFsckgvV1Rp?= =?utf-8?B?YlBjSDZKUmwyb3VjTGNVanNZelRjSmRJMjBJK2xlcnROWWFaRkdUSW9sY2d0?= =?utf-8?B?MUFlVTdOeHliajdrVU5vOFJyNTgxWWdlU3BxWDRuWVNYU2svSHlNV0txR1Fr?= =?utf-8?B?R25MWmM3SXA2dk1ScjYyV2lJczh1ZkZCNG10L0VreWdpQkN4Sng5UHJvY2ll?= =?utf-8?B?bVhOYmdFdkVuNklvZTQrS0pnaW1yM1kzVTZtVVdpbkZZT0plTEJ2SC9DN0ty?= =?utf-8?B?SzFGcGU3enRDK203MmFSMFZObndNZ0JRK0tJWkdoNFZna0lvOEVNOVo1UmtE?= =?utf-8?B?a2EzeDZ5azBRTU41ektiRjRFa1pzOG9CU2JRVTlTLzB2V2Jaa3ZTd0lac3o0?= =?utf-8?Q?KadCoyDYOHyNacdBx76hAao=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <921FC55D6BC800498C420BF87A923D17@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: d893a9f5-e861-4dee-a7ef-08dc74aea263 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 May 2024 07:14:17.4443 (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: bGzeTpUmP0lHsF5qXyxYDBj6joEKFJ552y5WQkPdBYMgIc8UGO4k8pmUSi90mJdz2xUyRNm6EMieeHeLNhHzqDGG/mNk5hMEXSc90sjezifmZORmS+d5wmPblnIx9xc7 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: 1715757393798100001 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:20 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=1715757490; cv=pass; d=zohomail.com; s=zohoarc; b=Q7G/nwe/wH84ZjYNNZQxjMw94ryEoSaPICZajxNbgT7ujUPzkV0UastqgynA8LaGMvka1+Z+vhn/f/lwFopL1bnmBBcY9nJDvEBWV1sMvWbPbKe/tpMQCPfqpPTlXmkpn1YXZ0gL/z7qIy4XftyxQmY3/PXNzQCX3qXPM7pOAd0= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1715757490; 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=CNQP7R4fixHdItVjQquYDz2UpGFCRNezXgcRL4ypHQA=; b=ayYBghp4r954iQ2hKYw3NAUifaUT6Dj4DIoruzZODHKNjQFLoQbLMkBmDmUpO6YvyXOmn0vg7cyZDbYcadXsEwsaeBFI3Wwq4p/npf8h3N6Uyu4KE5rLpRDsY+ygvUnhTV1uvJGKKxjWtwVJEyAnAhCG4o3Ug3SIgCkwrwCwNSs= 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 171575749083786.62480399156789; Wed, 15 May 2024 00:18:10 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s78qV-0004b5-T4; Wed, 15 May 2024 03:14:39 -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 1s78qM-0004Yo-Hs for qemu-devel@nongnu.org; Wed, 15 May 2024 03:14: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 1s78qJ-0000oJ-6w for qemu-devel@nongnu.org; Wed, 15 May 2024 03:14:29 -0400 Received: from mail-vi1eur04lp2050.outbound.protection.outlook.com (HELO outbound.mail.protection.outlook.com) ([104.47.14.50]) by smarthost3.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 May 2024 09:14:19 +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: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%5]) with mapi id 15.20.7544.056; Wed, 15 May 2024 07:14:17 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1715757267; x=1747293267; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=CNQP7R4fixHdItVjQquYDz2UpGFCRNezXgcRL4ypHQA=; b=L1Qid/DhN/JFh1XuRrnJdWH218XZfDl7VMsKRpFzc2MJDxLfHY2BQe/e p9BpDIR075x+2p3Ov3bWlviiz00qT4YXEBVy27Ao43b2ncRrLzNjL+RzF wdMe6gAPrhFq49GE2uI9GEZiW44GdJuoDV3CXudmv4qIybDoc6QXFW/uj 7aIjZwRFZZuOyLy9hfp/sVmr5vhQlva9SjuCmm6K3Ab5gYwXokPmAkkCH XDXjXdwClg4bSqG/xGucEYiyRn5pY2OKVFP171hPz60FfDip7B45Ls/i9 WEPOkBLXBDyUcrtuvrWVLFXNVHkYbslBRnyB7iOZpW8g59j3OSWnWKTXM g==; X-IronPort-AV: E=Sophos;i="6.08,161,1712613600"; d="scan'208";a="12581801" X-MGA-submission: =?us-ascii?q?MDGzWYzx+ZBs74ExwzoC2n0zvOm2dr6+wwi4Zw?= =?us-ascii?q?yB14zx2XCUDi3ZSwGMkL+064+cVTawLn2Seip//zzeUpQHZX+fFhgH7T?= =?us-ascii?q?6O5QElNFacNPfaYCYCJyxigoDz6uCgmzKiLg0pmNtDGD08loQtiwLM86?= =?us-ascii?q?g+hWbkp7KxI9+2ns9sZm7sEQ=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Q8tTUx2vB93cSsxOuL+LLswWgEMrXnilxw3ghFKw6awKTRmv5Zp9ou2r8BWR+njgwgYkn2ozgtywj11iAHumrV2eGW+o2mSwbpgiU8m/XyLn0UI+AXLGP9i8Ysxlknb/Q04FaEPJG6nCxnJOBTq1PE/hpXMtdNJpTVotM0oEJqvCSdSkKA9uNg1RX4KnUoMlkVYVjC8JBnnZB03VSOqt3EnZtQRXZzmrlPXzml1YLTAegRk+lH96KK+bVgqHsxcdHK9IM7whq0YYe4Q5lLYBxtNddFZQ3tRdA/K1EjyPOqMld1dQvODG4WIB+oFMRf6b05MiSuYcG5V0VB3trvB/NA== 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=CNQP7R4fixHdItVjQquYDz2UpGFCRNezXgcRL4ypHQA=; b=I/34zxpPf4g2YEDvNxS2ZsOXsAAY2a9QeLarvPHfEClt3Rc7/JlyOdA9SDtjs4ZaAKCzKer9xw9LHBapKdcXwb4naaT2XIg1wdbgce7h9FVw7s/opzUa7eQBGz9sFFATvkS5Oi3O6q5oFJN/WfNH0aW69NyBR41dwSJ9XMJFj2TP/XnIvbEnNDzMIHNJMgl9xJdy1W3t6xeGb6irCFTAXiWV1kbgqwbLH4racdEwE7yAjC/eV56Z0lERZ9Zo4wMggAvAQYVAs2/hKBdkBmm6dT70aMEGP+mPoTEtU0B5IY1zknVZzMvn+itPSUxIiL9pWcLz6//IQ0Z4XJSc9tnPgA== 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 15/25] pci: add IOMMU operations to get address spaces and memory regions with PASID Thread-Topic: [PATCH ats_vtd v2 15/25] pci: add IOMMU operations to get address spaces and memory regions with PASID Thread-Index: AQHappd/2MOZbvh5B0+7dA4EtQBnhA== Date: Wed, 15 May 2024 07:14:17 +0000 Message-ID: <20240515071057.33990-16-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: 45e37737-7c4f-4599-5353-08dc74aea287 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?aVRDcVhrdUdzaEw1UUNEa0tXQkszdHhGMlBNVVl5SGwzazNRVCt3VWI0cE5S?= =?utf-8?B?V1pGVWx1Rmkyc3p3RURGL0xWUFVKandobm5Fa3k1V1lQZXZkT2tWUWIzVzcw?= =?utf-8?B?Y1IzcDFGK1JsMUFtMkQvbFB6YjJ4cVZ4THBvSUVIVnRZVWUrSjR1amd1UEN4?= =?utf-8?B?a2FXNlppaGNPWGtMTlo5Y2VkMmU2RDMxendteGFMUFd0aEVZbC9hekM3NERI?= =?utf-8?B?ejBNaVZSa2U1Y3BvZkpiVnpaNUZ1Rm5KdmVHeVQ1R3o5NnU3Sk4yZ2VDdEhN?= =?utf-8?B?d2wyYzE5N1hYRUtwZld2UXMvbzRKWCt3MlNIZFB0eVQ0UlM2T3c3WFZWZUxG?= =?utf-8?B?ZE1xN3ZhNzlVQ01MMW5SZ1p5OXNqNllFa3hSVFVpTFpTbUVmL3lqK1R2OFgx?= =?utf-8?B?bFJkeEFhdE5ZMlY5ZHpmMHQ0TzBaRHYrbExJYjFTYXNTeGVwdUNveEllRVBU?= =?utf-8?B?ZXM2K0dSZDVadk5TUmdXWk8yZ1VwcjVGRUlPWlFJZ1JCRkZoZnAyWjNIRkFz?= =?utf-8?B?cnhjV0Z6QWFZaHp2aWlycEdUVXE0M3UyT1oyK2QwOFdtUXZzRXJETDM3c3Fv?= =?utf-8?B?VHVOME9udEdGcFI5ak8vVTFiVVIybWtJWlpNRmUwL1lnT3YvQitBTTZTdFlU?= =?utf-8?B?eFF1MXBRTEY0U1BUYWFnbGFJck91T2YvRitMNlNGNy9CclR2eUxnaFZjQ0Zt?= =?utf-8?B?VVVNMG5uR09FWlJJWmkvdDNFajZQaEQwSnMrMHlmbUJ3T1dWSXM4c3JVOVJ0?= =?utf-8?B?YjZna3JBVjd4TlJhN2JielZYMkQxWVFxQ3NOb1NUZzd6WXIwRllJSDk0V3Z2?= =?utf-8?B?Y1B0MzFuWUZyM1Z1U3JLcmUyNGJTNDd0ZGhQeXZzMWJMR3hHQThxbDF5ZUVn?= =?utf-8?B?MXFMMHpJR01rUE95azJkZW1BdVdMblJxWnJpR0RBcFh4ZCtsQTRuS0xVckZt?= =?utf-8?B?R2ZCRXdYNDBIaFJaOGVqUmE3a1g1OXdUVnhaTGpSS0ZVQldUQ1dNY1VXVWg2?= =?utf-8?B?aExhR3ZtbVZrT1UrVVpTUk02MTRxSEo2czBJYlhoY2YvR1U4bDMrSGdHU0pE?= =?utf-8?B?Uk1SUmwwbEU4VlYxQkNJc1ZQVGlLL3dUeHluNWMweENsWjRYYXByRFhBVU95?= =?utf-8?B?OFdPSlZOSnhDRDB5V3lvQjJoOUN1MVFjRkxiYklMYXEvSFZ6RkwrQTRKY2JR?= =?utf-8?B?akN4OE9TQktvSE1NbmszeHhnNEFIakRzdm11Umx5bW5zMGgzWE1uZ3NYMWFs?= =?utf-8?B?aXZrQ0Vsait4N0ljaGJFRXFtTG5yaWNlYk4wZGFhWHNscVRPRm45Z3NsdEZU?= =?utf-8?B?NVhsbmZuMVgrNGpmbE5VbFJKdi8xRUowZkl0NEJTQUFxcXdYKzB6cjNLQzc5?= =?utf-8?B?MkhFbEViTWVQeWdMT1I3OTlDNk50cHVST2VjQlVmTWU4UGxVSHpUMVVETWtx?= =?utf-8?B?YWFaM2RiVjZKOUwzVHZkb3h3RGRjU2o3ak1paVk1MzU0YkdjUXcxQ1M5aGdl?= =?utf-8?B?SmFGYU92aGJzSWRzYlhudnlZVDdQa2ZUZCtvMWRvUEtwWFk3RkFYYzc5OHR2?= =?utf-8?B?dmNtUmpvWnFGZjdiSmxLdDgxMysyU3BwRGRuZUJOSEZzZ2xlSC9XeTZZajN4?= =?utf-8?B?K0Zpbjh6QmxrMTk1SzRBUDJCTXhMM202Wm1QTDhBSFRvQ3dxNTd2SWs4M21m?= =?utf-8?B?TUlveEJ5NkZRQ2xnVmxVQ2hnR3JWTml5RDNpbkhhZjhGN1hlZWdGdDdnSTNI?= =?utf-8?B?MGIveGIzQnA5QnNOVG9UTG02ZkRVZ2R4SUYvQytseCt1VkhJUi9pcCtrMVJQ?= =?utf-8?B?Y2NrSk5RbFBvL1dHdFE5dz09?= 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?ZHdxODlqM2FyUktLK3ZSN2x1dHFpRzVXNVluUE41MkE1dy9oaFNaNXlEUUd6?= =?utf-8?B?bi9rQ1ZXc3RNN2ZKMEZNcHBjazVJclJ1RFY4U2pxOGF1VnIxS1YwVG9GZzZu?= =?utf-8?B?NDlCRmlFOERBUGNXSVorcXRhZVVHRWhiVG5XWFFrNzJxUUxzekZsTkY5Vnlv?= =?utf-8?B?WWdpQWx5R05HWFJWeEFqU3RmUmhDVmlXa3I5UEJIemdKTGZKRjloN2ttSjJU?= =?utf-8?B?aVdHQU5oMG5RZGpxaTFJMDQyTCtRWG1FV3BkSE9UUkdzV1pQQlZ2c1BUKzNu?= =?utf-8?B?UGpJZm1sem5UaFFaWS90b0Q4WDhIQVkwclRLd3JtMjgxd3dWVHNXejhNM2RF?= =?utf-8?B?bFVOcitvb1d0aU1ScG14MVd6NDV6ZzN2VGlQeXBDMmVPbkFQd2JWeUt0UXp6?= =?utf-8?B?TFg2YWpxRkFHdHhIMkNhcWxtYzUwSElYTE1vSUZNNEVJSktqT0NiZjFwUC9x?= =?utf-8?B?Q3hrYzVMTm9WQWRScVN6dzNGU3UySXNEYnQzOE9XMmVCUWpnUWF2ZWRCWEt3?= =?utf-8?B?OUlqUXlxMFZLYitzaTJGOE9ReFRpb01rdnhLRUp2WitPa0U2S3VWMENRTGh6?= =?utf-8?B?S0pGV25IMEV3YnhWYjFqUG5GUlB1WTNhNStuSCtUQW1RTFZ6c1l6bHA3U3RH?= =?utf-8?B?SkdabWIrTDFtUmQyZ003UlY0U3N1RkZiVGJmRWZqcVExNTRnYlV1dnZhVFk4?= =?utf-8?B?NXJaTHdCS0lXaGhXQ2FJaWUvK1psOS9kdTd3NFVGODlGM1AveEQ5enl6U3ow?= =?utf-8?B?VkVsL0ppQW9DMDQrMGRNWW8vaHhRSmExV1Eyd3BJbGw5R1d1YVBqbGl6a1do?= =?utf-8?B?VGtNMDNBbTIzU0ViVGNSZllQNUFHdENPczVYUHZDR2ZQZDNkR2VmUC9vT0Y0?= =?utf-8?B?WmFuNHduNlo1NERFQWRYSy9NMGdXd20xbGEzM3dpUTQvam5DdmcvQ0FFd1hY?= =?utf-8?B?ZkgxR1pxVDVxZ0pPSkxVR3VLNE1EUXVTYUhJbkEzUThUYnJ3Tk1IbWxhUktV?= =?utf-8?B?VHNVZDd0eXlkTWU0TkFqd2ZnOVdaVUpvUEo2Q3ZSaHp2cmFhbUtqazBLa09h?= =?utf-8?B?NmpETlNDUGJIY3BqTGFzblR4bjNNdU1hSU01bG51bDh1Q3dhek15MWlBKzF4?= =?utf-8?B?akZOS3VPclpISjBBQzJKM3RRM3BLL3ZIR0hMVFdTK2VqT0lpM1JsNWU5NFha?= =?utf-8?B?b3U4c1JLS2M0dHpPNkRJcGsyT3BrYzA1VnRadUxkU2pnVGttOXFGMWw2WUNa?= =?utf-8?B?Q1R0RmJwRmdSdmErcmVkejBaaEtpZll5QUNjN1JaUFExUkx5TTNvbU5rTkgw?= =?utf-8?B?MDZXZmR4NG9HbEtpdWtZYVVsMUhwSzdxdTM2a0RXK05lYUNzeGZraW5UWUha?= =?utf-8?B?ZWxONlhKMzIzQTNTQW8yV09EdEdyd1VPVlFEMFBZbHcwMTNHdFVQZCtydDly?= =?utf-8?B?U250YnRYQVoyWEF2MTB6OGxsaUE0R2gyWWlBVDFvNEtZMjc0RnNKaEc5UE1r?= =?utf-8?B?QTc5b1NjQVNMNlRXeWM1amxzTzEvVFF5Zms5RHZTdzFpUEh3UXNpS0tQWVZ1?= =?utf-8?B?RVBKSnNGck8rbzZKb2JHNGZtcnlQT0hZOG44NVcvdHZUeUh0WktTS2dtaUFY?= =?utf-8?B?TDRLRnJNTTFIVjJpTkpCY3dtZHhIa3kwV1Npcm5JOGlabUJsaGtneXZoV2F4?= =?utf-8?B?dmFQMUxQK0xjUExLY1MvYytnV1AzaW9KU2E0aW51YVhodkIySkxpc29RL2hR?= =?utf-8?B?WHovcjQ2VE9HUHhDODZpK0YwcUpNOGQwTzZieXhpbmI4czgrTDU1MTIzSVlI?= =?utf-8?B?VjRuYmx5Sm9mR2hrYzR5TE16SzVLR0h0UFp5N3QxUzRtUXV5Q2QrdUxLSWUr?= =?utf-8?B?Rkx2OFg2M0Y4VS9GN1pqejRpdW1mVC82azE2NjFFWHRjMjdGNjJRam5RM0dx?= =?utf-8?B?b012Tms1UlI0M3FTemh2UEtmNXJOazR5U003MFdLT2duRGljcUpST1BUblox?= =?utf-8?B?UDlOMHJFZGJWN3JwNHg0RXVCS3NRWVRPeVpVWTY5WDk2TzJKTWdWZk5uNkF4?= =?utf-8?B?ZlgwK2VKOE1abENXdmk1OWNoWFdPZWJuNEY5SjhpNEdzeHpLT0pzK09RdTYx?= =?utf-8?B?bHdUUlJsNFRsTFg5S25laXl4cTVyb1hyU3RMbU9LdTNWL29QK3ljYTdsQmZU?= =?utf-8?Q?A94l1xGGJfm4xId6pTaFsMI=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <511425C4B0282F47B65070D935457777@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: 45e37737-7c4f-4599-5353-08dc74aea287 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 May 2024 07:14:17.6735 (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: //EFfkeCsfCSDi2iWHQw8feH6Fj2N3O7bnuwmfFQB2BvNZhQseyw8XJnlvwjrCUOj5seyy9gj9u6l4RWZbLVt2LR/o2jhwEd1T+hKFAiiqLZ8sMdrPlo/buqLD+izuwb 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: 1715757492337100005 Signed-off-by: Cl=C3=A9ment Mathieu--Drif --- hw/pci/pci.c | 19 +++++++++++++++++++ include/hw/pci/pci.h | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) diff --git a/hw/pci/pci.c b/hw/pci/pci.c index e5f72f9f1d..2b42b4e4cc 100644 --- a/hw/pci/pci.c +++ b/hw/pci/pci.c @@ -2747,6 +2747,25 @@ 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 (iommu_bus && 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:20 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=1715757334; cv=pass; d=zohomail.com; s=zohoarc; b=cOXwN7mw16/i4BX/Y63UCL/Ovb0yKLbubL54+k08HPbvCmb1QRbSeUPIkXF9FvcC2rEg/3OWr/4fdSwOkPWYVTKxGyPn/x80epGHES2j0wUn6IdHPNB5LuvAfEzuJS6lJ+ng8b/uRti2UxSs2SLOx48qA+dQsdbdod8wVRRIRfo= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1715757334; 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=8grq/D3/2ZZYyfmF7krWIJodD2cmB/YeOpbkvdktkRQ=; b=MT65trVkBtIeEadwuFMlJTMcW2iTWYDZhUvM8hcteo/gOVQeBGRF/41PTNLRA2CRcrW6KY9zzVIeqsd6FDeK2OfnzoBv725soBADBBIbGuEp5YTcL6RbWsOmdgb9vu79gfX8/QNsXwnjRYJCGzw8QYJWBM2Txv2uOX+DOqz2Bus= 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 1715757334953603.9851730718224; Wed, 15 May 2024 00:15:34 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s78qv-0004hA-CM; Wed, 15 May 2024 03:15:05 -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 1s78qb-0004c9-QA for qemu-devel@nongnu.org; Wed, 15 May 2024 03:14:47 -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 1s78qM-0000oJ-SN for qemu-devel@nongnu.org; Wed, 15 May 2024 03:14:45 -0400 Received: from mail-vi1eur04lp2050.outbound.protection.outlook.com (HELO outbound.mail.protection.outlook.com) ([104.47.14.50]) by smarthost3.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 May 2024 09:14:19 +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: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%5]) with mapi id 15.20.7544.056; Wed, 15 May 2024 07:14:18 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1715757270; x=1747293270; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=8grq/D3/2ZZYyfmF7krWIJodD2cmB/YeOpbkvdktkRQ=; b=hd2izDj7c1Xj+fyw8ZNgP0BC/IGpXBgBg8Q8qgWNhcx4wDm/5/noEFkU mbaePuuJrURnEYPJQXi1oU1pOOJ2LV8wK2E8gzoMzK+VHlbjL3E7Kidna Y4zbmDGFu2coiEtu0krMmGMlW+7q+RrJQlm8ZCg8yZulzyymgjkjYaK2D 1EvR1VfX50nH2KBrpjtFheS5JRkcq0UC5ZKi1UnTgW2YRNnXefibn4vzZ CKuZoMPP2tM3W9ka7wiKMGcaD49Q05Xy+UvJNxqka0EI4kNqk4wkOWjC8 SUMQ396WLZfhKIsoKCGRLO7XQmXC+u7cm4KDakaWJkYog+mIm3y+j3tLG Q==; X-IronPort-AV: E=Sophos;i="6.08,161,1712613600"; d="scan'208";a="12581804" X-MGA-submission: =?us-ascii?q?MDG1y+UdqLLOfxbozO9ycBp4QTb2hQajx5VORd?= =?us-ascii?q?R9B3hSgSEHLXLcnPplE32UbQGKix3Fosjf4YkMGXzac/GGz4fc8VnnhO?= =?us-ascii?q?Vv8Z0BPK2WcgJ4CQFYhJl1IfdF2IpXaLqPsJQb20rjgUkBcdK18CmpEv?= =?us-ascii?q?IJM2HcnCUjIzwoxtklv/P3Ng=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aEdTi/xeZFyAG1eupNrSiXSC6Zw+YYjszvUeoQ1GY1hEJx+kPbCxoApmB7sOgajPxhMoCqrOPgwDPyCzfZsDVZWmXko0UgzgsSrS7AO1rzit697ig9ANbBYfMaOvC7VpotNoRTtY6I3dU/zLVxBmzrTHHQhoo1BkbSsoW5U2EFZDvlR7fUgvDRECYbSZRI9W1bjT9r/VHErZbyYItdyqTG7i6EtjaZN/YpWzCVTsIMIeeDANdDPKIcPyuP/pRSHyBTT3SFdGYvLHGtEfHmWHp3OpeQQcp4JLHCmT7L3qbbaU1Ul2siIhOaxjxqQ/Eh3NzF7Kw03Wst/HEaCzBBCWZQ== 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=8grq/D3/2ZZYyfmF7krWIJodD2cmB/YeOpbkvdktkRQ=; b=O2DgQkYvkwpp9S5EcY19CbQPzucsCpxCoNAu50difO1cJWso15lwM0nwTvxUTi8KBN6gRYN9BDa3NSm+w8bugkOqpM4S4D1cUE4OadzVN7Ah21Gv5JhC0N0lbihO2g/xlSpJcZHLUJx2SzsGxud8S+RhAQ0lUOi+Ik4JQEND8se/h36ylnTKticuiW2GNOd42H7tHleqi3HCi8Tg//BEmMGeNW9V5LsNsuEpnF13bEiUrQtAhkKEOG5liSy51aPdKiiakzh6v5pZLLarJ3Kq2QE1nfxQkR+4/v5o5hHB7f3NJJYTG79PaKjpMOruP5Vx6Jy1ladyPGhpYvsoWQPAug== 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 16/25] pci: add a pci-level initialization function for iommu notifiers Thread-Topic: [PATCH ats_vtd v2 16/25] pci: add a pci-level initialization function for iommu notifiers Thread-Index: AQHappeANlzl0qOEI0mcoeWbkElSrw== Date: Wed, 15 May 2024 07:14:17 +0000 Message-ID: <20240515071057.33990-17-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: 05d07f11-dcb5-4d88-6cdc-08dc74aea2ac 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?WW1BbmgrTnZnMFoyMzdkMjk0MmVINEkrNUI2WlF1cjZUZEYwc1FHek9maU1K?= =?utf-8?B?em1sZHgwTjUrUEVGWk1FVjRSN2dmeHo2R3NtcjgwZ0hCNW1RY3dYbHNZRmN3?= =?utf-8?B?eStIUHhVZ1ZuTFBNdnFtTVFWM2V3WXE4UTEvYUtGRDhlaUJCTEVhNmJtRmE0?= =?utf-8?B?anhLL3pYTWJ0elkrdy9EYW52UjNxQ21taGlKQkdWc2tGNHlIOGJxRS9Fei94?= =?utf-8?B?dC9RMTk5Yys4WlZKVXpPN0ZTNGd2T3hEaFF0T1p3Zm5VemxneXNEMnVGTUJJ?= =?utf-8?B?bGpMQ0h5d0ZpYlVzbHU4czVueEZFWVdqNjhiSllnTXl0ZXJUM015UmFUQldT?= =?utf-8?B?L1FhZUxUN01nL0E3SVMyd0FkZlVWNlE5d1FjM1lubXMxRzlpQWVQM3lVMXBF?= =?utf-8?B?d3FRU3B5eWI3aU5WdkYrMS9oNGVCNlkrZlFxVStQQkpNZ2tkL1NYVldwWDFx?= =?utf-8?B?eHVBa0c3OXlQaFdEZXNJRGNhcDdlUDU4bjJ6M2NFR0xiMHJFSU0rRWZTNjJs?= =?utf-8?B?T3JPNjBUSHIvVkhBdFp1cXM3N1NjaXUyMGY1Q0N4TFNYbDlpeC8vM1M0Kys4?= =?utf-8?B?M1lybFFZOStEK2ZhTkhUQWtZZFRyQ0djRXJKRnY3K2NKaFpDY0ZyMlJQQzcz?= =?utf-8?B?d3BFQll0R1dFYk4vbkRZNHFQYjc0My9vQUJKM0xQYjRhamlTWkVSdjZaQldk?= =?utf-8?B?QnAzVGVBa2QzVEk4LzcwQjI3ZFlaRWxKR0h1RzJocm8yMDIyRVlCN0NoTWk2?= =?utf-8?B?OHRuNDJjeDJEb3BJcGxFTncvSEdtMFVBeGxyR3NJQ0p6QU4vMWh2N1gvZ1JG?= =?utf-8?B?TjRNR0g4cVRIYnJKQmtqaTRQY1hPVDU0bE1tMGZTdVV3TVNpMnRwajFUbklH?= =?utf-8?B?cDBIZGwxamZNQmttYmp0bjZtWUJXc2xZR3kzcEJheXV0Q2w4Y2IrNFhMUC94?= =?utf-8?B?OWhvNU1waE5NVUNlOHVtOVRQZ2diRFk1NzdxOXd2ZjJkZnF0VnN6UWlRV1Jo?= =?utf-8?B?akplUWE4aEYyZXJSbjFQRnRvTWtaVzl5T1RRYWdWZDJQVUJ4S2paWStJUU82?= =?utf-8?B?bGtZRGpaOU9DbXNuNTUwK1JmWStjWHZjZm81Uyt2czY2bnJnb2ZTOUR5S0hp?= =?utf-8?B?VW44dUFQNUFzR1FJcjV3aS9USUVmQ25tOGtWVVZJS1RmU3MzMGZ0V1RKa1F6?= =?utf-8?B?V0xIQlI2WDJQMUN0U090NGxlek9LbzhzM3ZpQVY4WWErei9STTMyTHdadGE0?= =?utf-8?B?TGgrWGtUTGlnZXNBVlQ5QUVDWkEwR2d1L25UUk1UZXlBYmh3R0orREM2UWNx?= =?utf-8?B?TEFPWUxQdlBtMHhyWGhvWVBvVlBNdXY1ZkZidUxzTFdSd0J3OFhrVTduelFn?= =?utf-8?B?cWszdDZyR1orRnhjOGpicDdXNjhLQnNXQlJPOFExZGg4TkRDNXVMWHJsQURl?= =?utf-8?B?Rk1mMnVwR05FOXMxbGd1djhxZHYreWl3cldnZGdKZURHNW5VeGxlZmR0MVhC?= =?utf-8?B?K0hkWmZ4d25SUGE2aTlLUjdkeStqM25mdGowYTRxT1RUMmVOTzN0QnB1bW9T?= =?utf-8?B?dEZrY3Z5eDhCYkZSK1hML2FqaFBoYWx3Q0hrRWgrQXNEOFcvQSt3dm5VNUlJ?= =?utf-8?B?QVh4TVB0WkQ1VnpwT0JydWxnVVRkQ0w4SEgvR2NhK1RRY3pPa0w4T2dzdFJZ?= =?utf-8?B?cWwwbXY0WERmN1Irenlnb2JIa3pkamJFT3h3VHo1bHNFMHhqak9kdmJQNnBU?= =?utf-8?B?bFRvSlBCd1B2eUloMCtxY21OdHZmTU9PeXFaa3U1bnhQSXhwZW0rbTJsc1JM?= =?utf-8?B?bzB1SUliOHZNc1YreVNkZz09?= 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?WDBObFBpazN5clhIa01OSWQ1Q3poaVR6eUpGc2dsdDB1ZzZmU0tidmF2SlB0?= =?utf-8?B?dEsrSERjMktPWVhNb1lBTWdYSFFqRGk1a1lYMjBxU0JJZmVQQ0M5T0Uzd0R1?= =?utf-8?B?TVpjU1R5a3hMam05a0pCVXpkaHU1ZTVhNU56ZkFOZGJkV1Y4c05UWENDekpH?= =?utf-8?B?WHJNSDdEcEc4MHhMbDE0ekdNaUZKdkRaQkRGK3FVZkhxRG1LLzBBUnFHVlJl?= =?utf-8?B?NjBjcnJ6NlVNVkFiQlM1MUx2Y3d1SXhmVFF3aVh6bWNudFladStLM1BEVjdz?= =?utf-8?B?S1RyazBSeEFLWmpnL0NNYnRzTWlvazRIUzYrUXRLbVIwSlMrdGV3dmhFSnh5?= =?utf-8?B?VHRLRXdMN2M5TkFjWWZGaUdsTmRuOWQrUDFNekFxSTlHcnNuMjBrWDVOSHpV?= =?utf-8?B?LzFkZTdhR3lWZEVkY1AxWVh4emcrQ1MyaUMxOHo4RXNORTBjSGE2aVlQd1Qv?= =?utf-8?B?WHJmZkY0RkkwTDFCWWNvRzJEVUpGUWxZaHJwLzR0RWRWT3UzM1E1cnhITmdp?= =?utf-8?B?dmJOUS9WUmYwZE5RTnliUW9kVjdTWUNWeVd4cy9ZdFRLTlhXWFVFbUl6cmRO?= =?utf-8?B?cXhWUFZqaTVTaE15a0VxMWNOK2VWVUhuOUoxa3pHTWVQSXZBOC9idzQzVFUr?= =?utf-8?B?RHZ3UHQyN2lhNTI3NzdFNjF4U0hXM3dqYjd3Z3VxaGdPODUrbHV0YkxTdWhI?= =?utf-8?B?VHFBd1BzZmJYYTBIaHdFU0Y2bmVnNXg3elc0Zk1FTlVzbzNWU1hRb2Q1aUpW?= =?utf-8?B?VEpxZDJjbDdDUzA5YW5JVjg5aGN5Rk5UYTd0dmVGOG5ac0ZKOFZTa1NQYmxD?= =?utf-8?B?RHpHYU80QjZRcGdiaE13YmpvSWwwYTcwTmtDM0lNMTB3OElpVGU3VkZuaTF6?= =?utf-8?B?WEVHTEVUOUxTQnpBUDJEVFlMaVlJaGx2dGdYVE05eEN4azh5NWc4NitrVWIr?= =?utf-8?B?M3pjcDJwQ09NNmJMVjNnZDJUblNyQWNtRzNSaUpHNEZSYitGc1pNU0ROMStr?= =?utf-8?B?M0VRckJUN2ZPNDlzUWRDVGhLUCtkMGJYRFV0eDlGNXYvMGtxZldBSzR0REdL?= =?utf-8?B?ZkJSbzFraW93NjRHR1lNMUtVSHJnb2prc0RXVXVLYUs1M05aKzJBRU9teUJw?= =?utf-8?B?dTA3bktkb29JNkcxMmErdUEyNEoxVTAzaENXTmdRQ2YwNGxORllsWWpxSzBr?= =?utf-8?B?WERDS0pGZW00b0UwUGZiQlp3aG85Um9DVURPQUpYcGVUcDB1WmpnVUlwanJk?= =?utf-8?B?SGlWTHRTejBGQ2xHRlhqSkN0Z2k2aVA2Yk5BRzJtTlFzWXYwVWFudEt5UGJY?= =?utf-8?B?OTdyQlJnV2x2QkErR2ZvZlJQa3NMNjV0VVFuRDRZRkVScmJJVXVXVHVnK3RD?= =?utf-8?B?SzlCaDNPeGhLdlN4WWFuQSsxWjdiMUcwU3BPRmV6SHBPbE5hTHFjbzRRQTYw?= =?utf-8?B?V2FJZ1p0RzhpcEhCVTRBTzZrRVlDNTNMSjVPSDljcUZ1ZngwNnR4Uk9WUm9O?= =?utf-8?B?TmozRGN0Tk5Ob3lZSHpHTktXM2VQT2NlRGM0UWpSV3dzMEg3S1I3N01yV0Rj?= =?utf-8?B?VEQrSUM5KzI5a2tGNFhmc2U5aWRRdXN3WkF5N255VGtzMUpYdWNGU0c3NHJN?= =?utf-8?B?ZDQxblNxUkVXVXJyYUtaeTU4U3V3ajU5eEg4SGhldDVVd2RlUmNkUnp1WnVF?= =?utf-8?B?NVpoZHU2V3NGQkxEZWdlTTBibmVFT2doeWRrNGZ0bFJQVlFNZCt2V2dOYmIy?= =?utf-8?B?eU41c1FhTXliNFptblVSaHhFNDVWTXlGc1JLVndndGEvSWdzdWdOdllnOTFN?= =?utf-8?B?VU1XMWFqVUx5Um1sWW1yOFpwMHo4c1dtcXJseHA3L2ZOenIrTzFWYWlWRUlR?= =?utf-8?B?MlRvSVVCU3I3OUVrblppc25mSlU3b0U0czMzakhUMnVTejJCWUt2d3VNeU1H?= =?utf-8?B?L0ZoaE9jYzBPemw2Q3JYaFRyNnNqVGxrR3B5dE1nQTMvajlvTGRoYW5tOGUz?= =?utf-8?B?SDdmUU5KdGM0SlpYRG0wVThGTkxhQmdnbVFKS2hqZzVmL05nTU8vaFVNVVAy?= =?utf-8?B?YXBqeVZycWVzNlpiNS9OcGlzdDhGSGx1UGY3NHF4T2Z5RU56TmxobU85U3lJ?= =?utf-8?B?d0JBTHI3Rk85MXgybGxNcmIxa3ZYS0RWNXlaQW5jdm9NazZSOXJrZDdPZTMz?= =?utf-8?Q?qI8ByeqqriTl4k4y/QDDl6E=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: 05d07f11-dcb5-4d88-6cdc-08dc74aea2ac X-MS-Exchange-CrossTenant-originalarrivaltime: 15 May 2024 07:14:17.9150 (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: 3cheS968gWWZ1lkkxbNkZ+O1H5QnDNMyd5TiJCVfoJw6L73VPnhwRHE2vu7a2gt/kY5QK/VI1zwvAWxW3BgEKWeK2sPIBB36y9xhyvk5QuXcq5EAqFPSFE5Hjxm77c6Z 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: 1715757336811100011 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 | 38 ++++++++++++++++++++++++++++++++++++++ include/hw/pci/pci.h | 13 +++++++++++++ 2 files changed, 51 insertions(+) diff --git a/hw/pci/pci.c b/hw/pci/pci.c index 2b42b4e4cc..f90eb04fda 100644 --- a/hw/pci/pci.c +++ b/hw/pci/pci.c @@ -2747,6 +2747,44 @@ 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 (iommu_bus && 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:20 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=1715757548; cv=pass; d=zohomail.com; s=zohoarc; b=ZbtIr1GYIbn9NxtIXHrzAAyT/0BBMNvpTZHwrvZ0e0jmXgiP3vyjLYpjawuwc/igYGjvgVBBGJPCa8A5dAF12lCVI4I4YToZv+A8UjIAo217D09qnfr8B5KYW8c/q3rI1DyJi+sS2M7K34eBPdCDbiNy8JKeU/2l4rXKIKFoKOw= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1715757548; 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=/COy1tTJqJwtN9l2Q5BDMfmJb/FNV/tBPxp5I1KxCGs=; b=mVRnLOU7P+C3gl9MQcWdiQFkmNltcm+CI18jyyEcvRdpKMR/+GmPonuUpgNLXOmofZBoJs1rxsqZd07sojtw5uCqKcPZPGE0dLd5eo1ErtRWfCGEVPatVdqQoclovBXLWwLlkSS3Mog9kSm/OGEh59NzLRs4jAeQRW4WHRWBC78= 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 1715757548496765.1565993405292; Wed, 15 May 2024 00:19:08 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s78qp-0004fi-It; Wed, 15 May 2024 03:14: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 1s78qb-0004c7-QA for qemu-devel@nongnu.org; Wed, 15 May 2024 03:14:47 -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 1s78qM-0000oi-SC for qemu-devel@nongnu.org; Wed, 15 May 2024 03:14:45 -0400 Received: from mail-vi1eur04lp2050.outbound.protection.outlook.com (HELO outbound.mail.protection.outlook.com) ([104.47.14.50]) by smarthost3.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 May 2024 09:14:20 +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: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%5]) with mapi id 15.20.7544.056; Wed, 15 May 2024 07:14:18 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1715757270; x=1747293270; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=/COy1tTJqJwtN9l2Q5BDMfmJb/FNV/tBPxp5I1KxCGs=; b=IDCYf0ntONvWIz8IYPGitR+6cmNVPB9eE4tldIWtwkZAPWvDuwf0W4yk 5nSEpHQFvf6kD3yKwGBDxmm1qnRyPG4h8RuT2mzX4FJDDH3M6zJaTSi/m quAz8EIYCYbzlmQEFdkCO6/UQdyMT0/CAAsSdF0M5TSrfT11OgcMcUrad nIlmpEV7px28SY0gdhArmnboe0J8d56HZHTw5hJTrofXAo0E26FyPfOdt S2fxB7mb/7R5JittyIF+Qn9x1H045Z0/xdIq/aXgAdqd25ti+b23BjzNA uR07qzLv0DKbXndKyvVJ/Tu7RZ0Wb6TsXMLuCO68g0ZbAYXaNejN1QDQH Q==; X-IronPort-AV: E=Sophos;i="6.08,161,1712613600"; d="scan'208";a="12581805" X-MGA-submission: =?us-ascii?q?MDFbOrYb7kZTYiUhdphdjjx/oDzqyGW/1jih80?= =?us-ascii?q?Za89E3kW2DyC5UlAfN2VTsiruVbqnUWL7+7nM32vPirwhSBRSD3U9czZ?= =?us-ascii?q?860GYdNOejKpCYr4V46WwLy7nHwC3b5KutyQ8to0XfQvr3lcsg5Aq0RF?= =?us-ascii?q?wuBufMetrgyUE41AS2svhTQw=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GLaia+ZsniCqMcERfATif4H++PkQKDi0+LKQonLV0SfmZlWE4ahe/5bEF0PcZ1/dwZuEkJg8xCZ+haqibNU29Mg/Jct5XRhSGReapE4W9hlhiMVq+DwhESZi762DxvKi/HSx+1HlNY+eynk+qd84/j4XtRNVkimRQsqoyyURi0dxhtksAjbw/Dq3gQL4wVHieA29rYqArRWHaBcCJszwZQceOXkaOL7Pdum1f84kAsbHG8O+PAldGDwJCP8i7kqIxVdOCgkg+/cmoJyy01rMiPnzMssj0wyGMeACWjvmiMoyTrahrknHTFPk7aVgo5qx1rSb4pxU9n6fOQGuLBLFhg== 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=/COy1tTJqJwtN9l2Q5BDMfmJb/FNV/tBPxp5I1KxCGs=; b=EyUdyHSOmPYLsJsh0wotdLDBfLgRbcdV4ierlsNz+vNE3Yq2opP5M55A/uaS2QzHYsR6FuJ1u+TTPw2UpBy3IeMrvjyKy15NPoaCYYKZulUNJjk2UCYkRY9Q1Ys+uH7HYzW84YY38rmhWNGfNZImRec1gbIdg1OtKTa98YKrJXqu3yXiiJfbxPi/RdDulWTxfQzzOqM4u9sKq6jVDBom3P7YoQpfW498SmRp45aNupk1CxwD/Rp5iOVdkwcZPIbenqh/7NonQ9RBQdOZnzEyrA8MvEdV6NPRl6awNkOdQ1ma/E6alLg6FwZM9uW1FWlK/kj3iC+xwsWopsPF2naxiA== 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 17/25] intel_iommu: implement the get_address_space_pasid iommu operation Thread-Topic: [PATCH ats_vtd v2 17/25] intel_iommu: implement the get_address_space_pasid iommu operation Thread-Index: AQHappeAHabkT3s0Z0KfBt4GrSghlg== Date: Wed, 15 May 2024 07:14:18 +0000 Message-ID: <20240515071057.33990-18-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: 683fe7b9-4d92-49dc-95e8-08dc74aea2d1 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?dWJzanBmVC9mUjIrandQTW9keXdBK2k2aTN5TXRtei8ydmtYaHpWWUR1NUEz?= =?utf-8?B?V0pEb0tNWDFORU5hUUJVNWdVdkxwV2JSSllWYkZCc1Z0TTJTNHZIYnJSWkRF?= =?utf-8?B?Q1A1eGNzcm5zMS9taFRJWUN4Ly82V2VKTFV0NHg4QU9DbHBoWHZsclVreGpM?= =?utf-8?B?NUxDVllhclFOU2ZlMHNFalZxMTYvYnR3amlwd0ZTZ0k2RTU5ck9OeERjcERX?= =?utf-8?B?R3ZBcHpteXdFeUhmbWFCQVBLYyt5S2JXYzNqSnpRVElHQVlpZ1c3OWhGbUYz?= =?utf-8?B?YjZYZnZHaWxQdHlNek1lb1VQNU11YitYeERSMFMybW9OVU4rWHNDMVJQcFUw?= =?utf-8?B?MTJWL2U2T2hzemNnSEdOcUZRVk9VMVQ2aHY3OEtPeFBCaytyQitCWHdGbmdM?= =?utf-8?B?MDNuU3Z2ZE5MVlFlMEluV0FlbUk3Y2xMSWg2eXpHbHlXTjIxeEdMb2s3SmZr?= =?utf-8?B?Q1dkU3dPRVp0UGp3c1IrNHNpTGpaa1Z3TTNvSDF0alBaRENzbDRySGN2LzBy?= =?utf-8?B?TXJQa1RRQmp4N2x5OTZXbDRKc0V3V3pCTzlKV3kycG1KR2Mxd3dKT1BQRytK?= =?utf-8?B?Vzhxc3RZTjhXdHBOYktqb0FXY1B5Y2g4TlV6SzVZL0loSWJ6bUZJaTJkZ1Zr?= =?utf-8?B?V1hURGpiK3d5aUxHV2d4aytSejlXUVRXY3NpaE9NZk10dGNOOTJiQkJLUWN1?= =?utf-8?B?dmR6OForNTl5UXhTMkhpWWVuWGZwcFJtWFhmcGVKeldOKzIvQ1dIQk9JdzZL?= =?utf-8?B?MlZab2dkU3d1VTAyVDFCdXhYeTBWVTNqbHEwM3h2ZkFMeEhTcEk1T2RJdjdZ?= =?utf-8?B?V3hxSFE3djJhb1R6L3pCSTZPZ2VxdElIT3RSRE1BTFA5VTFzRnVoY1grOGYw?= =?utf-8?B?cUsvL0FNeSswSkg1MnNIU1J1ckJhTkxyU1hxUWtuU2FTWGhDZzgwNlQvZnZ3?= =?utf-8?B?R3h0RityZURpeWF4MUNiKzFQZVpDdzZpdEg3VW1nODVZRVduZmJVMy9nalRz?= =?utf-8?B?S3Y3WjI3MzdScUlzZVZqNlVRcFJhYjRQQUNTL2hFZEtBNjAyNTdLQ1hzVm41?= =?utf-8?B?MEZVYllheldXRmIvZ1FrV3E3Rm9SeUVTNU5HQlF3MWRnUTVBOVVxLzEyYWZF?= =?utf-8?B?L3RTV2Q3bmEza3BIVVRCQUZEb2x6Y1QrTktqV0tYNGc2cXpoSjhmNTkyZkl3?= =?utf-8?B?QmNtZCtlSzBMOVo0QU5MSGgwSXVNUlU5THh1Y1ppU0dUR1BSYU5KOWRFZnVJ?= =?utf-8?B?a1EwNXNjaWpYOUNnWWk4cFR4Nkl2M0x2YTJIWTNSZjZqeDY3UU9MNWVXZXZw?= =?utf-8?B?ajBvdGFqakV4Qm1XQkhySnQ2TWFYa1lVRnk5em1ZbG5BTm1IeC9KNzM4N3hv?= =?utf-8?B?cWNERURoTUFsd2pBd3hDQzY3QWkweUFNalpOSldhYjl2U0NERkRaN01ENTVQ?= =?utf-8?B?UFNmaWtsNGt0dlRQRW80SVppVFNYdFQrSFFMNGZra2dKQWtyT1dMbjRuZVZM?= =?utf-8?B?SjJyYWZjVWlMMk83WDNDK2JCMjFBSktqVHR5K21BNVl1czV3dS9xTytITFBl?= =?utf-8?B?NkJPQVFmb2ZBZFQ5NnEwNU5kTExXakRKTHlGM21xT1RuTXI5VHRGSFErVE9B?= =?utf-8?B?OU80eldkeFF5TisyQ3crUlpIZVhzdVRzSlEvNXNPcTFBd2ZHZ1hVOFdBeGkv?= =?utf-8?B?d3F4MEpOWC9FY0NKeG0va2RBNGlwVjd2QlBtRHd2RjluMTBGQmJObTN2emFJ?= =?utf-8?B?c2llUjdkWFgxdXYzQVpnZXRqQzdMREd0WXpuKzRETlB4dDY1dEtCaFlrVFBw?= =?utf-8?B?ZHhKYXA3bVRwVXg3OGRoQT09?= 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?dENSVWY1Vkd5Ym5wVHZSM1ZqVGZoMFJoMHArUzUrQ2d5L0pSSFQ3T1I5TnE3?= =?utf-8?B?RE9UdzdJekp2N3hqbFJNWDQ5ZGNEbGpGRUhlQUtGbFp1WDdvZ3pkWTFrSEhT?= =?utf-8?B?OWNmYlhtdm0vRWFSODVJVU44NThpaVFaSldpSkkyV0ZBcThCNGNlMVN2eVk1?= =?utf-8?B?SktYYnRzUHE2WkRDS2lRVFFFc0tzRXpGc1hyMHNwWXFOSHdqbzhUVGltM2s5?= =?utf-8?B?cEFYT051QWt2Um5mWENSVGdRQVlmanVSdStMUlhIUjQ4aEwzaG42alZqKzV1?= =?utf-8?B?R3NBMmIvdFQyY1FPanFQUU1wbEczaXFGOGlLb0xmQ0FvU0tDTWxEcEcrbmNB?= =?utf-8?B?cWdFMkhjc0JBVWx2WlNPeU12NmtHTGl3VVJTT0J6VUhEeEVMaytJVGRSNFdY?= =?utf-8?B?bWZtcmxMVUtmZkhQNDl3WDZ2TmlhVnBPZm1rZVRKNWFYMDR6and4cmdtVzly?= =?utf-8?B?ZXpNWFRudHRJTHJyTDdSMk15TFlLd3ZFdmoybHdpZ2dMR3E1eHpxVUZ3M1F5?= =?utf-8?B?UzJQNGd2SFNrNU5xZ1RWN2dSUDRKc1hNak05VUlKRnJGSGRnWHBWRjJpa2VR?= =?utf-8?B?YU5WaTErYW9HWEdwSnF2SHlsM2svNVNIT1VVaURmekIwYnJ1WVFyRFNPZzBM?= =?utf-8?B?WVlkbEU3YlNHc2RqZXVwM1ZNQkxsTnhoZ3hRMUptS284aTRiWjFOZ1Q1cnNt?= =?utf-8?B?MnM3NGJWTGZsLzBCeGlybnBRYWRtR3NXYlZ0NkRQY0Y3WmE0Z3UxRVRKK3lU?= =?utf-8?B?WkM4L2RuK3dqQ0VnbUNqaU5ETXR6YS9veDFzOE5jWC9jV25GQXhSUzlFc01u?= =?utf-8?B?UDJnNEhNYmRBd1lwZ09hKzVvTVdKNXl0ZHR2UC9OQmpxbU9Yc25OSnJ3RzI1?= =?utf-8?B?VUNCWnV0aUNPY0toTVVlK09KQUJxR1pnWkF2TUVFbEk3Y2k1OUUrcjNra1hQ?= =?utf-8?B?SXFKV0UvVUZVcytBdEh5T3I1MmNOMmpsbzNPS0lCNjkzQzk5dlhSTWVLNHgx?= =?utf-8?B?OXlBQTFuZHJhdzZhZmg5T0MwbmpZeWg4RCtNaHYweFV3RU9GWDRDd1RwL3V3?= =?utf-8?B?VHIrU2kzaEhRdVRHRW9pZVJWd29GZWViSi9OQ0cyTlN0U0dpMlgwUmpOK2Z6?= =?utf-8?B?UUFRM3R3WitxamwvYS8vRTZyN2lhcWhXY1VwSVhKY2NqaU0yZW5JTnJVRzdu?= =?utf-8?B?cVlVRG1INFp0N2NSR1JoYWNiS2JDNGU2T2NFZzdZdHZVRVZtc3IzTDZ0N2Z6?= =?utf-8?B?aTNNZzJXcFFzRWxoTk1kaDVxQXVQdE5raUUvbW5OZVdIM1A3NFo4VHp2M1V5?= =?utf-8?B?WTFHMzY0S1lIN2V3blBNc0RQSVM2SDR5L2RGMEtUZVdhMDdTM1dUQ1JlNjZI?= =?utf-8?B?cmJMejZxaExaS0JXb0NkbERqSnlLQmdZT0Z1elplQWlPcnR1T1R3NzcwSGQ0?= =?utf-8?B?QWV6ZnA5Uk41QWJRdVZRaG5tamJDOXlWc3M3WTN2THBZOHQyZ000WVh1aE9L?= =?utf-8?B?b3hnZEdZTXNGL3IxdGJmb0RVMGp4Y0dHd2FlWkl3amdRdVZzNDZWNVJNNFVn?= =?utf-8?B?LzFYQjdibUhsVE1BS3hscjF1Slo4NGx6WnBubC9RS2FSZE1tWkVUc1EzVFR3?= =?utf-8?B?RlNMZ1lXRkhlSVRJdFFJVVg4T3pyWUZpaGpkR0hva25PeFBmLzhvWWhyaXFh?= =?utf-8?B?NnZHS2QvbDltblRKYlRVNlpuVnliWjVWYzE5Rm1jNlVwalhzcUFFNTlRYWdj?= =?utf-8?B?bXpaQ2ZWeWJyUHVRdlE4ODR5Y2NLMGFkOGRuR2V2aWRmaWFhR05EY2I0dUJk?= =?utf-8?B?NGFWblBEeXdnT2NwOUNoUE1Dd0lXekFWVTkxSEFYazkvWnNmdis2ZTFVdE5Y?= =?utf-8?B?ZHpDYXl0aDNzM3VvZGtHS2hFMHJQR1J2dzl5K2ZjZ3JONEN1cmpxNzlXMjJw?= =?utf-8?B?Q2hFUGgrYy9RcERoK0VHbkgzLy81V3dSWW0zdm5oZHByODljNGZVN0duRzg0?= =?utf-8?B?c25iMDNRei9Gdmp2YkV5Nld3eUczc3BNZnBBZTEyMlZPRGNPbVZvQzRlZEU4?= =?utf-8?B?MGF5UnJEVVRRZjc4NzIyNjBZTkM4LzQ4aDUxNk5GVTBYci9lMk9IckYvMHNa?= =?utf-8?B?dUxlWnlzVnZpY0VFOEUzb1JzUHVINExKQ2ZyVElERG4zUkE2YTFWVytBWTdL?= =?utf-8?Q?ey4ttblpBJeDKeDcqa6OZ/I=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: 683fe7b9-4d92-49dc-95e8-08dc74aea2d1 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 May 2024 07:14:18.1240 (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: iOHv4Dj2Sc0dsQSr9MNtFY1dwhn6bUe6vyUXTNDgh4a/hels3x2nQj4LxsHHxYbEyvXRVzuAZxP6dgXsTwCuo7VW8qh/nFdAgcYnmZirkUxp3/5IuwpVecHWSL02U7ft 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: 1715757550374100007 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 fd4710ba28..e48b169cda 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -5429,7 +5429,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 @@ -5980,19 +5980,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:20 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=1715757502; cv=pass; d=zohomail.com; s=zohoarc; b=WXPr2eFyMpV2mmnlky+BSeJNz4qnMZUhL8p5F+VfzqCQB3asQwd3CnSRVLt2ax6i6mT1S2KcDCzs8whTrUZjODOSK38zOwA7Ak3eEBGnHwp/NG7M2KiIql8jm1QK3/wg8WWXyNRS5zi6198PuVZoyj36yhfumJ1U8pGPE3rDPE0= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1715757502; 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=wfT87Hm9vtsWcq1mrFUqY+kwxQjnIxyJ2Nm4l9OdZrY=; b=Ln/JyB6gXclBYSyo6L1arULEwviYe0JiUvb65OQcf746gb/l0dUQgMAIgLs1Oy9koWNeBLjPiYLyXsF4H5ClajW+Y4+gf43Eg3SKyDQ1drZA1Xlns3B/lcghWfD7SdVj34RgwbgEEYP8EJf8Yzw5kAZVW8VMxi/EUy5a+kvLmMM= 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 1715757502669379.6174183065558; Wed, 15 May 2024 00:18:22 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s78ql-0004dl-HB; Wed, 15 May 2024 03:14:55 -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 1s78qd-0004cF-67 for qemu-devel@nongnu.org; Wed, 15 May 2024 03:14:47 -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 1s78qM-0000oW-UP for qemu-devel@nongnu.org; Wed, 15 May 2024 03:14:46 -0400 Received: from mail-vi1eur04lp2050.outbound.protection.outlook.com (HELO outbound.mail.protection.outlook.com) ([104.47.14.50]) by smarthost3.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 May 2024 09:14:20 +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: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%5]) with mapi id 15.20.7544.056; Wed, 15 May 2024 07:14:18 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1715757271; x=1747293271; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=wfT87Hm9vtsWcq1mrFUqY+kwxQjnIxyJ2Nm4l9OdZrY=; b=PSBl5WzT2fBTFmuivdXtkHGhW8FHbQiRTFCVQDbCMb7l5euOsZBFvywH lInAqblsoxlIGlCUzFaG2RkS67IQtvPocvvhT6GhPikuTWfTn/x5k7YfZ 0p0aTFhYCyWiYDqXo67VEEqSIdeAIMZTWphZ3lQ4wwTEna+PnE5fSB+db 4baqViHeDx5bE6Xa2zTkjIzJrr23Nc7aPXEoBWejSJMkr+M0GPqWtIuk8 fpuTMjDYKe8Teo7vXXg+VkGe/rnQJgcAaVB1jFFbNKnL66xBKE8ynC5iz odyh/uYf1ciN0TQubtA1ufI05VD4LtY8na1Ooe5AnbpvigHK8ZYx2E5wh A==; X-IronPort-AV: E=Sophos;i="6.08,161,1712613600"; d="scan'208";a="12581806" X-MGA-submission: =?us-ascii?q?MDFxmMsDuGfN1DEXDP745mYfXRJTnO+YtbpkBI?= =?us-ascii?q?5Dc/tCVXC6OTp6kJZ7qpsqHaDNFhCC2wAttAYlerD3J0gnijTR31/r0c?= =?us-ascii?q?OKJvWrlwKB9BmYlzTT7xUkxbAXU8HsmLsBgCEqqsS/OtHo8kk/QbxwwS?= =?us-ascii?q?s7PCRWphhwykXKQSMgUylj/w=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=e1WEdYKSYd4k7HkV5iFjyCkF5mh9OdkEExYpp6LAF33YoRi0ayvLnp5cUKTSZTQ4TYc/AloA2dN3QWxFciLhFzBKyi9tJkadO8CnOO7FRw0WkYUzFVbZs6ccou+RSXYLpdJrzMW2VKsWM4M1CywrIgD0fX5VL99AjpKBmuIBv65RjY9qA62nwN5RyYp4XG4S0GmDQxyT09lrLpxy7z6WCWKg6vs4Unea2WUH9nWTJ+Ldbx7wUPwti3gArSDdVgQzZdpXY5IKOKV5Fo863lrpdtTic/XdkyFDuYozWMLMTjkZL+yYVE3Vz0a9v0a2Ow3MihkpSEUnwXlmMsSczYQ/LA== 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=wfT87Hm9vtsWcq1mrFUqY+kwxQjnIxyJ2Nm4l9OdZrY=; b=QnnC4fkckX7DzbvHSfZGyjn1EPD3VBO1Hsm/VrjohE6S2NUTAzV3uLSyIclOayCBB3zziNLpcdx6KxnjpGHUVUiqW/E3Caixtqt9m0vhzL/Ic9VNw++k2yhds6GjwnyvyVFdEvYusVmbXHGsmXF3aPVYudisvaQNydGWXxOFWjTJywUIXtG8zbdV949XuwamnnjrCCHjcceo1LTbMeO5LtjTgc1Xwe62UhnCYhiBqhBQiJcK39gOe83a0VvwsagqDyWKZZXl5gH27iPpB+OSkCEy/5cK3yucWjTQxeyp6NtXgbUm41tdfxfsLTS+i1GEM6IH0J0fxH05FC3nUeRPpA== 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 18/25] intel_iommu: implement the get_memory_region_pasid iommu operation Thread-Topic: [PATCH ats_vtd v2 18/25] intel_iommu: implement the get_memory_region_pasid iommu operation Thread-Index: AQHappeA+wCa4WX+yUqp2IC7H1FoVg== Date: Wed, 15 May 2024 07:14:18 +0000 Message-ID: <20240515071057.33990-19-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: 00ef1aac-0b2a-41d2-8d82-08dc74aea2ef 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?alZKM3ZJdzlLbVZJMStjL1FFdWJMRUgwczNDd2J4ODZrT2JscXRhRlJDREJq?= =?utf-8?B?YnN6a0pDZ3R5LzRWbHZVSmpjTmNZQ1NmOFI1ZWo3cXJ3Mnp4N1kvc3lWZ3V5?= =?utf-8?B?N1paaTZzWlZoR0RWdVR3dGNDVTY4NXJRQlpkUkxvWnZJWG54WHN4ZzJ2N3ln?= =?utf-8?B?YUowWXZGcThXSTJxa1c2M09BeWZQQ2ZWN0NHendJaGNoWWZvbGF4L1dic1ZZ?= =?utf-8?B?aTgxcHJYRkJyUWEwSU1UaUVWZy9kenYrWmlhTkkvWmVMaU9sZldjOUV6K3VY?= =?utf-8?B?S09mRjJuUHZ3Zmg5NFJjZ29vSVlNVEY1T0h1bmlYbm94N2g3VTltNHJPM2RG?= =?utf-8?B?V1VpRFUvOWJYT3prYWxYODN5NUxENys1bWJmY3dXdmNIajBaSjI1bkI3UDh6?= =?utf-8?B?L25yNVQxM2FtUk4rUVNwVXFWcEJFaFFQL2FZMG8yZHlzcFFKeTBRWDlKdHhL?= =?utf-8?B?S3FTQlk3Y2QzVnNBcnIrdWlFNTRlY3RmM3JtZXltcTBxQzdmblZ0bFExQVMw?= =?utf-8?B?dFdyWDNoRlovTFBZbEFOaUZKVHlzK1JRTEM0YzNMOEt2VVRQdEhvV3lWZTVz?= =?utf-8?B?a1lLM1FVMWNiMWZCTldyOFNMRWZSZFBGVXhoMCtMZzdicnM0ZHRENkkvSjZh?= =?utf-8?B?ZnIrSElsdis5empaYW9BY3d6ZTFRem5nOHdyRkFWY1dicVphU2ZSQk9ZK2py?= =?utf-8?B?bmZrOXI3SU5OaGgrT3d6eW1NRDd2WmZmSjJwbnFRZjUwbkVyNWtXZUIvaHVO?= =?utf-8?B?THYybzNVNW4vSTVqUWJhYXo1OVJlb3pDU0dyT004VVdmVFZCK3c3MnpySFo5?= =?utf-8?B?WnZUbWh6b29meDlCSUIxNTYvRVdkRHlqdnByRmZiME5ReWd3RmNYbzFTRDQz?= =?utf-8?B?ZGozS3djOFkyZkxMa3lTT3ZtYW1QcUlqckgzcnlIeFRUbndheW94RFAvcHlw?= =?utf-8?B?RG5rS2sybjRuQTJpUmtseGJ3a3NMS2xERUNBN3doU29LOHkrQVUrUXdzMk1X?= =?utf-8?B?b0ZGVmdjNm10SUlSMWwreTdFWDlySEhBbjdGMmxsSUFFcTE5WCtHdTlMWUQ2?= =?utf-8?B?TTR6NTdEZThsckltRUdnS2dzeENSYTRETDZZZVdwbll6QWNRZmRGWmtxVUpZ?= =?utf-8?B?SlRSb2xhUk1POHQ5MWRzQ0tnMnR0RDY2WE5JZWxwSGhkeGkyYWxlNWNBKzJz?= =?utf-8?B?Ti9lV2N2UjRnTFdWWXRTVDFYNXB5M1hNODltK0FIb2toYmlRZ096eHR5WkU1?= =?utf-8?B?M3VhdU9xanJqaVVPKzVsSTBDSFE1ZEN5aHNxbkora0g5c2FQMUREclV6ZC9I?= =?utf-8?B?N280R0twa1FWUTRQTGwyZ0lKWW9tUzFDaDlkODRQOVFiWmhrTnI1TktCVWt5?= =?utf-8?B?cnc4cTNCay9xcDdQcW13VWJxU2QyYjRWd01QSmpLekFLbjZzNjlqTU51QWxo?= =?utf-8?B?NHhmekZQcXNjblBNQnpSZVQ1YmhhcDhzRktrWEhhZ3F6eWdxUHA3Wm9Bbm03?= =?utf-8?B?Nktucy9EelNMRFNTcmJVajNMb2cvZmtJWENHY3NxMzZJZVFVb1FVK2VDRDhq?= =?utf-8?B?eUlJMHBBWVgvZjRsODRJNXhtaVR5ZDhzSjVRSnFwZHdncCtvWDBINk45VHp1?= =?utf-8?B?OFhNRW0xdGpWVkZZMnJsNks5SWp1U25DYVYycjNJTVRxM2dUelozZWQ0TzVn?= =?utf-8?B?c0M2YjVxbWhiZkVaY2RpcWFnTFN3bUZueTE1VW00bjk4ZkMyOU9BSjVOM3o4?= =?utf-8?B?Mkl4a2V0UVRVS3g4SHRXQXhWdmVNdWNuejNXemVuZVlXQkdJbkt1U1p0TVdr?= =?utf-8?B?dk1USVR3VDBzY2ZjT0dadz09?= 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?T0RoSUdIek5EdGk5K1FuUGFBK2ExMHNYNVBGSHBoWUhSbzRsclVtL1YwT0NE?= =?utf-8?B?TEtpalNnbm11UW5aU1ZlQ1RPSkxuMDk1ZWFETHVlTmhBSm5lVzdQVW1LaXB6?= =?utf-8?B?WkpHQ1d5QkhRK2ZKVFZmaklhampXejdHbXl5bWpBQXRreDE1L3RoRENJR1Ft?= =?utf-8?B?SXNzdG5RSjBQOEtPUVEyWm4vN01YL0hzanhzYzVCbnZSYm9zMFpHM0pmSUFz?= =?utf-8?B?UXZKYWlIN0tLN0Fpc2FMTldLOWlsMFhzTEsxTzk1ajJkVDZLUnRFVWdpZksw?= =?utf-8?B?djdPMG1KYldkYmgvZVEwKysrL1NybDVhSWIreFc0Nk5HcnlZOXBINkVsaXB4?= =?utf-8?B?SzlqSmRsZ2JQYzlOU3lUaGRkWnJHQVZMU2Qrb0lxOUxrZ1JoNnBQNFVncEZJ?= =?utf-8?B?dmFoMkZUblBkdmFOSlhadERPSXBTV2paWVNPMGphUnUyRE9kdkF6WVJVMldG?= =?utf-8?B?RmFqMnJueURwcGFXNnk5SzJKTjdBWTR3aE9OM2FuZmpBODgrRWpSY1RlMk5z?= =?utf-8?B?dHZTTEk3OWlmZEY0NmJhUFZMSlZPUmZGcTFoWHplQkROaHovQWxvLzl1MHJT?= =?utf-8?B?dElFVys5RVBwczBZTFFVVkFWTEo4V3dVdCt0L3I5VmdHenRGVU5qYjJNWW5y?= =?utf-8?B?UCtLVmlrL1lEQ3dGL3REZmhna1p3WjAzdERQSkRORzBmamlyODZBS3gzcU91?= =?utf-8?B?U3VGMWVuaXJ1dkRKZzBrMDNXYW9OZ2R3ekM0Y1F2MzNqYjM5Z0Y1dzczZzE1?= =?utf-8?B?cCtTaWZBL3lIM2VqOVBpVFhSSTkySGxTaml0bXdLamNlTHlrUkEzZjZqa3Jk?= =?utf-8?B?RXZhTERuay9CL1NEaXpkb2d0MmpuZXl0WjVQQlowMzhIWVBJN1ZObnRERkJN?= =?utf-8?B?aVppcHFlQXBjMkJDbWJrc1pzcWw0cnBlRkwwQ1hPNTNyWkxaUDJvVS94YVhp?= =?utf-8?B?TUFycEFkaVVOUFFUWW1YK1FuaGpobEJYMkJnZG9mOXdYbHZmUXlvOHlBREkx?= =?utf-8?B?dGNQdUZuS1RZbXVKTEhleU9xMlV1WnMvRTM0NG1nTzU5NEMwcG8rcXIxb1Rk?= =?utf-8?B?TmcrajB3amI2USszc0Nqa0s4cjMwdGhRck5ZQnV4ZTZjOXQrN1NielQ3M1RX?= =?utf-8?B?RVpuVlAzSGJKMXhEclpmRDJFS0NvcXJrVFBZbTd6dE1FK2hnU1VTcmVWNjQx?= =?utf-8?B?c3E0TVdxWG1uVTh4VXpOTHBsQTUwbkhqMGhpOGYzWTJvK1NxWFd4Rmcvb2RV?= =?utf-8?B?Z0REUWtJeHFlTEwyVlZJaVRMVXpvajJobWhjdmhuaUp5RTB3aldCclBodFJT?= =?utf-8?B?Z2Q3aWhhTmpGenZ5Y1ZGL2w2ai92aXJHZ3pDNWV3Q1dZa01YaTE4OUp3VkVq?= =?utf-8?B?Rm5KL21ZYUpRN0Rkd0JnV3pHem1zK3h1OUFCOTV6cXRNdE84QkZTbWQzN0lI?= =?utf-8?B?ZFlQTXIxRmZIeXBCMUVvMlMvclJuQ09QYTA0ZytGUDh2QXBuYm1waThCR0o0?= =?utf-8?B?cGxQU0creW51WFNraC8xbDhIY3BuRm1NRVY2MDQ3RDN4eXdlbnBrZUV3Z3dx?= =?utf-8?B?VnluMzE5bWNiUlBZOHJ0QndVZUFIenFTdXlWYjhPYjJ0WU9ZQy84K0N6eE51?= =?utf-8?B?alF0d2FFNXk3dmhvSjRVYjd2U3pTN0pKc256dmc5RTNRVlIvSFlVVkw0Q3d2?= =?utf-8?B?d29MTnFCdG5zK01JWEVCblVFWHk0VitWRUxHQnhJSFVLQkRKZWJnaE1GQUMy?= =?utf-8?B?RTFxK2ZWelRtZU0vczF1aE9kdFRxYzBCNDYxQlI0R0s2dEpLWW1sOWZPcEhl?= =?utf-8?B?YTdJUEthZDBERzZyVGxJS1VWUVMwd29wNFJJN1h0T0hGNCtQQlVIeHhvcjNY?= =?utf-8?B?bmNjcStTVjk2RDBLa0IrYVBmNkxrT3hJTzhaV204bkVFS0dVUExoRjFWQUxZ?= =?utf-8?B?SExVMGdoTU9FTnNKTjRXMnMxczhBbVcvMmcwU205anR5NjVaZUtOT2hZbTlU?= =?utf-8?B?VHVjYXpVL05XcmpNZ3BFc1V0aHh6WXpjQ044WXJBMzVmZVVSbVdCZk1xNm9Q?= =?utf-8?B?UzlQbldoTGlrZWd1MzcxcFh4NDBOcy9VdzEyWEw5Qi9LNEZaZG5rL1ZMUDl4?= =?utf-8?B?cGZCeldWbE4vSm05dW5kTzNqdWRQL0JNYWxxSHdiSVBCTUpNMGpYbUo4NDVz?= =?utf-8?Q?u6KedojG2HIaoGwfnwVGAh4=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <875B6603ACF6DF4FA2517CB43EC0ACC8@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: 00ef1aac-0b2a-41d2-8d82-08dc74aea2ef X-MS-Exchange-CrossTenant-originalarrivaltime: 15 May 2024 07:14:18.3760 (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: 0pmXlBrbswZ6tnuK56rOm57AXC2qBhpUCSU66R8snQ0+ntGxih6gSU/8IhvTaH1cYMAcwFweiS8ya7ZDWOxT1Zh/xM1MpdY0YY75x2OGaDOOROb3crZ6iTULUY5b/Itw 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: 1715757504397100007 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 e48b169cda..53f17d66c0 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -5997,9 +5997,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:20 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=1715757412; cv=pass; d=zohomail.com; s=zohoarc; b=YIvQUgPOouTMPPGmddKC7beP3lPecI8mSAiW2hgR9K+wJErGO1ptqJqowb8wMRbl/0w7UNqPFLTBNkmueTXl8DeYT+wtY2DQyeYr9a+u9++AzDosxt9HK1blzRucfe29n337dN9T77vRAoNIdz5URp0nEAihKU6urpj2D59gpDM= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1715757412; 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=dWr4H79CgiiRUd9/Jx/CWh2pAcI+XqlvGTj2UdsuRB0=; b=Af5mK4LcuvejSKRYkLjvtSDQ1oPDjVJGgWJDoRL09EHAleynZVGANUuwiYhfqbzAjruB0FyMMVeApPnE7x7+wFjJX+IRphNcP9AyZe5Pgg4ICw8OLhyT120bewldIPgstG/bBTFnYMHoqCF6BtAsjvf/P5EGHPNzh8obTqEvw/s= 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 171575741283370.34191347480657; Wed, 15 May 2024 00:16:52 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s78rC-00051k-0I; Wed, 15 May 2024 03:15:22 -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 1s78qf-0004cx-5b for qemu-devel@nongnu.org; Wed, 15 May 2024 03:14:50 -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 1s78qc-0000oi-7j for qemu-devel@nongnu.org; Wed, 15 May 2024 03:14:48 -0400 Received: from mail-vi1eur04lp2050.outbound.protection.outlook.com (HELO outbound.mail.protection.outlook.com) ([104.47.14.50]) by smarthost3.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 May 2024 09:14:20 +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: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%5]) with mapi id 15.20.7544.056; Wed, 15 May 2024 07:14:18 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1715757286; x=1747293286; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=dWr4H79CgiiRUd9/Jx/CWh2pAcI+XqlvGTj2UdsuRB0=; b=BZ71dmMsQvctiKwvmPZeL1c/CDa97JfIzmAhuoFQSJ8se44+5LZE6+/T Fisa3lut7PhdrhPvxyY9UGkgE5k8hYuQvLtEy/mBInDNWsWbAbcw3c5Oc WvmNs/a2EaMt+y6qUATSvrd6V7ImdNmdgn/AJJI1sGialV0KlQnscrHe4 RRGo/k1Qn+6bxOJfGZkHmbf4ymhC7MeTNpEv3/9uJBwfEl/oIpU5utksW OyVH2JSlndwsOKOxncGaPho/CHTVju2RelMgT4OnukDCHkGFbWcSEvk0M fN4763LaQzfoN/+RYj42SIJix6is4tRiI4uKnyKQekSbEpoT4Sezd1otv w==; X-IronPort-AV: E=Sophos;i="6.08,161,1712613600"; d="scan'208";a="12581807" X-MGA-submission: =?us-ascii?q?MDGn6mwBC2ycBNdvkY/TwQHw0wt7Rakep+UVer?= =?us-ascii?q?riQgVJbYztiV0vWeFTg/NUeOLgQ4fuY+PHxz8R66PxJf11QMzPPtlkD3?= =?us-ascii?q?cNfhAMHic9IoU7QXIzwPvsF8HymVFVQ+tvaQ5mdpqPo+gk1UHqabDsga?= =?us-ascii?q?8pMWoP2hFUiNKLubWh7Ii03w=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=e+gEuWTyiQueU5lKtnm9IUVdZEt/AybpgWcCrEXgkvwvDAYQ/Ov3XT414CWv4QJlf8mslhJ9CfkWLF00hvW02VS9VglWJvwX4+rzWrmG6VnpylzKgtUVyDSHoRDJ08oOI9o2AVWlRSgo8ixL1EsJdvWRdR79YkC6gMPN2w6S7QkvdJstbWlLFl+EpA/EPSkGTdgv1rSzyKiDBxTtStK4NVwal/4zNVdtIAjosY7C6nB/OZjrYNLiCvSpnBRNusGfVSR/ic7Jo2Ata2bqGS8Yw9inb2CKZXYqWj59wiKYLFsfnWxDVPVHCmh8bJGAvnYDCKjU1LcGpNd6zSCDiskhCQ== 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=dWr4H79CgiiRUd9/Jx/CWh2pAcI+XqlvGTj2UdsuRB0=; b=IaqxDmG7lbqUTRQexrDgBQh4FUXHKUSZzxvECZY67H0T9cnVbNB7+JXIWsUG9jxGrUjjffhZv3ALNkUmKY/K1j4YN1QQAlXh5DMKgWIsf9J7uWCRDi1A02RAgt6o/AFvf1yexjTsbl6RSmcRnbw3II6JPSjEcwfJtY+Sfozr04dlhA4+PaLPS/4arPGyrqmgmNTjrIGZ0Hn2Bl8sVSi/c2++izMuc4JkkLGePi5KZl5NmeCqQ9d9MJkZdNJ7nUlvBPsN8qvXYpOm7ANvc08C1E4X/YiFLwD2okZlthKi4M03HsMIvGb/xsRFiYgCyhnT3qsK0IMliKI4DvbLKZrN+g== 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 19/25] memory: Allow to store the PASID in IOMMUTLBEntry Thread-Topic: [PATCH ats_vtd v2 19/25] memory: Allow to store the PASID in IOMMUTLBEntry Thread-Index: AQHappeA+UYfPo/Y9EKbS/loYd4PWg== Date: Wed, 15 May 2024 07:14:18 +0000 Message-ID: <20240515071057.33990-20-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: 228aee1e-6642-4cd7-55a9-08dc74aea311 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?MHZvYy9YbU5MQWVNWmhjY3R2VlRIV2F1cndYOUF5a2k0OVFoUCttUlQxT0Nq?= =?utf-8?B?ZTlSWWFtTVZsYXZrcStJVVFGK3VMRXJtWWhrNG16QzBNQzFHQktrYjFlL3lD?= =?utf-8?B?a2hoM09xWjNEV0tHQXVTY3ZuVlBKS3lXY25ienZVaFUxRTFCZHE2ZjFiY0N3?= =?utf-8?B?dEtEOGRSbnJiTmRPVTZVb0o4eUpjb3NzY04yanM1SnNZZG9tdnFxV05NeFBw?= =?utf-8?B?bkdvWGhyMWJaQzVkY2VDU1d0cFBFV083eUxUQ3IyTWxuejBIYjFMUldXTm9K?= =?utf-8?B?TXBGSnowOFVVUnRQcE1jZEZrWGVzVDRXWTQwb0ZTWXozencyZFJya2NsMHpB?= =?utf-8?B?Y0lFQ2RLcXNoU2RMU0pSOXE2V3pNMUhjRDNkODJYemVhaU1TSkxFUXU5WVRW?= =?utf-8?B?TkFnQXZOVTRuVGN1RHE1RksyMFQxbVVRTHpvaVp6aDNGK0w1K2JjZzV1RnpJ?= =?utf-8?B?TG5IOERKdUZFZEJyeTBpbE52T3V0K241OUVXb1VkVTV1RDFzc3Q1Z1hlMm9S?= =?utf-8?B?U0NjLytVNzkrKzc5UWUwM3Zyd2g5UnhyRk5Lbk5tUmU4WHloeTd3S0h4VHBU?= =?utf-8?B?bVJweGl1MithcTdNTjJMdW9vVStnVXRsRzVvYmk0Rnk5TEZvcE1XemNRalkv?= =?utf-8?B?dVlPY2FFWGxxd3BzNVhGSHR1WFB4Y0VmMjNDSmlYKzBSS2dKUXNUcjBzMEdE?= =?utf-8?B?bGhDQmp0SWxtdjVnczlOdUZNSDYzL01CNHVOWG5WV1dqUE04UVdQUzBwUjdY?= =?utf-8?B?d1RkNjJtNUxjU2xLK3Nqd3JxcGwvdmxqbVNCbVRmNWhMQk9vdnA4cnNYNm01?= =?utf-8?B?WWxYUkNhU1dLN2VlM3JKcVc0NU45enlWRm12SnpOVHdyTGRGUXRsd0xKSDZu?= =?utf-8?B?RlI2WUh2d0l3emtUSEhlSzEwNEUwdFl0SlVwM0E1VkpFaHFaUklDN1Bvd0V0?= =?utf-8?B?QktxZGorY3IrY3lISzVMWlFIUG4wM0xxelFwSDYvZmxncEJGZmowYll5UmQ3?= =?utf-8?B?dlpmQllESE9MLzN5aklDalhuYmw3SEhvb0puYVNlRFF1dldra1M2WEE0RFcw?= =?utf-8?B?YXZuekd4UTN2YmM0S0JiL3NNT1l6UUpkcStDbENnbVhuSnhxQU1TaS9xSFFo?= =?utf-8?B?UzhkUHlyMmlna0U1RXcyNHNLUXdETlRjN0dHSEtQamFqaWZMaCtZTjIrQ0Ja?= =?utf-8?B?OGtmMHJKTFB5T0VqREk3VHpSdThtaWovNXVEQWE4SzZBRmRSNjB0dFlwb1B6?= =?utf-8?B?SW9kQUo4UHlNT3dmcEtUb2hOVjlOYlF0VnVuaFdSS1BncHVSR2VBRzNGVXlj?= =?utf-8?B?dU91L2JqNzdvUGFTYkh6MlArSFJ4ZXk2SFB2OS9ZdTh4ektwU3dpVHk2YzZh?= =?utf-8?B?Y1lNYVp4b2xmMkFON0hpY0RyT0hRM2VPd0dqdzNKZ0F5THJmYTlTRkUxQXRP?= =?utf-8?B?YmMwZWNUSURPQW85OUMxUmtaV1g4WTFIVUJoWnhBRXptTmdlZFpzV0VmRHhj?= =?utf-8?B?L0JsaFNIUWdlZTM1UUcxNkEwV1Y3UUNVRjl1MXNyL3cxSk90TUdBTXhZdzQw?= =?utf-8?B?OXArWnNWMU5SdFhsWERwbTNoamhzbGNJMzVqQlBxdmF2cjd5MWhHai9oenZK?= =?utf-8?B?MkpHWlBHR1U3enVDeld3NHV5b0R6aGtGai90eENqVEw1bkFETXBxSXlGUzc1?= =?utf-8?B?Y0I2K0tDc0l5YlZpajNFRXV5NlFzK1g3NUtmM0NjbmVFSmZmdWtuM05XSWEw?= =?utf-8?B?N3pOQmhHbW02NUt6N2dWaFowM0pmb05PVllSWlZ1UlRVY1Q5ZURGQkl1ZUNH?= =?utf-8?B?elBmam9PTkF6NWFKWml6dz09?= 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?SGsyUGdxS252U2Y0SzdZZjdBMkRRMVJQN0FscGlGcFc3eVBBY2dwdkUySDZ6?= =?utf-8?B?bU5nMEVNbktLYmJQUmZqU01RNzFXNUVjcWRJLzRUMysyUjQ2MHl3aitTZ1Rk?= =?utf-8?B?Z1Q5dGIxNVdFQWlmNlpiUFRIYUZsMXAwNU1tc3dkQVZTVFRNZGd3QzZZbk9T?= =?utf-8?B?dzZBaWJWZE9ZbjI1WTNjMjVGSGRwVW5RclVrYWdrcFRHU0pYczkwdmRhN0Z1?= =?utf-8?B?MllydHlYWkJvTlMvUXZ5RXNlbXdMVk5QM1N1WEg2WmNlQ3BMQldFajFnWHIy?= =?utf-8?B?VHNmYjQ3aXFYUEpjdVVMeTQ1UWt0YUowU085QS85S1puK2lmWXJwYkVoMS9s?= =?utf-8?B?alpDVTVhL2xjTVVaRi8rdDFtU3V6elpXRmFWc2p3b3YzaTA1Y0pjZ3NwQXdG?= =?utf-8?B?NXE4cHlEQjdDb09JdVluOUtVSXRmMDhkcU5VM1NNcHdleXdzQm5Jc1NudG1t?= =?utf-8?B?QU9uaHNuMjJJTCs0Z0t0eEVjS1hac05uSGxJUVZja1ZhaFRidFZrdDVJTXFs?= =?utf-8?B?MVBuOGtVNXZqT2p4U2xCSmc4b0lJcUxPRDU0dXdWUVE5ZVJzUHBCSTVWN3NY?= =?utf-8?B?V2Y1RmF2emVsYTFzUW9wZzR0SDdlQVZCN2t2MzNMNFNSMkVTakdDeldJRElU?= =?utf-8?B?cklzZnd2VjZ5QlQ2SVdhdk05ZDdvL3NzL0t4UU0wRFRTMTJXN0VmUncwQW5l?= =?utf-8?B?L01DL0lFblNRK01uMTQ0UitFemJGSll0aDVTR054SFI3dEdFZERtUVU1R0Fq?= =?utf-8?B?TVBiT1VSZGo3MEJNYzd6a2FIc1VmN2U0eDVISDBMSEpFazFFaEhFbnU1VUZV?= =?utf-8?B?czM1aTVCOEU3dWdScHBqck1jQ1c4Ykd6cWlhV01jT1F4bDYzdmlmQ2R0RWN5?= =?utf-8?B?WGdrc1JqUGMrYjVqUjdBaHJld3l0Zk1GT1hBMXMrYzdDSlFEakJJZkpwQkJt?= =?utf-8?B?V1U0dUhpYjZhbEJsSEhJTHhRK0NiRjZ1anJHOXlBb2hqNWxrQ2tvTGc0Yk5N?= =?utf-8?B?QU82a3Z4T1dkUFpNbFBlUEhKanNsczFubWZpQzVVakQwbjJuSGdFMlNsRGFJ?= =?utf-8?B?WGZvYjI0UnhwSmVQbjNHZWZ3R1dxUk5PWW5wTythMkdCdDJOM0pxdXEvZ1Np?= =?utf-8?B?MDZTMHR3QlpqYzhtbTA0U2VhQm9nU1BqY3BiSHZML2NZdFp0aFRmT0plekdm?= =?utf-8?B?ME5lR3RoNHR4aXN2ZVJNcWk3d1lCQ2NjeHliUlNiYWVjYkI5aHR6Mm4yTjNy?= =?utf-8?B?QytQcjBJUGphU1hTeDhZZTVoeXp5S2dueDAwaExCTzU1bjdBL0RycXcxUDFO?= =?utf-8?B?L1F0dnhzWDErbXJXNllyYkZBYzNodFRXdzJyTlV5b1paVDJjZVJHelRnMkdU?= =?utf-8?B?RU83VzFhQjhMZjA5eGlGM09zNE8zMWpRa01xd3llU2M0eG5kOXMzaHkxanF3?= =?utf-8?B?QXlveXhsSkd5MjV0RTV5RE5NY2RWT1pja0pKTmpxZ05hdCsvY25xSlZmQkNU?= =?utf-8?B?bzB1MFREeG5pT1BpMmhtRkFmbmN3OGZ6UmRyQThSRTFpN2tOVFN3WFd0bW1i?= =?utf-8?B?YmxYbmg2VzY0WkFMVm9HTktVZDZzRkd3V1NMTVJoQXdEaXRDVEdacUQrSWF6?= =?utf-8?B?OS9xYUVqSUg3enhlZ3Iyc2luMlBjOUNGS1dSckUxVVY2eEJEQmgySXhCbHc4?= =?utf-8?B?Zy9NTkVOOHhIdExuVnVBcFUrWFFYWmNuMVZpYi8wVUJrQStMWFAyRlB5N2Z5?= =?utf-8?B?dkg3RnYxUEwzV1piZVdjYTZHWGdjTVZLRXdORjlRL2FXN3FLQ2pmSVR1M0dM?= =?utf-8?B?VmFnU3JUTUtkK3Bsb3dSdmU2VTluNVA3bFlHdk1Kd3RXdy9zLys3NlB4NnRr?= =?utf-8?B?TVJ4Slc2UWZjZGNTdUFKNUpWcDdaZk5BZSswaDJGUndseW15OHZwUDBuYXNI?= =?utf-8?B?Z1FXZFZRVE1qaE9jWjFWZVpXeG5CWk54dy83dTR3U2xoVVI3QU1nOGx5RXlD?= =?utf-8?B?amcxZFZUZFFkZnZsK3d5cnRneStHZWV0VnBjUWIzV3VFajZCemdvSUY5VDhW?= =?utf-8?B?UmRFamRTb0ltaVR0MXpDN3B6eTMrWlhXSzlrc1hneHpHVkk1QTkwWWltdHF1?= =?utf-8?B?RWNyWTlHSXFVNVoxbEdITDNmOTVibjcyempzZUFaTlEyZTFpMHpEMGlxMldj?= =?utf-8?Q?RoDjeHkYszW+P6CXTaXu4GQ=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <027E7FF302A2014587DD9B7E3574336A@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: 228aee1e-6642-4cd7-55a9-08dc74aea311 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 May 2024 07:14:18.6201 (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: VqfHC1RYqpbUUd26gedr4tQu2NA6boQ0phVdWRLyszkjIy6u4ZkeWU8tLPIhHxFexnbzTEWXjO0gZ42aHVA8nLCzzl1ljkRxZBb2eEIUHyiZSsED3Q29harotXQxNRgK 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: 1715757413876100003 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 2c0e964c07..198b71e9af 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:20 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=1715757364; cv=pass; d=zohomail.com; s=zohoarc; b=hQRu8aNIwTaFNfNZzMHKmtsIh8JixN605PpaEue8bL1GMZqifm3jnxi82mCdyNaGTwZnnkPEVcTkfZ8N00iy9ngLHejJJ0HUJ0lbsjFogsllaXh7pHAycU4F1RkXII2yPhtodNvlpELijr/s6XXU0DqFJeGe/8efcZWaMR8Jsus= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1715757364; 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=zFEzYvx6Y53xIqVlSMToVmTVIq0lJKNumg4SqsbmCWs=; b=gK+mGKv9HHIdp3ti9TcHP4JCkBk2/vXyy1S62ihts63EL6p4PVPsziDab39RSHoj6DZnT87sYZDL/rzxdkjdo7ixv/MLhz9T/0oL/YUy+7j+drA8hFq7cKWSCj51hX+mz3GvEI4Zfl8RzJiOEFPAIA0aydNKX06DpfFnZV2OsZM= 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 1715757364077601.0276771354332; Wed, 15 May 2024 00:16:04 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s78rJ-00054k-Th; Wed, 15 May 2024 03:15:31 -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 1s78qe-0004cu-Vd for qemu-devel@nongnu.org; Wed, 15 May 2024 03:14:50 -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 1s78qd-0000oJ-5U for qemu-devel@nongnu.org; Wed, 15 May 2024 03:14:48 -0400 Received: from mail-vi1eur04lp2050.outbound.protection.outlook.com (HELO outbound.mail.protection.outlook.com) ([104.47.14.50]) by smarthost3.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 May 2024 09:14:21 +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: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%5]) with mapi id 15.20.7544.056; Wed, 15 May 2024 07:14:19 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1715757287; x=1747293287; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=zFEzYvx6Y53xIqVlSMToVmTVIq0lJKNumg4SqsbmCWs=; b=nsmz2LubUF3M2wJonFSdMxiakDWuQ+HxBc+wGaAUe5uLt7E8eoeX1ZoB av5nhiyvDKdP1YLLIy9U2hWjBvWwgIsKiq8iRGep+whNeAjTdojPW1EcN dfZcPIFq4kty1mqWJhLCdAZ4WDHlphMl7/26jY0ucKDcIc3O5uWwqOFh+ OuxuzdNQ6T33INtrZaBf51l3rwI0yhOXaXjfgxy6lpguI1Gm2jlMY7oAm t9IlaV8PQEXbev5fJm55r7YeUU2xffmHEj7v+x6snARj1WIV8+n770d6Y gosX0ys7wYQdTE85B41Cq1dsA47tCBFdCt8rVnHE2Ng5UGDr3dfzM3hHm Q==; X-IronPort-AV: E=Sophos;i="6.08,161,1712613600"; d="scan'208";a="12581808" X-MGA-submission: =?us-ascii?q?MDHdlLOcPjNYStfw5dq3bQW8wErerSl/H95ns2?= =?us-ascii?q?fp11/im2f1xDTEZCOvusYKtDqJ9n3NBQtBZTiADBPl5emQ8t0kggncy7?= =?us-ascii?q?CfNwHoUCVlyXNWWmZA7uRHjTdtYKrKRN0nEjhqlKR7kZYGRJ/2TWQokE?= =?us-ascii?q?P7F40u1G2rkzKagIm5amTGGQ=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SkT7AaZejPRBKpe8PONBpkxX3ogCGCnHO9m7MdV3BLzbWz8EeOQlvjPZvp5RTlA9QlqQqLhQm5zGVMPA3PL/V+If8lTk3SREV6Fo6lWbOjJyTf/9/EkC6DeFlw5WN4hBWZ844Mc8v6h+9fUX9+6ZtMv5VppHKtx8U8q4KVMsIPBtlh+mLkXMAtFjj6W1HPnHldr+09s39tGL5zzqyg/o0QvgpmrCyiaQweFpEhEaNhKzT6cxQHCqHZ/DAORSq6auFdGQYzk3nuu7/d1n05eNhdqFI++EU5FWPY/Jf+Sb7Y7HnvsWXb6StScEY3Qt2PvMF/+y4nLWZUPduYr9JNThrg== 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=zFEzYvx6Y53xIqVlSMToVmTVIq0lJKNumg4SqsbmCWs=; b=fOAcDXx/YipoIveJFtaUsiLG/QQvDsYdfzDtV4d5HqpFSeEZt/BMC+HRbV7ppVKaB8lNp5nity8EQT1Q4TbM2k9vhfZmPeysJznaot7r77sM0RI4Y9y8I1ntTaYpOU8DyjSgPmACT05uQCTjEQMHtYCoberd100zYRHq+6HwESd6wP4//vOTgPWEfkP7gniuvK5Fp/RC02pdT5x9cYu5l5Hv6p++9WScC+OLj25WfOTvhET4Ew7Tlmbu6Ymrq6+yhAeEWOJ9gLgj2ycbt4HmELUYCC4R3ZrqhydOGCKsUGxyD/hbgDB/tTxPShnSE/c/W6g58QI+onX83HxW30lIJw== 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 20/25] intel_iommu: fill the PASID field when creating an instance of IOMMUTLBEntry Thread-Topic: [PATCH ats_vtd v2 20/25] intel_iommu: fill the PASID field when creating an instance of IOMMUTLBEntry Thread-Index: AQHappeALIV+LSCFtU2DUckW7CrvTw== Date: Wed, 15 May 2024 07:14:18 +0000 Message-ID: <20240515071057.33990-21-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: ede01cb5-30cf-4c7c-1a44-08dc74aea331 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?WEJhNkpWejAvVDVldXIrTytuM3VvY2tCOHdxUlFzelpPK1BnZnpPdE1uSUhz?= =?utf-8?B?V2k5OXJLYjAxbGQySTFFcUs0TmxCR1pVcGNORjV1N0c0K2d6VForV2RwQVR1?= =?utf-8?B?Y3hLSEhJUnhmTGVZS3Jxc1pCSEh4NVpkVERJazAwc215WWVCVENJR2tqR3d4?= =?utf-8?B?aTNzYXZTM3huQnZLdHovS2tSWXVOZmoyczdJaWRGY2pWVWF1ZFE2dFRsbldk?= =?utf-8?B?MVhxT2pSOVNDZzVLTFRSUE5MUjVWUzhyMVBSampNeGxhUnVyV0JoNjIya2FM?= =?utf-8?B?WE5HRFo1N0VWd0RPazBlMmpsYzMwOUNkSWo5SDlacGZnS0FlQ1grUE1zYUY2?= =?utf-8?B?U3BGdVBmVGszMHhTQkJOYmQ4a1RHUkNjQkdpeUw5c2tWWjl5aXhud2RWVENW?= =?utf-8?B?MktHYXZ3NEJwLzNqZm5GUnRSYW9lckFkVlU0YW9teHhyU2crVnp6Tlo1TVkr?= =?utf-8?B?UTF0RS9Fa1ZNUnh4MTN6U1AvUkd2Z1JWMEx4NVp0NHBtSmdTK3JDUDBUQ2pN?= =?utf-8?B?UWxya3ZQVWNnTHl4WUVvY0FlRVFSdGhMb0thTTdtazVld2Zib0Y4TzdYaDc4?= =?utf-8?B?Qk1kWGtNQklTYjhYRURYWFd6dmhER1U2N0cwT1B6ZmozTTVTWG1kTUxuLzNP?= =?utf-8?B?UHY2RDlQZ2lhTHRmUGJpQTk4dFVEbkRVNU5laVBtNDBWdzZoZEg1REwxYUlh?= =?utf-8?B?NFA5WkJ3azkzaXZPcFJGMEZlMFduczBXQUFYNktkVTY0N3B6OUZXdmI5dncx?= =?utf-8?B?dXRqOWhrQW5OV3Y5MTBSdkg2U3BsR1hKZGw1Mm1JemVXdHptRUJFUWVHOWh0?= =?utf-8?B?OXV1ajVaRTcwMHRvVk14L3U3KzhETERUZkprSWtlQjVpN2pSZ0tSQTVUcXZ4?= =?utf-8?B?bXRQSCthSmV4UnAxZ2E0Si82QmFyRit5S3hyNTMzMXF2SnVZb0xqNjFKQjZj?= =?utf-8?B?VmNrWUZ1cTdiTEc2c2dFZ001eE5UQkJSRDlERXptWHdnL0hsRVRVTHhjbVAw?= =?utf-8?B?OXMrSElkSVBVd1g2a2loUklSdXI2bXplKzNJVk9IL3p1SFFjY0RIbU9rU2Nr?= =?utf-8?B?Rkc1OTJaTXVjL2M5b2pCUGlET2xPVVFJWmdGS3VGRDEwdW9RZUFSeEJkV2Z2?= =?utf-8?B?T1F6QTV3ZWo1ZmZYUjdVazZYR3JTYVMzRGpNVzRsK0x1ZW12bE5OVUdVdzBU?= =?utf-8?B?akpTNkFDYnBVZ0N0VHViMGNaKzY1cWZkdTRoYUhLcTFtVS84dUVjRmMwZE9j?= =?utf-8?B?S0lsVEF2U1hxRXhFZmVtanQ5eEhLQUJWMWJiNU1ldTlLbTdwaENKd09uQWtq?= =?utf-8?B?MmhjU2IzUTdiNERyc1I1RGhvZHdyTy8yZDlsQkp3MGFHajBvR3BxNVZucFZJ?= =?utf-8?B?cWp4UmM2WmxMVWVWNEcrOUJJeXRYaURrd2U2VUQxYVYvUXhsbGZubkRGOXJY?= =?utf-8?B?SU51NVF0ZGVqRjdYRTZ6RjRaNkZkMlJMeldYaUo5cWk2czd1ZzFuK2hJQ2NH?= =?utf-8?B?TWdleTRUZnZ5QWQ0M2NNaTg3S2N1SnoveVJRMVN4Tk1ZTXQ0MW53TjVsNWRj?= =?utf-8?B?UVdNTW8ySldaWlNESTM5dVpDQXMyQ2gzbXg5dlVLeFVJdzIxU1lMamhFTmw0?= =?utf-8?B?Rk9TKzNsbXJPQm9PMmFKbWNkYUV6RUtnNHI1aUZGaUVaUThQdUNneWtTZ0xH?= =?utf-8?B?eWNRTk1UTThMTnU1MHNVUmhJZmtOMnpDSXhTQnVTNlA3UllPMzJYSUc5dmpL?= =?utf-8?B?Ni9OQVV6Z0tNVHhpc1Y5NHJLY2ZiUjdHS0YvNStlTzBSaFNZb1dDWnF5ZEp6?= =?utf-8?B?ait6VzV5L0ZENVhPNlcxZz09?= 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?dDZNUlUvR2pNRmVYL0J4VCswZmdiWTFZMTFnbXUyTUl6TDNxYjI4VHladnVt?= =?utf-8?B?OWR3ajUramEvN2R1OEUrM0pKS0xneGFURndGYW03Q2d0eGZVd3pRSkRNcEJ5?= =?utf-8?B?NU9hazBLL2VKaUtjRTllYXBnT054U0NwNjNZdnA5MS9tNHlxSHpNaWwvS2dh?= =?utf-8?B?RmhBWloyTUNkRFM4TmR2dC9HbWovU3N2SERIZ2VsbE9SNkhudHYvMFJjcVJW?= =?utf-8?B?Ui9kZkdUTHcyY2UzSjhueUlpSmxLOGh6eHg5VFZmR0tCZnNVMXo0UGUrSE9s?= =?utf-8?B?WDBobWk2MkpUK1M1T0RzY0NTTWROMnZyRzhJT0hHdDBIdWliaDFtbGkwcVZD?= =?utf-8?B?ZUYxNVNpRUYzM1A0K3Q5Ulh1eUhwOUtpVTR4UGhsTVBjKzl5dFIzWHEwUE90?= =?utf-8?B?aXVxSVNJUUZURGdodSthd0lhQ0dsRGFuNUpDN3Fpd1FpQ2hYbloyV2ZmTWE2?= =?utf-8?B?UTZPWG5pcDBvU2pVbUpRc3l6YWVxUy9ZMFIzUUtlMmRVUzZiRDlwZE5WZGhC?= =?utf-8?B?L1Q2eVAwM3ZKeE9nbmc4RlNUM3JheHJCNjlpamxhUjUwbFQ5S2NXZitrMkF1?= =?utf-8?B?dnh6MjZHNlFRK1g1NGgzNENiMEhJUStzOVZVdjNoT0RkcSt0alNBNkE2eTY0?= =?utf-8?B?ZEx6THFmUjlab2h0QXJXQ1p5QXRjaUZDbXRCOEJ2SzEvWVhXd044dWFqb2dG?= =?utf-8?B?T0VmT3c4bkRVNmZxUDhLb3FVWEZyeFFKb3ZKRU5OYUNkTU9UN200TytUWVF3?= =?utf-8?B?TmFHTkdmWkFCc3cvM3haclRhb0xpTFg5aVp2RTBBSnZVZ3lrM2N3V3U5K3Va?= =?utf-8?B?Z2JUY3lNWTNJNU1Va3JNRTJ0bzJwT1dhZllvNlA3Y3IvSXUwNG1JeXpaSmVl?= =?utf-8?B?SHJMVnA3M1p0aWhIaTBFUVl3cXRIS0U4aTcxZGFyZWs5Y2xQVkhBUXFjWThj?= =?utf-8?B?MWZXeDlTNGZKT3FtblR2cmphS081UVBMbWJ4cEVGYzRXQ1VPWU9IRWZBbG9m?= =?utf-8?B?VkNSYWR3V2l1V1JXdzFiOGJETUJVNHhlWUlUZG82QmZOOU5LOUs2UGhIRjNC?= =?utf-8?B?amNkMFNUR2lwMUNLM2t2YnRoY3QrYkF2V3JFaEFaanZrYjloQ2JQcm5zYmZH?= =?utf-8?B?eVQrQU96M2RXN2ZqbHQ4WUt6Y3pVd3RWaXBoaTZuUHhOSHpkaEJ4bzhSWVRT?= =?utf-8?B?RUs2NkxrWFMvMHlwQnNzU3FZTkxObXNLSmQxRU9yci9oSE1DTU9FdjhydzQ2?= =?utf-8?B?WlY4QlFvQm5kd0x3Si85MDNyYU43NlZJSHU2TkpsSXZOdzMvM2Y2eCtjd0hm?= =?utf-8?B?MUg4RGt5NDhRWVpvem5nN2JsMWhhTzd2aFFZL0xSWmg5SUVGQXFKZlV0bmx0?= =?utf-8?B?K096Vnp5ajlrNXVlWFBVbkhiZmxzWTRETzM2WEEwdGhVMW8zVXdyOTJ1TmNW?= =?utf-8?B?VzF2OURKQlJ3QUNub0ZTWXBtQ1FEOEVtR3ViSlZjY1o4YnF3NUUvZmpSd1Ja?= =?utf-8?B?UURXZ1dtQmZjOXNnU1FqbFgyV1cvbnlhOFc0MHlCRDZKU3FzK1QyU1VoN0FR?= =?utf-8?B?VHN1VGQ4anRyY2JCc0ZFV0c3NFdhY2l2ZkNuNURJZjJmWTREYnRCME1PS25v?= =?utf-8?B?ZllPL2VCenZNaVhKaXQ5dG1pR3U5eHpmamtOamF5cE56dVRISk5pMlNNWUc4?= =?utf-8?B?UUxneG9HWnVLNXBnbjlHZXQ4aStwZVJhYXN6N1JkNTB5aEl1ckpyZGQrYnRP?= =?utf-8?B?NVMvcUxxaURnL2k3N0FFNDBub1NVdmt1c2hncEs3ZjRNbzFVZ01jUnErd0hO?= =?utf-8?B?ZUw3WUZTT1NSTHBrTjRXUUNvZkE1M21JWEZaY1Z3cklOOTZ0Qy9FSnFwT3Jq?= =?utf-8?B?Z3ViU1kvZE9MeWxFWnlRbWc3aVFhaWlobWlzcTFKSWxOV3BKY0NQUWFCNlBp?= =?utf-8?B?ZzRsZlZCOEg5cnN2djRqalNwZldtV3VqUXJqeUlkcVZ6RzdWMG0vU0tGUEF3?= =?utf-8?B?NldxS0ZRR2x4RmY4OUxESi9HTFZDamMzU2Y0VU5YWmF1Q1pjL2FaMTYvdzZs?= =?utf-8?B?dGJIVGljRkMwV243c3RHZmdGSHFtTzBIbm5VR2RvZjhQb3k5R1VZandlOEhi?= =?utf-8?B?UGRiT3Q2U0d1ZUVJWU8zdDd5RDRHM3pvLzdKVEZZcTdiTUQxYXkyRG1sZ25u?= =?utf-8?Q?x5CBbADSWIPyU5X+6/ztqO4=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <77E151F780656B47BFE3F939CC4B0C75@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: ede01cb5-30cf-4c7c-1a44-08dc74aea331 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 May 2024 07:14:18.8655 (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: iR6tlSIHjQafkpTYDlMxF8cPUuHIo0VOYarTqfPZ3EpVolQTUxnfv0b71A+aF31bPsqq5++0r95xHmUfLhdG1AjNUB2Bk3wogvhSPNF4LTvka68DwoJLMZhwy//9YwK/ 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: 1715757364686100004 Signed-off-by: Cl=C3=A9ment Mathieu--Drif --- hw/i386/intel_iommu.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index 53f17d66c0..c4ebd4569e 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -2299,6 +2299,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: @@ -2307,6 +2308,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 @@ -3497,6 +3499,7 @@ static void vtd_piotlb_pasid_invalidate_notify(IntelI= OMMUState *s, event.entry.target_as =3D &address_space_memory; event.entry.iova =3D notifier->start; event.entry.perm =3D IOMMU_NONE; + event.entry.pasid =3D pasid; event.entry.addr_mask =3D notifier->end - notifier->start; event.entry.translated_addr =3D 0; =20 @@ -3678,6 +3681,7 @@ static void vtd_piotlb_page_invalidate(IntelIOMMUStat= e *s, uint16_t domain_id, event.entry.target_as =3D &address_space_memory; event.entry.iova =3D addr; event.entry.perm =3D IOMMU_NONE; + event.entry.pasid =3D pasid; event.entry.addr_mask =3D size - 1; event.entry.translated_addr =3D 0; =20 @@ -4335,6 +4339,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 @@ -4911,6 +4916,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 @@ -4923,6 +4929,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:20 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=1715757433; cv=pass; d=zohomail.com; s=zohoarc; b=Jgx8MUFWCPQbUHEiHUq//xUlUi53ga/w6FiPGQAQZHm9mdNY5ES/cgJ5P/FQOyTnTqpT8O2/riaCxv7dZ9PPaqyHFL+TK9rH9nSa9Oqg7TJYbZhwT3WhUQGgmh6PfPyOmvYp8YA/CVZcAIaQrLFKLHsLq1Cx6I0p2/Qq+B4PYy8= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1715757433; 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=fz6Qde44pAZARZPh4pD4Y74QvPWq0AhDSjUgpnKMgWE=; b=OfwA+pC3fmECKiallsBQlXuQzPcrRNucrSzNXmRAJarP9pA3cEIR8lrJrcMsuDUYOfmZUdX+uMGz2Ey6RrZx1lfVFB3UmnewXr5WNY31J1DUBfwYlTvaIBkaqj+dgMuNTU1UZ2XEieD47CwqR2hTxB0pq9Hi4s2KB772mkQWHi0= 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 1715757433476693.1643573280311; Wed, 15 May 2024 00:17:13 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s78rf-0005VB-Ec; Wed, 15 May 2024 03:15:53 -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 1s78r5-00050U-BZ for qemu-devel@nongnu.org; Wed, 15 May 2024 03:15:19 -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 1s78qp-0000oi-Ik for qemu-devel@nongnu.org; Wed, 15 May 2024 03:15:14 -0400 Received: from mail-vi1eur03lp2105.outbound.protection.outlook.com (HELO EUR03-VI1-obe.outbound.protection.outlook.com) ([104.47.30.105]) by smarthost3.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 May 2024 09:14:22 +0200 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by PAXPR07MB8496.eurprd07.prod.outlook.com (2603:10a6:102:2b5::6) 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: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%5]) with mapi id 15.20.7544.056; Wed, 15 May 2024 07:14:20 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1715757299; x=1747293299; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=fz6Qde44pAZARZPh4pD4Y74QvPWq0AhDSjUgpnKMgWE=; b=m8iT7pRwb+camtFGdUQzSusE1cvA3qxRDpINDHZoJDc05GpkHQ51qOKS gg03k80BIPcwdeR3M4oO/B65kf/cWJBEQZedJBVLvixs7Blso3CE1MdG+ 5cw0UkiFKiXfkT5z1DKHr6PAGOMoYYDeWBMKBGTu/xHduklKDzrpZTvij +GGnWazcS431Hl7WoF/kvPQBhR+ebuV17H6lgrWpU8XjrDuQdHoLYrGSp lg0FNctgESuNUesoXSQ/ykjKB3yc/5304jOQCHPNh3Aj3LgsJbMoYNNPN iBYfPbNL/i7t7fQcfSVIwkE7kVTdznsF5hDNfi+tVmDrO4vlMg/AtsTUt g==; X-IronPort-AV: E=Sophos;i="6.08,161,1712613600"; d="scan'208";a="12581813" X-MGA-submission: =?us-ascii?q?MDGz5Ud06yXhBtlayaMxGpDwPvnv0ijZdf/UkF?= =?us-ascii?q?ndBExENWIkj346+Iqkejq8PuSHPym7vhlNmFIWVa5emb38Melj8QchX5?= =?us-ascii?q?IeLrrHXrmju6J3Oomcy2QKHatnKHr2cvT9OSf2/KqoYCw6vSk/K9JaY3?= =?us-ascii?q?wxZzd3A9bRWIwgx+1r+/59Tw=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KEWNxJ41ElHHBfA8G5nptXZp+7FKDYQV5NMxH/pBoaUE8Q4yTw1/tMqCgLCPUbsWLXVXL0fxiToyFhDnRLSHkOOYXvaslKqqFVk2vNATajOiKYrNDpyokgbJKEG1Mgn/2OavmFnPmn6Pv0mb2vaJlYwupDme8rl6/7DoZiyZ/cVAeLB16ZhmYlkS78xkXvqQHmKlBl++tTbA7tcFTsWGtS7mMkyPAEZ99f4TI2vFf//X2q8oH9VIGOmn7YxqDEMQLv7RPIExlKwBoaGUUH1OWcPH6saNob+tLR1GKMbZ3XX/K07PCROp16ToI0zL28pG/0VaVFkWJgvw2WbGdlVhog== 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=fz6Qde44pAZARZPh4pD4Y74QvPWq0AhDSjUgpnKMgWE=; b=XMXeFfKJ9F4YM1HfuPwHTjYk53gj9yc+8CGD5+Zrk/wSyuGuj8avgcb7FGPVOIWx1u5YGETQFusp1tjYuWDJLLqCg4IKPjVf1u9dSd4NlNbJeEaprj6YiLK9MrUz1111DRZnVAG2nyrgQmlSjiMLH0qbINyUWRH5TgmKb+U5mSxHFOSrkpa1W8ADMhtxlrhXYKCHfm4LuHMCt+m3Hiq9ld/HcSC3ihCyRk1+AfEG/lL6Nw/Mo1w+tzlDpdGFMlDWsrHI/Dez/BN8+i0aUZzeRMgAoRZO06ZH1IjyD0puqhAmyBoEiZCqdeHn3Ps02+JnR25bWM4HKoLweWvcu2p5hg== 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 21/25] atc: generic ATC that can be used by PCIe devices that support SVM Thread-Topic: [PATCH ats_vtd v2 21/25] atc: generic ATC that can be used by PCIe devices that support SVM Thread-Index: AQHappeAjUdU2werkUaJiYxy8FgLhA== Date: Wed, 15 May 2024 07:14:20 +0000 Message-ID: <20240515071057.33990-22-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_|PAXPR07MB8496:EE_ x-ms-office365-filtering-correlation-id: 5992b2fc-2973-425e-5339-08dc74aea414 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?WEgxVEdPYVB4cW1YYytHbHNmTVkyTmJRd2xldXZvTStxakNMUnUwdm9XeEJh?= =?utf-8?B?N3dmV0d3MkVNTjA5cmZaUkRyTGRFTTF3Vzdkcy9LT0tUVlhScnZzRmZydC9X?= =?utf-8?B?R21yR1lTVGNycXdOU3Vxend1YWtORUxvQjlaVnZ1YmdmSlY4UHRzVlpPc2Vn?= =?utf-8?B?OVBjd1VSdCtQMFBvTlNPK2FSZHR1eU42alJualE2ejFHMllzZ2MyT0NWaXFU?= =?utf-8?B?ci8wcHZTQXZIa25nM0hpWWMvNUxKN0l5bENlQnN4MmFXaEhPT28yUjY5dXl6?= =?utf-8?B?WlAxZzFvSnBDb1RZUmI0dVZTR1lDSHZFL29pSHd3STVSc1d5NHJEamVEZER2?= =?utf-8?B?ck4zYUx2b0FEOUl2QldXK2ZKK0tGTHdtQWhyMEhHY3ZXTitDWUU4V1d5d0Mz?= =?utf-8?B?OTJkOUFudmFkRWtDYmZxMEI3Rm9XTmQzaUE0aTN6K2VqdHVvR0Y5MWZVT0xt?= =?utf-8?B?YXd5Qkpac1JGdSs3dlQvWWF3ZS9DMDQrMElPRmJiUlJDNlFKdDU3dUZ6dWV5?= =?utf-8?B?aDBlMms0YVE0U1JTNWhFYUcxYUJnQS9wR0ZXMVlCeGJWc2laM0VYQ1FrL2Q1?= =?utf-8?B?MGRUL0V4c2JYelBiZ2p2cVJqc3pQcC9rRGUrVTRLMDBFdTVMN29peElzRFNG?= =?utf-8?B?ZGtiZmwxREtoNHZ6SlQ2QmpOdENLa1ZUUzJ2RDF1b0pYeFVlc3pvMm8xVU5o?= =?utf-8?B?L1BzazYzMUpzeE9WVnVuQWJyYkp0czI1RDFMSXY3Y081SEI5bFUzT1RxZkox?= =?utf-8?B?S01hb1kxcEpHVFRUNjVKZ0V2V1FUd3NvMTYyeEUzY0IxV2tsYldRa0lCZGx4?= =?utf-8?B?U0cvSDVqa2Z3N1BVZ2hLTFBDYlRUNGJ3V3VoQm1UbWt1THh6RWpJNXVZb0t0?= =?utf-8?B?SjZtNlF1dnNycTV5cVhmR1dYckFRdm4rNEw3LzYra3VLRVZiY2pDVWovZ0tR?= =?utf-8?B?UVd5WGV5MXdLQ0o0T3gzZkpGdXpXYUZjdTlBUjhyVEFaR09Oa0hsbEQ1cHJv?= =?utf-8?B?U0hxUDcyM29hVTlNY2NmY3VuREl0MEpma2xrOC84eU9ZVlpHaFIzZGtDQndJ?= =?utf-8?B?VXp0YUtwS3hBSGZKaEFMcmF1cmI1d09jOEN6NlR0RFBDRlUwWjI3L0hYYndj?= =?utf-8?B?SlVTSDd6SllJdExrZXpIYXhVTkRwSHZpMnNKRDlqS0s2SnQvQmRJbWxZZXdh?= =?utf-8?B?cHJPeW8vVGI1YngzMktuYVRWdGc5SmNKK1FuUFRmSlNxeHBUTmkzVng4UkRo?= =?utf-8?B?UHpzMHl5Z2JtK3crcUxQRDRXQXB4S2o1TEl0TXNWazhEWVZOZjZJMEltSXpY?= =?utf-8?B?L2ptOGlPbVQ2dUc5K0p3aGwzcFRINmFXci9heXFEWC9NOFlDZEdoY0JOaTlp?= =?utf-8?B?d043R25ma0lkb09oVlFyU1JZWVVRQnlkRnFwZkk2MmNPZHljNis0YjFMMjB1?= =?utf-8?B?RlpIUW9tYVJtZlNUb091bU96QTJFeEoybUlQd0w4ZU5BOUdQdm9Qdno2YUt0?= =?utf-8?B?OUNybm9jdHNBRjdNMGdkTG9ncGVQSU85T3R2S280RnBmSUZWYW1pYlF0QzFJ?= =?utf-8?B?UGN6L2tUdXdLdzJHTFVtSUM1Wk5zcjI3K2QvTnUwNHRRakk5R3p5RVFGNnlK?= =?utf-8?B?QnByL3NKSFE0alJ5MEZFL1U2S0dCQXkzby9JSExJTDNqNmllM3pUclJqK09K?= =?utf-8?B?NmJ5cTN6RTJHb1pyRy90TFREMC9YZWZhdWxsTmlZZWZoZ0RDcUxHaFZBPT0=?= 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?Um1Bdnh4WGwwZ0RSbVgvd3VwandGcFBza3MxSVpISnR4cjNpWXRSUEI4MGFS?= =?utf-8?B?MU9zcnZxVkI0SGFadEpLbm9xZzRXTjRxc1FDbHVUTXNVd2gvdTNVZnZYS2hr?= =?utf-8?B?dGhLSjF0Z0hTVEFRTTFkNzZSaXBwWjVIOU1MTDVSYlVGcitrMFJ2NDJxQ0dq?= =?utf-8?B?WTlMNjN4OER5d1BtSW5pbWlCb3I3WEFtSk5JSkYwdE9MaDJlRk9hU2o4MWpq?= =?utf-8?B?d1FsRnd4N29nQjFBaHJCaFlTc0YwYnRNcDA2T3FmaWZxSUxRc2xzR2RIYmFv?= =?utf-8?B?UmZnanFGaXYwM2pmZlBzc1MwTytaRmxLdGxIUHVlQ2tBRm5sc0dlbmhWZHhN?= =?utf-8?B?YXBHMDF1SzBneTFMM0h3OFVrMVVTMUxhZlhkLzhaR3hEQmsweHJRdkplc0R4?= =?utf-8?B?MjVMMnEwZSttTDRwYUluVDl3em5KcjVVdjlvVlI3NHU3RW40QmMyWENibE85?= =?utf-8?B?Zk5rd2dIOEVDeWEwZ1Q5bVovOXpZWEZISVlrWVpFbmlqYWVwM3E4Ui8rcXcw?= =?utf-8?B?dXJ2TXZ0RnRhemxlOVhzQkF1cUFMb2tydGJtbzdsWVM4QmE4U0dsWW9oMXFU?= =?utf-8?B?NzdHa3p1M1c4T0xkdVIxVTdCNy9DazlhYnVEcFRMckRoSHhXY2JaNkNaY2VW?= =?utf-8?B?WlNybHRGYkVYSUZ3elVOaWY3bWRqQnlhTWFRSEtOZE1sZXd3b0ZoVG9pQnNz?= =?utf-8?B?ZDNVN1NkbTB2bkJTRWs5dndVWnY2dDJxeDAwZXA3R1ZiVnBhUDN4WmpHWTRV?= =?utf-8?B?dzg5WWFMbGVTc0YvY0I4QkVGcmtZWndHYnNodW5yaUZLWnIwYW1rOTFzK2hR?= =?utf-8?B?VVZHcmsyK25yTzJUZk9NL1ZkQTBJd3FKdTlZRGJzVllWSVZ0bU5JcGpWUy9B?= =?utf-8?B?ZkxqYWFLTDlaSXJPMTc4ME4rclJUSHBHOStSeWNtYnV6NmRFVy9VOUVRU1lY?= =?utf-8?B?eFI3M0c5d2FYSzJZVmlGWHI5YTFJVjQrMnBDQWd1ZkxGQVp2TVhVbmt4K1Fn?= =?utf-8?B?YnB3TU5DY1VxUjlzdmtPQmh2bUlxRTlWdmNsWjdyUWhtK0hndWx5dUZKbG8r?= =?utf-8?B?ejBpNWllcElJL2x0dlQyTjFiMUlYRk9PdndDQVhrL1MxeDlNcEt4WGRFaGJU?= =?utf-8?B?N2h6cmdYdWNkL0xjUlJmc0lvZnBHK2U2aFYvZkpPZEdUbzJJZmNZanYxenVp?= =?utf-8?B?YWNzdWZ1MFAwbjg1RHpnbkxWU2FpcHNJZUd1VnF4NkJXVW1sL2NIL3B6QXRG?= =?utf-8?B?YzVuTVhpM2ZTU3ZIUi84Um5ITTl5dzlLNERhKzNyUk9EejM4YUZqMXBySkY4?= =?utf-8?B?Z0FLOWVyZmN6bEQrMWR2TUJiY0V4N2hXQUZmYTc1dVJ1bHpWNkJKNldudDAz?= =?utf-8?B?TEtGR3puSUtNM1VZQnA4ZlhtZ1JHakgvOHN5cCtIRTMvNFoxNnh6ZUdadzZN?= =?utf-8?B?bXhOeUN6ZHBCb2c0Q3VqMHdMUU4vZWZUUDN4cStGSjFaMkljWjVETER6SWNU?= =?utf-8?B?NStaV1JyVmppOWxoc2NQQzU0TVVIdzFVNUQyU09WY0lFcXVjY1NSNUMwQVhE?= =?utf-8?B?cUc5aUJ5ZkkxRVhRZkZlZmlYTEtzZ05wK3J4UWdRSFNhVDJaL1g4OHIxMzRL?= =?utf-8?B?WkFVbkNyT3RPSTVrNDBWTXpRSkdnQVVXZUxldjZrTWZqUVEyUjdscmhZdWJU?= =?utf-8?B?SG5MaFRPVitVcWxOWEJvNkIvVHBWZFM4SDBNRElVSVppbkpFZDFxN0Zha295?= =?utf-8?B?cnUyaU1nNkNmNkR3UnZWaGI5SFNQekpUN3UxZHVmYkFqMVFLV0tScmJkZDBo?= =?utf-8?B?YlpmaUFacEI5TTN3ZHdlNTVsNEhKWUtNSElNZFZxeGxyMTBvMWpyWjJvUGZI?= =?utf-8?B?dG82QzVZM3JmTlNCNGxSNVBleXVhaTYwYVpzS3EvK0ZoWDFUeEd0QU9RMElS?= =?utf-8?B?VVB5MFVpN202b1ZTcnRBbFJaT3l1YlFFbTBUN1k3Mm92SEYyVFNpSkRKUnRH?= =?utf-8?B?Z0tuYTNlVHI3L1lCeWFLdzB1NlNrTHZqYWxlRENsSWdPSktNeXZ1aDg3Sy9o?= =?utf-8?B?dG11cTBoYnk3dVNLNUJmMzNWV0xMdjVpZUQ4bDdFWnJIMzNIcHczNDVzN2pp?= =?utf-8?B?MFhyVlpsZDRBL1NHWnJrRmlRNE9TS0lJY2xhNkRPc1dweEwzR01ZWkl4alpP?= =?utf-8?Q?OstOSaPhvPNQ18mw+pVM81U=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: 5992b2fc-2973-425e-5339-08dc74aea414 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 May 2024 07:14:20.5619 (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: Xuge6VfKB2ljl4YTZQ/E/xZ8T5gRIVk0l43YQ07Io8PHZ7Y9M9+Oep++v/t0NeghCDVY7h1ASVtboaz2hBpC82RJIVzQactkFG658EeVFJA9Yz00EhKa+aEjuIFYgiD5 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR07MB8496 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: 1715757433987100002 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..d951532e26 --- /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:20 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=1715757404; cv=pass; d=zohomail.com; s=zohoarc; b=K2kEuMS5qDq4hWqzZ/BfgSx1bJ3YUCh/DIsB0tIC601VIX+bhIFE+o49LCylxoRtSN22BHmN6I1EHPhATxw1DkE3qvw3T9XhCz7PCgXoHTjO9KvzcXBYvwR2B5jViRbn+qW+JY9Pkb0ykNfBYn2AnIoD4R0g/ZJuhmRM5Hw18B4= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1715757404; 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=QViL57WcqcSq2IAMyDPaufeO5kwcbqR2b6u/ZIg+Ojg=; b=k1H0bzVMwEzW6g99baffEVLqLd7mOmfrVEnOsHnPoeZqamWK3TrQoWlXqUyCZ8yy8UFdBpKa6Kvq2Q2pRJi5Sk8tKbtuKiKUt4dafSyJG9JpjZUrnH3eKI2Nl74Ied59eNysbwF52CTuuWJntyYlBbYVSVpJijaSNl4yFW3un0c= 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 1715757404677966.7083162455864; Wed, 15 May 2024 00:16:44 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s78rQ-0005FV-1t; Wed, 15 May 2024 03:15: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 1s78qs-0004no-RD for qemu-devel@nongnu.org; Wed, 15 May 2024 03:15:03 -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 1s78qo-0000oW-JK for qemu-devel@nongnu.org; Wed, 15 May 2024 03:15:00 -0400 Received: from mail-vi1eur04lp2050.outbound.protection.outlook.com (HELO EUR04-VI1-obe.outbound.protection.outlook.com) ([104.47.14.50]) by smarthost3.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 May 2024 09:14:22 +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: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%5]) with mapi id 15.20.7544.056; Wed, 15 May 2024 07:14:21 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1715757298; x=1747293298; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=QViL57WcqcSq2IAMyDPaufeO5kwcbqR2b6u/ZIg+Ojg=; b=mY+FZGiaq4dAPaewGmSfzSqzNcrrq3xtd/Ty10wTfqYMAlP+ORTAZ+xx gsymXyWmX+MpZKmpyDWonPoRC9ELvfwvoSCsY29fHSwcu7kZe46prlAw3 fPb1pAnfuMeqHKBvL47HGUTvLPCVJeyZy/jt+hY4z/zHKvDeeWnwHs2jT NMyNFd1i5qgSfeuyVizyy28Jsuyjp103aw5t2nMAfQCpSQi5hvh1bDqNt Rns7iZqbW/Bi689J2bktJsA8giyl4s4ycS08LewFaaN2Geb9lM05VT8gz iQ43FasUBwknsGbrylwKQgJAJq+/RMz+Kni16xpc4UYZq33cbE0n2qhUa A==; X-IronPort-AV: E=Sophos;i="6.08,161,1712613600"; d="scan'208";a="12581809" X-MGA-submission: =?us-ascii?q?MDEIjOj9D+TJEPC2Z9nPKwpjWohIQg+KbHBuXQ?= =?us-ascii?q?pqOaU+Y9iqVNVh95XxX+fHsknkNp0AQgUVKZ329q6sMv93wyUUGYGH2Z?= =?us-ascii?q?914zBq5IrPCD1rgCa+kYicJT9hQbYuK5njjO5ygnPiBEBNfxwiURhCRk?= =?us-ascii?q?meNGYHUhOFZUnXmurTsBcdZQ=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=L3oMg3fyu+NO9FJuWLwt82Q29aOKRcpjC/sSkJK0gaI68ZfC1prsGPMTd9fjluN+YfjSILi4fCqRC3Rbf8HQQ1QF511nL0LdSPv8GBc2zk/BXcFNi05TpF9BPMGLrIh3F7p0aPt+euy8FTPleg4FXQWpoWhUk3oGYmtrL4qlgQyo+SlrZG7Q0MZfVSnEyTdo85IOMT76naVVcWYjLbMn1QeX1h9w+vHm5XQpwH/ww/AZBvYojFTdYNT0QWgNrXIuZnrUxj7F5a66/EUen94nc6OJNCBJWwFp6zsxXStE8gOzm9OeOkNG75rq4M7CWpCgNQ+d6By33cObbJ48rBcbXQ== 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=QViL57WcqcSq2IAMyDPaufeO5kwcbqR2b6u/ZIg+Ojg=; b=aV7EJiQmQ97Ij8pvQ4YLRUEUkINsyjyUZhWiKKzzWYyY2LckMXpGEXK2FCVn/eMNrrm1QC8uxgiOqBoBW38I09duRNXlsKrymU3veqYiFVXIiVW3bRn4+wOigJMXObXMuHZc3u032afDPA9GPcj2om5hlEleEuQE5Lk/TyUZblhZPlLsG3oqHvxSAP8xLOUoNRxkwWF2uZBNkocttB4CADcwoa3745vTcrj//8lL9m02WrTVDnIfNCCC/aVD/dfBHHeElnkgEeBQNr92UV6TF01Ebf40EDmebFIBYwIouA9jimjqaW2m7MUxv69HIWKbuabOQO0YndDLDUEhKv79uA== 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 22/25] memory: add an API for ATS support Thread-Topic: [PATCH ats_vtd v2 22/25] memory: add an API for ATS support Thread-Index: AQHappeBZRL0InTYXUqH9Y6yKo3H3w== Date: Wed, 15 May 2024 07:14:21 +0000 Message-ID: <20240515071057.33990-23-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: c74efd5a-7d38-4920-2efb-08dc74aea46a 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?UUFYMWRJOWpUOXlSTVRlYnRRdk9DU0hsUzNWbTZqeU9qQ0ZNaGRsUnR6QzRP?= =?utf-8?B?MXpjVDUreG1HeEdvQjlxNUZVa1E0dW9EV0lyempCZ3JUMUo1VFRwQWxVNTc1?= =?utf-8?B?WU55NEw0UEY0ejBTK0lMOUhGQll1djRjTEpaV0FUdnplOVpEQUM4VkZMNy8x?= =?utf-8?B?ZU51TXlUWHI2dWVFMjRMc0Z3a2lPL1BKTWVDOHJHNlZDQjdRanplMDUzQ2xK?= =?utf-8?B?STFWQUZKRG52T20rWWtna2Q3RGRNekRjQ3VibmtVRVJ6anhBM2xFOVk1OURZ?= =?utf-8?B?NnBPSUFOQXl0UWVBbVBXSFd4VXRKdDRTU1dKaGpKUGJ1V3Y5UTYxaS91WmJE?= =?utf-8?B?VUFkRys0MTA1cnRkaUpieE1hQnJVaUpOcjhQeE9Zd1lnUGpjaWYwcWpUVmlG?= =?utf-8?B?M0d5a3NTcnorbitqS0Iwb0FvY2grdnVMWGRTd0FvYmRyaFI5RHZ5SmkzT09i?= =?utf-8?B?SzRkT3JHdkozZ0lxdzBkQWVJWXFoR2pEM3lsdmVuWmRvYmUxOEpZRGlqYTk1?= =?utf-8?B?Q1B5cVdCMTcrTzIxR1RlSnBTNG9Zc0svVGp6OVFLekJxQVJGeUNqeXhqaUtk?= =?utf-8?B?WE5jRmRwc1R6dUZUWHJjNHgxeGY5TmtaNHpETmdNdHFBZFJkOE9WR0ZxVHVt?= =?utf-8?B?djBPbEJ6RTNKRWRJQ1Y4VTdXOVNUQUhFd201NFE0MHlzck5hdWQwZ20rRksr?= =?utf-8?B?c1RiRWtSNm9vSHp2a1lNVnRDME85ZkorWjVKWTFtdnA1L1J2cFovTU9TWjIz?= =?utf-8?B?UCsrM3pxRm1seWptdWNaYVF4ZmR0MGZGUWh4bWZZREJWME1URTBHOE1VWHdO?= =?utf-8?B?WWw2akhOK1I2SHZqYmlYdnlwMTg4N2Z4WjVCQTNyNHo0USt0OGpHKzJ2czIy?= =?utf-8?B?RDV4ZVJXZzYzSVo4cmdsaC9na01OeE5UQzZUSW9oWVRDZmpGSGVlbmZzUnhP?= =?utf-8?B?cUplemFFZXBXVTJlay9JNUdBTm14cktVb2FOQVd1V3lnKzRFNDJyRWJId2pl?= =?utf-8?B?eEV4dE1mUWIzWWVLMlVUKzF0cXpFR0UxeFlCWUZteW85TWRENjNVT3FNUVZk?= =?utf-8?B?RUhrSDdNV2VzbXdjV29tNUpBV3lsY1B1akh2RnZWd3VFdXU3WStoYStqOG8z?= =?utf-8?B?VkhVdmtmQm5oc0FvTzNKbC9xMW1EbjUxMExlMEtCcEhjQ0RmUWh5KzFTSlhC?= =?utf-8?B?dnJCcFUxNitPUmhQcmRneHFOZXdJUFJ6QjlnY2NwWThWOG5kOUthYi90N24z?= =?utf-8?B?eGFDeFRTWjY1Zlc5NU5keUUyRGRGcDFwamY2NXAxajdYSWF4RHBpNjdPMHhO?= =?utf-8?B?WnNhTEc0YzhMdFhPbktXRDdVbVZRUmRXb3Q3YlZQK1ZmZjJ3WE5TelIrOVMr?= =?utf-8?B?RVpLdk5HZzFIMGZjN2FXWFR5cVlzZ1J1THBLekJxdTBPVHhXdGZ1ZjIrRUF4?= =?utf-8?B?WGYwZkpIeTdYLzY0WGZTN1BlVEs4Y2xZaHNlZTdmSUY3RGFRa3lZdi9QMkRB?= =?utf-8?B?bW1jbEVQZHZNZE42cCs1OXNSclRCZVhEZHAydS94RXdpUXJla3lsRGZBd0tp?= =?utf-8?B?VG5iblRQZWM4eE1IdmpqUVBHQkZxcFRXOTdlVHlLSkhSSUZvdzlhWmp2cDUx?= =?utf-8?B?c05xUmlkTDFlRjRKQ2QrYXgzemlZQ1hCMGZGa1djc3RhaGpHTmg2b3lxMTl2?= =?utf-8?B?VVVkTEtCUXNCY2Z1NmRtRGlMWFFkKzlQczBOcko5K3YwbFVRanlMVnNDQkl2?= =?utf-8?B?SmZ3THZjUnpLWFI3RXl4WHZsYjJ4cmkvTVA0R3doN3BxRXU2SUpZYWlSdFor?= =?utf-8?B?VUhtM29VN2tIVUVnUnN4Zz09?= 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?UTRaTGEyUjEwR2ZmWXQwYlNMcFg5TmRnZW85ZHR6UUJ1bm5WY3hld2x2Vldk?= =?utf-8?B?eW8vRlN3aVRZU2FXTFpaYUtySXFsMFY3UVh3TmVvMEZ3TDVvMWRqMEQ5ZUVL?= =?utf-8?B?WDNMbnhMQjBDZlR0V3FKQi8yeXYvalpTZEVVYjUyVEhuTTZlV2pkbjdLV25T?= =?utf-8?B?QzA5UkpGNTg1eXY0RnF1WVFZTnorVnRYTVFmZ1pSNlVmSmlKZU5vSG9nLyt6?= =?utf-8?B?ZE9kNUpHdytwOC93L25MMUZscHVNWXlJT253WlVsNlRMM2NJTWIrQzJwYU53?= =?utf-8?B?dit6MzZ0blBIKy9ib1NsQUJ2KzBPUWlJRTJ6YWh0Ky82T0RzZTJBZFhNcnNY?= =?utf-8?B?ZzVCT2VaM0JuT0dHeVdvdzA0SWg3UEs3YTU5dzRuc0pDZ3lvZ0o1THJvOURE?= =?utf-8?B?THdsQXloTzlNTzdCZVpyNGdWdWRoMElzRmdIamU1bVNPU2psblI2dVlOTi9X?= =?utf-8?B?U0lEYkh0aGdvb2IvRnp1cUNpWnJzY1FHVnNjVk1kVHVWQTNGNXV4ZDRUaklu?= =?utf-8?B?dmdHV2Raem43VFpyUEtySlR1MENxZjA5OVhwaUMxS3VCSnRGOW0rRnpaUDBU?= =?utf-8?B?dExmU1ZFRURCR05CenhRelQ5SzFrWFBCKytQcmRqSzFGMEZpYitseXpFcUVr?= =?utf-8?B?V2EvNE1zN0tkYkRwR1FUcFJQZlAvNlF6UHFhc1YrRnVPVVpxNmxPYnFka1E1?= =?utf-8?B?QnFDcWZMZ0lxakVyL2Rhc1dLZmtIRlovdU9wMDB3MjVNOXNkRUhkbDgycXps?= =?utf-8?B?aExtOHhWM01nTEJxVm1ZVXN0QW5UdklpRld4VUJTbDgrdjVwRUc4TkcyNDhp?= =?utf-8?B?Z1dwMisrNmJkVTFXaGltbFNmWDA4YWxaY1o3S2FCWnJzc1Y0c3BTdTkxMmRH?= =?utf-8?B?VGdlcHlGM2hLeGZLSHRwQVJGNERQdTEzdTNUSTVtb2w2M1FScGVrc3hTRDVI?= =?utf-8?B?L3Q3bmZOd2xnOFQxYVhNdDYzQWN4a1AyRi90Vk5uay9nN1hCbHJIZWtubDNH?= =?utf-8?B?eWxuZHdGTEtJZXVHaHNmNFRSTlpVWWJJK1hxRmVjODgvSlNnMnhLdEJaY1RO?= =?utf-8?B?Sm1WL1hmQ1J1NzRiNXdBQ0hyajZWZlZmaXFUKy9laFlmYmRPUWc1Wmg3MDlE?= =?utf-8?B?MXk0czRrY3BYQVV0WnJHVkw2b1JlOGcveGdIdCttK0EyV3pONkVlQkYrY3ZL?= =?utf-8?B?NWVPdkRlaVA4eXBhZWtscGh3UksycVVnWUlTd1hweVB6VVFib3ZzZ1Rib1ZO?= =?utf-8?B?RDZva245L3h2dVlsTmNwVXBxUHBuZ2JqRVRrdjMzR0RYZUtMRmFidythb05x?= =?utf-8?B?Tzh2RDBjVTZoMWJlYVZwNUNsK1dveGhtSUY2SFFQTDRZYUgvNTVtdnY2c2Zh?= =?utf-8?B?enBsV0Yvd09RbHJKUzZhK1d2WVBodld1Rmo1VTEwb3U4cExRVlQyeDE3dEQ3?= =?utf-8?B?VE0wOFM4MHhWZmZVL2tEbkpLYTRjc3FMNC9vM0pvTFhqczRvcFE0VVJRTDB2?= =?utf-8?B?SE1OQVFESWJTTmdLWitDNW5MelAwR2FSN3FGekZPWWxmYVpaNnUrMTl1SThF?= =?utf-8?B?cEc1elBwSzYwMFJ6NmRLSXFpdEhtNjN1eG84b3I2TGVmbEJaUjY5NHJLMHE3?= =?utf-8?B?UlRhVlB6UXRRN04wUGF6aXlqaGoxUjlrTGdJMy9VWnB1KzZqQmlLMXhkUEJm?= =?utf-8?B?VnRHMy9Ka3lSb0kvK2orUzNrS1lwYnlydXd2UzA5a28vM2tXZDFwZzlTTUVx?= =?utf-8?B?S1VKN0RVdlAzZG8vRU8wTGNoejVIa2lFR0tXcEtGb1IrTWcwaGR5RFVRSVdZ?= =?utf-8?B?Q01qWEhXRFF5cUVzY0Q3alNnTVFUc1F5c1M1aFZ6THJOTWlXbElLbXlpNTA4?= =?utf-8?B?V3dWWUtkb2xsOFgzS1drTUdrSGxHQlM3N1RHKzRydTZ3cW5IVmpxd0ZWdUlV?= =?utf-8?B?TUVEV2xMd1JQYW11b1lGTEY0RjcvWmVlUVk4cXlLcGN1N01UR0RyS1hXWnNq?= =?utf-8?B?c1JZZnpodHgvdnJJRUl3aS9LNFpDaXVVcDZKM0FiS2M5SkJ1MGo5NHprNGNt?= =?utf-8?B?Q08wZ2cwSzhzR3RHblE3cHZwNE9peVgrTkU0TDAwVkFic0xRQ1JSdnF2dVEz?= =?utf-8?B?RlM5Umx1cGswMTNuNkhiUjlHNmV0bEhxdDJxTytwTjdOS1dIQU85NkdnMVRx?= =?utf-8?Q?GbDhjCvVWCJKYDCtEHCVNfg=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: c74efd5a-7d38-4920-2efb-08dc74aea46a X-MS-Exchange-CrossTenant-originalarrivaltime: 15 May 2024 07:14:21.0731 (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: 7A6C/3ujJFloHWaiH5DXwHLgpxu4qDow5S3AtpDeFgpuJnixaCPzbaJetmot896wltA+m+KP5WEhYPEb5q0WxvzxbOXNBvPOoBjhD2MeSCcZ/gwe3wlfMSPbPd72YGGd 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: 1715757405817100004 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 198b71e9af..98b02b942c 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:20 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=1715757459; cv=pass; d=zohomail.com; s=zohoarc; b=FiVGxFNWds93iN0JJt+yoyEWsGZSHC5ntcxZLHgwp4PdfoVmxWQlzn4pL1JlONdm1KW0Lyd2gSR2PaRMttfUltBX3hl5+SKhl3xI+0CgZYUsWHH3oOKSaQU3wz7FCPymiFL8bLauEENvx9Lbj8tk5JSOvQJ0NN2NfabiG1EtK3w= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1715757459; 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=VWlIX1VzRzwG75UfxtkfPvYMR3owUrVk6gP7Psf/+C4=; b=Uddvy1zNrJVeg+3BuppEIcVXKVleCDKepKJc4lPvaLvfXDfP9naLhjbx9sFFTR396s9jJWoHrBlbrhy5fGNNz04Ak3b/CrFp9ojkFKlJ8njbVcWXXTYYuG0NNXJumCp8TIwnTX0xIuN0umBah0rjvFoQEhhxkDifGidh2l/LJ6E= 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 1715757459319790.0097678746082; Wed, 15 May 2024 00:17:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s78rQ-0005Ej-0Q; Wed, 15 May 2024 03:15: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 1s78qr-0004hG-CA for qemu-devel@nongnu.org; Wed, 15 May 2024 03:15:03 -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 1s78qp-0000oJ-FE for qemu-devel@nongnu.org; Wed, 15 May 2024 03:15:01 -0400 Received: from mail-vi1eur04lp2050.outbound.protection.outlook.com (HELO EUR04-VI1-obe.outbound.protection.outlook.com) ([104.47.14.50]) by smarthost3.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 May 2024 09:14:22 +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: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%5]) with mapi id 15.20.7544.056; Wed, 15 May 2024 07:14:21 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1715757299; x=1747293299; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=VWlIX1VzRzwG75UfxtkfPvYMR3owUrVk6gP7Psf/+C4=; b=QvFqXNffn9MC57EjWtuTJNnAE1F+EormEdzrgAhDZCGEGEnMBaypiJMP vjNufX4YvDknC7FOOu7rWDWR8MjWnmlzFhoQu9/wG5GjZ4130WgxUc+fR opntE2o0m3hGpqsjLXpF5I3cXV9UZSlvvPMH6tJxMf+p3lNcKc8YjN129 49WrhNleNPA7IhPjSij3qnIcA0KFj4eMxyiRQU/QfWLLotFei2uKTGX72 qEn4uCYEnYmXkD1mfbyw0TCJ9HZGAsY936Kku0fGbc+c3bIPfvNux+lbV 0mOieYYHNdx3ovsaHfZHwdhKFADTQq7ceeylWXTaO/F1yfNf4b+T1YVgr A==; X-IronPort-AV: E=Sophos;i="6.08,161,1712613600"; d="scan'208";a="12581812" X-MGA-submission: =?us-ascii?q?MDEr9loOd5xbA7r3vDslgYzEW29fy2YztUKYO7?= =?us-ascii?q?6rIm20WIjSlnYgkx88kP/IBIcOk7Z9yVY3J6/AD9bp2tTr7dnmNV9BvL?= =?us-ascii?q?5YzzJkyv8YXVVAaIrnV6hjcmmLjqNNGLfoZ4NpcRSWOVuZd7rdHwcWH8?= =?us-ascii?q?3v46P0ubH5H/OOSxUa4k+cFw=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=b5yYMpnam6XsIRMgQHout6eU2+T0/NHQONU5X4oJmbVzXXZwMxRFVruX8x8dRCiMK9RAdXMcZXW3eB2cxoaDTaVbnghZYNaTpvqeP9idRZnpwSCvWiay+1GTcOS1JXLrkeEl84gDxtUfPaKI9p1kJ1O3UBYiZK6lNT9i4yYui+xOzpV9Z79ocfZnXV/nmhJxrQw5ZliBRXTAO6/qad1aa477VlidZNG5OweMl/1KMDvaDwUeTchGX4SQL0mbkGLXo1KlNEmK2MwTxvi2GGA9yAheNrePm/PAxheCbmhPw/E2JJmoonjva84OpPalqvheAzR6EGDwPdbwptxLyt9odw== 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=VWlIX1VzRzwG75UfxtkfPvYMR3owUrVk6gP7Psf/+C4=; b=iwvtcDy6D7/jkzmJDJsfJJhgsqdhWV9UrKRw1cS1OdD5T7lc352XPDd0QXFdOCMx1EdjIXGAfAK7kzFdQwNjwdE174ywh56nzB8MRf3VNNjVqvu8YhtVFfP5nkuOFa0DbCpvDmBkRjHvPwGAxk9nwqKX8Sx8/qlEt0jnhgDo3NUaccaWX1lE2Umubp79q6wUL1zI0/f25tlMdOET2mu61pZpopLcV/TlF9rBU2AiCHYeN8PUB94jx5vkvhPvfkj4OiZcqq0VKEKoH2mJONkFQzb0P1BMoQRxuv7PnR/YMxr3wQqnEpzYDxmZ7eFkGnYIkCKuetlfyfLzpTo/BDKUXQ== 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 23/25] pci: add a pci-level API for ATS Thread-Topic: [PATCH ats_vtd v2 23/25] pci: add a pci-level API for ATS Thread-Index: AQHappeC13mp6/hTPU+N/vB4OMaWEQ== Date: Wed, 15 May 2024 07:14:21 +0000 Message-ID: <20240515071057.33990-24-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: c6890e1a-d55a-4bbf-d78c-08dc74aea499 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?d0xmcVlGcGdESEtPNGg5amVCNVFscHUzV0NWd2wvQ05zZUxUQ2RRcm1YL2Rk?= =?utf-8?B?MUV1OHlmSDk1MzZDNVk1ajdMY2xIRGtFTjBrMVVJN1Z0S3FONGQzRVhzWHlK?= =?utf-8?B?MWV2OEliL3BPYjR5eGlObnJaZ2VXRUY4ZlpWQzVGVWo3bTBkTm90RU9JZmlq?= =?utf-8?B?bW1hVmo4S0wvOVZxYS9PZ01rbW45SGdEYmZ4ZTI3VjVwMkpybGRTTDRXcHlj?= =?utf-8?B?d2MxTTY2OXlnUzNGbTB5ZE5DV3Z6SHVCUkNKZFZGZW8rQWJXRExjOWJlTWpy?= =?utf-8?B?UWI2WWVxKytvMEZmSHZCbEFVVWtmVjRldFhjTi9qczhadDRXQkd1K1ltYkRO?= =?utf-8?B?Q0Jqa0x5MHRuMW9xa1oyMUNpNk5Obkd6aUpTWUF4SDhQMmdQTmVNSm9tYnd2?= =?utf-8?B?clJYbms3anFCSkFic1laY0o1dU4yMVAzSExVVVFUbU9mdTVrKzA4Z1BGSVNz?= =?utf-8?B?alhVZGlqYS96S21MeG5STCtycjcvVWlLWmhybFlLRVNxTEIzb3A3M1cxRHZL?= =?utf-8?B?bi96V0dKV05HQTRybGQ5NWNVSlh1dmJsZExpQ1NKdDNMYzFCNW51bDRpWVJQ?= =?utf-8?B?d0pzdDZWWVBYc2laL1hiSzlmWnhZcEhzRnBuVCtqNnN0cWc3NUQyVXJpaVpn?= =?utf-8?B?Q2traHIzakdBRDBueDRrQU5lYXN0by9oUEZRSnMvUzVOWGZTSUIwcmdEb3NY?= =?utf-8?B?ZUlUeldtSzJteWMxbW40N1JqN3MzRWV2VDlDOGxVeVROVC9ubVdZUVZRTHNC?= =?utf-8?B?QldPY1VzQ09Ra0l4VmZCNkk0SGh0RWpHYk1Zcklrb3FQZlk3ZnA2UXNhTWVo?= =?utf-8?B?YkZKUERMY0hsUlpvWERmbGtsNWROMjZ0MmNCY3AvNXJKVUNqd09vamhQNGtr?= =?utf-8?B?bWwySTVORUVNY0Y4RjFNSVRUMzlkdExYbmZTcUJyQnlLb0FTdTFZOHgwV0Y5?= =?utf-8?B?ajNaQjlsNlZzbXF1N2xUbEJqZStjaUd0WEJ5OXJrS3IzRlBCZ01vNzdmUnNk?= =?utf-8?B?a0J4VUh1akQwYm1LcXE3aGpYdElLd0ZuY2IwbEZhK1FEb0lCdjVoZnBGN2dh?= =?utf-8?B?WGU3Tzg1aU55WTJJdDZid2hmOU5NRVlFN1NEVnludm04bE1wNjhvOXh6dGM5?= =?utf-8?B?bXJqUU5qNjZlSklnUm5pM1B4UEV0UG5wcno3di9vU3RsQ3k1MlpUUmVCMitH?= =?utf-8?B?b3VZenM0Wk12cTB4RkRxN2xHOVNFblI4WWU1U1JXbTd3TWNEWCtVZmtMai84?= =?utf-8?B?c1NvUm8rU2taYUZ4NGxVUmE4cGtMNHZkaU9PeksvZklqSUNVcGl2aUtKVnV0?= =?utf-8?B?TFlKcHluNEd3eTljK2FaRW90eGtqYlFjbHlpNzZtUk84Y0c4T3lEVnpod0VG?= =?utf-8?B?SGs3dFBrZUhRZWxpVW5zWlU1ZXJiMXhRQjFlNWdhR05VSll4K3hGNEc0OElG?= =?utf-8?B?L3RQYmZEdjNoOTRvSVRCZmdvWW5aL1hYeEQ2WFhLWjQvRmpJUkhOU1ZtSXFt?= =?utf-8?B?WkYxcWsrWkorWTIyK21VREdzVlVMRS9lWTJjV0UxZDNKaVBhUWg4aEFla2Q1?= =?utf-8?B?K2ZPWEF5bGdHYXZiNW9BUFF5ek16YlNvbkFTY1JKTnRoY3QzdjlpakxXdGt3?= =?utf-8?B?SU16T3FPd1hnV01lMDVKalhVNCtEc1NvUllkekxBWHhobWR5VFRPMU9wMkdI?= =?utf-8?B?c2ZrZms2Z2kvNUpab2hlT29oYzUzUEU2YUFBVmV3cFA0SzdIelVnR05lYjNo?= =?utf-8?B?K3RTcDFRaHZzWWpxc0xESmJwNVJEdHM1UUM3RHB1dlJSN3VlVm9wMnhWb3Zy?= =?utf-8?B?eWRrZFlQRFpzcW40Q3crZz09?= 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?YWxxVHY1RWp6UEhRditab0R5aW80R21Fc0E3eGV6WkJremxqZ2E2ZUFtK2hn?= =?utf-8?B?dlg3Q21nZFEwTEFqUHJiSERBMWp6OFprTkpPOXF0bnE5UDBKcnF0S2RwL3My?= =?utf-8?B?UHp1NmFFOFBWU282SHM3WjM0RWNFNGFXV2Y2UEJDM3k1c0hlclViZGg1RkVB?= =?utf-8?B?V3RyOW9wQzlhaXhBNFU5dXZUNFY4bFlnUHB5enFlUnBDTTB5ZTJvVnZTb2J2?= =?utf-8?B?eFQzd2pES2JVTUFVeGNFeGZldURySzgxUkV1eWY0ejBDTS9vRncveEV4UlRH?= =?utf-8?B?WG52YnhjNDVKTy8rb0ViVGJDOFhmOHBtOTI3bGo5RXltRXlnRm52YkpRdGhx?= =?utf-8?B?UVk0cmlta3krZ0duSFN5ZGRHeFZHdkc0OGtReURkQlZ6VVdxSjlPM3RmQWlx?= =?utf-8?B?S1JqOWFURVcySzJxMDdHRHhLN25QV2d1SWVVQmNwdlU1N1RaUUo0YzIwZmZ0?= =?utf-8?B?amZTNHpZc2gwL2ovUmFBNTFjUVRZNGxJRnN1eGRScG9OZFlQckVXbzlwRkxR?= =?utf-8?B?NUkvd212TklST1JnVS9tOFNHVms1dmw5U1F6R3FLalUxU2pSZ3JxMzZJN0E4?= =?utf-8?B?aEFMbC93ZGJZL0o1UEMyeWhUOGx2UVc4RlBNbXpUQTVCNTlRRHZuM1IrTmF0?= =?utf-8?B?V0F3TXNydC9LZStya0dsZS9QTTZHN1FkTndxa3NhTGdzVVh5azN0NDluMXoz?= =?utf-8?B?WmRZb3hLd0k2akVuS0ZXU0xEMU9xUkJZQnV0aDhORFUxVnhUMmdRY1Z4VUtm?= =?utf-8?B?cWZvbVhEbC95ZUsrUFYwSXRnY2dpTGtwSEYrZ1VEb0tDN3dydllTb2t0VVZZ?= =?utf-8?B?bDlORkMwNUJTUitYbktxYkFEZDU3MjRnSXlQenV5YnVBWGdvVkVVOXFnWWZG?= =?utf-8?B?UTdUWWNxU2FWMGtQMVByT01YR1NZUmM2TnVHT3VxandOOFlrNGx6YnRkWFZ6?= =?utf-8?B?aG10cENBVzVBU3hrd2tIMDRwSVU4ckI1cWZhYjIxWkNtZjF6SjNnSWVlSTZp?= =?utf-8?B?aWlDZnZhc1NkOW1IeHhCRExYODRLOXBvcDZaMlFYcCsweGJ6dnZrQStDSHVB?= =?utf-8?B?MmZWWFVvTEEwVmpKWWZYZGZkMm1sc0tjVktUKzhPZ2xFbVpVT2NqbjlTamVT?= =?utf-8?B?K1l1c0U5c0NuTWhNR1V0OTVoRzhnOHJyYmFwVnEzNDlORzVkNkVLSnM2S3pp?= =?utf-8?B?dnJhRGk4OE9lbDk5TVN1UUpVdS9zaHJtQmwzNUdmdFAzUGFLRTJkNWNjMGUv?= =?utf-8?B?bDcwT3ppNHpXTE4reWZSYUFKanZEV3hTQ0xzV0FwTTFiOENSN3dHTjNldGVD?= =?utf-8?B?UTBRMFJxcHdCTC9ROXNqaGZMaTRTRVJCcnczRnVSaVlkbFNqeEVnNWNwU2J2?= =?utf-8?B?N0o2UXdTYVc0V0huYVlFS2prT09oNzQxSXV6T2I5TkFBTUFlVTljYStoNlgr?= =?utf-8?B?WHZ4QWdLQ0szZFRDNGIvazFrelhjbk5DcWo1MWtyTi82UzhjQWl0S1k4ODJl?= =?utf-8?B?Z1Ywdm9yOUJOVUx6Ymp5SzkxQjBUU1FmV2hPcEtvZG1meU50ZTI4cDZObGw1?= =?utf-8?B?NEY1eSswbjdwNTFoNHc2NmJ6UWFXMG1pWkk0elNnbng4Wnd2UjE1TVBxU1FU?= =?utf-8?B?MWhNL21hZ1FrYUlQOFRkUXMzZW5iSDVWQjVIZSt5M3VxY1Q5RHk5MTVoMzBE?= =?utf-8?B?OGJhNkdSKzdOOE9XSWNjZktJWkxJS01nK1B4Tmd5bXBtNENqOTE5a2RyOUZi?= =?utf-8?B?Q3VSWWlSVW04OXNaSWFhQmNjWVpVdVlzSzJZVjRWamxteksvYWtZZ3hxNGRP?= =?utf-8?B?V2ozeXpiTkgzTHdCUGd4cVorMWtUSEk0QnNma25jNXV1L3A2RU1wbHJVSnI1?= =?utf-8?B?VVhvZGF1RmFOVTE0R1FGNzRTL2xoSFc1elkwZXkvajhaNmtDZHhRTitsdDVY?= =?utf-8?B?YUJ2Y2FRV0FLNkxFamtwenFsa0UyUVU5THhmaWNTQVl6TkM1eG1EelFvTXdt?= =?utf-8?B?UlIvZnBIZjNONkNQblpxQ3FZOWQwVHNzcTZjYzdBbHliN3ZGbTF0UE5wSnlE?= =?utf-8?B?Q1JZUGE2Rkx1VjNuV2F4cEhrSlQxN1laYzhwbnlNUENsRytLMis2YXZnNkNy?= =?utf-8?B?OHhoN0JTYUlFSzFhWGhQRmtFbGg5SW1vdWUxdFNyajdUMUJST3hqRkExYzJj?= =?utf-8?Q?iVHhHbBcVek2RjHf6qhFL/U=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <8E32D1496CCC9D428814EC5D434F237F@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: c6890e1a-d55a-4bbf-d78c-08dc74aea499 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 May 2024 07:14:21.4259 (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: jxVsZMgVswgkwJQU6fu2CPS18AYsplnPnOBGHbC9UIvTmSA0QLw+WNmh0FbPEU5IYBhB9KCs6/5vRiEz46Rqr/b4sQMYOqtAy2vHJgrT2/41wK3W5is3VBh4M2GtwdkH 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: 1715757460044100003 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 f90eb04fda..20b838657e 100644 --- a/hw/pci/pci.c +++ b/hw/pci/pci.c @@ -2831,6 +2831,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:20 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=1715757364; cv=pass; d=zohomail.com; s=zohoarc; b=X7q04rU+rPobD+gVIueITb692MqWyIP2OLpopEZorSmUvIpZfFbDWncws91Z08ETFPh7BTKLGs9nMyb1R9lx6NPRVB68/KUgdyCcD187A4sqoXQZj03qKMUC8aaSalqQh3LC7jqJNOEMiSNT3lnHGkO9Hhia1LeeHYNKJS1iWII= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1715757364; 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=79+D25oBaPoMjf9fMPZ/2SPwoo4FJ0Jwk2KUD7UjEb8=; b=BMo19F3hyNdjfSb5c5Q79TGK9FVX0xDEUl0r79TD00NBCarblAm/yIy85g2dWqtV0233lYQQm4xLyspspmU3wVfEXyvnKRrg2xRuyiHKrdXwVcBCzoiM9LvBEuLi+i8ou6Cp5a1DBl8J7UpyFkQ/+M9eQBr2kijfDdwlo6FYt5I= 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 1715757364493284.9090651330981; Wed, 15 May 2024 00:16:04 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s78rj-00061D-Sa; Wed, 15 May 2024 03:15:55 -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 1s78r7-00050u-Gg for qemu-devel@nongnu.org; Wed, 15 May 2024 03:15:20 -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-0000oW-4u for qemu-devel@nongnu.org; Wed, 15 May 2024 03:15:17 -0400 Received: from mail-vi1eur04lp2050.outbound.protection.outlook.com (HELO EUR04-VI1-obe.outbound.protection.outlook.com) ([104.47.14.50]) 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: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%5]) with mapi id 15.20.7544.056; Wed, 15 May 2024 07:14:21 +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=79+D25oBaPoMjf9fMPZ/2SPwoo4FJ0Jwk2KUD7UjEb8=; b=fC7G19JzEFXngo+VZWeTHNBnnTE1IbrvYGdXYPqpz4syONn/arFzJZE1 K6lv7/uDcamSLXloxkRgYOvUyoXbkMoc87PPrDoYk3bQ2ZB6v331IYqeR JOf/D/zZDUnzdlH+aXbCzSRWSrJMV/Eo5FHdLQFiFD2GPMgYk35GB0dbQ s4z5be39j5jyl7Y3TKqgZ83o24u1cAGJInCsI2N7/2J7BshHYqhXD4K2/ 1G1JSUFabsonYt3yf3kH+iq7c10nLUWRtOTUihAevo3ol9CYj24Kw3qPE FgFYnyZq4gjyUeT4h3EhVIXD0XZF1ONwqdQunPmJdERdMPayn4b/rXc7k w==; X-IronPort-AV: E=Sophos;i="6.08,161,1712613600"; d="scan'208";a="12581815" X-MGA-submission: =?us-ascii?q?MDFTp6OHjzhp7RWTi6kCZkZIr7fko7SNmiFLnY?= =?us-ascii?q?kt26F6eX4XPMeK7jcdD+I2c8NMHf8bQHrSZ6qcZnIHQihBzwZfNkyGTX?= =?us-ascii?q?lWqAsP2r53CdwHrnx933P1oXxQV1imgpkL/MVxfVtAKJyjNeMIqzZM9G?= =?us-ascii?q?iS9oHXa31XvUb/WQlsOWEjrA=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZzsEFt9xqQzez0PC6HbpLtIiGmMMH81J2Bj9MbUGAV3ul2CMVWk3Y8oCck6ufDzimRqpv5qtdYXUB2S72NCZIxNGWfacug0gy1h7m0KqznozYHOAcmu0xsbO51iwCIJP36oaM1EBT29nUZpBijsVZOktVQhJ8ar9wp+Z3Kio1F5DtWbCxqlRWAqdFxTBNFybtbTL0RpDC6LsVkrPXH/yXrx9ZRmYRAqot8O957rtSkCugJVcsBH1wNW9ClDVjToFB8XwX7yw/PAOwrpZWA3llweHwFV3JQotJI6k1myDPNN+fJ9l8hNAMoogIhrIm1ooUwGpE7V5GextXdNMN0sdbQ== 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=79+D25oBaPoMjf9fMPZ/2SPwoo4FJ0Jwk2KUD7UjEb8=; b=Hydo3OwMvt6h103LqJc8DhdkAL1eqtqR0A8vRvVZOTPqg7J5BgHH7l5NSdnkCizUbfwlzgj3wmLYDQfuvW1ErDqhTaHMsZf368svj4adZy+PfRZyp17bBZJ1nDSTBrBoFHc7sFUm96EMXiz51q3MDZibBzwBqgMGeOdxkAbUPYuvJEIgvV7JGDkkiyza/OlpbhJ568tKp7itBjPIGWVxeSASvBoVCRNQQHg8N23lzdBTGeNWvtDVVAvgH7zAVMXvZbQu4gA9LszwF4O9bFlB54NvSHMHV5lgDaBMkBrQ+6oaziBGU8sEOzDEQKvUSWrO9fv5rSR224oKJd2Zs96b6g== 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 24/25] intel_iommu: set the address mask even when a translation fails Thread-Topic: [PATCH ats_vtd v2 24/25] intel_iommu: set the address mask even when a translation fails Thread-Index: AQHappeCe/bWBpU6GkuYFT4q/AqGqg== Date: Wed, 15 May 2024 07:14:21 +0000 Message-ID: <20240515071057.33990-25-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: 9a4ebdd6-92ea-40c5-8986-08dc74aea4c9 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?ZzNmbkpoUGJjZitHM0xQeHVXeXd6Z0tFN0tFTE53QTNYbEQ1U0tVclpUREVk?= =?utf-8?B?Y2x1YmhTR0ZrZFBuVStxcXo4cjdJT3hYcHBZTitaWVhiUkNZMVo4OXFTV3NY?= =?utf-8?B?Q3hkb1NjR2xycUdzRkRVYVY0MGtLMUxrVmFxU1JYb2JpdFRybXdvNDBFSUcz?= =?utf-8?B?MnJ6aWtHTklaR0VkOHcwU05GNnlsaTAwREhYek5kOGVmZFhwUG5vakNETTRO?= =?utf-8?B?TjFRRjY2VW5uY2RqN210NDRreW1wN3NXd1RnUkVLdlhxWFR2eEUyWEYrYS8w?= =?utf-8?B?R2pQQnJpa3FkNGlrUU1ZUHdTVGFuUDM0L2ZjSEpSY3JRY1I0aUlWYXdRbmRt?= =?utf-8?B?aUpwSkR2UWIvSWttWHNseEpCSWk4ZHM2dUJLNzlnTjUzd3ZBR2Q1V05ReG55?= =?utf-8?B?WW1JZFI1SlpWWTNaazR6dG5ieXpHNFpGUkpBSExwTWRVSHFWeWprRkM3a096?= =?utf-8?B?OC85TXNmam93K3NFRTRiZ0ZtZStKOWN6Um5sUEFFQ2JXTHVVcmg0V3VpRFpS?= =?utf-8?B?VFBUaFhHR1FrbW01S082U2g5MzZQV0l6YUtXamNjbHlkNXIzdktzclI3K0tE?= =?utf-8?B?bVIvdTBwT3kremVGYUVjUXBUOWRKY3VxVmkxK1QwdW8zUWFUQ09QYVErbEJT?= =?utf-8?B?ZEgyMDNCQlpuQTRSS3FBS2NYUlFwclRCRnpJMUJ6VHEydDNIQUM5UXBQaGRL?= =?utf-8?B?djcweHpxUTNWbW8xL3ZvOXlTY2dBTlhBMWl3UjF3K0ptUkhyM09KcitQVTM3?= =?utf-8?B?eDdHLzkwb0pmVXNxT1d5VDVrL0NkTTVPNEJWTG13M2puNERTQjdlY0I3cVdK?= =?utf-8?B?OERleE0wQjlUOG1nTzh0RXFrQmhBZG56WUFnVk4wS0JyV1lQYmhwQjhiU3ZR?= =?utf-8?B?T2RRQzBQODUyK3VwUkR1cU1DQzFSZVlFdHpYOTRnNGJrdklDWFpQWE1FK0JH?= =?utf-8?B?ZkxCS0lWaEhiNWIyd2tKNWdycFYvUnhIb0JwYzB6dEZDUlpKbnpKUDkxejlE?= =?utf-8?B?M0R6TlVtOERWMHhvajRsMkxnZ3BicVN3LzRTbDcwT2VSQmNTYm9LZ0NSekJk?= =?utf-8?B?elpyYUloTlpjWWR0NHQzdXM0aEEyT1JidjJMbnIvSE95NE1MTVA4MlNNOVRp?= =?utf-8?B?MFpweEkyOVQzRzhhUGpQZWppeVFzSi9MMjBBQThpY2duK3QvY0N3d2pQWXRh?= =?utf-8?B?aWN1RmtzRVpGY2M4UzNOSU94dVNpWDlkNWFQMGFXZm9oVDJnajNFcEhoSzh0?= =?utf-8?B?eUl3L3pYcGk0bWdwYkh6akQ1NEoyVFk3SittUk5YU0plVWxHeDdFMzdCNWIy?= =?utf-8?B?cWV5d3FhT3ZYa092cFU0WVpsUVFJOEVyVEVNNm4vTEpIbk5IZ0ZFQzhSanN0?= =?utf-8?B?MDdmWTJqc2dLaTJOUm05WVh6MHZRODdjdkQzMUptMG1wK3NSN200SVJLdFdQ?= =?utf-8?B?RCsxTUxjWkpqdEZUWkdTVU0vZm9tWmxEQjROMjBVMmpVRkIwUXF1dEVtSEV3?= =?utf-8?B?aEtvZmlNdGhxOHhCMndpK0NaTjdLU0VBRHA2NkdDZG5kaG00NEdrNHYrcGVJ?= =?utf-8?B?TkxYU3FKU3BjVFJTTnFnUENEdGlvWWN0NTc2d01PcVZxZkdOaUpJOTlDSHJv?= =?utf-8?B?ZXlXMENhMHljSzdDUVFjVVFpWktYZWx6K3cvdW1hbjRzY3Noa0M4MURKSUNz?= =?utf-8?B?TEdZaUFBNU5jektTOGtaeHRzZTB4bjlwVi9RVkZoVWNRL1NrbkxabFo4T1Z1?= =?utf-8?B?eVk5bTdJRVJrL3JBWWQyQ0dpSFdKQVBuZnBjM3pNLy9GemVtUGh2d1J1amZQ?= =?utf-8?B?aUQ4akRTdjBrSkpPdXM5dz09?= 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?UTF6TDBhZG1jVUE3SFF5Z2EyWTdtNEpudnBDVG80dEwzNEg0NS9WdjNSdThy?= =?utf-8?B?RWJFOUM0M1p2eGU5M1BlbXU3aGlBdi9vaVlvTTJQMmVXQ05IT3hBeXJ6cDI0?= =?utf-8?B?d2dnUkpualI3SWpwbWxpZUpJR1pYUDVoVk55YWduMVJNVEUvNENLSDRoNE9H?= =?utf-8?B?dTZEcDRnV3BOUmxyeng5eGs3ZUFhRXFldG5ldEYvMmRtWVRkTEpqOUpINzNu?= =?utf-8?B?Ny8vZnhYc2MzbHFuZUhOcEg4SFJOdjZEOTN1dFd3ZDRaUlZHWWhHMDJYOTQ4?= =?utf-8?B?Vm84bmxFdUQ3bWdPWVcwWXlmQWxYS3pTejdGdkhjYUczOHR6S01RK0RWMnFO?= =?utf-8?B?Zlp5QjRxY2tsQW1nOCtRQ2JLSjQzVDBwR1Y1bkRDN2E3ODJmZmw4NGxhRWRa?= =?utf-8?B?VlAwWnluNmVibWZ4QUVRRUR3L1RxWVZ2RlhJeTMySnptVUxRRFV5ZnlQVC9h?= =?utf-8?B?VXBBY2hJS08zR0p4UERTWTgzd0xEbm83Z0FnMjhPelF3b256dGRKN3ZDRWF6?= =?utf-8?B?TENLOGlKakRXZXV2NGMwS2d3WndFSWJUQVJ0NTdYdDJCek0zUjRrSlJTcUtB?= =?utf-8?B?LzAvVi91TUJvQkxaM29LZlBVaDhIWUhINHhDUHM2MFhZaDF0K09RUUw4Nmpi?= =?utf-8?B?U0tTaVRmeDIvSks5dmVVdkovNG5aTHRwOVBwS1RBQUdTWE1iZnZJY21qQWpY?= =?utf-8?B?SFc4V1ZYOC84bUxzaFMwZytTZXh1RjhqM0dhMDMyNEFBY3FTV0VOVFBNeVJY?= =?utf-8?B?TzJUNHhLMjJNU0xlb2taZk5RdnZySnkxTXFZVHhLdXQ3VjVjT0pMUXlFRDd2?= =?utf-8?B?NVVtNHBqeC9Db2k1S2owaW5ZSmtmRkloWm1aQU5Ca1BsOS85SlNrRVF3ZHRV?= =?utf-8?B?b1dvYjY4elhjejQyeWh2SU9GL0pFM1lHbWlkL1N4SzliYVJGT3YzVVRmcit4?= =?utf-8?B?cG1TMmNVZGlOVUwxVy9FVDZ4bVFQdFhHZTFoQ3VESTlWUmdCR3FWNW81T1A0?= =?utf-8?B?SDB1dCtMa09ONHNjMWVnUmxlOUtLQ1N4Tk0yS0ZJQmxjbUIweTl5K203NzNS?= =?utf-8?B?aGZWcHRmVHhaYWozMGxVY1NqenFEckQ5RjRGYStwM0FONFJFM2NIL2dLeC9J?= =?utf-8?B?c2R3WUdSZzB4eWV1WkV0V2hSMjJwQlovZXBubDRFelpsMEQ5NXhCRGhhR2w5?= =?utf-8?B?TUFQWkw2QmcrVnFPMWhHZGdlTEJhSW16NGhNbUNGbzNwNFdpakJidUF3a1hB?= =?utf-8?B?Zm9IZW1HTllFSU9oVmsxT3ViTlBBZjZEVlZUNjhSREZ3cDczKzdJWVRYWnZj?= =?utf-8?B?RlV3Sld6RVJ1S1h3bjc0Tkg1VkF2ZEZaRUFibjFJYzBYcTNobExyYUxCV2hP?= =?utf-8?B?UXB1WW9UaU5OcTl6dzgvOW82cnp4MW92MUc0STh3RkFPT3ArSkZUVTZBRjQw?= =?utf-8?B?NWtWRWRGWThIRHllckIwVkU0Si80QUw4bll6cmlZUWUwVGdRdUlGRi9Yc1Jt?= =?utf-8?B?NkwrMXRSWTRqV1lkcDlxU2I1SGZ0WGk3Wll4aytSZTRVak93UXVOOXc4TEgv?= =?utf-8?B?RjNzdTBDUlNTMmdZbVdxV0hYckhsV2haRTVIZ3I3anFRM1N4RlhVbFFoT3NZ?= =?utf-8?B?R3dnTU4wMm8rajhlaERrSnkxa25CVmhVOTZ6SHArTXFXWU9yc29rd3JHbndp?= =?utf-8?B?MHpJYVpsL00vVmVtVG1qY0ZjRVltMVFOb0dBSUNPQlF3UmxDdjd4cm9SUEtZ?= =?utf-8?B?eHVvdUtFVUJTNTVRV2J3MDN2aFVEYjgxWGhMdzZXWVYvY2t3dTFiOXFVc2Y4?= =?utf-8?B?REFGKytoOFBScmpVSDZBakI2YnBZU1VnemhVNG1MVDd1WFVxNzQzNFArOU5t?= =?utf-8?B?eXE1aXNGWW55aXBPTzBsYW5qck5lcGo1NWRxcDhMMDRnU1llU3RqZ20wNmEr?= =?utf-8?B?MFd6MDRKalNFNENqVFJZakNMSEFVUWF5bzE5YkJKZDVVcWlUWTF5QW1rcGE1?= =?utf-8?B?cytyaWxETUtCSCt5ZitxNXZLR0cyc0xuT1hFckQyNHlvblptYUpSTW5KNVpV?= =?utf-8?B?VXd5VTBkYmk1b3gyZ3FDUHV1VVArY1lXUytSQi9yTE1qNWhmYnhwUnRSM2x6?= =?utf-8?B?a0lKbGhuVTJ4ZTZJZXBxR1NRWFRNOHlyNlVHa3ZkUUxmdkZHN2RMUUt6U1Zl?= =?utf-8?Q?spbVf9DSbPLODzSvrDTbG6w=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: 9a4ebdd6-92ea-40c5-8986-08dc74aea4c9 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 May 2024 07:14:21.7498 (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: WSP6vqeGcUIS+0oshk5R82CdDQ1wDHpl0NxLfhMAijAAKB6FAZwpPVYA46DInuCc5i8eh/1y8xBAHdwmK9SryltsalYJ9QeV018bZNGutvGyXoKXTD4DynBPMy+52o6n 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: 1715757364682100003 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 c4ebd4569e..67b9ff4934 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -2164,7 +2164,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; @@ -2306,7 +2307,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:20 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