From nobody Sun Apr 12 15:23:47 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