From nobody Tue Feb 10 07:21:25 2026 Delivered-To: importer@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+importer=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=1714664040; cv=pass; d=zohomail.com; s=zohoarc; b=DUb6uRVBVeVr8ATnx/gPJN4CqNhv0lSsl8Vd2KstNsA60TVAFwddJB4GnzXh3Sncltyd5LpcaUxqFateWuSF7N7w2V8WuJ2M3591KRiHiISu5kfDjzB0MA91J1LBKnAMsJWuY486804ayY0SGgZqXmbmgRkUC2y4gAaLYvpW7Ew= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1714664040; 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=0dyCf//UOltd40tgWVe301nYDvZlQODv3yCaC6nBVp4=; b=KNazkxLjOtbGpsIr/W6TGsLSnf+/rMeRerq6BADAT4W+wGTxjeN+7FnLV4OxAldaV57Upx+zfVWTqNJLXD9+vkFLMjG0YpLFSNPAsCGmyyQt7mDgVBk6xoHKVmrGb6LLAwAKIQ53VFmI/hYLIiISYPB9ebEPOJuM483iRvmZxRo= 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+importer=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 1714664040476648.3372062785005; Thu, 2 May 2024 08:34:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s2YNO-0003ih-LO; Thu, 02 May 2024 11:29: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 1s2YNM-0003i3-Tn for qemu-devel@nongnu.org; Thu, 02 May 2024 11:29:36 -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 1s2YNI-00060W-KC for qemu-devel@nongnu.org; Thu, 02 May 2024 11:29:36 -0400 Received: from mail-am6eur05lp2105.outbound.protection.outlook.com (HELO EUR05-AM6-obe.outbound.protection.outlook.com) ([104.47.18.105]) by smarthost3.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2024 17:29:23 +0200 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by AS8PR07MB7768.eurprd07.prod.outlook.com (2603:10a6:20b:351::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.29; Thu, 2 May 2024 15:29: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%4]) with mapi id 15.20.7519.035; Thu, 2 May 2024 15:29:22 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1714663772; x=1746199772; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=0dyCf//UOltd40tgWVe301nYDvZlQODv3yCaC6nBVp4=; b=mgcBf9kQq69iZITSJAnhtndR++rG8mTIpEG1o2y8Xh1vgr0bymhmUsxT 7CYXkMoVicutC1WTzpEydx5Qc/IhpkJkIZUYO3w9xWnvf/OWdq73hNMjD HMVvRmVZ5/3QN8ahnQcH9maq1qa2VvRb6ySg3UUXTC9rOIYttLD3a+A1H LM+t1zrXnM+YluKMOMZ9MnOKN3CJ5bvE6wXhL0ceV5+74FRYw6CREppmc 2ZM2CDh0EoQjk86BdmhpMxipkixzIeYnh8M2okFCaWLo9vqX4EkW7EV0U jPpLoU3rkK50eLgjKHP3E0u8Sb2lYhvlHJXGZuqDcLk82Sl86aZR+OkmU w==; X-IronPort-AV: E=Sophos;i="6.07,247,1708383600"; d="scan'208";a="11730622" X-MGA-submission: =?us-ascii?q?MDGQsfRvSsSaehLIfacEuktvZvdiwWESRB9SPA?= =?us-ascii?q?MIjQKpH88tJ7pg50BzfPWToXVDjel8WgkrQaeV+bQNK8Pg7ZaVpwJJIA?= =?us-ascii?q?Hx3CQN3LU+jC3f+etr0ovbxgnNcb8YEOfKwOwpULn1OtF5YxJzWb7t1f?= =?us-ascii?q?a/IIIaqPy4y4ThJKwv9h4qAA=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QsA9s/DAunlOnu+yWLcQnDOm47fKNoXLLTp17WtJd0KYLayciIOHWTq2xyoorPfWKY/p3XTIQG2sxeYeJCT/cYE8xRfyobss3kvSehbCFrhQ7RAQ2eKFV0WwQ+4ZpCOapQ9RLT544eiANTBxAaxegCHrPnIYcPXAp6NB0PFo1KSrgaCTE5qxrkzNefsI9yJ/3KrFtg+UQ7CZtaNPPJD1LsyBEqUSh8yLGerxQoyMCUOPcB35KUMLDCPTdbWNqVQg6D38EQW31eBuEiFZZdIVaqpUtrPIybTAMFfXAYDZ3n6UCmPnB/cwWmBp7qXJi6+4iuxVqZdD/4UwOxsY9bPYOg== 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=0dyCf//UOltd40tgWVe301nYDvZlQODv3yCaC6nBVp4=; b=RORHlQwZPuqEqccJ239FVOJOCsjLsT8jig9WG4S6L06mH+UPoED5f2oreVDkVYifhJ/3hpjINTjKkJ5GfjY+WDJUBIDxnXP72Cht2bWI2lNzkrjmqmzle+aCgqeI7ktB5jSiHcrpzk1B5ME9UrWH2z6Wc3Si9YcAxurEFdHQZpgqLqnieYZeWe6e87/yZkYtB1STB6CzFOTqV5J2xStb5RjjEk4y4Gw5lx4OFqmytKGKUuJZrQ1qiUCh9t+0SZW9E2bNbuUXvtwvlc3S8e8uXJzG8mmUNGyvaUiLzqO/YZrZ7Kc/F0Mp+sNP8tZTCwVPVeMVj3YQDawKMNGCPGZZRg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=eviden.com; dmarc=pass action=none header.from=eviden.com; dkim=pass header.d=eviden.com; arc=none From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v1 22/24] pci: add a pci-level API for ATS Thread-Topic: [PATCH ats_vtd v1 22/24] pci: add a pci-level API for ATS Thread-Index: AQHanKWBzgAlAYPHMkWgdFDysW7Q5A== Date: Thu, 2 May 2024 15:29:21 +0000 Message-ID: <20240502152810.187492-23-clement.mathieu--drif@eviden.com> References: <20240502152810.187492-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240502152810.187492-1-clement.mathieu--drif@eviden.com> Accept-Language: en-GB, fr-FR, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=eviden.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AM8PR07MB7602:EE_|AS8PR07MB7768:EE_ x-ms-office365-filtering-correlation-id: 86226a82-0315-4713-cd5c-08dc6abca441 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230031|1800799015|366007|376005|38070700009; x-microsoft-antispam-message-info: =?utf-8?B?a1NMSjJUVFExaW9mMXFBcDV1LzE5TEdlTTBQOHJodlJsZER3KzVXNXF3UWRa?= =?utf-8?B?bFQ5SzZwZG5Wa2FLcDFUVUUvbHF0aVFVZGlDVFRBVWtNWGN3UHEzVFJpTUFW?= =?utf-8?B?dXZqU0VGbWVXMzVvSjAra3BlaStaSVBobURPTlVERitGTElXSWZhZUh6Z2NQ?= =?utf-8?B?NXRHSk9HeXJLZnJnaFNMbFlmSkJsaTRtNzc4TCthdU16ZE01S2x0QWpLTHV1?= =?utf-8?B?QU4vYmhqaWUvWkFqcVVNTUdmbVNmRk9SQjVJeVV1N210K09xMTEzNjd6RWcx?= =?utf-8?B?OUdpL0t0aEJvMzNoRys0TDUwbnl4ZkVvV0ZXVHhqSW1SbzliaGgzalAyNDRq?= =?utf-8?B?UUR6ZzVsQ01WblNNNUVqL3hyeUtTc3pUc241dTZoU0pHWlV2TnFENkNhckla?= =?utf-8?B?cG9ORzhxNmk2VndHWVRJSy96bWd3VURVRXJsTzM1VCtVVysrYWJTYWN3cG1Q?= =?utf-8?B?OWQzZnArTTgvQUhFUWJwTHVpOFdnNDBsWktuN1ZPaWtsQjFib0czK2RtdGI4?= =?utf-8?B?Nm5ka1ZvdXA2WVROSU1PRFVGYUY0ak5UR0tUYUdMVDdzakdvcjRhV1ZGTXF1?= =?utf-8?B?M1oxTGE5OTlWbmNJc2FnekxvelVvQU4ySklGWEN5RWJLZnU3MjhZTUVQVTMz?= =?utf-8?B?K1pHZUJaeHBrWWpBcG95OCtVQ3RwUjFnS3hiUUJYenpsTzNjU1Z4RWxmdFRN?= =?utf-8?B?Y0llMFhlV1hqcGF5Rzl5TTJJTDRmbWFES3prTlM3NnZEVnYyWHprcXJBc2dB?= =?utf-8?B?NnBLZTRKdFAwWGw1cFk2QUVkR1kyclUwUGtnMUxJckRZSDY3clFndHhxamdV?= =?utf-8?B?eWZCbGhpeU1xaVFOTisrOW9Fbngwd2FrRHAxVlo2MjZqSTl0VGJocExraHlk?= =?utf-8?B?SWtobFAwL0x5Nkp4Q3J4L1o3eFhYQXRoalJ0cUVrajBHcFJ2WUcxY3F5Q05z?= =?utf-8?B?SDMwZUFvZm9kSVh5ckpsM0Z0QmRYTEIzTGFaQVBqSlY4dE82ZXE4VGlqZzY3?= =?utf-8?B?NkdkQU1VSlFSaExBSGVnbU9nWVlpeTA3Ujk0RFIzQkpJR2ZjR0RGV0ltOXE4?= =?utf-8?B?cXc1RndYdUQ1YjFVOVJIYWQrVTR4WTdEbTNFeEpKWHhBdjNZUEpQY0Vjc2Uy?= =?utf-8?B?b0htWGFFeU5LbFNWRDh3SWJTV2dBY2NtK2Eyenl1YTdjRUJ2K1oyNVlOS3VS?= =?utf-8?B?MlZWMkhCSGxpUEQrSytFaUUyQitxRGNiUHFWVHoyZHhxTkt3Uk1ud2I4QWZp?= =?utf-8?B?SDhzZUZtYkpDaDN4UDRBWk1UdG1BQU9JUklienVxUjVaUW53OUFvbUgvUG16?= =?utf-8?B?QlQ1ZCtzVEd4RlhUaWtyOFRvU1dydGo5WjVwRUljN0dCMzYwNUVHNm9HQ2tU?= =?utf-8?B?NkdNcFVmWXVrcmtRNkw1S2ZjODBucUVrM2hLWVRVbTUyanBkWmZUSVFpRkVu?= =?utf-8?B?ZXprYjJkRHgwUWNYcHk2bVRjSW1tbzF5cEN4RGZnc3kvWEtNc0szUkhyVVNt?= =?utf-8?B?dHFBT3RQUGhtNWRlL3FDbmxCWVUycURrVnNUSmpGcGhydWNPNFBiY2VRWkJ5?= =?utf-8?B?bUduZHVnTzFaRUowRUJVSGlrTUN4MTU1RWdXR0R5NTR2ZG5wN29uMGczY2NR?= =?utf-8?B?b1QvTjA0Zm1pbXc3dWcyc2FVdXBOazVKZmRhayt6WkR3WlBLaGdHSDVIb0Jz?= =?utf-8?B?eWk2ekx0eHgya2JtV0N6R1luK1VGOU9BdmlITzl4MXB0OTVONnQ5aVhqQmpo?= =?utf-8?B?WGRuQXNkSGJzN2lnc2F3YnNqWWdPcmF0TURVQUtNY1cxOTNiZzJUY2k5bnVK?= =?utf-8?B?WkxUYkN3dEdSbnRibFZTZz09?= 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)(1800799015)(366007)(376005)(38070700009); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?WWVUazJmVkFEVWZiMFJYZC9mZ0ZmeVMvaExvbXVtdzdGMVJORm9Rd2prNmVq?= =?utf-8?B?d1czaGZYYmhhTlNzd0ZnV1BMWm0yYVhJQ2xwY1ozOHFmeGhTdGhzR1FNMjRU?= =?utf-8?B?VkdpeHUvWEF4VWVJaFFKZGZKOGpadUdDTzRFQTFoR0RuMWZPYThESk5xUm1R?= =?utf-8?B?OHhUT2dqSHhlTTl6cnkyejdjUHRjS2NZTWZjVnpEa2ZhWXVaeGNHS3BZR1Y5?= =?utf-8?B?ejlWbWZ2VVFuM25GQlBrd3FPTWRxVUFGUW4zemU2NnVkb2dWbm1yZzRNZFVS?= =?utf-8?B?VUR4SVVlVy80dHJ4aGMxSVk4UlR0cm8zUVl6MEo4TGJVaWRyUXpCdXlZd1J2?= =?utf-8?B?bm5tZWs5bENGQ2IvOTRYbzZqOG1wZkhiOVFKejJmUno3Y1BRMzVEb2RyOVdP?= =?utf-8?B?STloK254SFM1dTBxUUVQZk5KZnkrdUVJZFdKaFZSaFkrcGFjMytIbFZjMHFV?= =?utf-8?B?MjExMS9Rd093QnhpQXg3T1h4Y2VTcTFDQ2J1Nk93K0lyVDFDd0Y4b0NsalIz?= =?utf-8?B?T3lDUWNGbklORUZGT3Y2Y01XdCs3ZkxiNjRudTI5N1dUeGhjMXF4UHdSZlZo?= =?utf-8?B?elNSM0VsUDdXMmFvSitwMEM0TURGbkppUkJleUJiV2RIczRvQ2ljT0NTcFZt?= =?utf-8?B?azRacGdKY0szZnRsN25mUjJOQy83R1NUVzVEWWVFQk5tblN5NU03cnZ2cm9p?= =?utf-8?B?M3FxbVJxZVc4ZlBwbG5neGVUVUZwM0NDR1FHNU53RWpvckVGSHBIdDQraEY0?= =?utf-8?B?dHRJUDNucUhKT2F2LytGOHEybXAxS2EzdGp3ZzNXc3BGK3h3Y1BLMnp2SmlO?= =?utf-8?B?TVJCeGlOUlNoUHBBK28rSFBrVUZ6aU8yR1J2MGpyR09XNGZ4OHdqSzdJY1p0?= =?utf-8?B?bnV5OEVUU2JycEFXeEpxK2RhYlJQd2sreDMydm9aQzk0bWxsUG1ReEVXT0F0?= =?utf-8?B?QktvRWdPZ3RVT1g3SHF2YXZKNUVSMEdPMWY1dUJERDhEM2lYZHFrWkVpdU94?= =?utf-8?B?S3dheFNZR2w1QnNWRHZCdGRBSG5GRkNVV0RkSWVBZ3A4U0c2b0xVT1FkZUhh?= =?utf-8?B?T1ZTNU5TT1d6ZlpxR3lXV2VmR28rRjBiOWk5Qzlqdmh5a2R0R0NvSWpUOXFk?= =?utf-8?B?bThHM2N2WHRtSVUyQkVSRm94NkNmVDZMRW1adFlaRTNGSk1yeDRkS0RiS3Z0?= =?utf-8?B?M3d0a2Fjd0c0WW0vOGJTYy85UCsxL2hvK3oxTTBXY3o3SEZHNUQxS2o3OUky?= =?utf-8?B?eGdjQndCbDN5UDh1MmZsN3FyVTIrY2pEVXNROWU0WVZpelJhdlVoSUhBbkkz?= =?utf-8?B?ZEpYdjRRWEU1UVNZMmxDKzRaaitYbk5Lb0dDQUN3YzhLYnVtYnIzMzVuQWd6?= =?utf-8?B?Qjc4VkZhZVZScFpPVnA5ZmZrNmxLaXlHWVR4VS9tWXkvbFJqS2g5dDlvVVNE?= =?utf-8?B?ZkVUVVVBeU16eE4xZThlNVFlVGIrZW5SNC8yeEJPS0lNSTl4Z3lGd0xZUEFT?= =?utf-8?B?LzFENjlWelJpbUJOOHZ3UlhadHd4QWNLcTc1ZjVOZnkzZTdWVUtHVk5NTkgv?= =?utf-8?B?MjQxWXc5UDdYUWlEaDloMzEreVlrck1nNS8rMWZYenQ5RWFSWXVYRVNLYkJi?= =?utf-8?B?bERuSzRTWXp4am9kVWxEMjROZzM0SzNEbjY1ZWVhUk5PeThPcVNGNnpPNWVn?= =?utf-8?B?NnM2YjNMQmtZa3dsSjVBOW9kMzNoSWRDUXJ5emMrQmV5RE5IU1MraS9TK3B2?= =?utf-8?B?cVBWK2RpQm5jYWdyczhrWElvNzR2bVU5a3FzNzdqdCtQNDY4MjJxdndmdktu?= =?utf-8?B?bTlmbnpNaU1KMzROdkh2NWhEZUo1aWF4bTAyTFRTQWxCNDF6dEpDSWNuR1VK?= =?utf-8?B?OFp3WFZ5RlVlbzczVHM0YytPaXowTWg0bmk4clZSMWlpdytuazc2NDlyTDha?= =?utf-8?B?ZzNraFp2SFF1eURXaXQ5ZnVMM3JJWkh2NW1Fd1h4bUZBdXBVM004bFN1Qitl?= =?utf-8?B?dWtrS1hsNFBRa3NXQWl1Z3FaTTB1MUI1WkpabDlEczJtenlCdS9TS0RTN1lW?= =?utf-8?B?OVRncHJsUTlTcjRQKzRlR1BuS1oyYWlWV2tDSDlFRTlxYmpSZWpxSnJGdGM5?= =?utf-8?B?MUh3bkxUNXlLcG9vQXJGaVA1MzFiOHVKNnNDSWtHc3BIb3Y3SGYrM1hoRlpX?= =?utf-8?Q?xgyoW49m8yCRzEiaRxasxbk=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <6BF640420CC32443963EAF491B25EBC3@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: 86226a82-0315-4713-cd5c-08dc6abca441 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 May 2024 15:29:21.8888 (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: yl/n3JGOMXxpUyLUZgx7FHFm4tIF0iBZfesjBRh17p58vUdnJHhYhagFgrDwOSQynEHvsyczPbp40iS9p5HzWLb622sJ9Onk5HfzCi10eWRZXjvV5AF+UlCYRIfWsoN2 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR07MB7768 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+importer=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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1714664042473100007 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 d10cdb3d75..fea9b57006 100644 --- a/hw/pci/pci.c +++ b/hw/pci/pci.c @@ -2833,6 +2833,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