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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 54F7CFD8FC0 for ; Thu, 26 Feb 2026 15:00:10 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id AB28410E968; Thu, 26 Feb 2026 15:00:09 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (1024-bit key; unprotected) header.d=amd.com header.i=@amd.com header.b="aX9SBK1b"; dkim-atps=neutral Received: from MW6PR02CU001.outbound.protection.outlook.com (mail-westus2azon11012015.outbound.protection.outlook.com [52.101.48.15]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7746710E05D for ; Thu, 26 Feb 2026 15:00:08 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ipXDqFrEuvgVUzEYbaXC+VVvSuzMhWqYqg+8csOytL8J1btxq6O1GV1c33FFM2ty2jmSeuTxANC+2YG0eEKICXi2cSRGNfeSvIG3riWukWrMYYBMfyRS/M0Gqp/EYJMIgrIMLcqwXWuyk105VG+A/kyMsqlDp7WiEqOSukH3iigbIHv7EB6XDzg7TH/H0HWoBEzBNZpq1CaLSsItkIncfPGI6lki2W6hNGw3LalbmME4pRUQgBkXJ57eqMB8VpHRKnGJ1757paOREvHiysGALOLD7UsXL8reW05uStLVeez9nwLYqz5FCwZebzFTFSMrhcFvYKiKpPQOQ8hz77KofA== 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=48F6svqXtC5Sy2nl5H2DF7sub791rjWNKqQweOaNt+4=; b=EOT47zpLK15KsYHZ+zopBcoBa3J+Z+WfvdZWaoSRl6HpXPNuF6ge690uiqRFdMaYEsPHvxX8x7GOIP8eEVNEkjklgS0xW3sAIN/SFc9VE+NgekJkJHy3sCDzN73A2E/DOFQROYHLaE6uhZYmsxtnFojWjiT2PetWbaqBF76xBUZ4Dbf26/Vp0fYB7sAXq44XhnkQv2uXlFSUdT1vLMEwDOxcX6nmcCbGdir15xvoDF/fQY+ZKTopGGqsM8wqsPENq6hM5su42m2HLDxPUQYO8k62/+L9coOg8p9VO+fcOv2ekMQUcx9H00NJkauFZh7gZLwLKfk1pX33CObkk+tbfQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=48F6svqXtC5Sy2nl5H2DF7sub791rjWNKqQweOaNt+4=; b=aX9SBK1bATl6BhiWLyR364PJfxVPD3VFL2cC6dk8u5vcqBH/3Tgktp9LjopodeZGQHhqXfusD/OqIqHJsX/IkKOpscDoiDjOt5WzYnDwhiDRWQur7FteZ3sgSNeQoeYq+5jpsmZuNvlynBBJK3dJ5n/HJ6qwwQ7luYUe83AK98k= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; Received: from PH7PR12MB5685.namprd12.prod.outlook.com (2603:10b6:510:13c::22) by SN7PR12MB7322.namprd12.prod.outlook.com (2603:10b6:806:299::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.14; Thu, 26 Feb 2026 15:00:03 +0000 Received: from PH7PR12MB5685.namprd12.prod.outlook.com ([fe80::ce69:cfae:774d:a65c]) by PH7PR12MB5685.namprd12.prod.outlook.com ([fe80::ce69:cfae:774d:a65c%5]) with mapi id 15.20.9632.017; Thu, 26 Feb 2026 15:00:02 +0000 Message-ID: <09364420-1044-4c9b-9907-b92b06653eaf@amd.com> Date: Thu, 26 Feb 2026 15:59:49 +0100 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 7/9] accel/neutron: Add job submission IOCTL To: Ioana Ciocoi-Radulescu , Oded Gabbay , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Sumit Semwal , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Frank Li Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, devicetree@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-media@vger.kernel.org, linaro-mm-sig@lists.linaro.org, Jiwei Fu , Forrest Shi , Alexandru Taran References: <20260226-neutron-v1-0-46eccb3bb50a@nxp.com> <20260226-neutron-v1-7-46eccb3bb50a@nxp.com> Content-Language: en-US From: =?UTF-8?Q?Christian_K=C3=B6nig?= In-Reply-To: <20260226-neutron-v1-7-46eccb3bb50a@nxp.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-ClientProxiedBy: YT4P288CA0045.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:d3::18) To PH7PR12MB5685.namprd12.prod.outlook.com (2603:10b6:510:13c::22) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH7PR12MB5685:EE_|SN7PR12MB7322:EE_ X-MS-Office365-Filtering-Correlation-Id: 6b162715-8dab-4b79-94ab-08de7547b75b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|376014|7416014|366016|1800799024|7053199007|921020; X-Microsoft-Antispam-Message-Info: lK8mN3gBWhDTEvgt2/8RxX0UHMJhbu7pPFSrM5wuOFKXr3RTstIS72JRChvKHSq713vcB/blDNptdSQkR0LVQYoRzH8LXZo/e4SsLZSBGJG1scCuwg7apFhDK84++FRG+AHW6Vv7nnrDduwM5cFJHKiQAYaux5uHFyNRlty+H1AVBXjYN+IJV8Y27jaCUSPkl1bk/EIXNR8Xxl24qxixgKwFnbMp1pB0diT6AChFdUf6Ek0jD5Ak+FlXQK/kugRViTfIybaxArrjAxOOIrDmwKPkKebo9rUHV20374Yl9WGvb60PkwCC7p+wns6yDd+KlwOt+Hn25JCrhFjN2R93IlnOn7+CU+7/zqLVm5adiePLLzuKWI40Jjaok20Xkr+EHTwFXpsnA3l4bdHhiogV3RRWPvF+x5iI4LcLUzpwvcodqppHGKtCPPfGY2hEVdzvD4OJivBvBFTPIugNPlZsG5++LRTxT11KLbupBqOrcKKN8COqxjYbf5cIMpc4oxFmOla4QdfP+jg/L+Iao+g0d73lYllwPeLCZDWo1WoZ0+d5ydg3ceKNZ0anWwpVKfRaF8MN3wlVQeIFKXYxs2B9Pl4QquxO72WEGWvnXqio2SlrKc++f2bctrMnBum55S+SXopgqPcwZEdUYQL0nsoWEuUKluSbLWryFfFOJnXu2ySIaNyIhvQ3x7Ny+PcRdekVcG/85k+TaFfTzstqVs+e9ie4iPmkSvJ99tQLNIZqX9MO+AdrFC5sT5xB/Y3iPQ3OffSOACbC4R09CQ8++bDnJg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH7PR12MB5685.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(376014)(7416014)(366016)(1800799024)(7053199007)(921020); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?djVOWjU5LzYxQUdtN2hDZU1FL1VFdGhCNEU1NDVLOHVZZWtBeDZLSlloYXdG?= =?utf-8?B?WXczV3lGSkxIcmlDc2RHUXFNUVFsaitVditCOTh2R3N6NmZTNFdjeU9ZWmNL?= =?utf-8?B?eEVVNDNESlVSa1hFd3V2cVEvMHd5RVhRanN1RUovaklVaDhLRUt4TXRoNEds?= =?utf-8?B?UWdBM2FrK1hWaStFVUpsQnZkaEc1NjFiZVIybGlNbWpQdldSUEZVUXEzSFVs?= =?utf-8?B?akhVNGFXV21hWWRyUXJ2cjRNTDVjSXRxL0pnWkFnR0RGNWpKbk00MzF6VTFw?= =?utf-8?B?em9iSWI3dTBIcEFBQ3pDWFJuZmpOVllkbzJqd08zWVdyRjBCbXVVb1ZvUkNy?= =?utf-8?B?L2F4V2hTT1FGSVFvM3NicXd0NE1TdEM2NlBEcjZzSUJBSXlXZkJrby9wNWsw?= =?utf-8?B?VGRONXJyamJXM0lUbkZZeVhBZHJjdEVpNTh5ZGNUL1lmdjYydFhFbkpXUWYx?= =?utf-8?B?dnRuSnV4N2dTYXJ2Nmc0dFJKaVRQNjZaZDRyYUVQU2xTdDZCbkdIQjBKZk11?= =?utf-8?B?aGV3R0J3TEM4SC9kamUzOTc3cUZWMHQwbVNROTNSbU5RMlViblB6RStOTG5B?= =?utf-8?B?S3FULzRJblF6UXZQUjdVZkxMaHphSkE3VFFoS0szZkdmZWVzUHZxUkxWZDlI?= =?utf-8?B?Z0c1VW5aQUZ5eFJiemUySEgrWE53bEd1RHA0YlVUSWJNSUliOWdQdWlXYnNY?= =?utf-8?B?UlZvVjhtL05CZytjUWhKRlY5Q0VYbStYTGV1L25BcVlxeEZkNzNMUXNBQmFH?= =?utf-8?B?ekxtVDQ1K2RGN01zOEt3dW5uTzZXT1lLT1ZlaUxBM3VvakFXc0N5V2RqUTFi?= =?utf-8?B?TTdLKzJKTklEVWdBZkUwb0FzdE9IK1hCNXRSM0dCVmsrV0lWTDl0ZFM3NlBa?= =?utf-8?B?RDJPZTBQS2RCY2pUVHhwS3lnVGZ6dGlBTzBmV2JyRGV0b244Q0dsdkh4a1lv?= =?utf-8?B?bjFCTjl5ZXhYamZzVi9jcytRb0tLUVA5OUgrSEVtaC9LZ1BpV0NZSFF3dEI3?= =?utf-8?B?aWZzdVRySDFXbUEwcG4zVlduUmRKazU1WEVGekxTMEdrODNIanUwWXhMalBD?= =?utf-8?B?WmZNNzJqQ1diRGxRdU45Z3k5ajJ4dXJDaG9OMnQvMDR6TEVjM3N4ZjZXSS9G?= =?utf-8?B?ZHM0cE1neGhveEtTSi9DWWRmQ1dZWGtSNXZmQ2k1YlVsU3lTN3ByM0FVWk1L?= =?utf-8?B?ZHV1OW12Ly8veHgyc092aUxxZTlNcHA4L3JBRWlOQWI5Wm9KWWxGSG1DQzBh?= =?utf-8?B?M0QyK3RMdWh4ajhqMjJrQ0hEdlVxaUhMZExnSTJKM0g3RittQmdPRXBVajlX?= =?utf-8?B?bXUrZFlzV2NEejMwYmdNOEJVL3RnZjY2ZjlMTW9UM25ObUxpV1VGMFVtT0R5?= =?utf-8?B?akhJT1dscExocTU3Z0J3ZGQyVEpXd2hQQWxWNUNBdVh1dHdKM3dLc1Y5SGlS?= =?utf-8?B?cDNPYklsaVJmUzdFUDhBR0pUSlloYTAxUUZ3VW5lRUMxWTRqeWI2T3dqTlF2?= =?utf-8?B?a3hXTEJXVXdNdGpLbFRXTWwrZG5SWEhwMExKWmtzbEhHSkppU2xDdTEycWQy?= =?utf-8?B?NHNGekdPVE1RbWV1ckhLQTA5VUpwaS9XOEEwQzBldldJeFhYMlpWWVdHZnpE?= =?utf-8?B?REhmSDB3MXFzSG8rRzlvdk5wUkozY0xvUnNkZjd5blJ0WURCdjRpcXlsNW9a?= =?utf-8?B?VU5ISFFHeUR6bmd2aXRyZWdrUmFuZ1hjVEo0MWR4bXFKWFhQeVpPdkJlMktW?= =?utf-8?B?SHFKUGliSGoyNGwyVTlOdzE0a3V1NjQzUS8vSmU1TWx3ZC9QSDYvcUV0WDJB?= =?utf-8?B?MEx1bThKYUVJNjg0akFBZGx2N0ZRd1pxWlJ6Nm5lY2tuQzNUU2tuWmI3ZkRG?= =?utf-8?B?eThJeHJWUXZVQTlFUDhwMjRBbjVveG5jekhyMzFNNlBxRkpSc1Vxa2M5QkQ5?= =?utf-8?B?TDZBcG8zVXNwMUc3TU1nT0huNVVGNUNvUUxORk40VlZRSkNIU3BEOEwrdytw?= =?utf-8?B?NHM1eFprQVI4ZGMyVC81WWEzZ0phdTFjTjZycTFpV2dIQTFwRk5nOTFIakND?= =?utf-8?B?UzhLYVZCN0lXcmJCdkN2WWlhNURJY0d2d0lCbkoxRE1uNjcxTHVSWlQ2QkZ0?= =?utf-8?B?bENWeGg0aU5vcndLejNiU1NhM2NpQlMzV3lzeDN2TFBNUlI5aE5UVEk3K05j?= =?utf-8?B?T0Y2MkcraHF4amJ3N0puTnJHaUVtRmtuR1M1SlRMUFNRTEpRNXdva3VHcmJG?= =?utf-8?B?N2Y2Y0lJOU9HNVd0bnFXU2J5NHpobEphWlpOVFM2VG1OdjBvTE8vM0k4MSsw?= =?utf-8?Q?2JMu3zNpU16MJixqoh?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6b162715-8dab-4b79-94ab-08de7547b75b X-MS-Exchange-CrossTenant-AuthSource: PH7PR12MB5685.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2026 15:00:02.6199 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ujwAhCbT/Fj92rix5dOwPGPjabe/a/iLgW3W1IQEOJQOfzaCLlJ3Wg0eUYMG3fru X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7322 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" T24gMi8yNi8yNiAxNDo0MCwgSW9hbmEgQ2lvY29pLVJhZHVsZXNjdSB3cm90ZToKPiBbU2llIGVy aGFsdGVuIG5pY2h0IGjDpHVmaWcgRS1NYWlscyB2b24gcnV4YW5kcmEucmFkdWxlc2N1QG54cC5j b20uIFdlaXRlcmUgSW5mb3JtYXRpb25lbiwgd2FydW0gZGllcyB3aWNodGlnIGlzdCwgZmluZGVu IFNpZSB1bnRlciBodHRwczovL2FrYS5tcy9MZWFybkFib3V0U2VuZGVySWRlbnRpZmljYXRpb24g XQo+IAo+IE5ldXRyb24gY2FuIGV4ZWN1dGUgYSBzaW5nbGUgam9iIGF0IGEgdGltZS4gRm9yIG5v dywgb25seSBpbmZlcmVuY2UKPiBqb2JzIGFyZSBzdXBwb3J0ZWQuIEVhY2ggam9iIGhhcyBleGFj dGx5IG9uZSBCTyBhc3NvY2lhdGVkIHdpdGggaXQuCj4gCj4gV2hlbiBzdWJtaXR0aW5nIGEgam9i LCB1c2VyIGFsc28gcHJvdmlkZXMgYSBzeW5jb2JqIGhhbmRsZSBvbiB3aGljaCBpdAo+IHdpbGwg d2FpdCBmb3Igam9iIGNvbXBsZXRpb24uCj4gCj4gV2UgdXNlIHRoZSBEUk0gR1BVIHNjaGVkdWxl ciBmb3Igam9iIG1hbmFnZW1lbnQuIExhcmdlIHBhcnQgb2YgdGhlIGpvYgo+IHN1Ym1pc3Npb24g Y29kZSBpcyBiYXNlZCBvbiB0aGUgZXhhbXBsZSBvZiB0aGUgZXRob3N1IGRyaXZlci4KPiAKPiBT aWduZWQtb2ZmLWJ5OiBKaXdlaSBGdSA8aml3ZWkuZnVAbnhwLmNvbT4KPiBTaWduZWQtb2ZmLWJ5 OiBJb2FuYSBDaW9jb2ktUmFkdWxlc2N1IDxydXhhbmRyYS5yYWR1bGVzY3VAbnhwLmNvbT4KPiAt LS0KPiAgZHJpdmVycy9hY2NlbC9uZXV0cm9uL01ha2VmaWxlICAgICAgICAgfCAgIDEgKwo+ICBk cml2ZXJzL2FjY2VsL25ldXRyb24vbmV1dHJvbl9kZXZpY2UuYyB8ICAgOCArLQo+ICBkcml2ZXJz L2FjY2VsL25ldXRyb24vbmV1dHJvbl9kZXZpY2UuaCB8ICAyMSArKwo+ICBkcml2ZXJzL2FjY2Vs L25ldXRyb24vbmV1dHJvbl9kcml2ZXIuYyB8ICAyOCArKy0KPiAgZHJpdmVycy9hY2NlbC9uZXV0 cm9uL25ldXRyb25fZHJpdmVyLmggfCAgIDMgKwo+ICBkcml2ZXJzL2FjY2VsL25ldXRyb24vbmV1 dHJvbl9qb2IuYyAgICB8IDM2NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAg ZHJpdmVycy9hY2NlbC9uZXV0cm9uL25ldXRyb25fam9iLmggICAgfCAgNDUgKysrKwo+ICBpbmNs dWRlL3VhcGkvZHJtL25ldXRyb25fYWNjZWwuaCAgICAgICB8ICA1MSArKysrKwo+ICA4IGZpbGVz IGNoYW5nZWQsIDUxOSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2FjY2VsL25ldXRyb24vTWFrZWZpbGUgYi9kcml2ZXJzL2FjY2VsL25ldXRy b24vTWFrZWZpbGUKPiBpbmRleCAxOTJlZDg5NmE5ZjkuLmFjNmRkNTc2NTIxYyAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2FjY2VsL25ldXRyb24vTWFrZWZpbGUKPiArKysgYi9kcml2ZXJzL2FjY2Vs L25ldXRyb24vTWFrZWZpbGUKPiBAQCAtNiw0ICs2LDUgQEAgbmV1dHJvbi15IDo9IFwKPiAgICAg ICAgIG5ldXRyb25fZHJpdmVyLm8gXAo+ICAgICAgICAgbmV1dHJvbl9kZXZpY2UubyBcCj4gICAg ICAgICBuZXV0cm9uX2dlbS5vIFwKPiArICAgICAgIG5ldXRyb25fam9iLm8gXAo+ICAgICAgICAg bmV1dHJvbl9tYWlsYm94Lm8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY2NlbC9uZXV0cm9uL25l dXRyb25fZGV2aWNlLmMgYi9kcml2ZXJzL2FjY2VsL25ldXRyb24vbmV1dHJvbl9kZXZpY2UuYwo+ IGluZGV4IGU1YzA5MTA1YmU5OS4uNTcxZWM5MDZhZDcyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv YWNjZWwvbmV1dHJvbi9uZXV0cm9uX2RldmljZS5jCj4gKysrIGIvZHJpdmVycy9hY2NlbC9uZXV0 cm9uL25ldXRyb25fZGV2aWNlLmMKPiBAQCAtNyw2ICs3LDcgQEAKPiAgI2luY2x1ZGUgPGxpbnV4 L2lvcG9sbC5oPgo+IAo+ICAjaW5jbHVkZSAibmV1dHJvbl9kZXZpY2UuaCIKPiArI2luY2x1ZGUg Im5ldXRyb25fam9iLmgiCj4gICNpbmNsdWRlICJuZXV0cm9uX21haWxib3guaCIKPiAKPiAgdm9p ZCBuZXV0cm9uX2VuYWJsZV9pcnEoc3RydWN0IG5ldXRyb25fZGV2aWNlICpuZGV2KQo+IEBAIC0z Miw5ICszMywxNCBAQCB2b2lkIG5ldXRyb25faGFuZGxlX2lycShzdHJ1Y3QgbmV1dHJvbl9kZXZp Y2UgKm5kZXYpCj4gICAgICAgICAvKiBXcml0ZSAxIHRvIGNsZWFyICovCj4gICAgICAgICB3cml0 ZWxfcmVsYXhlZChhcHBzdGF0dXMgJiBBUFBTVEFUVVNfQ0xFQVJfTUFTSywgTkVVVFJPTl9SRUco bmRldiwgQVBQU1RBVFVTKSk7Cj4gCj4gLSAgICAgICBpZiAoYXBwc3RhdHVzICYgQVBQU1RBVFVT X0ZBVUxUQ0FVU0VfTUFTSykKPiArICAgICAgIGlmIChhcHBzdGF0dXMgJiBBUFBTVEFUVVNfRkFV TFRDQVVTRV9NQVNLKSB7Cj4gICAgICAgICAgICAgICAgIGRldl9lcnIobmRldi0+ZGV2LCAiTmV1 dHJvbiBoYWx0ZWQgZHVlIHRvIGZhdWx0OiAweCVseFxuIiwKPiAgICAgICAgICAgICAgICAgICAg ICAgICBGSUVMRF9HRVQoQVBQU1RBVFVTX0ZBVUxUQ0FVU0VfTUFTSywgYXBwc3RhdHVzKSk7Cj4g KyAgICAgICAgICAgICAgIHJldHVybiBuZXV0cm9uX2pvYl9lcnJfaGFuZGxlcihuZGV2KTsKPiAr ICAgICAgIH0KPiArCj4gKyAgICAgICBpZiAoYXBwc3RhdHVzICYgQVBQU1RBVFVTX0lORkRPTkUp Cj4gKyAgICAgICAgICAgICAgIG5ldXRyb25fam9iX2RvbmVfaGFuZGxlcihuZGV2KTsKPiAgfQo+ IAo+ICAjZGVmaW5lIG5ldXRyb25fYm9vdF9kb25lKGFwcGN0cmwpIFwKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9hY2NlbC9uZXV0cm9uL25ldXRyb25fZGV2aWNlLmggYi9kcml2ZXJzL2FjY2VsL25l dXRyb24vbmV1dHJvbl9kZXZpY2UuaAo+IGluZGV4IDhlNGRmNzQ2MmQ4Mi4uMGVkNzI5NjU3NzRk IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvYWNjZWwvbmV1dHJvbi9uZXV0cm9uX2RldmljZS5oCj4g KysrIGIvZHJpdmVycy9hY2NlbC9uZXV0cm9uL25ldXRyb25fZGV2aWNlLmgKPiBAQCAtOSw4ICs5 LDEwIEBACj4gICNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgo+ICAjaW5jbHVkZSA8bGludXgv Yml0cy5oPgo+ICAjaW5jbHVkZSA8ZHJtL2RybV9kZXZpY2UuaD4KPiArI2luY2x1ZGUgPGRybS9n cHVfc2NoZWR1bGVyLmg+Cj4gCj4gIHN0cnVjdCBjbGtfYnVsa19kYXRhOwo+ICtzdHJ1Y3QgbmV1 dHJvbl9qb2I7Cj4gCj4gICNkZWZpbmUgTkVVVFJPTl9GSVJNV0FSRV9OQU1FICAgICAgICAgICJO ZXV0cm9uRmlybXdhcmUuZWxmIgo+IAo+IEBAIC05Miw2ICs5NCwxMyBAQCBlbnVtIG5ldXRyb25f bWVtX2lkIHsKPiAgICogQGNsa3M6IE5ldXRyb24gY2xvY2tzCj4gICAqIEBudW1fY2xrczogTnVt YmVyIG9mIGNsb2Nrcwo+ICAgKiBAZmxhZ3M6IFNvZnR3YXJlIGZsYWdzIHVzZWQgYnkgZHJpdmVy Cj4gKyAqIEBmZW5jZV9sb2NrOiBETUEgZmVuY2UgbG9jawo+ICsgKiBAc2NoZWQ6IEdQVSBzY2hl ZHVsZXIKPiArICogQHNjaGVkX2xvY2s6IFNjaGVkdWxlciBsb2NrLCBmb3IgbmV1dHJvbl9wdXNo X2pvYgo+ICsgKiBAZmVuY2VfY29udGV4dDogRmVuY2UgY29udGV4dAo+ICsgKiBAam9iX3NlcW5v OiBKb2Igc2VxdWVuY2UgbnVtYmVyCj4gKyAqIEBqb2JfbG9jazogSm9iIGxvY2ssIGZvciBhY3Rp dmVfam9iIGhhbmRsaW5nCj4gKyAqIEBhY3RpdmVfam9iOiBDdXJyZW50bHkgYWN0aXZlIGpvYgo+ ICAgKi8KPiAgc3RydWN0IG5ldXRyb25fZGV2aWNlIHsKPiAgICAgICAgIHN0cnVjdCBkcm1fZGV2 aWNlIGJhc2U7Cj4gQEAgLTEwMyw2ICsxMTIsMTggQEAgc3RydWN0IG5ldXRyb25fZGV2aWNlIHsK PiAgICAgICAgIHN0cnVjdCBjbGtfYnVsa19kYXRhICpjbGtzOwo+ICAgICAgICAgaW50IG51bV9j bGtzOwo+ICAgICAgICAgdTMyIGZsYWdzOwo+ICsKPiArICAgICAgIC8qIEZvciBkbWFfZmVuY2Ug Ki8KPiArICAgICAgIHNwaW5sb2NrX3QgZmVuY2VfbG9jazsKCkkndmUganVzdCBwdXNoZWQgYSBw YXRjaCBzZXQgdG8gZHJtLW1pc2MtbmV4dCB3aGljaCBtYWtlcyB0aGUgZmVuY2VfbG9jayBzdXBl cmZsb3VzIGluIG1vc3QgY2FzZXMuIEp1c3QgcHJvdmlkZSBOVUxMIGFzIGxvY2sgd2hlbiBjYWxs aW5nIHRvIGRtYV9mZW5jZV9pbml0KCkuCgo+ICsgICAgICAgc3RydWN0IGRybV9ncHVfc2NoZWR1 bGVyIHNjaGVkOwo+ICsgICAgICAgLyogRm9yIG5ldXRyb25fcHVzaF9qb2IgKi8KPiArICAgICAg IHN0cnVjdCBtdXRleCBzY2hlZF9sb2NrOwo+ICsgICAgICAgdTY0IGZlbmNlX2NvbnRleHQ7Cj4g KyAgICAgICB1NjQgam9iX3NlcW5vOwo+ICsKPiArICAgICAgIC8qIEZvciBhY3RpdmVfam9iIGhh bmRsaW5nICovCj4gKyAgICAgICBzdHJ1Y3QgbXV0ZXggam9iX2xvY2s7Cj4gKyAgICAgICBzdHJ1 Y3QgbmV1dHJvbl9qb2IgKmFjdGl2ZV9qb2I7Cj4gIH07Cj4gCj4gICNkZWZpbmUgdG9fbmV1dHJv bl9kZXZpY2UoZHJtKSBcCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNjZWwvbmV1dHJvbi9uZXV0 cm9uX2RyaXZlci5jIGIvZHJpdmVycy9hY2NlbC9uZXV0cm9uL25ldXRyb25fZHJpdmVyLmMKPiBp bmRleCBjOWExOGJmNTIwMzcuLmNlYWUxZjdlODM1OSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2Fj Y2VsL25ldXRyb24vbmV1dHJvbl9kcml2ZXIuYwo+ICsrKyBiL2RyaXZlcnMvYWNjZWwvbmV1dHJv bi9uZXV0cm9uX2RyaXZlci5jCj4gQEAgLTE5LDQwICsxOSw1MyBAQAo+ICAjaW5jbHVkZSAibmV1 dHJvbl9kZXZpY2UuaCIKPiAgI2luY2x1ZGUgIm5ldXRyb25fZHJpdmVyLmgiCj4gICNpbmNsdWRl ICJuZXV0cm9uX2dlbS5oIgo+ICsjaW5jbHVkZSAibmV1dHJvbl9qb2IuaCIKPiAKPiAgI2RlZmlu ZSBORVVUUk9OX1NVU1BFTkRfREVMQVlfTVMgMTAwMAo+IAo+ICBzdGF0aWMgY29uc3Qgc3RydWN0 IGRybV9pb2N0bF9kZXNjIG5ldXRyb25fZHJtX2lvY3Rsc1tdID0gewo+ICAgICAgICAgRFJNX0lP Q1RMX0RFRl9EUlYoTkVVVFJPTl9DUkVBVEVfQk8sIG5ldXRyb25faW9jdGxfY3JlYXRlX2JvLCAw KSwKPiAgICAgICAgIERSTV9JT0NUTF9ERUZfRFJWKE5FVVRST05fU1lOQ19CTywgbmV1dHJvbl9p b2N0bF9zeW5jX2JvLCAwKSwKPiArICAgICAgIERSTV9JT0NUTF9ERUZfRFJWKE5FVVRST05fU1VC TUlUX0pPQiwgbmV1dHJvbl9pb2N0bF9zdWJtaXRfam9iLCAwKSwKPiAgfTsKPiAKPiAgc3RhdGlj IGludCBuZXV0cm9uX29wZW4oc3RydWN0IGRybV9kZXZpY2UgKmRybSwgc3RydWN0IGRybV9maWxl ICpmaWxlKQo+ICB7Cj4gICAgICAgICBzdHJ1Y3QgbmV1dHJvbl9kZXZpY2UgKm5kZXYgPSB0b19u ZXV0cm9uX2RldmljZShkcm0pOwo+ICAgICAgICAgc3RydWN0IG5ldXRyb25fZmlsZV9wcml2ICpu cHJpdjsKPiArICAgICAgIGludCByZXQ7Cj4gCj4gICAgICAgICBucHJpdiA9IGt6YWxsb2Nfb2Jq KCpucHJpdik7Cj4gICAgICAgICBpZiAoIW5wcml2KQo+ICAgICAgICAgICAgICAgICByZXR1cm4g LUVOT01FTTsKPiAKPiAgICAgICAgIG5wcml2LT5uZGV2ID0gbmRldjsKPiAtICAgICAgIGZpbGUt PmRyaXZlcl9wcml2ID0gbnByaXY7Cj4gCj4gKyAgICAgICByZXQgPSBuZXV0cm9uX2pvYl9vcGVu KG5wcml2KTsKPiArICAgICAgIGlmIChyZXQpCj4gKyAgICAgICAgICAgICAgIGdvdG8gZXJyX2Zy ZWU7Cj4gKwo+ICsgICAgICAgZmlsZS0+ZHJpdmVyX3ByaXYgPSBucHJpdjsKPiAgICAgICAgIHJl dHVybiAwOwo+ICsKPiArZXJyX2ZyZWU6Cj4gKyAgICAgICBrZnJlZShucHJpdik7Cj4gKyAgICAg ICByZXR1cm4gcmV0Owo+ICB9Cj4gCj4gIHN0YXRpYyB2b2lkIG5ldXRyb25fcG9zdGNsb3NlKHN0 cnVjdCBkcm1fZGV2aWNlICpkcm0sIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSkKPiAgewo+ICAgICAg ICAgc3RydWN0IG5ldXRyb25fZmlsZV9wcml2ICpucHJpdiA9IGZpbGUtPmRyaXZlcl9wcml2Owo+ IAo+ICsgICAgICAgbmV1dHJvbl9qb2JfY2xvc2UobnByaXYpOwo+ICAgICAgICAga2ZyZWUobnBy aXYpOwo+ICB9Cj4gCj4gIERFRklORV9EUk1fQUNDRUxfRk9QUyhuZXV0cm9uX2RybV9kcml2ZXJf Zm9wcyk7Cj4gCj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2RyaXZlciBuZXV0cm9uX2RybV9k cml2ZXIgPSB7Cj4gLSAgICAgICAuZHJpdmVyX2ZlYXR1cmVzICAgICAgICA9IERSSVZFUl9DT01Q VVRFX0FDQ0VMIHwgRFJJVkVSX0dFTSwKPiArICAgICAgIC5kcml2ZXJfZmVhdHVyZXMgICAgICAg ID0gRFJJVkVSX0NPTVBVVEVfQUNDRUwgfCBEUklWRVJfR0VNIHwKPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRFJJVkVSX1NZTkNPQkosCj4gICAgICAgICAubmFtZSAgICAgICAg ICAgICAgICAgICA9ICJuZXV0cm9uIiwKPiAgICAgICAgIC5kZXNjICAgICAgICAgICAgICAgICAg ID0gIk5YUCBOZXV0cm9uIGRyaXZlciIsCj4gICAgICAgICAubWFqb3IgICAgICAgICAgICAgICAg ICA9IDEsCj4gQEAgLTE1MSwxOSArMTY0LDI1IEBAIHN0YXRpYyBpbnQgbmV1dHJvbl9wcm9iZShz dHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICAgICAgICAgICAgICAgICByZXR1cm4gcmV0 Owo+ICAgICAgICAgfQo+IAo+IC0gICAgICAgcmV0ID0gZGV2bV9wbV9ydW50aW1lX2VuYWJsZShk ZXYpOwo+ICsgICAgICAgcmV0ID0gbmV1dHJvbl9qb2JfaW5pdChuZGV2KTsKPiAgICAgICAgIGlm IChyZXQpCj4gICAgICAgICAgICAgICAgIGdvdG8gZnJlZV9yZXNlcnZlZDsKPiAKPiArICAgICAg IHJldCA9IGRldm1fcG1fcnVudGltZV9lbmFibGUoZGV2KTsKPiArICAgICAgIGlmIChyZXQpCj4g KyAgICAgICAgICAgICAgIGdvdG8gZnJlZV9qb2I7Cj4gKwo+ICAgICAgICAgcG1fcnVudGltZV9z ZXRfYXV0b3N1c3BlbmRfZGVsYXkoZGV2LCBORVVUUk9OX1NVU1BFTkRfREVMQVlfTVMpOwo+ICAg ICAgICAgcG1fcnVudGltZV91c2VfYXV0b3N1c3BlbmQoZGV2KTsKPiAKPiAgICAgICAgIHJldCA9 IGRybV9kZXZfcmVnaXN0ZXIoJm5kZXYtPmJhc2UsIDApOwo+ICAgICAgICAgaWYgKHJldCkKPiAt ICAgICAgICAgICAgICAgZ290byBmcmVlX3Jlc2VydmVkOwo+ICsgICAgICAgICAgICAgICBnb3Rv IGZyZWVfam9iOwo+IAo+ICAgICAgICAgcmV0dXJuIDA7Cj4gCj4gK2ZyZWVfam9iOgo+ICsgICAg ICAgbmV1dHJvbl9qb2JfZmluaShuZGV2KTsKPiAgZnJlZV9yZXNlcnZlZDoKPiAgICAgICAgIG9m X3Jlc2VydmVkX21lbV9kZXZpY2VfcmVsZWFzZSgmcGRldi0+ZGV2KTsKPiAKPiBAQCAtMTc1LDYg KzE5NCw3IEBAIHN0YXRpYyB2b2lkIG5ldXRyb25fcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZp Y2UgKnBkZXYpCj4gICAgICAgICBzdHJ1Y3QgbmV1dHJvbl9kZXZpY2UgKm5kZXYgPSBwbGF0Zm9y bV9nZXRfZHJ2ZGF0YShwZGV2KTsKPiAKPiAgICAgICAgIGRybV9kZXZfdW5yZWdpc3RlcigmbmRl di0+YmFzZSk7Cj4gKyAgICAgICBuZXV0cm9uX2pvYl9maW5pKG5kZXYpOwo+ICAgICAgICAgb2Zf cmVzZXJ2ZWRfbWVtX2RldmljZV9yZWxlYXNlKCZwZGV2LT5kZXYpOwo+ICB9Cj4gCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvYWNjZWwvbmV1dHJvbi9uZXV0cm9uX2RyaXZlci5oIGIvZHJpdmVycy9h Y2NlbC9uZXV0cm9uL25ldXRyb25fZHJpdmVyLmgKPiBpbmRleCBjZDUyYjVlYjJkMjcuLmI3MDlk ZTc0MTA1YSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2FjY2VsL25ldXRyb24vbmV1dHJvbl9kcml2 ZXIuaAo+ICsrKyBiL2RyaXZlcnMvYWNjZWwvbmV1dHJvbi9uZXV0cm9uX2RyaXZlci5oCj4gQEAg LTQsMTAgKzQsMTMgQEAKPiAgI2lmbmRlZiBfX05FVVRST05fRFJJVkVSX0hfXwo+ICAjZGVmaW5l IF9fTkVVVFJPTl9EUklWRVJfSF9fCj4gCj4gKyNpbmNsdWRlIDxkcm0vZ3B1X3NjaGVkdWxlci5o Pgo+ICsKPiAgc3RydWN0IG5ldXRyb25fZGV2aWNlOwo+IAo+ICBzdHJ1Y3QgbmV1dHJvbl9maWxl X3ByaXYgewo+ICAgICAgICAgc3RydWN0IG5ldXRyb25fZGV2aWNlICpuZGV2Owo+ICsgICAgICAg c3RydWN0IGRybV9zY2hlZF9lbnRpdHkgc2NoZWRfZW50aXR5Owo+ICB9Owo+IAo+ICAjZW5kaWYg LyogX19ORVVUUk9OX0RSSVZFUl9IX18gKi8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY2NlbC9u ZXV0cm9uL25ldXRyb25fam9iLmMgYi9kcml2ZXJzL2FjY2VsL25ldXRyb24vbmV1dHJvbl9qb2Iu Ywo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAwLi4zMTZlMzYxMTY2 YTIKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvZHJpdmVycy9hY2NlbC9uZXV0cm9uL25ldXRyb25f am9iLmMKPiBAQCAtMCwwICsxLDM2NyBAQAo+ICsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjog R1BMLTIuMCsKPiArLyogQ29weXJpZ2h0IDIwMjUtMjAyNiBOWFAgKi8KPiArCj4gKyNpbmNsdWRl IDxsaW51eC9kZWxheS5oPgo+ICsjaW5jbHVkZSA8bGludXgvcG1fcnVudGltZS5oPgo+ICsjaW5j bHVkZSA8ZHJtL2RybV9maWxlLmg+Cj4gKyNpbmNsdWRlIDxkcm0vZHJtX3ByaW50Lmg+Cj4gKyNp bmNsdWRlIDxkcm0vZHJtX2dlbV9kbWFfaGVscGVyLmg+Cj4gKyNpbmNsdWRlIDxkcm0vbmV1dHJv bl9hY2NlbC5oPgo+ICsKPiArI2luY2x1ZGUgIm5ldXRyb25fZHJpdmVyLmgiCj4gKyNpbmNsdWRl ICJuZXV0cm9uX2RldmljZS5oIgo+ICsjaW5jbHVkZSAibmV1dHJvbl9nZW0uaCIKPiArI2luY2x1 ZGUgIm5ldXRyb25fbWFpbGJveC5oIgo+ICsjaW5jbHVkZSAibmV1dHJvbl9qb2IuaCIKPiArCj4g KyNkZWZpbmUgTkVVVFJPTl9KT0JfVElNRU9VVF9NUyA1MDAwCj4gKwo+ICtzdGF0aWMgY29uc3Qg Y2hhciAqbmV1dHJvbl9mZW5jZV9nZXRfZHJpdmVyX25hbWUoc3RydWN0IGRtYV9mZW5jZSAqZmVu Y2UpCj4gK3sKPiArICAgICAgIHJldHVybiAibmV1dHJvbiI7Cj4gK30KPiArCj4gK3N0YXRpYyBj b25zdCBjaGFyICpuZXV0cm9uX2ZlbmNlX2dldF90aW1lbGluZV9uYW1lKHN0cnVjdCBkbWFfZmVu Y2UgKmZlbmNlKQo+ICt7Cj4gKyAgICAgICByZXR1cm4gIm5ldXRyb24tbnB1IjsKPiArfQo+ICsK PiArc3RhdGljIGNvbnN0IHN0cnVjdCBkbWFfZmVuY2Vfb3BzIG5ldXRyb25fZmVuY2Vfb3BzID0g ewo+ICsgICAgICAgLmdldF9kcml2ZXJfbmFtZSA9IG5ldXRyb25fZmVuY2VfZ2V0X2RyaXZlcl9u YW1lLAo+ICsgICAgICAgLmdldF90aW1lbGluZV9uYW1lID0gbmV1dHJvbl9mZW5jZV9nZXRfdGlt ZWxpbmVfbmFtZSwKPiArfTsKPiArCj4gK3N0YXRpYyB2b2lkIG5ldXRyb25faHdfc3VibWl0KHN0 cnVjdCBuZXV0cm9uX2pvYiAqam9iKQo+ICt7Cj4gKyAgICAgICBzdHJ1Y3QgbmV1dHJvbl9kZXZp Y2UgKm5kZXYgPSBqb2ItPm5kZXY7Cj4gKyAgICAgICBzdHJ1Y3QgbmV1dHJvbl9tYm94X2NtZCBj bWQgPSB7MH07Cj4gKyAgICAgICB1MzIgYmFzZV9sLCBiYXNlX2g7Cj4gKyAgICAgICB1NjQgYmFz ZV9hZGRyOwo+ICsgICAgICAgaW50IHJldDsKPiArCj4gKyAgICAgICBzd2l0Y2ggKGpvYi0+dHlw ZSkgewo+ICsgICAgICAgY2FzZSBEUk1fTkVVVFJPTl9KT0JfSU5GRVJFTkNFOgo+ICsgICAgICAg ICAgICAgICBjbWQuaWQgPSBORVVUUk9OX0NNRF9JTkZFUkVOQ0U7Cj4gKyAgICAgICAgICAgICAg IGNtZC5hcmdzWzBdID0gam9iLT5pbmZlcmVuY2UudGVuc29yX29mZnNldDsKPiArICAgICAgICAg ICAgICAgY21kLmFyZ3NbMV0gPSBqb2ItPmluZmVyZW5jZS5taWNyb2NvZGVfb2Zmc2V0Owo+ICsg ICAgICAgICAgICAgICBjbWQuYXJnc1syXSA9IGpvYi0+aW5mZXJlbmNlLnRlbnNvcl9jb3VudDsK PiArICAgICAgICAgICAgICAgYnJlYWs7Cj4gKyAgICAgICBkZWZhdWx0Ogo+ICsgICAgICAgICAg ICAgICBkZXZfV0FSTihuZGV2LT5kZXYsICJVbmtub3duIGpvYiB0eXBlOiAlZFxuIiwgam9iLT50 eXBlKTsKPiArICAgICAgICAgICAgICAgcmV0dXJuOwo+ICsgICAgICAgfQo+ICsKPiArICAgICAg IGJhc2VfYWRkciA9IHRvX2RybV9nZW1fZG1hX29iaihqb2ItPmJvKS0+ZG1hX2FkZHI7Cj4gKyAg ICAgICBiYXNlX2wgPSBsb3dlcl8zMl9iaXRzKGJhc2VfYWRkcik7Cj4gKyAgICAgICBiYXNlX2gg PSB1cHBlcl8zMl9iaXRzKGJhc2VfYWRkcik7Cj4gKwo+ICsgICAgICAgd3JpdGVsX3JlbGF4ZWQo YmFzZV9sLCBORVVUUk9OX1JFRyhuZGV2LCBCQVNFRERSTCkpOwo+ICsgICAgICAgd3JpdGVsX3Jl bGF4ZWQoYmFzZV9sLCBORVVUUk9OX1JFRyhuZGV2LCBCQVNFSU5PVVRMKSk7Cj4gKyAgICAgICB3 cml0ZWxfcmVsYXhlZChiYXNlX2wsIE5FVVRST05fUkVHKG5kZXYsIEJBU0VTUElMTEwpKTsKPiAr ICAgICAgIHdyaXRlbF9yZWxheGVkKGJhc2VfaCwgTkVVVFJPTl9SRUcobmRldiwgQkFTRUREUkgp KTsKPiArICAgICAgIHdyaXRlbF9yZWxheGVkKGJhc2VfaCwgTkVVVFJPTl9SRUcobmRldiwgQkFT RUlOT1VUSCkpOwo+ICsgICAgICAgd3JpdGVsX3JlbGF4ZWQoYmFzZV9oLCBORVVUUk9OX1JFRyhu ZGV2LCBCQVNFU1BJTExIKSk7Cj4gKwo+ICsgICAgICAgcmV0ID0gbmV1dHJvbl9tYm94X3NlbmRf Y21kKG5kZXYsICZjbWQpOwo+ICsgICAgICAgaWYgKHJldCkgewo+ICsgICAgICAgICAgICAgICAv KiBOb3RoaW5nIHdlIGNhbiBkbyBoZXJlLCB3ZSdsbCByZXNldCB0aGUgZGV2aWNlIG9uIHRpbWVv dXQgKi8KPiArICAgICAgICAgICAgICAgZGV2X2VycihuZGV2LT5kZXYsICJGYWlsZWQgdG8gc3Vi bWl0IGpvYiwgZGV2aWNlIGlzIGJ1c3lcbiIpOwo+ICsgICAgICAgfQo+ICt9Cj4gKwo+ICt2b2lk IG5ldXRyb25fam9iX2Vycl9oYW5kbGVyKHN0cnVjdCBuZXV0cm9uX2RldmljZSAqbmRldikKPiAr ewo+ICsgICAgICAgZ3VhcmQobXV0ZXgpKCZuZGV2LT5qb2JfbG9jayk7Cj4gKwo+ICsgICAgICAg aWYgKG5kZXYtPmFjdGl2ZV9qb2IpCj4gKyAgICAgICAgICAgICAgIGRybV9zY2hlZF9mYXVsdCgm bmRldi0+c2NoZWQpOwo+ICt9Cj4gKwo+ICt2b2lkIG5ldXRyb25fam9iX2RvbmVfaGFuZGxlcihz dHJ1Y3QgbmV1dHJvbl9kZXZpY2UgKm5kZXYpCj4gK3sKPiArICAgICAgIHN0cnVjdCBuZXV0cm9u X21ib3hfc3RhdGUgc3RhdGU7Cj4gKwo+ICsgICAgICAgbmV1dHJvbl9tYm94X3JlYWRfc3RhdGUo bmRldiwgJnN0YXRlKTsKPiArICAgICAgIGlmIChzdGF0ZS5zdGF0dXMgIT0gTkVVVFJPTl9GV19T VEFUVVNfRE9ORSkgewo+ICsgICAgICAgICAgICAgICBkZXZfZXJyKG5kZXYtPmRldiwgIkluY29u c2lzdGVudCBmaXJtd2FyZSBzdGF0ZTogc3RhdHVzIDB4JXgsIGVyciAweCV4XG4iLAo+ICsgICAg ICAgICAgICAgICAgICAgICAgIHN0YXRlLnN0YXR1cywgc3RhdGUuZXJyX2NvZGUpOwo+ICsgICAg ICAgICAgICAgICByZXR1cm4gbmV1dHJvbl9qb2JfZXJyX2hhbmRsZXIobmRldik7Cj4gKyAgICAg ICB9Cj4gKwo+ICsgICAgICAgaWYgKHN0YXRlLmVycl9jb2RlICE9IDApCj4gKyAgICAgICAgICAg ICAgIGRldl93YXJuKG5kZXYtPmRldiwgIkpvYiBmaW5pc2hlZCB3aXRoIGVycm9yOiAweCV4XG4i LAo+ICsgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5lcnJfY29kZSk7CgpOb3QgbWFuZGF0 b3J5IGJ1dCB5b3UgbWlnaHQgYWxzbyB3YW50IHRvIGZvcndhcmQgdGhhdCBhcyBlcnJvciB0byB5 b3VyIGRtYV9mZW5jZSwgc2VlIGRtYV9mZW5jZV9zZXRfZXJyb3IoKS4gCgo+ICsKPiArICAgICAg IC8qIFJlc2V0IE5ldXRyb24gaW50ZXJuYWwgc3RhdGUgdG8gcHJlcGFyZSBmb3IgbmV4dCBpbmZl cmVuY2UgKi8KPiArICAgICAgIG5ldXRyb25fbWJveF9yZXNldF9zdGF0ZShuZGV2KTsKPiArCj4g KyAgICAgICBzY29wZWRfZ3VhcmQobXV0ZXgsICZuZGV2LT5qb2JfbG9jaykgewo+ICsgICAgICAg ICAgICAgICBpZiAobmRldi0+YWN0aXZlX2pvYikgewo+ICsgICAgICAgICAgICAgICAgICAgICAg IGRtYV9mZW5jZV9zaWduYWwobmRldi0+YWN0aXZlX2pvYi0+bmV1dHJvbl9mZW5jZSk7Cj4gKyAg ICAgICAgICAgICAgICAgICAgICAgbmRldi0+YWN0aXZlX2pvYiA9IE5VTEw7Cj4gKyAgICAgICAg ICAgICAgIH0KPiArICAgICAgIH0KPiArfQo+ICsKPiArc3RhdGljIHZvaWQgbmV1dHJvbl9jbGVh bnVwX2pvYihzdHJ1Y3Qga3JlZiAqcmVmKQo+ICt7Cj4gKyAgICAgICBzdHJ1Y3QgbmV1dHJvbl9q b2IgKmpvYiA9IGNvbnRhaW5lcl9vZihyZWYsIHN0cnVjdCBuZXV0cm9uX2pvYiwgcmVmY250KTsK PiArCj4gKyAgICAgICBwbV9ydW50aW1lX3B1dF9hdXRvc3VzcGVuZChqb2ItPm5kZXYtPmJhc2Uu ZGV2KTsKPiArCj4gKyAgICAgICBkbWFfZmVuY2VfcHV0KGpvYi0+bmV1dHJvbl9mZW5jZSk7Cj4g KyAgICAgICBkbWFfZmVuY2VfcHV0KGpvYi0+c2NoZWRfZmVuY2UpOwo+ICsgICAgICAgZHJtX2dl bV9vYmplY3RfcHV0KGpvYi0+Ym8pOwo+ICsgICAgICAgZHJtX3N5bmNvYmpfcHV0KGpvYi0+c3lu Y29iaik7Cj4gKwo+ICsgICAgICAga2ZyZWUoam9iKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQg bmV1dHJvbl9wdXRfam9iKHN0cnVjdCBuZXV0cm9uX2pvYiAqam9iKQo+ICt7Cj4gKyAgICAgICBr cmVmX3B1dCgmam9iLT5yZWZjbnQsIG5ldXRyb25fY2xlYW51cF9qb2IpOwo+ICt9Cj4gKwo+ICtz dGF0aWMgdm9pZCBuZXV0cm9uX2ZyZWVfam9iKHN0cnVjdCBkcm1fc2NoZWRfam9iICpzY2hlZF9q b2IpCj4gK3sKPiArICAgICAgIHN0cnVjdCBuZXV0cm9uX2pvYiAqam9iID0gdG9fbmV1dHJvbl9q b2Ioc2NoZWRfam9iKTsKPiArCj4gKyAgICAgICBkcm1fc2NoZWRfam9iX2NsZWFudXAoc2NoZWRf am9iKTsKPiArICAgICAgIG5ldXRyb25fcHV0X2pvYihqb2IpOwo+ICt9Cj4gKwo+ICtzdGF0aWMg c3RydWN0IGRtYV9mZW5jZSAqbmV1dHJvbl9ydW5fam9iKHN0cnVjdCBkcm1fc2NoZWRfam9iICpz Y2hlZF9qb2IpCj4gK3sKPiArICAgICAgIHN0cnVjdCBuZXV0cm9uX2pvYiAqam9iID0gdG9fbmV1 dHJvbl9qb2Ioc2NoZWRfam9iKTsKPiArICAgICAgIHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlID0g am9iLT5uZXV0cm9uX2ZlbmNlOwo+ICsgICAgICAgc3RydWN0IG5ldXRyb25fZGV2aWNlICpuZGV2 ID0gam9iLT5uZGV2Owo+ICsKPiArICAgICAgIGlmICh1bmxpa2VseShqb2ItPmJhc2Uuc19mZW5j ZS0+ZmluaXNoZWQuZXJyb3IpKQo+ICsgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKPiArCj4g KyAgICAgICBkbWFfZmVuY2VfaW5pdChmZW5jZSwgJm5ldXRyb25fZmVuY2Vfb3BzLCAmbmRldi0+ ZmVuY2VfbG9jaywKPiArICAgICAgICAgICAgICAgICAgICAgIG5kZXYtPmZlbmNlX2NvbnRleHQs ICsrbmRldi0+am9iX3NlcW5vKTsKPiArICAgICAgIGRtYV9mZW5jZV9nZXQoZmVuY2UpOwo+ICsK PiArICAgICAgIHNjb3BlZF9ndWFyZChtdXRleCwgJm5kZXYtPmpvYl9sb2NrKSB7Cj4gKyAgICAg ICAgICAgICAgIG5kZXYtPmFjdGl2ZV9qb2IgPSBqb2I7Cj4gKyAgICAgICAgICAgICAgIG5ldXRy b25faHdfc3VibWl0KGpvYik7Cj4gKyAgICAgICB9Cj4gKwo+ICsgICAgICAgcmV0dXJuIGZlbmNl Owo+ICt9Cj4gKwo+ICtzdGF0aWMgZW51bSBkcm1fZ3B1X3NjaGVkX3N0YXQgbmV1dHJvbl90aW1l ZG91dF9qb2Ioc3RydWN0IGRybV9zY2hlZF9qb2IgKnNjaGVkX2pvYikKPiArewo+ICsgICAgICAg c3RydWN0IG5ldXRyb25fam9iICpqb2IgPSB0b19uZXV0cm9uX2pvYihzY2hlZF9qb2IpOwo+ICsg ICAgICAgc3RydWN0IG5ldXRyb25fZGV2aWNlICpuZGV2ID0gam9iLT5uZGV2Owo+ICsgICAgICAg c3RydWN0IG5ldXRyb25fbWJveF9zdGF0ZSBzdGF0ZTsKPiArCj4gKyAgICAgICAvKiBXZSBhc3N1 bWUgTmV1dHJvbiBpcyBzdHVjaywgcmV0cmlldmUgY3VycmVudCBzdGF0ZSBhbmQgcmVzZXQgKi8K PiArICAgICAgIG5ldXRyb25fbWJveF9yZWFkX3N0YXRlKG5kZXYsICZzdGF0ZSk7Cj4gKyAgICAg ICBkZXZfZXJyKG5kZXYtPmRldiwgIk5ldXRyb24gdGltZWRvdXQsIHN0YXR1czogMHgleCwgZXJy OiAweCV4XG4iLAo+ICsgICAgICAgICAgICAgICBzdGF0ZS5zdGF0dXMsIHN0YXRlLmVycl9jb2Rl KTsKPiArCj4gKyAgICAgICBkcm1fc2NoZWRfc3RvcCgmbmRldi0+c2NoZWQsIHNjaGVkX2pvYik7 Cj4gKwo+ICsgICAgICAgc2NvcGVkX2d1YXJkKG11dGV4LCAmbmRldi0+am9iX2xvY2spCj4gKyAg ICAgICAgICAgICAgIG5kZXYtPmFjdGl2ZV9qb2IgPSBOVUxMOwo+ICsKPiArICAgICAgIHBtX3J1 bnRpbWVfZm9yY2Vfc3VzcGVuZChuZGV2LT5kZXYpOwo+ICsgICAgICAgcG1fcnVudGltZV9mb3Jj ZV9yZXN1bWUobmRldi0+ZGV2KTsKPiArCj4gKyAgICAgICBkcm1fc2NoZWRfc3RhcnQoJm5kZXYt PnNjaGVkLCAwKTsKPiArCj4gKyAgICAgICByZXR1cm4gRFJNX0dQVV9TQ0hFRF9TVEFUX1JFU0VU Owo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBuZXV0cm9uX2NhbmNlbF9qb2Ioc3RydWN0IGRybV9z Y2hlZF9qb2IgKnNjaGVkX2pvYikKPiArewo+ICsgICAgICAgc3RydWN0IG5ldXRyb25fam9iICpq b2IgPSB0b19uZXV0cm9uX2pvYihzY2hlZF9qb2IpOwo+ICsgICAgICAgc3RydWN0IG5ldXRyb25f ZGV2aWNlICpuZGV2ID0gam9iLT5uZGV2Owo+ICsKPiArICAgICAgIGd1YXJkKG11dGV4KSgmbmRl di0+am9iX2xvY2spOwo+ICsKPiArICAgICAgIGlmICghZG1hX2ZlbmNlX2lzX3NpZ25hbGVkKGpv Yi0+bmV1dHJvbl9mZW5jZSkpIHsKPiArICAgICAgICAgICAgICAgZG1hX2ZlbmNlX3NldF9lcnJv cihqb2ItPm5ldXRyb25fZmVuY2UsIC1FQ0FOQ0VMRUQpOwo+ICsgICAgICAgICAgICAgICBkbWFf ZmVuY2Vfc2lnbmFsKGpvYi0+bmV1dHJvbl9mZW5jZSk7Cj4gKyAgICAgICB9Cj4gK30KPiArCj4g K3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3NjaGVkX2JhY2tlbmRfb3BzIG5ldXRyb25fc2NoZWRf b3BzID0gewo+ICsgICAgICAgLnJ1bl9qb2IgPSBuZXV0cm9uX3J1bl9qb2IsCj4gKyAgICAgICAu ZnJlZV9qb2IgPSBuZXV0cm9uX2ZyZWVfam9iLAo+ICsgICAgICAgLnRpbWVkb3V0X2pvYiA9IG5l dXRyb25fdGltZWRvdXRfam9iLAo+ICsgICAgICAgLmNhbmNlbF9qb2IgPSBuZXV0cm9uX2NhbmNl bF9qb2IsCj4gK307Cj4gKwo+ICtpbnQgbmV1dHJvbl9qb2JfaW5pdChzdHJ1Y3QgbmV1dHJvbl9k ZXZpY2UgKm5kZXYpCj4gK3sKPiArICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fc2NoZWRfaW5pdF9h cmdzIGFyZ3MgPSB7Cj4gKyAgICAgICAgICAgICAgIC5vcHMgPSAmbmV1dHJvbl9zY2hlZF9vcHMs Cj4gKyAgICAgICAgICAgICAgIC5udW1fcnFzID0gRFJNX1NDSEVEX1BSSU9SSVRZX0NPVU5ULAo+ ICsgICAgICAgICAgICAgICAuY3JlZGl0X2xpbWl0ID0gMSwKPiArICAgICAgICAgICAgICAgLnRp bWVvdXQgPSBtc2Vjc190b19qaWZmaWVzKE5FVVRST05fSk9CX1RJTUVPVVRfTVMpLAo+ICsgICAg ICAgICAgICAgICAubmFtZSA9IGRldl9uYW1lKG5kZXYtPmRldiksCj4gKyAgICAgICAgICAgICAg IC5kZXYgPSBuZGV2LT5kZXYsCj4gKyAgICAgICB9Owo+ICsgICAgICAgaW50IHJldDsKPiArCj4g KyAgICAgICByZXQgPSBkZXZtX211dGV4X2luaXQobmRldi0+ZGV2LCAmbmRldi0+c2NoZWRfbG9j ayk7Cj4gKyAgICAgICBpZiAocmV0KQo+ICsgICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ICsg ICAgICAgcmV0ID0gZGV2bV9tdXRleF9pbml0KG5kZXYtPmRldiwgJm5kZXYtPmpvYl9sb2NrKTsK PiArICAgICAgIGlmIChyZXQpCj4gKyAgICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4gKyAgICAg ICBzcGluX2xvY2tfaW5pdCgmbmRldi0+ZmVuY2VfbG9jayk7Cj4gKwo+ICsgICAgICAgbmRldi0+ ZmVuY2VfY29udGV4dCA9IGRtYV9mZW5jZV9jb250ZXh0X2FsbG9jKDEpOwo+ICsKPiArICAgICAg IHJldCA9IGRybV9zY2hlZF9pbml0KCZuZGV2LT5zY2hlZCwgJmFyZ3MpOwo+ICsgICAgICAgaWYg KHJldCkKPiArICAgICAgICAgICAgICAgZGV2X2VycihuZGV2LT5kZXYsICJFcnJvciBjcmVhdGlu ZyBEUk0gc2NoZWR1bGVyXG4iKTsKPiArCj4gKyAgICAgICByZXR1cm4gcmV0Owo+ICt9Cj4gKwo+ ICt2b2lkIG5ldXRyb25fam9iX2Zpbmkoc3RydWN0IG5ldXRyb25fZGV2aWNlICpuZGV2KQo+ICt7 Cj4gKyAgICAgICBkcm1fc2NoZWRfZmluaSgmbmRldi0+c2NoZWQpOwo+ICt9Cj4gKwo+ICtpbnQg bmV1dHJvbl9qb2Jfb3BlbihzdHJ1Y3QgbmV1dHJvbl9maWxlX3ByaXYgKm5wcml2KQo+ICt7Cj4g KyAgICAgICBzdHJ1Y3QgbmV1dHJvbl9kZXZpY2UgKm5kZXYgPSBucHJpdi0+bmRldjsKPiArICAg ICAgIHN0cnVjdCBkcm1fZ3B1X3NjaGVkdWxlciAqc2NoZWQgPSAmbmRldi0+c2NoZWQ7Cj4gKyAg ICAgICBpbnQgcmV0Owo+ICsKPiArICAgICAgIHJldCA9IGRybV9zY2hlZF9lbnRpdHlfaW5pdCgm bnByaXYtPnNjaGVkX2VudGl0eSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBEUk1fU0NIRURfUFJJT1JJVFlfTk9STUFMLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICZzY2hlZCwgMSwgTlVMTCk7Cj4gKyAgICAgICBpZiAocmV0KQo+ICsgICAgICAg ICAgICAgICBkZXZfZXJyKG5kZXYtPmRldiwgIkVycm9yIGNyZWF0aW5nIHNjaGVkdWxlciBlbnRp dHlcbiIpOwo+ICsKPiArICAgICAgIHJldHVybiByZXQ7Cj4gK30KPiArCj4gK3ZvaWQgbmV1dHJv bl9qb2JfY2xvc2Uoc3RydWN0IG5ldXRyb25fZmlsZV9wcml2ICpucHJpdikKPiArewo+ICsgICAg ICAgZHJtX3NjaGVkX2VudGl0eV9kZXN0cm95KCZucHJpdi0+c2NoZWRfZW50aXR5KTsKPiArfQo+ ICsKPiArc3RhdGljIGludCBuZXV0cm9uX3B1c2hfam9iKHN0cnVjdCBuZXV0cm9uX2pvYiAqam9i KQo+ICt7Cj4gKyAgICAgICBzdHJ1Y3QgbmV1dHJvbl9kZXZpY2UgKm5kZXYgPSBqb2ItPm5kZXY7 Cj4gKyAgICAgICBzdHJ1Y3Qgd3dfYWNxdWlyZV9jdHggYWNxdWlyZV9jdHg7Cj4gKyAgICAgICBp bnQgcmV0Owo+ICsKPiArICAgICAgIHJldCA9IGRybV9nZW1fbG9ja19yZXNlcnZhdGlvbnMoJmpv Yi0+Ym8sIDEsICZhY3F1aXJlX2N0eCk7Cj4gKyAgICAgICBpZiAocmV0KQo+ICsgICAgICAgICAg ICAgICByZXR1cm4gcmV0Owo+ICsKPiArICAgICAgIHJldCA9IGRtYV9yZXN2X3Jlc2VydmVfZmVu Y2VzKGpvYi0+Ym8tPnJlc3YsIDEpOwo+ICsgICAgICAgaWYgKHJldCkKPiArICAgICAgICAgICAg ICAgZ290byBvdXRfdW5sb2NrX3JlczsKPiArCj4gKyAgICAgICByZXQgPSBkcm1fc2NoZWRfam9i X2FkZF9pbXBsaWNpdF9kZXBlbmRlbmNpZXMoJmpvYi0+YmFzZSwgam9iLT5ibywgdHJ1ZSk7Cj4g KyAgICAgICBpZiAocmV0KQo+ICsgICAgICAgICAgICAgICBnb3RvIG91dF91bmxvY2tfcmVzOwo+ ICsKPiArICAgICAgIHJldCA9IHBtX3J1bnRpbWVfcmVzdW1lX2FuZF9nZXQobmRldi0+YmFzZS5k ZXYpOwo+ICsgICAgICAgaWYgKHJldCkKPiArICAgICAgICAgICAgICAgZ290byBvdXRfdW5sb2Nr X3JlczsKPiArCj4gKyAgICAgICBzY29wZWRfZ3VhcmQobXV0ZXgsICZuZGV2LT5zY2hlZF9sb2Nr KSB7Cj4gKyAgICAgICAgICAgICAgIGRybV9zY2hlZF9qb2JfYXJtKCZqb2ItPmJhc2UpOwo+ICsK PiArICAgICAgICAgICAgICAgam9iLT5zY2hlZF9mZW5jZSA9IGRtYV9mZW5jZV9nZXQoJmpvYi0+ YmFzZS5zX2ZlbmNlLT5maW5pc2hlZCk7Cj4gKyAgICAgICAgICAgICAgIGRybV9zeW5jb2JqX3Jl cGxhY2VfZmVuY2Uoam9iLT5zeW5jb2JqLCBqb2ItPnNjaGVkX2ZlbmNlKTsKPiArCj4gKyAgICAg ICAgICAgICAgIGtyZWZfZ2V0KCZqb2ItPnJlZmNudCk7Cj4gKyAgICAgICAgICAgICAgIGRybV9z Y2hlZF9lbnRpdHlfcHVzaF9qb2IoJmpvYi0+YmFzZSk7Cj4gKwo+ICsgICAgICAgICAgICAgICBk bWFfcmVzdl9hZGRfZmVuY2Uoam9iLT5iby0+cmVzdiwgam9iLT5zY2hlZF9mZW5jZSwKPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERNQV9SRVNWX1VTQUdFX1dSSVRFKTsKPiAr ICAgICAgIH0KPiArCj4gK291dF91bmxvY2tfcmVzOgo+ICsgICAgICAgZHJtX2dlbV91bmxvY2tf cmVzZXJ2YXRpb25zKCZqb2ItPmJvLCAxLCAmYWNxdWlyZV9jdHgpOwo+ICsKPiArICAgICAgIHJl dHVybiByZXQ7Cj4gK30KPiArCj4gK2ludCBuZXV0cm9uX2lvY3RsX3N1Ym1pdF9qb2Ioc3RydWN0 IGRybV9kZXZpY2UgKmRybSwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxwKQo+ICt7 Cj4gKyAgICAgICBzdHJ1Y3QgbmV1dHJvbl9kZXZpY2UgKm5kZXYgPSB0b19uZXV0cm9uX2Rldmlj ZShkcm0pOwo+ICsgICAgICAgc3RydWN0IG5ldXRyb25fZmlsZV9wcml2ICpucHJpdiA9IGZpbHAt PmRyaXZlcl9wcml2Owo+ICsgICAgICAgc3RydWN0IGRybV9uZXV0cm9uX3N1Ym1pdF9qb2IgKmFy Z3MgPSBkYXRhOwo+ICsgICAgICAgc3RydWN0IG5ldXRyb25fam9iICpqb2I7Cj4gKyAgICAgICBp bnQgcmV0Owo+ICsKPiArICAgICAgIGlmIChhcmdzLT5wYWQpCj4gKyAgICAgICAgICAgICAgIHJl dHVybiAtRUlOVkFMOwo+ICsKPiArICAgICAgIGpvYiA9IGt6YWxsb2Nfb2JqKCpqb2IpOwo+ICsg ICAgICAgaWYgKCFqb2IpCj4gKyAgICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOwo+ICsKPiAr ICAgICAgIGpvYi0+bmRldiA9IG5kZXY7Cj4gKyAgICAgICBrcmVmX2luaXQoJmpvYi0+cmVmY250 KTsKPiArCj4gKyAgICAgICBqb2ItPm5ldXRyb25fZmVuY2UgPSBremFsbG9jX29iaigqam9iLT5u ZXV0cm9uX2ZlbmNlKTsKPiArICAgICAgIGlmICgham9iLT5uZXV0cm9uX2ZlbmNlKSB7Cj4gKyAg ICAgICAgICAgICAgIHJldCA9IC1FTk9NRU07Cj4gKyAgICAgICAgICAgICAgIGdvdG8gb3V0X2Zy ZWVfam9iOwo+ICsgICAgICAgfQo+ICsKPiArICAgICAgIHN3aXRjaCAoYXJncy0+dHlwZSkgewo+ ICsgICAgICAgY2FzZSBEUk1fTkVVVFJPTl9KT0JfSU5GRVJFTkNFOgo+ICsgICAgICAgICAgICAg ICBtZW1jcHkoJmpvYi0+aW5mZXJlbmNlLCAmYXJncy0+aW5mZXJlbmNlLAo+ICsgICAgICAgICAg ICAgICAgICAgICAgc2l6ZW9mKGFyZ3MtPmluZmVyZW5jZSkpOwo+ICsgICAgICAgICAgICAgICBi cmVhazsKPiArICAgICAgIGRlZmF1bHQ6Cj4gKyAgICAgICAgICAgICAgIGRldl9kYmcobmRldi0+ ZGV2LCAiSW52YWxpZCBqb2IgdHlwZSAlZFxuIiwgYXJncy0+dHlwZSk7Cj4gKyAgICAgICAgICAg ICAgIHJldCA9IC1FSU5WQUw7Cj4gKyAgICAgICAgICAgICAgIGdvdG8gb3V0X2ZyZWVfZmVuY2U7 Cj4gKyAgICAgICB9Cj4gKwo+ICsgICAgICAgam9iLT5ibyA9IGRybV9nZW1fb2JqZWN0X2xvb2t1 cChmaWxwLCBhcmdzLT5ib19oYW5kbGUpOwo+ICsgICAgICAgaWYgKCFqb2ItPmJvKSB7Cj4gKyAg ICAgICAgICAgICAgIGRldl9kYmcobmRldi0+ZGV2LCAiSW52YWxpZCBCTyBoYW5kbGVcbiIpOwo+ ICsgICAgICAgICAgICAgICByZXQgPSAtRU5PRU5UOwo+ICsgICAgICAgICAgICAgICBnb3RvIG91 dF9mcmVlX2ZlbmNlOwo+ICsgICAgICAgfQo+ICsKPiArICAgICAgIGpvYi0+c3luY29iaiA9IGRy bV9zeW5jb2JqX2ZpbmQoZmlscCwgYXJncy0+c3luY29ial9oYW5kbGUpOwo+ICsgICAgICAgaWYg KCFqb2ItPnN5bmNvYmopIHsKPiArICAgICAgICAgICAgICAgZGV2X2RiZyhuZGV2LT5kZXYsICJJ bnZhbGlkIHN5bmNvYmogaGFuZGxlXG4iKTsKPiArICAgICAgICAgICAgICAgcmV0ID0gLUVOT0VO VDsKPiArICAgICAgICAgICAgICAgZ290byBvdXRfcHV0X2dlbTsKPiArICAgICAgIH0KPiArCj4g KyAgICAgICByZXQgPSBkcm1fc2NoZWRfam9iX2luaXQoJmpvYi0+YmFzZSwgJm5wcml2LT5zY2hl ZF9lbnRpdHksIDEsIE5VTEwsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmls cC0+Y2xpZW50X2lkKTsKPiArICAgICAgIGlmIChyZXQpCj4gKyAgICAgICAgICAgICAgIGdvdG8g b3V0X3B1dF9zeW5jb2JqOwo+ICsKPiArICAgICAgIHJldCA9IG5ldXRyb25fcHVzaF9qb2Ioam9i KTsKPiArICAgICAgIGlmIChyZXQpCj4gKyAgICAgICAgICAgICAgIGdvdG8gb3V0X3NjaGVkX2Ns ZWFudXA7Cj4gKwo+ICsgICAgICAgbmV1dHJvbl9wdXRfam9iKGpvYik7Cj4gKwo+ICsgICAgICAg cmV0dXJuIDA7Cj4gKwo+ICtvdXRfc2NoZWRfY2xlYW51cDoKPiArICAgICAgIGRybV9zY2hlZF9q b2JfY2xlYW51cCgmam9iLT5iYXNlKTsKPiArb3V0X3B1dF9zeW5jb2JqOgo+ICsgICAgICAgZHJt X3N5bmNvYmpfcHV0KGpvYi0+c3luY29iaik7Cj4gK291dF9wdXRfZ2VtOgo+ICsgICAgICAgZHJt X2dlbV9vYmplY3RfcHV0KGpvYi0+Ym8pOwo+ICtvdXRfZnJlZV9mZW5jZToKPiArICAgICAgIGtm cmVlKGpvYi0+bmV1dHJvbl9mZW5jZSk7Cj4gK291dF9mcmVlX2pvYjoKPiArICAgICAgIGtmcmVl KGpvYik7Cj4gKwo+ICsgICAgICAgcmV0dXJuIHJldDsKPiArfQo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2FjY2VsL25ldXRyb24vbmV1dHJvbl9qb2IuaCBiL2RyaXZlcnMvYWNjZWwvbmV1dHJvbi9u ZXV0cm9uX2pvYi5oCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMDAu LmJiNzc3M2FlYjIxOAo+IC0tLSAvZGV2L251bGwKPiArKysgYi9kcml2ZXJzL2FjY2VsL25ldXRy b24vbmV1dHJvbl9qb2IuaAo+IEBAIC0wLDAgKzEsNDUgQEAKPiArLyogU1BEWC1MaWNlbnNlLUlk ZW50aWZpZXI6IEdQTC0yLjArICovCj4gKy8qIENvcHlyaWdodCAyMDI1LTIwMjYgTlhQICovCj4g Kwo+ICsjaWZuZGVmIF9fTkVVVFJPTl9KT0JfSF9fCj4gKyNkZWZpbmUgX19ORVVUUk9OX0pPQl9I X18KPiArCj4gKyNpbmNsdWRlIDxsaW51eC9rcmVmLmg+Cj4gKyNpbmNsdWRlIDxkcm0vZHJtX2dl bS5oPgo+ICsjaW5jbHVkZSA8ZHJtL2RybV9zeW5jb2JqLmg+Cj4gKyNpbmNsdWRlIDxkcm0vZ3B1 X3NjaGVkdWxlci5oPgo+ICsjaW5jbHVkZSA8ZHJtL25ldXRyb25fYWNjZWwuaD4KPiArCj4gKyNp bmNsdWRlICJuZXV0cm9uX2RyaXZlci5oIgo+ICsKPiArc3RydWN0IG5ldXRyb25fZGV2aWNlOwo+ ICtzdHJ1Y3QgbmV1dHJvbl9maWxlX3ByaXY7Cj4gKwo+ICtzdHJ1Y3QgbmV1dHJvbl9qb2Igewo+ ICsgICAgICAgc3RydWN0IGRybV9zY2hlZF9qb2IgYmFzZTsKPiArICAgICAgIHN0cnVjdCBuZXV0 cm9uX2RldmljZSAqbmRldjsKPiArICAgICAgIHN0cnVjdCBkbWFfZmVuY2UgKm5ldXRyb25fZmVu Y2U7Cgo+ICsgICAgICAgc3RydWN0IGRtYV9mZW5jZSAqc2NoZWRfZmVuY2U7CgpUaGF0IGxvb2tz IHN1cGVyZmxvdXMgdG8gbWUuIFlvdSBzaG91bGQgYWx3YXlzIGhhdmUgdGhlIHNjaGVkdWxlciBm ZW5jZSB0aHJvdWdoIHRoZSBiYXNlLgoKPiArICAgICAgIHN0cnVjdCBkcm1fc3luY29iaiAqc3lu Y29iajsKCldoeSBkbyB5b3Ugd2FudCB0byBrZWVwIHRoZSBzeW5jb2JqIGFyb3VuZD8KCgpBcGFy dCBmcm9tIHRob3NlIG5vdGVzIGxvb2tzIHByZXR0eSBnb29kIHRvIG1lLCBidXQgSSdtIGEgYml0 IGRpc2Fwb2ludGVkIHRoYXQgdGhlcmUgaXNuJ3QgYW55IERNQS1idWYgc3VwcG9ydCB0byByZXZp ZXcgOikKClJlZ2FyZHMsCkNocmlzdGlhbi4KCj4gKyAgICAgICBzdHJ1Y3QgZHJtX2dlbV9vYmpl Y3QgKmJvOwo+ICsgICAgICAgZW51bSBkcm1fbmV1dHJvbl9qb2JfdHlwZSB0eXBlOwo+ICsgICAg ICAgdW5pb24gewo+ICsgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX25ldXRyb25faW5mZXJlbmNl X2pvYiBpbmZlcmVuY2U7Cj4gKyAgICAgICB9Owo+ICsgICAgICAgc3RydWN0IGtyZWYgcmVmY250 Owo+ICt9Owo+ICsKPiArI2RlZmluZSB0b19uZXV0cm9uX2pvYihqb2IpIFwKPiArICAgICAgIGNv bnRhaW5lcl9vZihqb2IsIHN0cnVjdCBuZXV0cm9uX2pvYiwgYmFzZSkKPiArCj4gK2ludCBuZXV0 cm9uX2pvYl9pbml0KHN0cnVjdCBuZXV0cm9uX2RldmljZSAqZGV2KTsKPiArdm9pZCBuZXV0cm9u X2pvYl9maW5pKHN0cnVjdCBuZXV0cm9uX2RldmljZSAqZGV2KTsKPiAraW50IG5ldXRyb25fam9i X29wZW4oc3RydWN0IG5ldXRyb25fZmlsZV9wcml2ICpucHJpdik7Cj4gK3ZvaWQgbmV1dHJvbl9q b2JfY2xvc2Uoc3RydWN0IG5ldXRyb25fZmlsZV9wcml2ICpucHJpdik7Cj4gKwo+ICt2b2lkIG5l dXRyb25fam9iX2RvbmVfaGFuZGxlcihzdHJ1Y3QgbmV1dHJvbl9kZXZpY2UgKmRldik7Cj4gK3Zv aWQgbmV1dHJvbl9qb2JfZXJyX2hhbmRsZXIoc3RydWN0IG5ldXRyb25fZGV2aWNlICpkZXYpOwo+ ICsKPiAraW50IG5ldXRyb25faW9jdGxfc3VibWl0X2pvYihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbHApOwo+ICsKPiArI2VuZGlmIC8qIF9f TkVVVFJPTl9KT0JfSF9fICovCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vbmV1dHJv bl9hY2NlbC5oIGIvaW5jbHVkZS91YXBpL2RybS9uZXV0cm9uX2FjY2VsLmgKPiBpbmRleCAyZjU2 MzlmMmUwZTguLmE5ZTU2ODI3MDlkMiAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL3VhcGkvZHJtL25l dXRyb25fYWNjZWwuaAo+ICsrKyBiL2luY2x1ZGUvdWFwaS9kcm0vbmV1dHJvbl9hY2NlbC5oCj4g QEAgLTE1LDEwICsxNSwxMiBAQCBleHRlcm4gIkMiIHsKPiAgICoKPiAgICogQERSTV9ORVVUUk9O X0NSRUFURV9CTzogQ3JlYXRlIGEgYnVmZmVyIG9iamVjdAo+ICAgKiBARFJNX05FVVRST05fU1lO Q19CTzogU3luYyAocGFydHMgb2YpIHRoZSBidWZmZXIgb2JqZWN0IG1lbW9yeQo+ICsgKiBARFJN X05FVVRST05fU1VCTUlUX0pPQjogU3VibWl0IGEgam9iIHRvIHRoZSBkZXZpY2UKPiAgICovCj4g IGVudW0gZHJtX25ldXRyb25faW9jdGwgewo+ICAgICAgICAgRFJNX05FVVRST05fQ1JFQVRFX0JP ID0gMCwKPiAgICAgICAgIERSTV9ORVVUUk9OX1NZTkNfQk8sCj4gKyAgICAgICBEUk1fTkVVVFJP Tl9TVUJNSVRfSk9CLAo+ICB9Owo+IAo+ICAvKioKPiBAQCAtNjQsNiArNjYsNTEgQEAgc3RydWN0 IGRybV9uZXV0cm9uX3N5bmNfYm8gewo+ICAgICAgICAgX191NjQgb2Zmc2V0Owo+ICB9Owo+IAo+ ICsvKioKPiArICogZW51bSBkcm1fbmV1dHJvbl9qb2JfdHlwZSAtIFR5cGUgb2Ygam9iIHRvIHN1 Ym1pdCB0byBOZXV0cm9uIGRldmljZQo+ICsgKgo+ICsgKiBARFJNX05FVVRST05fSk9CX0lORkVS RU5DRTogSW5mZXJlbmNlIGpvYgo+ICsgKi8KPiArZW51bSBkcm1fbmV1dHJvbl9qb2JfdHlwZSB7 Cj4gKyAgICAgICBEUk1fTkVVVFJPTl9KT0JfSU5GRVJFTkNFID0gMCwKPiArfTsKPiArCj4gKy8q Kgo+ICsgKiBzdHJ1Y3QgZHJtX25ldXRyb25faW5mZXJlbmNlX2pvYiAtIEluZmVyZW5jZSBqb2Ig ZGVzY3JpcHRvcgo+ICsgKgo+ICsgKiBAdGVuc29yX29mZnNldDogT2Zmc2V0IG9mIHRlbnNvciBh cnJheSBpbnNpZGUgam9iIEJPCj4gKyAqIEBtaWNyb2NvZGVfb2Zmc2V0OiBNaWNyb2NvZGUgb2Zm c2V0IGluc2lkZSBCTwo+ICsgKiBAdGVuc29yX2NvdW50OiBOdW1iZXIgb2YgdmFsaWQgdGVuc29y cwo+ICsgKiBAcGFkOiBNQloKPiArICovCj4gK3N0cnVjdCBkcm1fbmV1dHJvbl9pbmZlcmVuY2Vf am9iIHsKPiArICAgICAgIF9fdTMyIHRlbnNvcl9vZmZzZXQ7Cj4gKyAgICAgICBfX3UzMiBtaWNy b2NvZGVfb2Zmc2V0Owo+ICsgICAgICAgX191MzIgdGVuc29yX2NvdW50Owo+ICsgICAgICAgX191 MzIgcGFkWzVdOwo+ICt9Owo+ICsKPiArLyoqCj4gKyAqIHN0cnVjdCBkcm1fbmV1dHJvbl9zdWJt aXRfam9iIC0gU3VibWl0IGEgam9iIHRvIE5ldXRyb24gZGV2aWNlCj4gKyAqCj4gKyAqIEB0eXBl OiBKb2IgdHlwZSwgb25lIG9mIGVudW0gZHJtX25ldXRyb25fam9iX3R5cGUKPiArICogQGJvX2hh bmRsZTogQk8gaGFuZGxlIGZvciB0aGlzIGpvYgo+ICsgKiBAaW5mZXJlbmNlOiBJbmZlcmVuY2Ug am9iIGRlc2NyaXB0b3IgKHdoZW4gdHlwZSBpcyBEUk1fTkVVVFJPTl9KT0JfSU5GRVJFTkNFKQo+ ICsgKiBAcmVzZXJ2ZWQ6IFJlc2VydmVkIGZvciBmdXR1cmUgam9iIHR5cGVzCj4gKyAqIEBzeW5j b2JqX2hhbmRsZTogSGFuZGxlIG9mIHN5bmNvYmogb24gd2hpY2ggdXNlciB3YWl0cyBmb3Igam9i IGNvbXBsZXRpb24KPiArICogQHBhZDogTUJaCj4gKyAqLwo+ICtzdHJ1Y3QgZHJtX25ldXRyb25f c3VibWl0X2pvYiB7Cj4gKyAgICAgICBfX3UzMiB0eXBlOwo+ICsgICAgICAgX191MzIgYm9faGFu ZGxlOwo+ICsgICAgICAgdW5pb24gewo+ICsgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX25ldXRy b25faW5mZXJlbmNlX2pvYiBpbmZlcmVuY2U7Cj4gKyAgICAgICAgICAgICAgIF9fdTMyIHJlc2Vy dmVkWzhdOwo+ICsgICAgICAgfTsKPiArICAgICAgIF9fdTMyIHN5bmNvYmpfaGFuZGxlOwo+ICsg ICAgICAgX191MzIgcGFkOwo+ICt9Owo+ICsKPiAgI2RlZmluZSBEUk1fSU9DVExfTkVVVFJPTl9D UkVBVEVfQk8gXAo+ICAgICAgICAgRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9ORVVU Uk9OX0NSRUFURV9CTywgXAo+ICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9uZXV0cm9uX2Ny ZWF0ZV9ibykKPiBAQCAtNzIsNiArMTE5LDEwIEBAIHN0cnVjdCBkcm1fbmV1dHJvbl9zeW5jX2Jv IHsKPiAgICAgICAgIERSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBEUk1fTkVVVFJPTl9TWU5D X0JPLCBcCj4gICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX25ldXRyb25fc3luY19ibykKPiAK PiArI2RlZmluZSBEUk1fSU9DVExfTkVVVFJPTl9TVUJNSVRfSk9CIFwKPiArICAgICAgIERSTV9J T1dSKERSTV9DT01NQU5EX0JBU0UgKyBEUk1fTkVVVFJPTl9TVUJNSVRfSk9CLCBcCj4gKyAgICAg ICAgICAgICAgICBzdHJ1Y3QgZHJtX25ldXRyb25fc3VibWl0X2pvYikKPiArCj4gICNpZiBkZWZp bmVkKF9fY3BsdXNwbHVzKQo+ICB9Cj4gICNlbmRpZgo+IAo+IC0tCj4gMi4zNC4xCj4gCgo=