From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id E22D2C25B79 for ; Thu, 23 May 2024 04:02:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:CC:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=8iaY7uf7+X+z5o5bYNCuzjrqS6aGM3ieEwn9OVpwQ4g=; b=xlMisw0DikX7Fy +JbMv3X1wmLaI9tVYkgL2kxKkwFla8SkEENVFXrSWcppQGRbHZwtJ4BCsFUD6fMbipQ8BRdUYzRgn IlSNLrNQHnMx/a1vjRarNexx1xNTwUCVPB1zrd1HxyPsJhjrCnF/cvaJaYL0B+oxfAnZrBtdnhZua vzQ2v8iYjLf5EB52XvBHBPHIhAcoeIJDoLsAH27AxtjJbwfgchLRCGG/ft5LXLW98Tx9G7p/U3wT1 QAIJvzCUVq40LmeY5SN4pT4mLTj5PNKOx34/vGOINt9BLv7QMipXS3zcN6uco8EsGynvCUE8iRTWb px/qfpug1SLYV/KFGC3A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1s9zen-00000004whO-0Ktx; Thu, 23 May 2024 04:02:21 +0000 Received: from mail-bn7nam10on20601.outbound.protection.outlook.com ([2a01:111:f403:2009::601] helo=NAM10-BN7-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1s9zeh-00000004wgN-1f4X for linux-arm-kernel@lists.infradead.org; Thu, 23 May 2024 04:02:19 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ipOv/4D/Z4adzXdleNgwadkpNswyVkQku6F1Kw3gZ6EvMYG8ujbsPM4Q6RyRB7u49Q3hJ8RMBcm8PEIbuHPORZckjy0rqNW74CylcMjeuRyOy8v3Pxg+iPooe+mA0gEEztPQNLgp7daW9UKynHOZJpv2RkNwzP+CL9m0rkBMmYpRq3kXioxYqe4lta9AOOx5yhvTCcX1Z3lam6H5+yyT4woLQzT5oZxv2fidTwvDYkcCsiPGdK1qpZcqBx3+mBD4DqI+VS7j4rO5y8tYUrDLG+gEWa2FNN/oyRV2RJgJ8Zjik3hfyJKjNXMjcUkcw3RMKCNxU7+qPAuMXxfbS/RGBw== 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=uqcJvF3RIFyP59Sa5TRtC0oqFCSO7fC8X/Q0JQ4LmO8=; b=jyUG7vd+G8DQjp5ate+rUY30qemyieePv2N8vUF6uaI0CY0QnWejzHT+dr0WJCilRBka/LpmfuHTncKcPButoGSZMlI5cYXX+9INjBK+BdjH5gyF1idZivo2vDDDoXDjqoNTvxZFpDz7n73qmq3A1A+1xGT5jqxTdrxMJauFk+EyInrEtAzJW+FykAjUucq0zCINUITSYlahCvK2j4CgWm2bxO2VNsGnRwSkjMpP71+0OOX6H2kJReF5Ph2V2PlaZDyYXpUAW568iF9zui0Wa0VSpF0MwzqYwWgarG4IEWfOIjTpOyBorjSSL8haGMwWKZNXWELVkX86Rah5rJcccw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.232) smtp.rcpttodomain=amd.com smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=uqcJvF3RIFyP59Sa5TRtC0oqFCSO7fC8X/Q0JQ4LmO8=; b=JdErt27ouaQUyQknaN5aJAbKhBc1ZaJjxdqjSC9uGw2J0+Vi3A3XQVQtK4b/MAYECDxoDrn/dZGYBJQjyYNi9NBrOIiSWssi3+csUGbdAWZ3NJEDZ05d0Vn5Z6T8rDpo/nd5Z3k+jVLK1Lvg1Bpa9f7eaCIbX/954QQPfNNoni+C8VEsPwwQBqUzarKdJ2frCDtuAd2+zZP80qwUQ2Gg5+BIciJKXipMyEb65rve/K/wESeoUGOlvFtZl+WRfwsA5Zq+Xh3HSSqVEuNE6PPfb53PweiJ7MtoPvWSUdVoTZXfTAivtRCUj+y7uuCb6ZbEyE/x1E2iUKgPU5OJ3+fLQg== Received: from SA9PR13CA0169.namprd13.prod.outlook.com (2603:10b6:806:28::24) by MN6PR12MB8565.namprd12.prod.outlook.com (2603:10b6:208:47d::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7611.20; Thu, 23 May 2024 04:02:06 +0000 Received: from SN1PEPF0002529D.namprd05.prod.outlook.com (2603:10b6:806:28:cafe::5c) by SA9PR13CA0169.outlook.office365.com (2603:10b6:806:28::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7611.19 via Frontend Transport; Thu, 23 May 2024 04:02:06 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.232) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.118.232 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.232; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.232) by SN1PEPF0002529D.mail.protection.outlook.com (10.167.242.4) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7611.14 via Frontend Transport; Thu, 23 May 2024 04:02:06 +0000 Received: from drhqmail203.nvidia.com (10.126.190.182) by mail.nvidia.com (10.127.129.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Wed, 22 May 2024 21:01:56 -0700 Received: from drhqmail203.nvidia.com (10.126.190.182) by drhqmail203.nvidia.com (10.126.190.182) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Wed, 22 May 2024 21:01:56 -0700 Received: from nvidia.com (10.127.8.10) by mail.nvidia.com (10.126.190.182) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4 via Frontend Transport; Wed, 22 May 2024 21:01:52 -0700 Date: Wed, 22 May 2024 21:01:50 -0700 From: Nicolin Chen To: Jason Gunthorpe , "Tian, Kevin" CC: "will@kernel.org" , "robin.murphy@arm.com" , "suravee.suthikulpanit@amd.com" , "joro@8bytes.org" , "linux-kernel@vger.kernel.org" , "iommu@lists.linux.dev" , "linux-arm-kernel@lists.infradead.org" , "linux-tegra@vger.kernel.org" , "Liu, Yi L" , "eric.auger@redhat.com" , "vasant.hegde@amd.com" , "jon.grimm@amd.com" , "santosh.shukla@amd.com" , "Dhaval.Giani@amd.com" , "shameerali.kolothum.thodi@huawei.com" Subject: Re: [PATCH RFCv1 04/14] iommufd: Add struct iommufd_viommu and iommufd_viommu_ops Message-ID: References: <8610498e3fc00000e78bb9cef6fac9f6a54978a4.1712978212.git.nicolinc@nvidia.com> <20240522133905.GX20229@nvidia.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN1PEPF0002529D:EE_|MN6PR12MB8565:EE_ X-MS-Office365-Filtering-Correlation-Id: 63814427-f490-4926-0ebb-08dc7add1ca7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230031|376005|1800799015|7416005|36860700004|82310400017; X-Microsoft-Antispam-Message-Info: =?utf-8?B?QVVMdEg2RFMwdzh6Mm4reHZpYTBudXRyamF3L3JrVE42aXpzbU1MdEZxTURj?= =?utf-8?B?ZTdVWHF5UEUvd3FvdFFEV3VyMTJRaXVsQWZFbEZab09oc2xRdk1NdlFIUGla?= =?utf-8?B?YktocENMUW1aelNrOG5CWVlpa1EzOWlHRjhwYTEyK0xVMTNhbVhuRHFrazRs?= =?utf-8?B?T0ZtTVI4dDhBWWgwZkY1dTMxWDRZZHpzMlhENFNQaUZqK1QxZkxJVzRUclZv?= =?utf-8?B?WGpTKzZhR2NvMnZRQ0lxUnFjelMrcDFUMjRTK1F0MjF2TW9mQ0NUaTl3N2JY?= =?utf-8?B?bGZ4Q3JzVlR3ZEN4elR4ZndYN28xdHYyVjBMSVBNT3pXQjFGb2kwZGM0dlpv?= =?utf-8?B?bzhuYTJBSStkWVo5aEhUT01GekcydTB3VS80OGRzZTZzQmFNVzdOKytNUVpR?= =?utf-8?B?Q3NzVGVMYm50YjhQYnpRQTJ6WU5GMitDOTEzemZoMG43bVZTNThCck92YXFG?= =?utf-8?B?MWFSZHYzZTc4bklaQ25EandkZGZVdWRoaWJvTEhFOUs1dVFWVThNNFZzc3VN?= =?utf-8?B?enpQWEtLVGxtOWs4SWc0UDhnVzlVVDQwYk03VmM3cmdlSEtXL0phUGZZZEpa?= =?utf-8?B?RkU2QTBBWW1na2dpelhoRitXdXBWU3pkVzRPd0pOUkxHUkMxWUozR0I0UWow?= =?utf-8?B?ZENsbmkybGhZMzlrUlZmMkxsMXc1TWRON2x4L25LUkNRWU54ODVNZzhKNktm?= =?utf-8?B?VzFZdUJTL09yamNyTngxT1VQK0l3NVhBTmNOM1B3UEhORWVUYmVvWVBib1Fo?= =?utf-8?B?WlBvbVdOcUpVWnpaUU9VUnNpcUUrU0VBaEM4aWVsNzVwalgxT0F0Q0FwZ1JP?= =?utf-8?B?QnYwRWtEU2FkQk9EYXcxVW1maFNMbVpxazdnWlBCOTZCNGgwaDA0M3pQa3Mw?= =?utf-8?B?b0VmZUlSN1pMTVVUYThEc2VoNjBmWmxhNXFMT1ErbTJHVk8vQUppOGdtYXhL?= =?utf-8?B?UWFHeXpXZGZaQXVDT1ZKNDRmUnBPZ0R6SlJpcDJCZnB5d1NFcTA2eC9LVVhi?= =?utf-8?B?RHAzV3I3TDMvQ0NiYlZ2WDI1SHpVRDIvVjlUQzNrRFo2SlRheDNtS0h2ZjM4?= =?utf-8?B?QlNjTmJvcnRhVVlmUEgwdi84a1lWMkVsUXJDUHFDSG5GczF3a0srOXgxaVIy?= =?utf-8?B?UjdIaFpBcmp3NUVjRlllQUQrQnVxbVgxTmVMbnVYM1dna3h6KzhsYTBmaFV6?= =?utf-8?B?UHVXRUJuZFQzc3pLdnZPcEwvTUdaaW9Ca1NaNVFJQjNZeWhmam5EdHZBblUr?= =?utf-8?B?aHVLQ3h4ck0yTVNYNTNiQjIyVWoyNEYxUmd5Wm9xNmtVT1dsMnhpZDNqMndS?= =?utf-8?B?NXJlQ2FRaXFwclpTNk5DNWhSRlFnR05tWjA4aDhFRFl1bkxEaGpQeTI2dXpP?= =?utf-8?B?RG55cWhzWVFGMUNWLzJpTHUreVY4eFJNOHdhaXlXQmdOUlh5YlJMTThPZHpB?= =?utf-8?B?K3ZTcG1xL0ducWc4REJIRHFDNmFOY1ArbExXcHdGL1lzWERvdFpqUEg0cGNX?= =?utf-8?B?eWhoZzBTRE9sUklGd0VweEZQOTdRV2QyM29DWkdKNCtEWGVTalAyZXFiekNn?= =?utf-8?B?c3ZOSW5BRGR2ZmdxYk5scjBaalZLZ0lYOUZ1TFhNYzVRQ0Q4QjFFemVnZ3p4?= =?utf-8?B?RS9DSjZBK1ZwNXZDd2JnaFgrZXdrVGdzcXcvclgyRjBMUThualBPV0lMUGJ6?= =?utf-8?B?MjhlSTFjbzdvRW01U1Bxck5KaVlubG1qekwwcnlQT0FjR0V5QzJ6VjZ4eFY0?= =?utf-8?B?Q3kwNG9TeC9vY3BYM1ExOTFaTG1NYVVETXppZVpjMW5hWitGanJsNVpHVkFM?= =?utf-8?B?YjRNaXJLRHJoSjJsWlhTYTRYeng5aFdzYkd0Um1KZ2lvTDJhNGNReU9ZUEk3?= =?utf-8?Q?u55rsrloGZK5e?= X-Forefront-Antispam-Report: CIP:216.228.118.232;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge1.nvidia.com;CAT:NONE;SFS:(13230031)(376005)(1800799015)(7416005)(36860700004)(82310400017);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 May 2024 04:02:06.4651 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 63814427-f490-4926-0ebb-08dc7add1ca7 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.232];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: SN1PEPF0002529D.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN6PR12MB8565 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240522_210215_508252_21FC6B30 X-CRM114-Status: GOOD ( 31.88 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gVGh1LCBNYXkgMjMsIDIwMjQgYXQgMDE6NDM6NDVBTSArMDAwMCwgVGlhbiwgS2V2aW4gd3Jv dGU6Cj4gPiBGcm9tOiBKYXNvbiBHdW50aG9ycGUgPGpnZ0BudmlkaWEuY29tPgo+ID4gU2VudDog V2VkbmVzZGF5LCBNYXkgMjIsIDIwMjQgOTozOSBQTQo+ID4gVklPTU1VIGNvbnRhaW5zOgo+ID4g IC0gQSBuZXN0aW5nIHBhcmVudAo+ID4gIC0gQSBLVk0KPiA+ICAtIEFueSBnbG9iYWwgcGVyLVZN IGRhdGEgdGhlIGRyaXZlciBuZWVkcwo+ID4gICAgKiBJbiBBUk0gY2FzZSB0aGlzIGlzIFZNSUQs IHNvbWV0aW1lcyBzaGFyZWQgd2l0aCBLVk0KPiAKPiBJbiB3aGljaCBjYXNlIGlzIGl0IG5vdCBz aGFyZWQgd2l0aCBLVk0/IEkgaGFkIHRoZSBpbXByZXNzaW9uIHRoYXQKPiBWTUlEIGFsd2F5cyBj b21lcyBmcm9tIEtWTSBpbiB0aGlzIFZDTURRIHVzYWdlLiDwn5iKCgpOb3QgYWN0dWFsbHkuIEkg Z3Vlc3MgdGhhdCBzaGFyZWQgVk1JRCBpcyBmb3IgQlRNLgoKPiA+IE9uIEFSTSB0aGUgUzIgaXMg bm90IGRpdm9yY2VkIGZyb20gdGhlIFZJT01NVSwgQVJNIHJlcXVpcmVzIGEgc2luZ2xlCj4gPiBW TUlELCBzaGFyZWQgd2l0aCBLVk0sIGFuZCBsb2NhbGl6ZWQgdG8gYSBzaW5nbGUgVk0gZm9yIHNv bWUgb2YgdGhlCj4gPiBieXBhc3MgZmVhdHVyZXMgKHZCVE0sIHZDTURRKS4gU28gdG8gYXR0YWNo IGEgUzIgeW91IGFjdHVhbGx5IGhhdmUgdG8KPiA+IGF0dGFjaCB0aGUgVklPTU1VIHRvIHBpY2sg dXAgdGhlIGNvcnJlY3QgVk1JRC4KPiA+Cj4gPiBJIGltYWdpbmUgc29tZXRoaW5nIGxpa2UgdGhp czoKPiA+ICAgIGh3cHRfYWxsb2MoZGV2YSwgbmVzdGluZ19wYXJlbnQ9dHJ1ZSkgPSBzaGFyZWRf czIKPiA+ICAgIHZpb21tdV9hbGxvYyhkZXZhLCBzaGFyZWRfczIpID0gdmlvbW11MQo+ID4gICAg dmlvbW11X2FsbG9jKGRldmIsIHNoYXJlZF9zMikgPSB2aW9tbXUyCj4gPiAgICBod3B0X2FsbG9j KGRldmEsIHZpb21tdTEsIHZzdGUpID0gZGV2YV92c3RlCj4gPiAgICBod3B0X2FsbG9jKGRldmIs IHZpb21tdTIsIHZzdGUpID0gZGV2Yl92c3RlCj4gPiAgICBhdHRhY2goZGV2YSwgZGV2YV92c3Rl KQo+ID4gICAgYXR0YWNoKGRldmIsIGRldmJfdnN0ZSkKPiA+ICAgIGF0dGFjaChkZXZjLCBzaGFy ZWRfczIpCj4gCj4gSSB3b25kZXIgd2hldGhlciB3ZSB3YW50IHRvIG1ha2UgdmlvbW11IGFzIHRo ZSAxc3QtY2xhc3MgY2l0aXplbgo+IGZvciBhbnkgbmVzdGVkIGh3cHQgaWYgaXQgaXMgZGVzaXJh YmxlIHRvIGVuYWJsZSBpdCBldmVuIGZvciBWVC1kIHdoaWNoCj4gbGFja3Mgb2YgYSBodyB2aW9t bXUgY29uY2VwdCBhdCB0aGUgbW9tZW50LgoKSSB0aGluayBKYXNvbiBpcyBjb21wbGV0ZWx5IHVz aW5nIFNNTVUgYXMgYW4gZXhhbXBsZSBoZXJlLgoKQWxzbyBGV0lXLCBJIGFtIHRyeWluZyBhIGNv cmUtYWxsb2NhdGVkIGNvcmUtbWFuYWdlZCB2aW9tbXUgZm9yCklPTU1VX1ZJT01NVV9UWVBFX0RF RkFVTFQuIFNvIFZULWQgZHJpdmVyIGRvZXNuJ3QgbmVlZCB0byBob2xkCmEgdmlvbW11IHdoaWxl IFZNTSBjb3VsZCBzdGlsbCBhbGxvY2F0ZSBvbmUgaWYgaXQgd2FudHMuIEFuZCB0aGUKVklPTU1V IGludGVyZmFjZSBjYW4gcHJvdmlkZSBzb21lIGhlbHBlcnMgaWYgZHJpdmVyIHdhbnRzIHNvbWUK aW5mbyBmcm9tIHRoZSBjb3JlLW1hbmFnZWQgdmlvbW11OiBhIHZpcnR1YWwgZGV2IElEIHRvIHBo eXNpY2FsCmRldiBJRCAocmV0dXJuaW5nIGRldmljZSBwb2ludGVyKSB0cmFuc2xhdGlvbiBmb3Ig ZXhhbXBsZS4gQW5kCndlIGNhbiBhZGQgbW9yZSBhZnRlciB3ZSBicmFpbiBzdG9ybS4KClNhbXBs ZSBjaGFuZ2U6CkBAIC02MjMsNiArNjI1LDE4IEBAIHN0cnVjdCBpb21tdV9vcHMgeworICogQHZp b21tdV9hbGxvYzogQWxsb2NhdGUgYW4gaW9tbXVmZF92aW9tbXUgYXNzb2NpYXRpbmcgdG8gYSBu ZXN0ZWQgcGFyZW50CisgKiAgICAgICAgICAgICAgICBAZG9tYWluIGFzIGEgdXNlciBzcGFjZSBJ T01NVSBpbnN0YW5jZSBmb3IgSFctYWNjZWxlcmF0ZWQKKyAqICAgICAgICAgICAgICAgIGZlYXR1 cmVzIGZyb20gdGhlIHBoeXNpY2FsIElPTU1VIGJlaGluZCB0aGUgQGRldi4gVGhlCisgKiAgICAg ICAgICAgICAgICBAdmlvbW11X3R5cGUgbXVzdCBiZSBkZWZpbmVkIGluIGluY2x1ZGUvdWFwaS9s aW51eC9pb21tdWZkLmgKKyAqICAgICAgICAgICAgICAgIEl0IGlzIHN1Z2dlc3RlZCB0byBjYWxs IGlvbW11ZmRfdmlvbW11X2FsbG9jKCkgaGVscGVyIGZvcgorICogICAgICAgICAgICAgICAgYSBi dW5kbGVkIGFsbG9jYXRpb24gb2YgdGhlIGNvcmUgYW5kIHRoZSBkcml2ZXIgc3RydWN0dXJlcywK KyAqICAgICAgICAgICAgICAgIHVzaW5nIHRoZSBnaXZlbiBAaWN0eCBwb2ludGVyLgorICogQGRl ZmF1bHRfdmlvbW11X29wczogRHJpdmVyIGNhbiBjaG9vc2UgdG8gdXNlIGEgZGVmYXVsdCBjb3Jl LWFsbG9jYXRlZCBjb3JlLQorICogICAgICAgICAgICAgICAgICAgICAgbWFuYWdlZCB2aW9tbXUg b2JqZWN0IGJ5IHByb3ZpZGluZyBhIGRlZmF1bHQgdmlvbW11IG9wcy4KKyAqICAgICAgICAgICAg ICAgICAgICAgIE90aGVyd2lzZSwgaS5lLiBmb3IgYSBkcml2ZXItbWFuYWdlZCB2aW9tbXUsIHZp b21tdV9vcHMKKyAqICAgICAgICAgICAgICAgICAgICAgIHNob3VsZCBiZSBwYXNzZWQgaW4gdmlh IGlvbW11ZmRfdmlvbW11X2FsbG9jKCkgaGVscGVyIGluCisgKiAgICAgICAgICAgICAgICAgICAg ICBpdHMgb3duIHZpb21tdV9hbGxvYyBvcC4KClsuLl0KCitpbnQgaW9tbXVmZF92aW9tbXVfYWxs b2NfaW9jdGwoc3RydWN0IGlvbW11ZmRfdWNtZCAqdWNtZCkKK3sKIC4uLgorICAgICAgIGlmIChj bWQtPnR5cGUgPT0gSU9NTVVfVklPTU1VX1RZUEVfREVGQVVMVCkgeworICAgICAgICAgICAgICAg dmlvbW11ID0gX19pb21tdWZkX3Zpb21tdV9hbGxvYygKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1Y21kLT5pY3R4LCBzaXplb2YoKnZpb21tdSksCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZG9tYWluLT5vcHMtPmRlZmF1bHRfdmlvbW11X29wcyk7CisgICAgICAgfSBl bHNlIHsKKyAgICAgICAgICAgICAgIGlmICghZG9tYWluLT5vcHMtPnZpb21tdV9hbGxvYykgewor ICAgICAgICAgICAgICAgICAgICAgICByYyA9IC1FT1BOT1RTVVBQOworICAgICAgICAgICAgICAg ICAgICAgICBnb3RvIG91dF9wdXRfaHdwdDsKKyAgICAgICAgICAgICAgIH0KKworICAgICAgICAg ICAgICAgdmlvbW11ID0gZG9tYWluLT5vcHMtPnZpb21tdV9hbGxvYyhkb21haW4sIGlkZXYtPmRl diwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWNt ZC0+aWN0eCwgY21kLT50eXBlKTsKKyAgICAgICB9CgpbLi5dCi8vIEhlbHBlcjoKK3N0cnVjdCBk ZXZpY2UgKgoraW9tbXVmZF92aW9tbXVfZmluZF9kZXZpY2Uoc3RydWN0IGlvbW11ZmRfdmlvbW11 ICp2aW9tbXUsIHU2NCBpZCk7Cgo+ID4gVGhlIGRyaXZlciB3aWxsIHRoZW4ga25vdyBpdCBzaG91 bGQgcHJvZ3JhbSB0aHJlZSBkaWZmZXJlbnQgVk1JRHMgZm9yCj4gPiB0aGUgc2FtZSBTMiBwYWdl IHRhYmxlLCB3aGljaCBtYXRjaGVzIHRoZSBBUk0gZXhwZWN0YXRpb24gZm9yCj4gPiBWTUlELiBU aGF0IGlzIHRvIHNheSB3ZSdkIHBhc3MgaW4gdGhlIHZpb21tdSBhcyB0aGUgcHRfaWQgZm9yIHRo ZQo+ID4gaW9tbXVfaHdwdF9hbGxvYy4gVGhlIHZpb21tdSB3b3VsZCBpbXBseSBib3RoIHRoZSBT MiBwYWdlIHRhYmxlIGFuZAo+ID4gYW55IG1ldGEgaW5mb3JtYXRpb24gbGlrZSBWTUlEIHRoZSBk cml2ZXIgbmVlZHMuCj4gCj4gQ2FuIHlvdSBlbGFib3JhdGUgdGhlIGFzcGVjdCBhYm91dCAidGhy ZWUgZGlmZmVyZW50IFZNSURzIj8gVGhleSBhcmUKPiBhbGwgZm9yIHRoZSBzYW1lIFZNIGhlbmNl IHNoYXJpbmcgdGhlIHNhbWUgVk1JRCBwZXIgdGhlIGVhcmxpZXIKPiBkZXNjcmlwdGlvbi4gVGhp cyBpcyBhbHNvIGVjaG8tZWQgaW4gcGF0Y2gxNDoKPiAKPiB0ZWdyYTI0MV9jbWRxdl92aW9tbXVf YWxsb2MoKQo+ICAgICAgICAgdmludGYtPnZtaWQgPSBzbW11X2RvbWFpbi0+dm1pZDsKClRoZSBk ZXNpZ24gaW4gdGhlIHNlcmllcyBpcyBzdGlsbCBvbGQgdXNpbmcgYSAxOjEgcmVsYXRpb25zaGlw CmJldHdlZW4gYSB2aW9tbXUgYW5kIGFuIFMyIGRvbWFpbi4gSSB0aGluayB0aGUgInRocmVlIiBp cyBmcm9tCmhpcyBTTU1VIGV4YW1wbGUgYWJvdmU/IExlYXZpbmcgaXQgdG8gSmFzb24gdG8gcmVw bHkgdGhvdWdoLgoKPiA+IG5vdy4gSWYgc29tZW9uZSBuZWVkcyB0aGVtIGxpbmtlZCBzb21lZGF5 IHdlIGNhbiBhZGQgYSB2aW9tbXVfaWQgdG8KPiA+IHRoZSBjcmVhdGUgcHJpIHF1ZXVlIGNvbW1h bmQuCj4gCj4gSSdtIG1vcmUgd29ycmllZCBhYm91dCB0aGUgcG90ZW50aWFsIGNvbmZsaWN0IGJl dHdlZW4gdGhlIHZxdWV1ZQo+IG9iamVjdCBoZXJlIGFuZCB0aGUgZmF1bHQgcXVldWUgb2JqZWN0 IGluIEJhb2x1J3Mgc2VyaWVzLCBpZiB3ZSB3YW50Cj4gdG8gaW50cm9kdWNlIHZJT01NVSBjb25j ZXB0IHRvIHBsYXRmb3JtcyB3aGljaCBsYWNrIG9mIHRoZSBodwo+IHN1cHBvcnQuCgpJIGFjdHVh bGx5IHNlZSBvbmUgYXJndW1lbnQgaXMgd2hldGhlciB3ZSBzaG91bGQgdXNlIGEgdnF1ZXVlCnYu cy4gQmFvbHUncyBmYXVsdCBxdWV1ZSBvYmplY3QsIGFuZCBhIGNvdW50ZXIgYXJndW1lbnQgd2hl dGhlcgp3ZSBzaG91bGQgYWxzbyB1c2UgdnF1ZXVlIGZvciB2aW9tbXUgaW52YWxpZGF0aW9uIHYu cyBhbiBhcnJheS0KYmFzZWQgaW52YWxpZGF0aW9uIHJlcXVlc3QgdGhhdCB3ZSBoYXZlIHNpbWls YXJseSBmb3IgSFdQVC4uLgoKVGhhbmtzCk5pY29saW4KCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0Cmxp bnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFk Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK