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 lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (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 0FA3AC7115A for ; Thu, 19 Jun 2025 16:15:40 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.1020226.1396591 (Exim 4.92) (envelope-from ) id 1uSHv0-00062a-Rl; Thu, 19 Jun 2025 16:15:14 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 1020226.1396591; Thu, 19 Jun 2025 16:15:14 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1uSHv0-00062T-Ox; Thu, 19 Jun 2025 16:15:14 +0000 Received: by outflank-mailman (input) for mailman id 1020226; Thu, 19 Jun 2025 16:15:14 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1uSHuz-0005oY-TK for xen-devel@lists.xenproject.org; Thu, 19 Jun 2025 16:15:14 +0000 Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazlp170110003.outbound.protection.outlook.com [2a01:111:f403:c201::3]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 94539424-4d28-11f0-a30d-13f23c93f187; Thu, 19 Jun 2025 18:15:13 +0200 (CEST) Received: from PAVPR03MB8946.eurprd03.prod.outlook.com (2603:10a6:102:32e::21) by DB8PR03MB6332.eurprd03.prod.outlook.com (2603:10a6:10:13d::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8857.19; Thu, 19 Jun 2025 16:15:11 +0000 Received: from PAVPR03MB8946.eurprd03.prod.outlook.com ([fe80::f12d:7394:bbe3:dfc]) by PAVPR03MB8946.eurprd03.prod.outlook.com ([fe80::f12d:7394:bbe3:dfc%4]) with mapi id 15.20.8835.023; Thu, 19 Jun 2025 16:15:11 +0000 X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 94539424-4d28-11f0-a30d-13f23c93f187 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=xSJQp3epuVIw24B9ZSlpuO3Wp5ElxVYJjQJQonL/THD/R2Zjx9mtxff7FDMFl2ERltRjoF43B90BcnDCMHyvqCVYWV/hXLbAqihtAGtNL4hMf4tIiUelfEgMeuIipFXSTZxOV5Fn16MpGnR8okYXSd21l8oPfJJImGAilqDLnJuzs9KydLcGM3RLCGW69u7//6sSixBpI8UXCf3rQflrV7MfpXpvJdVQs0QNwjOmF5r2x2zUvMP9/7/Zz9fOiOFuiO1YvCnRBQyAG8lw230+XJf+whExDy5teMW9wOrO/VMe4fSO1m0siqAE5mgMFSMs+Uc/YuGxdGA+lqZANMYIbA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=36ygOKn1fs4Ks6C9wABZwae93nvr1THSprN+hd8Q+zc=; b=FbwVIkcUpfFan8HGE/uIPHTGXxmlpc2l+6M53/kRhZf5EwBulF6lr95q5p7puJvztn3umUQB9WOFIyunwzNxFovQ7o4xNLq5igs6oRpoNHGuvXTCDayK9qQN29KhxY5tZyNGQxfxQHfDZ7BXC2r4Ah11GZDlVZ0z2wbqU1nZw5WAkPmX/nZAc8TJW50ep7D2xFtcgNKJxmckSnKSO0MFbkQT0IpsNjH59XIANqdZaDCivVmVybLAzpN2GMDPZ1Gq9CUIreJSMud46DjApLQQYsdUF9sZ78CMQhi3rghpM/ypp3pVlVCkUGF5D2joDJNsPyQMzYmeOa+G8RYs3N3Fdw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com; dkim=pass header.d=epam.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=36ygOKn1fs4Ks6C9wABZwae93nvr1THSprN+hd8Q+zc=; b=MuLqIcmh0cxMJAJKcF8r842pjP2VyPuFv8AquMSo11LYZ7SE/UMJUcirD/Z4KSJRQ/25is59EbydkJK1TZfWL0Z6R+skhVTDzvEAKJSSMi9MOUTfpKDn0YCPTsjYF8+n83l7ZXKrg4tYef5JeOjWv8/luzNcPFsV9aHpMQt3VW1zX8K3Bya+gs6FPJFUZKBJT6wwkPNK4BLY3eZGwI7TFtx5UkgsU5pXyJD/FpOQhl2goNoGkvl/aH7M7+oUunzq44njQficYNDfbtg120supKunoVx0Q33pUB4jBJOmnudS6nuijh2Pze9fN3MEwtS14g5902HjX0AFFBdeBJeUwg== From: Oleksii Moisieiev To: Stefano Stabellini CC: "xen-devel@lists.xenproject.org" , Andrew Cooper , Anthony PERARD , Bertrand Marquis , Jan Beulich , Juergen Gross , Julien Grall , Michal Orzel , =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= , Volodymyr Babchuk , Grygorii Strashko Subject: Re: [RFC PATCH v4 5/8] xen/domctl: extend XEN_DOMCTL_assign_device to handle not only iommu Thread-Topic: [RFC PATCH v4 5/8] xen/domctl: extend XEN_DOMCTL_assign_device to handle not only iommu Thread-Index: AQHbyNXPDXt2FT3RV02cltfdm/Dd7rPdzmiAgCG+LgCACKrsAIACoXoA Date: Thu, 19 Jun 2025 16:15:10 +0000 Message-ID: <1780646c-cb6f-4508-86c8-a573fbc09f6a@epam.com> References: <4f58bf9c47c40413ee9250c4cd21458382aac857.1747669845.git.oleksii_moisieiev@epam.com> In-Reply-To: Accept-Language: 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=epam.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PAVPR03MB8946:EE_|DB8PR03MB6332:EE_ x-ms-office365-filtering-correlation-id: 5217f67d-5c3e-469f-b60c-08ddaf4c774e x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|7416014|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?YlZEbTUwN0UvWWNBYVlSQUlZeUt5RDcxVFArRXhTaE90ODZiUk9aZXZxUzcy?= =?utf-8?B?N1Q4UW1IRnNHWU9EUHdwRXhKOGM4STdickpISHM3WmtVazI1U3Vjd0RsSW05?= =?utf-8?B?akdIaG1OdHlHNDlCMEZQYmJPQnBnanhuYUlkVThMSTRTNVhnM1BlMTNGWU9h?= =?utf-8?B?OE9raTVybWdOZVJvSjdoVmVuYW9KbjBwNTVUSHd5ZFhSclF5TGdMU09RcDdJ?= =?utf-8?B?bGdrRm4zaEpqTVhDVFNNbnBBU2NKWlQ4Wko3SEJrakRSeXpoSnl0d3RYQm1H?= =?utf-8?B?Y0MvZVM4MWtIK3pFTHUveUJFTjVrN3FSS3k0NHdXUXJ4RUNTOERTRnE0K1Fu?= =?utf-8?B?SlpOVWVJMXp0SXNDTm8zMHZkMDhhckN6VnRLTTFHVndkdm9vWUdob21aTDZj?= =?utf-8?B?eUFhWDFiWVhhTWgyek15SW5hYmY0RGJHOCthZGNWUXViRmhrdzdRbC9aa0oz?= =?utf-8?B?SktqeGwxWWIxREFJTitEQXJpN0hXdUZ0cWk3R1U4VExNVllybmx1dnpVa0NV?= =?utf-8?B?bzNnbWZFeXFjRDV1TXhIb0xaQ0ZsSi9wZ1FTUmd5RjFRTlBjOTdGa0NwZHg0?= =?utf-8?B?NnpiYTFYc2dDa2NaY1grb0VEU0NhSmZIMmJ0UUYxYmF0VFZOV2R1K3VtYktq?= =?utf-8?B?aDl2bXF4WERGNFFqbWNWRWZJUTg5aTM2TFg4aUFkckJsbWlZNjZVMWc3UzVQ?= =?utf-8?B?VmtzQ0ViSk4yK2ZTQ1VvUm14UjJOYjNzOWlydGJ2OTRaZUVCS1lrMmZJUjBG?= =?utf-8?B?bHpWYnNmNEptTDNJeEcyT3dScTU0aURUYktNS1Uvek5XQnpQQUFIK0x5Kzc4?= =?utf-8?B?cDBzZXcyZk4wNzdSRkYzSHcydm9QcWdBRERDaEM1cktIS25JVkU1dHdlRjJH?= =?utf-8?B?ajF0ekVrRTFFUFRkUWVDZmNNaWM5NWd3NU5HWGlRWU8rcTR4LzlYaDFxQmoz?= =?utf-8?B?a1ZrUkNXVGdGMSsrVW96ZkhXbGFnQ2dKWmVEWWhhYnROV0QvU0hMTVZhdllG?= =?utf-8?B?eGVNOE1GQ2RDQmNmVit2eWMzV3picnQyWGQwNUxEanVVUS9MSDQ0SkR1eXky?= =?utf-8?B?MDkyWm5vK2FpU1FxcStLcVl2WXBqL2s4djdZT2pWZG9odTRhblhHRXlmTDlz?= =?utf-8?B?ZlpNWUs4Zkw4WTVKQ29YdHZKcUM0UVVBNWRJNzZFVTFpMXMzalF3bkoxemNY?= =?utf-8?B?eUp2NGZtbFJUVXRGdjlHWUVmcnRqYW8xWHRvMEplaktDNG1UZzg2RVZnZnZS?= =?utf-8?B?MUVIQVlVelM3WEZPZFI2VUVvV01DMGk2T0dYelFieHI3TFRrNUoybzlSdEtZ?= =?utf-8?B?bk92aDNPZ1luT3Nvc055Y0R0WDhXQS82Y0tWSHdNS1FmTXRDNHpBVVZIdVox?= =?utf-8?B?R3A1eFJVd1dBK1Y0S1UrSzFyMmZ6UjQ3UllMWW9QcXBRRlBobFBGdHNmTTZM?= =?utf-8?B?ZVJaamw3ZmFKU1RFeWxlQ2lZZGpwdS9peitBKzRvdGtiMHVKRW9ucVAwNTlv?= =?utf-8?B?RGVPOFJlWFBhU0MvUVZqbTh4UWV1TE55enRua0tjMkV6QVB3ZnEzUE5CWEli?= =?utf-8?B?Q2xkQUlOTVpmckl3ZmhtalE3dUJUUzRFRDZhYkhhTm1YbTlnRVlCQVNuUHZk?= =?utf-8?B?UmdXZWFzSG1aYk5NRkNuWExtVDVSN05YWi9XK0tyOVBPMzhmVlVTN1NGM044?= =?utf-8?B?cVk5alJqRmFEamREcks2TkRURnlXTmlQMEN1UkdvUnFySjZySyttV1RBN2hZ?= =?utf-8?B?SHEzZHVuYTBVK01mU1ArMFVTcEkwaG9zNEE4WUV6YzNPdkxZU2I5NVp5aDNm?= =?utf-8?B?aFNXTFJiTzM1QnN5NzE5bHBlTWR3THZQWW93Sm9vOUZIYmpTdlRmbWNVblEx?= =?utf-8?B?bVlmeTlxSFNVbFJJS0d3WWNsRmNTVHpvOC95b3d1Q2FCMERYRmxuak1pSEJM?= =?utf-8?B?WnhHZ25XaHc3QUxOcmhUWXEyMWg3S2ozTlM5aHJQYUxsZUdzdW93L29tMStY?= =?utf-8?Q?DwYoB2/7KF37m+vq2hLceCEwgQGItA=3D?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB8946.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7416014)(38070700018);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?SFpiaXZ3NlNwYnI4dXVwandMNW1HczZGZFlYeWlKNExWektpbGUzUHRkdlg2?= =?utf-8?B?YWVqdXJ3cFl3SUFlVkQzTW1zMVdkc3VqeFBERjdYR1J5NGRPaXd2cytUWWk4?= =?utf-8?B?T3hlY01KblM1WThhVjJRbU9ld0ErTmd6VVRCUG14YXJJTExmSE5MV3RkcFQr?= =?utf-8?B?R2MzTHlLaUQvRG9zdlFOTDdJV2hzVFkxYTMvQWRBeDRQWnplM2FzZk40OUk3?= =?utf-8?B?Y3RldTFXNUlrbG1XelR1L21VR01NUW9UdjE0bVVYL0p2SnlCOEc3M0dYVnd2?= =?utf-8?B?TmswY3dWTnRkZCt5blBlQThVbUN5T2UwTVd5cW5rVTZsWEYzM1VUejJsVlBp?= =?utf-8?B?U1FmdVBlUk9oUnl2VzRMM0dDdXJvVDJic3J3Rm4rSC90eHQ0NUgrdXdTSDIw?= =?utf-8?B?Y1RpVEVBWjc1ckFxMHRpMUphdXBXMEo5blBSaUd5UG9xNVFsd2txNHgxWlM4?= =?utf-8?B?VlUvNkJMZHRVMVRDemYwd1hReUtYY1lESGJ6VXdqYlNkZGFRVjB5cHVGREtC?= =?utf-8?B?Yk5aMVRaZkN0TDNEc1FRTENOUFRwUys2bXpEQjBoSUdSQ0pHU2UrOUdaSHYv?= =?utf-8?B?YjdjNjJ4SDJBWVJRTnFMM3h3MnAwN1Y3NEpCYngrbUo5ajdDbURRcnVCMm9a?= =?utf-8?B?eU02ZndnMW80UVc3UzMzM2tNMGt6RmRIVVY5c0J0b0xwTU04ckFnRVlRL1dX?= =?utf-8?B?cERPa2ZjYVhUckd4cTBwVVphUy9SL21JTFVva3I3YUZ4dm5ucTUzWVFobGxy?= =?utf-8?B?cUc5Qys0U3RRWG5GOE1UemJ0S3d3ZU9FMGt6dFdTTlc2UWVia1VWMnRBbWJ0?= =?utf-8?B?bzlVZ01NVzFOL0RpZHlBWW1PWjJ2RDFKdU1ZbE5uZmg3QndJd2krd2dJZjRt?= =?utf-8?B?c3ZQNGw5M1JiRGhMZXUrVTVoMllEOTE0WThpUDFuVndleFlpcHg3VklHaEhH?= =?utf-8?B?MGc4a3dueWVMZ2xhcTRHQXNUeks4NmVJSmNDejVWRllKNjRqbWhyUXQ2N3lz?= =?utf-8?B?NmJLMHFmSWtDTk9tZ2o4YVdhdGJxZ09IYlBrWWdBRFZnNHY5bHF2QXU0OFVx?= =?utf-8?B?eXZ1dzVZNVB5SFR6LzAxc0E2S2RBZzd2aUhyTUhRQU15SVA5UmxZS3FTdHMx?= =?utf-8?B?MmprbWQzaWRYSVEvMDdNUmxXdklYZE9HZjZmbUhsb1BOUkFqamR0OGk3RkIv?= =?utf-8?B?WVQvMk5QTWJiYzVVUCsveWNTdC9wNzVRUlRlWlBtaEExRzRjN0NYNUFGTkFH?= =?utf-8?B?Z2l1ZHBhS0N4dWpiY1JLeVVJM3cvWkw4ZHFSeDArNHN6QnRwWmNVaXZnU2d2?= =?utf-8?B?ZzZwZWdQdjQrK1ZhSnoxQVUxSXp2OUV2cThMTm5lUWhYZGhORUc3REMxajB4?= =?utf-8?B?dTF3ejMwNFlldm5ra0xXM0pYU3ZNRk8vNTR4RjNpWFFLcTd3QUNYdk81UFFY?= =?utf-8?B?SUUzSDRNQVFzYngyK0pVMUFKbnZ2ZmZwV2wzY0VxMGRwc1Z4YkZHZ3RlMytB?= =?utf-8?B?ZXdJWWl3UCtQbUFKUHUwamdZY3pVOVNqUWFpYXpFWWFubEQxeHdvNi9TK1R2?= =?utf-8?B?QW8zcGZyQlZWczErZllaeFpYTnNDZSs0UFNRbGhWUS84bmdLR0Z0TWhuYnNm?= =?utf-8?B?eWJrNGZTQi95WGY4YWxrUmUxYXNMaFpFUnMyb01PUFdnT1o4WHZNTDNoUEdV?= =?utf-8?B?bGVyVVBmbDBTMGs2R1g2azEzYVBpdXhOL3I1SVpubjY3RCtQVnRPNGtOWWJm?= =?utf-8?B?Tk9kbWhSQnIza2ZVWkxNQk9kTnJkbS9MakxnZCtRNXpjdldUczEwRmtMamhH?= =?utf-8?B?SHNYVHRqWlBobFVnWFYyRUdHMzVZcW9WRTd5ZDNCU2F3ZStLRTZGdlgzQno1?= =?utf-8?B?VkRKbEpEMmtLNXRXS0VqYjVVWHZsQVJQWkdETTk4bHd5UGRKTm81YTNNNVRh?= =?utf-8?B?YzBqMVhQNVhiYTVNYWJvcUh2WEN2YmExb3Z1UDNwcVk0UDFUZjJtODlTRG5X?= =?utf-8?B?NTV5cnZaQTVEUnRQQU1QMUg5T1FMYU00eXlGbERRUEM5QnducjhTbU9wdER5?= =?utf-8?B?RThHY0RLRHd0dXp1YWVXVndzSnhsV0xEbjVKcHRPampxcG9wclFndDZ3Wk5K?= =?utf-8?B?SjRIV1ZFWVhuVkZ4dmpPalN3MmxocDFxYTZiU0RiUUh2enRkWmMybmRJWW1T?= =?utf-8?B?L3c9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: <661CB46FCFB4464AB8662B7ABED2323A@eurprd03.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: epam.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB8946.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5217f67d-5c3e-469f-b60c-08ddaf4c774e X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Jun 2025 16:15:11.0048 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Ix2hL8uDMMaz2Psyz05YKRKruOtSyOH2yn7RckBAvv1UhWj67x99ChZADIwkJJDvVxoaKeVGKCB+THvJ9cdLTm6kjyPiaZn1yQMNudVm2L4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR03MB6332 DQpPbiAxOC8wNi8yMDI1IDAzOjA0LCBTdGVmYW5vIFN0YWJlbGxpbmkgd3JvdGU6DQo+IE9uIFRo dSwgMTIgSnVuIDIwMjUsIE9sZWtzaWkgTW9pc2llaWV2IHdyb3RlOg0KPj4gSGkgU3RlZmFubywN Cj4+DQo+PiBJJ20gdmVyeSBzb3JyeSBmb3IgYSBsb25nIHNpbGVuY2UuIFBsZWFzZSBzZWUgbXkg YW5zd2VycyBiZWxvdzoNCj4+DQo+PiBPbiAyMi8wNS8yMDI1IDAzOjI1LCBTdGVmYW5vIFN0YWJl bGxpbmkgd3JvdGU6DQo+Pj4gT24gTW9uLCAxOSBNYXkgMjAyNSwgT2xla3NpaSBNb2lzaWVpZXYg d3JvdGU6DQo+Pj4+IEZyb206IEdyeWdvcmlpIFN0cmFzaGtvPGdyeWdvcmlpX3N0cmFzaGtvQGVw YW0uY29tPg0KPj4+Pg0KPj4+PiBBZGQgY2hhaW5lZCBoYW5kbGluZyBvZiBhc3NpZ25lZCBEVCBk ZXZpY2VzIHRvIHN1cHBvcnQgYWNjZXNzLWNvbnRyb2xsZXINCj4+Pj4gZnVuY3Rpb25hbGl0eSB0 aHJvdWdoIFNDSSBmcmFtZXdvcmssIHNvIERUIGRldmljZSBhc3NpZ24gcmVxdWVzdCBjYW4gYmUN Cj4+Pj4gcGFzc2VkIHRvIEZXIGZvciBwcm9jZXNzaW5nIGFuZCBlbmFibGluZyBWTSBhY2Nlc3Mg dG8gcmVxdWVzdGVkIGRldmljZQ0KPj4+PiAoZm9yIGV4YW1wbGUsIGRldmljZSBwb3dlciBtYW5h Z2VtZW50IHRocm91Z2ggRlcgaW50ZXJmYWNlIGxpa2UgU0NNSSkuDQo+Pj4+DQo+Pj4+IFRoZSBT Q0kgYWNjZXNzLWNvbnRyb2xsZXIgRFQgZGV2aWNlIHByb2Nlc3NpbmcgaXMgY2hhaW5lZCBhZnRl ciBJT01NVQ0KPj4+PiBwcm9jZXNzaW5nIGFuZCBleHBlY3RlZCB0byBiZSBleGVjdXRlZCBmb3Ig YW55IERUIGRldmljZSByZWdhcmRsZXNzIG9mIGl0cw0KPj4+PiBwcm90ZWN0aW9uIGJ5IElPTU1V IChvciBpZiBJT01NVSBpcyBkaXNhYmxlZCkuDQo+Pj4+DQo+Pj4+IFRoaXMgYWxsb3dzIHRvIHBh c3Mgbm90IG9ubHkgSU9NTVUgcHJvdGVjdGVkIERUIGRldmljZSB0aHJvdWdoDQo+Pj4+IHhsLmNm ZzoiZHRkZXYiIHByb3BlcnR5IGZvciBwcm9jZXNzaW5nOg0KPj4+Pg0KPj4+PiBkdGRldiA9IFsN Cj4+Pj4gICAgICAgIi9zb2MvdmlkZW9AZTZlZjAwMDAiLCA8LSBJT01NVSBwcm90ZWN0ZWQgZGV2 aWNlDQo+Pj4+ICAgICAgICIvc29jL2kyY0BlNjUwODAwMCIsIDwtIG5vdCBJT01NVSBwcm90ZWN0 ZWQgZGV2aWNlDQo+Pj4+IF0NCj4+Pj4NCj4+Pj4gVGhlIGNoYW5nZSBpcyBkb25lIGluIHR3byBw YXJ0czoNCj4+Pj4gMSkgdXBkYXRlIGlvbW11X2RvX2R0X2RvbWN0bCgpIHRvIGNoZWNrIGZvciBk dF9kZXZpY2VfaXNfcHJvdGVjdGVkKCkgYW5kDQo+Pj4+IG5vdCBmYWlsIGlmIERUIGRldmljZSBp cyBub3QgcHJvdGVjdGVkIGJ5IElPTU1VDQo+Pj4+IDIpIGFkZCBjaGFpbmVkIGNhbGwgdG8gc2Np X2RvX2RvbWN0bCgpIGluIGRvX2RvbWN0bCgpDQo+Pj4+DQo+Pj4+IFNpZ25lZC1vZmYtYnk6IEdy eWdvcmlpIFN0cmFzaGtvPGdyeWdvcmlpX3N0cmFzaGtvQGVwYW0uY29tPg0KPj4+PiBTaWduZWQt b2ZmLWJ5OiBPbGVrc2lpIE1vaXNpZWlldjxvbGVrc2lpX21vaXNpZWlldkBlcGFtLmNvbT4NCj4+ Pj4gLS0tDQo+Pj4+DQo+Pj4+DQo+Pj4+DQo+Pj4+ICAgIHhlbi9hcmNoL2FybS9maXJtd2FyZS9z Y2kuYyAgICAgICAgICAgICB8IDM3ICsrKysrKysrKysrKysrKysrKysrKysrKysNCj4+Pj4gICAg eGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2Zpcm13YXJlL3NjaS5oIHwgMTQgKysrKysrKysrKw0K Pj4+PiAgICB4ZW4vY29tbW9uL2RvbWN0bC5jICAgICAgICAgICAgICAgICAgICAgfCAxOSArKysr KysrKysrKysrDQo+Pj4+ICAgIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2RldmljZV90cmVlLmMg ICB8ICA2ICsrKysNCj4+Pj4gICAgNCBmaWxlcyBjaGFuZ2VkLCA3NiBpbnNlcnRpb25zKCspDQo+ Pj4+DQo+Pj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZmlybXdhcmUvc2NpLmMgYi94ZW4v YXJjaC9hcm0vZmlybXdhcmUvc2NpLmMNCj4+Pj4gaW5kZXggZTE1MjJlMTBlMi4uOGVmZDU0MWM0 ZiAxMDA2NDQNCj4+Pj4gLS0tIGEveGVuL2FyY2gvYXJtL2Zpcm13YXJlL3NjaS5jDQo+Pj4+ICsr KyBiL3hlbi9hcmNoL2FybS9maXJtd2FyZS9zY2kuYw0KPj4+PiBAQCAtMTI2LDYgKzEyNiw0MyBA QCBpbnQgc2NpX2Fzc2lnbl9kdF9kZXZpY2Uoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGR0X2Rl dmljZV9ub2RlICpkZXYpDQo+Pj4+ICAgICAgICByZXR1cm4gMDsNCj4+Pj4gICAgfQ0KPj4+PiAg ICANCj4+Pj4gK2ludCBzY2lfZG9fZG9tY3RsKHN0cnVjdCB4ZW5fZG9tY3RsICpkb21jdGwsIHN0 cnVjdCBkb21haW4gKmQsDQo+Pj4+ICsgICAgICAgICAgICAgICAgICBYRU5fR1VFU1RfSEFORExF X1BBUkFNKHhlbl9kb21jdGxfdCkgdV9kb21jdGwpDQo+Pj4+ICt7DQo+Pj4+ICsgICAgc3RydWN0 IGR0X2RldmljZV9ub2RlICpkZXY7DQo+Pj4+ICsgICAgaW50IHJldCA9IDA7DQo+Pj4+ICsNCj4+ Pj4gKyAgICBzd2l0Y2ggKCBkb21jdGwtPmNtZCApDQo+Pj4+ICsgICAgew0KPj4+PiArICAgIGNh c2UgWEVOX0RPTUNUTF9hc3NpZ25fZGV2aWNlOg0KPj4+PiArICAgICAgICByZXQgPSAtRU9QTk9U U1VQUDsNCj4+PiBBcmUgeW91IHN1cmUgLUVPUE5PVFNVUFAgaXMgdGhlIHJpZ2h0IGVycm9yIGNv ZGUgZm9yIHRoZSAzIGNoZWNrcyBiZWxvdz8NCj4+IFRoZSAtRU9QTk9UU1VQUCBjb2RlIGlzIHVz ZWQgYmVjYXVzZSB0aGlzIGlzIHBhcnQgb2YgYSBjaGFpbmVkIGNhbGwgYWZ0ZXINCj4+IGlvbW11 X2RvX2RvbWN0bCwgYXMgc3RhdGVkIGluIHhlbi9jb21tb24vZG9tY3RsLmM6ODU5LiBUaGUNCj4+ IFhFTl9ET01DVExfYXNzaWduX2RldmljZQ0KPj4gY2FsbCBpcyBleHBlY3RlZCB0byBoYW5kbGUg YW55IERUIGRldmljZSwgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBEVA0KPj4gZGV2aWNlIGlz DQo+PiBwcm90ZWN0ZWQgYnkgYW4gSU9NTVUgb3IgaWYgdGhlIElPTU1VIGlzIGRpc2FibGVkLg0K Pj4gVGhlIGZvbGxvd2luZyBjYXNlcyBhcmUgY29uc2lkZXJlZDoNCj4+DQo+PiAxLiBJT01NVSBQ cm90ZWN0ZWQgRGV2aWNlIChTdWNjZXNzKQ0KPj4NCj4+IElmIHRoZSBkZXZpY2UgaXMgcHJvdGVj dGVkIGJ5IHRoZSBJT01NVSBhbmQgaW9tbXVfZG9fZG9tY3RsIHJldHVybnMgMCwNCj4+IHdlIGNv bnRpbnVlDQo+PiBwcm9jZXNzaW5nIHRoZSBEVCBkZXZpY2UgYnkgY2FsbGluZyBzY2lfZG9fZG9t Y3RsLg0KPj4NCj4+IDIuIElPTU1VIERpc2FibGVkICgtRU9QTk9UU1VQUCBmcm9tIGlvbW11X2Rv X2RvbWN0bCkNCj4+DQo+PiBJZiBpb21tdV9kb19kb21jdGwgcmV0dXJucyAtRU9QTk9UU1VQUCwg aW5kaWNhdGluZyB0aGF0IHRoZSBJT01NVSBpcw0KPj4gZGlzYWJsZWQsDQo+PiB3ZSBzdGlsbCBw cm9jZWVkIHRvIGNhbGwgc2NpX2RvX2RvbWN0bC4NCj4gT0sgdGhpcyBtYWtlcyBzZW5zZS4gIEkg dGhpbmsgaXQgaXMgT0sgdG8gaGF2ZSBhIHNwZWNpYWwgZXJyb3IgY29kZSB0bw0KPiBzYXkgInRo ZSBJT01NVSBpcyBkaXNhYmxlZCIgYnV0IEkgZG9uJ3Qga25vdyBpZiBpdCBpcyBhIGdvb2QgaWRl YSB0byB0cnkNCj4gdG8gdXNlIC1FT1BOT1RTVVBQIGZvciB0aGF0LiAtRU9QTk9UU1VQUCBjb3Vs ZCBtZWFuIGEgaHlwZXJ2aXNvcg0KPiBjb25maWd1cmF0aW9uIHdpdGggZG9tY3RsIGRpc2FibGVk LCBmb3IgaW5zdGFuY2UuDQo+DQo+IEl0IG1pZ2h0IGJlIHdpc2VyIHRvIHVzZSBhIGRpZmZlcmVu dCBlcnJvciBjb2RlLiBNYXliZSBFTk9FTlQ/DQo+DQpJIHNlZSB0aGF0IGluIHRoZSBmb2xsb3dp bmcgY29tbWl0Og0KDQo3MWU2MTdhNmI4ICh1c2UgaXNfaW9tbXVfZW5hYmxlZCgpIHdoZXJlIGFw cHJvcHJpYXRlLi4uLCAyMDE5LTA5LTE3KQ0KDQotRU5PU1lTIHJldHVybiBjb2RlIHdhcyBjaGFu Z2VkIHRvIC1FT1BOT1RTVVBQIGluIGlvbW11X2RvX2RvbWN0bC4NCg0KSXQncyBub3QgY2xlYXIg dG8gbWUgd2h5IHRoaXMgd2FzIGRvbmUgZnJvbSB0aGUgY29tbWl0IGRlc2NyaXB0aW9uLg0KDQpN YXliZSB3ZSBzaG91bGQgYWRkIGNvbW1pdCBhdXRob3I/DQoNCj4+IDMuIEVycm9yIGZyb20gaW9t bXVfZG9fZG9tY3RsIChGYWlsIFN0YXRlKQ0KPj4NCj4+IElmIGlvbW11X2RvX2RvbWN0bCByZXR1 cm5zIGFueSBlcnJvciwgdGhlIHN5c3RlbSBlbnRlcnMgYSBmYWlsIHN0YXRlLCBhbmQNCj4+IHNj aV9kb19kb21jdGwgaXMgbm90IGNhbGxlZC4NCj4+DQo+PiA0LiAtRU9QTk9UU1VQUCBmcm9tIHNj aV9kb19kb21jdGwNCj4+DQo+PiBJZiBzY2lfZG9fZG9tY3RsIHJldHVybnMgLUVPUE5PVFNVUFAs IHRoaXMgaW5kaWNhdGVzIG9uZSBvZiB0aGUgZm9sbG93aW5nOg0KPj4gLSBUaGUgcHJvdmlkZWQg ZGV2aWNlIGlzIG5vdCBhIERUIGRldmljZS4NCj4+IC0gVGhlcmUgaXMgbm8gY3VyX21lZGlhdG9y IGF2YWlsYWJsZSAoaW5kaWNhdGluZyB0aGF0IHRoZSBTQ0kgc3Vic3lzdGVtDQo+PiBpcyBlbmFi bGVkDQo+PiBpbiB0aGUgY29uZmlndXJhdGlvbiwgYnV0IG5vIG1lZGlhdG9yIHdhcyBwcm92aWRl ZCkuDQo+PiAtIFRoZSBjdXJyZW50IG1lZGlhdG9yIGRvZXMgbm90IHN1cHBvcnQgYXNzaWduX2R0 X2RldmljZSAodGhpcyBpcw0KPj4gZXhwZWN0ZWQgdG8gYmUgY2hhbmdlZDsNCj4+IHNlZSBiZWxv dyBmb3IgZGV0YWlscykuDQo+PiBJbiB0aGlzIGNhc2UsIC1FT1BOT1RTVVBQIGlzIHJldHVybmVk IGJ1dCB3aWxsIGJlIGlnbm9yZWQsIGFuZCB0aGUNCj4+IG9yaWdpbmFsIHJldHVybiB2YWx1ZSBm cm9tIGlvbW11X2RvX2RvbWN0bCB3aWxsIGJlIHVzZWQgYXMgdGhlIGZpbmFsIHJlc3VsdC4NCj4g U2FtZSBjb21tZW50IGFzIGJlZm9yZS4gV2UgbmVlZCB0byBiZSBjYXJlZnVsIG5vdCBjb25mdXNl IHRoaXMgY2FzZSB5b3UNCj4gZGVzY3JpYmVkIHdpdGggb3RoZXIgY2FzZXMgd2hlcmUgc2NpX2Rv X2RvbWN0bCBpcyBzaW1wbHkgbm90DQo+IGltcGxlbWVudGVkLg0KPg0KSSB3YXMgdHJ5aW5nIHRv IG1pbWljIGlvbW11X2RvX2RvbWN0bCBsb2dpYy4uLg0KPj4gNS4gUmV0dXJuIENvZGUgZnJvbSBz Y2lfZG9fZG9tY3RsDQo+Pg0KPj4gSWYgc2NpX2RvX2RvbWN0bCByZXR1cm5zIDAgKHN1Y2Nlc3Mp IG9yIGFuIGVycm9yIGNvZGUgKGZhaWx1cmUpLA0KPj4gdGhlIHJldHVybiB2YWx1ZSBmcm9tIGlv bW11X2RvX2RvbWN0bCBpcyBvdmVycmlkZGVuLCBhbmQgdGhlIHJlc3VsdCBmcm9tDQo+PiBzY2lf ZG9fZG9tY3RsIGlzIHJldHVybmVkLg0KPj4gTm90ZTogLUVPUE5PVFNVUFAgZnJvbSBpb21tdV9k b19kb21jdGwgd2lsbCBhbHNvIGJlIG92ZXJyaWRkZW4gc2luY2UNCj4+IHN0ZXAgMiB3YXMgc3Vj Y2Vzc2Z1bGx5IGNvbXBsZXRlZCAob3IgZmFpbGVkKS4NCj4+Pj4gKyAgICAgICAgaWYgKCBkb21j dGwtPnUuYXNzaWduX2RldmljZS5kZXYgIT0gWEVOX0RPTUNUTF9ERVZfRFQgKQ0KPj4+PiArICAg ICAgICAgICAgYnJlYWs7DQo+Pj4gdGhpcyBvbmUNCj4+Pg0KPj4+PiArICAgICAgICBpZiAoICFj dXJfbWVkaWF0b3IgKQ0KPj4+PiArICAgICAgICAgICAgYnJlYWs7DQo+Pj4gdGhpcyBvbmUNCj4+ Pg0KPj4+PiArICAgICAgICBpZiAoICFjdXJfbWVkaWF0b3ItPmFzc2lnbl9kdF9kZXZpY2UgKQ0K Pj4+PiArICAgICAgICAgICAgYnJlYWs7DQo+Pj4gYW5kIGFsc28gdGhpcyBvbmU/IEl0IHNlZW1z IG1vcmUgbGlrZSBhbiAtRUlOVkFMIGFzIHRoZSBjYWxsZXIgdXNlZCBhDQo+Pj4gd3JvbmcgcGFy YW1ldGVyPw0KPj4gSSB0aGluayB5b3UgYXJlIHJpZ2h0IHRoYXQgdGhpcyBjYXNlIHNob3VsZCBy ZXR1cm4gLUVJTlZBTCBiZWNhdXNlIHdlDQo+PiBzaG91bGQgZmFpbCBpZiBtZWRpYXRvcg0KPj4N Cj4+IHdpdGhvdXQgaW1wbGVtZW50ZWQgbWFuZGF0b3J5IGZlYXR1cmVzIHdhcyBwcm92aWRlZC4g V2lsbCBiZSBmaXhlZC4NCj4+DQo+Pj4+ICsgICAgICAgIHJldCA9IGR0X2ZpbmRfbm9kZV9ieV9n cGF0aChkb21jdGwtPnUuYXNzaWduX2RldmljZS51LmR0LnBhdGgsDQo+Pj4+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBkb21jdGwtPnUuYXNzaWduX2RldmljZS51LmR0LnNp emUsICZkZXYpOw0KPj4+PiArICAgICAgICBpZiAoIHJldCApDQo+Pj4+ICsgICAgICAgICAgICBy ZXR1cm4gcmV0Ow0KPj4+PiArDQo+Pj4+ICsgICAgICAgIHJldCA9IHNjaV9hc3NpZ25fZHRfZGV2 aWNlKGQsIGRldik7DQo+Pj4+ICsgICAgICAgIGlmICggcmV0ICkNCj4+Pj4gKyAgICAgICAgICAg IGJyZWFrOw0KPj4+PiArDQo+Pj4+ICsgICAgICAgIGJyZWFrOw0KPj4+PiArICAgIGRlZmF1bHQ6 DQo+Pj4+ICsgICAgICAgIC8qIGRvIG5vdCBmYWlsIGhlcmUgYXMgY2FsbCBpcyBjaGFpbmVkIHdp dGggaW9tbXUgaGFuZGxpbmcgKi8NCj4+PiBJdCBsb29rcyBsaWtlIHRoaXMgc2hvdWxkIGJlIGFu IGVycm9yDQo+Pj4NCj4+Pg0KPj4+PiArICAgICAgICBicmVhazsNCj4+Pj4gKyAgICB9DQo+Pj4+ ICsNCj4+Pj4gKyAgICByZXR1cm4gcmV0Ow0KPj4+PiArfQ0KPj4+PiArDQo+Pj4+ICAgIHN0YXRp YyBpbnQgX19pbml0IHNjaV9pbml0KHZvaWQpDQo+Pj4+ICAgIHsNCj4+Pj4gICAgICAgIHN0cnVj dCBkdF9kZXZpY2Vfbm9kZSAqbnA7DQo+Pj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vaW5j bHVkZS9hc20vZmlybXdhcmUvc2NpLmggYi94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vZmlybXdh cmUvc2NpLmgNCj4+Pj4gaW5kZXggNzFmYjU0ODUyZS4uYjhkMWJjOGE2MiAxMDA2NDQNCj4+Pj4g LS0tIGEveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2Zpcm13YXJlL3NjaS5oDQo+Pj4+ICsrKyBi L3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9maXJtd2FyZS9zY2kuaA0KPj4+PiBAQCAtMTQ2LDYg KzE0NiwxNCBAQCBpbnQgc2NpX2R0X2ZpbmFsaXplKHN0cnVjdCBkb21haW4gKmQsIHZvaWQgKmZk dCk7DQo+Pj4+ICAgICAqIGNvbnRyb2wiIGZ1bmN0aW9uYWxpdHkuDQo+Pj4+ICAgICAqLw0KPj4+ PiAgICBpbnQgc2NpX2Fzc2lnbl9kdF9kZXZpY2Uoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGR0 X2RldmljZV9ub2RlICpkZXYpOw0KPj4+PiArDQo+Pj4+ICsvKg0KPj4+PiArICogU0NJIGRvbWN0 bCBoYW5kbGVyDQo+Pj4+ICsgKg0KPj4+PiArICogT25seSBYRU5fRE9NQ1RMX2Fzc2lnbl9kZXZp Y2UgaXMgaGFuZGxlZCBmb3Igbm93Lg0KPj4+PiArICovDQo+Pj4+ICtpbnQgc2NpX2RvX2RvbWN0 bChzdHJ1Y3QgeGVuX2RvbWN0bCAqZG9tY3RsLCBzdHJ1Y3QgZG9tYWluICpkLA0KPj4+PiArICAg ICAgICAgICAgICAgICAgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZW5fZG9tY3RsX3QpIHVfZG9t Y3RsKTsNCj4+Pj4gICAgI2Vsc2UNCj4+Pj4gICAgDQo+Pj4+ICAgIHN0YXRpYyBpbmxpbmUgYm9v bCBzY2lfZG9tYWluX2lzX2VuYWJsZWQoc3RydWN0IGRvbWFpbiAqZCkNCj4+Pj4gQEAgLTE5NSw2 ICsyMDMsMTIgQEAgc3RhdGljIGlubGluZSBpbnQgc2NpX2Fzc2lnbl9kdF9kZXZpY2Uoc3RydWN0 IGRvbWFpbiAqZCwNCj4+Pj4gICAgICAgIHJldHVybiAwOw0KPj4+PiAgICB9DQo+Pj4+ICAgIA0K Pj4+PiArc3RhdGljIGlubGluZSBpbnQgc2NpX2RvX2RvbWN0bChzdHJ1Y3QgeGVuX2RvbWN0bCAq ZG9tY3RsLCBzdHJ1Y3QgZG9tYWluICpkLA0KPj4+PiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlbl9kb21jdGxfdCkgdV9kb21jdGwpDQo+ Pj4+ICt7DQo+Pj4+ICsgICAgcmV0dXJuIDA7DQo+Pj4+ICt9DQo+Pj4+ICsNCj4+Pj4gICAgI2Vu ZGlmIC8qIENPTkZJR19BUk1fU0NJICovDQo+Pj4+ICAgIA0KPj4+PiAgICAjZW5kaWYgLyogX19B U01fQVJNX1NDSV9IICovDQo+Pj4+IGRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2RvbWN0bC5jIGIv eGVuL2NvbW1vbi9kb21jdGwuYw0KPj4+PiBpbmRleCAwNWFiYjU4MWEwLi5hNzRlZTkyMDY3IDEw MDY0NA0KPj4+PiAtLS0gYS94ZW4vY29tbW9uL2RvbWN0bC5jDQo+Pj4+ICsrKyBiL3hlbi9jb21t b24vZG9tY3RsLmMNCj4+Pj4gQEAgLTI3LDYgKzI3LDcgQEANCj4+Pj4gICAgI2luY2x1ZGUgPHhl bi92bV9ldmVudC5oPg0KPj4+PiAgICAjaW5jbHVkZSA8eGVuL21vbml0b3IuaD4NCj4+Pj4gICAg I2luY2x1ZGUgPGFzbS9jdXJyZW50Lmg+DQo+Pj4+ICsjaW5jbHVkZSA8YXNtL2Zpcm13YXJlL3Nj aS5oPg0KPj4+PiAgICAjaW5jbHVkZSA8YXNtL2lycS5oPg0KPj4+PiAgICAjaW5jbHVkZSA8YXNt L3BhZ2UuaD4NCj4+Pj4gICAgI2luY2x1ZGUgPGFzbS9wMm0uaD4NCj4+Pj4gQEAgLTg1MSw2ICs4 NTIsMjQgQEAgbG9uZyBkb19kb21jdGwoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZW5fZG9tY3Rs X3QpIHVfZG9tY3RsKQ0KPj4+PiAgICAgICAgY2FzZSBYRU5fRE9NQ1RMX2RlYXNzaWduX2Rldmlj ZToNCj4+Pj4gICAgICAgIGNhc2UgWEVOX0RPTUNUTF9nZXRfZGV2aWNlX2dyb3VwOg0KPj4+PiAg ICAgICAgICAgIHJldCA9IGlvbW11X2RvX2RvbWN0bChvcCwgZCwgdV9kb21jdGwpOw0KPj4+PiAr DQo+Pj4+ICsgICAgICAgIGlmICggIXJldCB8fCByZXQgPT0gLUVPUE5PVFNVUFAgKQ0KPj4+IEl0 IGlzIGJldHRlciB0byBpbnZlcnQgdGhlIGNoZWNrOg0KPj4+DQo+Pj4gaWYgKCByZXQgPCAwICYm IHJldCAhPSAtRU9QTk9UU1VQUCApDQo+Pj4gICAgICAgcmV0dXJuIHJldDsNCj4+ICsNCj4+Pj4g KyAgICAgICAgew0KPj4+PiArICAgICAgICAgICAgaW50IHJldDE7DQo+Pj4+ICsgICAgICAgICAg ICAvKg0KPj4+PiArICAgICAgICAgICAgICogQWRkIGNoYWluZWQgaGFuZGxpbmcgb2YgYXNzaWdu ZWQgRFQgZGV2aWNlcyB0byBzdXBwb3J0DQo+Pj4+ICsgICAgICAgICAgICAgKiBhY2Nlc3MtY29u dHJvbGxlciBmdW5jdGlvbmFsaXR5IHRocm91Z2ggU0NJIGZyYW1ld29yaywgc28NCj4+Pj4gKyAg ICAgICAgICAgICAqIERUIGRldmljZSBhc3NpZ24gcmVxdWVzdCBjYW4gYmUgcGFzc2VkIHRvIEZX IGZvciBwcm9jZXNzaW5nIGFuZA0KPj4+PiArICAgICAgICAgICAgICogZW5hYmxpbmcgVk0gYWNj ZXNzIHRvIHJlcXVlc3RlZCBkZXZpY2UuDQo+Pj4+ICsgICAgICAgICAgICAgKiBUaGUgYWNjZXNz LWNvbnRyb2xsZXIgRFQgZGV2aWNlIHByb2Nlc3NpbmcgaXMgY2hhaW5lZCBhZnRlciBJT01NVQ0K Pj4+PiArICAgICAgICAgICAgICogcHJvY2Vzc2luZyBhbmQgZXhwZWN0ZWQgdG8gYmUgZXhlY3V0 ZWQgZm9yIGFueSBEVCBkZXZpY2UNCj4+Pj4gKyAgICAgICAgICAgICAqIHJlZ2FyZGxlc3MgaWYg RFQgZGV2aWNlIGlzIHByb3RlY3RlZCBieSBJT01NVSBvciBub3QgKG9yIElPTU1VDQo+Pj4+ICsg ICAgICAgICAgICAgKiBpcyBkaXNhYmxlZCkuDQo+Pj4+ICsgICAgICAgICAgICAgKi8NCj4+Pj4g KyAgICAgICAgICAgIHJldDEgPSBzY2lfZG9fZG9tY3RsKG9wLCBkLCB1X2RvbWN0bCk7DQo+Pj4+ ICsgICAgICAgICAgICBpZiAoIHJldDEgIT0gLUVPUE5PVFNVUFAgKQ0KPj4+PiArICAgICAgICAg ICAgICAgIHJldCA9IHJldDE7DQo+Pj4+ICsgICAgICAgIH0NCj4+Pj4gICAgICAgICAgICBicmVh azsNCj4+Pj4gICAgDQo+Pj4+ICAgICAgICBjYXNlIFhFTl9ET01DVExfZ2V0X3BhZ2luZ19tZW1w b29sX3NpemU6DQo+Pj4+IGRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9kZXZp Y2VfdHJlZS5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvZGV2aWNlX3RyZWUuYw0KPj4+PiBp bmRleCAwNzVmYjI1YTM3Li4yNjI0NzY3ZTUxIDEwMDY0NA0KPj4+PiAtLS0gYS94ZW4vZHJpdmVy cy9wYXNzdGhyb3VnaC9kZXZpY2VfdHJlZS5jDQo+Pj4+ICsrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL2RldmljZV90cmVlLmMNCj4+Pj4gQEAgLTMxOCw2ICszMTgsMTIgQEAgaW50IGlvbW11 X2RvX2R0X2RvbWN0bChzdHJ1Y3QgeGVuX2RvbWN0bCAqZG9tY3RsLCBzdHJ1Y3QgZG9tYWluICpk LA0KPj4+PiAgICAgICAgICAgICAgICBicmVhazsNCj4+Pj4gICAgICAgICAgICB9DQo+Pj4+ICAg IA0KPj4+PiArICAgICAgICBpZiAoICFkdF9kZXZpY2VfaXNfcHJvdGVjdGVkKGRldikgKQ0KPj4+ PiArICAgICAgICB7DQo+Pj4+ICsgICAgICAgICAgICByZXQgPSAwOw0KPj4+PiArICAgICAgICAg ICAgYnJlYWs7DQo+Pj4+ICsgICAgICAgIH0NCj4+PiBJIGFtIGNvbmNlcm5lZCBhYm91dCB0aGlz OiBwcmV2aW91c2x5IHdlIHdvdWxkIGNhbGwNCj4+PiBpb21tdV9hc3NpZ25fZHRfZGV2aWNlIGFu ZCB0aGUgc2FtZSBjaGVjayBhdCB0aGUgYmVnaW5uaW5nIG9mDQo+Pj4gaW9tbXVfYXNzaWduX2R0 X2RldmljZSB3b3VsZCByZXR1cm4gLUVJTlZBTC4gTm93IGl0IGlzIGEgc3VjY2Vzcy4NCj4+Pg0K Pj4+IEkgYW0gbm90IHN1cmUgdGhpcyBpcyBhcHByb3ByaWF0ZS4gSSB3b25kZXIgaWYgaW5zdGVh ZCB3ZSBzaG91bGQ6DQo+Pj4NCj4+PiAtIHJlbW92ZSB0aGlzIGNodW5rIGZyb20gdGhlIHBhdGNo DQo+Pj4gLSBjaGFuZ2UgdGhlIHJldHVybiBlcnJvciBmb3IgIWR0X2RldmljZV9pc19wcm90ZWN0 ZWQgYXQgdGhlIHRvcCBvZg0KPj4+ICAgICBpb21tdV9hc3NpZ25fZHRfZGV2aWNlIGZyb20gLUVJ TlZBTCB0byAtRU9QTk9UU1VQUA0KPj4+IC0gdGhpcyB3b3VsZCBmYWxsIGludG8gdGhlIHNhbWUg cmV0ICE9IC1FT1BOT1RTVVBQIGNoZWNrIGFmdGVyDQo+Pj4gICAgIGlvbW11X2RvX2RvbWN0bA0K Pj4gVGhhdCdzIGEgZ29vZCBwb2ludC4gSSB0aGluayB3ZSBzaG91bGQgZG8gdGhlIHNhbWUgZm9y DQo+Pg0KPj4gICA+IGlmICggIWlzX2lvbW11X2VuYWJsZWQoZCkgKQ0KPj4NCj4+ICAgPsKgIHJl dHVybiAtRUlOVkFMOw0KPj4NCj4+IGJlY2F1c2UgaW4gdGhpcyBjYXNlIHdlIHNob3VsZCBwcm9j ZXNzIHNjaSBhcyB3ZWxsLiBJIHdpbGwgZG8gdGhlIGNoYW5nZQ0KPj4NCj4+Pj4gICAgICAgICAg ICByZXQgPSBpb21tdV9hc3NpZ25fZHRfZGV2aWNlKGQsIGRldik7DQo+Pj4+ICAgIA0KPj4+PiAg ICAgICAgICAgIGlmICggcmV0ICkNCj4+Pj4gLS0gDQo+Pj4+IDIuMzQuMQ0KPj4+ID4=