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=-10.0 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS 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 23B7CC433E0 for ; Sun, 2 Aug 2020 08:44:22 +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 F3F0320738 for ; Sun, 2 Aug 2020 08:44:21 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org F3F0320738 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 159746E07B; Sun, 2 Aug 2020 08:44:21 +0000 (UTC) Received: from asavdk4.altibox.net (asavdk4.altibox.net [109.247.116.15]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2C6586E07B for ; Sun, 2 Aug 2020 08:44:19 +0000 (UTC) Received: from ravnborg.org (unknown [188.228.123.71]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by asavdk4.altibox.net (Postfix) with ESMTPS id 9FEBD80521; Sun, 2 Aug 2020 10:44:12 +0200 (CEST) Date: Sun, 2 Aug 2020 10:44:11 +0200 From: Sam Ravnborg To: Joe Perches Subject: Re: [PATCH] drm: Remove unnecessary drm_panel_attach and drm_panel_detach Message-ID: <20200802084411.GA908790@ravnborg.org> References: <20200801120216.8488-1-bernard@vivo.com> <20200802070743.GA822300@ravnborg.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CMAE-Score: 0 X-CMAE-Analysis: v=2.3 cv=aP3eV41m c=1 sm=1 tr=0 a=S6zTFyMACwkrwXSdXUNehg==:117 a=S6zTFyMACwkrwXSdXUNehg==:17 a=IkcTkHD0fZMA:10 a=IJv9LcIfAAAA:8 a=kWeR6k4WL16bM6A69woA:9 a=rqki1b0NXtSLW0_v:21 a=tN3dDNyB3zf30aEe:21 a=QEXdDO2ut3YA:10 a=cmr4hm9N53k6aw-X_--Q:22 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: , Cc: dri-devel@lists.freedesktop.org, opensource.kernel@vivo.com, Laurent Pinchart , Stefan Mavrodiev , David Airlie , Bernard Zhao , Jerry Han , linux-kernel@vger.kernel.org, Thierry Reding , Jagan Teki , Thomas Zimmermann , Robert Chiras , Icenowy Zheng Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" SGkgSm9lLgoKT24gU3VuLCBBdWcgMDIsIDIwMjAgYXQgMDE6MDA6MTFBTSAtMDcwMCwgSm9lIFBl cmNoZXMgd3JvdGU6Cj4gVGhlc2UgZnVuY3Rpb25zIGFyZSBub3cgZW1wdHkgYW5kIG5vIGxvbmdl cgo+IHVzZWZ1bCBzbyByZW1vdmUgdGhlIGZ1bmN0aW9ucyBhbmQgdGhlaXIgdXNlcy4KPiAKPiBT aWduZWQtb2ZmLWJ5OiBKb2UgUGVyY2hlcyA8am9lQHBlcmNoZXMuY29tPgo+IC0tLQo+IAo+IEl0 J3MgdG9vIHRlZGlvdXMgdG8gYnJlYWsgYXBhcnQgaW50byBtdWx0aXBsZSBwYXRjaGVzLgo+IERv bmUgd2l0aCBjb2NjaW5lbGxlIGFuZCB0eXBpbmcuCj4gCj4gQ29tcGlsZWQgYWxseWVzY29uZmln IHg4Ni02NCBvbmx5LgoKVGhhbmtzIGZvciBkb2luZyB0aGlzLgpCdXQgcGF0Y2ggZmFpbHMgdG8g YXBwbHkgZm9yIGRybS1taXNjLW5leHQgd2hlcmUgd2UgcHV0IHRoaXMga2luZCBvZgpjaGFuZ2Vz LiBJIG1hbmFnZWQgdG8gYXBwbHkgaXQgd2l0aCBzb21lIHJlamVjdHMuCgpUaGVyZSBpcyBzZXZl cmFsIHdhcm5pbmdzIGxpa2UgdGhlc2Ugd2hlbiBidWlsZGluZyBmb3IgYXJtLgpJIGRpZCBub3Qg YnVpbGQgaXQgYWxsIGFzIG15IGJ1aWxkIGZhaWxlZCB0b28uCgpkcml2ZXJzL2dwdS9kcm0vb21h cGRybS9vbWFwX2Rydi5jOiBJbiBmdW5jdGlvbiDigJhvbWFwX21vZGVzZXRfZmluaeKAmToKZHJp dmVycy9ncHUvZHJtL29tYXBkcm0vb21hcF9kcnYuYzozOTA6Mjc6IHdhcm5pbmc6IHVudXNlZCB2 YXJpYWJsZSDigJhwcml24oCZIFstV3VudXNlZC12YXJpYWJsZV0KICBzdHJ1Y3Qgb21hcF9kcm1f cHJpdmF0ZSAqcHJpdiA9IGRkZXYtPmRldl9wcml2YXRlOwoKZHJpdmVycy9ncHUvZHJtL2V4eW5v cy9leHlub3NfZHJtX2RwaS5jOiBJbiBmdW5jdGlvbiDigJhleHlub3NfZHBpX2RldGVjdOKAmToK ZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2RwaS5jOjQ1OjIxOiB3YXJuaW5nOiB1 bnVzZWQgdmFyaWFibGUg4oCYY3R44oCZIFstV3VudXNlZC12YXJpYWJsZV0KICBzdHJ1Y3QgZXh5 bm9zX2RwaSAqY3R4ID0gY29ubmVjdG9yX3RvX2RwaShjb25uZWN0b3IpOwogICAgICAgICAgICAg ICAgICAgICBefn4KZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjRpX2x2ZHMuYzogSW4gZnVuY3Rp b24g4oCYc3VuNGlfbHZkc19jb25uZWN0b3JfZGVzdHJveeKAmToKZHJpdmVycy9ncHUvZHJtL3N1 bjRpL3N1bjRpX2x2ZHMuYzo1NzoyMTogd2FybmluZzogdW51c2VkIHZhcmlhYmxlIOKAmGx2ZHPi gJkgWy1XdW51c2VkLXZhcmlhYmxlXQogIHN0cnVjdCBzdW40aV9sdmRzICpsdmRzID0gZHJtX2Nv bm5lY3Rvcl90b19zdW40aV9sdmRzKGNvbm5lY3Rvcik7CiAgICAgICAgICAgICAgICAgICAgIF5+ fn4KCkkga25vdyB5b3UgY2FuIGRvIGJldHRlciB0aGFuIHRoaXMuIENhcmUgdG8gZ2l2ZSBpdCBh biBleHRyYSBzcGluPwoKCVNhbQo+IAo+ICBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4 L2FuYWxvZ2l4LWFueDYzNDUuYyB8IDEyIC0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9icmlk Z2UvYW5hbG9naXgvYW5hbG9naXhfZHBfY29yZS5jIHwgIDkgLS0tLS0tCj4gIGRyaXZlcnMvZ3B1 L2RybS9icmlkZ2UvbnhwLXB0bjM0NjAuYyAgICAgICAgICAgICAgIHwgIDMgLS0KPiAgZHJpdmVy cy9ncHUvZHJtL2JyaWRnZS9wYW5lbC5jICAgICAgICAgICAgICAgICAgICAgfCAgNyAtLS0tLQo+ ICBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3BhcmFkZS1wczg2MjIuYyAgICAgICAgICAgICB8ICAz IC0tCj4gIGRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvdGMzNTg3NjQuYyAgICAgICAgICAgICAgICAg IHwgIDIgLS0KPiAgZHJpdmVycy9ncHUvZHJtL2JyaWRnZS90YzM1ODc2Ny5jICAgICAgICAgICAg ICAgICAgfCAgMyAtLQo+ICBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3RpLXNuNjVkc2k4Ni5jICAg ICAgICAgICAgICB8ICAzIC0tCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fcGFuZWwuYyAgICAgICAg ICAgICAgICAgICAgICAgIHwgMzYgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dw dS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZHBpLmMgICAgICAgICAgICB8ICA2IC0tLS0KPiAgZHJp dmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2RzaS5jICAgICAgICAgICAgfCAgNyArKy0t LQo+ICBkcml2ZXJzL2dwdS9kcm0vZnNsLWRjdS9mc2xfZGN1X2RybV9yZ2IuYyAgICAgICAgICB8 ICA3IC0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pbXgvaW14LWxkYi5jICAgICAgICAgICAgICAg ICAgICAgIHwgMTAgLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pbXgvcGFyYWxsZWwtZGlzcGxh eS5jICAgICAgICAgICAgIHwgIDYgLS0tLQo+ICAuLi4vZ3B1L2RybS9tc20vZGlzcC9tZHA0L21k cDRfbHZkc19jb25uZWN0b3IuYyAgICB8ICA3ICstLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9tc20v ZHNpL2RzaV9tYW5hZ2VyLmMgICAgICAgICAgICAgIHwgIDEgLQo+ICBkcml2ZXJzL2dwdS9kcm0v bXhzZmIvbXhzZmJfZHJ2LmMgICAgICAgICAgICAgICAgICB8ICA3ICstLS0tCj4gIGRyaXZlcnMv Z3B1L2RybS9teHNmYi9teHNmYl9vdXQuYyAgICAgICAgICAgICAgICAgIHwgIDYgLS0tLQo+ICBk cml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2Rydi5jICAgICAgICAgICAgICAgICB8IDE1IC0t LS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2x2ZHMuYyAgICAgICAgICAg ICAgICB8ICA2ICstLS0KPiAgZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2x2ZHMu YyAgICAgICAgICAgfCAgOSAtLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfZHZvLmMg ICAgICAgICAgICAgICAgICAgICAgfCAgMiAtLQo+ICBkcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3Vu NGlfbHZkcy5jICAgICAgICAgICAgICAgICB8ICA3IC0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9z dW40aS9zdW40aV9yZ2IuYyAgICAgICAgICAgICAgICAgIHwgIDcgLS0tLS0KPiAgZHJpdmVycy9n cHUvZHJtL3N1bjRpL3N1bjZpX21pcGlfZHNpLmMgICAgICAgICAgICAgfCAgMiAtLQo+ICBkcml2 ZXJzL2dwdS9kcm0vdGVncmEvZHNpLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICstLQo+ ICBkcml2ZXJzL2dwdS9kcm0vdGVncmEvb3V0cHV0LmMgICAgICAgICAgICAgICAgICAgICB8IDEw IC0tLS0tLQo+ICBpbmNsdWRlL2RybS9kcm1fcGFuZWwuaCAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAzIC0tCj4gIDI4IGZpbGVzIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMTk0IGRl bGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxv Z2l4L2FuYWxvZ2l4LWFueDYzNDUuYyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYW5hbG9naXgv YW5hbG9naXgtYW54NjM0NS5jCj4gaW5kZXggZjA4MmI0ZWQ0ODc4Li5kOTE2NGZhYjA0NGQgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hbmFsb2dpeC9hbmFsb2dpeC1hbng2 MzQ1LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4L2FuYWxvZ2l4LWFu eDYzNDUuYwo+IEBAIC01MDcsMTAgKzUwNyw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Nv bm5lY3Rvcl9oZWxwZXJfZnVuY3MgYW54NjM0NV9jb25uZWN0b3JfaGVscGVyX2Z1bmNzID0KPiAg c3RhdGljIHZvaWQKPiAgYW54NjM0NV9jb25uZWN0b3JfZGVzdHJveShzdHJ1Y3QgZHJtX2Nvbm5l Y3RvciAqY29ubmVjdG9yKQo+ICB7Cj4gLQlzdHJ1Y3QgYW54NjM0NSAqYW54NjM0NSA9IGNvbm5l Y3Rvcl90b19hbng2MzQ1KGNvbm5lY3Rvcik7Cj4gLQo+IC0JaWYgKGFueDYzNDUtPnBhbmVsKQo+ IC0JCWRybV9wYW5lbF9kZXRhY2goYW54NjM0NS0+cGFuZWwpOwo+ICAJZHJtX2Nvbm5lY3Rvcl9j bGVhbnVwKGNvbm5lY3Rvcik7Cj4gIH0KPiAgCj4gQEAgLTU3NSwxNCArNTcxLDYgQEAgc3RhdGlj IGludCBhbng2MzQ1X2JyaWRnZV9hdHRhY2goc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKPiAg CQlyZXR1cm4gZXJyOwo+ICAJfQo+ICAKPiAtCWlmIChhbng2MzQ1LT5wYW5lbCkgewo+IC0JCWVy ciA9IGRybV9wYW5lbF9hdHRhY2goYW54NjM0NS0+cGFuZWwsICZhbng2MzQ1LT5jb25uZWN0b3Ip Owo+IC0JCWlmIChlcnIpIHsKPiAtCQkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gYXR0YWNoIHBhbmVs OiAlZFxuIiwgZXJyKTsKPiAtCQkJcmV0dXJuIGVycjsKPiAtCQl9Cj4gLQl9Cj4gLQo+ICAJcmV0 dXJuIDA7Cj4gIH0KPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYW5h bG9naXgvYW5hbG9naXhfZHBfY29yZS5jIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hbmFsb2dp eC9hbmFsb2dpeF9kcF9jb3JlLmMKPiBpbmRleCA3NjczNmZiOGVkOTQuLmFhMWJiODYyOTNmZCAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4L2FuYWxvZ2l4X2Rw X2NvcmUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYW5hbG9naXgvYW5hbG9naXhf ZHBfY29yZS5jCj4gQEAgLTEyNjUsMTQgKzEyNjUsNiBAQCBzdGF0aWMgaW50IGFuYWxvZ2l4X2Rw X2JyaWRnZV9hdHRhY2goc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKPiAgCQl9Cj4gIAl9Cj4g IAo+IC0JaWYgKGRwLT5wbGF0X2RhdGEtPnBhbmVsKSB7Cj4gLQkJcmV0ID0gZHJtX3BhbmVsX2F0 dGFjaChkcC0+cGxhdF9kYXRhLT5wYW5lbCwgJmRwLT5jb25uZWN0b3IpOwo+IC0JCWlmIChyZXQp IHsKPiAtCQkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gYXR0YWNoIHBhbmVsXG4iKTsKPiAtCQkJcmV0 dXJuIHJldDsKPiAtCQl9Cj4gLQl9Cj4gLQo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gQEAgLTE4 MDMsNyArMTc5NSw2IEBAIHZvaWQgYW5hbG9naXhfZHBfdW5iaW5kKHN0cnVjdCBhbmFsb2dpeF9k cF9kZXZpY2UgKmRwKQo+ICAJaWYgKGRwLT5wbGF0X2RhdGEtPnBhbmVsKSB7Cj4gIAkJaWYgKGRy bV9wYW5lbF91bnByZXBhcmUoZHAtPnBsYXRfZGF0YS0+cGFuZWwpKQo+ICAJCQlEUk1fRVJST1Io ImZhaWxlZCB0byB0dXJub2ZmIHRoZSBwYW5lbFxuIik7Cj4gLQkJZHJtX3BhbmVsX2RldGFjaChk cC0+cGxhdF9kYXRhLT5wYW5lbCk7Cj4gIAl9Cj4gIAo+ICAJZHJtX2RwX2F1eF91bnJlZ2lzdGVy KCZkcC0+YXV4KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9ueHAtcHRu MzQ2MC5jIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9ueHAtcHRuMzQ2MC5jCj4gaW5kZXggNDM4 ZTU2NmNlMGE0Li5kNDMzOTAyZDk3ZTUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Jy aWRnZS9ueHAtcHRuMzQ2MC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9ueHAtcHRu MzQ2MC5jCj4gQEAgLTI2NSw5ICsyNjUsNiBAQCBzdGF0aWMgaW50IHB0bjM0NjBfYnJpZGdlX2F0 dGFjaChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAo+ICAJZHJtX2Nvbm5lY3Rvcl9hdHRhY2hf ZW5jb2RlcigmcHRuX2JyaWRnZS0+Y29ubmVjdG9yLAo+ICAJCQkJCQkJYnJpZGdlLT5lbmNvZGVy KTsKPiAgCj4gLQlpZiAocHRuX2JyaWRnZS0+cGFuZWwpCj4gLQkJZHJtX3BhbmVsX2F0dGFjaChw dG5fYnJpZGdlLT5wYW5lbCwgJnB0bl9icmlkZ2UtPmNvbm5lY3Rvcik7Cj4gLQo+ICAJZHJtX2hl bHBlcl9ocGRfaXJxX2V2ZW50KHB0bl9icmlkZ2UtPmNvbm5lY3Rvci5kZXYpOwo+ICAKPiAgCXJl dHVybiByZXQ7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvcGFuZWwuYyBi L2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvcGFuZWwuYwo+IGluZGV4IDFlNjNlZDZiMThhYS4uMGRk YzM3NTUxMTk0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvcGFuZWwuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvcGFuZWwuYwo+IEBAIC04MiwxOCArODIsMTEg QEAgc3RhdGljIGludCBwYW5lbF9icmlkZ2VfYXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlk Z2UsCj4gIAlkcm1fY29ubmVjdG9yX2F0dGFjaF9lbmNvZGVyKCZwYW5lbF9icmlkZ2UtPmNvbm5l Y3RvciwKPiAgCQkJCQkgIGJyaWRnZS0+ZW5jb2Rlcik7Cj4gIAo+IC0JcmV0ID0gZHJtX3BhbmVs X2F0dGFjaChwYW5lbF9icmlkZ2UtPnBhbmVsLCAmcGFuZWxfYnJpZGdlLT5jb25uZWN0b3IpOwo+ IC0JaWYgKHJldCA8IDApCj4gLQkJcmV0dXJuIHJldDsKPiAtCj4gIAlyZXR1cm4gMDsKPiAgfQo+ ICAKPiAgc3RhdGljIHZvaWQgcGFuZWxfYnJpZGdlX2RldGFjaChzdHJ1Y3QgZHJtX2JyaWRnZSAq YnJpZGdlKQo+ICB7Cj4gLQlzdHJ1Y3QgcGFuZWxfYnJpZGdlICpwYW5lbF9icmlkZ2UgPSBkcm1f YnJpZGdlX3RvX3BhbmVsX2JyaWRnZShicmlkZ2UpOwo+IC0KPiAtCWRybV9wYW5lbF9kZXRhY2go cGFuZWxfYnJpZGdlLT5wYW5lbCk7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIHBhbmVsX2JyaWRn ZV9wcmVfZW5hYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9icmlkZ2UvcGFyYWRlLXBzODYyMi5jIGIvZHJpdmVycy9ncHUvZHJtL2Jy aWRnZS9wYXJhZGUtcHM4NjIyLmMKPiBpbmRleCBkNzg5ZWEyYTdmYjkuLmMxM2VjNzdkODU4YiAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3BhcmFkZS1wczg2MjIuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvcGFyYWRlLXBzODYyMi5jCj4gQEAgLTUwNSw5ICs1 MDUsNiBAQCBzdGF0aWMgaW50IHBzODYyMl9hdHRhY2goc3RydWN0IGRybV9icmlkZ2UgKmJyaWRn ZSwKPiAgCWRybV9jb25uZWN0b3JfYXR0YWNoX2VuY29kZXIoJnBzODYyMi0+Y29ubmVjdG9yLAo+ ICAJCQkJCQkJYnJpZGdlLT5lbmNvZGVyKTsKPiAgCj4gLQlpZiAocHM4NjIyLT5wYW5lbCkKPiAt CQlkcm1fcGFuZWxfYXR0YWNoKHBzODYyMi0+cGFuZWwsICZwczg2MjItPmNvbm5lY3Rvcik7Cj4g LQo+ICAJZHJtX2hlbHBlcl9ocGRfaXJxX2V2ZW50KHBzODYyMi0+Y29ubmVjdG9yLmRldik7Cj4g IAo+ICAJcmV0dXJuIHJldDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS90 YzM1ODc2NC5jIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS90YzM1ODc2NC5jCj4gaW5kZXggNWFj MTQzMGZhYjA0Li5jMWUzNWJkZjkyMzIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Jy aWRnZS90YzM1ODc2NC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS90YzM1ODc2NC5j Cj4gQEAgLTM3Myw3ICszNzMsNiBAQCBzdGF0aWMgaW50IHRjMzU4NzY0X2F0dGFjaChzdHJ1Y3Qg ZHJtX2JyaWRnZSAqYnJpZGdlLAo+ICAJZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfYWRkKCZjdHgtPmNv bm5lY3RvciwKPiAgCQkJCSAmdGMzNTg3NjRfY29ubmVjdG9yX2hlbHBlcl9mdW5jcyk7Cj4gIAlk cm1fY29ubmVjdG9yX2F0dGFjaF9lbmNvZGVyKCZjdHgtPmNvbm5lY3RvciwgYnJpZGdlLT5lbmNv ZGVyKTsKPiAtCWRybV9wYW5lbF9hdHRhY2goY3R4LT5wYW5lbCwgJmN0eC0+Y29ubmVjdG9yKTsK PiAgCWN0eC0+Y29ubmVjdG9yLmZ1bmNzLT5yZXNldCgmY3R4LT5jb25uZWN0b3IpOwo+ICAJZHJt X2Nvbm5lY3Rvcl9yZWdpc3RlcigmY3R4LT5jb25uZWN0b3IpOwo+ICAKPiBAQCAtMzg1LDcgKzM4 NCw2IEBAIHN0YXRpYyB2b2lkIHRjMzU4NzY0X2RldGFjaChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJp ZGdlKQo+ICAJc3RydWN0IHRjMzU4NzY0ICpjdHggPSBicmlkZ2VfdG9fdGMzNTg3NjQoYnJpZGdl KTsKPiAgCj4gIAlkcm1fY29ubmVjdG9yX3VucmVnaXN0ZXIoJmN0eC0+Y29ubmVjdG9yKTsKPiAt CWRybV9wYW5lbF9kZXRhY2goY3R4LT5wYW5lbCk7Cj4gIAljdHgtPnBhbmVsID0gTlVMTDsKPiAg CWRybV9jb25uZWN0b3JfcHV0KCZjdHgtPmNvbm5lY3Rvcik7Cj4gIH0KPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2JyaWRnZS90YzM1ODc2Ny5jIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRn ZS90YzM1ODc2Ny5jCj4gaW5kZXggYzI3NzdiMjI2Yzc1Li4wNzQ2NDYyYmEwZjYgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS90YzM1ODc2Ny5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2JyaWRnZS90YzM1ODc2Ny5jCj4gQEAgLTE0MzUsOSArMTQzNSw2IEBAIHN0YXRpYyBp bnQgdGNfYnJpZGdlX2F0dGFjaChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAo+ICAJCQkJCSAg ICAgICBEUk1fQ09OTkVDVE9SX1BPTExfRElTQ09OTkVDVDsKPiAgCX0KPiAgCj4gLQlpZiAodGMt PnBhbmVsKQo+IC0JCWRybV9wYW5lbF9hdHRhY2godGMtPnBhbmVsLCAmdGMtPmNvbm5lY3Rvcik7 Cj4gLQo+ICAJZHJtX2Rpc3BsYXlfaW5mb19zZXRfYnVzX2Zvcm1hdHMoJnRjLT5jb25uZWN0b3Iu ZGlzcGxheV9pbmZvLAo+ICAJCQkJCSAmYnVzX2Zvcm1hdCwgMSk7Cj4gIAl0Yy0+Y29ubmVjdG9y LmRpc3BsYXlfaW5mby5idXNfZmxhZ3MgPQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v YnJpZGdlL3RpLXNuNjVkc2k4Ni5jIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS90aS1zbjY1ZHNp ODYuYwo+IGluZGV4IDg2YjlmMGY4N2ExNC4uNDU0NTQ0ZTBkYTdkIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9icmlkZ2UvdGktc242NWRzaTg2LmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vYnJpZGdlL3RpLXNuNjVkc2k4Ni5jCj4gQEAgLTM5NCw5ICszOTQsNiBAQCBzdGF0aWMgaW50 IHRpX3NuX2JyaWRnZV9hdHRhY2goc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKPiAgCX0KPiAg CXBkYXRhLT5kc2kgPSBkc2k7Cj4gIAo+IC0JLyogYXR0YWNoIHBhbmVsIHRvIGJyaWRnZSAqLwo+ IC0JZHJtX3BhbmVsX2F0dGFjaChwZGF0YS0+cGFuZWwsICZwZGF0YS0+Y29ubmVjdG9yKTsKPiAt Cj4gIAlyZXR1cm4gMDsKPiAgCj4gIGVycl9kc2lfYXR0YWNoOgo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vZHJtX3BhbmVsLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3BhbmVsLmMKPiBp bmRleCA4YzdiYWM4NWE3OTMuLjc4MDRiOTk0N2ZlOCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vZHJtX3BhbmVsLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3BhbmVsLmMKPiBA QCAtOTcsNDIgKzk3LDYgQEAgdm9pZCBkcm1fcGFuZWxfcmVtb3ZlKHN0cnVjdCBkcm1fcGFuZWwg KnBhbmVsKQo+ICB9Cj4gIEVYUE9SVF9TWU1CT0woZHJtX3BhbmVsX3JlbW92ZSk7Cj4gIAo+IC0v KioKPiAtICogZHJtX3BhbmVsX2F0dGFjaCAtIGF0dGFjaCBhIHBhbmVsIHRvIGEgY29ubmVjdG9y Cj4gLSAqIEBwYW5lbDogRFJNIHBhbmVsCj4gLSAqIEBjb25uZWN0b3I6IERSTSBjb25uZWN0b3IK PiAtICoKPiAtICogQWZ0ZXIgb2J0YWluaW5nIGEgcG9pbnRlciB0byBhIERSTSBwYW5lbCBhIGRp c3BsYXkgZHJpdmVyIGNhbGxzIHRoaXMKPiAtICogZnVuY3Rpb24gdG8gYXR0YWNoIGEgcGFuZWwg dG8gYSBjb25uZWN0b3IuCj4gLSAqCj4gLSAqIEFuIGVycm9yIGlzIHJldHVybmVkIGlmIHRoZSBw YW5lbCBpcyBhbHJlYWR5IGF0dGFjaGVkIHRvIGFub3RoZXIgY29ubmVjdG9yLgo+IC0gKgo+IC0g KiBXaGVuIHVubG9hZGluZywgdGhlIGRyaXZlciBzaG91bGQgZGV0YWNoIGZyb20gdGhlIHBhbmVs IGJ5IGNhbGxpbmcKPiAtICogZHJtX3BhbmVsX2RldGFjaCgpLgo+IC0gKgo+IC0gKiBSZXR1cm46 IDAgb24gc3VjY2VzcyBvciBhIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KPiAtICov Cj4gLWludCBkcm1fcGFuZWxfYXR0YWNoKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsLCBzdHJ1Y3Qg ZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+IC17Cj4gLQlyZXR1cm4gMDsKPiAtfQo+IC1FWFBP UlRfU1lNQk9MKGRybV9wYW5lbF9hdHRhY2gpOwo+IC0KPiAtLyoqCj4gLSAqIGRybV9wYW5lbF9k ZXRhY2ggLSBkZXRhY2ggYSBwYW5lbCBmcm9tIGEgY29ubmVjdG9yCj4gLSAqIEBwYW5lbDogRFJN IHBhbmVsCj4gLSAqCj4gLSAqIERldGFjaGVzIGEgcGFuZWwgZnJvbSB0aGUgY29ubmVjdG9yIGl0 IGlzIGF0dGFjaGVkIHRvLiBJZiBhIHBhbmVsIGlzIG5vdAo+IC0gKiBhdHRhY2hlZCB0byBhbnkg Y29ubmVjdG9yIHRoaXMgaXMgZWZmZWN0aXZlbHkgYSBuby1vcC4KPiAtICoKPiAtICogVGhpcyBm dW5jdGlvbiBzaG91bGQgbm90IGJlIGNhbGxlZCBieSB0aGUgcGFuZWwgZGV2aWNlIGl0c2VsZi4g SXQKPiAtICogaXMgb25seSBmb3IgdGhlIGRybSBkZXZpY2UgdGhhdCBjYWxsZWQgZHJtX3BhbmVs X2F0dGFjaCgpLgo+IC0gKi8KPiAtdm9pZCBkcm1fcGFuZWxfZGV0YWNoKHN0cnVjdCBkcm1fcGFu ZWwgKnBhbmVsKQo+IC17Cj4gLX0KPiAtRVhQT1JUX1NZTUJPTChkcm1fcGFuZWxfZGV0YWNoKTsK PiAtCj4gIC8qKgo+ICAgKiBkcm1fcGFuZWxfcHJlcGFyZSAtIHBvd2VyIG9uIGEgcGFuZWwKPiAg ICogQHBhbmVsOiBEUk0gcGFuZWwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V4eW5v cy9leHlub3NfZHJtX2RwaS5jIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2Rw aS5jCj4gaW5kZXggN2JhNTM1NGU3ZDk0Li41ZjViYTY0ZmMxZmYgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2RwaS5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2V4eW5vcy9leHlub3NfZHJtX2RwaS5jCj4gQEAgLTQ0LDkgKzQ0LDYgQEAgZXh5bm9zX2Rw aV9kZXRlY3Qoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwgYm9vbCBmb3JjZSkKPiAg ewo+ICAJc3RydWN0IGV4eW5vc19kcGkgKmN0eCA9IGNvbm5lY3Rvcl90b19kcGkoY29ubmVjdG9y KTsKPiAgCj4gLQlpZiAoY3R4LT5wYW5lbCkKPiAtCQlkcm1fcGFuZWxfYXR0YWNoKGN0eC0+cGFu ZWwsICZjdHgtPmNvbm5lY3Rvcik7Cj4gLQo+ICAJcmV0dXJuIGNvbm5lY3Rvcl9zdGF0dXNfY29u bmVjdGVkOwo+ICB9Cj4gIAo+IEBAIC0yNDksOCArMjQ2LDUgQEAgaW50IGV4eW5vc19kcGlfcmVt b3ZlKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKPiAgCj4gIAlleHlub3NfZHBpX2Rpc2Fi bGUoJmN0eC0+ZW5jb2Rlcik7Cj4gIAo+IC0JaWYgKGN0eC0+cGFuZWwpCj4gLQkJZHJtX3BhbmVs X2RldGFjaChjdHgtPnBhbmVsKTsKPiAtCj4gIAlyZXR1cm4gMDsKPiAgfQo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZHNpLmMgYi9kcml2ZXJzL2dwdS9k cm0vZXh5bm9zL2V4eW5vc19kcm1fZHNpLmMKPiBpbmRleCA3YTZmNmRmNWU5NTQuLjg0M2RmY2Vm YzQ2YSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZHNp LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZHNpLmMKPiBAQCAt MTU1MSwxMiArMTU1MSwxMCBAQCBzdGF0aWMgaW50IGV4eW5vc19kc2lfaG9zdF9hdHRhY2goc3Ry dWN0IG1pcGlfZHNpX2hvc3QgKmhvc3QsCj4gIAkJfQo+ICAKPiAgCQlkc2ktPnBhbmVsID0gb2Zf ZHJtX2ZpbmRfcGFuZWwoZGV2aWNlLT5kZXYub2Zfbm9kZSk7Cj4gLQkJaWYgKElTX0VSUihkc2kt PnBhbmVsKSkgewo+ICsJCWlmIChJU19FUlIoZHNpLT5wYW5lbCkpCj4gIAkJCWRzaS0+cGFuZWwg PSBOVUxMOwo+IC0JCX0gZWxzZSB7Cj4gLQkJCWRybV9wYW5lbF9hdHRhY2goZHNpLT5wYW5lbCwg JmRzaS0+Y29ubmVjdG9yKTsKPiArCQllbHNlCj4gIAkJCWRzaS0+Y29ubmVjdG9yLnN0YXR1cyA9 IGNvbm5lY3Rvcl9zdGF0dXNfY29ubmVjdGVkOwo+IC0JCX0KPiAgCX0KPiAgCj4gIAkvKgo+IEBA IC0xNTk2LDcgKzE1OTQsNiBAQCBzdGF0aWMgaW50IGV4eW5vc19kc2lfaG9zdF9kZXRhY2goc3Ry dWN0IG1pcGlfZHNpX2hvc3QgKmhvc3QsCj4gIAlpZiAoZHNpLT5wYW5lbCkgewo+ICAJCW11dGV4 X2xvY2soJmRybS0+bW9kZV9jb25maWcubXV0ZXgpOwo+ICAJCWV4eW5vc19kc2lfZGlzYWJsZSgm ZHNpLT5lbmNvZGVyKTsKPiAtCQlkcm1fcGFuZWxfZGV0YWNoKGRzaS0+cGFuZWwpOwo+ICAJCWRz aS0+cGFuZWwgPSBOVUxMOwo+ICAJCWRzaS0+Y29ubmVjdG9yLnN0YXR1cyA9IGNvbm5lY3Rvcl9z dGF0dXNfZGlzY29ubmVjdGVkOwo+ICAJCW11dGV4X3VubG9jaygmZHJtLT5tb2RlX2NvbmZpZy5t dXRleCk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9mc2wtZGN1L2ZzbF9kY3VfZHJt X3JnYi5jIGIvZHJpdmVycy9ncHUvZHJtL2ZzbC1kY3UvZnNsX2RjdV9kcm1fcmdiLmMKPiBpbmRl eCA5YjBjNDczNmMyMWEuLjBhNzA3MTgyNzUzMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vZnNsLWRjdS9mc2xfZGN1X2RybV9yZ2IuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9mc2wt ZGN1L2ZzbF9kY3VfZHJtX3JnYi5jCj4gQEAgLTQzLDcgKzQzLDYgQEAgc3RhdGljIHZvaWQgZnNs X2RjdV9kcm1fY29ubmVjdG9yX2Rlc3Ryb3koc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rv cikKPiAgCXN0cnVjdCBmc2xfZGN1X2RybV9jb25uZWN0b3IgKmZzbF9jb24gPSB0b19mc2xfZGN1 X2Nvbm5lY3Rvcihjb25uZWN0b3IpOwo+ICAKPiAgCWRybV9jb25uZWN0b3JfdW5yZWdpc3Rlcihj b25uZWN0b3IpOwo+IC0JZHJtX3BhbmVsX2RldGFjaChmc2xfY29uLT5wYW5lbCk7Cj4gIAlkcm1f Y29ubmVjdG9yX2NsZWFudXAoY29ubmVjdG9yKTsKPiAgfQo+ICAKPiBAQCAtMTAxLDEyICsxMDAs NiBAQCBzdGF0aWMgaW50IGZzbF9kY3VfYXR0YWNoX3BhbmVsKHN0cnVjdCBmc2xfZGN1X2RybV9k ZXZpY2UgKmZzbF9kZXYsCj4gIAlpZiAocmV0IDwgMCkKPiAgCQlnb3RvIGVycl9zeXNmczsKPiAg Cj4gLQlyZXQgPSBkcm1fcGFuZWxfYXR0YWNoKHBhbmVsLCBjb25uZWN0b3IpOwo+IC0JaWYgKHJl dCkgewo+IC0JCWRldl9lcnIoZnNsX2Rldi0+ZGV2LCAiZmFpbGVkIHRvIGF0dGFjaCBwYW5lbFxu Iik7Cj4gLQkJZ290byBlcnJfc3lzZnM7Cj4gLQl9Cj4gLQo+ICAJcmV0dXJuIDA7Cj4gIAo+ICBl cnJfc3lzZnM6Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pbXgvaW14LWxkYi5jIGIv ZHJpdmVycy9ncHUvZHJtL2lteC9pbXgtbGRiLmMKPiBpbmRleCA4NzkxZDYwYmU5MmUuLmFmNzU3 ZDFlMjFmZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaW14L2lteC1sZGIuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pbXgvaW14LWxkYi5jCj4gQEAgLTQ1NSwxMyArNDU1LDYgQEAg c3RhdGljIGludCBpbXhfbGRiX3JlZ2lzdGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkcm0sCj4gIAkJ ZHJtX2Nvbm5lY3Rvcl9hdHRhY2hfZW5jb2RlcigmaW14X2xkYl9jaC0+Y29ubmVjdG9yLCBlbmNv ZGVyKTsKPiAgCX0KPiAgCj4gLQlpZiAoaW14X2xkYl9jaC0+cGFuZWwpIHsKPiAtCQlyZXQgPSBk cm1fcGFuZWxfYXR0YWNoKGlteF9sZGJfY2gtPnBhbmVsLAo+IC0JCQkJICAgICAgICZpbXhfbGRi X2NoLT5jb25uZWN0b3IpOwo+IC0JCWlmIChyZXQpCj4gLQkJCXJldHVybiByZXQ7Cj4gLQl9Cj4g LQo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gQEAgLTcwMiw5ICs2OTUsNiBAQCBzdGF0aWMgdm9p ZCBpbXhfbGRiX3VuYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3Rl ciwKPiAgCWZvciAoaSA9IDA7IGkgPCAyOyBpKyspIHsKPiAgCQlzdHJ1Y3QgaW14X2xkYl9jaGFu bmVsICpjaGFubmVsID0gJmlteF9sZGItPmNoYW5uZWxbaV07Cj4gIAo+IC0JCWlmIChjaGFubmVs LT5wYW5lbCkKPiAtCQkJZHJtX3BhbmVsX2RldGFjaChjaGFubmVsLT5wYW5lbCk7Cj4gLQo+ICAJ CWtmcmVlKGNoYW5uZWwtPmVkaWQpOwo+ICAJCWkyY19wdXRfYWRhcHRlcihjaGFubmVsLT5kZGMp Owo+ICAJfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaW14L3BhcmFsbGVsLWRpc3Bs YXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pbXgvcGFyYWxsZWwtZGlzcGxheS5jCj4gaW5kZXggYTgz MWI1YmQxNjEzLi44MjMyZjUxMmI5ZWQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2lt eC9wYXJhbGxlbC1kaXNwbGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaW14L3BhcmFsbGVs LWRpc3BsYXkuYwo+IEBAIC0yODksOSArMjg5LDYgQEAgc3RhdGljIGludCBpbXhfcGRfcmVnaXN0 ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRybSwKPiAgCQkJCSAgIERSTV9NT0RFX0NPTk5FQ1RPUl9E UEkpOwo+ICAJfQo+ICAKPiAtCWlmIChpbXhwZC0+cGFuZWwpCj4gLQkJZHJtX3BhbmVsX2F0dGFj aChpbXhwZC0+cGFuZWwsICZpbXhwZC0+Y29ubmVjdG9yKTsKPiAtCj4gIAlpZiAoaW14cGQtPm5l eHRfYnJpZGdlKSB7Cj4gIAkJcmV0ID0gZHJtX2JyaWRnZV9hdHRhY2goZW5jb2RlciwgaW14cGQt Pm5leHRfYnJpZGdlLAo+ICAJCQkJCSZpbXhwZC0+YnJpZGdlLCAwKTsKPiBAQCAtMzU3LDkgKzM1 NCw2IEBAIHN0YXRpYyB2b2lkIGlteF9wZF91bmJpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1 Y3QgZGV2aWNlICptYXN0ZXIsCj4gIHsKPiAgCXN0cnVjdCBpbXhfcGFyYWxsZWxfZGlzcGxheSAq aW14cGQgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKPiAgCj4gLQlpZiAoaW14cGQtPnBhbmVsKQo+ IC0JCWRybV9wYW5lbF9kZXRhY2goaW14cGQtPnBhbmVsKTsKPiAtCj4gIAlrZnJlZShpbXhwZC0+ ZWRpZCk7Cj4gIH0KPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9t ZHA0L21kcDRfbHZkc19jb25uZWN0b3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9tZHA0 L21kcDRfbHZkc19jb25uZWN0b3IuYwo+IGluZGV4IGM3ZGY3MWUyZmFmYy4uNzI4ODA0MWRkODZh IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9tZHA0L21kcDRfbHZkc19j b25uZWN0b3IuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9tZHA0L21kcDRfbHZk c19jb25uZWN0b3IuYwo+IEBAIC01MCwxNCArNTAsOSBAQCBzdGF0aWMgaW50IG1kcDRfbHZkc19j b25uZWN0b3JfZ2V0X21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4gIAlz dHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCA9IG1kcDRfbHZkc19jb25uZWN0b3ItPnBhbmVsOwo+ICAJ aW50IHJldCA9IDA7Cj4gIAo+IC0JaWYgKHBhbmVsKSB7Cj4gLQkJZHJtX3BhbmVsX2F0dGFjaChw YW5lbCwgY29ubmVjdG9yKTsKPiAtCj4gKwlpZiAocGFuZWwpCj4gIAkJcmV0ID0gZHJtX3BhbmVs X2dldF9tb2RlcyhwYW5lbCwgY29ubmVjdG9yKTsKPiAgCj4gLQkJZHJtX3BhbmVsX2RldGFjaChw YW5lbCk7Cj4gLQl9Cj4gLQo+ICAJcmV0dXJuIHJldDsKPiAgfQo+ICAKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL21zbS9kc2kvZHNpX21hbmFnZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9t c20vZHNpL2RzaV9tYW5hZ2VyLmMKPiBpbmRleCA0YjM2M2JkN2RkZmYuLjFkMjhkZmJhMmM5YiAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2RzaS9kc2lfbWFuYWdlci5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kc2kvZHNpX21hbmFnZXIuYwo+IEBAIC0zMjgsNyArMzI4 LDYgQEAgc3RhdGljIGludCBkc2lfbWdyX2Nvbm5lY3Rvcl9nZXRfbW9kZXMoc3RydWN0IGRybV9j b25uZWN0b3IgKmNvbm5lY3RvcikKPiAgCSAqIEluIGR1YWwgRFNJIG1vZGUsIHdlIGhhdmUgb25l IGNvbm5lY3RvciB0aGF0IGNhbiBiZQo+ICAJICogYXR0YWNoZWQgdG8gdGhlIGRybV9wYW5lbC4K PiAgCSAqLwo+IC0JZHJtX3BhbmVsX2F0dGFjaChwYW5lbCwgY29ubmVjdG9yKTsKPiAgCW51bSA9 IGRybV9wYW5lbF9nZXRfbW9kZXMocGFuZWwsIGNvbm5lY3Rvcik7Cj4gIAlpZiAoIW51bSkKPiAg CQlyZXR1cm4gMDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL214c2ZiL214c2ZiX2Ry di5jIGIvZHJpdmVycy9ncHUvZHJtL214c2ZiL214c2ZiX2Rydi5jCj4gaW5kZXggNTA4NzY0ZmNj ZDI3Li41MWRhMGUzZGU1ODcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL214c2ZiL214 c2ZiX2Rydi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL214c2ZiL214c2ZiX2Rydi5jCj4gQEAg LTI2NSwxMSArMjY1LDcgQEAgc3RhdGljIGludCBteHNmYl9sb2FkKHN0cnVjdCBkcm1fZGV2aWNl ICpkcm0pCj4gIAkgKi8KPiAgCj4gIAlpZiAobXhzZmItPnBhbmVsKSB7Cj4gLQkJcmV0ID0gZHJt X3BhbmVsX2F0dGFjaChteHNmYi0+cGFuZWwsIG14c2ZiLT5jb25uZWN0b3IpOwo+IC0JCWlmIChy ZXQpIHsKPiAtCQkJZGV2X2Vycihkcm0tPmRldiwgIkNhbm5vdCBjb25uZWN0IHBhbmVsOiAlZFxu IiwgcmV0KTsKPiAtCQkJZ290byBlcnJfdmJsYW5rOwo+IC0JCX0KPiArCQk7Cj4gIAl9IGVsc2Ug aWYgKG14c2ZiLT5icmlkZ2UpIHsKPiAgCQlyZXQgPSBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZV9h dHRhY2hfYnJpZGdlKCZteHNmYi0+cGlwZSwKPiAgCQkJCQkJCSAgICBteHNmYi0+YnJpZGdlKTsK PiBAQCAtMzA2LDcgKzMwMiw2IEBAIHN0YXRpYyBpbnQgbXhzZmJfbG9hZChzdHJ1Y3QgZHJtX2Rl dmljZSAqZHJtKQo+ICAJcmV0dXJuIDA7Cj4gIAo+ICBlcnJfaXJxOgo+IC0JZHJtX3BhbmVsX2Rl dGFjaChteHNmYi0+cGFuZWwpOwo+ICBlcnJfdmJsYW5rOgo+ICAJcG1fcnVudGltZV9kaXNhYmxl KGRybS0+ZGV2KTsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9teHNmYi9teHNm Yl9vdXQuYyBiL2RyaXZlcnMvZ3B1L2RybS9teHNmYi9teHNmYl9vdXQuYwo+IGluZGV4IDllY2Ex NjA1ZDExZC4uZjkzZTdhNGQ0YzE1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9teHNm Yi9teHNmYl9vdXQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9teHNmYi9teHNmYl9vdXQuYwo+ IEBAIC01NSwxMiArNTUsNiBAQCBteHNmYl9wYW5lbF9jb25uZWN0b3JfZGV0ZWN0KHN0cnVjdCBk cm1fY29ubmVjdG9yICpjb25uZWN0b3IsIGJvb2wgZm9yY2UpCj4gIAo+ICBzdGF0aWMgdm9pZCBt eHNmYl9wYW5lbF9jb25uZWN0b3JfZGVzdHJveShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yKQo+ICB7Cj4gLQlzdHJ1Y3QgbXhzZmJfZHJtX3ByaXZhdGUgKm14c2ZiID0KPiAtCQkJZHJt X2Nvbm5lY3Rvcl90b19teHNmYl9kcm1fcHJpdmF0ZShjb25uZWN0b3IpOwo+IC0KPiAtCWlmICht eHNmYi0+cGFuZWwpCj4gLQkJZHJtX3BhbmVsX2RldGFjaChteHNmYi0+cGFuZWwpOwo+IC0KPiAg CWRybV9jb25uZWN0b3JfdW5yZWdpc3Rlcihjb25uZWN0b3IpOwo+ICAJZHJtX2Nvbm5lY3Rvcl9j bGVhbnVwKGNvbm5lY3Rvcik7Cj4gIH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL29t YXBkcm0vb21hcF9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfZHJ2LmMKPiBp bmRleCA0NTI2OTY3OTc4YjcuLmRiODEwNmFmZDkxZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vb21hcGRybS9vbWFwX2Rydi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0v b21hcF9kcnYuYwo+IEBAIC0zNDksMTMgKzM0OSw2IEBAIHN0YXRpYyBpbnQgb21hcF9tb2Rlc2V0 X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCj4gIAkJZHJtX2Nvbm5lY3Rvcl9hdHRh Y2hfZW5jb2RlcihwaXBlLT5jb25uZWN0b3IsIGVuY29kZXIpOwo+ICAKPiAtCQlpZiAocGlwZS0+ b3V0cHV0LT5wYW5lbCkgewo+IC0JCQlyZXQgPSBkcm1fcGFuZWxfYXR0YWNoKHBpcGUtPm91dHB1 dC0+cGFuZWwsCj4gLQkJCQkJICAgICAgIHBpcGUtPmNvbm5lY3Rvcik7Cj4gLQkJCWlmIChyZXQg PCAwKQo+IC0JCQkJcmV0dXJuIHJldDsKPiAtCQl9Cj4gLQo+ICAJCWNydGMgPSBvbWFwX2NydGNf aW5pdChkZXYsIHBpcGUsIHByaXYtPnBsYW5lc1tpXSk7Cj4gIAkJaWYgKElTX0VSUihjcnRjKSkK PiAgCQkJcmV0dXJuIFBUUl9FUlIoY3J0Yyk7Cj4gQEAgLTM5NSwxNyArMzg4LDkgQEAgc3RhdGlj IGludCBvbWFwX21vZGVzZXRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICBzdGF0aWMg dm9pZCBvbWFwX21vZGVzZXRfZmluaShzdHJ1Y3QgZHJtX2RldmljZSAqZGRldikKPiAgewo+ICAJ c3RydWN0IG9tYXBfZHJtX3ByaXZhdGUgKnByaXYgPSBkZGV2LT5kZXZfcHJpdmF0ZTsKPiAtCXVu c2lnbmVkIGludCBpOwo+ICAKPiAgCW9tYXBfZHJtX2lycV91bmluc3RhbGwoZGRldik7Cj4gIAo+ IC0JZm9yIChpID0gMDsgaSA8IHByaXYtPm51bV9waXBlczsgaSsrKSB7Cj4gLQkJc3RydWN0IG9t YXBfZHJtX3BpcGVsaW5lICpwaXBlID0gJnByaXYtPnBpcGVzW2ldOwo+IC0KPiAtCQlpZiAocGlw ZS0+b3V0cHV0LT5wYW5lbCkKPiAtCQkJZHJtX3BhbmVsX2RldGFjaChwaXBlLT5vdXRwdXQtPnBh bmVsKTsKPiAtCX0KPiAtCj4gIAlkcm1fbW9kZV9jb25maWdfY2xlYW51cChkZGV2KTsKPiAgfQo+ ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9sdmRzLmMgYi9k cml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2x2ZHMuYwo+IGluZGV4IGFiMGQ0OTYxOGNmOS4u YmNlZDcyOWE5NmZlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJf bHZkcy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9sdmRzLmMKPiBAQCAt Njc3LDE1ICs2NzcsMTEgQEAgc3RhdGljIGludCByY2FyX2x2ZHNfYXR0YWNoKHN0cnVjdCBkcm1f YnJpZGdlICpicmlkZ2UsCj4gIAlpZiAocmV0IDwgMCkKPiAgCQlyZXR1cm4gcmV0Owo+ICAKPiAt CXJldHVybiBkcm1fcGFuZWxfYXR0YWNoKGx2ZHMtPnBhbmVsLCBjb25uZWN0b3IpOwo+ICsJcmV0 dXJuIDA7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIHJjYXJfbHZkc19kZXRhY2goc3RydWN0IGRy bV9icmlkZ2UgKmJyaWRnZSkKPiAgewo+IC0Jc3RydWN0IHJjYXJfbHZkcyAqbHZkcyA9IGJyaWRn ZV90b19yY2FyX2x2ZHMoYnJpZGdlKTsKPiAtCj4gLQlpZiAobHZkcy0+cGFuZWwpCj4gLQkJZHJt X3BhbmVsX2RldGFjaChsdmRzLT5wYW5lbCk7Cj4gIH0KPiAgCj4gIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgZHJtX2JyaWRnZV9mdW5jcyByY2FyX2x2ZHNfYnJpZGdlX29wcyA9IHsKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2x2ZHMuYyBiL2RyaXZlcnMvZ3B1 L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9sdmRzLmMKPiBpbmRleCA2M2Y5Njc5MDJjMmQuLmYyOTJj NmE2ZTIwZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBf bHZkcy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2x2ZHMuYwo+ IEBAIC02MzQsMTMgKzYzNCw2IEBAIHN0YXRpYyBpbnQgcm9ja2NoaXBfbHZkc19iaW5kKHN0cnVj dCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFzdGVyLAo+ICAJCQkJICAgICAgImZhaWxl ZCB0byBhdHRhY2ggZW5jb2RlcjogJWRcbiIsIHJldCk7Cj4gIAkJCWdvdG8gZXJyX2ZyZWVfY29u bmVjdG9yOwo+ICAJCX0KPiAtCj4gLQkJcmV0ID0gZHJtX3BhbmVsX2F0dGFjaChsdmRzLT5wYW5l bCwgY29ubmVjdG9yKTsKPiAtCQlpZiAocmV0IDwgMCkgewo+IC0JCQlEUk1fREVWX0VSUk9SKGRy bV9kZXYtPmRldiwKPiAtCQkJCSAgICAgICJmYWlsZWQgdG8gYXR0YWNoIHBhbmVsOiAlZFxuIiwg cmV0KTsKPiAtCQkJZ290byBlcnJfZnJlZV9jb25uZWN0b3I7Cj4gLQkJfQo+ICAJfSBlbHNlIHsK PiAgCQlyZXQgPSBkcm1fYnJpZGdlX2F0dGFjaChlbmNvZGVyLCBsdmRzLT5icmlkZ2UsIE5VTEws IDApOwo+ICAJCWlmIChyZXQpIHsKPiBAQCAtNjc2LDggKzY2OSw2IEBAIHN0YXRpYyB2b2lkIHJv Y2tjaGlwX2x2ZHNfdW5iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFz dGVyLAo+ICAKPiAgCWVuY29kZXJfZnVuY3MgPSBsdmRzLT5zb2NfZGF0YS0+aGVscGVyX2Z1bmNz Owo+ICAJZW5jb2Rlcl9mdW5jcy0+ZGlzYWJsZSgmbHZkcy0+ZW5jb2Rlcik7Cj4gLQlpZiAobHZk cy0+cGFuZWwpCj4gLQkJZHJtX3BhbmVsX2RldGFjaChsdmRzLT5wYW5lbCk7Cj4gIAlwbV9ydW50 aW1lX2Rpc2FibGUoZGV2KTsKPiAgCWRybV9jb25uZWN0b3JfY2xlYW51cCgmbHZkcy0+Y29ubmVj dG9yKTsKPiAgCWRybV9lbmNvZGVyX2NsZWFudXAoJmx2ZHMtPmVuY29kZXIpOwo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9kdm8uYyBiL2RyaXZlcnMvZ3B1L2RybS9zdGkv c3RpX2R2by5jCj4gaW5kZXggZGU0YWY3NzM1YzQ2Li5kZGI0MTg0ZjA3MjYgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfZHZvLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v c3RpL3N0aV9kdm8uYwo+IEBAIC0zODksOCArMzg5LDYgQEAgc3RpX2R2b19jb25uZWN0b3JfZGV0 ZWN0KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsIGJvb2wgZm9yY2UpCj4gIAkJZHZv LT5wYW5lbCA9IG9mX2RybV9maW5kX3BhbmVsKGR2by0+cGFuZWxfbm9kZSk7Cj4gIAkJaWYgKElT X0VSUihkdm8tPnBhbmVsKSkKPiAgCQkJZHZvLT5wYW5lbCA9IE5VTEw7Cj4gLQkJZWxzZQo+IC0J CQlkcm1fcGFuZWxfYXR0YWNoKGR2by0+cGFuZWwsIGNvbm5lY3Rvcik7Cj4gIAl9Cj4gIAo+ICAJ aWYgKGR2by0+cGFuZWwpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40 aV9sdmRzLmMgYi9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNGlfbHZkcy5jCj4gaW5kZXggZmZk YTMxODRhYTEyLi5mOGExZmY0YmYxYmIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3N1 bjRpL3N1bjRpX2x2ZHMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV9sdmRz LmMKPiBAQCAtNTYsNyArNTYsNiBAQCBzdW40aV9sdmRzX2Nvbm5lY3Rvcl9kZXN0cm95KHN0cnVj dCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4gIHsKPiAgCXN0cnVjdCBzdW40aV9sdmRzICps dmRzID0gZHJtX2Nvbm5lY3Rvcl90b19zdW40aV9sdmRzKGNvbm5lY3Rvcik7Cj4gIAo+IC0JZHJt X3BhbmVsX2RldGFjaChsdmRzLT5wYW5lbCk7Cj4gIAlkcm1fY29ubmVjdG9yX2NsZWFudXAoY29u bmVjdG9yKTsKPiAgfQo+ICAKPiBAQCAtMTQxLDEyICsxNDAsNiBAQCBpbnQgc3VuNGlfbHZkc19p bml0KHN0cnVjdCBkcm1fZGV2aWNlICpkcm0sIHN0cnVjdCBzdW40aV90Y29uICp0Y29uKQo+ICAK PiAgCQlkcm1fY29ubmVjdG9yX2F0dGFjaF9lbmNvZGVyKCZsdmRzLT5jb25uZWN0b3IsCj4gIAkJ CQkJCSAgJmx2ZHMtPmVuY29kZXIpOwo+IC0KPiAtCQlyZXQgPSBkcm1fcGFuZWxfYXR0YWNoKGx2 ZHMtPnBhbmVsLCAmbHZkcy0+Y29ubmVjdG9yKTsKPiAtCQlpZiAocmV0KSB7Cj4gLQkJCWRldl9l cnIoZHJtLT5kZXYsICJDb3VsZG4ndCBhdHRhY2ggb3VyIHBhbmVsXG4iKTsKPiAtCQkJZ290byBl cnJfY2xlYW51cF9jb25uZWN0b3I7Cj4gLQkJfQo+ICAJfQo+ICAKPiAgCWlmIChicmlkZ2UpIHsK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjRpX3JnYi5jIGIvZHJpdmVy cy9ncHUvZHJtL3N1bjRpL3N1bjRpX3JnYi5jCj4gaW5kZXggNWE3ZDQzOTM5YWU2Li5lMDhhZmRm ZmVmNTAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjRpX3JnYi5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjRpX3JnYi5jCj4gQEAgLTE0Nyw3ICsxNDcs NiBAQCBzdW40aV9yZ2JfY29ubmVjdG9yX2Rlc3Ryb3koc3RydWN0IGRybV9jb25uZWN0b3IgKmNv bm5lY3RvcikKPiAgewo+ICAJc3RydWN0IHN1bjRpX3JnYiAqcmdiID0gZHJtX2Nvbm5lY3Rvcl90 b19zdW40aV9yZ2IoY29ubmVjdG9yKTsKPiAgCj4gLQlkcm1fcGFuZWxfZGV0YWNoKHJnYi0+cGFu ZWwpOwo+ICAJZHJtX2Nvbm5lY3Rvcl9jbGVhbnVwKGNvbm5lY3Rvcik7Cj4gIH0KPiAgCj4gQEAg LTIzMywxMiArMjMyLDYgQEAgaW50IHN1bjRpX3JnYl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpk cm0sIHN0cnVjdCBzdW40aV90Y29uICp0Y29uKQo+ICAKPiAgCQlkcm1fY29ubmVjdG9yX2F0dGFj aF9lbmNvZGVyKCZyZ2ItPmNvbm5lY3RvciwKPiAgCQkJCQkJICAmcmdiLT5lbmNvZGVyKTsKPiAt Cj4gLQkJcmV0ID0gZHJtX3BhbmVsX2F0dGFjaChyZ2ItPnBhbmVsLCAmcmdiLT5jb25uZWN0b3Ip Owo+IC0JCWlmIChyZXQpIHsKPiAtCQkJZGV2X2Vycihkcm0tPmRldiwgIkNvdWxkbid0IGF0dGFj aCBvdXIgcGFuZWxcbiIpOwo+IC0JCQlnb3RvIGVycl9jbGVhbnVwX2Nvbm5lY3RvcjsKPiAtCQl9 Cj4gIAl9Cj4gIAo+ICAJaWYgKHJnYi0+YnJpZGdlKSB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9zdW40aS9zdW42aV9taXBpX2RzaS5jIGIvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1 bjZpX21pcGlfZHNpLmMKPiBpbmRleCBhYTY3Y2IwMzdlOWQuLjEyODQ3MWI2NWY2NCAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNmlfbWlwaV9kc2kuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9zdW40aS9zdW42aV9taXBpX2RzaS5jCj4gQEAgLTk3Myw3ICs5NzMsNiBA QCBzdGF0aWMgaW50IHN1bjZpX2RzaV9hdHRhY2goc3RydWN0IG1pcGlfZHNpX2hvc3QgKmhvc3Qs Cj4gIAlkc2ktPnBhbmVsID0gcGFuZWw7Cj4gIAlkc2ktPmRldmljZSA9IGRldmljZTsKPiAgCj4g LQlkcm1fcGFuZWxfYXR0YWNoKGRzaS0+cGFuZWwsICZkc2ktPmNvbm5lY3Rvcik7Cj4gIAlkcm1f a21zX2hlbHBlcl9ob3RwbHVnX2V2ZW50KGRzaS0+ZHJtKTsKPiAgCj4gIAlkZXZfaW5mbyhob3N0 LT5kZXYsICJBdHRhY2hlZCBkZXZpY2UgJXNcbiIsIGRldmljZS0+bmFtZSk7Cj4gQEAgLTk5MCw3 ICs5ODksNiBAQCBzdGF0aWMgaW50IHN1bjZpX2RzaV9kZXRhY2goc3RydWN0IG1pcGlfZHNpX2hv c3QgKmhvc3QsCj4gIAlkc2ktPnBhbmVsID0gTlVMTDsKPiAgCWRzaS0+ZGV2aWNlID0gTlVMTDsK PiAgCj4gLQlkcm1fcGFuZWxfZGV0YWNoKHBhbmVsKTsKPiAgCWRybV9rbXNfaGVscGVyX2hvdHBs dWdfZXZlbnQoZHNpLT5kcm0pOwo+ICAKPiAgCXJldHVybiAwOwo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vdGVncmEvZHNpLmMgYi9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZHNpLmMKPiBp bmRleCAzODIwZThkZmYxNGIuLjMzODdkZTc5NzE4YiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vdGVncmEvZHNpLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZHNpLmMKPiBA QCAtMTQ5OCwxMCArMTQ5OCw4IEBAIHN0YXRpYyBpbnQgdGVncmFfZHNpX2hvc3RfYXR0YWNoKHN0 cnVjdCBtaXBpX2RzaV9ob3N0ICpob3N0LAo+ICAJCWlmIChJU19FUlIob3V0cHV0LT5wYW5lbCkp Cj4gIAkJCW91dHB1dC0+cGFuZWwgPSBOVUxMOwo+ICAKPiAtCQlpZiAob3V0cHV0LT5wYW5lbCAm JiBvdXRwdXQtPmNvbm5lY3Rvci5kZXYpIHsKPiAtCQkJZHJtX3BhbmVsX2F0dGFjaChvdXRwdXQt PnBhbmVsLCAmb3V0cHV0LT5jb25uZWN0b3IpOwo+ICsJCWlmIChvdXRwdXQtPnBhbmVsICYmIG91 dHB1dC0+Y29ubmVjdG9yLmRldikKPiAgCQkJZHJtX2hlbHBlcl9ocGRfaXJxX2V2ZW50KG91dHB1 dC0+Y29ubmVjdG9yLmRldik7Cj4gLQkJfQo+ICAJfQo+ICAKPiAgCXJldHVybiAwOwo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEvb3V0cHV0LmMgYi9kcml2ZXJzL2dwdS9kcm0v dGVncmEvb3V0cHV0LmMKPiBpbmRleCBlMzZlNWU3YzJmNjkuLmEzYWRiOWU0ZGViZiAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEvb3V0cHV0LmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vdGVncmEvb3V0cHV0LmMKPiBAQCAtMTc5LDEzICsxNzksNiBAQCB2b2lkIHRlZ3JhX291 dHB1dF9yZW1vdmUoc3RydWN0IHRlZ3JhX291dHB1dCAqb3V0cHV0KQo+ICBpbnQgdGVncmFfb3V0 cHV0X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRybSwgc3RydWN0IHRlZ3JhX291dHB1dCAqb3V0 cHV0KQo+ICB7Cj4gIAlpbnQgY29ubmVjdG9yX3R5cGU7Cj4gLQlpbnQgZXJyOwo+IC0KPiAtCWlm IChvdXRwdXQtPnBhbmVsKSB7Cj4gLQkJZXJyID0gZHJtX3BhbmVsX2F0dGFjaChvdXRwdXQtPnBh bmVsLCAmb3V0cHV0LT5jb25uZWN0b3IpOwo+IC0JCWlmIChlcnIgPCAwKQo+IC0JCQlyZXR1cm4g ZXJyOwo+IC0JfQo+ICAKPiAgCS8qCj4gIAkgKiBUaGUgY29ubmVjdG9yIGlzIG5vdyByZWdpc3Rl cmVkIGFuZCByZWFkeSB0byByZWNlaXZlIGhvdHBsdWcgZXZlbnRzCj4gQEAgLTIyMCw5ICsyMTMs NiBAQCB2b2lkIHRlZ3JhX291dHB1dF9leGl0KHN0cnVjdCB0ZWdyYV9vdXRwdXQgKm91dHB1dCkK PiAgCSAqLwo+ICAJaWYgKG91dHB1dC0+aHBkX2dwaW8pCj4gIAkJZGlzYWJsZV9pcnEob3V0cHV0 LT5ocGRfaXJxKTsKPiAtCj4gLQlpZiAob3V0cHV0LT5wYW5lbCkKPiAtCQlkcm1fcGFuZWxfZGV0 YWNoKG91dHB1dC0+cGFuZWwpOwo+ICB9Cj4gIAo+ICB2b2lkIHRlZ3JhX291dHB1dF9maW5kX3Bv c3NpYmxlX2NydGNzKHN0cnVjdCB0ZWdyYV9vdXRwdXQgKm91dHB1dCwKPiBkaWZmIC0tZ2l0IGEv aW5jbHVkZS9kcm0vZHJtX3BhbmVsLmggYi9pbmNsdWRlL2RybS9kcm1fcGFuZWwuaAo+IGluZGV4 IDYxOTNjYjU1NWFjYy4uOWIzNzRmODhmYjc2IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL2Ry bV9wYW5lbC5oCj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX3BhbmVsLmgKPiBAQCAtMTc4LDkgKzE3 OCw2IEBAIHZvaWQgZHJtX3BhbmVsX2luaXQoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsIHN0cnVj dCBkZXZpY2UgKmRldiwKPiAgaW50IGRybV9wYW5lbF9hZGQoc3RydWN0IGRybV9wYW5lbCAqcGFu ZWwpOwo+ICB2b2lkIGRybV9wYW5lbF9yZW1vdmUoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpOwo+ ICAKPiAtaW50IGRybV9wYW5lbF9hdHRhY2goc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsIHN0cnVj dCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpOwo+IC12b2lkIGRybV9wYW5lbF9kZXRhY2goc3Ry dWN0IGRybV9wYW5lbCAqcGFuZWwpOwo+IC0KPiAgaW50IGRybV9wYW5lbF9wcmVwYXJlKHN0cnVj dCBkcm1fcGFuZWwgKnBhbmVsKTsKPiAgaW50IGRybV9wYW5lbF91bnByZXBhcmUoc3RydWN0IGRy bV9wYW5lbCAqcGFuZWwpOwo+ICAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v ZHJpLWRldmVsCg==