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 X-Spam-Level: X-Spam-Status: No, score=-6.7 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 079E8CA9EAF for ; Thu, 24 Oct 2019 11:20:45 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id A690020856 for ; Thu, 24 Oct 2019 11:20:44 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=amdcloud.onmicrosoft.com header.i=@amdcloud.onmicrosoft.com header.b="ydXS0y8o" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2407198AbfJXLUo (ORCPT ); Thu, 24 Oct 2019 07:20:44 -0400 Received: from mail-eopbgr820055.outbound.protection.outlook.com ([40.107.82.55]:18784 "EHLO NAM01-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S2407243AbfJXLUn (ORCPT ); Thu, 24 Oct 2019 07:20:43 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Jwb7FglN2V9zHPtdcxelmld+XmpGJPv2Yt+kIV9AdN/i+FjwnP1pPrDjRLXO/6vbQeKrk1VHu2aKL/kvVKu64/34IIYWaEcadJ7q9IYeEXhXI9jrYnOQPtvPcL3BrkT6TMgVUO6t4a6lPamqsR6ypWrdkyaNUlNi5w+nP/uCQFpNjZJHQ9JlQ8Iudsn4QiyvumQpwiGFfQCv+PPwSE3IIRiz1VzhiayNWGkKiNEXucKSvpho5lKgrMEZRt06tcwB0MIF+mbAB9octI6a+STWtvlJxm8Ko4qqMZwLgPNVciUJZMgi0MtY9qqc5LS0dcxuD+wR+WHwpc0inyeWc00YvQ== 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-SenderADCheck; bh=xJjRu9mbdvQ066v+DRBqWRLmiUWFFlWx0PfbC7n/hy8=; b=IQXPijIF3M0q9A6zGTfew3u+HxwZQWePWMKgPxeZPFv/K0yP34G3Vmlsy2wu/baMFuCftU58ghNvLYqn/W0xZ/OpBx6UW6CUkhOT2rUvwgbADk9vESeyy903Fq/v6Uyw0rmv8P46pJarDB36T5RExgSuQs3UYngP3UYbCwjS1OXovnzWUjX8XXSZJsG95C/11bzewR7ZYjkXwAKoPagyNPJ0ehNCodrB0nDD6JNfqs94RBJNW3IJ9TZEhV0y+bndJpYFymRISeaUNjW5aht298YXZTDzgRdR23Of3Kr8c8FKqzkzQBr/WzR5hM8Lyvem58R8QoMWU1TeEDhx9X5NiQ== 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=amdcloud.onmicrosoft.com; s=selector2-amdcloud-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=xJjRu9mbdvQ066v+DRBqWRLmiUWFFlWx0PfbC7n/hy8=; b=ydXS0y8oMFIoxbYng3LGs9blSyeJ1SXqF3hG4RGXte/QSIPHAG3ykaDZC7avcUPFZXdj58kqTzQ1MQ4hwMvfeqarLDT5XiJc3+ro5g9AzVhnbd+ZlWoJVHVNStJCW1Lw5C38T14ioA8ptg0nJNNzq6fIggZCLVeZDdoQ5v43UL8= Received: from CY4PR12MB1925.namprd12.prod.outlook.com (10.175.62.7) by CY4PR12MB1639.namprd12.prod.outlook.com (10.172.71.149) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2387.22; Thu, 24 Oct 2019 11:20:30 +0000 Received: from CY4PR12MB1925.namprd12.prod.outlook.com ([fe80::a1f5:6f09:5c0d:78f1]) by CY4PR12MB1925.namprd12.prod.outlook.com ([fe80::a1f5:6f09:5c0d:78f1%11]) with mapi id 15.20.2387.019; Thu, 24 Oct 2019 11:20:30 +0000 From: "Thomas, Rijo-john" To: Ard Biesheuvel , Jens Wiklander CC: "Lendacky, Thomas" , "Hook, Gary" , Herbert Xu , "David S . Miller" , "linux-kernel@vger.kernel.org" , "linux-crypto@vger.kernel.org" , "Singh, Brijesh" , "Easow, Nimesh" , "Rangasamy, Devaraj" Subject: Re: [RFC PATCH 4/5] crypto: ccp - add TEE support for Raven Ridge Thread-Topic: [RFC PATCH 4/5] crypto: ccp - add TEE support for Raven Ridge Thread-Index: AQHViZTg9eqHn35qKESqitjerHscEKdoHL6AgAGKHoA= Date: Thu, 24 Oct 2019 11:20:29 +0000 Message-ID: <0b15a2ca-19e3-31cd-aae4-3a6434c09b0a@amd.com> References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: MAXPR0101CA0004.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:c::14) To CY4PR12MB1925.namprd12.prod.outlook.com (2603:10b6:903:120::7) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Rijo-john.Thomas@amd.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [165.204.156.251] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: bf32394f-33c7-4f88-a144-08d758742d45 x-ms-traffictypediagnostic: CY4PR12MB1639: x-ms-exchange-purlcount: 2 x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6430; x-forefront-prvs: 0200DDA8BE x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(4636009)(136003)(396003)(39860400002)(376002)(366004)(346002)(189003)(199004)(52116002)(2906002)(86362001)(99286004)(110136005)(14454004)(229853002)(6512007)(54906003)(36756003)(6306002)(6436002)(3846002)(6116002)(6486002)(66946007)(66476007)(66446008)(64756008)(66556008)(31686004)(7736002)(25786009)(5660300002)(31696002)(6246003)(4326008)(8936002)(71190400001)(316002)(71200400001)(186003)(76176011)(102836004)(26005)(256004)(53546011)(386003)(6506007)(2616005)(14444005)(486006)(446003)(11346002)(81156014)(81166006)(478600001)(8676002)(305945005)(966005)(30864003)(66066001)(476003)(579004);DIR:OUT;SFP:1101;SCL:1;SRVR:CY4PR12MB1639;H:CY4PR12MB1925.namprd12.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: amd.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: AuS4I2oVkpVoq7xOaiqKgjdvFIWGyoKis1XB8CbYy+gwLpd2/aJUfz784Y+y/o9vvziZJzXXzq+SXahqaKV60yehXUccnZcZSCsGg4a7KGq3mqGMELvOtcd5LiEwTGp+oPk/JXpSCW09L1r4mdcuwKIzkAbAQBzRgc6ThzEov0dPuxDi9tHRlHg1/xKfIlSGLtrCl+gZNpZUPUZAb8/fNHROY0KWRzcU844xSAh5Rj6WpqC2ScDXAua9jSNTQy9ZCC9Siuuf5T34FNdLcYQHCWwiXYxTTZrbbeN5WghXwfehvIWDxv5Pn8FNGKfaIUhgwpfuH9JMfnLDUC2JWeZGolmdJwb7fYp08CkYRoGEAa2UtFrJxiuH9RFR8cW+Mq3OwwI3EOd6dzup+Tt9Id6HH2YoPA8+HIpumy/Ublz26a04FhzVP/5jkHSrEeiTVL789U+zqjkAKoOnNaVFy++i1aGkyDs1FCmt7mQaGJMc+FA= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: bf32394f-33c7-4f88-a144-08d758742d45 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Oct 2019 11:20:29.9031 (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: RJsdQ2SjbEnni1GvV5Tp1e6qWdq7hoyqFDp6ilNs91ule7aJi5ReYnRHW2NUd9wt/6d/2z/Cm75qaWDBk+NTsg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR12MB1639 Sender: linux-crypto-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org SGVsbG8gQXJkLA0KDQpPbiAyMy8xMC8xOSA1OjE5IFBNLCBBcmQgQmllc2hldXZlbCB3cm90ZToN Cj4gKCsgSmVucykNCj4gDQo+IE9uIFdlZCwgMjMgT2N0IDIwMTkgYXQgMTM6MjcsIFRob21hcywg Umlqby1qb2huDQo+IDxSaWpvLWpvaG4uVGhvbWFzQGFtZC5jb20+IHdyb3RlOg0KPj4NCj4+IEFk ZHMgYSBQQ0kgZGV2aWNlIGVudHJ5IGZvciBSYXZlbiBSaWRnZS4gUmF2ZW4gUmlkZ2UgaXMgYW4g QVBVIHdpdGggYQ0KPj4gZGVkaWNhdGVkIEFNRCBTZWN1cmUgUHJvY2Vzc29yIGhhdmluZyBUcnVz dGVkIEV4ZWN1dGlvbiBFbnZpcm9ubWVudCAoVEVFKQ0KPj4gc3VwcG9ydC4gVGhlIFRFRSBwcm92 aWRlcyBhIHNlY3VyZSBlbnZpcm9ubWVudCBmb3IgcnVubmluZyBUcnVzdGVkDQo+PiBBcHBsaWNh dGlvbnMgKFRBcykgd2hpY2ggaW1wbGVtZW50IHNlY3VyaXR5LXNlbnNpdGl2ZSBwYXJ0cyBvZiBh IGZlYXR1cmUuDQo+Pg0KPj4gVGhpcyBwYXRjaCBjb25maWd1cmVzIEFNRCBTZWN1cmUgUHJvY2Vz c29yJ3MgVEVFIGludGVyZmFjZSBieSBpbml0aWFsaXppbmcNCj4+IGEgcmluZyBidWZmZXIgKHNo YXJlZCBtZW1vcnkgYmV0d2VlbiBSaWNoIE9TIGFuZCBUcnVzdGVkIE9TKSB3aGljaCBjYW4gaG9s ZA0KPj4gbXVsdGlwbGUgY29tbWFuZCBidWZmZXIgZW50cmllcy4gVGhlIFRFRSBpbnRlcmZhY2Ug aXMgZmFjaWxpdGF0ZWQgYnkgYSBzZXQNCj4+IG9mIENQVSB0byBQU1AgbWFpbGJveCByZWdpc3Rl cnMuDQo+Pg0KPj4gVGhlIG5leHQgcGF0Y2ggd2lsbCBhZGRyZXNzIGhvdyBjb21tYW5kcyBhcmUg c3VibWl0dGVkIHRvIHRoZSByaW5nIGJ1ZmZlci4NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBSaWpv IFRob21hcyA8Umlqby1qb2huLlRob21hc0BhbWQuY29tPg0KPj4gU2lnbmVkLW9mZi1ieTogRGV2 YXJhaiBSYW5nYXNhbXkgPERldmFyYWouUmFuZ2FzYW15QGFtZC5jb20+DQo+PiAtLS0NCj4+ICBk cml2ZXJzL2NyeXB0by9jY3AvTWFrZWZpbGUgIHwgICAzICstDQo+PiAgZHJpdmVycy9jcnlwdG8v Y2NwL3BzcC1kZXYuYyB8ICA3NCArKysrKysrKysrKysrLQ0KPj4gIGRyaXZlcnMvY3J5cHRvL2Nj cC9wc3AtZGV2LmggfCAgIDggKysNCj4+ICBkcml2ZXJzL2NyeXB0by9jY3Avc3AtZGV2LmggIHwg IDExICstDQo+PiAgZHJpdmVycy9jcnlwdG8vY2NwL3NwLXBjaS5jICB8ICAyNyArKysrLQ0KPj4g IGRyaXZlcnMvY3J5cHRvL2NjcC90ZWUtZGV2LmMgfCAyMzcgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKw0KPj4gIGRyaXZlcnMvY3J5cHRvL2NjcC90ZWUtZGV2Lmgg fCAxMDggKysrKysrKysrKysrKysrKysrKysNCj4+ICA3IGZpbGVzIGNoYW5nZWQsIDQ2MSBpbnNl cnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQ0KPj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJz L2NyeXB0by9jY3AvdGVlLWRldi5jDQo+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvY3J5 cHRvL2NjcC90ZWUtZGV2LmgNCj4+DQo+IA0KPiBIb3cgZG9lcyB0aGlzIHBhdGNoIHRpZSBpbnRv IHRoZSBURUUgc3Vic3lzdGVtIHdlIGhhdmUgaW4gZHJpdmVycy90ZWU/DQo+IA0KPiANCg0KSW4g dGhlIG5leHQgcGF0Y2ggaW4gdGhpcyBzZXJpZXM6DQoNCmNyeXB0bzogY2NwIC0gcHJvdmlkZSBp bi1rZXJuZWwgQVBJIHRvIHN1Ym1pdCBURUUgY29tbWFuZHMNCg0KTGluayA6IGh0dHBzOi8vcGF0 Y2h3b3JrLmtlcm5lbC5vcmcvcGF0Y2gvMTEyMDY0NDEvDQoNCndlIGludHJvZHVjZSBhbiBBUEkg cHNwX3RlZV9wcm9jZXNzX2NtZCgpLCB3aGljaCB3aWxsIGJlIGNhbGxlZCBieSBBTUQtVEVFDQpk cml2ZXIuIFRoZSBBTUQtVEVFIGRyaXZlcnMgcmVnaXN0ZXJzIGl0c2VsZiB3aXRoIHRoZSBURUUg c3Vic3lzdGVtIGFuZCB1c2VzDQpwc3BfdGVlX3Byb2Nlc3NfY21kKCkgdG8gc3VibWl0IGNvbW1h bmQgYnVmZmVycyBmb3IgcHJvY2Vzc2luZyBieSBUcnVzdGVkIE9TDQpydW5uaW5nIG9uIEFNRCBT ZWN1cmUgUHJvY2Vzc29yLg0KDQpUaGUgQU1ELVRFRSBkcml2ZXIgaXMgaW50cm9kdWNlZCBhcyBh IHNlcGFyYXRlIHBhdGNoc2V0IGFuZCBjYW4gYmUgZm91bmQgaGVyZToNCmh0dHBzOi8vbGttbC5v cmcvbGttbC8yMDE5LzEwLzIzLzQ1Nw0KDQpUaGFua3MsDQpSaWpvDQoNCj4gDQo+IA0KPj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvY3J5cHRvL2NjcC9NYWtlZmlsZSBiL2RyaXZlcnMvY3J5cHRvL2Nj cC9NYWtlZmlsZQ0KPj4gaW5kZXggM2IyOWVhNC4uZGIzNjJmZSAxMDA2NDQNCj4+IC0tLSBhL2Ry aXZlcnMvY3J5cHRvL2NjcC9NYWtlZmlsZQ0KPj4gKysrIGIvZHJpdmVycy9jcnlwdG8vY2NwL01h a2VmaWxlDQo+PiBAQCAtOSw3ICs5LDggQEAgY2NwLSQoQ09ORklHX0NSWVBUT19ERVZfU1BfQ0NQ KSArPSBjY3AtZGV2Lm8gXA0KPj4gIGNjcC0kKENPTkZJR19DUllQVE9fREVWX0NDUF9ERUJVR0ZT KSArPSBjY3AtZGVidWdmcy5vDQo+PiAgY2NwLSQoQ09ORklHX1BDSSkgKz0gc3AtcGNpLm8NCj4+ ICBjY3AtJChDT05GSUdfQ1JZUFRPX0RFVl9TUF9QU1ApICs9IHBzcC1kZXYubyBcDQo+PiAtICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXYtZGV2Lm8NCj4+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNldi1kZXYubyBcDQo+PiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB0ZWUtZGV2Lm8NCj4+DQo+PiAgb2JqLSQoQ09ORklHX0NSWVBU T19ERVZfQ0NQX0NSWVBUTykgKz0gY2NwLWNyeXB0by5vDQo+PiAgY2NwLWNyeXB0by1vYmpzIDo9 IGNjcC1jcnlwdG8tbWFpbi5vIFwNCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2NyeXB0by9jY3Av cHNwLWRldi5jIGIvZHJpdmVycy9jcnlwdG8vY2NwL3BzcC1kZXYuYw0KPj4gaW5kZXggZWY4YWZm YS4uOTBiY2Q1ZiAxMDA2NDQNCj4+IC0tLSBhL2RyaXZlcnMvY3J5cHRvL2NjcC9wc3AtZGV2LmMN Cj4+ICsrKyBiL2RyaXZlcnMvY3J5cHRvL2NjcC9wc3AtZGV2LmMNCj4+IEBAIC0xMyw2ICsxMyw3 IEBADQo+PiAgI2luY2x1ZGUgInNwLWRldi5oIg0KPj4gICNpbmNsdWRlICJwc3AtZGV2LmgiDQo+ PiAgI2luY2x1ZGUgInNldi1kZXYuaCINCj4+ICsjaW5jbHVkZSAidGVlLWRldi5oIg0KPj4NCj4+ ICBzdHJ1Y3QgcHNwX2RldmljZSAqcHNwX21hc3RlcjsNCj4+DQo+PiBAQCAtNDUsNiArNDYsOSBA QCBzdGF0aWMgaXJxcmV0dXJuX3QgcHNwX2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRhdGEp DQo+PiAgICAgICAgIGlmIChzdGF0dXMpIHsNCj4+ICAgICAgICAgICAgICAgICBpZiAocHNwLT5z ZXZfaXJxX2hhbmRsZXIpDQo+PiAgICAgICAgICAgICAgICAgICAgICAgICBwc3AtPnNldl9pcnFf aGFuZGxlcihpcnEsIHBzcC0+c2V2X2lycV9kYXRhLCBzdGF0dXMpOw0KPj4gKw0KPj4gKyAgICAg ICAgICAgICAgIGlmIChwc3AtPnRlZV9pcnFfaGFuZGxlcikNCj4+ICsgICAgICAgICAgICAgICAg ICAgICAgIHBzcC0+dGVlX2lycV9oYW5kbGVyKGlycSwgcHNwLT50ZWVfaXJxX2RhdGEsIHN0YXR1 cyk7DQo+PiAgICAgICAgIH0NCj4+DQo+PiAgICAgICAgIC8qIENsZWFyIHRoZSBpbnRlcnJ1cHQg c3RhdHVzIGJ5IHdyaXRpbmcgdGhlIHNhbWUgdmFsdWUgd2UgcmVhZC4gKi8NCj4+IEBAIC01Mywx MCArNTcsMTEgQEAgc3RhdGljIGlycXJldHVybl90IHBzcF9pcnFfaGFuZGxlcihpbnQgaXJxLCB2 b2lkICpkYXRhKQ0KPj4gICAgICAgICByZXR1cm4gSVJRX0hBTkRMRUQ7DQo+PiAgfQ0KPj4NCj4+ IC1zdGF0aWMgaW50IHBzcF9jaGVja19zZXZfc3VwcG9ydChzdHJ1Y3QgcHNwX2RldmljZSAqcHNw KQ0KPj4gK3N0YXRpYyBpbnQgcHNwX2NoZWNrX3Nldl9zdXBwb3J0KHN0cnVjdCBwc3BfZGV2aWNl ICpwc3AsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQg Y2FwYWJpbGl0eSkNCj4+ICB7DQo+PiAgICAgICAgIC8qIENoZWNrIGlmIGRldmljZSBzdXBwb3J0 cyBTRVYgZmVhdHVyZSAqLw0KPj4gLSAgICAgICBpZiAoIShpb3JlYWQzMihwc3AtPmlvX3JlZ3Mg KyBwc3AtPnZkYXRhLT5mZWF0dXJlX3JlZykgJiAxKSkgew0KPj4gKyAgICAgICBpZiAoIShjYXBh YmlsaXR5ICYgMSkpIHsNCj4+ICAgICAgICAgICAgICAgICBkZXZfZGJnKHBzcC0+ZGV2LCAicHNw IGRvZXMgbm90IHN1cHBvcnQgU0VWXG4iKTsNCj4+ICAgICAgICAgICAgICAgICByZXR1cm4gLUVO T0RFVjsNCj4+ICAgICAgICAgfQ0KPj4gQEAgLTY0LDEwICs2OSw1NCBAQCBzdGF0aWMgaW50IHBz cF9jaGVja19zZXZfc3VwcG9ydChzdHJ1Y3QgcHNwX2RldmljZSAqcHNwKQ0KPj4gICAgICAgICBy ZXR1cm4gMDsNCj4+ICB9DQo+Pg0KPj4gK3N0YXRpYyBpbnQgcHNwX2NoZWNrX3RlZV9zdXBwb3J0 KHN0cnVjdCBwc3BfZGV2aWNlICpwc3AsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1bnNpZ25lZCBpbnQgY2FwYWJpbGl0eSkNCj4+ICt7DQo+PiArICAgICAgIC8qIENoZWNr IGlmIGRldmljZSBzdXBwb3J0cyBURUUgZmVhdHVyZSAqLw0KPj4gKyAgICAgICBpZiAoIShjYXBh YmlsaXR5ICYgMikpIHsNCj4+ICsgICAgICAgICAgICAgICBkZXZfZGJnKHBzcC0+ZGV2LCAicHNw IGRvZXMgbm90IHN1cHBvcnQgVEVFXG4iKTsNCj4+ICsgICAgICAgICAgICAgICByZXR1cm4gLUVO T0RFVjsNCj4+ICsgICAgICAgfQ0KPj4gKw0KPj4gKyAgICAgICByZXR1cm4gMDsNCj4+ICt9DQo+ PiArDQo+PiArc3RhdGljIGludCBwc3BfY2hlY2tfc3VwcG9ydChzdHJ1Y3QgcHNwX2RldmljZSAq cHNwLCB1bnNpZ25lZCBpbnQgY2FwYWJpbGl0eSkNCj4+ICt7DQo+PiArICAgICAgIGludCBzZXZf c3VwcG9ydCA9IHBzcF9jaGVja19zZXZfc3VwcG9ydChwc3AsIGNhcGFiaWxpdHkpOw0KPj4gKyAg ICAgICBpbnQgdGVlX3N1cHBvcnQgPSBwc3BfY2hlY2tfdGVlX3N1cHBvcnQocHNwLCBjYXBhYmls aXR5KTsNCj4+ICsNCj4+ICsgICAgICAgLyogQ2hlY2sgaWYgZGV2aWNlIHN1cHBydHMgU0VWIGFu ZCBURUUgZmVhdHVyZSAqLw0KPj4gKyAgICAgICBpZiAoc2V2X3N1cHBvcnQgJiYgdGVlX3N1cHBv cnQpDQo+PiArICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9ERVY7DQo+PiArDQo+PiArICAgICAg IHJldHVybiAwOw0KPj4gK30NCj4+ICsNCj4+ICtzdGF0aWMgaW50IHBzcF9pbml0KHN0cnVjdCBw c3BfZGV2aWNlICpwc3AsIHVuc2lnbmVkIGludCBjYXBhYmlsaXR5KQ0KPj4gK3sNCj4+ICsgICAg ICAgaW50IHJldDsNCj4+ICsNCj4+ICsgICAgICAgaWYgKCFwc3BfY2hlY2tfc2V2X3N1cHBvcnQo cHNwLCBjYXBhYmlsaXR5KSkgew0KPj4gKyAgICAgICAgICAgICAgIHJldCA9IHNldl9kZXZfaW5p dChwc3ApOw0KPj4gKyAgICAgICAgICAgICAgIGlmIChyZXQpDQo+PiArICAgICAgICAgICAgICAg ICAgICAgICByZXR1cm4gcmV0Ow0KPj4gKyAgICAgICB9DQo+PiArDQo+PiArICAgICAgIGlmICgh cHNwX2NoZWNrX3RlZV9zdXBwb3J0KHBzcCwgY2FwYWJpbGl0eSkpIHsNCj4+ICsgICAgICAgICAg ICAgICByZXQgPSB0ZWVfZGV2X2luaXQocHNwKTsNCj4+ICsgICAgICAgICAgICAgICBpZiAocmV0 KQ0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4+ICsgICAgICAgfQ0K Pj4gKw0KPj4gKyAgICAgICByZXR1cm4gMDsNCj4+ICt9DQo+PiArDQo+PiAgaW50IHBzcF9kZXZf aW5pdChzdHJ1Y3Qgc3BfZGV2aWNlICpzcCkNCj4+ICB7DQo+PiAgICAgICAgIHN0cnVjdCBkZXZp Y2UgKmRldiA9IHNwLT5kZXY7DQo+PiAgICAgICAgIHN0cnVjdCBwc3BfZGV2aWNlICpwc3A7DQo+ PiArICAgICAgIHVuc2lnbmVkIGludCBjYXBhYmlsaXR5Ow0KPj4gICAgICAgICBpbnQgcmV0Ow0K Pj4NCj4+ICAgICAgICAgcmV0ID0gLUVOT01FTTsNCj4+IEBAIC04Niw3ICsxMzUsMTAgQEAgaW50 IHBzcF9kZXZfaW5pdChzdHJ1Y3Qgc3BfZGV2aWNlICpzcCkNCj4+DQo+PiAgICAgICAgIHBzcC0+ aW9fcmVncyA9IHNwLT5pb19tYXA7DQo+Pg0KPj4gLSAgICAgICByZXQgPSBwc3BfY2hlY2tfc2V2 X3N1cHBvcnQocHNwKTsNCj4+ICsgICAgICAgLyogUmVhZCB0aGUgZmVhdHVyZSByZWdpc3RlciB0 byBnZXQgdGhlIFBTUCBjYXBhYmlsaXR5ICovDQo+PiArICAgICAgIGNhcGFiaWxpdHkgPSBpb3Jl YWQzMihwc3AtPmlvX3JlZ3MgKyBwc3AtPnZkYXRhLT5mZWF0dXJlX3JlZyk7DQo+PiArDQo+PiAr ICAgICAgIHJldCA9IHBzcF9jaGVja19zdXBwb3J0KHBzcCwgY2FwYWJpbGl0eSk7DQo+PiAgICAg ICAgIGlmIChyZXQpDQo+PiAgICAgICAgICAgICAgICAgZ290byBlX2Rpc2FibGU7DQo+Pg0KPj4g QEAgLTEwMSw3ICsxNTMsNyBAQCBpbnQgcHNwX2Rldl9pbml0KHN0cnVjdCBzcF9kZXZpY2UgKnNw KQ0KPj4gICAgICAgICAgICAgICAgIGdvdG8gZV9lcnI7DQo+PiAgICAgICAgIH0NCj4+DQo+PiAt ICAgICAgIHJldCA9IHNldl9kZXZfaW5pdChwc3ApOw0KPj4gKyAgICAgICByZXQgPSBwc3BfaW5p dChwc3AsIGNhcGFiaWxpdHkpOw0KPj4gICAgICAgICBpZiAocmV0KQ0KPj4gICAgICAgICAgICAg ICAgIGdvdG8gZV9pcnE7DQo+Pg0KPj4gQEAgLTEzOSw2ICsxOTEsOCBAQCB2b2lkIHBzcF9kZXZf ZGVzdHJveShzdHJ1Y3Qgc3BfZGV2aWNlICpzcCkNCj4+DQo+PiAgICAgICAgIHNldl9kZXZfZGVz dHJveShwc3ApOw0KPj4NCj4+ICsgICAgICAgdGVlX2Rldl9kZXN0cm95KHBzcCk7DQo+PiArDQo+ PiAgICAgICAgIHNwX2ZyZWVfcHNwX2lycShzcCwgcHNwKTsNCj4+ICB9DQo+Pg0KPj4gQEAgLTE1 NCw2ICsyMDgsMTggQEAgdm9pZCBwc3BfY2xlYXJfc2V2X2lycV9oYW5kbGVyKHN0cnVjdCBwc3Bf ZGV2aWNlICpwc3ApDQo+PiAgICAgICAgIHBzcF9zZXRfc2V2X2lycV9oYW5kbGVyKHBzcCwgTlVM TCwgTlVMTCk7DQo+PiAgfQ0KPj4NCj4+ICt2b2lkIHBzcF9zZXRfdGVlX2lycV9oYW5kbGVyKHN0 cnVjdCBwc3BfZGV2aWNlICpwc3AsIHBzcF9pcnFfaGFuZGxlcl90IGhhbmRsZXIsDQo+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKmRhdGEpDQo+PiArew0KPj4gKyAgICAgICBw c3AtPnRlZV9pcnFfZGF0YSA9IGRhdGE7DQo+PiArICAgICAgIHBzcC0+dGVlX2lycV9oYW5kbGVy ID0gaGFuZGxlcjsNCj4+ICt9DQo+PiArDQo+PiArdm9pZCBwc3BfY2xlYXJfdGVlX2lycV9oYW5k bGVyKHN0cnVjdCBwc3BfZGV2aWNlICpwc3ApDQo+PiArew0KPj4gKyAgICAgICBwc3Bfc2V0X3Rl ZV9pcnFfaGFuZGxlcihwc3AsIE5VTEwsIE5VTEwpOw0KPj4gK30NCj4+ICsNCj4+ICBzdHJ1Y3Qg cHNwX2RldmljZSAqcHNwX2dldF9tYXN0ZXJfZGV2aWNlKHZvaWQpDQo+PiAgew0KPj4gICAgICAg ICBzdHJ1Y3Qgc3BfZGV2aWNlICpzcCA9IHNwX2dldF9wc3BfbWFzdGVyX2RldmljZSgpOw0KPj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3J5cHRvL2NjcC9wc3AtZGV2LmggYi9kcml2ZXJzL2NyeXB0 by9jY3AvcHNwLWRldi5oDQo+PiBpbmRleCA3YzAxNGFjLi5lZjM4ZTQxIDEwMDY0NA0KPj4gLS0t IGEvZHJpdmVycy9jcnlwdG8vY2NwL3BzcC1kZXYuaA0KPj4gKysrIGIvZHJpdmVycy9jcnlwdG8v Y2NwL3BzcC1kZXYuaA0KPj4gQEAgLTQwLDEzICs0MCwyMSBAQCBzdHJ1Y3QgcHNwX2RldmljZSB7 DQo+PiAgICAgICAgIHBzcF9pcnFfaGFuZGxlcl90IHNldl9pcnFfaGFuZGxlcjsNCj4+ICAgICAg ICAgdm9pZCAqc2V2X2lycV9kYXRhOw0KPj4NCj4+ICsgICAgICAgcHNwX2lycV9oYW5kbGVyX3Qg dGVlX2lycV9oYW5kbGVyOw0KPj4gKyAgICAgICB2b2lkICp0ZWVfaXJxX2RhdGE7DQo+PiArDQo+ PiAgICAgICAgIHZvaWQgKnNldl9kYXRhOw0KPj4gKyAgICAgICB2b2lkICp0ZWVfZGF0YTsNCj4+ ICB9Ow0KPj4NCj4+ICB2b2lkIHBzcF9zZXRfc2V2X2lycV9oYW5kbGVyKHN0cnVjdCBwc3BfZGV2 aWNlICpwc3AsIHBzcF9pcnFfaGFuZGxlcl90IGhhbmRsZXIsDQo+PiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHZvaWQgKmRhdGEpOw0KPj4gIHZvaWQgcHNwX2NsZWFyX3Nldl9pcnFfaGFu ZGxlcihzdHJ1Y3QgcHNwX2RldmljZSAqcHNwKTsNCj4+DQo+PiArdm9pZCBwc3Bfc2V0X3RlZV9p cnFfaGFuZGxlcihzdHJ1Y3QgcHNwX2RldmljZSAqcHNwLCBwc3BfaXJxX2hhbmRsZXJfdCBoYW5k bGVyLA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpkYXRhKTsNCj4+ICt2 b2lkIHBzcF9jbGVhcl90ZWVfaXJxX2hhbmRsZXIoc3RydWN0IHBzcF9kZXZpY2UgKnBzcCk7DQo+ PiArDQo+PiAgc3RydWN0IHBzcF9kZXZpY2UgKnBzcF9nZXRfbWFzdGVyX2RldmljZSh2b2lkKTsN Cj4+DQo+PiAgI2VuZGlmIC8qIF9fUFNQX0RFVl9IICovDQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9jcnlwdG8vY2NwL3NwLWRldi5oIGIvZHJpdmVycy9jcnlwdG8vY2NwL3NwLWRldi5oDQo+PiBp bmRleCAwMzk0Yzc1Li40MjM1OTQ2IDEwMDY0NA0KPj4gLS0tIGEvZHJpdmVycy9jcnlwdG8vY2Nw L3NwLWRldi5oDQo+PiArKysgYi9kcml2ZXJzL2NyeXB0by9jY3Avc3AtZGV2LmgNCj4+IEBAIC0y LDcgKzIsNyBAQA0KPj4gIC8qDQo+PiAgICogQU1EIFNlY3VyZSBQcm9jZXNzb3IgZHJpdmVyDQo+ PiAgICoNCj4+IC0gKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAxOCBBZHZhbmNlZCBNaWNybyBEZXZp Y2VzLCBJbmMuDQo+PiArICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMTkgQWR2YW5jZWQgTWljcm8g RGV2aWNlcywgSW5jLg0KPj4gICAqDQo+PiAgICogQXV0aG9yOiBUb20gTGVuZGFja3kgPHRob21h cy5sZW5kYWNreUBhbWQuY29tPg0KPj4gICAqIEF1dGhvcjogR2FyeSBSIEhvb2sgPGdhcnkuaG9v a0BhbWQuY29tPg0KPj4gQEAgLTQ1LDggKzQ1LDE3IEBAIHN0cnVjdCBzZXZfdmRhdGEgew0KPj4g ICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgY21kYnVmZl9hZGRyX2hpX3JlZzsNCj4+ICB9Ow0K Pj4NCj4+ICtzdHJ1Y3QgdGVlX3ZkYXRhIHsNCj4+ICsgICAgICAgY29uc3QgdW5zaWduZWQgaW50 IGNtZHJlc3BfcmVnOw0KPj4gKyAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgY21kYnVmZl9hZGRy X2xvX3JlZzsNCj4+ICsgICAgICAgY29uc3QgdW5zaWduZWQgaW50IGNtZGJ1ZmZfYWRkcl9oaV9y ZWc7DQo+PiArICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCByaW5nX3dwdHJfcmVnOw0KPj4gKyAg ICAgICBjb25zdCB1bnNpZ25lZCBpbnQgcmluZ19ycHRyX3JlZzsNCj4+ICt9Ow0KPj4gKw0KPj4g IHN0cnVjdCBwc3BfdmRhdGEgew0KPj4gICAgICAgICBjb25zdCBzdHJ1Y3Qgc2V2X3ZkYXRhICpz ZXY7DQo+PiArICAgICAgIGNvbnN0IHN0cnVjdCB0ZWVfdmRhdGEgKnRlZTsNCj4+ICAgICAgICAg Y29uc3QgdW5zaWduZWQgaW50IGZlYXR1cmVfcmVnOw0KPj4gICAgICAgICBjb25zdCB1bnNpZ25l ZCBpbnQgaW50ZW5fcmVnOw0KPj4gICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgaW50c3RzX3Jl ZzsNCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2NyeXB0by9jY3Avc3AtcGNpLmMgYi9kcml2ZXJz L2NyeXB0by9jY3Avc3AtcGNpLmMNCj4+IGluZGV4IDczMzY5M2QuLjU2YzFmNjEgMTAwNjQ0DQo+ PiAtLS0gYS9kcml2ZXJzL2NyeXB0by9jY3Avc3AtcGNpLmMNCj4+ICsrKyBiL2RyaXZlcnMvY3J5 cHRvL2NjcC9zcC1wY2kuYw0KPj4gQEAgLTIsNyArMiw3IEBADQo+PiAgLyoNCj4+ICAgKiBBTUQg U2VjdXJlIFByb2Nlc3NvciBkZXZpY2UgZHJpdmVyDQo+PiAgICoNCj4+IC0gKiBDb3B5cmlnaHQg KEMpIDIwMTMsMjAxOCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuDQo+PiArICogQ29weXJp Z2h0IChDKSAyMDEzLDIwMTkgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLg0KPj4gICAqDQo+ PiAgICogQXV0aG9yOiBUb20gTGVuZGFja3kgPHRob21hcy5sZW5kYWNreUBhbWQuY29tPg0KPj4g ICAqIEF1dGhvcjogR2FyeSBSIEhvb2sgPGdhcnkuaG9va0BhbWQuY29tPg0KPj4gQEAgLTI3NCw2 ICsyNzQsMTQgQEAgc3RhdGljIGludCBzcF9wY2lfcmVzdW1lKHN0cnVjdCBwY2lfZGV2ICpwZGV2 KQ0KPj4gICAgICAgICAuY21kYnVmZl9hZGRyX2hpX3JlZyAgICA9IDB4MTA5ZTQsDQo+PiAgfTsN Cj4+DQo+PiArc3RhdGljIGNvbnN0IHN0cnVjdCB0ZWVfdmRhdGEgdGVldjEgPSB7DQo+PiArICAg ICAgIC5jbWRyZXNwX3JlZyAgICAgICAgICAgID0gMHgxMDU0NCwNCj4+ICsgICAgICAgLmNtZGJ1 ZmZfYWRkcl9sb19yZWcgICAgPSAweDEwNTQ4LA0KPj4gKyAgICAgICAuY21kYnVmZl9hZGRyX2hp X3JlZyAgICA9IDB4MTA1NGMsDQo+PiArICAgICAgIC5yaW5nX3dwdHJfcmVnICAgICAgICAgID0g MHgxMDU1MCwNCj4+ICsgICAgICAgLnJpbmdfcnB0cl9yZWcgICAgICAgICAgPSAweDEwNTU0LA0K Pj4gK307DQo+PiArDQo+PiAgc3RhdGljIGNvbnN0IHN0cnVjdCBwc3BfdmRhdGEgcHNwdjEgPSB7 DQo+PiAgICAgICAgIC5zZXYgICAgICAgICAgICAgICAgICAgID0gJnNldnYxLA0KPj4gICAgICAg ICAuZmVhdHVyZV9yZWcgICAgICAgICAgICA9IDB4MTA1ZmMsDQo+PiBAQCAtMjg3LDYgKzI5NSwx MyBAQCBzdGF0aWMgaW50IHNwX3BjaV9yZXN1bWUoc3RydWN0IHBjaV9kZXYgKnBkZXYpDQo+PiAg ICAgICAgIC5pbnRlbl9yZWcgICAgICAgICAgICAgID0gMHgxMDY5MCwNCj4+ICAgICAgICAgLmlu dHN0c19yZWcgICAgICAgICAgICAgPSAweDEwNjk0LA0KPj4gIH07DQo+PiArDQo+PiArc3RhdGlj IGNvbnN0IHN0cnVjdCBwc3BfdmRhdGEgcHNwdjMgPSB7DQo+PiArICAgICAgIC50ZWUgICAgICAg ICAgICAgICAgICAgID0gJnRlZXYxLA0KPj4gKyAgICAgICAuZmVhdHVyZV9yZWcgICAgICAgICAg ICA9IDB4MTA5ZmMsDQo+PiArICAgICAgIC5pbnRlbl9yZWcgICAgICAgICAgICAgID0gMHgxMDY5 MCwNCj4+ICsgICAgICAgLmludHN0c19yZWcgICAgICAgICAgICAgPSAweDEwNjk0LA0KPj4gK307 DQo+PiAgI2VuZGlmDQo+Pg0KPj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3BfZGV2X3ZkYXRhIGRl dl92ZGF0YVtdID0gew0KPj4gQEAgLTMyMCwxMiArMzM1LDIyIEBAIHN0YXRpYyBpbnQgc3BfcGNp X3Jlc3VtZShzdHJ1Y3QgcGNpX2RldiAqcGRldikNCj4+ICAgICAgICAgICAgICAgICAucHNwX3Zk YXRhID0gJnBzcHYyLA0KPj4gICNlbmRpZg0KPj4gICAgICAgICB9LA0KPj4gKyAgICAgICB7ICAg ICAgIC8qIDQgKi8NCj4+ICsgICAgICAgICAgICAgICAuYmFyID0gMiwNCj4+ICsjaWZkZWYgQ09O RklHX0NSWVBUT19ERVZfU1BfQ0NQDQo+PiArICAgICAgICAgICAgICAgLmNjcF92ZGF0YSA9ICZj Y3B2NWEsDQo+PiArI2VuZGlmDQo+PiArI2lmZGVmIENPTkZJR19DUllQVE9fREVWX1NQX1BTUA0K Pj4gKyAgICAgICAgICAgICAgIC5wc3BfdmRhdGEgPSAmcHNwdjMsDQo+PiArI2VuZGlmDQo+PiAr ICAgICAgIH0sDQo+PiAgfTsNCj4+ICBzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQg c3BfcGNpX3RhYmxlW10gPSB7DQo+PiAgICAgICAgIHsgUENJX1ZERVZJQ0UoQU1ELCAweDE1Mzcp LCAoa2VybmVsX3Vsb25nX3QpJmRldl92ZGF0YVswXSB9LA0KPj4gICAgICAgICB7IFBDSV9WREVW SUNFKEFNRCwgMHgxNDU2KSwgKGtlcm5lbF91bG9uZ190KSZkZXZfdmRhdGFbMV0gfSwNCj4+ICAg ICAgICAgeyBQQ0lfVkRFVklDRShBTUQsIDB4MTQ2OCksIChrZXJuZWxfdWxvbmdfdCkmZGV2X3Zk YXRhWzJdIH0sDQo+PiAgICAgICAgIHsgUENJX1ZERVZJQ0UoQU1ELCAweDE0ODYpLCAoa2VybmVs X3Vsb25nX3QpJmRldl92ZGF0YVszXSB9LA0KPj4gKyAgICAgICB7IFBDSV9WREVWSUNFKEFNRCwg MHgxNURGKSwgKGtlcm5lbF91bG9uZ190KSZkZXZfdmRhdGFbNF0gfSwNCj4+ICAgICAgICAgLyog TGFzdCBlbnRyeSBtdXN0IGJlIHplcm8gKi8NCj4+ICAgICAgICAgeyAwLCB9DQo+PiAgfTsNCj4+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2NyeXB0by9jY3AvdGVlLWRldi5jIGIvZHJpdmVycy9jcnlw dG8vY2NwL3RlZS1kZXYuYw0KPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4+IGluZGV4IDAwMDAw MDAuLmIyYjAyMTUNCj4+IC0tLSAvZGV2L251bGwNCj4+ICsrKyBiL2RyaXZlcnMvY3J5cHRvL2Nj cC90ZWUtZGV2LmMNCj4+IEBAIC0wLDAgKzEsMjM3IEBADQo+PiArLy8gU1BEWC1MaWNlbnNlLUlk ZW50aWZpZXI6IE1JVA0KPj4gKy8qDQo+PiArICogQU1EIFRydXN0ZWQgRXhlY3V0aW9uIEVudmly b25tZW50IChURUUpIGludGVyZmFjZQ0KPj4gKyAqDQo+PiArICogQXV0aG9yOiBSaWpvIFRob21h cyA8Umlqby1qb2huLlRob21hc0BhbWQuY29tPg0KPj4gKyAqDQo+PiArICogQ29weXJpZ2h0IDIw MTkgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLg0KPj4gKyAqLw0KPj4gKw0KPj4gKyNpbmNs dWRlIDxsaW51eC90eXBlcy5oPg0KPj4gKyNpbmNsdWRlIDxsaW51eC9tdXRleC5oPg0KPj4gKyNp bmNsdWRlIDxsaW51eC9kZWxheS5oPg0KPj4gKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+DQo+PiAr I2luY2x1ZGUgPGxpbnV4L2dmcC5oPg0KPj4gKyNpbmNsdWRlIDxsaW51eC9wc3Atc2V2Lmg+DQo+ PiArDQo+PiArI2luY2x1ZGUgInBzcC1kZXYuaCINCj4+ICsjaW5jbHVkZSAidGVlLWRldi5oIg0K Pj4gKw0KPj4gK3N0YXRpYyBib29sIHBzcF9kZWFkOw0KPj4gKw0KPj4gK3N0YXRpYyBpbnQgdGVl X2FsbG9jX3Jpbmcoc3RydWN0IHBzcF90ZWVfZGV2aWNlICp0ZWUsIGludCByaW5nX3NpemUpDQo+ PiArew0KPj4gKyAgICAgICBzdHJ1Y3QgcmluZ19idWZfbWFuYWdlciAqcmJfbWdyID0gJnRlZS0+ cmJfbWdyOw0KPj4gKyAgICAgICB2b2lkICpzdGFydF9hZGRyOw0KPj4gKw0KPj4gKyAgICAgICBp ZiAoIXJpbmdfc2l6ZSkNCj4+ICsgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4+ICsN Cj4+ICsgICAgICAgLyogV2UgbmVlZCBhY3R1YWwgcGh5c2ljYWwgYWRkcmVzcyBpbnN0ZWFkIG9m IERNQSBhZGRyZXNzLCBzaW5jZQ0KPj4gKyAgICAgICAgKiBUcnVzdGVkIE9TIHJ1bm5pbmcgb24g QU1EIFNlY3VyZSBQcm9jZXNzb3Igd2lsbCBtYXAgdGhpcyByZWdpb24NCj4+ICsgICAgICAgICov DQo+PiArICAgICAgIHN0YXJ0X2FkZHIgPSAodm9pZCAqKV9fZ2V0X2ZyZWVfcGFnZXMoR0ZQX0tF Uk5FTCwgZ2V0X29yZGVyKHJpbmdfc2l6ZSkpOw0KPj4gKyAgICAgICBpZiAoIXN0YXJ0X2FkZHIp DQo+PiArICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07DQo+PiArDQo+PiArICAgICAgIHJi X21nci0+cmluZ19zdGFydCA9IHN0YXJ0X2FkZHI7DQo+PiArICAgICAgIHJiX21nci0+cmluZ19z aXplID0gcmluZ19zaXplOw0KPj4gKyAgICAgICByYl9tZ3ItPnJpbmdfcGEgPSBfX3BzcF9wYShz dGFydF9hZGRyKTsNCj4+ICsNCj4+ICsgICAgICAgcmV0dXJuIDA7DQo+PiArfQ0KPj4gKw0KPj4g K3N0YXRpYyB2b2lkIHRlZV9mcmVlX3Jpbmcoc3RydWN0IHBzcF90ZWVfZGV2aWNlICp0ZWUpDQo+ PiArew0KPj4gKyAgICAgICBzdHJ1Y3QgcmluZ19idWZfbWFuYWdlciAqcmJfbWdyID0gJnRlZS0+ cmJfbWdyOw0KPj4gKw0KPj4gKyAgICAgICBpZiAoIXJiX21nci0+cmluZ19zdGFydCkNCj4+ICsg ICAgICAgICAgICAgICByZXR1cm47DQo+PiArDQo+PiArICAgICAgIGZyZWVfcGFnZXMoKHVuc2ln bmVkIGxvbmcpcmJfbWdyLT5yaW5nX3N0YXJ0LA0KPj4gKyAgICAgICAgICAgICAgICAgIGdldF9v cmRlcihyYl9tZ3ItPnJpbmdfc2l6ZSkpOw0KPj4gKw0KPj4gKyAgICAgICByYl9tZ3ItPnJpbmdf c3RhcnQgPSBOVUxMOw0KPj4gKyAgICAgICByYl9tZ3ItPnJpbmdfc2l6ZSA9IDA7DQo+PiArICAg ICAgIHJiX21nci0+cmluZ19wYSA9IDA7DQo+PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyBpbnQgdGVl X3dhaXRfY21kX3BvbGwoc3RydWN0IHBzcF90ZWVfZGV2aWNlICp0ZWUsIHVuc2lnbmVkIGludCB0 aW1lb3V0LA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKnJl ZykNCj4+ICt7DQo+PiArICAgICAgIC8qIH4xMG1zIHNsZWVwIHBlciBsb29wID0+IG5sb29wID0g dGltZW91dCAqIDEwMCAqLw0KPj4gKyAgICAgICBpbnQgbmxvb3AgPSB0aW1lb3V0ICogMTAwOw0K Pj4gKw0KPj4gKyAgICAgICB3aGlsZSAoLS1ubG9vcCkgew0KPj4gKyAgICAgICAgICAgICAgICpy ZWcgPSBpb3JlYWQzMih0ZWUtPmlvX3JlZ3MgKyB0ZWUtPnZkYXRhLT5jbWRyZXNwX3JlZyk7DQo+ PiArICAgICAgICAgICAgICAgaWYgKCpyZWcgJiBQU1BfQ01EUkVTUF9SRVNQKQ0KPj4gKyAgICAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7DQo+PiArDQo+PiArICAgICAgICAgICAgICAgdXNs ZWVwX3JhbmdlKDEwMDAwLCAxMDEwMCk7DQo+PiArICAgICAgIH0NCj4+ICsNCj4+ICsgICAgICAg ZGV2X2Vycih0ZWUtPmRldiwgInRlZTogY29tbWFuZCB0aW1lZCBvdXQsIGRpc2FibGluZyBQU1Bc biIpOw0KPj4gKyAgICAgICBwc3BfZGVhZCA9IHRydWU7DQo+PiArDQo+PiArICAgICAgIHJldHVy biAtRVRJTUVET1VUOw0KPj4gK30NCj4+ICsNCj4+ICtzdGF0aWMNCj4+ICtzdHJ1Y3QgdGVlX2lu aXRfcmluZ19jbWQgKnRlZV9hbGxvY19jbWRfYnVmZmVyKHN0cnVjdCBwc3BfdGVlX2RldmljZSAq dGVlKQ0KPj4gK3sNCj4+ICsgICAgICAgc3RydWN0IHRlZV9pbml0X3JpbmdfY21kICpjbWQ7DQo+ PiArDQo+PiArICAgICAgIGNtZCA9IGt6YWxsb2Moc2l6ZW9mKCpjbWQpLCBHRlBfS0VSTkVMKTsN Cj4+ICsgICAgICAgaWYgKCFjbWQpDQo+PiArICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7DQo+ PiArDQo+PiArICAgICAgIGNtZC0+aGlfYWRkciA9IHVwcGVyXzMyX2JpdHModGVlLT5yYl9tZ3Iu cmluZ19wYSk7DQo+PiArICAgICAgIGNtZC0+bG93X2FkZHIgPSBsb3dlcl8zMl9iaXRzKHRlZS0+ cmJfbWdyLnJpbmdfcGEpOw0KPj4gKyAgICAgICBjbWQtPnNpemUgPSB0ZWUtPnJiX21nci5yaW5n X3NpemU7DQo+PiArDQo+PiArICAgICAgIGRldl9kYmcodGVlLT5kZXYsICJ0ZWU6IHJpbmcgYWRk cmVzczogaGlnaCA9IDB4JXggbG93ID0gMHgleCBzaXplID0gJXVcbiIsDQo+PiArICAgICAgICAg ICAgICAgY21kLT5oaV9hZGRyLCBjbWQtPmxvd19hZGRyLCBjbWQtPnNpemUpOw0KPj4gKw0KPj4g KyAgICAgICByZXR1cm4gY21kOw0KPj4gK30NCj4+ICsNCj4+ICtzdGF0aWMgaW5saW5lIHZvaWQg dGVlX2ZyZWVfY21kX2J1ZmZlcihzdHJ1Y3QgdGVlX2luaXRfcmluZ19jbWQgKmNtZCkNCj4+ICt7 DQo+PiArICAgICAgIGtmcmVlKGNtZCk7DQo+PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyBpbnQgdGVl X2luaXRfcmluZyhzdHJ1Y3QgcHNwX3RlZV9kZXZpY2UgKnRlZSkNCj4+ICt7DQo+PiArICAgICAg IGludCByaW5nX3NpemUgPSBNQVhfUklOR19CVUZGRVJfRU5UUklFUyAqIHNpemVvZihzdHJ1Y3Qg dGVlX3JpbmdfY21kKTsNCj4+ICsgICAgICAgc3RydWN0IHRlZV9pbml0X3JpbmdfY21kICpjbWQ7 DQo+PiArICAgICAgIHBoeXNfYWRkcl90IGNtZF9idWZmZXI7DQo+PiArICAgICAgIHVuc2lnbmVk IGludCByZWc7DQo+PiArICAgICAgIGludCByZXQ7DQo+PiArDQo+PiArICAgICAgIEJVSUxEX0JV R19PTihzaXplb2Yoc3RydWN0IHRlZV9yaW5nX2NtZCkgIT0gMTAyNCk7DQo+PiArDQo+PiArICAg ICAgIHJldCA9IHRlZV9hbGxvY19yaW5nKHRlZSwgcmluZ19zaXplKTsNCj4+ICsgICAgICAgaWYg KHJldCkgew0KPj4gKyAgICAgICAgICAgICAgIGRldl9lcnIodGVlLT5kZXYsICJ0ZWU6IHJpbmcg YWxsb2NhdGlvbiBmYWlsZWQgJWRcbiIsIHJldCk7DQo+PiArICAgICAgICAgICAgICAgcmV0dXJu IHJldDsNCj4+ICsgICAgICAgfQ0KPj4gKw0KPj4gKyAgICAgICB0ZWUtPnJiX21nci53cHRyID0g MDsNCj4+ICsNCj4+ICsgICAgICAgY21kID0gdGVlX2FsbG9jX2NtZF9idWZmZXIodGVlKTsNCj4+ ICsgICAgICAgaWYgKCFjbWQpIHsNCj4+ICsgICAgICAgICAgICAgICB0ZWVfZnJlZV9yaW5nKHRl ZSk7DQo+PiArICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07DQo+PiArICAgICAgIH0NCj4+ ICsNCj4+ICsgICAgICAgY21kX2J1ZmZlciA9IF9fcHNwX3BhKCh2b2lkICopY21kKTsNCj4+ICsN Cj4+ICsgICAgICAgLyogU2VuZCBjb21tYW5kIGJ1ZmZlciBkZXRhaWxzIHRvIFRydXN0ZWQgT1Mg Ynkgd3JpdGluZyB0bw0KPj4gKyAgICAgICAgKiBDUFUtUFNQIG1lc3NhZ2UgcmVnaXN0ZXJzDQo+ PiArICAgICAgICAqLw0KPj4gKw0KPj4gKyAgICAgICBpb3dyaXRlMzIobG93ZXJfMzJfYml0cyhj bWRfYnVmZmVyKSwNCj4+ICsgICAgICAgICAgICAgICAgIHRlZS0+aW9fcmVncyArIHRlZS0+dmRh dGEtPmNtZGJ1ZmZfYWRkcl9sb19yZWcpOw0KPj4gKyAgICAgICBpb3dyaXRlMzIodXBwZXJfMzJf Yml0cyhjbWRfYnVmZmVyKSwNCj4+ICsgICAgICAgICAgICAgICAgIHRlZS0+aW9fcmVncyArIHRl ZS0+dmRhdGEtPmNtZGJ1ZmZfYWRkcl9oaV9yZWcpOw0KPj4gKyAgICAgICBpb3dyaXRlMzIoVEVF X1JJTkdfSU5JVF9DTUQsDQo+PiArICAgICAgICAgICAgICAgICB0ZWUtPmlvX3JlZ3MgKyB0ZWUt PnZkYXRhLT5jbWRyZXNwX3JlZyk7DQo+PiArDQo+PiArICAgICAgIHJldCA9IHRlZV93YWl0X2Nt ZF9wb2xsKHRlZSwgVEVFX0RFRkFVTFRfVElNRU9VVCwgJnJlZyk7DQo+PiArICAgICAgIGlmIChy ZXQpIHsNCj4+ICsgICAgICAgICAgICAgICBkZXZfZXJyKHRlZS0+ZGV2LCAidGVlOiByaW5nIGlu aXQgY29tbWFuZCB0aW1lZCBvdXRcbiIpOw0KPj4gKyAgICAgICAgICAgICAgIHRlZV9mcmVlX3Jp bmcodGVlKTsNCj4+ICsgICAgICAgICAgICAgICBnb3RvIGZyZWVfYnVmOw0KPj4gKyAgICAgICB9 DQo+PiArDQo+PiArICAgICAgIGlmIChyZWcgJiBQU1BfQ01EUkVTUF9FUlJfTUFTSykgew0KPj4g KyAgICAgICAgICAgICAgIGRldl9lcnIodGVlLT5kZXYsICJ0ZWU6IHJpbmcgaW5pdCBjb21tYW5k IGZhaWxlZCAoJSMwMTB4KVxuIiwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgIHJlZyAmIFBT UF9DTURSRVNQX0VSUl9NQVNLKTsNCj4+ICsgICAgICAgICAgICAgICB0ZWVfZnJlZV9yaW5nKHRl ZSk7DQo+PiArICAgICAgICAgICAgICAgcmV0ID0gLUVJTzsNCj4+ICsgICAgICAgfQ0KPj4gKw0K Pj4gK2ZyZWVfYnVmOg0KPj4gKyAgICAgICB0ZWVfZnJlZV9jbWRfYnVmZmVyKGNtZCk7DQo+PiAr DQo+PiArICAgICAgIHJldHVybiByZXQ7DQo+PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyB2b2lkIHRl ZV9kZXN0cm95X3Jpbmcoc3RydWN0IHBzcF90ZWVfZGV2aWNlICp0ZWUpDQo+PiArew0KPj4gKyAg ICAgICB1bnNpZ25lZCBpbnQgcmVnOw0KPj4gKyAgICAgICBpbnQgcmV0Ow0KPj4gKw0KPj4gKyAg ICAgICBpZiAoIXRlZS0+cmJfbWdyLnJpbmdfc3RhcnQpDQo+PiArICAgICAgICAgICAgICAgcmV0 dXJuOw0KPj4gKw0KPj4gKyAgICAgICBpZiAocHNwX2RlYWQpDQo+PiArICAgICAgICAgICAgICAg Z290byBmcmVlX3Jpbmc7DQo+PiArDQo+PiArICAgICAgIGlvd3JpdGUzMihURUVfUklOR19ERVNU Uk9ZX0NNRCwNCj4+ICsgICAgICAgICAgICAgICAgIHRlZS0+aW9fcmVncyArIHRlZS0+dmRhdGEt PmNtZHJlc3BfcmVnKTsNCj4+ICsNCj4+ICsgICAgICAgcmV0ID0gdGVlX3dhaXRfY21kX3BvbGwo dGVlLCBURUVfREVGQVVMVF9USU1FT1VULCAmcmVnKTsNCj4+ICsgICAgICAgaWYgKHJldCkgew0K Pj4gKyAgICAgICAgICAgICAgIGRldl9lcnIodGVlLT5kZXYsICJ0ZWU6IHJpbmcgZGVzdHJveSBj b21tYW5kIHRpbWVkIG91dFxuIik7DQo+PiArICAgICAgIH0gZWxzZSBpZiAocmVnICYgUFNQX0NN RFJFU1BfRVJSX01BU0spIHsNCj4+ICsgICAgICAgICAgICAgICBkZXZfZXJyKHRlZS0+ZGV2LCAi dGVlOiByaW5nIGRlc3Ryb3kgY29tbWFuZCBmYWlsZWQgKCUjMDEweClcbiIsDQo+PiArICAgICAg ICAgICAgICAgICAgICAgICByZWcgJiBQU1BfQ01EUkVTUF9FUlJfTUFTSyk7DQo+PiArICAgICAg IH0NCj4+ICsNCj4+ICtmcmVlX3Jpbmc6DQo+PiArICAgICAgIHRlZV9mcmVlX3JpbmcodGVlKTsN Cj4+ICt9DQo+PiArDQo+PiAraW50IHRlZV9kZXZfaW5pdChzdHJ1Y3QgcHNwX2RldmljZSAqcHNw KQ0KPj4gK3sNCj4+ICsgICAgICAgc3RydWN0IGRldmljZSAqZGV2ID0gcHNwLT5kZXY7DQo+PiAr ICAgICAgIHN0cnVjdCBwc3BfdGVlX2RldmljZSAqdGVlOw0KPj4gKyAgICAgICBpbnQgcmV0Ow0K Pj4gKw0KPj4gKyAgICAgICByZXQgPSAtRU5PTUVNOw0KPj4gKyAgICAgICB0ZWUgPSBkZXZtX2t6 YWxsb2MoZGV2LCBzaXplb2YoKnRlZSksIEdGUF9LRVJORUwpOw0KPj4gKyAgICAgICBpZiAoIXRl ZSkNCj4+ICsgICAgICAgICAgICAgICBnb3RvIGVfZXJyOw0KPj4gKw0KPj4gKyAgICAgICBwc3At PnRlZV9kYXRhID0gdGVlOw0KPj4gKw0KPj4gKyAgICAgICB0ZWUtPmRldiA9IGRldjsNCj4+ICsg ICAgICAgdGVlLT5wc3AgPSBwc3A7DQo+PiArDQo+PiArICAgICAgIHRlZS0+aW9fcmVncyA9IHBz cC0+aW9fcmVnczsNCj4+ICsNCj4+ICsgICAgICAgdGVlLT52ZGF0YSA9IChzdHJ1Y3QgdGVlX3Zk YXRhICopcHNwLT52ZGF0YS0+dGVlOw0KPj4gKyAgICAgICBpZiAoIXRlZS0+dmRhdGEpIHsNCj4+ ICsgICAgICAgICAgICAgICByZXQgPSAtRU5PREVWOw0KPj4gKyAgICAgICAgICAgICAgIGRldl9l cnIoZGV2LCAidGVlOiBtaXNzaW5nIGRyaXZlciBkYXRhXG4iKTsNCj4+ICsgICAgICAgICAgICAg ICBnb3RvIGVfZXJyOw0KPj4gKyAgICAgICB9DQo+PiArDQo+PiArICAgICAgIHJldCA9IHRlZV9p bml0X3JpbmcodGVlKTsNCj4+ICsgICAgICAgaWYgKHJldCkgew0KPj4gKyAgICAgICAgICAgICAg IGRldl9lcnIoZGV2LCAidGVlOiBmYWlsZWQgdG8gaW5pdCByaW5nIGJ1ZmZlclxuIik7DQo+PiAr ICAgICAgICAgICAgICAgZ290byBlX2VycjsNCj4+ICsgICAgICAgfQ0KPj4gKw0KPj4gKyAgICAg ICBkZXZfbm90aWNlKGRldiwgInRlZSBlbmFibGVkXG4iKTsNCj4+ICsNCj4+ICsgICAgICAgcmV0 dXJuIDA7DQo+PiArDQo+PiArZV9lcnI6DQo+PiArICAgICAgIHBzcC0+dGVlX2RhdGEgPSBOVUxM Ow0KPj4gKw0KPj4gKyAgICAgICBkZXZfbm90aWNlKGRldiwgInRlZSBpbml0aWFsaXphdGlvbiBm YWlsZWRcbiIpOw0KPj4gKw0KPj4gKyAgICAgICByZXR1cm4gcmV0Ow0KPj4gK30NCj4+ICsNCj4+ ICt2b2lkIHRlZV9kZXZfZGVzdHJveShzdHJ1Y3QgcHNwX2RldmljZSAqcHNwKQ0KPj4gK3sNCj4+ ICsgICAgICAgc3RydWN0IHBzcF90ZWVfZGV2aWNlICp0ZWUgPSBwc3AtPnRlZV9kYXRhOw0KPj4g Kw0KPj4gKyAgICAgICBpZiAoIXRlZSkNCj4+ICsgICAgICAgICAgICAgICByZXR1cm47DQo+PiAr DQo+PiArICAgICAgIHRlZV9kZXN0cm95X3JpbmcodGVlKTsNCj4+ICt9DQo+PiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9jcnlwdG8vY2NwL3RlZS1kZXYuaCBiL2RyaXZlcnMvY3J5cHRvL2NjcC90ZWUt ZGV2LmgNCj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+PiBpbmRleCAwMDAwMDAwLi4wZDUxYTBh Nw0KPj4gLS0tIC9kZXYvbnVsbA0KPj4gKysrIGIvZHJpdmVycy9jcnlwdG8vY2NwL3RlZS1kZXYu aA0KPj4gQEAgLTAsMCArMSwxMDggQEANCj4+ICsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjog TUlUICovDQo+PiArLyoNCj4+ICsgKiBDb3B5cmlnaHQgMjAxOSBBZHZhbmNlZCBNaWNybyBEZXZp Y2VzLCBJbmMuDQo+PiArICoNCj4+ICsgKiBBdXRob3I6IFJpam8gVGhvbWFzIDxSaWpvLWpvaG4u VGhvbWFzQGFtZC5jb20+DQo+PiArICoNCj4+ICsgKi8NCj4+ICsNCj4+ICsvKiBUaGlzIGZpbGUg ZGVzY3JpYmVzIHRoZSBURUUgY29tbXVuaWNhdGlvbiBpbnRlcmZhY2UgYmV0d2VlbiBob3N0IGFu ZCBBTUQNCj4+ICsgKiBTZWN1cmUgUHJvY2Vzc29yDQo+PiArICovDQo+PiArDQo+PiArI2lmbmRl ZiBfX1RFRV9ERVZfSF9fDQo+PiArI2RlZmluZSBfX1RFRV9ERVZfSF9fDQo+PiArDQo+PiArI2lu Y2x1ZGUgPGxpbnV4L2RldmljZS5oPg0KPj4gKyNpbmNsdWRlIDxsaW51eC9tdXRleC5oPg0KPj4g Kw0KPj4gKyNkZWZpbmUgVEVFX0RFRkFVTFRfVElNRU9VVCAgICAgICAgICAgIDEwDQo+PiArI2Rl ZmluZSBNQVhfQlVGRkVSX1NJWkUgICAgICAgICAgICAgICAgICAgICAgICA5OTINCj4+ICsNCj4+ ICsvKioNCj4+ICsgKiBlbnVtIHRlZV9yaW5nX2NtZF9pZCAtIFRFRSBpbnRlcmZhY2UgY29tbWFu ZHMgZm9yIHJpbmcgYnVmZmVyIGNvbmZpZ3VyYXRpb24NCj4+ICsgKiBAVEVFX1JJTkdfSU5JVF9D TUQ6ICAgICAgICAgSW5pdGlhbGl6ZSByaW5nIGJ1ZmZlcg0KPj4gKyAqIEBURUVfUklOR19ERVNU Uk9ZX0NNRDogICAgICBEZXN0cm95IHJpbmcgYnVmZmVyDQo+PiArICogQFRFRV9SSU5HX01BWF9D TUQ6ICAgICAgICAgIE1heGltdW0gY29tbWFuZCBpZA0KPj4gKyAqLw0KPj4gK2VudW0gdGVlX3Jp bmdfY21kX2lkIHsNCj4+ICsgICAgICAgVEVFX1JJTkdfSU5JVF9DTUQgICAgICAgICAgICAgICA9 IDB4MDAwMTAwMDAsDQo+PiArICAgICAgIFRFRV9SSU5HX0RFU1RST1lfQ01EICAgICAgICAgICAg PSAweDAwMDIwMDAwLA0KPj4gKyAgICAgICBURUVfUklOR19NQVhfQ01EICAgICAgICAgICAgICAg ID0gMHgwMDBGMDAwMCwNCj4+ICt9Ow0KPj4gKw0KPj4gKy8qKg0KPj4gKyAqIHN0cnVjdCB0ZWVf aW5pdF9yaW5nX2NtZCAtIENvbW1hbmQgdG8gaW5pdCBURUUgcmluZyBidWZmZXINCj4+ICsgKiBA bG93X2FkZHI6ICBiaXRzIFszMTowXSBvZiB0aGUgcGh5c2ljYWwgYWRkcmVzcyBvZiByaW5nIGJ1 ZmZlcg0KPj4gKyAqIEBoaV9hZGRyOiAgIGJpdHMgWzYzOjMyXSBvZiB0aGUgcGh5c2ljYWwgYWRk cmVzcyBvZiByaW5nIGJ1ZmZlcg0KPj4gKyAqIEBzaXplOiAgICAgIHNpemUgb2YgcmluZyBidWZm ZXIgaW4gYnl0ZXMNCj4+ICsgKi8NCj4+ICtzdHJ1Y3QgdGVlX2luaXRfcmluZ19jbWQgew0KPj4g KyAgICAgICB1MzIgbG93X2FkZHI7DQo+PiArICAgICAgIHUzMiBoaV9hZGRyOw0KPj4gKyAgICAg ICB1MzIgc2l6ZTsNCj4+ICt9Ow0KPj4gKw0KPj4gKyNkZWZpbmUgTUFYX1JJTkdfQlVGRkVSX0VO VFJJRVMgICAgICAgICAgICAgICAgMzINCj4+ICsNCj4+ICsvKioNCj4+ICsgKiBzdHJ1Y3Qgcmlu Z19idWZfbWFuYWdlciAtIEhlbHBlciBzdHJ1Y3R1cmUgdG8gbWFuYWdlIHJpbmcgYnVmZmVyLg0K Pj4gKyAqIEByaW5nX3N0YXJ0OiAgc3RhcnRpbmcgYWRkcmVzcyBvZiByaW5nIGJ1ZmZlcg0KPj4g KyAqIEByaW5nX3NpemU6ICAgc2l6ZSBvZiByaW5nIGJ1ZmZlciBpbiBieXRlcw0KPj4gKyAqIEBy aW5nX3BhOiAgICAgcGh5c2ljYWwgYWRkcmVzcyBvZiByaW5nIGJ1ZmZlcg0KPj4gKyAqIEB3cHRy OiAgICAgICAgaW5kZXggdG8gdGhlIGxhc3Qgd3JpdHRlbiBlbnRyeSBpbiByaW5nIGJ1ZmZlcg0K Pj4gKyAqLw0KPj4gK3N0cnVjdCByaW5nX2J1Zl9tYW5hZ2VyIHsNCj4+ICsgICAgICAgdm9pZCAq cmluZ19zdGFydDsNCj4+ICsgICAgICAgdTMyIHJpbmdfc2l6ZTsNCj4+ICsgICAgICAgcGh5c19h ZGRyX3QgcmluZ19wYTsNCj4+ICsgICAgICAgdTMyIHdwdHI7DQo+PiArfTsNCj4+ICsNCj4+ICtz dHJ1Y3QgcHNwX3RlZV9kZXZpY2Ugew0KPj4gKyAgICAgICBzdHJ1Y3QgZGV2aWNlICpkZXY7DQo+ PiArICAgICAgIHN0cnVjdCBwc3BfZGV2aWNlICpwc3A7DQo+PiArICAgICAgIHZvaWQgX19pb21l bSAqaW9fcmVnczsNCj4+ICsgICAgICAgc3RydWN0IHRlZV92ZGF0YSAqdmRhdGE7DQo+PiArICAg ICAgIHN0cnVjdCByaW5nX2J1Zl9tYW5hZ2VyIHJiX21ncjsNCj4+ICt9Ow0KPj4gKw0KPj4gKy8q Kg0KPj4gKyAqIGVudW0gdGVlX2NtZF9zdGF0ZSAtIFRFRSBjb21tYW5kIHN0YXRlcyBmb3IgdGhl IHJpbmcgYnVmZmVyIGludGVyZmFjZQ0KPj4gKyAqIEBURUVfQ01EX1NUQVRFX0lOSVQ6ICAgICAg aW5pdGlhbCBzdGF0ZSBvZiBjb21tYW5kIHdoZW4gc2VudCBmcm9tIGhvc3QNCj4+ICsgKiBAVEVF X0NNRF9TVEFURV9QUk9DRVNTOiAgIGNvbW1hbmQgYmVpbmcgcHJvY2Vzc2VkIGJ5IFRFRSBlbnZp cm9ubWVudA0KPj4gKyAqIEBURUVfQ01EX1NUQVRFX0NPTVBMRVRFRDogY29tbWFuZCBwcm9jZXNz aW5nIGNvbXBsZXRlZA0KPj4gKyAqLw0KPj4gK2VudW0gdGVlX2NtZF9zdGF0ZSB7DQo+PiArICAg ICAgIFRFRV9DTURfU1RBVEVfSU5JVCwNCj4+ICsgICAgICAgVEVFX0NNRF9TVEFURV9QUk9DRVNT LA0KPj4gKyAgICAgICBURUVfQ01EX1NUQVRFX0NPTVBMRVRFRCwNCj4+ICt9Ow0KPj4gKw0KPj4g Ky8qKg0KPj4gKyAqIHN0cnVjdCB0ZWVfcmluZ19jbWQgLSBTdHJ1Y3R1cmUgb2YgdGhlIGNvbW1h bmQgYnVmZmVyIGluIFRFRSByaW5nDQo+PiArICogQGNtZF9pZDogICAgICByZWZlcnMgdG8gJmVu dW0gdGVlX2NtZF9pZC4gQ29tbWFuZCBpZCBmb3IgdGhlIHJpbmcgYnVmZmVyDQo+PiArICogICAg ICAgICAgICAgICBpbnRlcmZhY2UNCj4+ICsgKiBAY21kX3N0YXRlOiAgIHJlZmVycyB0byAmZW51 bSB0ZWVfY21kX3N0YXRlDQo+PiArICogQHN0YXR1czogICAgICBzdGF0dXMgb2YgVEVFIGNvbW1h bmQgZXhlY3V0aW9uDQo+PiArICogQHJlczA6ICAgICAgICByZXNlcnZlZCByZWdpb24NCj4+ICsg KiBAcGRhdGE6ICAgICAgIHByaXZhdGUgZGF0YSAoY3VycmVudGx5IHVudXNlZCkNCj4+ICsgKiBA cmVzMTogICAgICAgIHJlc2VydmVkIHJlZ2lvbg0KPj4gKyAqIEBidWY6ICAgICAgICAgVEVFIGNv bW1hbmQgc3BlY2lmaWMgYnVmZmVyDQo+PiArICovDQo+PiArc3RydWN0IHRlZV9yaW5nX2NtZCB7 DQo+PiArICAgICAgIHUzMiBjbWRfaWQ7DQo+PiArICAgICAgIHUzMiBjbWRfc3RhdGU7DQo+PiAr ICAgICAgIHUzMiBzdGF0dXM7DQo+PiArICAgICAgIHUzMiByZXMwWzFdOw0KPj4gKyAgICAgICB1 NjQgcGRhdGE7DQo+PiArICAgICAgIHUzMiByZXMxWzJdOw0KPj4gKyAgICAgICB1OCBidWZbTUFY X0JVRkZFUl9TSVpFXTsNCj4+ICsNCj4+ICsgICAgICAgLyogVG90YWwgc2l6ZTogMTAyNCBieXRl cyAqLw0KPj4gK30gX19wYWNrZWQ7DQo+PiArDQo+PiAraW50IHRlZV9kZXZfaW5pdChzdHJ1Y3Qg cHNwX2RldmljZSAqcHNwKTsNCj4+ICt2b2lkIHRlZV9kZXZfZGVzdHJveShzdHJ1Y3QgcHNwX2Rl dmljZSAqcHNwKTsNCj4+ICsNCj4+ICsjZW5kaWYgLyogX19URUVfREVWX0hfXyAqLw0KPj4gLS0N Cj4+IDEuOS4xDQo+Pg0K