From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [PATCH] drm/fb-helper: Automatically clean up fb_info Date: Tue, 7 Feb 2017 11:27:20 -0500 Message-ID: <20170207162720.GI15150@art_vandelay> References: <20170207142936.12517-1-daniel.vetter@ffwll.ch> <20170207161603.17611-1-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-yw0-x22b.google.com (mail-yw0-x22b.google.com [IPv6:2607:f8b0:4002:c05::22b]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2F93D6E062 for ; Tue, 7 Feb 2017 16:27:24 +0000 (UTC) Received: by mail-yw0-x22b.google.com with SMTP id u68so69905815ywg.0 for ; Tue, 07 Feb 2017 08:27:24 -0800 (PST) Content-Disposition: inline In-Reply-To: <20170207161603.17611-1-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: Daniel Vetter , Intel Graphics Development , Noralf =?iso-8859-1?Q?Tr=F8nnes?= , DRI Development List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBGZWIgMDcsIDIwMTcgYXQgMDU6MTY6MDNQTSArMDEwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBOb3RpY2VkIHRoYXQgZXZlcnlvbmUgZHVwbGljYXRlcyB0aGUgc2FtZSBsb2dpYyBo ZXJlIGFuZCB3ZSBjb3VsZCBzYWZlCj4gYSBmZXcgbGluZXMgcGVyIGRyaXZlci4gWWF5IGZvciBs b3RzIG9mIGRyaXZlcnMgdG8gbWFrZSBzdWNoIHRpbnkKPiByZWZhY3RvcnMgd29ydGgtd2hpbGUh Cj4gCj4gdjI6IEZvcmdvdCB0byBnaXQgYWRkIGV2ZXJ5dGhpbmcgOigKPiAKPiB2MzogQWN0dWFs bHkgcmVtb3ZlIHJlbGVhc2VfZmJpIChTZWFuLCBFbWlsLCBDaHJpcykgLi4uCj4gCj4gQ2M6IENo cmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+IENjOiBTZWFuIFBhdWwgPHNl YW5wYXVsQGNocm9taXVtLm9yZz4KPiBDYzogTm9yYWxmIFRyw7hubmVzIDxub3JhbGZAdHJvbm5l cy5vcmc+Cj4gQ2M6IEVtaWwgVmVsaWtvdiA8ZW1pbC5sLnZlbGlrb3ZAZ21haWwuY29tPgoKUmV2 aWV3ZWQtYnk6IFNlYW4gUGF1bCA8c2VhbnBhdWxAY2hyb21pdW0ub3JnPgoKPiBTaWduZWQtb2Zm LWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGludGVsLmNvbT4KPiAtLS0KPiAgZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ZiLmMgICAgICAgICAgICB8IDExICsrKy0t LS0KPiAgZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZmJkZXYuYyAgICAgICAgICAgICB8 ICAyIC0tCj4gIGRyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X2ZiLmMgICAgICAgICAgICAgICAgICAg ICAgfCAgOSArKy0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2JvY2hzL2JvY2hzX2ZiZGV2LmMgICAg ICAgICAgICAgICB8ICA1ICstLQo+ICBkcml2ZXJzL2dwdS9kcm0vY2lycnVzL2NpcnJ1c19mYmRl di5jICAgICAgICAgICAgIHwgIDEgLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2NtYV9oZWxw ZXIuYyAgICAgICAgICAgICAgIHwgIDMgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxw ZXIuYyAgICAgICAgICAgICAgICAgICB8IDM5ICsrKysrKysrLS0tLS0tLS0tLS0tLS0tCj4gIGRy aXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9mYmRldi5jICAgICAgICAgfCAgMiAtLQo+ ICBkcml2ZXJzL2dwdS9kcm0vZ21hNTAwL2ZyYW1lYnVmZmVyLmMgICAgICAgICAgICAgIHwgIDkg KystLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfZHJtX2ZiZGV2 LmMgfCAgMiAtLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmRldi5jICAgICAgICAg ICAgICAgIHwgIDUgKy0tCj4gIGRyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcyMDBfZmIuYyAg ICAgICAgICAgICAgfCAgNSArLS0KPiAgZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZmJkZXYuYyAg ICAgICAgICAgICAgICAgICB8ICAxIC0KPiAgZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVh dV9mYmNvbi5jICAgICAgICAgICB8ICAxIC0KPiAgZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vb21h cF9mYmRldi5jICAgICAgICAgICAgICB8ICA0IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vcXhsL3F4 bF9mYi5jICAgICAgICAgICAgICAgICAgICAgIHwgIDUgKy0tCj4gIGRyaXZlcnMvZ3B1L2RybS9y YWRlb24vcmFkZW9uX2ZiLmMgICAgICAgICAgICAgICAgfCAxMSArKystLS0tCj4gIGRyaXZlcnMv Z3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fZmJkZXYuYyAgICAgfCAgOSArKy0tLS0KPiAg ZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2ZiLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICA1ICst LQo+ICBkcml2ZXJzL2dwdS9kcm0vdWRsL3VkbF9mYi5jICAgICAgICAgICAgICAgICAgICAgIHwg IDUgKy0tCj4gIGRyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9mYi5jICAgICAgICAgICAg ICAgfCAgNSArLS0KPiAgaW5jbHVkZS9kcm0vZHJtX2ZiX2hlbHBlci5oICAgICAgICAgICAgICAg ICAgICAgICB8ICA0IC0tLQo+ICAyMiBmaWxlcyBjaGFuZ2VkLCAzOSBpbnNlcnRpb25zKCspLCAx MDQgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV9mYi5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ZiLmMK PiBpbmRleCA4Mzg5NDNkMDk2MmUuLmY0YTJmMWYwYTZjYSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZmIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9mYi5jCj4gQEAgLTIyNCw3ICsyMjQsNyBAQCBzdGF0aWMgaW50IGFt ZGdwdWZiX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyLAo+ICAJaW5mbyA9IGRy bV9mYl9oZWxwZXJfYWxsb2NfZmJpKGhlbHBlcik7Cj4gIAlpZiAoSVNfRVJSKGluZm8pKSB7Cj4g IAkJcmV0ID0gUFRSX0VSUihpbmZvKTsKPiAtCQlnb3RvIG91dF91bnJlZjsKPiArCQlnb3RvIG91 dDsKPiAgCX0KPiAgCj4gIAlpbmZvLT5wYXIgPSByZmJkZXY7Cj4gQEAgLTIzMyw3ICsyMzMsNyBA QCBzdGF0aWMgaW50IGFtZGdwdWZiX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVy LAo+ICAJcmV0ID0gYW1kZ3B1X2ZyYW1lYnVmZmVyX2luaXQoYWRldi0+ZGRldiwgJnJmYmRldi0+ cmZiLCAmbW9kZV9jbWQsIGdvYmopOwo+ICAJaWYgKHJldCkgewo+ICAJCURSTV9FUlJPUigiZmFp bGVkIHRvIGluaXRpYWxpemUgZnJhbWVidWZmZXIgJWRcbiIsIHJldCk7Cj4gLQkJZ290byBvdXRf ZGVzdHJveV9mYmk7Cj4gKwkJZ290byBvdXQ7Cj4gIAl9Cj4gIAo+ICAJZmIgPSAmcmZiZGV2LT5y ZmIuYmFzZTsKPiBAQCAtMjY2LDcgKzI2Niw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1ZmJfY3JlYXRl KHN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIsCj4gIAo+ICAJaWYgKGluZm8tPnNjcmVlbl9i YXNlID09IE5VTEwpIHsKPiAgCQlyZXQgPSAtRU5PU1BDOwo+IC0JCWdvdG8gb3V0X2Rlc3Ryb3lf ZmJpOwo+ICsJCWdvdG8gb3V0Owo+ICAJfQo+ICAKPiAgCURSTV9JTkZPKCJmYiBtYXBwYWJsZSBh dCAweCVsWFxuIiwgIGluZm8tPmZpeC5zbWVtX3N0YXJ0KTsKPiBAQCAtMjc4LDkgKzI3OCw3IEBA IHN0YXRpYyBpbnQgYW1kZ3B1ZmJfY3JlYXRlKHN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIs Cj4gIAl2Z2Ffc3dpdGNoZXJvb19jbGllbnRfZmJfc2V0KGFkZXYtPmRkZXYtPnBkZXYsIGluZm8p Owo+ICAJcmV0dXJuIDA7Cj4gIAo+IC1vdXRfZGVzdHJveV9mYmk6Cj4gLQlkcm1fZmJfaGVscGVy X3JlbGVhc2VfZmJpKGhlbHBlcik7Cj4gLW91dF91bnJlZjoKPiArb3V0Ogo+ICAJaWYgKGFibykg ewo+ICAKPiAgCX0KPiBAQCAtMzA0LDcgKzMwMiw2IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2ZiZGV2 X2Rlc3Ryb3koc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGFtZGdwdV9mYmRldiAqcmZi Cj4gIAlzdHJ1Y3QgYW1kZ3B1X2ZyYW1lYnVmZmVyICpyZmIgPSAmcmZiZGV2LT5yZmI7Cj4gIAo+ ICAJZHJtX2ZiX2hlbHBlcl91bnJlZ2lzdGVyX2ZiaSgmcmZiZGV2LT5oZWxwZXIpOwo+IC0JZHJt X2ZiX2hlbHBlcl9yZWxlYXNlX2ZiaSgmcmZiZGV2LT5oZWxwZXIpOwo+ICAKPiAgCWlmIChyZmIt Pm9iaikgewo+ICAJCWFtZGdwdWZiX2Rlc3Ryb3lfcGlubmVkX29iamVjdChyZmItPm9iaik7Cj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2ZiZGV2LmMgYi9kcml2 ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9mYmRldi5jCj4gaW5kZXggNzgzMzUxMDBjYmMzLi43 ZjE4NGE1MjU5NGUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFf ZmJkZXYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2ZiZGV2LmMKPiBA QCAtMTU3LDcgKzE1Nyw2IEBAIGludCBhcm1hZGFfZmJkZXZfaW5pdChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQo+ICAKPiAgCXJldHVybiAwOwo+ICAgZXJyX2ZiX3NldHVwOgo+IC0JZHJtX2ZiX2hl bHBlcl9yZWxlYXNlX2ZiaShmYmgpOwo+ICAJZHJtX2ZiX2hlbHBlcl9maW5pKGZiaCk7Cj4gICBl cnJfZmJfaGVscGVyOgo+ICAJcHJpdi0+ZmJkZXYgPSBOVUxMOwo+IEBAIC0xNzksNyArMTc4LDYg QEAgdm9pZCBhcm1hZGFfZmJkZXZfZmluaShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAKPiAg CWlmIChmYmgpIHsKPiAgCQlkcm1fZmJfaGVscGVyX3VucmVnaXN0ZXJfZmJpKGZiaCk7Cj4gLQkJ ZHJtX2ZiX2hlbHBlcl9yZWxlYXNlX2ZiaShmYmgpOwo+ICAKPiAgCQlkcm1fZmJfaGVscGVyX2Zp bmkoZmJoKTsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X2ZiLmMg Yi9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9mYi5jCj4gaW5kZXggYjA4NTE0MGZhZTk1Li5mODQy MWQyMzk0NmEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfZmIuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X2ZiLmMKPiBAQCAtMjE1LDEzICsyMTUsMTMgQEAg c3RhdGljIGludCBhc3RmYl9jcmVhdGUoc3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlciwKPiAg CWluZm8gPSBkcm1fZmJfaGVscGVyX2FsbG9jX2ZiaShoZWxwZXIpOwo+ICAJaWYgKElTX0VSUihp bmZvKSkgewo+ICAJCXJldCA9IFBUUl9FUlIoaW5mbyk7Cj4gLQkJZ290byBlcnJfZnJlZV92cmFt Owo+ICsJCWdvdG8gb3V0Owo+ICAJfQo+ICAJaW5mby0+cGFyID0gYWZiZGV2Owo+ICAKPiAgCXJl dCA9IGFzdF9mcmFtZWJ1ZmZlcl9pbml0KGRldiwgJmFmYmRldi0+YWZiLCAmbW9kZV9jbWQsIGdv YmopOwo+ICAJaWYgKHJldCkKPiAtCQlnb3RvIGVycl9yZWxlYXNlX2ZiaTsKPiArCQlnb3RvIG91 dDsKPiAgCj4gIAlhZmJkZXYtPnN5c3JhbSA9IHN5c3JhbTsKPiAgCWFmYmRldi0+c2l6ZSA9IHNp emU7Cj4gQEAgLTI1MCw5ICsyNTAsNyBAQCBzdGF0aWMgaW50IGFzdGZiX2NyZWF0ZShzdHJ1Y3Qg ZHJtX2ZiX2hlbHBlciAqaGVscGVyLAo+ICAKPiAgCXJldHVybiAwOwo+ICAKPiAtZXJyX3JlbGVh c2VfZmJpOgo+IC0JZHJtX2ZiX2hlbHBlcl9yZWxlYXNlX2ZiaShoZWxwZXIpOwo+IC1lcnJfZnJl ZV92cmFtOgo+ICtvdXQ6Cj4gIAl2ZnJlZShzeXNyYW0pOwo+ICAJcmV0dXJuIHJldDsKPiAgfQo+ IEBAIC0yODcsNyArMjg1LDYgQEAgc3RhdGljIHZvaWQgYXN0X2ZiZGV2X2Rlc3Ryb3koc3RydWN0 IGRybV9kZXZpY2UgKmRldiwKPiAgCXN0cnVjdCBhc3RfZnJhbWVidWZmZXIgKmFmYiA9ICZhZmJk ZXYtPmFmYjsKPiAgCj4gIAlkcm1fZmJfaGVscGVyX3VucmVnaXN0ZXJfZmJpKCZhZmJkZXYtPmhl bHBlcik7Cj4gLQlkcm1fZmJfaGVscGVyX3JlbGVhc2VfZmJpKCZhZmJkZXYtPmhlbHBlcik7Cj4g IAo+ICAJaWYgKGFmYi0+b2JqKSB7Cj4gIAkJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2VfdW5s b2NrZWQoYWZiLT5vYmopOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYm9jaHMvYm9j aHNfZmJkZXYuYyBiL2RyaXZlcnMvZ3B1L2RybS9ib2Nocy9ib2Noc19mYmRldi5jCj4gaW5kZXgg MDMxN2MzZGY2YTIyLi5kOTgyMWU2ZDJjM2MgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2JvY2hzL2JvY2hzX2ZiZGV2LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYm9jaHMvYm9jaHNf ZmJkZXYuYwo+IEBAIC0xMDcsMTAgKzEwNyw4IEBAIHN0YXRpYyBpbnQgYm9jaHNmYl9jcmVhdGUo c3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlciwKPiAgCWluZm8tPnBhciA9ICZib2Nocy0+ZmIu aGVscGVyOwo+ICAKPiAgCXJldCA9IGJvY2hzX2ZyYW1lYnVmZmVyX2luaXQoYm9jaHMtPmRldiwg JmJvY2hzLT5mYi5nZmIsICZtb2RlX2NtZCwgZ29iaik7Cj4gLQlpZiAocmV0KSB7Cj4gLQkJZHJt X2ZiX2hlbHBlcl9yZWxlYXNlX2ZiaShoZWxwZXIpOwo+ICsJaWYgKHJldCkKPiAgCQlyZXR1cm4g cmV0Owo+IC0JfQo+ICAKPiAgCWJvY2hzLT5mYi5zaXplID0gc2l6ZTsKPiAgCj4gQEAgLTE0NCw3 ICsxNDIsNiBAQCBzdGF0aWMgaW50IGJvY2hzX2ZiZGV2X2Rlc3Ryb3koc3RydWN0IGJvY2hzX2Rl dmljZSAqYm9jaHMpCj4gIAlEUk1fREVCVUdfRFJJVkVSKCJcbiIpOwo+ICAKPiAgCWRybV9mYl9o ZWxwZXJfdW5yZWdpc3Rlcl9mYmkoJmJvY2hzLT5mYi5oZWxwZXIpOwo+IC0JZHJtX2ZiX2hlbHBl cl9yZWxlYXNlX2ZiaSgmYm9jaHMtPmZiLmhlbHBlcik7Cj4gIAo+ICAJaWYgKGdmYi0+b2JqKSB7 Cj4gIAkJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2VfdW5sb2NrZWQoZ2ZiLT5vYmopOwo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vY2lycnVzL2NpcnJ1c19mYmRldi5jIGIvZHJpdmVy cy9ncHUvZHJtL2NpcnJ1cy9jaXJydXNfZmJkZXYuYwo+IGluZGV4IDc5YTVjZDEwODI0NS4uNjA2 ZGExNTk1NWZhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9jaXJydXMvY2lycnVzX2Zi ZGV2LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vY2lycnVzL2NpcnJ1c19mYmRldi5jCj4gQEAg LTI1MCw3ICsyNTAsNiBAQCBzdGF0aWMgaW50IGNpcnJ1c19mYmRldl9kZXN0cm95KHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCj4gIAlzdHJ1Y3QgY2lycnVzX2ZyYW1lYnVmZmVyICpnZmIgPSAmZ2Zi ZGV2LT5nZmI7Cj4gIAo+ICAJZHJtX2ZiX2hlbHBlcl91bnJlZ2lzdGVyX2ZiaSgmZ2ZiZGV2LT5o ZWxwZXIpOwo+IC0JZHJtX2ZiX2hlbHBlcl9yZWxlYXNlX2ZiaSgmZ2ZiZGV2LT5oZWxwZXIpOwo+ ICAKPiAgCWlmIChnZmItPm9iaikgewo+ICAJCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlX3Vu bG9ja2VkKGdmYi0+b2JqKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9j bWFfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2NtYV9oZWxwZXIuYwo+IGluZGV4 IDBlZjhiMjg0YTRiOC4uNDVkZjI0NWI3OWEwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fZmJfY21hX2hlbHBlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9jbWFf aGVscGVyLmMKPiBAQCAtNDc1LDcgKzQ3NSw3IEBAIGRybV9mYmRldl9jbWFfY3JlYXRlKHN0cnVj dCBkcm1fZmJfaGVscGVyICpoZWxwZXIsCj4gIGVycl9jbWFfZGVzdHJveToKPiAgCWRybV9mcmFt ZWJ1ZmZlcl9yZW1vdmUoJmZiZGV2X2NtYS0+ZmItPmZiKTsKPiAgZXJyX2ZiX2luZm9fZGVzdHJv eToKPiAtCWRybV9mYl9oZWxwZXJfcmVsZWFzZV9mYmkoaGVscGVyKTsKPiArCWRybV9mYl9oZWxw ZXJfZmluaShoZWxwZXIpOwo+ICBlcnJfZ2VtX2ZyZWVfb2JqZWN0Ogo+ICAJZHJtX2dlbV9vYmpl Y3RfdW5yZWZlcmVuY2VfdW5sb2NrZWQoJm9iai0+YmFzZSk7Cj4gIAlyZXR1cm4gcmV0Owo+IEBA IC01NzEsNyArNTcxLDYgQEAgdm9pZCBkcm1fZmJkZXZfY21hX2Zpbmkoc3RydWN0IGRybV9mYmRl dl9jbWEgKmZiZGV2X2NtYSkKPiAgCWRybV9mYl9oZWxwZXJfdW5yZWdpc3Rlcl9mYmkoJmZiZGV2 X2NtYS0+ZmJfaGVscGVyKTsKPiAgCWlmIChmYmRldl9jbWEtPmZiX2hlbHBlci5mYmRldikKPiAg CQlkcm1fZmJkZXZfY21hX2RlZmlvX2ZpbmkoZmJkZXZfY21hLT5mYl9oZWxwZXIuZmJkZXYpOwo+ IC0JZHJtX2ZiX2hlbHBlcl9yZWxlYXNlX2ZiaSgmZmJkZXZfY21hLT5mYl9oZWxwZXIpOwo+ICAK PiAgCWlmIChmYmRldl9jbWEtPmZiKQo+ICAJCWRybV9mcmFtZWJ1ZmZlcl9yZW1vdmUoJmZiZGV2 X2NtYS0+ZmItPmZiKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxw ZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMKPiBpbmRleCA1MjIwYTdiNWU2 ZmYuLmMyNDYwMDkyMzc1ZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hl bHBlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYwo+IEBAIC03ODEs NyArNzgxLDkgQEAgRVhQT1JUX1NZTUJPTChkcm1fZmJfaGVscGVyX2luaXQpOwo+ICAgKiBAZmJf aGVscGVyOiBkcml2ZXItYWxsb2NhdGVkIGZiZGV2IGhlbHBlcgo+ICAgKgo+ICAgKiBBIGhlbHBl ciB0byBhbGxvYyBmYl9pbmZvIGFuZCB0aGUgbWVtYmVycyBjbWFwIGFuZCBhcGVydHVyZXMuIENh bGxlZAo+IC0gKiBieSB0aGUgZHJpdmVyIHdpdGhpbiB0aGUgZmJfcHJvYmUgZmJfaGVscGVyIGNh bGxiYWNrIGZ1bmN0aW9uLgo+ICsgKiBieSB0aGUgZHJpdmVyIHdpdGhpbiB0aGUgZmJfcHJvYmUg ZmJfaGVscGVyIGNhbGxiYWNrIGZ1bmN0aW9uLiBEcml2ZXJzIGRvIG5vdAo+ICsgKiBuZWVkIHRv IHJlbGVhc2UgdGhlIGFsbG9jYXRlZCBmYl9pbmZvIHN0cnVjdHVyZSB0aGVtc2VsdmVzLCB0aGlz IGlzCj4gKyAqIGF1dG9tYXRpY2FsbHkgZG9uZSB3aGVuIGNhbGxpbmcgZHJtX2ZiX2hlbHBlcl9m aW5pKCkuCj4gICAqCj4gICAqIFJFVFVSTlM6Cj4gICAqIGZiX2luZm8gcG9pbnRlciBpZiB0aGlu Z3Mgd2VudCBva2F5LCBwb2ludGVyIGNvbnRhaW5pbmcgZXJyb3IgY29kZQo+IEBAIC04MzUsMjkg KzgzNyw2IEBAIHZvaWQgZHJtX2ZiX2hlbHBlcl91bnJlZ2lzdGVyX2ZiaShzdHJ1Y3QgZHJtX2Zi X2hlbHBlciAqZmJfaGVscGVyKQo+ICBFWFBPUlRfU1lNQk9MKGRybV9mYl9oZWxwZXJfdW5yZWdp c3Rlcl9mYmkpOwo+ICAKPiAgLyoqCj4gLSAqIGRybV9mYl9oZWxwZXJfcmVsZWFzZV9mYmkgLSBk ZWFsbG9jIGZiX2luZm8gYW5kIGl0cyBtZW1iZXJzCj4gLSAqIEBmYl9oZWxwZXI6IGRyaXZlci1h bGxvY2F0ZWQgZmJkZXYgaGVscGVyCj4gLSAqCj4gLSAqIEEgaGVscGVyIHRvIGZyZWUgbWVtb3J5 IHRha2VuIGJ5IGZiX2luZm8gYW5kIHRoZSBtZW1iZXJzIGNtYXAgYW5kCj4gLSAqIGFwZXJ0dXJl cwo+IC0gKi8KPiAtdm9pZCBkcm1fZmJfaGVscGVyX3JlbGVhc2VfZmJpKHN0cnVjdCBkcm1fZmJf aGVscGVyICpmYl9oZWxwZXIpCj4gLXsKPiAtCWlmIChmYl9oZWxwZXIpIHsKPiAtCQlzdHJ1Y3Qg ZmJfaW5mbyAqaW5mbyA9IGZiX2hlbHBlci0+ZmJkZXY7Cj4gLQo+IC0JCWlmIChpbmZvKSB7Cj4g LQkJCWlmIChpbmZvLT5jbWFwLmxlbikKPiAtCQkJCWZiX2RlYWxsb2NfY21hcCgmaW5mby0+Y21h cCk7Cj4gLQkJCWZyYW1lYnVmZmVyX3JlbGVhc2UoaW5mbyk7Cj4gLQkJfQo+IC0KPiAtCQlmYl9o ZWxwZXItPmZiZGV2ID0gTlVMTDsKPiAtCX0KPiAtfQo+IC1FWFBPUlRfU1lNQk9MKGRybV9mYl9o ZWxwZXJfcmVsZWFzZV9mYmkpOwo+IC0KPiAtLyoqCj4gICAqIGRybV9mYl9oZWxwZXJfZmluaSAt IGZpbmlhbGl6ZSBhICZzdHJ1Y3QgZHJtX2ZiX2hlbHBlcgo+ICAgKiBAZmJfaGVscGVyOiBkcml2 ZXItYWxsb2NhdGVkIGZiZGV2IGhlbHBlcgo+ICAgKgo+IEBAIC04NjYsOSArODQ1LDE5IEBAIEVY UE9SVF9TWU1CT0woZHJtX2ZiX2hlbHBlcl9yZWxlYXNlX2ZiaSk7Cj4gICAqLwo+ICB2b2lkIGRy bV9mYl9oZWxwZXJfZmluaShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyKQo+ICB7Cj4g LQlpZiAoIWRybV9mYmRldl9lbXVsYXRpb24pCj4gKwlzdHJ1Y3QgZmJfaW5mbyAqaW5mbzsKPiAr Cj4gKwlpZiAoIWRybV9mYmRldl9lbXVsYXRpb24gfHwgIWZiX2hlbHBlcikKPiAgCQlyZXR1cm47 Cj4gIAo+ICsJaW5mbyA9IGZiX2hlbHBlci0+ZmJkZXY7Cj4gKwlpZiAoaW5mbykgewo+ICsJCWlm IChpbmZvLT5jbWFwLmxlbikKPiArCQkJZmJfZGVhbGxvY19jbWFwKCZpbmZvLT5jbWFwKTsKPiAr CQlmcmFtZWJ1ZmZlcl9yZWxlYXNlKGluZm8pOwo+ICsJfQo+ICsJZmJfaGVscGVyLT5mYmRldiA9 IE5VTEw7Cj4gKwo+ICAJbXV0ZXhfbG9jaygma2VybmVsX2ZiX2hlbHBlcl9sb2NrKTsKPiAgCWlm ICghbGlzdF9lbXB0eSgmZmJfaGVscGVyLT5rZXJuZWxfZmJfbGlzdCkpIHsKPiAgCQlsaXN0X2Rl bCgmZmJfaGVscGVyLT5rZXJuZWxfZmJfbGlzdCk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9leHlub3MvZXh5bm9zX2RybV9mYmRldi5jIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9l eHlub3NfZHJtX2ZiZGV2LmMKPiBpbmRleCBhNzg4NGJlYTQyZWIuLjM2OTMzZWI2M2QxOSAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZmJkZXYuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9mYmRldi5jCj4gQEAgLTk5LDcg Kzk5LDYgQEAgc3RhdGljIGludCBleHlub3NfZHJtX2ZiZGV2X3VwZGF0ZShzdHJ1Y3QgZHJtX2Zi X2hlbHBlciAqaGVscGVyLAo+ICAJCQkJVk1fTUFQLCBwZ3Byb3Rfd3JpdGVjb21iaW5lKFBBR0Vf S0VSTkVMKSk7Cj4gIAlpZiAoIWV4eW5vc19nZW0tPmt2YWRkcikgewo+ICAJCURSTV9FUlJPUigi ZmFpbGVkIHRvIG1hcCBwYWdlcyB0byBrZXJuZWwgc3BhY2UuXG4iKTsKPiAtCQlkcm1fZmJfaGVs cGVyX3JlbGVhc2VfZmJpKGhlbHBlcik7Cj4gIAkJcmV0dXJuIC1FSU87Cj4gIAl9Cj4gIAo+IEBA IC0yNzUsNyArMjc0LDYgQEAgc3RhdGljIHZvaWQgZXh5bm9zX2RybV9mYmRldl9kZXN0cm95KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAl9Cj4gIAo+ICAJZHJtX2ZiX2hlbHBlcl91bnJlZ2lz dGVyX2ZiaShmYl9oZWxwZXIpOwo+IC0JZHJtX2ZiX2hlbHBlcl9yZWxlYXNlX2ZiaShmYl9oZWxw ZXIpOwo+ICAKPiAgCWRybV9mYl9oZWxwZXJfZmluaShmYl9oZWxwZXIpOwo+ICB9Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvZnJhbWVidWZmZXIuYyBiL2RyaXZlcnMvZ3B1 L2RybS9nbWE1MDAvZnJhbWVidWZmZXIuYwo+IGluZGV4IGZkMTQ4OGJmNTE4OS4uMWI0NTA3NWZj N2IwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvZnJhbWVidWZmZXIuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvZnJhbWVidWZmZXIuYwo+IEBAIC0zOTIsNyAr MzkyLDcgQEAgc3RhdGljIGludCBwc2JmYl9jcmVhdGUoc3RydWN0IHBzYl9mYmRldiAqZmJkZXYs Cj4gIAlpbmZvID0gZHJtX2ZiX2hlbHBlcl9hbGxvY19mYmkoJmZiZGV2LT5wc2JfZmJfaGVscGVy KTsKPiAgCWlmIChJU19FUlIoaW5mbykpIHsKPiAgCQlyZXQgPSBQVFJfRVJSKGluZm8pOwo+IC0J CWdvdG8gZXJyX2ZyZWVfcmFuZ2U7Cj4gKwkJZ290byBvdXQ7Cj4gIAl9Cj4gIAlpbmZvLT5wYXIg PSBmYmRldjsKPiAgCj4gQEAgLTQwMCw3ICs0MDAsNyBAQCBzdGF0aWMgaW50IHBzYmZiX2NyZWF0 ZShzdHJ1Y3QgcHNiX2ZiZGV2ICpmYmRldiwKPiAgCj4gIAlyZXQgPSBwc2JfZnJhbWVidWZmZXJf aW5pdChkZXYsIHBzYmZiLCAmbW9kZV9jbWQsIGJhY2tpbmcpOwo+ICAJaWYgKHJldCkKPiAtCQln b3RvIGVycl9yZWxlYXNlOwo+ICsJCWdvdG8gb3V0Owo+ICAKPiAgCWZiID0gJnBzYmZiLT5iYXNl Owo+ICAJcHNiZmItPmZiZGV2ID0gaW5mbzsKPiBAQCAtNDQ1LDkgKzQ0NSw3IEBAIHN0YXRpYyBp bnQgcHNiZmJfY3JlYXRlKHN0cnVjdCBwc2JfZmJkZXYgKmZiZGV2LAo+ICAJCQkJCXBzYmZiLT5i YXNlLndpZHRoLCBwc2JmYi0+YmFzZS5oZWlnaHQpOwo+ICAKPiAgCXJldHVybiAwOwo+IC1lcnJf cmVsZWFzZToKPiAtCWRybV9mYl9oZWxwZXJfcmVsZWFzZV9mYmkoJmZiZGV2LT5wc2JfZmJfaGVs cGVyKTsKPiAtZXJyX2ZyZWVfcmFuZ2U6Cj4gK291dDoKPiAgCXBzYl9ndHRfZnJlZV9yYW5nZShk ZXYsIGJhY2tpbmcpOwo+ICAJcmV0dXJuIHJldDsKPiAgfQo+IEBAIC01MzYsNyArNTM0LDYgQEAg c3RhdGljIGludCBwc2JfZmJkZXZfZGVzdHJveShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1 Y3QgcHNiX2ZiZGV2ICpmYmRldikKPiAgCXN0cnVjdCBwc2JfZnJhbWVidWZmZXIgKnBzYmZiID0g JmZiZGV2LT5wZmI7Cj4gIAo+ICAJZHJtX2ZiX2hlbHBlcl91bnJlZ2lzdGVyX2ZiaSgmZmJkZXYt PnBzYl9mYl9oZWxwZXIpOwo+IC0JZHJtX2ZiX2hlbHBlcl9yZWxlYXNlX2ZiaSgmZmJkZXYtPnBz Yl9mYl9oZWxwZXIpOwo+ICAKPiAgCWRybV9mYl9oZWxwZXJfZmluaSgmZmJkZXYtPnBzYl9mYl9o ZWxwZXIpOwo+ICAJZHJtX2ZyYW1lYnVmZmVyX3VucmVnaXN0ZXJfcHJpdmF0ZSgmcHNiZmItPmJh c2UpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL2hpYm1j X2RybV9mYmRldi5jIGIvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJtY19kcm1f ZmJkZXYuYwo+IGluZGV4IDE2ZmU3OTA1M2VlMS4uN2ZmYzFjNTkzYWUxIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfZHJtX2ZiZGV2LmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL2hpYm1jX2RybV9mYmRldi5jCj4gQEAg LTE0Nyw3ICsxNDcsNiBAQCBzdGF0aWMgaW50IGhpYm1jX2RybV9mYl9jcmVhdGUoc3RydWN0IGRy bV9mYl9oZWxwZXIgKmhlbHBlciwKPiAgCXJldHVybiAwOwo+ICAKPiAgb3V0X3JlbGVhc2VfZmJp Ogo+IC0JZHJtX2ZiX2hlbHBlcl9yZWxlYXNlX2ZiaShoZWxwZXIpOwo+ICAJcmV0MSA9IHR0bV9i b19yZXNlcnZlKCZiby0+Ym8sIHRydWUsIGZhbHNlLCBOVUxMKTsKPiAgCWlmIChyZXQxKSB7Cj4g IAkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gcnN2IHR0bV9ibyB3aGVuIHJlbGVhc2UgZmJpOiAlZFxu IiwgcmV0MSk7Cj4gQEAgLTE3MCw3ICsxNjksNiBAQCBzdGF0aWMgdm9pZCBoaWJtY19mYmRldl9k ZXN0cm95KHN0cnVjdCBoaWJtY19mYmRldiAqZmJkZXYpCj4gIAlzdHJ1Y3QgZHJtX2ZiX2hlbHBl ciAqZmJoID0gJmZiZGV2LT5oZWxwZXI7Cj4gIAo+ICAJZHJtX2ZiX2hlbHBlcl91bnJlZ2lzdGVy X2ZiaShmYmgpOwo+IC0JZHJtX2ZiX2hlbHBlcl9yZWxlYXNlX2ZiaShmYmgpOwo+ICAKPiAgCWRy bV9mYl9oZWxwZXJfZmluaShmYmgpOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZmJkZXYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiZGV2LmMK PiBpbmRleCBlMGQ5ZTcyY2YzZDEuLjhlYTJiZDg1YTQ3NCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9mYmRldi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZmJkZXYuYwo+IEBAIC0yNTMsNyArMjUzLDcgQEAgc3RhdGljIGludCBpbnRlbGZiX2Ny ZWF0ZShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyLAo+ICAJaWYgKElTX0VSUih2YWRkcikp IHsKPiAgCQlEUk1fRVJST1IoIkZhaWxlZCB0byByZW1hcCBmcmFtZWJ1ZmZlciBpbnRvIHZpcnR1 YWwgbWVtb3J5XG4iKTsKPiAgCQlyZXQgPSBQVFJfRVJSKHZhZGRyKTsKPiAtCQlnb3RvIG91dF9k ZXN0cm95X2ZiaTsKPiArCQlnb3RvIG91dF91bnBpbjsKPiAgCX0KPiAgCWluZm8tPnNjcmVlbl9i YXNlID0gdmFkZHI7Cj4gIAlpbmZvLT5zY3JlZW5fc2l6ZSA9IHZtYS0+bm9kZS5zaXplOwo+IEBA IC0yODEsOCArMjgxLDYgQEAgc3RhdGljIGludCBpbnRlbGZiX2NyZWF0ZShzdHJ1Y3QgZHJtX2Zi X2hlbHBlciAqaGVscGVyLAo+ICAJdmdhX3N3aXRjaGVyb29fY2xpZW50X2ZiX3NldChwZGV2LCBp bmZvKTsKPiAgCXJldHVybiAwOwo+ICAKPiAtb3V0X2Rlc3Ryb3lfZmJpOgo+IC0JZHJtX2ZiX2hl bHBlcl9yZWxlYXNlX2ZiaShoZWxwZXIpOwo+ICBvdXRfdW5waW46Cj4gIAlpbnRlbF91bnBpbl9m Yl92bWEodm1hKTsKPiAgb3V0X3VubG9jazoKPiBAQCAtNTQzLDcgKzU0MSw2IEBAIHN0YXRpYyB2 b2lkIGludGVsX2ZiZGV2X2Rlc3Ryb3koc3RydWN0IGludGVsX2ZiZGV2ICppZmJkZXYpCj4gIAkg Ki8KPiAgCj4gIAlkcm1fZmJfaGVscGVyX3VucmVnaXN0ZXJfZmJpKCZpZmJkZXYtPmhlbHBlcik7 Cj4gLQlkcm1fZmJfaGVscGVyX3JlbGVhc2VfZmJpKCZpZmJkZXYtPmhlbHBlcik7Cj4gIAo+ICAJ ZHJtX2ZiX2hlbHBlcl9maW5pKCZpZmJkZXYtPmhlbHBlcik7Cj4gIAo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9tZ2FnMjAwX2ZiLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWdh ZzIwMC9tZ2FnMjAwX2ZiLmMKPiBpbmRleCAxYTY2NWUxNjcxYjguLjMyMGIwZDMzYzM4MCAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9tZ2FnMjAwX2ZiLmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9tZ2FnMjAwX2ZiLmMKPiBAQCAtMTk4LDcgKzE5OCw3IEBA IHN0YXRpYyBpbnQgbWdhZzIwMGZiX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVy LAo+ICAKPiAgCXJldCA9IG1nYWcyMDBfZnJhbWVidWZmZXJfaW5pdChkZXYsICZtZmJkZXYtPm1m YiwgJm1vZGVfY21kLCBnb2JqKTsKPiAgCWlmIChyZXQpCj4gLQkJZ290byBlcnJfZnJhbWVidWZm ZXJfaW5pdDsKPiArCQlnb3RvIGVycl9hbGxvY19mYmk7Cj4gIAo+ICAJbWZiZGV2LT5zeXNyYW0g PSBzeXNyYW07Cj4gIAltZmJkZXYtPnNpemUgPSBzaXplOwo+IEBAIC0yMzAsOCArMjMwLDYgQEAg c3RhdGljIGludCBtZ2FnMjAwZmJfY3JlYXRlKHN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIs Cj4gIAo+ICAJcmV0dXJuIDA7Cj4gIAo+IC1lcnJfZnJhbWVidWZmZXJfaW5pdDoKPiAtCWRybV9m Yl9oZWxwZXJfcmVsZWFzZV9mYmkoaGVscGVyKTsKPiAgZXJyX2FsbG9jX2ZiaToKPiAgCXZmcmVl KHN5c3JhbSk7Cj4gIGVycl9zeXNyYW06Cj4gQEAgLTI0Niw3ICsyNDQsNiBAQCBzdGF0aWMgaW50 IG1nYV9mYmRldl9kZXN0cm95KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAlzdHJ1Y3QgbWdh X2ZyYW1lYnVmZmVyICptZmIgPSAmbWZiZGV2LT5tZmI7Cj4gIAo+ICAJZHJtX2ZiX2hlbHBlcl91 bnJlZ2lzdGVyX2ZiaSgmbWZiZGV2LT5oZWxwZXIpOwo+IC0JZHJtX2ZiX2hlbHBlcl9yZWxlYXNl X2ZiaSgmbWZiZGV2LT5oZWxwZXIpOwo+ICAKPiAgCWlmIChtZmItPm9iaikgewo+ICAJCWRybV9n ZW1fb2JqZWN0X3VucmVmZXJlbmNlX3VubG9ja2VkKG1mYi0+b2JqKTsKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZmJkZXYuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNt X2ZiZGV2LmMKPiBpbmRleCBmOGE1ODdlYWM2YjguLmE3ZDliOGUzZjhjYSAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9mYmRldi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L21zbS9tc21fZmJkZXYuYwo+IEBAIC0yMzYsNyArMjM2LDYgQEAgdm9pZCBtc21fZmJkZXZfZnJl ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJREJHKCk7Cj4gIAo+ICAJZHJtX2ZiX2hlbHBl cl91bnJlZ2lzdGVyX2ZiaShoZWxwZXIpOwo+IC0JZHJtX2ZiX2hlbHBlcl9yZWxlYXNlX2ZiaSho ZWxwZXIpOwo+ICAKPiAgCWRybV9mYl9oZWxwZXJfZmluaShoZWxwZXIpOwo+ICAKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9mYmNvbi5jIGIvZHJpdmVycy9n cHUvZHJtL25vdXZlYXUvbm91dmVhdV9mYmNvbi5jCj4gaW5kZXggYzY5OWQ3Nzg0ZGEyLi4zYzhm OGRkODkyMzkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9m YmNvbi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9mYmNvbi5jCj4g QEAgLTQ0NCw3ICs0NDQsNiBAQCBub3V2ZWF1X2ZiY29uX2Rlc3Ryb3koc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgc3RydWN0IG5vdXZlYXVfZmJkZXYgKmZiY29uKQo+ICAJc3RydWN0IG5vdXZlYXVf ZnJhbWVidWZmZXIgKm5vdXZlYXVfZmIgPSBub3V2ZWF1X2ZyYW1lYnVmZmVyKGZiY29uLT5oZWxw ZXIuZmIpOwo+ICAKPiAgCWRybV9mYl9oZWxwZXJfdW5yZWdpc3Rlcl9mYmkoJmZiY29uLT5oZWxw ZXIpOwo+IC0JZHJtX2ZiX2hlbHBlcl9yZWxlYXNlX2ZiaSgmZmJjb24tPmhlbHBlcik7Cj4gIAlk cm1fZmJfaGVscGVyX2ZpbmkoJmZiY29uLT5oZWxwZXIpOwo+ICAKPiAgCWlmIChub3V2ZWF1X2Zi LT5udmJvKSB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfZmJk ZXYuYyBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfZmJkZXYuYwo+IGluZGV4IDJhODM5 OTU2ZGFlNi4uMmM5ZTJmMzZhOWQyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9vbWFw ZHJtL29tYXBfZmJkZXYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfZmJk ZXYuYwo+IEBAIC0yMjIsOSArMjIyLDYgQEAgc3RhdGljIGludCBvbWFwX2ZiZGV2X2NyZWF0ZShz dHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyLAo+ICBmYWlsOgo+ICAKPiAgCWlmIChyZXQpIHsK PiAtCj4gLQkJZHJtX2ZiX2hlbHBlcl9yZWxlYXNlX2ZiaShoZWxwZXIpOwo+IC0KPiAgCQlpZiAo ZmIpCj4gIAkJCWRybV9mcmFtZWJ1ZmZlcl9yZW1vdmUoZmIpOwo+ICAJfQo+IEBAIC0zMDIsNyAr Mjk5LDYgQEAgdm9pZCBvbWFwX2ZiZGV2X2ZyZWUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAg CURCRygpOwo+ICAKPiAgCWRybV9mYl9oZWxwZXJfdW5yZWdpc3Rlcl9mYmkoaGVscGVyKTsKPiAt CWRybV9mYl9oZWxwZXJfcmVsZWFzZV9mYmkoaGVscGVyKTsKPiAgCj4gIAlkcm1fZmJfaGVscGVy X2ZpbmkoaGVscGVyKTsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhs X2ZiLmMgYi9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9mYi5jCj4gaW5kZXggZTZhZGU2YWFiNTRj Li5hMGY1NTc1MGUyZDMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfZmIu Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX2ZiLmMKPiBAQCAtMzA1LDcgKzMwNSw3 IEBAIHN0YXRpYyBpbnQgcXhsZmJfY3JlYXRlKHN0cnVjdCBxeGxfZmJkZXYgKnFmYmRldiwKPiAg Cj4gIAlpZiAoaW5mby0+c2NyZWVuX2Jhc2UgPT0gTlVMTCkgewo+ICAJCXJldCA9IC1FTk9TUEM7 Cj4gLQkJZ290byBvdXRfZGVzdHJveV9mYmk7Cj4gKwkJZ290byBvdXRfdW5yZWY7Cj4gIAl9Cj4g IAo+ICAjaWZkZWYgQ09ORklHX0RSTV9GQkRFVl9FTVVMQVRJT04KPiBAQCAtMzIwLDggKzMyMCw2 IEBAIHN0YXRpYyBpbnQgcXhsZmJfY3JlYXRlKHN0cnVjdCBxeGxfZmJkZXYgKnFmYmRldiwKPiAg CQkgZmItPmZvcm1hdC0+ZGVwdGgsIGZiLT5waXRjaGVzWzBdLCBmYi0+d2lkdGgsIGZiLT5oZWln aHQpOwo+ICAJcmV0dXJuIDA7Cj4gIAo+IC1vdXRfZGVzdHJveV9mYmk6Cj4gLQlkcm1fZmJfaGVs cGVyX3JlbGVhc2VfZmJpKCZxZmJkZXYtPmhlbHBlcik7Cj4gIG91dF91bnJlZjoKPiAgCWlmIChx Ym8pIHsKPiAgCQlyZXQgPSBxeGxfYm9fcmVzZXJ2ZShxYm8sIGZhbHNlKTsKPiBAQCAtMzYzLDcg KzM2MSw2IEBAIHN0YXRpYyBpbnQgcXhsX2ZiZGV2X2Rlc3Ryb3koc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgc3RydWN0IHF4bF9mYmRldiAqcWZiZGV2KQo+ICAJc3RydWN0IHF4bF9mcmFtZWJ1ZmZl ciAqcWZiID0gJnFmYmRldi0+cWZiOwo+ICAKPiAgCWRybV9mYl9oZWxwZXJfdW5yZWdpc3Rlcl9m YmkoJnFmYmRldi0+aGVscGVyKTsKPiAtCWRybV9mYl9oZWxwZXJfcmVsZWFzZV9mYmkoJnFmYmRl di0+aGVscGVyKTsKPiAgCj4gIAlpZiAocWZiLT5vYmopIHsKPiAgCQlxeGxmYl9kZXN0cm95X3Bp bm5lZF9vYmplY3QocWZiLT5vYmopOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3JhZGVvbl9mYi5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZmIuYwo+IGlu ZGV4IDZjMTBhODNmMzM2Mi4uNjE1Y2Y5NjVlZTdmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uX2ZiLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3Jh ZGVvbl9mYi5jCj4gQEAgLTI0Miw3ICsyNDIsNyBAQCBzdGF0aWMgaW50IHJhZGVvbmZiX2NyZWF0 ZShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyLAo+ICAJaW5mbyA9IGRybV9mYl9oZWxwZXJf YWxsb2NfZmJpKGhlbHBlcik7Cj4gIAlpZiAoSVNfRVJSKGluZm8pKSB7Cj4gIAkJcmV0ID0gUFRS X0VSUihpbmZvKTsKPiAtCQlnb3RvIG91dF91bnJlZjsKPiArCQlnb3RvIG91dDsKPiAgCX0KPiAg Cj4gIAlpbmZvLT5wYXIgPSByZmJkZXY7Cj4gQEAgLTI1MSw3ICsyNTEsNyBAQCBzdGF0aWMgaW50 IHJhZGVvbmZiX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyLAo+ICAJcmV0ID0g cmFkZW9uX2ZyYW1lYnVmZmVyX2luaXQocmRldi0+ZGRldiwgJnJmYmRldi0+cmZiLCAmbW9kZV9j bWQsIGdvYmopOwo+ICAJaWYgKHJldCkgewo+ICAJCURSTV9FUlJPUigiZmFpbGVkIHRvIGluaXRp YWxpemUgZnJhbWVidWZmZXIgJWRcbiIsIHJldCk7Cj4gLQkJZ290byBvdXRfZGVzdHJveV9mYmk7 Cj4gKwkJZ290byBvdXQ7Cj4gIAl9Cj4gIAo+ICAJZmIgPSAmcmZiZGV2LT5yZmIuYmFzZTsKPiBA QCAtMjg0LDcgKzI4NCw3IEBAIHN0YXRpYyBpbnQgcmFkZW9uZmJfY3JlYXRlKHN0cnVjdCBkcm1f ZmJfaGVscGVyICpoZWxwZXIsCj4gIAo+ICAJaWYgKGluZm8tPnNjcmVlbl9iYXNlID09IE5VTEwp IHsKPiAgCQlyZXQgPSAtRU5PU1BDOwo+IC0JCWdvdG8gb3V0X2Rlc3Ryb3lfZmJpOwo+ICsJCWdv dG8gb3V0Owo+ICAJfQo+ICAKPiAgCURSTV9JTkZPKCJmYiBtYXBwYWJsZSBhdCAweCVsWFxuIiwg IGluZm8tPmZpeC5zbWVtX3N0YXJ0KTsKPiBAQCAtMjk2LDkgKzI5Niw3IEBAIHN0YXRpYyBpbnQg cmFkZW9uZmJfY3JlYXRlKHN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIsCj4gIAl2Z2Ffc3dp dGNoZXJvb19jbGllbnRfZmJfc2V0KHJkZXYtPmRkZXYtPnBkZXYsIGluZm8pOwo+ICAJcmV0dXJu IDA7Cj4gIAo+IC1vdXRfZGVzdHJveV9mYmk6Cj4gLQlkcm1fZmJfaGVscGVyX3JlbGVhc2VfZmJp KGhlbHBlcik7Cj4gLW91dF91bnJlZjoKPiArb3V0Ogo+ICAJaWYgKHJibykgewo+ICAKPiAgCX0K PiBAQCAtMzIyLDcgKzMyMCw2IEBAIHN0YXRpYyBpbnQgcmFkZW9uX2ZiZGV2X2Rlc3Ryb3koc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IHJhZGVvbl9mYmRldiAqcmZiCj4gIAlzdHJ1Y3Qg cmFkZW9uX2ZyYW1lYnVmZmVyICpyZmIgPSAmcmZiZGV2LT5yZmI7Cj4gIAo+ICAJZHJtX2ZiX2hl bHBlcl91bnJlZ2lzdGVyX2ZiaSgmcmZiZGV2LT5oZWxwZXIpOwo+IC0JZHJtX2ZiX2hlbHBlcl9y ZWxlYXNlX2ZiaSgmcmZiZGV2LT5oZWxwZXIpOwo+ICAKPiAgCWlmIChyZmItPm9iaikgewo+ICAJ CXJhZGVvbmZiX2Rlc3Ryb3lfcGlubmVkX29iamVjdChyZmItPm9iaik7Cj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fZmJkZXYuYyBiL2RyaXZlcnMv Z3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fZmJkZXYuYwo+IGluZGV4IDUyZDFmZGY5Zjlk YS4uOWQ0MDljYWFjMmI3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9y b2NrY2hpcF9kcm1fZmJkZXYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2Nr Y2hpcF9kcm1fZmJkZXYuYwo+IEBAIC03OCw3ICs3OCw3IEBAIHN0YXRpYyBpbnQgcm9ja2NoaXBf ZHJtX2ZiZGV2X2NyZWF0ZShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyLAo+ICAJaWYgKElT X0VSUihmYmkpKSB7Cj4gIAkJZGV2X2VycihkZXYtPmRldiwgIkZhaWxlZCB0byBjcmVhdGUgZnJh bWVidWZmZXIgaW5mby5cbiIpOwo+ICAJCXJldCA9IFBUUl9FUlIoZmJpKTsKPiAtCQlnb3RvIGVy cl9yb2NrY2hpcF9nZW1fZnJlZV9vYmplY3Q7Cj4gKwkJZ290byBvdXQ7Cj4gIAl9Cj4gIAo+ICAJ aGVscGVyLT5mYiA9IHJvY2tjaGlwX2RybV9mcmFtZWJ1ZmZlcl9pbml0KGRldiwgJm1vZGVfY21k LAo+IEBAIC04Niw3ICs4Niw3IEBAIHN0YXRpYyBpbnQgcm9ja2NoaXBfZHJtX2ZiZGV2X2NyZWF0 ZShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyLAo+ICAJaWYgKElTX0VSUihoZWxwZXItPmZi KSkgewo+ICAJCWRldl9lcnIoZGV2LT5kZXYsICJGYWlsZWQgdG8gYWxsb2NhdGUgRFJNIGZyYW1l YnVmZmVyLlxuIik7Cj4gIAkJcmV0ID0gUFRSX0VSUihoZWxwZXItPmZiKTsKPiAtCQlnb3RvIGVy cl9yZWxlYXNlX2ZiaTsKPiArCQlnb3RvIG91dDsKPiAgCX0KPiAgCj4gIAlmYmktPnBhciA9IGhl bHBlcjsKPiBAQCAtMTE0LDkgKzExNCw3IEBAIHN0YXRpYyBpbnQgcm9ja2NoaXBfZHJtX2ZiZGV2 X2NyZWF0ZShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyLAo+ICAKPiAgCXJldHVybiAwOwo+ ICAKPiAtZXJyX3JlbGVhc2VfZmJpOgo+IC0JZHJtX2ZiX2hlbHBlcl9yZWxlYXNlX2ZiaShoZWxw ZXIpOwo+IC1lcnJfcm9ja2NoaXBfZ2VtX2ZyZWVfb2JqZWN0Ogo+ICtvdXQ6Cj4gIAlyb2NrY2hp cF9nZW1fZnJlZV9vYmplY3QoJnJrX29iai0+YmFzZSk7Cj4gIAlyZXR1cm4gcmV0Owo+ICB9Cj4g QEAgLTE3Niw3ICsxNzQsNiBAQCB2b2lkIHJvY2tjaGlwX2RybV9mYmRldl9maW5pKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpCj4gIAloZWxwZXIgPSAmcHJpdmF0ZS0+ZmJkZXZfaGVscGVyOwo+ICAK PiAgCWRybV9mYl9oZWxwZXJfdW5yZWdpc3Rlcl9mYmkoaGVscGVyKTsKPiAtCWRybV9mYl9oZWxw ZXJfcmVsZWFzZV9mYmkoaGVscGVyKTsKPiAgCj4gIAlpZiAoaGVscGVyLT5mYikKPiAgCQlkcm1f ZnJhbWVidWZmZXJfdW5yZWZlcmVuY2UoaGVscGVyLT5mYik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS90ZWdyYS9mYi5jIGIvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2ZiLmMKPiBpbmRl eCBmODk2ZTJmZjdkNDcuLjI4ZmYzMGNiN2IwZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vdGVncmEvZmIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9mYi5jCj4gQEAgLTIz NSw3ICsyMzUsNyBAQCBzdGF0aWMgaW50IHRlZ3JhX2ZiZGV2X3Byb2JlKHN0cnVjdCBkcm1fZmJf aGVscGVyICpoZWxwZXIsCj4gIAkJZGV2X2Vycihkcm0tPmRldiwgImZhaWxlZCB0byBhbGxvY2F0 ZSBEUk0gZnJhbWVidWZmZXI6ICVkXG4iLAo+ICAJCQllcnIpOwo+ICAJCWRybV9nZW1fb2JqZWN0 X3VucmVmZXJlbmNlX3VubG9ja2VkKCZiby0+Z2VtKTsKPiAtCQlnb3RvIHJlbGVhc2U7Cj4gKwkJ cmV0dXJuIFBUUl9FUlIoZmJkZXYtPmZiKTsKPiAgCX0KPiAgCj4gIAlmYiA9ICZmYmRldi0+ZmIt PmJhc2U7Cj4gQEAgLTI3Miw4ICsyNzIsNiBAQCBzdGF0aWMgaW50IHRlZ3JhX2ZiZGV2X3Byb2Jl KHN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIsCj4gIAo+ICBkZXN0cm95Ogo+ICAJZHJtX2Zy YW1lYnVmZmVyX3JlbW92ZShmYik7Cj4gLXJlbGVhc2U6Cj4gLQlkcm1fZmJfaGVscGVyX3JlbGVh c2VfZmJpKGhlbHBlcik7Cj4gIAlyZXR1cm4gZXJyOwo+ICB9Cj4gIAo+IEBAIC0zMzksNyArMzM3 LDYgQEAgc3RhdGljIGludCB0ZWdyYV9mYmRldl9pbml0KHN0cnVjdCB0ZWdyYV9mYmRldiAqZmJk ZXYsCj4gIHN0YXRpYyB2b2lkIHRlZ3JhX2ZiZGV2X2V4aXQoc3RydWN0IHRlZ3JhX2ZiZGV2ICpm YmRldikKPiAgewo+ICAJZHJtX2ZiX2hlbHBlcl91bnJlZ2lzdGVyX2ZiaSgmZmJkZXYtPmJhc2Up Owo+IC0JZHJtX2ZiX2hlbHBlcl9yZWxlYXNlX2ZiaSgmZmJkZXYtPmJhc2UpOwo+ICAKPiAgCWlm IChmYmRldi0+ZmIpCj4gIAkJZHJtX2ZyYW1lYnVmZmVyX3JlbW92ZSgmZmJkZXYtPmZiLT5iYXNl KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3VkbC91ZGxfZmIuYyBiL2RyaXZlcnMv Z3B1L2RybS91ZGwvdWRsX2ZiLmMKPiBpbmRleCBiOGRjMDZkNjg3NzcuLjA2Mzc0M2FkMDliZSAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdWRsL3VkbF9mYi5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL3VkbC91ZGxfZmIuYwo+IEBAIC0zODEsNyArMzgxLDcgQEAgc3RhdGljIGludCB1 ZGxmYl9jcmVhdGUoc3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlciwKPiAgCj4gIAlyZXQgPSB1 ZGxfZnJhbWVidWZmZXJfaW5pdChkZXYsICZ1ZmJkZXYtPnVmYiwgJm1vZGVfY21kLCBvYmopOwo+ ICAJaWYgKHJldCkKPiAtCQlnb3RvIG91dF9kZXN0cm95X2ZiaTsKPiArCQlnb3RvIG91dF9nZnJl ZTsKPiAgCj4gIAlmYiA9ICZ1ZmJkZXYtPnVmYi5iYXNlOwo+ICAKPiBAQCAtNDAzLDggKzQwMyw2 IEBAIHN0YXRpYyBpbnQgdWRsZmJfY3JlYXRlKHN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIs Cj4gIAkJICAgICAgdWZiZGV2LT51ZmIub2JqLT52bWFwcGluZyk7Cj4gIAo+ICAJcmV0dXJuIHJl dDsKPiAtb3V0X2Rlc3Ryb3lfZmJpOgo+IC0JZHJtX2ZiX2hlbHBlcl9yZWxlYXNlX2ZiaShoZWxw ZXIpOwo+ICBvdXRfZ2ZyZWU6Cj4gIAlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZV91bmxvY2tl ZCgmdWZiZGV2LT51ZmIub2JqLT5iYXNlKTsKPiAgb3V0Ogo+IEBAIC00MTksNyArNDE3LDYgQEAg c3RhdGljIHZvaWQgdWRsX2ZiZGV2X2Rlc3Ryb3koc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAg CQkJICAgICAgc3RydWN0IHVkbF9mYmRldiAqdWZiZGV2KQo+ICB7Cj4gIAlkcm1fZmJfaGVscGVy X3VucmVnaXN0ZXJfZmJpKCZ1ZmJkZXYtPmhlbHBlcik7Cj4gLQlkcm1fZmJfaGVscGVyX3JlbGVh c2VfZmJpKCZ1ZmJkZXYtPmhlbHBlcik7Cj4gIAlkcm1fZmJfaGVscGVyX2ZpbmkoJnVmYmRldi0+ aGVscGVyKTsKPiAgCWRybV9mcmFtZWJ1ZmZlcl91bnJlZ2lzdGVyX3ByaXZhdGUoJnVmYmRldi0+ dWZiLmJhc2UpOwo+ICAJZHJtX2ZyYW1lYnVmZmVyX2NsZWFudXAoJnVmYmRldi0+dWZiLmJhc2Up Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfZmIuYyBiL2Ry aXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9mYi5jCj4gaW5kZXggMjRmOTlmYzlkOGE0Li5h Nzk5MGM3NDU0OTcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1 X2ZiLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfZmIuYwo+IEBAIC0z MjAsNyArMzIwLDcgQEAgc3RhdGljIGludCB2aXJ0aW9fZ3B1ZmJfY3JlYXRlKHN0cnVjdCBkcm1f ZmJfaGVscGVyICpoZWxwZXIsCj4gIAlyZXQgPSB2aXJ0aW9fZ3B1X2ZyYW1lYnVmZmVyX2luaXQo ZGV2LCAmdmZiZGV2LT52Z2ZiLAo+ICAJCQkJCSAgJm1vZGVfY21kLCAmb2JqLT5nZW1fYmFzZSk7 Cj4gIAlpZiAocmV0KQo+IC0JCWdvdG8gZXJyX2ZiX2luaXQ7Cj4gKwkJZ290byBlcnJfZmJfYWxs b2M7Cj4gIAo+ICAJZmIgPSAmdmZiZGV2LT52Z2ZiLmJhc2U7Cj4gIAo+IEBAIC0zNDEsOCArMzQx LDYgQEAgc3RhdGljIGludCB2aXJ0aW9fZ3B1ZmJfY3JlYXRlKHN0cnVjdCBkcm1fZmJfaGVscGVy ICpoZWxwZXIsCj4gIAlpbmZvLT5maXgubW1pb19sZW4gPSAwOwo+ICAJcmV0dXJuIDA7Cj4gIAo+ IC1lcnJfZmJfaW5pdDoKPiAtCWRybV9mYl9oZWxwZXJfcmVsZWFzZV9mYmkoaGVscGVyKTsKPiAg ZXJyX2ZiX2FsbG9jOgo+ICAJdmlydGlvX2dwdV9jbWRfcmVzb3VyY2VfaW52YWxfYmFja2luZyh2 Z2RldiwgcmVzaWQpOwo+ICBlcnJfb2JqX2F0dGFjaDoKPiBAQCAtMzU3LDcgKzM1NSw2IEBAIHN0 YXRpYyBpbnQgdmlydGlvX2dwdV9mYmRldl9kZXN0cm95KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs Cj4gIAlzdHJ1Y3QgdmlydGlvX2dwdV9mcmFtZWJ1ZmZlciAqdmdmYiA9ICZ2Z2ZiZGV2LT52Z2Zi Owo+ICAKPiAgCWRybV9mYl9oZWxwZXJfdW5yZWdpc3Rlcl9mYmkoJnZnZmJkZXYtPmhlbHBlcik7 Cj4gLQlkcm1fZmJfaGVscGVyX3JlbGVhc2VfZmJpKCZ2Z2ZiZGV2LT5oZWxwZXIpOwo+ICAKPiAg CWlmICh2Z2ZiLT5vYmopCj4gIAkJdmdmYi0+b2JqID0gTlVMTDsKPiBkaWZmIC0tZ2l0IGEvaW5j bHVkZS9kcm0vZHJtX2ZiX2hlbHBlci5oIGIvaW5jbHVkZS9kcm0vZHJtX2ZiX2hlbHBlci5oCj4g aW5kZXggZTYyZTFjZjIyNjc4Li43ZDVkMGRiYTEwZmMgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9k cm0vZHJtX2ZiX2hlbHBlci5oCj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2ZiX2hlbHBlci5oCj4g QEAgLTI1MCw3ICsyNTAsNiBAQCBpbnQgZHJtX2ZiX2hlbHBlcl9yZXN0b3JlX2ZiZGV2X21vZGVf dW5sb2NrZWQoc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlcik7Cj4gIAo+ICBzdHJ1Y3Qg ZmJfaW5mbyAqZHJtX2ZiX2hlbHBlcl9hbGxvY19mYmkoc3RydWN0IGRybV9mYl9oZWxwZXIgKmZi X2hlbHBlcik7Cj4gIHZvaWQgZHJtX2ZiX2hlbHBlcl91bnJlZ2lzdGVyX2ZiaShzdHJ1Y3QgZHJt X2ZiX2hlbHBlciAqZmJfaGVscGVyKTsKPiAtdm9pZCBkcm1fZmJfaGVscGVyX3JlbGVhc2VfZmJp KHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIpOwo+ICB2b2lkIGRybV9mYl9oZWxwZXJf ZmlsbF92YXIoc3RydWN0IGZiX2luZm8gKmluZm8sIHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9o ZWxwZXIsCj4gIAkJCSAgICB1aW50MzJfdCBmYl93aWR0aCwgdWludDMyX3QgZmJfaGVpZ2h0KTsK PiAgdm9pZCBkcm1fZmJfaGVscGVyX2ZpbGxfZml4KHN0cnVjdCBmYl9pbmZvICppbmZvLCB1aW50 MzJfdCBwaXRjaCwKPiBAQCAtMzU1LDkgKzM1NCw2IEBAIGRybV9mYl9oZWxwZXJfYWxsb2NfZmJp KHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIpCj4gIHN0YXRpYyBpbmxpbmUgdm9pZCBk cm1fZmJfaGVscGVyX3VucmVnaXN0ZXJfZmJpKHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxw ZXIpCj4gIHsKPiAgfQo+IC1zdGF0aWMgaW5saW5lIHZvaWQgZHJtX2ZiX2hlbHBlcl9yZWxlYXNl X2ZiaShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyKQo+IC17Cj4gLX0KPiAgCj4gIHN0 YXRpYyBpbmxpbmUgdm9pZCBkcm1fZmJfaGVscGVyX2ZpbGxfdmFyKHN0cnVjdCBmYl9pbmZvICpp bmZvLAo+ICAJCQkJCSAgc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciwKPiAtLSAKPiAy LjExLjAKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Xwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZngKCi0tIApTZWFuIFBhdWwsIFNvZnR3YXJlIEVuZ2luZWVyLCBHb29nbGUgLyBDaHJvbWl1 bSBPUwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK