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=-17.3 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 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 78902C433F5 for ; Mon, 20 Sep 2021 08:41:18 +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 3C81860F12 for ; Mon, 20 Sep 2021 08:41:18 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 3C81860F12 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=suse.de Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 807196E420; Mon, 20 Sep 2021 08:41:17 +0000 (UTC) Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by gabe.freedesktop.org (Postfix) with ESMTPS id EA01E6E420; Mon, 20 Sep 2021 08:41:15 +0000 (UTC) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 6B35521FFF; Mon, 20 Sep 2021 08:41:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1632127274; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=anmkck7e7R06U7/MqPoZbEa5AVQGPVFgr3QDo5YqodU=; b=fj+v9tVzo/VqVaF9n/xm/UcZtdXo1tMTYCXqgfO19riJCD31QexIX7XcZso5ksakOd8KT2 6nNe1mCbwPO179ruTgXVbu1K4Nk6e4suYNXTXuS+WB6dHgJn9U1it3bDwoworn06MgWKYm biGDtCFlJwYelGvfBRG+8Pqqt+NjSTA= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1632127274; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=anmkck7e7R06U7/MqPoZbEa5AVQGPVFgr3QDo5YqodU=; b=uTl25lmA63lOsOJaVuP4mcRAQrZqHWXbESRIjN9UvoAOb4M0KehklX7UqdUqAGcz3IvRRy tJpn+x32S1WQ4MDw== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 3A7CA13A81; Mon, 20 Sep 2021 08:41:14 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id 3GdcDSpJSGFMJAAAMHmgww (envelope-from ); Mon, 20 Sep 2021 08:41:14 +0000 Message-ID: Date: Mon, 20 Sep 2021 10:41:13 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.0.3 Subject: Re: [PATCH] drm/amdgpu: use generic fb helpers instead of setting up AMD own's. Content-Language: en-US To: Alex Deucher , Evan Quan Cc: amd-gfx list , "Deucher, Alexander" , =?UTF-8?Q?Christian_K=c3=b6nig?= , dri-devel References: <20210910032530.725067-1-evan.quan@amd.com> From: Thomas Zimmermann In-Reply-To: Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------vhVF4U3qDK3uL1K0y63WSovg" 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" This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------vhVF4U3qDK3uL1K0y63WSovg Content-Type: multipart/mixed; boundary="------------0vV5AGKSz9j3UheAdCJuOihq"; protected-headers="v1" From: Thomas Zimmermann To: Alex Deucher , Evan Quan Cc: amd-gfx list , "Deucher, Alexander" , =?UTF-8?Q?Christian_K=c3=b6nig?= , dri-devel Message-ID: Subject: Re: [PATCH] drm/amdgpu: use generic fb helpers instead of setting up AMD own's. References: <20210910032530.725067-1-evan.quan@amd.com> In-Reply-To: --------------0vV5AGKSz9j3UheAdCJuOihq Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 KGNjJ2luZyBkcmktZGV2ZWwpDQoNCkhpDQoNCkFtIDEzLjA5LjIxIHVtIDE2OjM2IHNjaHJp ZWIgQWxleCBEZXVjaGVyOg0KPiBPbiBUaHUsIFNlcCA5LCAyMDIxIGF0IDExOjI1IFBNIEV2 YW4gUXVhbiA8ZXZhbi5xdWFuQGFtZC5jb20+IHdyb3RlOg0KPj4NCj4+IFdpdGggdGhlIHNo YWRvdyBidWZmZXIgc3VwcG9ydCBmcm9tIGdlbmVyaWMgZnJhbWVidWZmZXIgZW11bGF0aW9u LCBpdCdzDQo+PiBwb3NzaWJsZSBub3cgdG8gaGF2ZSBydW5wbSBraWNrZWQgd2hlbiBubyB1 cGRhdGUgZm9yIGNvbnNvbGUuDQo+Pg0KPj4gQ2hhbmdlLUlkOiBJMjg1NDcyYzkxMDBlZTZm NjQ5ZDNmM2YzNTQ4ZjQwMmI5Y2QzNGVhZg0KPj4gU2lnbmVkLW9mZi1ieTogRXZhbiBRdWFu IDxldmFuLnF1YW5AYW1kLmNvbT4NCj4+IEFja2VkLWJ5OiBDaHJpc3RpYW4gS8O2bmlnIDxj aHJpc3RpYW4ua29lbmlnQGFtZC5jb20+DQo+IA0KPiBSZXZpZXdlZC1ieTogQWxleCBEZXVj aGVyIDxhbGV4YW5kZXIuZGV1Y2hlckBhbWQuY29tPg0KDQpUaGVyZSB3YXMgYSBsb25nIGRp c2N1c3Npb24gYWJvdXQgdGhpcyBjaGFuZ2Ugd2l0aGluIHJhZGVvbiBhbmQgdGhlIA0KcmVz dWx0IHdhcyB0aGF0IGl0IGNhbm5vdCBiZSBkb25lLiBbMV0gSSBkb24ndCByZW1lbWJlciB0 aGUgZnVsbCANCmRldGFpbHMsIGJ1dCBzZW1hbnRpY3Mgb2YgdGhlIHZtYXAvdnVubWFwIGZv ciBkbWEtYnVmcyB3ZXJlIG5vdCANCmNvbXBhdGlibGUgSUlSQy4gQW5kIHRoZSByZXNvbHV0 aW9uIHdhcyBhIHJlZGVzaWduIG9mIHRoZSBBUEkuDQoNCklmIHRoYXQgaGFzIGNoYW5nZWQs IEknZCBiZSBoYXBweSB0byBzZWUgdGhpcyBwYXRjaCBtZXJnZWQuIE90aGVyd2lzZSwgDQpp dCBzaG91bGQgYmV0dGVyIG5vdCBiZSB0YWtlbi4NCg0KQmVzdCByZWdhcmRzDQpUaG9tYXMN Cg0KWzFdIGh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9yZy9wYXRjaC80MDAwNTQv P3Nlcmllcz04Mzc2NSZyZXY9MQ0KDQo+IA0KPj4gLS0NCj4+IHYxLT52MjoNCj4+ICAgIC0g cmVuYW1lIGFtZGdwdV9hbGlnbl9waXRjaCBhcyBhbWRncHVfZ2VtX2FsaWduX3BpdGNoIHRv IGFsaWduIHdpdGgNCj4+ICAgICAgb3RoZXIgQVBJcyBmcm9tIHRoZSBzYW1lIGZpbGUgKEFs ZXgpDQo+PiAtLS0NCj4+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvTWFrZWZpbGUg ICAgICAgICB8ICAgMiArLQ0KPj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfZGV2aWNlLmMgIHwgIDEyICstDQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9kaXNwbGF5LmMgfCAgMTEgKy0NCj4+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X2Rydi5jICAgICB8ICAxMyArDQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9mYi5jICAgICAgfCAzODggLS0tLS0tLS0tLS0tLS0tLS0tLS0N Cj4+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dlbS5jICAgICB8ICAz MCArLQ0KPj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfbW9kZS5oICAg IHwgIDIwIC0NCj4+ICAgNyBmaWxlcyBjaGFuZ2VkLCA1MCBpbnNlcnRpb25zKCspLCA0MjYg ZGVsZXRpb25zKC0pDQo+PiAgIGRlbGV0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfZmIuYw0KPj4NCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L01ha2VmaWxlDQo+PiBpbmRleCA4ZDA3NDgxODRhMTQuLjczYTIxNTFlZTQzZiAxMDA2NDQN Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L01ha2VmaWxlDQo+PiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9NYWtlZmlsZQ0KPj4gQEAgLTQ1LDcgKzQ1 LDcgQEAgYW1kZ3B1LXkgKz0gYW1kZ3B1X2RldmljZS5vIGFtZGdwdV9rbXMubyBcDQo+PiAg ICAgICAgICBhbWRncHVfYXRvbWJpb3MubyBhdG9tYmlvc19jcnRjLm8gYW1kZ3B1X2Nvbm5l Y3RvcnMubyBcDQo+PiAgICAgICAgICBhdG9tLm8gYW1kZ3B1X2ZlbmNlLm8gYW1kZ3B1X3R0 bS5vIGFtZGdwdV9vYmplY3QubyBhbWRncHVfZ2FydC5vIFwNCj4+ICAgICAgICAgIGFtZGdw dV9lbmNvZGVycy5vIGFtZGdwdV9kaXNwbGF5Lm8gYW1kZ3B1X2kyYy5vIFwNCj4+IC0gICAg ICAgYW1kZ3B1X2ZiLm8gYW1kZ3B1X2dlbS5vIGFtZGdwdV9yaW5nLm8gXA0KPj4gKyAgICAg ICBhbWRncHVfZ2VtLm8gYW1kZ3B1X3JpbmcubyBcDQo+PiAgICAgICAgICBhbWRncHVfY3Mu byBhbWRncHVfYmlvcy5vIGFtZGdwdV9iZW5jaG1hcmsubyBhbWRncHVfdGVzdC5vIFwNCj4+ ICAgICAgICAgIGF0b21iaW9zX2RwLm8gYW1kZ3B1X2FmbXQubyBhbWRncHVfdHJhY2VfcG9p bnRzLm8gXA0KPj4gICAgICAgICAgYXRvbWJpb3NfZW5jb2RlcnMubyBhbWRncHVfc2EubyBh dG9tYmlvc19pMmMubyBcDQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X2RldmljZS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X2RldmljZS5jDQo+PiBpbmRleCA2ODJkNDU5ZTk5MmEuLmJjYzMwOGI3ZjgyNiAxMDA2 NDQNCj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2Uu Yw0KPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RldmljZS5j DQo+PiBAQCAtMzY5NSw4ICszNjk1LDYgQEAgaW50IGFtZGdwdV9kZXZpY2VfaW5pdChzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwNCj4+ICAgICAgICAgIC8qIEdldCBhIGxvZzIgZm9y IGVhc3kgZGl2aXNpb25zLiAqLw0KPj4gICAgICAgICAgYWRldi0+bW1fc3RhdHMubG9nMl9t YXhfTUJwcyA9IGlsb2cyKG1heCgxdSwgbWF4X01CcHMpKTsNCj4+DQo+PiAtICAgICAgIGFt ZGdwdV9mYmRldl9pbml0KGFkZXYpOw0KPj4gLQ0KPj4gICAgICAgICAgciA9IGFtZGdwdV9w bV9zeXNmc19pbml0KGFkZXYpOw0KPj4gICAgICAgICAgaWYgKHIpIHsNCj4+ICAgICAgICAg ICAgICAgICAgYWRldi0+cG1fc3lzZnNfZW4gPSBmYWxzZTsNCj4+IEBAIC0zODU0LDggKzM4 NTIsNiBAQCB2b2lkIGFtZGdwdV9kZXZpY2VfZmluaV9odyhzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldikNCj4+ICAgICAgICAgICAgICAgICAgYW1kZ3B1X3Vjb2RlX3N5c2ZzX2Zpbmko YWRldik7DQo+PiAgICAgICAgICBzeXNmc19yZW1vdmVfZmlsZXMoJmFkZXYtPmRldi0+a29i aiwgYW1kZ3B1X2Rldl9hdHRyaWJ1dGVzKTsNCj4+DQo+PiAtICAgICAgIGFtZGdwdV9mYmRl dl9maW5pKGFkZXYpOw0KPj4gLQ0KPj4gICAgICAgICAgYW1kZ3B1X2lycV9maW5pX2h3KGFk ZXYpOw0KPj4NCj4+ICAgICAgICAgIGFtZGdwdV9kZXZpY2VfaXBfZmluaV9lYXJseShhZGV2 KTsNCj4+IEBAIC0zOTMxLDcgKzM5MjcsNyBAQCBpbnQgYW1kZ3B1X2RldmljZV9zdXNwZW5k KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGJvb2wgZmJjb24pDQo+PiAgICAgICAgICBkcm1f a21zX2hlbHBlcl9wb2xsX2Rpc2FibGUoZGV2KTsNCj4+DQo+PiAgICAgICAgICBpZiAoZmJj b24pDQo+PiAtICAgICAgICAgICAgICAgYW1kZ3B1X2ZiZGV2X3NldF9zdXNwZW5kKGFkZXYs IDEpOw0KPj4gKyAgICAgICAgICAgICAgIGRybV9mYl9oZWxwZXJfc2V0X3N1c3BlbmRfdW5s b2NrZWQoYWRldl90b19kcm0oYWRldiktPmZiX2hlbHBlciwgdHJ1ZSk7DQo+Pg0KPj4gICAg ICAgICAgY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZhZGV2LT5kZWxheWVkX2luaXRfd29y ayk7DQo+Pg0KPj4gQEAgLTQwMDksNyArNDAwNSw3IEBAIGludCBhbWRncHVfZGV2aWNlX3Jl c3VtZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBib29sIGZiY29uKQ0KPj4gICAgICAgICAg Zmx1c2hfZGVsYXllZF93b3JrKCZhZGV2LT5kZWxheWVkX2luaXRfd29yayk7DQo+Pg0KPj4g ICAgICAgICAgaWYgKGZiY29uKQ0KPj4gLSAgICAgICAgICAgICAgIGFtZGdwdV9mYmRldl9z ZXRfc3VzcGVuZChhZGV2LCAwKTsNCj4+ICsgICAgICAgICAgICAgICBkcm1fZmJfaGVscGVy X3NldF9zdXNwZW5kX3VubG9ja2VkKGFkZXZfdG9fZHJtKGFkZXYpLT5mYl9oZWxwZXIsIGZh bHNlKTsNCj4+DQo+PiAgICAgICAgICBkcm1fa21zX2hlbHBlcl9wb2xsX2VuYWJsZShkZXYp Ow0KPj4NCj4+IEBAIC00NjM4LDcgKzQ2MzQsNyBAQCBpbnQgYW1kZ3B1X2RvX2FzaWNfcmVz ZXQoc3RydWN0IGxpc3RfaGVhZCAqZGV2aWNlX2xpc3RfaGFuZGxlLA0KPj4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHIpDQo+PiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGdvdG8gb3V0Ow0KPj4NCj4+IC0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYW1kZ3B1X2ZiZGV2X3NldF9zdXNwZW5kKHRtcF9hZGV2LCAw KTsNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJtX2ZiX2hlbHBlcl9z ZXRfc3VzcGVuZF91bmxvY2tlZChhZGV2X3RvX2RybSh0bXBfYWRldiktPmZiX2hlbHBlciwg ZmFsc2UpOw0KPj4NCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qDQo+ PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBUaGUgR1BVIGVudGVycyBi YWQgc3RhdGUgb25jZSBmYXVsdHkgcGFnZXMNCj4+IEBAIC01MDI1LDcgKzUwMjEsNyBAQCBp bnQgYW1kZ3B1X2RldmljZV9ncHVfcmVjb3ZlcihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl diwNCj4+ICAgICAgICAgICAgICAgICAgICovDQo+PiAgICAgICAgICAgICAgICAgIGFtZGdw dV91bnJlZ2lzdGVyX2dwdV9pbnN0YW5jZSh0bXBfYWRldik7DQo+Pg0KPj4gLSAgICAgICAg ICAgICAgIGFtZGdwdV9mYmRldl9zZXRfc3VzcGVuZCh0bXBfYWRldiwgMSk7DQo+PiArICAg ICAgICAgICAgICAgZHJtX2ZiX2hlbHBlcl9zZXRfc3VzcGVuZF91bmxvY2tlZChhZGV2X3Rv X2RybShhZGV2KS0+ZmJfaGVscGVyLCB0cnVlKTsNCj4+DQo+PiAgICAgICAgICAgICAgICAg IC8qIGRpc2FibGUgcmFzIG9uIEFMTCBJUHMgKi8NCj4+ICAgICAgICAgICAgICAgICAgaWYg KCFuZWVkX2VtZXJnZW5jeV9yZXN0YXJ0ICYmDQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9kaXNwbGF5LmMNCj4+IGluZGV4IDdhNzMxNjczMTkxMS4uNThi ZmM3ZjAwZDc2IDEwMDY0NA0KPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X2Rpc3BsYXkuYw0KPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X2Rpc3BsYXkuYw0KPj4gQEAgLTE1NzIsMTMgKzE1NzIsMTAgQEAgaW50IGFtZGdw dV9kaXNwbGF5X3N1c3BlbmRfaGVscGVyKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQ0K Pj4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KPj4gICAgICAgICAgICAg ICAgICB9DQo+PiAgICAgICAgICAgICAgICAgIHJvYmogPSBnZW1fdG9fYW1kZ3B1X2JvKGZi LT5vYmpbMF0pOw0KPj4gLSAgICAgICAgICAgICAgIC8qIGRvbid0IHVucGluIGtlcm5lbCBm YiBvYmplY3RzICovDQo+PiAtICAgICAgICAgICAgICAgaWYgKCFhbWRncHVfZmJkZXZfcm9i al9pc19mYihhZGV2LCByb2JqKSkgew0KPj4gLSAgICAgICAgICAgICAgICAgICAgICAgciA9 IGFtZGdwdV9ib19yZXNlcnZlKHJvYmosIHRydWUpOw0KPj4gLSAgICAgICAgICAgICAgICAg ICAgICAgaWYgKHIgPT0gMCkgew0KPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhbWRncHVfYm9fdW5waW4ocm9iaik7DQo+PiAtICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFtZGdwdV9ib191bnJlc2VydmUocm9iaik7DQo+PiAtICAgICAgICAgICAgICAg ICAgICAgICB9DQo+PiArICAgICAgICAgICAgICAgciA9IGFtZGdwdV9ib19yZXNlcnZlKHJv YmosIHRydWUpOw0KPj4gKyAgICAgICAgICAgICAgIGlmIChyID09IDApIHsNCj4+ICsgICAg ICAgICAgICAgICAgICAgICAgIGFtZGdwdV9ib191bnBpbihyb2JqKTsNCj4+ICsgICAgICAg ICAgICAgICAgICAgICAgIGFtZGdwdV9ib191bnJlc2VydmUocm9iaik7DQo+PiAgICAgICAg ICAgICAgICAgIH0NCj4+ICAgICAgICAgIH0NCj4+ICAgICAgICAgIHJldHVybiAwOw0KPj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kcnYuYyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kcnYuYw0KPj4gaW5kZXggOTg3 NDgyYzI2YjFhLi5kYjIxYWY1ZTg0ZWQgMTAwNjQ0DQo+PiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfZHJ2LmMNCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9kcnYuYw0KPj4gQEAgLTEzNDgsNiArMTM0OCwxOSBAQCBzdGF0 aWMgaW50IGFtZGdwdV9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsDQo+PiAgICAg ICAgICAgICAgICAgIGdvdG8gZXJyX3BjaTsNCj4+ICAgICAgICAgIH0NCj4+DQo+PiArICAg ICAgIC8qDQo+PiArICAgICAgICAqIDEuIGRvbid0IGluaXQgZmJkZXYgb24gaHcgd2l0aG91 dCBEQ0UNCj4+ICsgICAgICAgICogMi4gZG9uJ3QgaW5pdCBmYmRldiBpZiB0aGVyZSBhcmUg bm8gY29ubmVjdG9ycw0KPj4gKyAgICAgICAgKi8NCj4+ICsgICAgICAgaWYgKGFkZXYtPm1v ZGVfaW5mby5tb2RlX2NvbmZpZ19pbml0aWFsaXplZCAmJg0KPj4gKyAgICAgICAgICAgIWxp c3RfZW1wdHkoJmFkZXZfdG9fZHJtKGFkZXYpLT5tb2RlX2NvbmZpZy5jb25uZWN0b3JfbGlz dCkpIHsNCj4+ICsgICAgICAgICAgICAgICAvKiBzZWxlY3QgOCBicHAgY29uc29sZSBvbiBs b3cgdnJhbSBjYXJkcyAqLw0KPj4gKyAgICAgICAgICAgICAgIGlmIChhZGV2LT5nbWMucmVh bF92cmFtX3NpemUgPD0gKDMyKjEwMjQqMTAyNCkpDQo+PiArICAgICAgICAgICAgICAgICAg ICAgICBkcm1fZmJkZXZfZ2VuZXJpY19zZXR1cChhZGV2X3RvX2RybShhZGV2KSwgOCk7DQo+ PiArICAgICAgICAgICAgICAgZWxzZQ0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgZHJt X2ZiZGV2X2dlbmVyaWNfc2V0dXAoYWRldl90b19kcm0oYWRldiksIDMyKTsNCj4+ICsgICAg ICAgfQ0KPj4gKw0KPj4gICAgICAgICAgcmV0ID0gYW1kZ3B1X2RlYnVnZnNfaW5pdChhZGV2 KTsNCj4+ICAgICAgICAgIGlmIChyZXQpDQo+PiAgICAgICAgICAgICAgICAgIERSTV9FUlJP UigiQ3JlYXRpbmcgZGVidWdmcyBmaWxlcyBmYWlsZWQgKCVkKS5cbiIsIHJldCk7DQo+PiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ZiLmMgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZmIuYw0KPj4gZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0DQo+PiBpbmRleCBjZDBhY2JlYTc1ZGEuLjAwMDAwMDAwMDAwMA0KPj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ZiLmMNCj4+ICsrKyAv ZGV2L251bGwNCj4+IEBAIC0xLDM4OCArMCwwIEBADQo+PiAtLyoNCj4+IC0gKiBDb3B5cmln aHQgwqkgMjAwNyBEYXZpZCBBaXJsaWUNCj4+IC0gKg0KPj4gLSAqIFBlcm1pc3Npb24gaXMg aGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmlu ZyBhDQo+PiAtICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3Vt ZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwNCj4+IC0gKiB0byBkZWFsIGluIHRo ZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1p dGF0aW9uDQo+PiAtICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2Us IHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsDQo+PiAtICogYW5kL29yIHNlbGwg Y29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20g dGhlDQo+PiAtICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRv IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoNCj4+IC0gKg0KPj4gLSAqIFRoZSBhYm92ZSBj b3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcg dGhlIG5leHQNCj4+IC0gKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBj b3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlDQo+PiAtICogU29mdHdhcmUu DQo+PiAtICoNCj4+IC0gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lU SE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUg0KPj4gLSAqIElNUExJRUQs IElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hB TlRBQklMSVRZLA0KPj4gLSAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFO RCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTA0KPj4gLSAqIFRIRSBBVVRI T1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1B R0VTIE9SIE9USEVSDQo+PiAtICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBP RiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcNCj4+IC0gKiBGUk9NLCBP VVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9S IE9USEVSDQo+PiAtICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLg0KPj4gLSAqDQo+PiAt ICogQXV0aG9yczoNCj4+IC0gKiAgICAgRGF2aWQgQWlybGllDQo+PiAtICovDQo+PiAtDQo+ PiAtI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPg0KPj4gLSNpbmNsdWRlIDxsaW51eC9wbV9y dW50aW1lLmg+DQo+PiAtI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4NCj4+IC0jaW5jbHVkZSA8 bGludXgvdmdhX3N3aXRjaGVyb28uaD4NCj4+IC0NCj4+IC0jaW5jbHVkZSA8ZHJtL2FtZGdw dV9kcm0uaD4NCj4+IC0jaW5jbHVkZSA8ZHJtL2RybV9jcnRjLmg+DQo+PiAtI2luY2x1ZGUg PGRybS9kcm1fY3J0Y19oZWxwZXIuaD4NCj4+IC0jaW5jbHVkZSA8ZHJtL2RybV9mYl9oZWxw ZXIuaD4NCj4+IC0jaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4NCj4+IC0NCj4+IC0jaW5j bHVkZSAiYW1kZ3B1LmgiDQo+PiAtI2luY2x1ZGUgImNpa2QuaCINCj4+IC0jaW5jbHVkZSAi YW1kZ3B1X2dlbS5oIg0KPj4gLQ0KPj4gLSNpbmNsdWRlICJhbWRncHVfZGlzcGxheS5oIg0K Pj4gLQ0KPj4gLS8qIG9iamVjdCBoaWVyYXJjaHkgLQ0KPj4gLSAgIHRoaXMgY29udGFpbnMg YSBoZWxwZXIgKyBhIGFtZGdwdSBmYg0KPj4gLSAgIHRoZSBoZWxwZXIgY29udGFpbnMgYSBw b2ludGVyIHRvIGFtZGdwdSBmcmFtZWJ1ZmZlciBiYXNlY2xhc3MuDQo+PiAtKi8NCj4+IC0N Cj4+IC1zdGF0aWMgaW50DQo+PiAtYW1kZ3B1ZmJfb3BlbihzdHJ1Y3QgZmJfaW5mbyAqaW5m bywgaW50IHVzZXIpDQo+PiAtew0KPj4gLSAgICAgICBzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAq ZmJfaGVscGVyID0gaW5mby0+cGFyOw0KPj4gLSAgICAgICBpbnQgcmV0ID0gcG1fcnVudGlt ZV9nZXRfc3luYyhmYl9oZWxwZXItPmRldi0+ZGV2KTsNCj4+IC0gICAgICAgaWYgKHJldCA8 IDAgJiYgcmV0ICE9IC1FQUNDRVMpIHsNCj4+IC0gICAgICAgICAgICAgICBwbV9ydW50aW1l X21hcmtfbGFzdF9idXN5KGZiX2hlbHBlci0+ZGV2LT5kZXYpOw0KPj4gLSAgICAgICAgICAg ICAgIHBtX3J1bnRpbWVfcHV0X2F1dG9zdXNwZW5kKGZiX2hlbHBlci0+ZGV2LT5kZXYpOw0K Pj4gLSAgICAgICAgICAgICAgIHJldHVybiByZXQ7DQo+PiAtICAgICAgIH0NCj4+IC0gICAg ICAgcmV0dXJuIDA7DQo+PiAtfQ0KPj4gLQ0KPj4gLXN0YXRpYyBpbnQNCj4+IC1hbWRncHVm Yl9yZWxlYXNlKHN0cnVjdCBmYl9pbmZvICppbmZvLCBpbnQgdXNlcikNCj4+IC17DQo+PiAt ICAgICAgIHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIgPSBpbmZvLT5wYXI7DQo+ PiAtDQo+PiAtICAgICAgIHBtX3J1bnRpbWVfbWFya19sYXN0X2J1c3koZmJfaGVscGVyLT5k ZXYtPmRldik7DQo+PiAtICAgICAgIHBtX3J1bnRpbWVfcHV0X2F1dG9zdXNwZW5kKGZiX2hl bHBlci0+ZGV2LT5kZXYpOw0KPj4gLSAgICAgICByZXR1cm4gMDsNCj4+IC19DQo+PiAtDQo+ PiAtc3RhdGljIGNvbnN0IHN0cnVjdCBmYl9vcHMgYW1kZ3B1ZmJfb3BzID0gew0KPj4gLSAg ICAgICAub3duZXIgPSBUSElTX01PRFVMRSwNCj4+IC0gICAgICAgRFJNX0ZCX0hFTFBFUl9E RUZBVUxUX09QUywNCj4+IC0gICAgICAgLmZiX29wZW4gPSBhbWRncHVmYl9vcGVuLA0KPj4g LSAgICAgICAuZmJfcmVsZWFzZSA9IGFtZGdwdWZiX3JlbGVhc2UsDQo+PiAtICAgICAgIC5m Yl9maWxscmVjdCA9IGRybV9mYl9oZWxwZXJfY2ZiX2ZpbGxyZWN0LA0KPj4gLSAgICAgICAu ZmJfY29weWFyZWEgPSBkcm1fZmJfaGVscGVyX2NmYl9jb3B5YXJlYSwNCj4+IC0gICAgICAg LmZiX2ltYWdlYmxpdCA9IGRybV9mYl9oZWxwZXJfY2ZiX2ltYWdlYmxpdCwNCj4+IC19Ow0K Pj4gLQ0KPj4gLQ0KPj4gLWludCBhbWRncHVfYWxpZ25fcGl0Y2goc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYsIGludCB3aWR0aCwgaW50IGNwcCwgYm9vbCB0aWxlZCkNCj4+IC17DQo+ PiAtICAgICAgIGludCBhbGlnbmVkID0gd2lkdGg7DQo+PiAtICAgICAgIGludCBwaXRjaF9t YXNrID0gMDsNCj4+IC0NCj4+IC0gICAgICAgc3dpdGNoIChjcHApIHsNCj4+IC0gICAgICAg Y2FzZSAxOg0KPj4gLSAgICAgICAgICAgICAgIHBpdGNoX21hc2sgPSAyNTU7DQo+PiAtICAg ICAgICAgICAgICAgYnJlYWs7DQo+PiAtICAgICAgIGNhc2UgMjoNCj4+IC0gICAgICAgICAg ICAgICBwaXRjaF9tYXNrID0gMTI3Ow0KPj4gLSAgICAgICAgICAgICAgIGJyZWFrOw0KPj4g LSAgICAgICBjYXNlIDM6DQo+PiAtICAgICAgIGNhc2UgNDoNCj4+IC0gICAgICAgICAgICAg ICBwaXRjaF9tYXNrID0gNjM7DQo+PiAtICAgICAgICAgICAgICAgYnJlYWs7DQo+PiAtICAg ICAgIH0NCj4+IC0NCj4+IC0gICAgICAgYWxpZ25lZCArPSBwaXRjaF9tYXNrOw0KPj4gLSAg ICAgICBhbGlnbmVkICY9IH5waXRjaF9tYXNrOw0KPj4gLSAgICAgICByZXR1cm4gYWxpZ25l ZCAqIGNwcDsNCj4+IC19DQo+PiAtDQo+PiAtc3RhdGljIHZvaWQgYW1kZ3B1ZmJfZGVzdHJv eV9waW5uZWRfb2JqZWN0KHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ29iaikNCj4+IC17DQo+ PiAtICAgICAgIHN0cnVjdCBhbWRncHVfYm8gKmFibyA9IGdlbV90b19hbWRncHVfYm8oZ29i aik7DQo+PiAtICAgICAgIGludCByZXQ7DQo+PiAtDQo+PiAtICAgICAgIHJldCA9IGFtZGdw dV9ib19yZXNlcnZlKGFibywgdHJ1ZSk7DQo+PiAtICAgICAgIGlmIChsaWtlbHkocmV0ID09 IDApKSB7DQo+PiAtICAgICAgICAgICAgICAgYW1kZ3B1X2JvX2t1bm1hcChhYm8pOw0KPj4g LSAgICAgICAgICAgICAgIGFtZGdwdV9ib191bnBpbihhYm8pOw0KPj4gLSAgICAgICAgICAg ICAgIGFtZGdwdV9ib191bnJlc2VydmUoYWJvKTsNCj4+IC0gICAgICAgfQ0KPj4gLSAgICAg ICBkcm1fZ2VtX29iamVjdF9wdXQoZ29iaik7DQo+PiAtfQ0KPj4gLQ0KPj4gLXN0YXRpYyBp bnQgYW1kZ3B1ZmJfY3JlYXRlX3Bpbm5lZF9vYmplY3Qoc3RydWN0IGFtZGdwdV9mYmRldiAq cmZiZGV2LA0KPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgZHJtX21vZGVfZmJfY21kMiAqbW9kZV9jbWQsDQo+PiAtICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqKmdvYmpf cCkNCj4+IC17DQo+PiAtICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fZm9ybWF0X2luZm8gKmlu Zm87DQo+PiAtICAgICAgIHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gcmZiZGV2LT5h ZGV2Ow0KPj4gLSAgICAgICBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdvYmogPSBOVUxMOw0K Pj4gLSAgICAgICBzdHJ1Y3QgYW1kZ3B1X2JvICphYm8gPSBOVUxMOw0KPj4gLSAgICAgICBi b29sIGZiX3RpbGVkID0gZmFsc2U7IC8qIHVzZWZ1bCBmb3IgdGVzdGluZyAqLw0KPj4gLSAg ICAgICB1MzIgdGlsaW5nX2ZsYWdzID0gMCwgZG9tYWluOw0KPj4gLSAgICAgICBpbnQgcmV0 Ow0KPj4gLSAgICAgICBpbnQgYWxpZ25lZF9zaXplLCBzaXplOw0KPj4gLSAgICAgICBpbnQg aGVpZ2h0ID0gbW9kZV9jbWQtPmhlaWdodDsNCj4+IC0gICAgICAgdTMyIGNwcDsNCj4+IC0g ICAgICAgdTY0IGZsYWdzID0gQU1ER1BVX0dFTV9DUkVBVEVfQ1BVX0FDQ0VTU19SRVFVSVJF RCB8DQo+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQU1ER1BVX0dFTV9DUkVB VEVfVlJBTV9DT05USUdVT1VTICAgICB8DQo+PiAtICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgQU1ER1BVX0dFTV9DUkVBVEVfVlJBTV9DTEVBUkVEOw0KPj4gLQ0KPj4gLSAgICAg ICBpbmZvID0gZHJtX2dldF9mb3JtYXRfaW5mbyhhZGV2X3RvX2RybShhZGV2KSwgbW9kZV9j bWQpOw0KPj4gLSAgICAgICBjcHAgPSBpbmZvLT5jcHBbMF07DQo+PiAtDQo+PiAtICAgICAg IC8qIG5lZWQgdG8gYWxpZ24gcGl0Y2ggd2l0aCBjcnRjIGxpbWl0cyAqLw0KPj4gLSAgICAg ICBtb2RlX2NtZC0+cGl0Y2hlc1swXSA9IGFtZGdwdV9hbGlnbl9waXRjaChhZGV2LCBtb2Rl X2NtZC0+d2lkdGgsIGNwcCwNCj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZmJfdGlsZWQpOw0KPj4gLSAgICAgICBkb21haW4gPSBhbWRn cHVfZGlzcGxheV9zdXBwb3J0ZWRfZG9tYWlucyhhZGV2LCBmbGFncyk7DQo+PiAtICAgICAg IGhlaWdodCA9IEFMSUdOKG1vZGVfY21kLT5oZWlnaHQsIDgpOw0KPj4gLSAgICAgICBzaXpl ID0gbW9kZV9jbWQtPnBpdGNoZXNbMF0gKiBoZWlnaHQ7DQo+PiAtICAgICAgIGFsaWduZWRf c2l6ZSA9IEFMSUdOKHNpemUsIFBBR0VfU0laRSk7DQo+PiAtICAgICAgIHJldCA9IGFtZGdw dV9nZW1fb2JqZWN0X2NyZWF0ZShhZGV2LCBhbGlnbmVkX3NpemUsIDAsIGRvbWFpbiwgZmxh Z3MsDQo+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0dG1fYm9f dHlwZV9kZXZpY2UsIE5VTEwsICZnb2JqKTsNCj4+IC0gICAgICAgaWYgKHJldCkgew0KPj4g LSAgICAgICAgICAgICAgIHByX2VycigiZmFpbGVkIHRvIGFsbG9jYXRlIGZyYW1lYnVmZmVy ICglZClcbiIsIGFsaWduZWRfc2l6ZSk7DQo+PiAtICAgICAgICAgICAgICAgcmV0dXJuIC1F Tk9NRU07DQo+PiAtICAgICAgIH0NCj4+IC0gICAgICAgYWJvID0gZ2VtX3RvX2FtZGdwdV9i byhnb2JqKTsNCj4+IC0NCj4+IC0gICAgICAgaWYgKGZiX3RpbGVkKQ0KPj4gLSAgICAgICAg ICAgICAgIHRpbGluZ19mbGFncyA9IEFNREdQVV9USUxJTkdfU0VUKEFSUkFZX01PREUsIEdS UEhfQVJSQVlfMkRfVElMRURfVEhJTjEpOw0KPj4gLQ0KPj4gLSAgICAgICByZXQgPSBhbWRn cHVfYm9fcmVzZXJ2ZShhYm8sIGZhbHNlKTsNCj4+IC0gICAgICAgaWYgKHVubGlrZWx5KHJl dCAhPSAwKSkNCj4+IC0gICAgICAgICAgICAgICBnb3RvIG91dF91bnJlZjsNCj4+IC0NCj4+ IC0gICAgICAgaWYgKHRpbGluZ19mbGFncykgew0KPj4gLSAgICAgICAgICAgICAgIHJldCA9 IGFtZGdwdV9ib19zZXRfdGlsaW5nX2ZsYWdzKGFibywNCj4+IC0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aWxpbmdfZmxhZ3MpOw0KPj4gLSAg ICAgICAgICAgICAgIGlmIChyZXQpDQo+PiAtICAgICAgICAgICAgICAgICAgICAgICBkZXZf ZXJyKGFkZXYtPmRldiwgIkZCIGZhaWxlZCB0byBzZXQgdGlsaW5nIGZsYWdzXG4iKTsNCj4+ IC0gICAgICAgfQ0KPj4gLQ0KPj4gLSAgICAgICByZXQgPSBhbWRncHVfYm9fcGluKGFibywg ZG9tYWluKTsNCj4+IC0gICAgICAgaWYgKHJldCkgew0KPj4gLSAgICAgICAgICAgICAgIGFt ZGdwdV9ib191bnJlc2VydmUoYWJvKTsNCj4+IC0gICAgICAgICAgICAgICBnb3RvIG91dF91 bnJlZjsNCj4+IC0gICAgICAgfQ0KPj4gLQ0KPj4gLSAgICAgICByZXQgPSBhbWRncHVfdHRt X2FsbG9jX2dhcnQoJmFiby0+dGJvKTsNCj4+IC0gICAgICAgaWYgKHJldCkgew0KPj4gLSAg ICAgICAgICAgICAgIGFtZGdwdV9ib191bnJlc2VydmUoYWJvKTsNCj4+IC0gICAgICAgICAg ICAgICBkZXZfZXJyKGFkZXYtPmRldiwgIiVwIGJpbmQgZmFpbGVkXG4iLCBhYm8pOw0KPj4g LSAgICAgICAgICAgICAgIGdvdG8gb3V0X3VucmVmOw0KPj4gLSAgICAgICB9DQo+PiAtDQo+ PiAtICAgICAgIHJldCA9IGFtZGdwdV9ib19rbWFwKGFibywgTlVMTCk7DQo+PiAtICAgICAg IGFtZGdwdV9ib191bnJlc2VydmUoYWJvKTsNCj4+IC0gICAgICAgaWYgKHJldCkgew0KPj4g LSAgICAgICAgICAgICAgIGdvdG8gb3V0X3VucmVmOw0KPj4gLSAgICAgICB9DQo+PiAtDQo+ PiAtICAgICAgICpnb2JqX3AgPSBnb2JqOw0KPj4gLSAgICAgICByZXR1cm4gMDsNCj4+IC1v dXRfdW5yZWY6DQo+PiAtICAgICAgIGFtZGdwdWZiX2Rlc3Ryb3lfcGlubmVkX29iamVjdChn b2JqKTsNCj4+IC0gICAgICAgKmdvYmpfcCA9IE5VTEw7DQo+PiAtICAgICAgIHJldHVybiBy ZXQ7DQo+PiAtfQ0KPj4gLQ0KPj4gLXN0YXRpYyBpbnQgYW1kZ3B1ZmJfY3JlYXRlKHN0cnVj dCBkcm1fZmJfaGVscGVyICpoZWxwZXIsDQo+PiAtICAgICAgICAgICAgICAgICAgICAgICAg ICBzdHJ1Y3QgZHJtX2ZiX2hlbHBlcl9zdXJmYWNlX3NpemUgKnNpemVzKQ0KPj4gLXsNCj4+ IC0gICAgICAgc3RydWN0IGFtZGdwdV9mYmRldiAqcmZiZGV2ID0gKHN0cnVjdCBhbWRncHVf ZmJkZXYgKiloZWxwZXI7DQo+PiAtICAgICAgIHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 ID0gcmZiZGV2LT5hZGV2Ow0KPj4gLSAgICAgICBzdHJ1Y3QgZmJfaW5mbyAqaW5mbzsNCj4+ IC0gICAgICAgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBOVUxMOw0KPj4gLSAgICAg ICBzdHJ1Y3QgZHJtX21vZGVfZmJfY21kMiBtb2RlX2NtZDsNCj4+IC0gICAgICAgc3RydWN0 IGRybV9nZW1fb2JqZWN0ICpnb2JqID0gTlVMTDsNCj4+IC0gICAgICAgc3RydWN0IGFtZGdw dV9ibyAqYWJvID0gTlVMTDsNCj4+IC0gICAgICAgaW50IHJldDsNCj4+IC0NCj4+IC0gICAg ICAgbWVtc2V0KCZtb2RlX2NtZCwgMCwgc2l6ZW9mKG1vZGVfY21kKSk7DQo+PiAtICAgICAg IG1vZGVfY21kLndpZHRoID0gc2l6ZXMtPnN1cmZhY2Vfd2lkdGg7DQo+PiAtICAgICAgIG1v ZGVfY21kLmhlaWdodCA9IHNpemVzLT5zdXJmYWNlX2hlaWdodDsNCj4+IC0NCj4+IC0gICAg ICAgaWYgKHNpemVzLT5zdXJmYWNlX2JwcCA9PSAyNCkNCj4+IC0gICAgICAgICAgICAgICBz aXplcy0+c3VyZmFjZV9icHAgPSAzMjsNCj4+IC0NCj4+IC0gICAgICAgbW9kZV9jbWQucGl4 ZWxfZm9ybWF0ID0gZHJtX21vZGVfbGVnYWN5X2ZiX2Zvcm1hdChzaXplcy0+c3VyZmFjZV9i cHAsDQo+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2l6ZXMtPnN1cmZhY2VfZGVwdGgpOw0KPj4gLQ0KPj4gLSAgICAgICBy ZXQgPSBhbWRncHVmYl9jcmVhdGVfcGlubmVkX29iamVjdChyZmJkZXYsICZtb2RlX2NtZCwg JmdvYmopOw0KPj4gLSAgICAgICBpZiAocmV0KSB7DQo+PiAtICAgICAgICAgICAgICAgRFJN X0VSUk9SKCJmYWlsZWQgdG8gY3JlYXRlIGZiY29uIG9iamVjdCAlZFxuIiwgcmV0KTsNCj4+ IC0gICAgICAgICAgICAgICByZXR1cm4gcmV0Ow0KPj4gLSAgICAgICB9DQo+PiAtDQo+PiAt ICAgICAgIGFibyA9IGdlbV90b19hbWRncHVfYm8oZ29iaik7DQo+PiAtDQo+PiAtICAgICAg IC8qIG9rYXkgd2UgaGF2ZSBhbiBvYmplY3Qgbm93IGFsbG9jYXRlIHRoZSBmcmFtZWJ1ZmZl ciAqLw0KPj4gLSAgICAgICBpbmZvID0gZHJtX2ZiX2hlbHBlcl9hbGxvY19mYmkoaGVscGVy KTsNCj4+IC0gICAgICAgaWYgKElTX0VSUihpbmZvKSkgew0KPj4gLSAgICAgICAgICAgICAg IHJldCA9IFBUUl9FUlIoaW5mbyk7DQo+PiAtICAgICAgICAgICAgICAgZ290byBvdXQ7DQo+ PiAtICAgICAgIH0NCj4+IC0NCj4+IC0gICAgICAgcmV0ID0gYW1kZ3B1X2Rpc3BsYXlfZ2Vt X2ZiX2luaXQoYWRldl90b19kcm0oYWRldiksICZyZmJkZXYtPnJmYiwNCj4+IC0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1vZGVfY21kLCBnb2JqKTsNCj4+ IC0gICAgICAgaWYgKHJldCkgew0KPj4gLSAgICAgICAgICAgICAgIERSTV9FUlJPUigiZmFp bGVkIHRvIGluaXRpYWxpemUgZnJhbWVidWZmZXIgJWRcbiIsIHJldCk7DQo+PiAtICAgICAg ICAgICAgICAgZ290byBvdXQ7DQo+PiAtICAgICAgIH0NCj4+IC0NCj4+IC0gICAgICAgZmIg PSAmcmZiZGV2LT5yZmIuYmFzZTsNCj4+IC0NCj4+IC0gICAgICAgLyogc2V0dXAgaGVscGVy ICovDQo+PiAtICAgICAgIHJmYmRldi0+aGVscGVyLmZiID0gZmI7DQo+PiAtDQo+PiAtICAg ICAgIGluZm8tPmZib3BzID0gJmFtZGdwdWZiX29wczsNCj4+IC0NCj4+IC0gICAgICAgaW5m by0+Zml4LnNtZW1fc3RhcnQgPSBhbWRncHVfZ21jX3ZyYW1fY3B1X3BhKGFkZXYsIGFibyk7 DQo+PiAtICAgICAgIGluZm8tPmZpeC5zbWVtX2xlbiA9IGFtZGdwdV9ib19zaXplKGFibyk7 DQo+PiAtICAgICAgIGluZm8tPnNjcmVlbl9iYXNlID0gYW1kZ3B1X2JvX2twdHIoYWJvKTsN Cj4+IC0gICAgICAgaW5mby0+c2NyZWVuX3NpemUgPSBhbWRncHVfYm9fc2l6ZShhYm8pOw0K Pj4gLQ0KPj4gLSAgICAgICBkcm1fZmJfaGVscGVyX2ZpbGxfaW5mbyhpbmZvLCAmcmZiZGV2 LT5oZWxwZXIsIHNpemVzKTsNCj4+IC0NCj4+IC0gICAgICAgLyogc2V0dXAgYXBlcnR1cmUg YmFzZS9zaXplIGZvciB2ZXNhZmIgdGFrZW92ZXIgKi8NCj4+IC0gICAgICAgaW5mby0+YXBl cnR1cmVzLT5yYW5nZXNbMF0uYmFzZSA9IGFkZXZfdG9fZHJtKGFkZXYpLT5tb2RlX2NvbmZp Zy5mYl9iYXNlOw0KPj4gLSAgICAgICBpbmZvLT5hcGVydHVyZXMtPnJhbmdlc1swXS5zaXpl ID0gYWRldi0+Z21jLmFwZXJfc2l6ZTsNCj4+IC0NCj4+IC0gICAgICAgLyogVXNlIGRlZmF1 bHQgc2NyYXRjaCBwaXhtYXAgKGluZm8tPnBpeG1hcC5mbGFncyA9IEZCX1BJWE1BUF9TWVNU RU0pICovDQo+PiAtDQo+PiAtICAgICAgIGlmIChpbmZvLT5zY3JlZW5fYmFzZSA9PSBOVUxM KSB7DQo+PiAtICAgICAgICAgICAgICAgcmV0ID0gLUVOT1NQQzsNCj4+IC0gICAgICAgICAg ICAgICBnb3RvIG91dDsNCj4+IC0gICAgICAgfQ0KPj4gLQ0KPj4gLSAgICAgICBEUk1fSU5G TygiZmIgbWFwcGFibGUgYXQgMHglbFhcbiIsICBpbmZvLT5maXguc21lbV9zdGFydCk7DQo+ PiAtICAgICAgIERSTV9JTkZPKCJ2cmFtIGFwcGVyIGF0IDB4JWxYXG4iLCAgKHVuc2lnbmVk IGxvbmcpYWRldi0+Z21jLmFwZXJfYmFzZSk7DQo+PiAtICAgICAgIERSTV9JTkZPKCJzaXpl ICVsdVxuIiwgKHVuc2lnbmVkIGxvbmcpYW1kZ3B1X2JvX3NpemUoYWJvKSk7DQo+PiAtICAg ICAgIERSTV9JTkZPKCJmYiBkZXB0aCBpcyAlZFxuIiwgZmItPmZvcm1hdC0+ZGVwdGgpOw0K Pj4gLSAgICAgICBEUk1fSU5GTygiICAgcGl0Y2ggaXMgJWRcbiIsIGZiLT5waXRjaGVzWzBd KTsNCj4+IC0NCj4+IC0gICAgICAgdmdhX3N3aXRjaGVyb29fY2xpZW50X2ZiX3NldChhZGV2 LT5wZGV2LCBpbmZvKTsNCj4+IC0gICAgICAgcmV0dXJuIDA7DQo+PiAtDQo+PiAtb3V0Og0K Pj4gLSAgICAgICBpZiAoZmIgJiYgcmV0KSB7DQo+PiAtICAgICAgICAgICAgICAgZHJtX2dl bV9vYmplY3RfcHV0KGdvYmopOw0KPj4gLSAgICAgICAgICAgICAgIGRybV9mcmFtZWJ1ZmZl cl91bnJlZ2lzdGVyX3ByaXZhdGUoZmIpOw0KPj4gLSAgICAgICAgICAgICAgIGRybV9mcmFt ZWJ1ZmZlcl9jbGVhbnVwKGZiKTsNCj4+IC0gICAgICAgICAgICAgICBrZnJlZShmYik7DQo+ PiAtICAgICAgIH0NCj4+IC0gICAgICAgcmV0dXJuIHJldDsNCj4+IC19DQo+PiAtDQo+PiAt c3RhdGljIGludCBhbWRncHVfZmJkZXZfZGVzdHJveShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCBzdHJ1Y3QgYW1kZ3B1X2ZiZGV2ICpyZmJkZXYpDQo+PiAtew0KPj4gLSAgICAgICBzdHJ1 Y3QgYW1kZ3B1X2ZyYW1lYnVmZmVyICpyZmIgPSAmcmZiZGV2LT5yZmI7DQo+PiAtICAgICAg IGludCBpOw0KPj4gLQ0KPj4gLSAgICAgICBkcm1fZmJfaGVscGVyX3VucmVnaXN0ZXJfZmJp KCZyZmJkZXYtPmhlbHBlcik7DQo+PiAtDQo+PiAtICAgICAgIGlmIChyZmItPmJhc2Uub2Jq WzBdKSB7DQo+PiAtICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHJmYi0+YmFzZS5m b3JtYXQtPm51bV9wbGFuZXM7IGkrKykNCj4+IC0gICAgICAgICAgICAgICAgICAgICAgIGRy bV9nZW1fb2JqZWN0X3B1dChyZmItPmJhc2Uub2JqWzBdKTsNCj4+IC0gICAgICAgICAgICAg ICBhbWRncHVmYl9kZXN0cm95X3Bpbm5lZF9vYmplY3QocmZiLT5iYXNlLm9ialswXSk7DQo+ PiAtICAgICAgICAgICAgICAgcmZiLT5iYXNlLm9ialswXSA9IE5VTEw7DQo+PiAtICAgICAg ICAgICAgICAgZHJtX2ZyYW1lYnVmZmVyX3VucmVnaXN0ZXJfcHJpdmF0ZSgmcmZiLT5iYXNl KTsNCj4+IC0gICAgICAgICAgICAgICBkcm1fZnJhbWVidWZmZXJfY2xlYW51cCgmcmZiLT5i YXNlKTsNCj4+IC0gICAgICAgfQ0KPj4gLSAgICAgICBkcm1fZmJfaGVscGVyX2ZpbmkoJnJm YmRldi0+aGVscGVyKTsNCj4+IC0NCj4+IC0gICAgICAgcmV0dXJuIDA7DQo+PiAtfQ0KPj4g LQ0KPj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2ZiX2hlbHBlcl9mdW5jcyBhbWRncHVf ZmJfaGVscGVyX2Z1bmNzID0gew0KPj4gLSAgICAgICAuZmJfcHJvYmUgPSBhbWRncHVmYl9j cmVhdGUsDQo+PiAtfTsNCj4+IC0NCj4+IC1pbnQgYW1kZ3B1X2ZiZGV2X2luaXQoc3RydWN0 IGFtZGdwdV9kZXZpY2UgKmFkZXYpDQo+PiAtew0KPj4gLSAgICAgICBzdHJ1Y3QgYW1kZ3B1 X2ZiZGV2ICpyZmJkZXY7DQo+PiAtICAgICAgIGludCBicHBfc2VsID0gMzI7DQo+PiAtICAg ICAgIGludCByZXQ7DQo+PiAtDQo+PiAtICAgICAgIC8qIGRvbid0IGluaXQgZmJkZXYgb24g aHcgd2l0aG91dCBEQ0UgKi8NCj4+IC0gICAgICAgaWYgKCFhZGV2LT5tb2RlX2luZm8ubW9k ZV9jb25maWdfaW5pdGlhbGl6ZWQpDQo+PiAtICAgICAgICAgICAgICAgcmV0dXJuIDA7DQo+ PiAtDQo+PiAtICAgICAgIC8qIGRvbid0IGluaXQgZmJkZXYgaWYgdGhlcmUgYXJlIG5vIGNv bm5lY3RvcnMgKi8NCj4+IC0gICAgICAgaWYgKGxpc3RfZW1wdHkoJmFkZXZfdG9fZHJtKGFk ZXYpLT5tb2RlX2NvbmZpZy5jb25uZWN0b3JfbGlzdCkpDQo+PiAtICAgICAgICAgICAgICAg cmV0dXJuIDA7DQo+PiAtDQo+PiAtICAgICAgIC8qIHNlbGVjdCA4IGJwcCBjb25zb2xlIG9u IGxvdyB2cmFtIGNhcmRzICovDQo+PiAtICAgICAgIGlmIChhZGV2LT5nbWMucmVhbF92cmFt X3NpemUgPD0gKDMyKjEwMjQqMTAyNCkpDQo+PiAtICAgICAgICAgICAgICAgYnBwX3NlbCA9 IDg7DQo+PiAtDQo+PiAtICAgICAgIHJmYmRldiA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBh bWRncHVfZmJkZXYpLCBHRlBfS0VSTkVMKTsNCj4+IC0gICAgICAgaWYgKCFyZmJkZXYpDQo+ PiAtICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07DQo+PiAtDQo+PiAtICAgICAgIHJm YmRldi0+YWRldiA9IGFkZXY7DQo+PiAtICAgICAgIGFkZXYtPm1vZGVfaW5mby5yZmJkZXYg PSByZmJkZXY7DQo+PiAtDQo+PiAtICAgICAgIGRybV9mYl9oZWxwZXJfcHJlcGFyZShhZGV2 X3RvX2RybShhZGV2KSwgJnJmYmRldi0+aGVscGVyLA0KPj4gLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJmFtZGdwdV9mYl9oZWxwZXJfZnVuY3MpOw0KPj4gLQ0KPj4gLSAgICAg ICByZXQgPSBkcm1fZmJfaGVscGVyX2luaXQoYWRldl90b19kcm0oYWRldiksICZyZmJkZXYt PmhlbHBlcik7DQo+PiAtICAgICAgIGlmIChyZXQpIHsNCj4+IC0gICAgICAgICAgICAgICBr ZnJlZShyZmJkZXYpOw0KPj4gLSAgICAgICAgICAgICAgIHJldHVybiByZXQ7DQo+PiAtICAg ICAgIH0NCj4+IC0NCj4+IC0gICAgICAgLyogZGlzYWJsZSBhbGwgdGhlIHBvc3NpYmxlIG91 dHB1dHMvY3J0Y3MgYmVmb3JlIGVudGVyaW5nIEtNUyBtb2RlICovDQo+PiAtICAgICAgIGlm ICghYW1kZ3B1X2RldmljZV9oYXNfZGNfc3VwcG9ydChhZGV2KSAmJiAhYW1kZ3B1X3ZpcnR1 YWxfZGlzcGxheSkNCj4+IC0gICAgICAgICAgICAgICBkcm1faGVscGVyX2Rpc2FibGVfdW51 c2VkX2Z1bmN0aW9ucyhhZGV2X3RvX2RybShhZGV2KSk7DQo+PiAtDQo+PiAtICAgICAgIGRy bV9mYl9oZWxwZXJfaW5pdGlhbF9jb25maWcoJnJmYmRldi0+aGVscGVyLCBicHBfc2VsKTsN Cj4+IC0gICAgICAgcmV0dXJuIDA7DQo+PiAtfQ0KPj4gLQ0KPj4gLXZvaWQgYW1kZ3B1X2Zi ZGV2X2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpDQo+PiAtew0KPj4gLSAgICAg ICBpZiAoIWFkZXYtPm1vZGVfaW5mby5yZmJkZXYpDQo+PiAtICAgICAgICAgICAgICAgcmV0 dXJuOw0KPj4gLQ0KPj4gLSAgICAgICBhbWRncHVfZmJkZXZfZGVzdHJveShhZGV2X3RvX2Ry bShhZGV2KSwgYWRldi0+bW9kZV9pbmZvLnJmYmRldik7DQo+PiAtICAgICAgIGtmcmVlKGFk ZXYtPm1vZGVfaW5mby5yZmJkZXYpOw0KPj4gLSAgICAgICBhZGV2LT5tb2RlX2luZm8ucmZi ZGV2ID0gTlVMTDsNCj4+IC19DQo+PiAtDQo+PiAtdm9pZCBhbWRncHVfZmJkZXZfc2V0X3N1 c3BlbmQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIGludCBzdGF0ZSkNCj4+IC17DQo+ PiAtICAgICAgIGlmIChhZGV2LT5tb2RlX2luZm8ucmZiZGV2KQ0KPj4gLSAgICAgICAgICAg ICAgIGRybV9mYl9oZWxwZXJfc2V0X3N1c3BlbmRfdW5sb2NrZWQoJmFkZXYtPm1vZGVfaW5m by5yZmJkZXYtPmhlbHBlciwNCj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0YXRlKTsNCj4+IC19DQo+PiAtDQo+PiAtaW50IGFtZGdw dV9mYmRldl90b3RhbF9zaXplKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQ0KPj4gLXsN Cj4+IC0gICAgICAgc3RydWN0IGFtZGdwdV9ibyAqcm9iajsNCj4+IC0gICAgICAgaW50IHNp emUgPSAwOw0KPj4gLQ0KPj4gLSAgICAgICBpZiAoIWFkZXYtPm1vZGVfaW5mby5yZmJkZXYp DQo+PiAtICAgICAgICAgICAgICAgcmV0dXJuIDA7DQo+PiAtDQo+PiAtICAgICAgIHJvYmog PSBnZW1fdG9fYW1kZ3B1X2JvKGFkZXYtPm1vZGVfaW5mby5yZmJkZXYtPnJmYi5iYXNlLm9i alswXSk7DQo+PiAtICAgICAgIHNpemUgKz0gYW1kZ3B1X2JvX3NpemUocm9iaik7DQo+PiAt ICAgICAgIHJldHVybiBzaXplOw0KPj4gLX0NCj4+IC0NCj4+IC1ib29sIGFtZGdwdV9mYmRl dl9yb2JqX2lzX2ZiKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBzdHJ1Y3QgYW1kZ3B1 X2JvICpyb2JqKQ0KPj4gLXsNCj4+IC0gICAgICAgaWYgKCFhZGV2LT5tb2RlX2luZm8ucmZi ZGV2KQ0KPj4gLSAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCj4+IC0gICAgICAgaWYg KHJvYmogPT0gZ2VtX3RvX2FtZGdwdV9ibyhhZGV2LT5tb2RlX2luZm8ucmZiZGV2LT5yZmIu YmFzZS5vYmpbMF0pKQ0KPj4gLSAgICAgICAgICAgICAgIHJldHVybiB0cnVlOw0KPj4gLSAg ICAgICByZXR1cm4gZmFsc2U7DQo+PiAtfQ0KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV9nZW0uYw0KPj4gaW5kZXggOWUyNTI1Yjk2ZDA0Li4zNTVkYjg0Mzg1MjIg MTAwNjQ0DQo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ2Vt LmMNCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nZW0uYw0K Pj4gQEAgLTg3Niw2ICs4NzYsMzIgQEAgaW50IGFtZGdwdV9nZW1fb3BfaW9jdGwoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwNCj4+ICAgICAgICAgIHJldHVybiByOw0K Pj4gICB9DQo+Pg0KPj4gK3N0YXRpYyBpbnQgYW1kZ3B1X2dlbV9hbGlnbl9waXRjaChzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpbnQgd2lkdGgsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaW50IGNwcCwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29s IHRpbGVkKQ0KPj4gK3sNCj4+ICsgICAgICAgaW50IGFsaWduZWQgPSB3aWR0aDsNCj4+ICsg ICAgICAgaW50IHBpdGNoX21hc2sgPSAwOw0KPj4gKw0KPj4gKyAgICAgICBzd2l0Y2ggKGNw cCkgew0KPj4gKyAgICAgICBjYXNlIDE6DQo+PiArICAgICAgICAgICAgICAgcGl0Y2hfbWFz ayA9IDI1NTsNCj4+ICsgICAgICAgICAgICAgICBicmVhazsNCj4+ICsgICAgICAgY2FzZSAy Og0KPj4gKyAgICAgICAgICAgICAgIHBpdGNoX21hc2sgPSAxMjc7DQo+PiArICAgICAgICAg ICAgICAgYnJlYWs7DQo+PiArICAgICAgIGNhc2UgMzoNCj4+ICsgICAgICAgY2FzZSA0Og0K Pj4gKyAgICAgICAgICAgICAgIHBpdGNoX21hc2sgPSA2MzsNCj4+ICsgICAgICAgICAgICAg ICBicmVhazsNCj4+ICsgICAgICAgfQ0KPj4gKw0KPj4gKyAgICAgICBhbGlnbmVkICs9IHBp dGNoX21hc2s7DQo+PiArICAgICAgIGFsaWduZWQgJj0gfnBpdGNoX21hc2s7DQo+PiArICAg ICAgIHJldHVybiBhbGlnbmVkICogY3BwOw0KPj4gK30NCj4+ICsNCj4+ICAgaW50IGFtZGdw dV9tb2RlX2R1bWJfY3JlYXRlKHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LA0KPj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LA0KPj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX21vZGVfY3JlYXRlX2R1 bWIgKmFyZ3MpDQo+PiBAQCAtODk2LDggKzkyMiw4IEBAIGludCBhbWRncHVfbW9kZV9kdW1i X2NyZWF0ZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwNCj4+ICAgICAgICAgIGlmIChh ZGV2LT5tbWFuLmJ1ZmZlcl9mdW5jc19lbmFibGVkKQ0KPj4gICAgICAgICAgICAgICAgICBm bGFncyB8PSBBTURHUFVfR0VNX0NSRUFURV9WUkFNX0NMRUFSRUQ7DQo+Pg0KPj4gLSAgICAg ICBhcmdzLT5waXRjaCA9IGFtZGdwdV9hbGlnbl9waXRjaChhZGV2LCBhcmdzLT53aWR0aCwN Cj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRElWX1JPVU5E X1VQKGFyZ3MtPmJwcCwgOCksIDApOw0KPj4gKyAgICAgICBhcmdzLT5waXRjaCA9IGFtZGdw dV9nZW1fYWxpZ25fcGl0Y2goYWRldiwgYXJncy0+d2lkdGgsDQo+PiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBESVZfUk9VTkRfVVAoYXJncy0+YnBw LCA4KSwgMCk7DQo+PiAgICAgICAgICBhcmdzLT5zaXplID0gKHU2NClhcmdzLT5waXRjaCAq IGFyZ3MtPmhlaWdodDsNCj4+ICAgICAgICAgIGFyZ3MtPnNpemUgPSBBTElHTihhcmdzLT5z aXplLCBQQUdFX1NJWkUpOw0KPj4gICAgICAgICAgZG9tYWluID0gYW1kZ3B1X2JvX2dldF9w cmVmZXJyZWRfZG9tYWluKGFkZXYsDQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X21vZGUuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9tb2RlLmgNCj4+IGluZGV4IDg5ZmIzNzJlZDQ5Yy4uNjA0M2JmNmZkNDE0IDEw MDY0NA0KPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X21vZGUu aA0KPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X21vZGUuaA0K Pj4gQEAgLTIzMiw4ICsyMzIsNiBAQCBzdHJ1Y3QgYW1kZ3B1X2kyY19jaGFuIHsNCj4+ICAg ICAgICAgIHN0cnVjdCBtdXRleCBtdXRleDsNCj4+ICAgfTsNCj4+DQo+PiAtc3RydWN0IGFt ZGdwdV9mYmRldjsNCj4+IC0NCj4+ICAgc3RydWN0IGFtZGdwdV9hZm10IHsNCj4+ICAgICAg ICAgIGJvb2wgZW5hYmxlZDsNCj4+ICAgICAgICAgIGludCBvZmZzZXQ7DQo+PiBAQCAtMzA5 LDEzICszMDcsNiBAQCBzdHJ1Y3QgYW1kZ3B1X2ZyYW1lYnVmZmVyIHsNCj4+ICAgICAgICAg IHVpbnQ2NF90IGFkZHJlc3M7DQo+PiAgIH07DQo+Pg0KPj4gLXN0cnVjdCBhbWRncHVfZmJk ZXYgew0KPj4gLSAgICAgICBzdHJ1Y3QgZHJtX2ZiX2hlbHBlciBoZWxwZXI7DQo+PiAtICAg ICAgIHN0cnVjdCBhbWRncHVfZnJhbWVidWZmZXIgcmZiOw0KPj4gLSAgICAgICBzdHJ1Y3Qg bGlzdF9oZWFkIGZiZGV2X2xpc3Q7DQo+PiAtICAgICAgIHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2Ow0KPj4gLX07DQo+PiAtDQo+PiAgIHN0cnVjdCBhbWRncHVfbW9kZV9pbmZvIHsN Cj4+ICAgICAgICAgIHN0cnVjdCBhdG9tX2NvbnRleHQgKmF0b21fY29udGV4dDsNCj4+ICAg ICAgICAgIHN0cnVjdCBjYXJkX2luZm8gKmF0b21fY2FyZF9pbmZvOw0KPj4gQEAgLTM0MSw4 ICszMzIsNiBAQCBzdHJ1Y3QgYW1kZ3B1X21vZGVfaW5mbyB7DQo+PiAgICAgICAgICBzdHJ1 Y3QgZWRpZCAqYmlvc19oYXJkY29kZWRfZWRpZDsNCj4+ICAgICAgICAgIGludCBiaW9zX2hh cmRjb2RlZF9lZGlkX3NpemU7DQo+Pg0KPj4gLSAgICAgICAvKiBwb2ludGVyIHRvIGZiZGV2 IGluZm8gc3RydWN0dXJlICovDQo+PiAtICAgICAgIHN0cnVjdCBhbWRncHVfZmJkZXYgKnJm YmRldjsNCj4+ICAgICAgICAgIC8qIGZpcm13YXJlIGZsYWdzICovDQo+PiAgICAgICAgICB1 MzIgZmlybXdhcmVfZmxhZ3M7DQo+PiAgICAgICAgICAvKiBwb2ludGVyIHRvIGJhY2tsaWdo dCBlbmNvZGVyICovDQo+PiBAQCAtNjMxLDE1ICs2MjAsNiBAQCBib29sIGFtZGdwdV9jcnRj X2dldF9zY2Fub3V0X3Bvc2l0aW9uKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywNCj4+ICAgICAg ICAgICAgICAgICAgICAgICAgICBpbnQgKmhwb3MsIGt0aW1lX3QgKnN0aW1lLCBrdGltZV90 ICpldGltZSwNCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgZHJt X2Rpc3BsYXlfbW9kZSAqbW9kZSk7DQo+Pg0KPj4gLS8qIGZiZGV2IGxheWVyICovDQo+PiAt aW50IGFtZGdwdV9mYmRldl9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsNCj4+ IC12b2lkIGFtZGdwdV9mYmRldl9maW5pKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsN Cj4+IC12b2lkIGFtZGdwdV9mYmRldl9zZXRfc3VzcGVuZChzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldiwgaW50IHN0YXRlKTsNCj4+IC1pbnQgYW1kZ3B1X2ZiZGV2X3RvdGFsX3NpemUo c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOw0KPj4gLWJvb2wgYW1kZ3B1X2ZiZGV2X3Jv YmpfaXNfZmIoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHN0cnVjdCBhbWRncHVfYm8g KnJvYmopOw0KPj4gLQ0KPj4gLWludCBhbWRncHVfYWxpZ25fcGl0Y2goc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYsIGludCB3aWR0aCwgaW50IGJwcCwgYm9vbCB0aWxlZCk7DQo+PiAt DQo+PiAgIC8qIGFtZGdwdV9kaXNwbGF5LmMgKi8NCj4+ICAgdm9pZCBhbWRncHVfZGlzcGxh eV9wcmludF9kaXNwbGF5X3NldHVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOw0KPj4gICBp bnQgYW1kZ3B1X2Rpc3BsYXlfbW9kZXNldF9jcmVhdGVfcHJvcHMoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYpOw0KPj4gLS0NCj4+IDIuMjkuMA0KPj4NCg0KLS0gDQpUaG9tYXMgWmlt bWVybWFubg0KR3JhcGhpY3MgRHJpdmVyIERldmVsb3Blcg0KU1VTRSBTb2Z0d2FyZSBTb2x1 dGlvbnMgR2VybWFueSBHbWJIDQpNYXhmZWxkc3RyLiA1LCA5MDQwOSBOw7xybmJlcmcsIEdl cm1hbnkNCihIUkIgMzY4MDksIEFHIE7DvHJuYmVyZykNCkdlc2Now6RmdHNmw7xocmVyOiBG ZWxpeCBJbWVuZMO2cmZmZXINCg== --------------0vV5AGKSz9j3UheAdCJuOihq-- --------------vhVF4U3qDK3uL1K0y63WSovg Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature" -----BEGIN PGP SIGNATURE----- wsF5BAABCAAjFiEExndm/fpuMUdwYFFolh/E3EQov+AFAmFISSkFAwAAAAAACgkQlh/E3EQov+Ce OQ/+OQOJqBAUnW2qGkl3K3Lv/9t6uU7zw50Hpw30YMhWI3NgvcJNvftX8E9IylQln1y/kcdkl2rg 0HnXqUkbn03GxOz+bayK7ANDWmC9SKVfl4kfPYRvzecz8CR3HwmJQypSDzfMcro2cer4RrZ3iSUH 9jGv7ij2V56ipapYMDoSICvXj0bcWkgmoK8GW05q4S2lnu6kKsrjGb23KDRnEBhfNBt4tFK2g81/ Nn3bICviFJlPZW4/ywvJ1G9o6UMU40StXPPwoXw0oCg2jyqGVh5VqRslzMcC0/bsp0Q2ybE8Pvu9 MJ/cXMj/e1DXXFxUfoqEoGXIlYkbKdv+reMi5xSFqn6kEF5LKic1rj3tV3k6IMCvJw0+8sl+fgrs ZkI2K2+odX8gpjfUSeUFx0oX6rRP/5ZSErotOYc5zAruExnN7/I85VXANZ9f8Q/iGMdN4vfSsLCs IkJbpkKlFRFwAV7ZaFInX0ZYBBiUOHzP9mVOVcsknqScXgGTw5zmmfgjRBH8ZPpEpqzcdXeZOuDo z1GJm2LpJXHuo6fmrJJpMKasGEL2mTXFt9kGb27qMi4GqlkAmSxVVuRMGUUZhyYHcnQlUHUlfncy m38Xi0Cml2L1zclPGi5cxISjlAcy7a6xYuvQa6XLBD/JY0AArcDtV21bJfe8M0BhKt5FoioREK/X EL4= =Xb2X -----END PGP SIGNATURE----- --------------vhVF4U3qDK3uL1K0y63WSovg--