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.5 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, 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 5960DC55189 for ; Wed, 22 Apr 2020 12:20:29 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 164B72098B for ; Wed, 22 Apr 2020 12:20:28 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=amdcloud.onmicrosoft.com header.i=@amdcloud.onmicrosoft.com header.b="wXq5KxNJ" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 164B72098B Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=amd.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=amd-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id A40FF8970B; Wed, 22 Apr 2020 12:20:28 +0000 (UTC) Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2079.outbound.protection.outlook.com [40.107.223.79]) by gabe.freedesktop.org (Postfix) with ESMTPS id AD9D38970B for ; Wed, 22 Apr 2020 12:20:26 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=K740+rdzMQXHh2DTtVdaFjLguELLahgHTEno5guAKMbOS/ArDLDn71xpnNTPg02mWuWLfrIsHr9aTAloVa7AUcz//scZt53vlmh43r6XHQFDHUGi7D2JkN9QAry3gO6JuddD0bGQNP9PwxCSwuO9B5vLzDo/NsHfjownrMxE0MFUdXKBhpjq07xNM9ECspRbKvlDujKosZQjheEiKle/mxH5Pv1/8zzEBdJ37LJ4EapEeP9gvDHgklA5XO7vnrAZa3kmm9HT6M2cQB9sTNf8hANKR3s6tpUkHHL3DFkwVBN0DpeujcbVMjHCOMOXkgcCdrcV+u4r6tb/JCqovpp3MQ== 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=1H7O4u57BfEJNVHsBesSYoZV1qYZSPwTM3wAJ8DNuZ0=; b=AtuezoC3q+BK4kCLVp0sldWVLZ6raxm4D6i0ElPg5G0nLcDh5vFO6V3+mOHVg8JyQiuy7k7/AHomNrJBfz9gV6liuvZOE/FletXmFtRzhzppforIkj6VUpFOkQhl0argk8dBsUG2ZYy4BuFdt4Ot1nnqBr5cp0UDuwZMRA+l8uHLvkZMY9sDGxvjNys/mwZkOiqzFE/qAL0nlsgHuDE84TKOVbOe93/1T6sJfKAKlOINfeXygqobuqWzUT+CRsNvbDnqRkYNZeoSiqkS+DbXcPBbrGG7xIGu3K6RnLZntZshFi87NaxSErhWzIMG+FSee2/3cFiFJCKiRXKhx9p/JA== 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=1H7O4u57BfEJNVHsBesSYoZV1qYZSPwTM3wAJ8DNuZ0=; b=wXq5KxNJ7NpMJQRZydH3XUmApAnM1dElEWlGutJ0KCIrhcElCyQ5lTWLCxGjNhcWli+DvNVHXXsFCiOoQ1PJ7q/vlgJNTFiJ92fGZHxdTECxHG78gxBlgT9MmFdscjfTR/f2kY3pY4NoBd3TaBL6YwiVKXFZ6qP0XJUzz6rS5Qg= Received: from MN2PR12MB3039.namprd12.prod.outlook.com (2603:10b6:208:c9::27) by MN2PR12MB3792.namprd12.prod.outlook.com (2603:10b6:208:16e::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2921.28; Wed, 22 Apr 2020 12:20:24 +0000 Received: from MN2PR12MB3039.namprd12.prod.outlook.com ([fe80::58b5:b730:f260:a425]) by MN2PR12MB3039.namprd12.prod.outlook.com ([fe80::58b5:b730:f260:a425%7]) with mapi id 15.20.2937.012; Wed, 22 Apr 2020 12:20:23 +0000 From: "Tao, Yintian" To: "Koenig, Christian" , "Liu, Monk" , "Kuehling, Felix" Subject: RE: [PATCH] drm/amdgpu: refine kiq access register Thread-Topic: [PATCH] drm/amdgpu: refine kiq access register Thread-Index: AQHWGIiBGlhrXQfyjkyC8V02cibSS6iE+hEAgAAE0xCAAApqAIAAAdiA Date: Wed, 22 Apr 2020 12:20:23 +0000 Message-ID: References: <20200422092908.27434-1-yttao@amd.com> <27ab6479-5cee-60e2-aeea-cb2a156b508b@amd.com> In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=Yintian.Tao@amd.com; x-originating-ip: [180.167.199.189] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: e49068fd-7a83-46ad-0343-08d7e6b78857 x-ms-traffictypediagnostic: MN2PR12MB3792:|MN2PR12MB3792: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6790; x-forefront-prvs: 03818C953D x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR12MB3039.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(10009020)(4636009)(346002)(136003)(396003)(376002)(39860400002)(366004)(2906002)(4326008)(186003)(66556008)(33656002)(6506007)(66446008)(53546011)(64756008)(26005)(5660300002)(6636002)(52536014)(55016002)(66946007)(76116006)(316002)(7696005)(8936002)(71200400001)(110136005)(81156014)(86362001)(30864003)(478600001)(8676002)(66476007)(9686003)(559001)(579004); DIR:OUT; SFP:1101; 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: DgzFPXv+m+EgWG+/IOvULL+Vq0d4B5WBwDgq4jMtQRarQMoPaSBgdNgb/mpItLU2kEMeilFgjLkXzBcVlKvi0PuMO58s1fOYIghn6EsTih/fmjVvA/cnji8P11rIE5TvrE8oa+p7+wdahC1yXRk8caFtMRPkMeELd9sPKCKzmg1eEfSNhvTMgtJl9GYOgaRWyBPYEHReuRybjtAWStU05wuhlP4j11ZLxOiYFkPOOwVICDnT5vYCq+0G8DglMqgV5JGDn53GCY0cLe96faz7iOO/YzVtUBU9FgauM1gSafAOOUjwY+Y/Q56aHDI5UCNMsCr3z3wyYXsyV9s2R5tMj46uPv5FMWWKUlXPuN0DyZVcRIfhlvHTiR5uUKMhyToqYFndnPRDPhD+S3novY/nC+hd3+Z1aBYeEr+wSP4bumfxXQ9TlP4TTaWHVclywveU x-ms-exchange-antispam-messagedata: oYHto5QzwI47IxK5LWL4bSTh1pwxQfFw5SW+gfHY2KnZYBgZCGNL/ZJB3HWHNS0AJad2nQVHe2ptQYrCFCvSlRVOsB6C+w2v9QGdUN5+MFmX9JHp1va+e6SD+ZBsGcJ7lk5BWSN6q1Ly5yV8xfEqWA== MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: e49068fd-7a83-46ad-0343-08d7e6b78857 X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Apr 2020 12:20:23.5372 (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: jOF6OJ1sjv/fl50X7c36NNX/VBdy/tXsIeryVvBwSOzgTNjyfpVWiUPsL7z6XlnB X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB3792 X-BeenThere: amd-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "amd-gfx@lists.freedesktop.org" Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: amd-gfx-bounces@lists.freedesktop.org Sender: "amd-gfx" SGkgIENocmlzdGlhbg0KDQoNClBsZWFzZSBzZWUgaW5saW5lIGNvbW1ldG5zLg0KLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IEtvZW5pZywgQ2hyaXN0aWFuIDxDaHJpc3RpYW4uS29l bmlnQGFtZC5jb20+IA0KU2VudDogMjAyMOW5tDTmnIgyMuaXpSAxOTo1Nw0KVG86IFRhbywgWWlu dGlhbiA8WWludGlhbi5UYW9AYW1kLmNvbT47IExpdSwgTW9uayA8TW9uay5MaXVAYW1kLmNvbT47 IEt1ZWhsaW5nLCBGZWxpeCA8RmVsaXguS3VlaGxpbmdAYW1kLmNvbT4NCkNjOiBhbWQtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZw0KU3ViamVjdDogUmU6IFtQQVRDSF0gZHJtL2FtZGdwdTogcmVm aW5lIGtpcSBhY2Nlc3MgcmVnaXN0ZXINCg0KQW0gMjIuMDQuMjAgdW0gMTM6NDkgc2NocmllYiBU YW8sIFlpbnRpYW46DQo+IEhpICBDaHJpc3RpYW4NCj4NCj4NCj4gQ2FuIHlvdSBoZWxwIGFuc3dl ciB0aGUgcXVlc3Rpb25zIGJlbG93PyBUaGFua3MgaW4gYWR2YW5jZS4NCj4gLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogS29lbmlnLCBDaHJpc3RpYW4gPENocmlzdGlhbi5Lb2Vu aWdAYW1kLmNvbT4NCj4gU2VudDogMjAyMOW5tDTmnIgyMuaXpSAxOTowMw0KPiBUbzogVGFvLCBZ aW50aWFuIDxZaW50aWFuLlRhb0BhbWQuY29tPjsgTGl1LCBNb25rIDxNb25rLkxpdUBhbWQuY29t PjsgDQo+IEt1ZWhsaW5nLCBGZWxpeCA8RmVsaXguS3VlaGxpbmdAYW1kLmNvbT4NCj4gQ2M6IGFt ZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnDQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0hdIGRybS9h bWRncHU6IHJlZmluZSBraXEgYWNjZXNzIHJlZ2lzdGVyDQo+DQo+IEFtIDIyLjA0LjIwIHVtIDEx OjI5IHNjaHJpZWIgWWludGlhbiBUYW86DQo+PiBBY2NvcmRpbmcgdG8gdGhlIGN1cnJlbnQga2lx IGFjY2VzcyByZWdpc3RlciBtZXRob2QsIHRoZXJlIHdpbGwgYmUgDQo+PiByYWNlIGNvbmRpdGlv biB3aGVuIHVzaW5nIEtJUSB0byByZWFkIHJlZ2lzdGVyIGlmIG11bHRpcGxlIGNsaWVudHMgDQo+ PiB3YW50IHRvIHJlYWQgYXQgc2FtZSB0aW1lIGp1c3QgbGlrZSB0aGUgZXhwYW1wbGUgYmVsb3c6 DQo+PiAxLiBjbGllbnQtQSBzdGFydCB0byByZWFkIFJFRy0wIHRocm9ndWggS0lRIDIuIGNsaWVu dC1BIHBvbGwgdGhlDQo+PiBzZXFuby0wIDMuIGNsaWVudC1CIHN0YXJ0IHRvIHJlYWQgUkVHLTEg dGhyb3VnaCBLSVEgNC4gY2xpZW50LUIgcG9sbCANCj4+IHRoZSBzZXFuby0xIDUuIHRoZSBraXEg Y29tcGxldGUgdGhlc2UgdHdvIHJlYWQgb3BlcmF0aW9uIDYuIGNsaWVudC1BIA0KPj4gdG8gcmVh ZCB0aGUgcmVnaXN0ZXIgYXQgdGhlIHdiIGJ1ZmZlciBhbmQNCj4+ICAgICAgZ2V0IFJFRy0xIHZh bHVlDQo+Pg0KPj4gQW5kIGlmIHRoZXJlIGFyZSBtdWx0aXBsZSBjbGllbnRzIHRvIGZyZXF1ZW50 bHkgd3JpdGUgcmVnaXN0ZXJzIA0KPj4gdGhyb3VnaCBLSVEgd2hpY2ggbWF5IHJhaXNlIHRoZSBL SVEgcmluZyBidWZmZXIgb3ZlcndyaXR0ZW4gcHJvYmxlbS4NCj4+DQo+PiBUaGVyZWZvcmUsIGFs bG9jYXRlIGZpeGVkIG51bWJlciB3YiBzbG90IGZvciBycmVnIHVzZSBhbmQgbGltaXQgdGhlIA0K Pj4gc3VibWl0IG51bWJlciB3aGljaCBkZXBlbmRzIG9uIHRoZSBraXEgcmluZ19zaXplIGluIG9y ZGVyIHRvIHByZXZlbnQgDQo+PiB0aGUgb3ZlcndyaXR0ZW4gcHJvYmxlbS4NCj4+DQo+PiB2Mjog ZGlyZWN0bHkgdXNlIGFtZGdwdV9kZXZpY2Vfd2JfZ2V0KCkgZm9yIGVhY2ggcmVhZCBpbnN0ZWFk DQo+PiAgICAgICBvZiB0byByZXNlcnZlIGZpeGRlIG51bWJlciBzbG90Lg0KPj4gICAgICAgaWYg dGhlcmUgaXMgbm8gZW5vdWdoIGtpcSByaW5nIGJ1ZmZlciBvciBycmVnIHNsb3QgdGhlbg0KPj4g ICAgICAgZGlyZWN0bHkgcHJpbnQgZXJyb3IgbG9nIGFuZCByZXR1cm4gaW5zdGVhZCBvZiBidXN5 IHdhaXRpbmcNCj4gSSB3b3VsZCBzcGxpdCB0aGF0IGludG8gdGhyZWUgcGF0Y2hlcy4gT25lIGZv ciBlYWNoIHByb2JsZW0gd2UgaGF2ZSBoZXJlOg0KPg0KPiAxLiBGaXgga2dkX2hpcV9tcWRfbG9h ZCgpIGFuZCBtYXliZSBvdGhlciBvY2Nhc2lvbnMgdG8gdXNlIHNwaW5fbG9ja19pcnFzYXZlKCku DQo+IFt5dHRhb106IERvIHlvdSBtZWFuIHRoYXQgd2UgbmVlZCB0byB1c2Ugc3Bpbl9sb2NrX2ly cXNhdmUgZm9yIHRoZSBmdW5jdGlvbnMganVzdCBsaWtlIGtnZF9oaXFfbXFkX2xvYWQoKT8NCg0K WWVzLCBJIHN0cm9uZ2x5IHRoaW5rIHNvLg0KDQpTZWUgd2hlbiB5b3UgaGF2ZSBvbmUgc3BpbiBs b2NrIHlvdSBlaXRoZXIgbmVlZCBhbHdheXMgbmVlZCB0byBsb2NrIGl0IHdpdGggaXJxcyBkaXNh YmxlZCBvciBuZXZlci4NCg0KSW4gb3RoZXIgd29yZHMgd2UgYWx3YXlzIG5lZWQgdG8gZWl0aGVy IHVzZSBzcGluX2xvY2soKSBvciBzcGluX2xvY2tfaXJxc2F2ZSgpLCBidXQgbmV2ZXIgbWl4IHRo ZW0gd2l0aCB0aGUgc2FtZSBsb2NrLg0KDQpUaGUgb25seSBleGNlcHRpb24gdG8gdGhpcyBydWxl IGlzIHdoZW4geW91IHRha2UgbXVsdGlwbGUgbG9ja3MsIGUuZy4gDQp5b3UgY2FuIGRvOg0KDQpz cGluX2xvY2tfaXJxc2F2ZSgmYSwgZmxhZ3MpOw0Kc3Bpbl9sb2NrKCZiLCBmbGFncyk7DQpzcGlu X2xvY2soJmMsIGZsYWdzKTsNCi4uLi4NCnNwaW5fdW5sb2NrX2lycXNhdmUoJmEsIGZsYWdzKTsN Cg0KSGVyZSB5b3UgZG9uJ3QgbmVlZCB0byB1c2Ugc3Bpbl9sb2NrX2lycXNhdmUgZm9yIGIgYW5k IGMuIEJ1dCB3ZSByYXJlbHkgaGF2ZSB0aGF0IGNhc2UgaW4gdGhlIGNvZGUuDQpbeXR0YW9dOiB0 aGFua3MgLCBJIGdvdCBpdC4gSSB3aWxsIHN1Ym1pdCBhbm90aGVyIHBhdGNoIGZvciBpdC4NCg0K PiAyLiBQcmV2ZW50IHRoZSBvdmVycnVuZyBvZiB0aGUgS0lRLiBQbGVhc2UgZHJvcCB0aGUgYXBw cm9hY2ggd2l0aCB0aGUgDQo+IGF0b21pYyBoZXJlLiBJbnN0ZWFkIGp1c3QgYWRkIGEgYW1kZ3B1 X2ZlbmNlX3dhaXRfcG9sbGluZygpIGludG8NCj4gYW1kZ3B1X2ZlbmNlX2VtaXRfcG9sbGluZygp IGFzIEkgZGlzY3Vzc2VkIHdpdGggTW9uay4NCj4gW3l0dGFvXTogU29ycnksIEkgY2FuJ3QgZ2V0 IHlvdXIgb3JpZ2luYWwgaWRlYSBmb3IgdGhlIGFtZGdwdV9mZW5jZV93YWl0X3BvbGxpbmcoKS4g Q2FuIHlvdSBnaXZlIG1vcmUgZGV0YWlscyBhYm91dCBpdD8gVGhhbmtzIGluIGFkdmFuY2UuDQo+ DQo+ICJUaGF0IGlzIGFjdHVhbGx5IG9ubHkgYSBwcm9ibGVtIGJlY2F1c2UgdGhlIEtJUSB1c2Vz IHBvbGxpbmcgd2FpdHMuDQo+DQo+IFNlZSBhbWRncHVfZmVuY2VfZW1pdCgpIHdhaXRzIGZvciB0 aGUgb2xkZXN0IHBvc3NpYmxlIGZlbmNlIHRvIGJlIHNpZ25hbGVkIGJlZm9yZSBlbWl0dGluZyBh IG5ldyBvbmUuDQo+DQo+IEkgc3VnZ2VzdCB0aGF0IHdlIGRvIHRoZSBzYW1lIGluIGFtZGdwdV9m ZW5jZV9lbWl0X3BvbGxpbmcoKS4gQSBvbmUgbGluZXIgbGlrZSB0aGUgZm9sbG93aW5nIHNob3Vs ZCBiZSBlbm91Z2g6DQo+DQo+IGFtZGdwdV9mZW5jZV93YWl0X3BvbGxpbmcocmluZywgc2VxIC0g cmluZy0+ZmVuY2VfZHJ2Lm51bV9mZW5jZXNfbWFzaywgdGltZW91dCk7Ig0KPiBbeXR0YW9dOiB0 aGVyZSBpcyBubyB1c2FnZSBvZiBudW1fZmVuY2VzX21hc2sgYXQga2lxIGZlbmNlIHBvbGxpbmcs IHRoZSBudW1fZmVuY2VzX21hc2sgaXMgb25seSBlZmZlY3RpdmUgYXQgZG1hX2ZlbmNlIGFyY2hp dGVjdHVyZS4NCj4gCQlJZiBJIHVuZGVyc3RhbmQgY29ycmVjdGx5LCBkbyB5b3Ugd2FudCB0aGUg cHJvdHlwZSBjb2RlIGJlbG93PyBJZiB0aGUgcHJvdHlwZSBjb2RlIGlzIHdyb25nLCBjYW4geW91 IGhlbHAgZ2l2ZSBvbmUgc2FtcGxlPyBUaGFua3MgaW4gYWR2YW5jZS4NCj4NCj4gaW50IGFtZGdw dV9mZW5jZV9lbWl0X3BvbGxpbmcoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCB1aW50MzJfdCAq cykgew0KPiAgICAgICAgICB1aW50MzJfdCBzZXE7DQo+DQo+ICAgICAgICAgIGlmICghcykNCj4g ICAgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4gKwkJYW1kZ3B1X2ZlbmNlX3dhaXRf cG9sbGluZyhyaW5nLCBzZXEsIHRpbWVvdXQpOw0KPiAgICAgICAgICBzZXEgPSArK3JpbmctPmZl bmNlX2Rydi5zeW5jX3NlcTsNCg0KWW91ciB1bmRlcnN0YW5kaW5nIHNvdW5kcyBtb3JlIG9yIGxl c3MgY29ycmVjdC4gVGhlIGNvZGUgc2hvdWxkIGxvb2sgc29tZXRoaW5nIGxpa2UgdGhpczoNCg0K c2VxID0gKytyaW5nLT5mZW5jZV9kcnYuc3luY19zZXE7DQphbWRncHVfZmVuY2Vfd2FpdF9wb2xs aW5nKHJpbmcsIHNlcSAtDQpudW1iZXJfb2ZfYWxsb3dlZF9zdWJtaXNzaW9uc190b190aGVfa2lx LCB0aW1lb3V0KTsNClt5dHRhb106IHdoZXRoZXIgd2UgbmVlZCBkaXJlY3RseSB3YWl0IGF0IHRo ZSBmaXJzdCBqdXN0IGxpa2UgYmVsb3c/IE90aGVyd2lzZSwgYW1kZ3B1X3JpbmdfZW1pdF93cmVn IG1heSBvdmVyd3JpdGUgdGhlIEtJUSByaW5nIGJ1ZmZlci4NCisJCWFtZGdwdV9mZW5jZV93YWl0 X3BvbGxpbmcocmluZywgc2VxIC0gbnVtYmVyX29mX2FsbG93ZWRfc3VibWlzc2lvbnNfdG9fdGhl X2tpcSwgdGltZW91dCk7ICAgICAgICANCgkJc3Bpbl9sb2NrX2lycXNhdmUoJmtpcS0+cmluZ19s b2NrLCBmbGFncyk7DQogICAgICAgIGFtZGdwdV9yaW5nX2FsbG9jKHJpbmcsIDMyKTsNCiAgICAg ICAgYW1kZ3B1X3JpbmdfZW1pdF93cmVnKHJpbmcsIHJlZywgdik7DQogICAgICAgIGFtZGdwdV9m ZW5jZV9lbWl0X3BvbGxpbmcocmluZywgJnNlcSk7IC8qIHdhaXQgKi8NCiAgICAgICAgYW1kZ3B1 X3JpbmdfY29tbWl0KHJpbmcpOw0KICAgICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZraXEt PnJpbmdfbG9jaywgZmxhZ3MpOw0KDQpJIGp1c3QgdXNlZCBudW1fZmVuY2VzX21hc2sgYXMgbnVt YmVyX29mX2FsbG93ZWRfc3VibWlzc2lvbnNfdG9fdGhlX2tpcQ0KYmVjYXVzZSBpdCBpcyBwcm9i YWJseSBhIGdvb2QgdmFsdWUgdG8gc3RhcnQgd2l0aC4NCg0KQnV0IHlvdSBjb3VsZCBnaXZlIHRo YXQgYXMgcGFyYW1ldGVyIGFzIHdlbGwgaWYgeW91IHRoaW5rIHRoYXQgbWFrZXMgbW9yZSBzZW5z ZS4NCg0KPiAgICAgICAgICBhbWRncHVfcmluZ19lbWl0X2ZlbmNlKHJpbmcsIHJpbmctPmZlbmNl X2Rydi5ncHVfYWRkciwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgIMKmICAgICAgc2VxLCAw KTsNCj4NCj4gICAgICAgICAgKnMgPSBzZXE7DQo+DQo+ICAgICAgICAgIHJldHVybiAwOw0KPiB9 DQo+DQo+DQo+DQo+DQo+IDMuIFVzZSBhbWRncHVfZGV2aWNlX3diX2dldCgpIGVhY2ggdGltZSB3 ZSBuZWVkIHRvIHN1Ym1pdCBhIHJlYWQuDQo+IFt5dHRhb106IHllcywgSSB3aWxsIGRvIGl0Lg0K DQpUaGFua3MsDQpDaHJpc3RpYW4uDQoNCj4NCj4gUmVnYXJkcywNCj4gQ2hyaXN0aWFuLg0KPg0K Pj4gU2lnbmVkLW9mZi1ieTogWWludGlhbiBUYW8gPHl0dGFvQGFtZC5jb20+DQo+PiAtLS0NCj4+ ICAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oICAgICAgICAgICB8ICA4ICst DQo+PiAgICAuLi4vZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9nZnhfdjEwLmMgICAgfCAx MyArKy0NCj4+ICAgIC4uLi9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9nZnhfdjku YyB8IDEzICsrLQ0KPj4gICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dmeC5j ICAgICAgIHwgODMgKysrKysrKysrKysrKysrLS0tLQ0KPj4gICAgZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X2dmeC5oICAgICAgIHwgIDMgKy0NCj4+ICAgIGRyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9yaW5nLmggICAgICB8ICA1ICstDQo+PiAgICBkcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdmlydC5jICAgICAgfCAxMyArKy0NCj4+ICAgIGRyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92MTBfMC5jICAgICAgICB8ICA4ICstDQo+PiAgICBk cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjhfMC5jICAgICAgICAgfCAgOCArLQ0KPj4g ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y5XzAuYyAgICAgICAgIHwgMzUgKysr KystLS0NCj4+ICAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192MTBfMC5jICAgICAg ICB8IDEzICsrLQ0KPj4gICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y5XzAuYyAg ICAgICAgIHwgMTMgKystDQo+PiAgICAxMiBmaWxlcyBjaGFuZ2VkLCAxNjcgaW5zZXJ0aW9ucygr KSwgNDggZGVsZXRpb25zKC0pDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdS5oDQo+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dS5oDQo+PiBpbmRleCA0ZTFkNGNmZTdhOWYuLjExNTdjMWEwYjg4OCAxMDA2NDQNCj4+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oDQo+PiArKysgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaA0KPj4gQEAgLTUyNiw3ICs1MjYsNyBAQCBzdGF0aWMg aW5saW5lIHZvaWQgYW1kZ3B1X3NldF9pYl92YWx1ZShzdHJ1Y3QgYW1kZ3B1X2NzX3BhcnNlciAq cCwNCj4+ICAgIC8qDQo+PiAgICAgKiBXcml0ZWJhY2sNCj4+ICAgICAqLw0KPj4gLSNkZWZpbmUg QU1ER1BVX01BWF9XQiAxMjgJLyogUmVzZXJ2ZSBhdCBtb3N0IDEyOCBXQiBzbG90cyBmb3IgYW1k Z3B1LW93bmVkIHJpbmdzLiAqLw0KPj4gKyNkZWZpbmUgQU1ER1BVX01BWF9XQiAyNTYJLyogUmVz ZXJ2ZSBhdCBtb3N0IDI1NiBXQiBzbG90cyBmb3IgYW1kZ3B1LW93bmVkIHJpbmdzLiAqLw0KPj4g ICAgDQo+PiAgICBzdHJ1Y3QgYW1kZ3B1X3diIHsNCj4+ICAgIAlzdHJ1Y3QgYW1kZ3B1X2JvCSp3 Yl9vYmo7DQo+PiBAQCAtMTAyOCw2ICsxMDI4LDEyIEBAIGJvb2wgYW1kZ3B1X2RldmljZV9oYXNf ZGNfc3VwcG9ydChzdHJ1Y3QNCj4+IGFtZGdwdV9kZXZpY2UgKmFkZXYpOw0KPj4gICAgDQo+PiAg ICBpbnQgZW11X3NvY19hc2ljX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOw0KPj4g ICAgDQo+PiAraW50IGFtZGdwdV9nZnhfa2lxX2xvY2soc3RydWN0IGFtZGdwdV9raXEgKmtpcSwg Ym9vbCByZWFkLA0KPj4gKwkJCXVuc2lnbmVkIGxvbmcgKmZsYWdzKTsNCj4+ICt2b2lkIGFtZGdw dV9nZnhfa2lxX3VubG9jayhzdHJ1Y3QgYW1kZ3B1X2tpcSAqa2lxLCB1bnNpZ25lZCBsb25nIA0K Pj4gKypmbGFncyk7DQo+PiArDQo+PiArdm9pZCBhbWRncHVfZ2Z4X2tpcV9jb25zdW1lKHN0cnVj dCBhbWRncHVfa2lxICpraXEsIHVpbnQzMl90ICpvZmZzKTsgDQo+PiArdm9pZCBhbWRncHVfZ2Z4 X2tpcV9yZXN0b3JlKHN0cnVjdCBhbWRncHVfa2lxICpraXEsIHVpbnQzMl90ICpvZmZzKTsNCj4+ ICAgIC8qDQo+PiAgICAgKiBSZWdpc3RlcnMgcmVhZCAmIHdyaXRlIGZ1bmN0aW9ucy4NCj4+ICAg ICAqLw0KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9h bWRrZmRfZ2Z4X3YxMC5jDQo+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9h bWRrZmRfZ2Z4X3YxMC5jDQo+PiBpbmRleCA2OTFjODk3MDViY2QuLmE2NWQ2YTFhYmMwNCAxMDA2 NDQNCj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ2Z4 X3YxMC5jDQo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2Zk X2dmeF92MTAuYw0KPj4gQEAgLTMwOSw5ICszMDksMTEgQEAgc3RhdGljIGludCBrZ2RfaGlxX21x ZF9sb2FkKHN0cnVjdCBrZ2RfZGV2ICprZ2QsIHZvaWQgKm1xZCwNCj4+ICAgIAkJCSAgICB1aW50 MzJfdCBkb29yYmVsbF9vZmYpDQo+PiAgICB7DQo+PiAgICAJc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYgPSBnZXRfYW1kZ3B1X2RldmljZShrZ2QpOw0KPj4gKwlzdHJ1Y3QgYW1kZ3B1X2tpcSAq a2lxID0gJmFkZXYtPmdmeC5raXE7DQo+PiAgICAJc3RydWN0IGFtZGdwdV9yaW5nICpraXFfcmlu ZyA9ICZhZGV2LT5nZngua2lxLnJpbmc7DQo+PiAgICAJc3RydWN0IHYxMF9jb21wdXRlX21xZCAq bTsNCj4+ICAgIAl1aW50MzJfdCBtZWMsIHBpcGU7DQo+PiArCXVuc2lnbmVkIGxvbmcgZmxhZ3Mg PSAwOw0KPj4gICAgCWludCByOw0KPj4gICAgDQo+PiAgICAJbSA9IGdldF9tcWQobXFkKTsNCj4+ IEBAIC0zMjQsMTMgKzMyNiwxOSBAQCBzdGF0aWMgaW50IGtnZF9oaXFfbXFkX2xvYWQoc3RydWN0 IGtnZF9kZXYgKmtnZCwgdm9pZCAqbXFkLA0KPj4gICAgCXByX2RlYnVnKCJrZmQ6IHNldCBISVEs IG1lYzolZCwgcGlwZTolZCwgcXVldWU6JWQuXG4iLA0KPj4gICAgCQkgbWVjLCBwaXBlLCBxdWV1 ZV9pZCk7DQo+PiAgICANCj4+IC0Jc3Bpbl9sb2NrKCZhZGV2LT5nZngua2lxLnJpbmdfbG9jayk7 DQo+PiArCXIgPSBhbWRncHVfZ2Z4X2tpcV9sb2NrKGtpcSwgZmFsc2UsICZmbGFncyk7DQo+PiAr CWlmIChyKSB7DQo+PiArCQlwcl9lcnIoImZhaWxlZCB0byBsb2NrIGtpcVxuIik7DQo+PiArCQln b3RvIG91dF91bmxvY2s7DQo+PiArCX0NCj4+ICsNCj4+ICAgIAlyID0gYW1kZ3B1X3JpbmdfYWxs b2Moa2lxX3JpbmcsIDcpOw0KPj4gICAgCWlmIChyKSB7DQo+PiAgICAJCXByX2VycigiRmFpbGVk IHRvIGFsbG9jIEtJUSAoJWQpLlxuIiwgcik7DQo+PiAgICAJCWdvdG8gb3V0X3VubG9jazsNCj4+ ICAgIAl9DQo+PiAgICANCj4+ICsJYW1kZ3B1X2dmeF9raXFfY29uc3VtZShraXEsIE5VTEwpOw0K Pj4gICAgCWFtZGdwdV9yaW5nX3dyaXRlKGtpcV9yaW5nLCBQQUNLRVQzKFBBQ0tFVDNfTUFQX1FV RVVFUywgNSkpOw0KPj4gICAgCWFtZGdwdV9yaW5nX3dyaXRlKGtpcV9yaW5nLA0KPj4gICAgCQkJ ICBQQUNLRVQzX01BUF9RVUVVRVNfUVVFVUVfU0VMKDApIHwgLyogUXVldWVfU2VsICovIEBAIC0z NTAsOA0KPj4gKzM1OCw5IEBAIHN0YXRpYyBpbnQga2dkX2hpcV9tcWRfbG9hZChzdHJ1Y3Qga2dk X2RldiAqa2dkLCB2b2lkICptcWQsDQo+PiAgICAJYW1kZ3B1X3Jpbmdfd3JpdGUoa2lxX3Jpbmcs IG0tPmNwX2hxZF9wcV93cHRyX3BvbGxfYWRkcl9oaSk7DQo+PiAgICAJYW1kZ3B1X3JpbmdfY29t bWl0KGtpcV9yaW5nKTsNCj4+ICAgIA0KPj4gKwlhbWRncHVfZ2Z4X2tpcV9yZXN0b3JlKGtpcSwg TlVMTCk7DQo+PiAgICBvdXRfdW5sb2NrOg0KPj4gLQlzcGluX3VubG9jaygmYWRldi0+Z2Z4Lmtp cS5yaW5nX2xvY2spOw0KPj4gKwlhbWRncHVfZ2Z4X2tpcV91bmxvY2soJmFkZXYtPmdmeC5raXEs ICZmbGFncyk7DQo+PiAgICAJcmVsZWFzZV9xdWV1ZShrZ2QpOw0KPj4gICAgDQo+PiAgICAJcmV0 dXJuIHI7DQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X2FtZGtmZF9nZnhfdjkuYw0KPj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf YW1ka2ZkX2dmeF92OS5jDQo+PiBpbmRleCBkZjg0MWMyYWM1ZTcuLjQ0MzViZDcxNmVkZCAxMDA2 NDQNCj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ2Z4 X3Y5LmMNCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRf Z2Z4X3Y5LmMNCj4+IEBAIC0zMDcsOSArMzA3LDExIEBAIGludCBrZ2RfZ2Z4X3Y5X2hpcV9tcWRf bG9hZChzdHJ1Y3Qga2dkX2RldiAqa2dkLCB2b2lkICptcWQsDQo+PiAgICAJCQkgICAgdWludDMy X3QgZG9vcmJlbGxfb2ZmKQ0KPj4gICAgew0KPj4gICAgCXN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2ID0gZ2V0X2FtZGdwdV9kZXZpY2Uoa2dkKTsNCj4+ICsJc3RydWN0IGFtZGdwdV9raXEgKmtp cSA9ICZhZGV2LT5nZngua2lxOw0KPj4gICAgCXN0cnVjdCBhbWRncHVfcmluZyAqa2lxX3Jpbmcg PSAmYWRldi0+Z2Z4LmtpcS5yaW5nOw0KPj4gICAgCXN0cnVjdCB2OV9tcWQgKm07DQo+PiAgICAJ dWludDMyX3QgbWVjLCBwaXBlOw0KPj4gKwl1bnNpZ25lZCBsb25nIGZsYWdzID0gMDsNCj4+ICAg IAlpbnQgcjsNCj4+ICAgIA0KPj4gICAgCW0gPSBnZXRfbXFkKG1xZCk7DQo+PiBAQCAtMzIyLDEz ICszMjQsMTkgQEAgaW50IGtnZF9nZnhfdjlfaGlxX21xZF9sb2FkKHN0cnVjdCBrZ2RfZGV2ICpr Z2QsIHZvaWQgKm1xZCwNCj4+ICAgIAlwcl9kZWJ1Zygia2ZkOiBzZXQgSElRLCBtZWM6JWQsIHBp cGU6JWQsIHF1ZXVlOiVkLlxuIiwNCj4+ICAgIAkJIG1lYywgcGlwZSwgcXVldWVfaWQpOw0KPj4g ICAgDQo+PiAtCXNwaW5fbG9jaygmYWRldi0+Z2Z4LmtpcS5yaW5nX2xvY2spOw0KPj4gKwlyID0g YW1kZ3B1X2dmeF9raXFfbG9jayhraXEsIGZhbHNlLCAmZmxhZ3MpOw0KPj4gKwlpZiAocikgew0K Pj4gKwkJcHJfZXJyKCJmYWlsZWQgdG8gbG9jayBraXFcbiIpOw0KPj4gKwkJZ290byBvdXRfdW5s b2NrOw0KPj4gKwl9DQo+PiArDQo+PiAgICAJciA9IGFtZGdwdV9yaW5nX2FsbG9jKGtpcV9yaW5n LCA3KTsNCj4+ICAgIAlpZiAocikgew0KPj4gICAgCQlwcl9lcnIoIkZhaWxlZCB0byBhbGxvYyBL SVEgKCVkKS5cbiIsIHIpOw0KPj4gICAgCQlnb3RvIG91dF91bmxvY2s7DQo+PiAgICAJfQ0KPj4g ICAgDQo+PiArCWFtZGdwdV9nZnhfa2lxX2NvbnN1bWUoa2lxLCBOVUxMKTsNCj4+ICAgIAlhbWRn cHVfcmluZ193cml0ZShraXFfcmluZywgUEFDS0VUMyhQQUNLRVQzX01BUF9RVUVVRVMsIDUpKTsN Cj4+ICAgIAlhbWRncHVfcmluZ193cml0ZShraXFfcmluZywNCj4+ICAgIAkJCSAgUEFDS0VUM19N QVBfUVVFVUVTX1FVRVVFX1NFTCgwKSB8IC8qIFF1ZXVlX1NlbCAqLyBAQCAtMzQ4LDgNCj4+ICsz NTYsOSBAQCBpbnQga2dkX2dmeF92OV9oaXFfbXFkX2xvYWQoc3RydWN0IGtnZF9kZXYgKmtnZCwg dm9pZCAqbXFkLA0KPj4gICAgCWFtZGdwdV9yaW5nX3dyaXRlKGtpcV9yaW5nLCBtLT5jcF9ocWRf cHFfd3B0cl9wb2xsX2FkZHJfaGkpOw0KPj4gICAgCWFtZGdwdV9yaW5nX2NvbW1pdChraXFfcmlu Zyk7DQo+PiAgICANCj4+ICsJYW1kZ3B1X2dmeF9raXFfcmVzdG9yZShraXEsIE5VTEwpOw0KPj4g ICAgb3V0X3VubG9jazoNCj4+IC0Jc3Bpbl91bmxvY2soJmFkZXYtPmdmeC5raXEucmluZ19sb2Nr KTsNCj4+ICsJYW1kZ3B1X2dmeF9raXFfdW5sb2NrKCZhZGV2LT5nZngua2lxLCAmZmxhZ3MpOw0K Pj4gICAgCXJlbGVhc2VfcXVldWUoa2dkKTsNCj4+ICAgIA0KPj4gICAgCXJldHVybiByOw0KPj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nZnguYw0KPj4g Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ2Z4LmMNCj4+IGluZGV4IGVhNTc2 YjQyNjBhNC4uYzBkYzdmMTg0OWM0IDEwMDY0NA0KPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X2dmeC5jDQo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfZ2Z4LmMNCj4+IEBAIC0yOTUsNiArMjk1LDQzIEBAIHN0YXRpYyBpbnQgYW1kZ3B1 X2dmeF9raXFfYWNxdWlyZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwNCj4+ICAgIAlyZXR1 cm4gLUVJTlZBTDsNCj4+ICAgIH0NCj4+ICAgIA0KPj4gK2ludCBhbWRncHVfZ2Z4X2tpcV9sb2Nr KHN0cnVjdCBhbWRncHVfa2lxICpraXEsIGJvb2wgcmVhZCwNCj4+ICsJCQl1bnNpZ25lZCBsb25n ICpmbGFncykNCj4+ICt7DQo+PiArCXN0cnVjdCBhbWRncHVfd2IgKndiID0gJihraXEtPnJpbmcu YWRldiktPndiOw0KPj4gKw0KPj4gKwlzcGluX2xvY2tfaXJxc2F2ZSgma2lxLT5yaW5nX2xvY2ss ICpmbGFncyk7DQo+PiArCWlmICgoYXRvbWljNjRfcmVhZCgma2lxLT5zdWJtaXRfYXZhaWwpID4g MCkgJiYNCj4+ICsJICAgIChyZWFkID8gZmluZF9maXJzdF96ZXJvX2JpdCh3Yi0+dXNlZCwgd2It Pm51bV93YikgPA0KPj4gKwkgICAgIHdiLT5udW1fd2IgOiAxKSkgew0KPj4gKwkJcmV0dXJuIDA7 DQo+PiArCX0gZWxzZSB7DQo+PiArCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZraXEtPnJpbmdf bG9jaywgKmZsYWdzKTsNCj4+ICsJCXByX2VycigiY3JpdGljYWwhIHRvbyBtb3JlIGtpcSBhY2Nl c3NlcnNcbiIpOw0KPj4gKwkJcmV0dXJuIC1FREVBRExLOw0KPj4gKwl9DQo+PiArfQ0KPj4gKw0K Pj4gK3ZvaWQgYW1kZ3B1X2dmeF9raXFfdW5sb2NrKHN0cnVjdCBhbWRncHVfa2lxICpraXEsIHVu c2lnbmVkIGxvbmcNCj4+ICsqZmxhZ3MpIHsNCj4+ICsJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgm a2lxLT5yaW5nX2xvY2ssICpmbGFncyk7IH0NCj4+ICsNCj4+ICt2b2lkIGFtZGdwdV9nZnhfa2lx X2NvbnN1bWUoc3RydWN0IGFtZGdwdV9raXEgKmtpcSwgdWludDMyX3QgKm9mZnMpIHsNCj4+ICsJ YXRvbWljNjRfZGVjKCZraXEtPnN1Ym1pdF9hdmFpbCk7DQo+PiArCWlmIChvZmZzKQ0KPj4gKwkJ YW1kZ3B1X2RldmljZV93Yl9nZXQoa2lxLT5yaW5nLmFkZXYsIG9mZnMpOw0KPj4gKw0KPj4gK30N Cj4+ICsNCj4+ICt2b2lkIGFtZGdwdV9nZnhfa2lxX3Jlc3RvcmUoc3RydWN0IGFtZGdwdV9raXEg KmtpcSwgdWludDMyX3QgKm9mZnMpIHsNCj4+ICsJYXRvbWljNjRfaW5jKCZraXEtPnN1Ym1pdF9h dmFpbCk7DQo+PiArCWlmIChvZmZzKQ0KPj4gKwkJYW1kZ3B1X2RldmljZV93Yl9mcmVlKGtpcS0+ cmluZy5hZGV2LCAqb2Zmcyk7IH0NCj4+ICsNCj4+ICAgIGludCBhbWRncHVfZ2Z4X2tpcV9pbml0 X3Jpbmcoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsDQo+PiAgICAJCQkgICAgIHN0cnVjdCBh bWRncHVfcmluZyAqcmluZywNCj4+ICAgIAkJCSAgICAgc3RydWN0IGFtZGdwdV9pcnFfc3JjICpp cnEpIEBAIC0zMDQsMTAgKzM0MSw2IEBAIGludCANCj4+IGFtZGdwdV9nZnhfa2lxX2luaXRfcmlu ZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwNCj4+ICAgIA0KPj4gICAgCXNwaW5fbG9ja19p bml0KCZraXEtPnJpbmdfbG9jayk7DQo+PiAgICANCj4+IC0JciA9IGFtZGdwdV9kZXZpY2Vfd2Jf Z2V0KGFkZXYsICZraXEtPnJlZ192YWxfb2Zmcyk7DQo+PiAtCWlmIChyKQ0KPj4gLQkJcmV0dXJu IHI7DQo+PiAtDQo+PiAgICAJcmluZy0+YWRldiA9IE5VTEw7DQo+PiAgICAJcmluZy0+cmluZ19v YmogPSBOVUxMOw0KPj4gICAgCXJpbmctPnVzZV9kb29yYmVsbCA9IHRydWU7DQo+PiBAQCAtMzI1 LDEzICszNTgsMTUgQEAgaW50IGFtZGdwdV9nZnhfa2lxX2luaXRfcmluZyhzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldiwNCj4+ICAgIAkJCSAgICAgQU1ER1BVX1JJTkdfUFJJT19ERUZBVUxUKTsN Cj4+ICAgIAlpZiAocikNCj4+ICAgIAkJZGV2X3dhcm4oYWRldi0+ZGV2LCAiKCVkKSBmYWlsZWQg dG8gaW5pdCBraXEgcmluZ1xuIiwgcik7DQo+PiArCWVsc2UNCj4+ICsJCWF0b21pYzY0X3NldCgm a2lxLT5zdWJtaXRfYXZhaWwsIHJpbmctPnJpbmdfc2l6ZSAvIDQgLw0KPj4gKwkJCSAgICAgKHJp bmctPmZ1bmNzLT5hbGlnbl9tYXNrICsgMSkpOw0KPj4gICAgDQo+PiAgICAJcmV0dXJuIHI7DQo+ PiAgICB9DQo+PiAgICANCj4+ICAgIHZvaWQgYW1kZ3B1X2dmeF9raXFfZnJlZV9yaW5nKHN0cnVj dCBhbWRncHVfcmluZyAqcmluZykNCj4+ICAgIHsNCj4+IC0JYW1kZ3B1X2RldmljZV93Yl9mcmVl KHJpbmctPmFkZXYsIHJpbmctPmFkZXYtPmdmeC5raXEucmVnX3ZhbF9vZmZzKTsNCj4+ICAgIAlh bWRncHVfcmluZ19maW5pKHJpbmcpOw0KPj4gICAgfQ0KPj4gICAgDQo+PiBAQCAtNjcxLDE5ICs3 MDYsMjUgQEAgaW50IGFtZGdwdV9nZnhfY3BfZWNjX2Vycm9yX2lycShzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldiwNCj4+ICAgIHVpbnQzMl90IGFtZGdwdV9raXFfcnJlZyhzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldiwgdWludDMyX3QgcmVnKQ0KPj4gICAgew0KPj4gICAgCXNpZ25lZCBsb25n IHIsIGNudCA9IDA7DQo+PiAtCXVuc2lnbmVkIGxvbmcgZmxhZ3M7DQo+PiAtCXVpbnQzMl90IHNl cTsNCj4+ICsJdW5zaWduZWQgbG9uZyBmbGFncyA9IDA7DQo+PiArCXVpbnQzMl90IHNlcSwgcmVn X3ZhbF9vZmZzID0gMCwgdmFsdWUgPSAwOw0KPj4gICAgCXN0cnVjdCBhbWRncHVfa2lxICpraXEg PSAmYWRldi0+Z2Z4LmtpcTsNCj4+ICAgIAlzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcgPSAma2lx LT5yaW5nOw0KPj4gICAgDQo+PiAgICAJQlVHX09OKCFyaW5nLT5mdW5jcy0+ZW1pdF9ycmVnKTsN Cj4+ICAgIA0KPj4gLQlzcGluX2xvY2tfaXJxc2F2ZSgma2lxLT5yaW5nX2xvY2ssIGZsYWdzKTsN Cj4+ICsJciA9IGFtZGdwdV9nZnhfa2lxX2xvY2soa2lxLCB0cnVlLCAmZmxhZ3MpOw0KPj4gKwlp ZiAocikgew0KPj4gKwkJcHJfZXJyKCJmYWlsZWQgdG8gbG9jayBraXFcbiIpOw0KPj4gKwkJZ290 byBraXFfcmVhZF9leGl0Ow0KPj4gKwl9DQo+PiArDQo+PiArCWFtZGdwdV9nZnhfa2lxX2NvbnN1 bWUoa2lxLCAmcmVnX3ZhbF9vZmZzKTsNCj4+ICAgIAlhbWRncHVfcmluZ19hbGxvYyhyaW5nLCAz Mik7DQo+PiAtCWFtZGdwdV9yaW5nX2VtaXRfcnJlZyhyaW5nLCByZWcpOw0KPj4gKwlhbWRncHVf cmluZ19lbWl0X3JyZWcocmluZywgcmVnLCByZWdfdmFsX29mZnMpOw0KPj4gICAgCWFtZGdwdV9m ZW5jZV9lbWl0X3BvbGxpbmcocmluZywgJnNlcSk7DQo+PiAgICAJYW1kZ3B1X3JpbmdfY29tbWl0 KHJpbmcpOw0KPj4gLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZraXEtPnJpbmdfbG9jaywgZmxh Z3MpOw0KPj4gKwlhbWRncHVfZ2Z4X2tpcV91bmxvY2soa2lxLCAmZmxhZ3MpOw0KPj4gICAgDQo+ PiAgICAJciA9IGFtZGdwdV9mZW5jZV93YWl0X3BvbGxpbmcocmluZywgc2VxLCBNQVhfS0lRX1JF R19XQUlUKTsNCj4+ICAgIA0KPj4gQEAgLTcwNyw5ICs3NDgsMTQgQEAgdWludDMyX3QgYW1kZ3B1 X2tpcV9ycmVnKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1aW50MzJfdCByZWcpDQo+PiAg ICAJaWYgKGNudCA+IE1BWF9LSVFfUkVHX1RSWSkNCj4+ICAgIAkJZ290byBmYWlsZWRfa2lxX3Jl YWQ7DQo+PiAgICANCj4+IC0JcmV0dXJuIGFkZXYtPndiLndiW2tpcS0+cmVnX3ZhbF9vZmZzXTsN Cj4+ICsJbWIoKTsNCj4+ICsJdmFsdWUgPSBhZGV2LT53Yi53YltyZWdfdmFsX29mZnNdOw0KPj4g KwlhbWRncHVfZ2Z4X2tpcV9yZXN0b3JlKGtpcSwgJnJlZ192YWxfb2Zmcyk7DQo+PiArCXJldHVy biB2YWx1ZTsNCj4+ICAgIA0KPj4gICAgZmFpbGVkX2tpcV9yZWFkOg0KPj4gKwlhbWRncHVfZ2Z4 X2tpcV9yZXN0b3JlKGtpcSwgJnJlZ192YWxfb2Zmcyk7DQo+PiAra2lxX3JlYWRfZXhpdDoNCj4+ ICAgIAlwcl9lcnIoImZhaWxlZCB0byByZWFkIHJlZzoleFxuIiwgcmVnKTsNCj4+ICAgIAlyZXR1 cm4gfjA7DQo+PiAgICB9DQo+PiBAQCAtNzE3LDE5ICs3NjMsMjUgQEAgdWludDMyX3QgYW1kZ3B1 X2tpcV9ycmVnKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1aW50MzJfdCByZWcpDQo+PiAg ICB2b2lkIGFtZGdwdV9raXFfd3JlZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdWludDMy X3QgcmVnLCB1aW50MzJfdCB2KQ0KPj4gICAgew0KPj4gICAgCXNpZ25lZCBsb25nIHIsIGNudCA9 IDA7DQo+PiAtCXVuc2lnbmVkIGxvbmcgZmxhZ3M7DQo+PiArCXVuc2lnbmVkIGxvbmcgZmxhZ3Mg PSAwOw0KPj4gICAgCXVpbnQzMl90IHNlcTsNCj4+ICAgIAlzdHJ1Y3QgYW1kZ3B1X2tpcSAqa2lx ID0gJmFkZXYtPmdmeC5raXE7DQo+PiAgICAJc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nID0gJmtp cS0+cmluZzsNCj4+ICAgIA0KPj4gICAgCUJVR19PTighcmluZy0+ZnVuY3MtPmVtaXRfd3JlZyk7 DQo+PiAgICANCj4+IC0Jc3Bpbl9sb2NrX2lycXNhdmUoJmtpcS0+cmluZ19sb2NrLCBmbGFncyk7 DQo+PiArCXIgPSBhbWRncHVfZ2Z4X2tpcV9sb2NrKGtpcSwgZmFsc2UsICZmbGFncyk7DQo+PiAr CWlmIChyKSB7DQo+PiArCQlwcl9lcnIoImZhaWxlZCB0byBsb2NrIGtpcVxuIik7DQo+PiArCQln b3RvIGtpcV93cml0ZV9leGl0Ow0KPj4gKwl9DQo+PiArDQo+PiArCWFtZGdwdV9nZnhfa2lxX2Nv bnN1bWUoa2lxLCBOVUxMKTsNCj4+ICAgIAlhbWRncHVfcmluZ19hbGxvYyhyaW5nLCAzMik7DQo+ PiAgICAJYW1kZ3B1X3JpbmdfZW1pdF93cmVnKHJpbmcsIHJlZywgdik7DQo+PiAgICAJYW1kZ3B1 X2ZlbmNlX2VtaXRfcG9sbGluZyhyaW5nLCAmc2VxKTsNCj4+ICAgIAlhbWRncHVfcmluZ19jb21t aXQocmluZyk7DQo+PiAtCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmtpcS0+cmluZ19sb2NrLCBm bGFncyk7DQo+PiArCWFtZGdwdV9nZnhfa2lxX3VubG9jayhraXEsICZmbGFncyk7DQo+PiAgICAN Cj4+ICAgIAlyID0gYW1kZ3B1X2ZlbmNlX3dhaXRfcG9sbGluZyhyaW5nLCBzZXEsIE1BWF9LSVFf UkVHX1dBSVQpOw0KPj4gICAgDQo+PiBAQCAtNzU0LDggKzgwNiwxMSBAQCB2b2lkIGFtZGdwdV9r aXFfd3JlZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdWludDMyX3QgcmVnLCB1aW50MzJf dCB2KQ0KPj4gICAgCWlmIChjbnQgPiBNQVhfS0lRX1JFR19UUlkpDQo+PiAgICAJCWdvdG8gZmFp bGVkX2tpcV93cml0ZTsNCj4+ICAgIA0KPj4gKwlhbWRncHVfZ2Z4X2tpcV9yZXN0b3JlKGtpcSwg TlVMTCk7DQo+PiAgICAJcmV0dXJuOw0KPj4gICAgDQo+PiAgICBmYWlsZWRfa2lxX3dyaXRlOg0K Pj4gKwlhbWRncHVfZ2Z4X2tpcV9yZXN0b3JlKGtpcSwgTlVMTCk7DQo+PiAra2lxX3dyaXRlX2V4 aXQ6DQo+PiAgICAJcHJfZXJyKCJmYWlsZWQgdG8gd3JpdGUgcmVnOiV4XG4iLCByZWcpOw0KPj4g ICAgfQ0KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9n ZnguaA0KPj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ2Z4LmgNCj4+IGlu ZGV4IDYzNDc0NjgyOTAyNC4uZmY3NTk3Y2E2Y2FkIDEwMDY0NA0KPj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dmeC5oDQo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfZ2Z4LmgNCj4+IEBAIC05Niw2ICs5Niw3IEBAIHN0cnVjdCBraXFf cG00X2Z1bmNzIHsNCj4+ICAgIAlpbnQgaW52YWxpZGF0ZV90bGJzX3NpemU7DQo+PiAgICB9Ow0K Pj4gICAgDQo+PiArI2RlZmluZSBNQVhfS0lRX1JSRUdfTlVNIDY0DQo+PiAgICBzdHJ1Y3QgYW1k Z3B1X2tpcSB7DQo+PiAgICAJdTY0CQkJZW9wX2dwdV9hZGRyOw0KPj4gICAgCXN0cnVjdCBhbWRn cHVfYm8JKmVvcF9vYmo7DQo+PiBAQCAtMTAzLDcgKzEwNCw3IEBAIHN0cnVjdCBhbWRncHVfa2lx IHsNCj4+ICAgIAlzdHJ1Y3QgYW1kZ3B1X3JpbmcJcmluZzsNCj4+ICAgIAlzdHJ1Y3QgYW1kZ3B1 X2lycV9zcmMJaXJxOw0KPj4gICAgCWNvbnN0IHN0cnVjdCBraXFfcG00X2Z1bmNzICpwbWY7DQo+ PiAtCXVpbnQzMl90CQkJcmVnX3ZhbF9vZmZzOw0KPj4gKwlhdG9taWM2NF90CQlzdWJtaXRfYXZh aWw7DQo+PiAgICB9Ow0KPj4gICAgDQo+PiAgICAvKg0KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9yaW5nLmgNCj4+IGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X3JpbmcuaA0KPj4gaW5kZXggZjYxNjY0ZWU0OTQwLi4xMzdkM2QyYjQ2 ZTggMTAwNjQ0DQo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcmlu Zy5oDQo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcmluZy5oDQo+ PiBAQCAtMTgxLDcgKzE4MSw4IEBAIHN0cnVjdCBhbWRncHVfcmluZ19mdW5jcyB7DQo+PiAgICAJ dm9pZCAoKmVuZF91c2UpKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZyk7DQo+PiAgICAJdm9pZCAo KmVtaXRfc3dpdGNoX2J1ZmZlcikgKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZyk7DQo+PiAgICAJ dm9pZCAoKmVtaXRfY250eGNudGwpIChzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHVpbnQzMl90 IGZsYWdzKTsNCj4+IC0Jdm9pZCAoKmVtaXRfcnJlZykoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5n LCB1aW50MzJfdCByZWcpOw0KPj4gKwl2b2lkICgqZW1pdF9ycmVnKShzdHJ1Y3QgYW1kZ3B1X3Jp bmcgKnJpbmcsIHVpbnQzMl90IHJlZywNCj4+ICsJCQkgIHVpbnQzMl90IHJlZ192YWxfb2Zmcyk7 DQo+PiAgICAJdm9pZCAoKmVtaXRfd3JlZykoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCB1aW50 MzJfdCByZWcsIHVpbnQzMl90IHZhbCk7DQo+PiAgICAJdm9pZCAoKmVtaXRfcmVnX3dhaXQpKHN0 cnVjdCBhbWRncHVfcmluZyAqcmluZywgdWludDMyX3QgcmVnLA0KPj4gICAgCQkJICAgICAgdWlu dDMyX3QgdmFsLCB1aW50MzJfdCBtYXNrKTsgQEAgLTI2NSw3ICsyNjYsNyBAQCBzdHJ1Y3QgDQo+ PiBhbWRncHVfcmluZyB7DQo+PiAgICAjZGVmaW5lIGFtZGdwdV9yaW5nX2VtaXRfaGRwX2ZsdXNo KHIpIChyKS0+ZnVuY3MtPmVtaXRfaGRwX2ZsdXNoKChyKSkNCj4+ICAgICNkZWZpbmUgYW1kZ3B1 X3JpbmdfZW1pdF9zd2l0Y2hfYnVmZmVyKHIpIChyKS0+ZnVuY3MtPmVtaXRfc3dpdGNoX2J1ZmZl cigocikpDQo+PiAgICAjZGVmaW5lIGFtZGdwdV9yaW5nX2VtaXRfY250eGNudGwociwgZCkgDQo+ PiAociktPmZ1bmNzLT5lbWl0X2NudHhjbnRsKChyKSwgKGQpKSAtI2RlZmluZSBhbWRncHVfcmlu Z19lbWl0X3JyZWcociwNCj4+IGQpIChyKS0+ZnVuY3MtPmVtaXRfcnJlZygociksIChkKSkNCj4+ ICsjZGVmaW5lIGFtZGdwdV9yaW5nX2VtaXRfcnJlZyhyLCBkLCBvKSAociktPmZ1bmNzLT5lbWl0 X3JyZWcoKHIpLCANCj4+ICsoZCksIChvKSkNCj4+ICAgICNkZWZpbmUgYW1kZ3B1X3JpbmdfZW1p dF93cmVnKHIsIGQsIHYpIChyKS0+ZnVuY3MtPmVtaXRfd3JlZygociksIChkKSwgKHYpKQ0KPj4g ICAgI2RlZmluZSBhbWRncHVfcmluZ19lbWl0X3JlZ193YWl0KHIsIGQsIHYsIG0pIChyKS0+ZnVu Y3MtPmVtaXRfcmVnX3dhaXQoKHIpLCAoZCksICh2KSwgKG0pKQ0KPj4gICAgI2RlZmluZSBhbWRn cHVfcmluZ19lbWl0X3JlZ193cml0ZV9yZWdfd2FpdChyLCBkMCwgZDEsIHYsIG0pIA0KPj4gKHIp LT5mdW5jcy0+ZW1pdF9yZWdfd3JpdGVfcmVnX3dhaXQoKHIpLCAoZDApLCAoZDEpLCAodiksICht KSkgZGlmZiANCj4+IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Zp cnQuYw0KPj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdmlydC5jDQo+PiBp bmRleCA4YzEwMDg0ZjQ0ZWYuLmE0YzNmMjg0NjkxYyAxMDA2NDQNCj4+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92aXJ0LmMNCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV92aXJ0LmMNCj4+IEBAIC01NiwxMyArNTYsMTkgQEAgdm9pZCBh bWRncHVfdmlydF9raXFfcmVnX3dyaXRlX3JlZ193YWl0KHN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2LA0KPj4gICAgCXVuc2lnbmVkIGxvbmcgZmxhZ3M7DQo+PiAgICAJdWludDMyX3Qgc2VxOw0K Pj4gICAgDQo+PiAtCXNwaW5fbG9ja19pcnFzYXZlKCZraXEtPnJpbmdfbG9jaywgZmxhZ3MpOw0K Pj4gKwlyID0gYW1kZ3B1X2dmeF9raXFfbG9jayhraXEsIGZhbHNlLCAmZmxhZ3MpOw0KPj4gKwlp ZiAocikgew0KPj4gKwkJcHJfZXJyKCJmYWlsZWQgdG8gbG9jayBraXFcbiIpOw0KPj4gKwkJZ290 byBmYWlsZWRfZXhpdDsNCj4+ICsJfQ0KPj4gKw0KPj4gKwlhbWRncHVfZ2Z4X2tpcV9jb25zdW1l KGtpcSwgTlVMTCk7DQo+PiAgICAJYW1kZ3B1X3JpbmdfYWxsb2MocmluZywgMzIpOw0KPj4gICAg CWFtZGdwdV9yaW5nX2VtaXRfcmVnX3dyaXRlX3JlZ193YWl0KHJpbmcsIHJlZzAsIHJlZzEsDQo+ PiAgICAJCQkJCSAgICByZWYsIG1hc2spOw0KPj4gICAgCWFtZGdwdV9mZW5jZV9lbWl0X3BvbGxp bmcocmluZywgJnNlcSk7DQo+PiAgICAJYW1kZ3B1X3JpbmdfY29tbWl0KHJpbmcpOw0KPj4gLQlz cGluX3VubG9ja19pcnFyZXN0b3JlKCZraXEtPnJpbmdfbG9jaywgZmxhZ3MpOw0KPj4gKwlhbWRn cHVfZ2Z4X2tpcV91bmxvY2soa2lxLCAmZmxhZ3MpOw0KPj4gICAgDQo+PiAgICAJciA9IGFtZGdw dV9mZW5jZV93YWl0X3BvbGxpbmcocmluZywgc2VxLCBNQVhfS0lRX1JFR19XQUlUKTsNCj4+ICAg IA0KPj4gQEAgLTgwLDkgKzg2LDEyIEBAIHZvaWQgYW1kZ3B1X3ZpcnRfa2lxX3JlZ193cml0ZV9y ZWdfd2FpdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwNCj4+ICAgIAlpZiAoY250ID4gTUFY X0tJUV9SRUdfVFJZKQ0KPj4gICAgCQlnb3RvIGZhaWxlZF9raXE7DQo+PiAgICANCj4+ICsJYW1k Z3B1X2dmeF9raXFfcmVzdG9yZShraXEsIE5VTEwpOw0KPj4gICAgCXJldHVybjsNCj4+ICAgIA0K Pj4gICAgZmFpbGVkX2tpcToNCj4+ICsJYW1kZ3B1X2dmeF9raXFfcmVzdG9yZShraXEsIE5VTEwp Ow0KPj4gK2ZhaWxlZF9leGl0Og0KPj4gICAgCXByX2VycigiZmFpbGVkIHRvIHdyaXRlIHJlZyAl eCB3YWl0IHJlZyAleFxuIiwgcmVnMCwgcmVnMSk7DQo+PiAgICB9DQo+PiAgICANCj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjEwXzAuYw0KPj4gYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjEwXzAuYw0KPj4gaW5kZXggMGEwM2UyYWQ1ZDk1 Li43ODUzZGJjM2M4YmQgMTAwNjQ0DQo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9nZnhfdjEwXzAuYw0KPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Yx MF8wLmMNCj4+IEBAIC03NTk0LDEwICs3NTk0LDEwIEBAIHN0YXRpYyB2b2lkIGdmeF92MTBfMF9y aW5nX2VtaXRfZnJhbWVfY250bChzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIGJvb2wgc3RhcnQs DQo+PiAgICAJYW1kZ3B1X3Jpbmdfd3JpdGUocmluZywgdiB8IEZSQU1FX0NNRChzdGFydCA/IDAg OiAxKSk7DQo+PiAgICB9DQo+PiAgICANCj4+IC1zdGF0aWMgdm9pZCBnZnhfdjEwXzBfcmluZ19l bWl0X3JyZWcoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCANCj4+IHVpbnQzMl90IHJlZykNCj4+ ICtzdGF0aWMgdm9pZCBnZnhfdjEwXzBfcmluZ19lbWl0X3JyZWcoc3RydWN0IGFtZGdwdV9yaW5n ICpyaW5nLCB1aW50MzJfdCByZWcsDQo+PiArCQkJCSAgICAgdWludDMyX3QgcmVnX3ZhbF9vZmZz KQ0KPj4gICAgew0KPj4gICAgCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gcmluZy0+YWRl djsNCj4+IC0Jc3RydWN0IGFtZGdwdV9raXEgKmtpcSA9ICZhZGV2LT5nZngua2lxOw0KPj4gICAg DQo+PiAgICAJYW1kZ3B1X3Jpbmdfd3JpdGUocmluZywgUEFDS0VUMyhQQUNLRVQzX0NPUFlfREFU QSwgNCkpOw0KPj4gICAgCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsIDAgfAkvKiBzcmM6IHJlZ2lz dGVyKi8NCj4+IEBAIC03NjA2LDkgKzc2MDYsOSBAQCBzdGF0aWMgdm9pZCBnZnhfdjEwXzBfcmlu Z19lbWl0X3JyZWcoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCB1aW50MzJfdCByZWcpDQo+PiAg ICAJYW1kZ3B1X3Jpbmdfd3JpdGUocmluZywgcmVnKTsNCj4+ICAgIAlhbWRncHVfcmluZ193cml0 ZShyaW5nLCAwKTsNCj4+ICAgIAlhbWRncHVfcmluZ193cml0ZShyaW5nLCBsb3dlcl8zMl9iaXRz KGFkZXYtPndiLmdwdV9hZGRyICsNCj4+IC0JCQkJa2lxLT5yZWdfdmFsX29mZnMgKiA0KSk7DQo+ PiArCQkJCXJlZ192YWxfb2ZmcyAqIDQpKTsNCj4+ICAgIAlhbWRncHVfcmluZ193cml0ZShyaW5n LCB1cHBlcl8zMl9iaXRzKGFkZXYtPndiLmdwdV9hZGRyICsNCj4+IC0JCQkJa2lxLT5yZWdfdmFs X29mZnMgKiA0KSk7DQo+PiArCQkJCXJlZ192YWxfb2ZmcyAqIDQpKTsNCj4+ICAgIH0NCj4+ICAg IA0KPj4gICAgc3RhdGljIHZvaWQgZ2Z4X3YxMF8wX3JpbmdfZW1pdF93cmVnKHN0cnVjdCBhbWRn cHVfcmluZyAqcmluZywgDQo+PiB1aW50MzJfdCByZWcsIGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9nZnhfdjhfMC5jDQo+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2dmeF92OF8wLmMNCj4+IGluZGV4IGZjNmMyZjJiYzc2Yy4uYmRiZDkyZDRmZTQ1IDEwMDY0 NA0KPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y4XzAuYw0KPj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y4XzAuYw0KPj4gQEAgLTYzODMsMTAg KzYzODMsMTAgQEAgc3RhdGljIHZvaWQgZ2Z4X3Y4XzBfcmluZ19lbWl0X3BhdGNoX2NvbmRfZXhl YyhzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHVuc2lnbmUNCj4+ICAgIAkJcmluZy0+cmluZ1tv ZmZzZXRdID0gKHJpbmctPnJpbmdfc2l6ZSA+PiAyKSAtIG9mZnNldCArIGN1cjsNCj4+ICAgIH0N Cj4+ICAgIA0KPj4gLXN0YXRpYyB2b2lkIGdmeF92OF8wX3JpbmdfZW1pdF9ycmVnKHN0cnVjdCBh bWRncHVfcmluZyAqcmluZywgDQo+PiB1aW50MzJfdCByZWcpDQo+PiArc3RhdGljIHZvaWQgZ2Z4 X3Y4XzBfcmluZ19lbWl0X3JyZWcoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCB1aW50MzJfdCBy ZWcsDQo+PiArCQkJCSAgICB1aW50MzJfdCByZWdfdmFsX29mZnMpDQo+PiAgICB7DQo+PiAgICAJ c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSByaW5nLT5hZGV2Ow0KPj4gLQlzdHJ1Y3QgYW1k Z3B1X2tpcSAqa2lxID0gJmFkZXYtPmdmeC5raXE7DQo+PiAgICANCj4+ICAgIAlhbWRncHVfcmlu Z193cml0ZShyaW5nLCBQQUNLRVQzKFBBQ0tFVDNfQ09QWV9EQVRBLCA0KSk7DQo+PiAgICAJYW1k Z3B1X3Jpbmdfd3JpdGUocmluZywgMCB8CS8qIHNyYzogcmVnaXN0ZXIqLw0KPj4gQEAgLTYzOTUs OSArNjM5NSw5IEBAIHN0YXRpYyB2b2lkIGdmeF92OF8wX3JpbmdfZW1pdF9ycmVnKHN0cnVjdCBh bWRncHVfcmluZyAqcmluZywgdWludDMyX3QgcmVnKQ0KPj4gICAgCWFtZGdwdV9yaW5nX3dyaXRl KHJpbmcsIHJlZyk7DQo+PiAgICAJYW1kZ3B1X3Jpbmdfd3JpdGUocmluZywgMCk7DQo+PiAgICAJ YW1kZ3B1X3Jpbmdfd3JpdGUocmluZywgbG93ZXJfMzJfYml0cyhhZGV2LT53Yi5ncHVfYWRkciAr DQo+PiAtCQkJCWtpcS0+cmVnX3ZhbF9vZmZzICogNCkpOw0KPj4gKwkJCQlyZWdfdmFsX29mZnMg KiA0KSk7DQo+PiAgICAJYW1kZ3B1X3Jpbmdfd3JpdGUocmluZywgdXBwZXJfMzJfYml0cyhhZGV2 LT53Yi5ncHVfYWRkciArDQo+PiAtCQkJCWtpcS0+cmVnX3ZhbF9vZmZzICogNCkpOw0KPj4gKwkJ CQlyZWdfdmFsX29mZnMgKiA0KSk7DQo+PiAgICB9DQo+PiAgICANCj4+ICAgIHN0YXRpYyB2b2lk IGdmeF92OF8wX3JpbmdfZW1pdF93cmVnKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgDQo+PiB1 aW50MzJfdCByZWcsIGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhf djlfMC5jDQo+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92OV8wLmMNCj4+IGlu ZGV4IDg0ZmNmODQyMzE2ZC4uMjkzMjE5NDUyYzBmIDEwMDY0NA0KPj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y5XzAuYw0KPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvZ2Z4X3Y5XzAuYw0KPj4gQEAgLTQwNDIsMTQgKzQwNDIsMjEgQEAgc3RhdGljIGlu dCBnZnhfdjlfMF9zb2Z0X3Jlc2V0KHZvaWQgKmhhbmRsZSkNCj4+ICAgIHN0YXRpYyB1aW50NjRf dCBnZnhfdjlfMF9raXFfcmVhZF9jbG9jayhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikNCj4+ ICAgIHsNCj4+ICAgIAlzaWduZWQgbG9uZyByLCBjbnQgPSAwOw0KPj4gLQl1bnNpZ25lZCBsb25n IGZsYWdzOw0KPj4gLQl1aW50MzJfdCBzZXE7DQo+PiArCXVuc2lnbmVkIGxvbmcgZmxhZ3MgPSAw Ow0KPj4gKwl1aW50MzJfdCBzZXEsIHJlZ192YWxfb2ZmczsNCj4+ICsJdWludDY0X3QgdmFsdWUg PSAwOw0KPj4gICAgCXN0cnVjdCBhbWRncHVfa2lxICpraXEgPSAmYWRldi0+Z2Z4LmtpcTsNCj4+ ICAgIAlzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcgPSAma2lxLT5yaW5nOw0KPj4gICAgDQo+PiAg ICAJQlVHX09OKCFyaW5nLT5mdW5jcy0+ZW1pdF9ycmVnKTsNCj4+ICAgIA0KPj4gLQlzcGluX2xv Y2tfaXJxc2F2ZSgma2lxLT5yaW5nX2xvY2ssIGZsYWdzKTsNCj4+ICsJciA9IGFtZGdwdV9nZnhf a2lxX2xvY2soa2lxLCB0cnVlLCAmZmxhZ3MpOw0KPj4gKwlpZiAocikgew0KPj4gKwkJcHJfZXJy KCJmYWlsZWQgdG8gbG9jayBraXFcbiIpOw0KPj4gKwkJZ290byBmYWlsZWRfa2lxX2V4aXQ7DQo+ PiArCX0NCj4+ICsNCj4+ICsJYW1kZ3B1X2dmeF9raXFfY29uc3VtZShraXEsICZyZWdfdmFsX29m ZnMpOw0KPj4gICAgCWFtZGdwdV9yaW5nX2FsbG9jKHJpbmcsIDMyKTsNCj4+ICAgIAlhbWRncHVf cmluZ193cml0ZShyaW5nLCBQQUNLRVQzKFBBQ0tFVDNfQ09QWV9EQVRBLCA0KSk7DQo+PiAgICAJ YW1kZ3B1X3Jpbmdfd3JpdGUocmluZywgOSB8CS8qIHNyYzogcmVnaXN0ZXIqLw0KPj4gQEAgLTQw NTksMTIgKzQwNjYsMTIgQEAgc3RhdGljIHVpbnQ2NF90IGdmeF92OV8wX2tpcV9yZWFkX2Nsb2Nr KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQ0KPj4gICAgCWFtZGdwdV9yaW5nX3dyaXRlKHJp bmcsIDApOw0KPj4gICAgCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsIDApOw0KPj4gICAgCWFtZGdw dV9yaW5nX3dyaXRlKHJpbmcsIGxvd2VyXzMyX2JpdHMoYWRldi0+d2IuZ3B1X2FkZHIgKw0KPj4g LQkJCQlraXEtPnJlZ192YWxfb2ZmcyAqIDQpKTsNCj4+ICsJCQkJcmVnX3ZhbF9vZmZzICogNCkp Ow0KPj4gICAgCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsIHVwcGVyXzMyX2JpdHMoYWRldi0+d2Iu Z3B1X2FkZHIgKw0KPj4gLQkJCQlraXEtPnJlZ192YWxfb2ZmcyAqIDQpKTsNCj4+ICsJCQkJcmVn X3ZhbF9vZmZzICogNCkpOw0KPj4gICAgCWFtZGdwdV9mZW5jZV9lbWl0X3BvbGxpbmcocmluZywg JnNlcSk7DQo+PiAgICAJYW1kZ3B1X3JpbmdfY29tbWl0KHJpbmcpOw0KPj4gLQlzcGluX3VubG9j a19pcnFyZXN0b3JlKCZraXEtPnJpbmdfbG9jaywgZmxhZ3MpOw0KPj4gKwlhbWRncHVfZ2Z4X2tp cV91bmxvY2soa2lxLCAmZmxhZ3MpOw0KPj4gICAgDQo+PiAgICAJciA9IGFtZGdwdV9mZW5jZV93 YWl0X3BvbGxpbmcocmluZywgc2VxLCBNQVhfS0lRX1JFR19XQUlUKTsNCj4+ICAgIA0KPj4gQEAg LTQwODgsMTAgKzQwOTUsMTQgQEAgc3RhdGljIHVpbnQ2NF90IGdmeF92OV8wX2tpcV9yZWFkX2Ns b2NrKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQ0KPj4gICAgCWlmIChjbnQgPiBNQVhfS0lR X1JFR19UUlkpDQo+PiAgICAJCWdvdG8gZmFpbGVkX2tpcV9yZWFkOw0KPj4gICAgDQo+PiAtCXJl dHVybiAodWludDY0X3QpYWRldi0+d2Iud2Jba2lxLT5yZWdfdmFsX29mZnNdIHwNCj4+IC0JCSh1 aW50NjRfdClhZGV2LT53Yi53YltraXEtPnJlZ192YWxfb2ZmcyArIDEgXSA8PCAzMlVMTDsNCj4+ ICsJdmFsdWUgPSAodWludDY0X3QpYWRldi0+d2Iud2JbcmVnX3ZhbF9vZmZzXSB8DQo+PiArCQko dWludDY0X3QpYWRldi0+d2Iud2JbcmVnX3ZhbF9vZmZzICsgMSBdIDw8IDMyVUxMOw0KPj4gICAg DQo+PiArCWFtZGdwdV9nZnhfa2lxX3Jlc3RvcmUoa2lxLCAmcmVnX3ZhbF9vZmZzKTsNCj4+ICsJ cmV0dXJuIHZhbHVlOw0KPj4gICAgZmFpbGVkX2tpcV9yZWFkOg0KPj4gKwlhbWRncHVfZ2Z4X2tp cV9yZXN0b3JlKGtpcSwgJnJlZ192YWxfb2Zmcyk7DQo+PiArZmFpbGVkX2tpcV9leGl0Og0KPj4g ICAgCXByX2VycigiZmFpbGVkIHRvIHJlYWQgZ3B1IGNsb2NrXG4iKTsNCj4+ICAgIAlyZXR1cm4g fjA7DQo+PiAgICB9DQo+PiBAQCAtNTQ4MiwxMCArNTQ5MywxMCBAQCBzdGF0aWMgdm9pZCBnZnhf djlfMF9yaW5nX2VtaXRfcGF0Y2hfY29uZF9leGVjKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywg dW5zaWduZQ0KPj4gICAgCQlyaW5nLT5yaW5nW29mZnNldF0gPSAocmluZy0+cmluZ19zaXplPj4y KSAtIG9mZnNldCArIGN1cjsNCj4+ICAgIH0NCj4+ICAgIA0KPj4gLXN0YXRpYyB2b2lkIGdmeF92 OV8wX3JpbmdfZW1pdF9ycmVnKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgDQo+PiB1aW50MzJf dCByZWcpDQo+PiArc3RhdGljIHZvaWQgZ2Z4X3Y5XzBfcmluZ19lbWl0X3JyZWcoc3RydWN0IGFt ZGdwdV9yaW5nICpyaW5nLCB1aW50MzJfdCByZWcsDQo+PiArCQkJCSAgICB1aW50MzJfdCByZWdf dmFsX29mZnMpDQo+PiAgICB7DQo+PiAgICAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBy aW5nLT5hZGV2Ow0KPj4gLQlzdHJ1Y3QgYW1kZ3B1X2tpcSAqa2lxID0gJmFkZXYtPmdmeC5raXE7 DQo+PiAgICANCj4+ICAgIAlhbWRncHVfcmluZ193cml0ZShyaW5nLCBQQUNLRVQzKFBBQ0tFVDNf Q09QWV9EQVRBLCA0KSk7DQo+PiAgICAJYW1kZ3B1X3Jpbmdfd3JpdGUocmluZywgMCB8CS8qIHNy YzogcmVnaXN0ZXIqLw0KPj4gQEAgLTU0OTQsOSArNTUwNSw5IEBAIHN0YXRpYyB2b2lkIGdmeF92 OV8wX3JpbmdfZW1pdF9ycmVnKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgdWludDMyX3QgcmVn KQ0KPj4gICAgCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsIHJlZyk7DQo+PiAgICAJYW1kZ3B1X3Jp bmdfd3JpdGUocmluZywgMCk7DQo+PiAgICAJYW1kZ3B1X3Jpbmdfd3JpdGUocmluZywgbG93ZXJf MzJfYml0cyhhZGV2LT53Yi5ncHVfYWRkciArDQo+PiAtCQkJCWtpcS0+cmVnX3ZhbF9vZmZzICog NCkpOw0KPj4gKwkJCQlyZWdfdmFsX29mZnMgKiA0KSk7DQo+PiAgICAJYW1kZ3B1X3Jpbmdfd3Jp dGUocmluZywgdXBwZXJfMzJfYml0cyhhZGV2LT53Yi5ncHVfYWRkciArDQo+PiAtCQkJCWtpcS0+ cmVnX3ZhbF9vZmZzICogNCkpOw0KPj4gKwkJCQlyZWdfdmFsX29mZnMgKiA0KSk7DQo+PiAgICB9 DQo+PiAgICANCj4+ICAgIHN0YXRpYyB2b2lkIGdmeF92OV8wX3JpbmdfZW1pdF93cmVnKHN0cnVj dCBhbWRncHVfcmluZyAqcmluZywgDQo+PiB1aW50MzJfdCByZWcsIGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjEwXzAuYw0KPj4gYi9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9nbWNfdjEwXzAuYw0KPj4gaW5kZXggMzBiNzVkNzllZmRiLi5hYjk2MGIwNTJj MGQgMTAwNjQ0DQo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjEwXzAu Yw0KPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3YxMF8wLmMNCj4+IEBA IC00MTUsNiArNDE1LDcgQEAgc3RhdGljIGludCBnbWNfdjEwXzBfZmx1c2hfZ3B1X3RsYl9wYXNp ZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwNCj4+ICAgIHsNCj4+ICAgIAlpbnQgdm1pZCwg aTsNCj4+ICAgIAlzaWduZWQgbG9uZyByOw0KPj4gKwl1bnNpZ25lZCBsb25nIGZsYWdzID0gMDsN Cj4+ICAgIAl1aW50MzJfdCBzZXE7DQo+PiAgICAJdWludDE2X3QgcXVlcmllZF9wYXNpZDsNCj4+ ICAgIAlib29sIHJldDsNCj4+IEBAIC00MjIsMjAgKzQyMywyOCBAQCBzdGF0aWMgaW50IGdtY192 MTBfMF9mbHVzaF9ncHVfdGxiX3Bhc2lkKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LA0KPj4g ICAgCXN0cnVjdCBhbWRncHVfa2lxICpraXEgPSAmYWRldi0+Z2Z4LmtpcTsNCj4+ICAgIA0KPj4g ICAgCWlmIChhbWRncHVfZW11X21vZGUgPT0gMCAmJiByaW5nLT5zY2hlZC5yZWFkeSkgew0KPj4g LQkJc3Bpbl9sb2NrKCZhZGV2LT5nZngua2lxLnJpbmdfbG9jayk7DQo+PiArCQlyID0gYW1kZ3B1 X2dmeF9raXFfbG9jayhraXEsIGZhbHNlLCAmZmxhZ3MpOw0KPj4gKwkJaWYgKHIpIHsNCj4+ICsJ CQlwcl9lcnIoImZhaWxlZCB0byBsb2NrIGtpcVxuIik7DQo+PiArCQkJcmV0dXJuIC1FVElNRTsN Cj4+ICsJCX0NCj4+ICsNCj4+ICAgIAkJLyogMiBkd29yZHMgZmx1c2ggKyA4IGR3b3JkcyBmZW5j ZSAqLw0KPj4gICAgCQlhbWRncHVfcmluZ19hbGxvYyhyaW5nLCBraXEtPnBtZi0+aW52YWxpZGF0 ZV90bGJzX3NpemUgKyA4KTsNCj4+ICsJCWFtZGdwdV9nZnhfa2lxX2NvbnN1bWUoa2lxLCBOVUxM KTsNCj4+ICAgIAkJa2lxLT5wbWYtPmtpcV9pbnZhbGlkYXRlX3RsYnMocmluZywNCj4+ICAgIAkJ CQkJcGFzaWQsIGZsdXNoX3R5cGUsIGFsbF9odWIpOw0KPj4gICAgCQlhbWRncHVfZmVuY2VfZW1p dF9wb2xsaW5nKHJpbmcsICZzZXEpOw0KPj4gICAgCQlhbWRncHVfcmluZ19jb21taXQocmluZyk7 DQo+PiAtCQlzcGluX3VubG9jaygmYWRldi0+Z2Z4LmtpcS5yaW5nX2xvY2spOw0KPj4gKwkJYW1k Z3B1X2dmeF9raXFfdW5sb2NrKGtpcSwgJmZsYWdzKTsNCj4+ICAgIAkJciA9IGFtZGdwdV9mZW5j ZV93YWl0X3BvbGxpbmcocmluZywgc2VxLCBhZGV2LT51c2VjX3RpbWVvdXQpOw0KPj4gICAgCQlp ZiAociA8IDEpIHsNCj4+ICAgIAkJCURSTV9FUlJPUigid2FpdCBmb3Iga2lxIGZlbmNlIGVycm9y OiAlbGQuXG4iLCByKTsNCj4+ICsJCQlhbWRncHVfZ2Z4X2tpcV9yZXN0b3JlKGtpcSwgZmFsc2Up Ow0KPj4gICAgCQkJcmV0dXJuIC1FVElNRTsNCj4+ICAgIAkJfQ0KPj4gICAgDQo+PiArCQlhbWRn cHVfZ2Z4X2tpcV9yZXN0b3JlKGtpcSwgTlVMTCk7DQo+PiAgICAJCXJldHVybiAwOw0KPj4gICAg CX0NCj4+ICAgIA0KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dt Y192OV8wLmMNCj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y5XzAuYw0KPj4g aW5kZXggZmVjZGJjNDcxOTgzLi5kMTRmZDU2YTk1OWUgMTAwNjQ0DQo+PiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjlfMC5jDQo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9nbWNfdjlfMC5jDQo+PiBAQCAtNTg5LDYgKzU4OSw3IEBAIHN0YXRpYyBpbnQg Z21jX3Y5XzBfZmx1c2hfZ3B1X3RsYl9wYXNpZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwN Cj4+ICAgIHsNCj4+ICAgIAlpbnQgdm1pZCwgaTsNCj4+ICAgIAlzaWduZWQgbG9uZyByOw0KPj4g Kwl1bnNpZ25lZCBsb25nIGZsYWdzID0gMDsNCj4+ICAgIAl1aW50MzJfdCBzZXE7DQo+PiAgICAJ dWludDE2X3QgcXVlcmllZF9wYXNpZDsNCj4+ICAgIAlib29sIHJldDsNCj4+IEBAIC02MTMsNyAr NjE0LDEzIEBAIHN0YXRpYyBpbnQgZ21jX3Y5XzBfZmx1c2hfZ3B1X3RsYl9wYXNpZChzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldiwNCj4+ICAgIAkJaWYgKHZlZ2EyMF94Z21pX3dhKQ0KPj4gICAg CQkJbmR3ICs9IGtpcS0+cG1mLT5pbnZhbGlkYXRlX3RsYnNfc2l6ZTsNCj4+ICAgIA0KPj4gLQkJ c3Bpbl9sb2NrKCZhZGV2LT5nZngua2lxLnJpbmdfbG9jayk7DQo+PiArCQlyID0gYW1kZ3B1X2dm eF9raXFfbG9jayhraXEsIGZhbHNlLCAmZmxhZ3MpOw0KPj4gKwkJaWYgKHIpIHsNCj4+ICsJCQlw cl9lcnIoImZhaWxlZCB0byBsb2NrIGtpcVxuIik7DQo+PiArCQkJcmV0dXJuIC1FVElNRTsNCj4+ ICsJCX0NCj4+ICsNCj4+ICsJCWFtZGdwdV9nZnhfa2lxX2NvbnN1bWUoa2lxLCBOVUxMKTsNCj4+ ICAgIAkJLyogMiBkd29yZHMgZmx1c2ggKyA4IGR3b3JkcyBmZW5jZSAqLw0KPj4gICAgCQlhbWRn cHVfcmluZ19hbGxvYyhyaW5nLCBuZHcpOw0KPj4gICAgCQlpZiAodmVnYTIwX3hnbWlfd2EpDQo+ PiBAQCAtNjIzLDEzICs2MzAsMTUgQEAgc3RhdGljIGludCBnbWNfdjlfMF9mbHVzaF9ncHVfdGxi X3Bhc2lkKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LA0KPj4gICAgCQkJCQlwYXNpZCwgZmx1 c2hfdHlwZSwgYWxsX2h1Yik7DQo+PiAgICAJCWFtZGdwdV9mZW5jZV9lbWl0X3BvbGxpbmcocmlu ZywgJnNlcSk7DQo+PiAgICAJCWFtZGdwdV9yaW5nX2NvbW1pdChyaW5nKTsNCj4+IC0JCXNwaW5f dW5sb2NrKCZhZGV2LT5nZngua2lxLnJpbmdfbG9jayk7DQo+PiArCQlhbWRncHVfZ2Z4X2tpcV91 bmxvY2soa2lxLCAmZmxhZ3MpOw0KPj4gICAgCQlyID0gYW1kZ3B1X2ZlbmNlX3dhaXRfcG9sbGlu ZyhyaW5nLCBzZXEsIGFkZXYtPnVzZWNfdGltZW91dCk7DQo+PiAgICAJCWlmIChyIDwgMSkgew0K Pj4gICAgCQkJRFJNX0VSUk9SKCJ3YWl0IGZvciBraXEgZmVuY2UgZXJyb3I6ICVsZC5cbiIsIHIp Ow0KPj4gKwkJCWFtZGdwdV9nZnhfa2lxX3Jlc3RvcmUoa2lxLCBOVUxMKTsNCj4+ICAgIAkJCXJl dHVybiAtRVRJTUU7DQo+PiAgICAJCX0NCj4+ICAgIA0KPj4gKwkJYW1kZ3B1X2dmeF9raXFfcmVz dG9yZShraXEsIE5VTEwpOw0KPj4gICAgCQlyZXR1cm4gMDsNCj4+ICAgIAl9DQo+PiAgICANCg0K X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBt YWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg==