From mboxrd@z Thu Jan 1 00:00:00 1970 From: Inki Dae Subject: Re: [PATCH] drm/exynos: cleanup name of gem object for exynos_drm Date: Tue, 13 Oct 2015 14:10:45 +0900 Message-ID: <561C9255.90701@samsung.com> References: <1443746027-879-1-git-send-email-jy0922.shim@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mailout2.samsung.com (mailout2.samsung.com [203.254.224.25]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9637C6E6C0 for ; Mon, 12 Oct 2015 22:10:55 -0700 (PDT) Received: from epcpsbgr1.samsung.com (u141.gpu120.samsung.co.kr [203.254.230.141]) by mailout2.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0NW500PJ17PYW7B0@mailout2.samsung.com> for dri-devel@lists.freedesktop.org; Tue, 13 Oct 2015 14:10:46 +0900 (KST) In-reply-to: <1443746027-879-1-git-send-email-jy0922.shim@samsung.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Joonyoung Shim , dri-devel@lists.freedesktop.org Cc: sw0312.kim@samsung.com List-Id: dri-devel@lists.freedesktop.org Ck1lcmdlZC4KClRoYW5rcywKSW5raSBEYWUKCjIwMTXrhYQgMTDsm5QgMDLsnbwgMDk6MzPsl5Ag Sm9vbnlvdW5nIFNoaW0g7J20KOqwgCkg7JO0IOq4gDoKPiBTdHJ1Y3Qgb2YgZ2VtIG9iamVjdCBp biBleHlub3NfZHJtIGRyaXZlciBpcyBzdHJ1Y3QgZXh5bm9zX2RybV9nZW1fb2JqLgo+IEl0J3Mg dG9vIGxvbmcgYW5kIHdlIGNhbiBrbm93IGl0cyBtZWFuaW5nIG9mIG5hbWUgd2l0aG91dCBfb2Jq IHBvc3RmaXguCj4KPiBXZSB1c2Ugc2V2ZXJhbCBuYW1lcyB0byB2YXJpYWJsZSBuYW1lIG9mIGdl bSBvYmplY3QgZm9yIGV4eW5vc19kcm0gLQo+IGV4eW5vc19nZW1fb2JqLCBnZW1fb2JqIGFuZCBv YmouIEVzcGVjaWFsbHkgIm9iaiIgbmFtZSBjYW4gY2F1c2UKPiBtaXN1bmRlcnN0YW5kaW5nIHdp dGggdmFyaWFibGUgbmFtZSAib2JqIiBvZiBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QuCj4KPiBUaGlz IHdpbGwgY2xlYW4gYWJvdXQgbmFtZSBvZiBnZW0gb2JqZWN0IGZvciBleHlub3NfZHJtIGFzIGZv bGxvd3MuCj4gcy9zdHJ1Y3QgZXh5bm9zX2RybV9nZW1fb2JqL3N0cnVjdCBleHlub3NfZHJtX2dl bQo+IHMvZXh5bm9zX2dlbV9vYmogb3IgZ2VtX29iaiBvciBvYmovZXh5bm9zX2dlbQo+Cj4gU2ln bmVkLW9mZi1ieTogSm9vbnlvdW5nIFNoaW0gPGp5MDkyMi5zaGltQHNhbXN1bmcuY29tPgo+IC0t LQo+ICAgZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2ZiLmMgICAgfCAgNDUgKysr LS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZmIuaCAgICB8ICAgNSAr LQo+ICAgZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2ZiZGV2LmMgfCAgNTMgKysr LS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2dlbS5jICAgfCAyMzkg KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vZXh5bm9z L2V4eW5vc19kcm1fZ2VtLmggICB8ICAxNSArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9l eHlub3NfZHJtX3BsYW5lLmMgfCAgIDkgKy0KPiAgIDYgZmlsZXMgY2hhbmdlZCwgMTg0IGluc2Vy dGlvbnMoKyksIDE4MiBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vZXh5bm9zL2V4eW5vc19kcm1fZmIuYyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9z X2RybV9mYi5jCj4gaW5kZXggMDg0MjgwOC4uZmNlYTI4YiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZmIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9l eHlub3MvZXh5bm9zX2RybV9mYi5jCj4gQEAgLTMyLDE1ICszMiwxNSBAQAo+ICAgICogZXh5bm9z IHNwZWNpZmljIGZyYW1lYnVmZmVyIHN0cnVjdHVyZS4KPiAgICAqCj4gICAgKiBAZmI6IGRybSBm cmFtZWJ1ZmZlciBvYmVqY3QuCj4gLSAqIEBleHlub3NfZ2VtX29iajogYXJyYXkgb2YgZXh5bm9z IHNwZWNpZmljIGdlbSBvYmplY3QgY29udGFpbmluZyBhIGdlbSBvYmplY3QuCj4gKyAqIEBleHlu b3NfZ2VtOiBhcnJheSBvZiBleHlub3Mgc3BlY2lmaWMgZ2VtIG9iamVjdCBjb250YWluaW5nIGEg Z2VtIG9iamVjdC4KPiAgICAqLwo+ICAgc3RydWN0IGV4eW5vc19kcm1fZmIgewo+IC0Jc3RydWN0 IGRybV9mcmFtZWJ1ZmZlcgkJZmI7Cj4gLQlzdHJ1Y3QgZXh5bm9zX2RybV9nZW1fb2JqCSpleHlu b3NfZ2VtX29ialtNQVhfRkJfQlVGRkVSXTsKPiArCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIJZmI7 Cj4gKwlzdHJ1Y3QgZXh5bm9zX2RybV9nZW0JKmV4eW5vc19nZW1bTUFYX0ZCX0JVRkZFUl07Cj4g ICB9Owo+Cj4gICBzdGF0aWMgaW50IGNoZWNrX2ZiX2dlbV9tZW1vcnlfdHlwZShzdHJ1Y3QgZHJt X2RldmljZSAqZHJtX2RldiwKPiAtCQkJCXN0cnVjdCBleHlub3NfZHJtX2dlbV9vYmogKmV4eW5v c19nZW1fb2JqKQo+ICsJCQkJICAgIHN0cnVjdCBleHlub3NfZHJtX2dlbSAqZXh5bm9zX2dlbSkK PiAgIHsKPiAgIAl1bnNpZ25lZCBpbnQgZmxhZ3M7Cj4KPiBAQCAtNTEsNyArNTEsNyBAQCBzdGF0 aWMgaW50IGNoZWNrX2ZiX2dlbV9tZW1vcnlfdHlwZShzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2Rl diwKPiAgIAlpZiAoaXNfZHJtX2lvbW11X3N1cHBvcnRlZChkcm1fZGV2KSkKPiAgIAkJcmV0dXJu IDA7Cj4KPiAtCWZsYWdzID0gZXh5bm9zX2dlbV9vYmotPmZsYWdzOwo+ICsJZmxhZ3MgPSBleHlu b3NfZ2VtLT5mbGFnczsKPgo+ICAgCS8qCj4gICAJICogd2l0aG91dCBpb21tdSBzdXBwb3J0LCBu b3Qgc3VwcG9ydCBwaHlzaWNhbGx5IG5vbi1jb250aW51b3VzIG1lbW9yeQo+IEBAIC03NSwxMyAr NzUsMTMgQEAgc3RhdGljIHZvaWQgZXh5bm9zX2RybV9mYl9kZXN0cm95KHN0cnVjdCBkcm1fZnJh bWVidWZmZXIgKmZiKQo+Cj4gICAJZHJtX2ZyYW1lYnVmZmVyX2NsZWFudXAoZmIpOwo+Cj4gLQlm b3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShleHlub3NfZmItPmV4eW5vc19nZW1fb2JqKTsgaSsr KSB7Cj4gKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShleHlub3NfZmItPmV4eW5vc19nZW0p OyBpKyspIHsKPiAgIAkJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmo7Cj4KPiAtCQlpZiAoZXh5 bm9zX2ZiLT5leHlub3NfZ2VtX29ialtpXSA9PSBOVUxMKQo+ICsJCWlmIChleHlub3NfZmItPmV4 eW5vc19nZW1baV0gPT0gTlVMTCkKPiAgIAkJCWNvbnRpbnVlOwo+Cj4gLQkJb2JqID0gJmV4eW5v c19mYi0+ZXh5bm9zX2dlbV9vYmpbaV0tPmJhc2U7Cj4gKwkJb2JqID0gJmV4eW5vc19mYi0+ZXh5 bm9zX2dlbVtpXS0+YmFzZTsKPiAgIAkJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2VfdW5sb2Nr ZWQob2JqKTsKPiAgIAl9Cj4KPiBAQCAtOTYsNyArOTYsNyBAQCBzdGF0aWMgaW50IGV4eW5vc19k cm1fZmJfY3JlYXRlX2hhbmRsZShzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiAgIAlzdHJ1 Y3QgZXh5bm9zX2RybV9mYiAqZXh5bm9zX2ZiID0gdG9fZXh5bm9zX2ZiKGZiKTsKPgo+ICAgCXJl dHVybiBkcm1fZ2VtX2hhbmRsZV9jcmVhdGUoZmlsZV9wcml2LAo+IC0JCQkmZXh5bm9zX2ZiLT5l eHlub3NfZ2VtX29ialswXS0+YmFzZSwgaGFuZGxlKTsKPiArCQkJCSAgICAgJmV4eW5vc19mYi0+ ZXh5bm9zX2dlbVswXS0+YmFzZSwgaGFuZGxlKTsKPiAgIH0KPgo+ICAgc3RhdGljIGludCBleHlu b3NfZHJtX2ZiX2RpcnR5KHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAo+IEBAIC0xMTgsNyAr MTE4LDcgQEAgc3RhdGljIHN0cnVjdCBkcm1fZnJhbWVidWZmZXJfZnVuY3MgZXh5bm9zX2RybV9m Yl9mdW5jcyA9IHsKPiAgIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKgo+ICAgZXh5bm9zX2RybV9m cmFtZWJ1ZmZlcl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gICAJCQkgICAgc3RydWN0 IGRybV9tb2RlX2ZiX2NtZDIgKm1vZGVfY21kLAo+IC0JCQkgICAgc3RydWN0IGV4eW5vc19kcm1f Z2VtX29iaiAqKmdlbV9vYmosCj4gKwkJCSAgICBzdHJ1Y3QgZXh5bm9zX2RybV9nZW0gKipleHlu b3NfZ2VtLAo+ICAgCQkJICAgIGludCBjb3VudCkKPiAgIHsKPiAgIAlzdHJ1Y3QgZXh5bm9zX2Ry bV9mYiAqZXh5bm9zX2ZiOwo+IEBAIC0xMzAsMTEgKzEzMCwxMSBAQCBleHlub3NfZHJtX2ZyYW1l YnVmZmVyX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgIAkJcmV0dXJuIEVSUl9QVFIo LUVOT01FTSk7Cj4KPiAgIAlmb3IgKGkgPSAwOyBpIDwgY291bnQ7IGkrKykgewo+IC0JCXJldCA9 IGNoZWNrX2ZiX2dlbV9tZW1vcnlfdHlwZShkZXYsIGdlbV9vYmpbaV0pOwo+ICsJCXJldCA9IGNo ZWNrX2ZiX2dlbV9tZW1vcnlfdHlwZShkZXYsIGV4eW5vc19nZW1baV0pOwo+ICAgCQlpZiAocmV0 IDwgMCkKPiAgIAkJCWdvdG8gZXJyOwo+Cj4gLQkJZXh5bm9zX2ZiLT5leHlub3NfZ2VtX29ialtp XSA9IGdlbV9vYmpbaV07Cj4gKwkJZXh5bm9zX2ZiLT5leHlub3NfZ2VtW2ldID0gZXh5bm9zX2dl bVtpXTsKPiAgIAl9Cj4KPiAgIAlkcm1faGVscGVyX21vZGVfZmlsbF9mYl9zdHJ1Y3QoJmV4eW5v c19mYi0+ZmIsIG1vZGVfY21kKTsKPiBAQCAtMTU2LDcgKzE1Niw3IEBAIHN0YXRpYyBzdHJ1Y3Qg ZHJtX2ZyYW1lYnVmZmVyICoKPiAgIGV4eW5vc191c2VyX2ZiX2NyZWF0ZShzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKPiAgIAkJICAgICAgc3RydWN0 IGRybV9tb2RlX2ZiX2NtZDIgKm1vZGVfY21kKQo+ICAgewo+IC0Jc3RydWN0IGV4eW5vc19kcm1f Z2VtX29iaiAqZ2VtX29ianNbTUFYX0ZCX0JVRkZFUl07Cj4gKwlzdHJ1Y3QgZXh5bm9zX2RybV9n ZW0gKmV4eW5vc19nZW1bTUFYX0ZCX0JVRkZFUl07Cj4gICAJc3RydWN0IGRybV9nZW1fb2JqZWN0 ICpvYmo7Cj4gICAJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmI7Cj4gICAJaW50IGk7Cj4gQEAg LTE3MSwxMCArMTcxLDEwIEBAIGV4eW5vc191c2VyX2ZiX2NyZWF0ZShzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKPiAgIAkJCWdvdG8gZXJyOwo+ICAg CQl9Cj4KPiAtCQlnZW1fb2Jqc1tpXSA9IHRvX2V4eW5vc19nZW1fb2JqKG9iaik7Cj4gKwkJZXh5 bm9zX2dlbVtpXSA9IHRvX2V4eW5vc19nZW0ob2JqKTsKPiAgIAl9Cj4KPiAtCWZiID0gZXh5bm9z X2RybV9mcmFtZWJ1ZmZlcl9pbml0KGRldiwgbW9kZV9jbWQsIGdlbV9vYmpzLCBpKTsKPiArCWZi ID0gZXh5bm9zX2RybV9mcmFtZWJ1ZmZlcl9pbml0KGRldiwgbW9kZV9jbWQsIGV4eW5vc19nZW0s IGkpOwo+ICAgCWlmIChJU19FUlIoZmIpKSB7Cj4gICAJCXJldCA9IFBUUl9FUlIoZmIpOwo+ICAg CQlnb3RvIGVycjsKPiBAQCAtMTg0LDI3ICsxODQsMjYgQEAgZXh5bm9zX3VzZXJfZmJfY3JlYXRl KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAo+Cj4g ICBlcnI6Cj4gICAJd2hpbGUgKGktLSkKPiAtCQlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZV91 bmxvY2tlZCgmZ2VtX29ianNbaV0tPmJhc2UpOwo+ICsJCWRybV9nZW1fb2JqZWN0X3VucmVmZXJl bmNlX3VubG9ja2VkKCZleHlub3NfZ2VtW2ldLT5iYXNlKTsKPgo+ICAgCXJldHVybiBFUlJfUFRS KHJldCk7Cj4gICB9Cj4KPiAtc3RydWN0IGV4eW5vc19kcm1fZ2VtX29iaiAqZXh5bm9zX2RybV9m Yl9nZW1fb2JqKHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAo+IC0JCQkJCQkgaW50IGluZGV4 KQo+ICtzdHJ1Y3QgZXh5bm9zX2RybV9nZW0gKmV4eW5vc19kcm1fZmJfZ2VtKHN0cnVjdCBkcm1f ZnJhbWVidWZmZXIgKmZiLCBpbnQgaW5kZXgpCj4gICB7Cj4gICAJc3RydWN0IGV4eW5vc19kcm1f ZmIgKmV4eW5vc19mYiA9IHRvX2V4eW5vc19mYihmYik7Cj4gLQlzdHJ1Y3QgZXh5bm9zX2RybV9n ZW1fb2JqICpvYmo7Cj4gKwlzdHJ1Y3QgZXh5bm9zX2RybV9nZW0gKmV4eW5vc19nZW07Cj4KPiAg IAlpZiAoaW5kZXggPj0gTUFYX0ZCX0JVRkZFUikKPiAgIAkJcmV0dXJuIE5VTEw7Cj4KPiAtCW9i aiA9IGV4eW5vc19mYi0+ZXh5bm9zX2dlbV9vYmpbaW5kZXhdOwo+IC0JaWYgKCFvYmopCj4gKwll eHlub3NfZ2VtID0gZXh5bm9zX2ZiLT5leHlub3NfZ2VtW2luZGV4XTsKPiArCWlmICghZXh5bm9z X2dlbSkKPiAgIAkJcmV0dXJuIE5VTEw7Cj4KPiAtCURSTV9ERUJVR19LTVMoImRtYV9hZGRyID0g MHglbHhcbiIsICh1bnNpZ25lZCBsb25nKW9iai0+ZG1hX2FkZHIpOwo+ICsJRFJNX0RFQlVHX0tN UygiZG1hX2FkZHI6IDB4JWx4XG4iLCAodW5zaWduZWQgbG9uZylleHlub3NfZ2VtLT5kbWFfYWRk cik7Cj4KPiAtCXJldHVybiBvYmo7Cj4gKwlyZXR1cm4gZXh5bm9zX2dlbTsKPiAgIH0KPgo+ICAg c3RhdGljIHZvaWQgZXh5bm9zX2RybV9vdXRwdXRfcG9sbF9jaGFuZ2VkKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2Ry bV9mYi5oIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2ZiLmgKPiBpbmRleCA4 NWU0NDQ1Li43MjZhMmQ0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5 bm9zX2RybV9mYi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2Zi LmgKPiBAQCAtMTksMTIgKzE5LDExIEBACj4gICBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICoKPiAg IGV4eW5vc19kcm1fZnJhbWVidWZmZXJfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAg CQkJICAgIHN0cnVjdCBkcm1fbW9kZV9mYl9jbWQyICptb2RlX2NtZCwKPiAtCQkJICAgIHN0cnVj dCBleHlub3NfZHJtX2dlbV9vYmogKipnZW1fb2JqLAo+ICsJCQkgICAgc3RydWN0IGV4eW5vc19k cm1fZ2VtICoqZXh5bm9zX2dlbSwKPiAgIAkJCSAgICBpbnQgY291bnQpOwo+Cj4gICAvKiBnZXQg Z2VtIG9iamVjdCBvZiBhIGRybSBmcmFtZWJ1ZmZlciAqLwo+IC1zdHJ1Y3QgZXh5bm9zX2RybV9n ZW1fb2JqICpleHlub3NfZHJtX2ZiX2dlbV9vYmooc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIs Cj4gLQkJCQkJCSBpbnQgaW5kZXgpOwo+ICtzdHJ1Y3QgZXh5bm9zX2RybV9nZW0gKmV4eW5vc19k cm1fZmJfZ2VtKHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLCBpbnQgaW5kZXgpOwo+Cj4gICB2 b2lkIGV4eW5vc19kcm1fbW9kZV9jb25maWdfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsK Pgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZmJkZXYu YyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9mYmRldi5jCj4gaW5kZXggYTIy MWY3NS4uZjYxMThiYSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5v c19kcm1fZmJkZXYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9m YmRldi5jCj4gQEAgLTMwLDggKzMwLDggQEAKPiAgIAkJCQlkcm1fZmJfaGVscGVyKQo+Cj4gICBz dHJ1Y3QgZXh5bm9zX2RybV9mYmRldiB7Cj4gLQlzdHJ1Y3QgZHJtX2ZiX2hlbHBlcgkJZHJtX2Zi X2hlbHBlcjsKPiAtCXN0cnVjdCBleHlub3NfZHJtX2dlbV9vYmoJKm9iajsKPiArCXN0cnVjdCBk cm1fZmJfaGVscGVyCWRybV9mYl9oZWxwZXI7Cj4gKwlzdHJ1Y3QgZXh5bm9zX2RybV9nZW0JKmV4 eW5vc19nZW07Cj4gICB9Owo+Cj4gICBzdGF0aWMgaW50IGV4eW5vc19kcm1fZmJfbW1hcChzdHJ1 Y3QgZmJfaW5mbyAqaW5mbywKPiBAQCAtMzksNyArMzksNyBAQCBzdGF0aWMgaW50IGV4eW5vc19k cm1fZmJfbW1hcChzdHJ1Y3QgZmJfaW5mbyAqaW5mbywKPiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2Zi X2hlbHBlciAqaGVscGVyID0gaW5mby0+cGFyOwo+ICAgCXN0cnVjdCBleHlub3NfZHJtX2ZiZGV2 ICpleHlub3NfZmJkID0gdG9fZXh5bm9zX2ZiZGV2KGhlbHBlcik7Cj4gLQlzdHJ1Y3QgZXh5bm9z X2RybV9nZW1fb2JqICpvYmogPSBleHlub3NfZmJkLT5vYmo7Cj4gKwlzdHJ1Y3QgZXh5bm9zX2Ry bV9nZW0gKmV4eW5vc19nZW0gPSBleHlub3NfZmJkLT5leHlub3NfZ2VtOwo+ICAgCXVuc2lnbmVk IGxvbmcgdm1fc2l6ZTsKPiAgIAlpbnQgcmV0Owo+Cj4gQEAgLTQ3LDExICs0NywxMiBAQCBzdGF0 aWMgaW50IGV4eW5vc19kcm1fZmJfbW1hcChzdHJ1Y3QgZmJfaW5mbyAqaW5mbywKPgo+ICAgCXZt X3NpemUgPSB2bWEtPnZtX2VuZCAtIHZtYS0+dm1fc3RhcnQ7Cj4KPiAtCWlmICh2bV9zaXplID4g b2JqLT5zaXplKQo+ICsJaWYgKHZtX3NpemUgPiBleHlub3NfZ2VtLT5zaXplKQo+ICAgCQlyZXR1 cm4gLUVJTlZBTDsKPgo+IC0JcmV0ID0gZG1hX21tYXBfYXR0cnMoaGVscGVyLT5kZXYtPmRldiwg dm1hLCBvYmotPnBhZ2VzLCBvYmotPmRtYV9hZGRyLAo+IC0JCQkgICAgIG9iai0+c2l6ZSwgJm9i ai0+ZG1hX2F0dHJzKTsKPiArCXJldCA9IGRtYV9tbWFwX2F0dHJzKGhlbHBlci0+ZGV2LT5kZXYs IHZtYSwgZXh5bm9zX2dlbS0+cGFnZXMsCj4gKwkJCSAgICAgZXh5bm9zX2dlbS0+ZG1hX2FkZHIs IGV4eW5vc19nZW0tPnNpemUsCj4gKwkJCSAgICAgJmV4eW5vc19nZW0tPmRtYV9hdHRycyk7Cj4g ICAJaWYgKHJldCA8IDApIHsKPiAgIAkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gbW1hcC5cbiIpOwo+ ICAgCQlyZXR1cm4gcmV0Owo+IEBAIC03NSw3ICs3Niw3IEBAIHN0YXRpYyBzdHJ1Y3QgZmJfb3Bz IGV4eW5vc19kcm1fZmJfb3BzID0gewo+Cj4gICBzdGF0aWMgaW50IGV4eW5vc19kcm1fZmJkZXZf dXBkYXRlKHN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIsCj4gICAJCQkJICAgc3RydWN0IGRy bV9mYl9oZWxwZXJfc3VyZmFjZV9zaXplICpzaXplcywKPiAtCQkJCSAgIHN0cnVjdCBleHlub3Nf ZHJtX2dlbV9vYmogKm9iaikKPiArCQkJCSAgIHN0cnVjdCBleHlub3NfZHJtX2dlbSAqZXh5bm9z X2dlbSkKPiAgIHsKPiAgIAlzdHJ1Y3QgZmJfaW5mbyAqZmJpOwo+ICAgCXN0cnVjdCBkcm1fZnJh bWVidWZmZXIgKmZiID0gaGVscGVyLT5mYjsKPiBAQCAtOTYsMTEgKzk3LDExIEBAIHN0YXRpYyBp bnQgZXh5bm9zX2RybV9mYmRldl91cGRhdGUoc3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlciwK PiAgIAlkcm1fZmJfaGVscGVyX2ZpbGxfZml4KGZiaSwgZmItPnBpdGNoZXNbMF0sIGZiLT5kZXB0 aCk7Cj4gICAJZHJtX2ZiX2hlbHBlcl9maWxsX3ZhcihmYmksIGhlbHBlciwgc2l6ZXMtPmZiX3dp ZHRoLCBzaXplcy0+ZmJfaGVpZ2h0KTsKPgo+IC0JbnJfcGFnZXMgPSBvYmotPnNpemUgPj4gUEFH RV9TSElGVDsKPiArCW5yX3BhZ2VzID0gZXh5bm9zX2dlbS0+c2l6ZSA+PiBQQUdFX1NISUZUOwo+ Cj4gLQlvYmotPmt2YWRkciA9ICh2b2lkIF9faW9tZW0gKikgdm1hcChvYmotPnBhZ2VzLCBucl9w YWdlcywgVk1fTUFQLAo+IC0JCQlwZ3Byb3Rfd3JpdGVjb21iaW5lKFBBR0VfS0VSTkVMKSk7Cj4g LQlpZiAoIW9iai0+a3ZhZGRyKSB7Cj4gKwlleHlub3NfZ2VtLT5rdmFkZHIgPSAodm9pZCBfX2lv bWVtICopIHZtYXAoZXh5bm9zX2dlbS0+cGFnZXMsIG5yX3BhZ2VzLAo+ICsJCQkJVk1fTUFQLCBw Z3Byb3Rfd3JpdGVjb21iaW5lKFBBR0VfS0VSTkVMKSk7Cj4gKwlpZiAoIWV4eW5vc19nZW0tPmt2 YWRkcikgewo+ICAgCQlEUk1fRVJST1IoImZhaWxlZCB0byBtYXAgcGFnZXMgdG8ga2VybmVsIHNw YWNlLlxuIik7Cj4gICAJCWRybV9mYl9oZWxwZXJfcmVsZWFzZV9mYmkoaGVscGVyKTsKPiAgIAkJ cmV0dXJuIC1FSU87Cj4gQEAgLTEwOSw3ICsxMTAsNyBAQCBzdGF0aWMgaW50IGV4eW5vc19kcm1f ZmJkZXZfdXBkYXRlKHN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIsCj4gICAJb2Zmc2V0ID0g ZmJpLT52YXIueG9mZnNldCAqIChmYi0+Yml0c19wZXJfcGl4ZWwgPj4gMyk7Cj4gICAJb2Zmc2V0 ICs9IGZiaS0+dmFyLnlvZmZzZXQgKiBmYi0+cGl0Y2hlc1swXTsKPgo+IC0JZmJpLT5zY3JlZW5f YmFzZSA9IG9iai0+a3ZhZGRyICsgb2Zmc2V0Owo+ICsJZmJpLT5zY3JlZW5fYmFzZSA9IGV4eW5v c19nZW0tPmt2YWRkciArIG9mZnNldDsKPiAgIAlmYmktPnNjcmVlbl9zaXplID0gc2l6ZTsKPiAg IAlmYmktPmZpeC5zbWVtX2xlbiA9IHNpemU7Cj4KPiBAQCAtMTIwLDcgKzEyMSw3IEBAIHN0YXRp YyBpbnQgZXh5bm9zX2RybV9mYmRldl9jcmVhdGUoc3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBl ciwKPiAgIAkJCQkgICAgc3RydWN0IGRybV9mYl9oZWxwZXJfc3VyZmFjZV9zaXplICpzaXplcykK PiAgIHsKPiAgIAlzdHJ1Y3QgZXh5bm9zX2RybV9mYmRldiAqZXh5bm9zX2ZiZGV2ID0gdG9fZXh5 bm9zX2ZiZGV2KGhlbHBlcik7Cj4gLQlzdHJ1Y3QgZXh5bm9zX2RybV9nZW1fb2JqICpvYmo7Cj4g KwlzdHJ1Y3QgZXh5bm9zX2RybV9nZW0gKmV4eW5vc19nZW07Cj4gICAJc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IGhlbHBlci0+ZGV2Owo+ICAgCXN0cnVjdCBkcm1fbW9kZV9mYl9jbWQyIG1vZGVf Y21kID0geyAwIH07Cj4gICAJc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiA9IGRldi0+cGxh dGZvcm1kZXY7Cj4gQEAgLTE0MSwzMiArMTQyLDM0IEBAIHN0YXRpYyBpbnQgZXh5bm9zX2RybV9m YmRldl9jcmVhdGUoc3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlciwKPgo+ICAgCXNpemUgPSBt b2RlX2NtZC5waXRjaGVzWzBdICogbW9kZV9jbWQuaGVpZ2h0Owo+Cj4gLQlvYmogPSBleHlub3Nf ZHJtX2dlbV9jcmVhdGUoZGV2LCBFWFlOT1NfQk9fQ09OVElHLCBzaXplKTsKPiArCWV4eW5vc19n ZW0gPSBleHlub3NfZHJtX2dlbV9jcmVhdGUoZGV2LCBFWFlOT1NfQk9fQ09OVElHLCBzaXplKTsK PiAgIAkvKgo+ICAgCSAqIElmIHBoeXNpY2FsbHkgY29udGlndW91cyBtZW1vcnkgYWxsb2NhdGlv biBmYWlscyBhbmQgaWYgSU9NTVUgaXMKPiAgIAkgKiBzdXBwb3J0ZWQgdGhlbiB0cnkgdG8gZ2V0 IGJ1ZmZlciBmcm9tIG5vbiBwaHlzaWNhbGx5IGNvbnRpZ3VvdXMKPiAgIAkgKiBtZW1vcnkgYXJl YS4KPiAgIAkgKi8KPiAtCWlmIChJU19FUlIob2JqKSAmJiBpc19kcm1faW9tbXVfc3VwcG9ydGVk KGRldikpIHsKPiArCWlmIChJU19FUlIoZXh5bm9zX2dlbSkgJiYgaXNfZHJtX2lvbW11X3N1cHBv cnRlZChkZXYpKSB7Cj4gICAJCWRldl93YXJuKCZwZGV2LT5kZXYsICJjb250aWd1b3VzIEZCIGFs bG9jYXRpb24gZmFpbGVkLCBmYWxsaW5nIGJhY2sgdG8gbm9uLWNvbnRpZ3VvdXNcbiIpOwo+IC0J CW9iaiA9IGV4eW5vc19kcm1fZ2VtX2NyZWF0ZShkZXYsIEVYWU5PU19CT19OT05DT05USUcsIHNp emUpOwo+ICsJCWV4eW5vc19nZW0gPSBleHlub3NfZHJtX2dlbV9jcmVhdGUoZGV2LCBFWFlOT1Nf Qk9fTk9OQ09OVElHLAo+ICsJCQkJCQkgICBzaXplKTsKPiAgIAl9Cj4KPiAtCWlmIChJU19FUlIo b2JqKSkgewo+IC0JCXJldCA9IFBUUl9FUlIob2JqKTsKPiArCWlmIChJU19FUlIoZXh5bm9zX2dl bSkpIHsKPiArCQlyZXQgPSBQVFJfRVJSKGV4eW5vc19nZW0pOwo+ICAgCQlnb3RvIG91dDsKPiAg IAl9Cj4KPiAtCWV4eW5vc19mYmRldi0+b2JqID0gb2JqOwo+ICsJZXh5bm9zX2ZiZGV2LT5leHlu b3NfZ2VtID0gZXh5bm9zX2dlbTsKPgo+IC0JaGVscGVyLT5mYiA9IGV4eW5vc19kcm1fZnJhbWVi dWZmZXJfaW5pdChkZXYsICZtb2RlX2NtZCwgJm9iaiwgMSk7Cj4gKwloZWxwZXItPmZiID0KPiAr CQlleHlub3NfZHJtX2ZyYW1lYnVmZmVyX2luaXQoZGV2LCAmbW9kZV9jbWQsICZleHlub3NfZ2Vt LCAxKTsKPiAgIAlpZiAoSVNfRVJSKGhlbHBlci0+ZmIpKSB7Cj4gICAJCURSTV9FUlJPUigiZmFp bGVkIHRvIGNyZWF0ZSBkcm0gZnJhbWVidWZmZXIuXG4iKTsKPiAgIAkJcmV0ID0gUFRSX0VSUiho ZWxwZXItPmZiKTsKPiAgIAkJZ290byBlcnJfZGVzdHJveV9nZW07Cj4gICAJfQo+Cj4gLQlyZXQg PSBleHlub3NfZHJtX2ZiZGV2X3VwZGF0ZShoZWxwZXIsIHNpemVzLCBvYmopOwo+ICsJcmV0ID0g ZXh5bm9zX2RybV9mYmRldl91cGRhdGUoaGVscGVyLCBzaXplcywgZXh5bm9zX2dlbSk7Cj4gICAJ aWYgKHJldCA8IDApCj4gICAJCWdvdG8gZXJyX2Rlc3Ryb3lfZnJhbWVidWZmZXI7Cj4KPiBAQCAt MTc2LDcgKzE3OSw3IEBAIHN0YXRpYyBpbnQgZXh5bm9zX2RybV9mYmRldl9jcmVhdGUoc3RydWN0 IGRybV9mYl9oZWxwZXIgKmhlbHBlciwKPiAgIGVycl9kZXN0cm95X2ZyYW1lYnVmZmVyOgo+ICAg CWRybV9mcmFtZWJ1ZmZlcl9jbGVhbnVwKGhlbHBlci0+ZmIpOwo+ICAgZXJyX2Rlc3Ryb3lfZ2Vt Ogo+IC0JZXh5bm9zX2RybV9nZW1fZGVzdHJveShvYmopOwo+ICsJZXh5bm9zX2RybV9nZW1fZGVz dHJveShleHlub3NfZ2VtKTsKPgo+ICAgLyoKPiAgICAqIGlmIGZhaWxlZCwgYWxsIHJlc291cmNl cyBhbGxvY2F0ZWQgYWJvdmUgd291bGQgYmUgcmVsZWFzZWQgYnkKPiBAQCAtMjY5LDExICsyNzIs MTEgQEAgc3RhdGljIHZvaWQgZXh5bm9zX2RybV9mYmRldl9kZXN0cm95KHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCj4gICAJCQkJICAgICAgc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlcikK PiAgIHsKPiAgIAlzdHJ1Y3QgZXh5bm9zX2RybV9mYmRldiAqZXh5bm9zX2ZiZCA9IHRvX2V4eW5v c19mYmRldihmYl9oZWxwZXIpOwo+IC0Jc3RydWN0IGV4eW5vc19kcm1fZ2VtX29iaiAqb2JqID0g ZXh5bm9zX2ZiZC0+b2JqOwo+ICsJc3RydWN0IGV4eW5vc19kcm1fZ2VtICpleHlub3NfZ2VtID0g ZXh5bm9zX2ZiZC0+ZXh5bm9zX2dlbTsKPiAgIAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYjsK Pgo+IC0JaWYgKG9iai0+a3ZhZGRyKQo+IC0JCXZ1bm1hcChvYmotPmt2YWRkcik7Cj4gKwlpZiAo ZXh5bm9zX2dlbS0+a3ZhZGRyKQo+ICsJCXZ1bm1hcChleHlub3NfZ2VtLT5rdmFkZHIpOwo+Cj4g ICAJLyogcmVsZWFzZSBkcm0gZnJhbWVidWZmZXIgYW5kIHJlYWwgYnVmZmVyICovCj4gICAJaWYg KGZiX2hlbHBlci0+ZmIgJiYgZmJfaGVscGVyLT5mYi0+ZnVuY3MpIHsKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2dlbS5jIGIvZHJpdmVycy9ncHUvZHJt L2V4eW5vcy9leHlub3NfZHJtX2dlbS5jCj4gaW5kZXggNDA3YWZlZC4uZjFkY2RkMCAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZ2VtLmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZ2VtLmMKPiBAQCAtMjAsOTcgKzIwLDEw MCBAQAo+ICAgI2luY2x1ZGUgImV4eW5vc19kcm1fZ2VtLmgiCj4gICAjaW5jbHVkZSAiZXh5bm9z X2RybV9pb21tdS5oIgo+Cj4gLXN0YXRpYyBpbnQgZXh5bm9zX2RybV9hbGxvY19idWYoc3RydWN0 IGV4eW5vc19kcm1fZ2VtX29iaiAqb2JqKQo+ICtzdGF0aWMgaW50IGV4eW5vc19kcm1fYWxsb2Nf YnVmKHN0cnVjdCBleHlub3NfZHJtX2dlbSAqZXh5bm9zX2dlbSkKPiAgIHsKPiAtCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBvYmotPmJhc2UuZGV2Owo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRl diA9IGV4eW5vc19nZW0tPmJhc2UuZGV2Owo+ICAgCWVudW0gZG1hX2F0dHIgYXR0cjsKPiAgIAl1 bnNpZ25lZCBpbnQgbnJfcGFnZXM7Cj4KPiAtCWlmIChvYmotPmRtYV9hZGRyKSB7Cj4gKwlpZiAo ZXh5bm9zX2dlbS0+ZG1hX2FkZHIpIHsKPiAgIAkJRFJNX0RFQlVHX0tNUygiYWxyZWFkeSBhbGxv Y2F0ZWQuXG4iKTsKPiAgIAkJcmV0dXJuIDA7Cj4gICAJfQo+Cj4gLQlpbml0X2RtYV9hdHRycygm b2JqLT5kbWFfYXR0cnMpOwo+ICsJaW5pdF9kbWFfYXR0cnMoJmV4eW5vc19nZW0tPmRtYV9hdHRy cyk7Cj4KPiAgIAkvKgo+ICAgCSAqIGlmIEVYWU5PU19CT19DT05USUcsIGZ1bGx5IHBoeXNpY2Fs bHkgY29udGlndW91cyBtZW1vcnkKPiAgIAkgKiByZWdpb24gd2lsbCBiZSBhbGxvY2F0ZWQgZWxz ZSBwaHlzaWNhbGx5IGNvbnRpZ3VvdXMKPiAgIAkgKiBhcyBwb3NzaWJsZS4KPiAgIAkgKi8KPiAt CWlmICghKG9iai0+ZmxhZ3MgJiBFWFlOT1NfQk9fTk9OQ09OVElHKSkKPiAtCQlkbWFfc2V0X2F0 dHIoRE1BX0FUVFJfRk9SQ0VfQ09OVElHVU9VUywgJm9iai0+ZG1hX2F0dHJzKTsKPiArCWlmICgh KGV4eW5vc19nZW0tPmZsYWdzICYgRVhZTk9TX0JPX05PTkNPTlRJRykpCj4gKwkJZG1hX3NldF9h dHRyKERNQV9BVFRSX0ZPUkNFX0NPTlRJR1VPVVMsICZleHlub3NfZ2VtLT5kbWFfYXR0cnMpOwo+ Cj4gICAJLyoKPiAgIAkgKiBpZiBFWFlOT1NfQk9fV0Mgb3IgRVhZTk9TX0JPX05PTkNBQ0hBQkxF LCB3cml0ZWNvbWJpbmUgbWFwcGluZwo+ICAgCSAqIGVsc2UgY2FjaGFibGUgbWFwcGluZy4KPiAg IAkgKi8KPiAtCWlmIChvYmotPmZsYWdzICYgRVhZTk9TX0JPX1dDIHx8ICEob2JqLT5mbGFncyAm IEVYWU5PU19CT19DQUNIQUJMRSkpCj4gKwlpZiAoZXh5bm9zX2dlbS0+ZmxhZ3MgJiBFWFlOT1Nf Qk9fV0MgfHwKPiArCQkJIShleHlub3NfZ2VtLT5mbGFncyAmIEVYWU5PU19CT19DQUNIQUJMRSkp Cj4gICAJCWF0dHIgPSBETUFfQVRUUl9XUklURV9DT01CSU5FOwo+ICAgCWVsc2UKPiAgIAkJYXR0 ciA9IERNQV9BVFRSX05PTl9DT05TSVNURU5UOwo+Cj4gLQlkbWFfc2V0X2F0dHIoYXR0ciwgJm9i ai0+ZG1hX2F0dHJzKTsKPiAtCWRtYV9zZXRfYXR0cihETUFfQVRUUl9OT19LRVJORUxfTUFQUElO RywgJm9iai0+ZG1hX2F0dHJzKTsKPiArCWRtYV9zZXRfYXR0cihhdHRyLCAmZXh5bm9zX2dlbS0+ ZG1hX2F0dHJzKTsKPiArCWRtYV9zZXRfYXR0cihETUFfQVRUUl9OT19LRVJORUxfTUFQUElORywg JmV4eW5vc19nZW0tPmRtYV9hdHRycyk7Cj4KPiAtCW5yX3BhZ2VzID0gb2JqLT5zaXplID4+IFBB R0VfU0hJRlQ7Cj4gKwlucl9wYWdlcyA9IGV4eW5vc19nZW0tPnNpemUgPj4gUEFHRV9TSElGVDsK Pgo+ICAgCWlmICghaXNfZHJtX2lvbW11X3N1cHBvcnRlZChkZXYpKSB7Cj4gLQkJb2JqLT5wYWdl cyA9IGRybV9jYWxsb2NfbGFyZ2UobnJfcGFnZXMsIHNpemVvZihzdHJ1Y3QgcGFnZSAqKSk7Cj4g LQkJaWYgKCFvYmotPnBhZ2VzKSB7Cj4gKwkJZXh5bm9zX2dlbS0+cGFnZXMgPSBkcm1fY2FsbG9j X2xhcmdlKG5yX3BhZ2VzLAo+ICsJCQkJCQkgICAgIHNpemVvZihzdHJ1Y3QgcGFnZSAqKSk7Cj4g KwkJaWYgKCFleHlub3NfZ2VtLT5wYWdlcykgewo+ICAgCQkJRFJNX0VSUk9SKCJmYWlsZWQgdG8g YWxsb2NhdGUgcGFnZXMuXG4iKTsKPiAgIAkJCXJldHVybiAtRU5PTUVNOwo+ICAgCQl9Cj4gICAJ fQo+Cj4gLQlvYmotPmNvb2tpZSA9IGRtYV9hbGxvY19hdHRycyhkZXYtPmRldiwgb2JqLT5zaXpl LCAmb2JqLT5kbWFfYWRkciwKPiAtCQkJCSAgICAgIEdGUF9LRVJORUwsICZvYmotPmRtYV9hdHRy cyk7Cj4gLQlpZiAoIW9iai0+Y29va2llKSB7Cj4gKwlleHlub3NfZ2VtLT5jb29raWUgPSBkbWFf YWxsb2NfYXR0cnMoZGV2LT5kZXYsIGV4eW5vc19nZW0tPnNpemUsCj4gKwkJCQkJICAgICAmZXh5 bm9zX2dlbS0+ZG1hX2FkZHIsIEdGUF9LRVJORUwsCj4gKwkJCQkJICAgICAmZXh5bm9zX2dlbS0+ ZG1hX2F0dHJzKTsKPiArCWlmICghZXh5bm9zX2dlbS0+Y29va2llKSB7Cj4gICAJCURSTV9FUlJP UigiZmFpbGVkIHRvIGFsbG9jYXRlIGJ1ZmZlci5cbiIpOwo+IC0JCWlmIChvYmotPnBhZ2VzKQo+ IC0JCQlkcm1fZnJlZV9sYXJnZShvYmotPnBhZ2VzKTsKPiArCQlpZiAoZXh5bm9zX2dlbS0+cGFn ZXMpCj4gKwkJCWRybV9mcmVlX2xhcmdlKGV4eW5vc19nZW0tPnBhZ2VzKTsKPiAgIAkJcmV0dXJu IC1FTk9NRU07Cj4gICAJfQo+Cj4gLQlpZiAob2JqLT5wYWdlcykgewo+ICsJaWYgKGV4eW5vc19n ZW0tPnBhZ2VzKSB7Cj4gICAJCWRtYV9hZGRyX3Qgc3RhcnRfYWRkcjsKPiAgIAkJdW5zaWduZWQg aW50IGkgPSAwOwo+Cj4gLQkJc3RhcnRfYWRkciA9IG9iai0+ZG1hX2FkZHI7Cj4gKwkJc3RhcnRf YWRkciA9IGV4eW5vc19nZW0tPmRtYV9hZGRyOwo+ICAgCQl3aGlsZSAoaSA8IG5yX3BhZ2VzKSB7 Cj4gLQkJCW9iai0+cGFnZXNbaV0gPSBwZm5fdG9fcGFnZShkbWFfdG9fcGZuKGRldi0+ZGV2LAo+ IC0JCQkJCQkJICAgICAgIHN0YXJ0X2FkZHIpKTsKPiArCQkJZXh5bm9zX2dlbS0+cGFnZXNbaV0g PQo+ICsJCQkJcGZuX3RvX3BhZ2UoZG1hX3RvX3BmbihkZXYtPmRldiwgc3RhcnRfYWRkcikpOwo+ ICAgCQkJc3RhcnRfYWRkciArPSBQQUdFX1NJWkU7Cj4gICAJCQlpKys7Cj4gICAJCX0KPiAgIAl9 IGVsc2Ugewo+IC0JCW9iai0+cGFnZXMgPSBvYmotPmNvb2tpZTsKPiArCQlleHlub3NfZ2VtLT5w YWdlcyA9IGV4eW5vc19nZW0tPmNvb2tpZTsKPiAgIAl9Cj4KPiAgIAlEUk1fREVCVUdfS01TKCJk bWFfYWRkcigweCVseCksIHNpemUoMHglbHgpXG4iLAo+IC0JCQkodW5zaWduZWQgbG9uZylvYmot PmRtYV9hZGRyLAo+IC0JCQlvYmotPnNpemUpOwo+ICsJCQkodW5zaWduZWQgbG9uZylleHlub3Nf Z2VtLT5kbWFfYWRkciwgZXh5bm9zX2dlbS0+c2l6ZSk7Cj4KPiAgIAlyZXR1cm4gMDsKPiAgIH0K Pgo+IC1zdGF0aWMgdm9pZCBleHlub3NfZHJtX2ZyZWVfYnVmKHN0cnVjdCBleHlub3NfZHJtX2dl bV9vYmogKm9iaikKPiArc3RhdGljIHZvaWQgZXh5bm9zX2RybV9mcmVlX2J1ZihzdHJ1Y3QgZXh5 bm9zX2RybV9nZW0gKmV4eW5vc19nZW0pCj4gICB7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gb2JqLT5iYXNlLmRldjsKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBleHlub3NfZ2Vt LT5iYXNlLmRldjsKPgo+IC0JaWYgKCFvYmotPmRtYV9hZGRyKSB7Cj4gKwlpZiAoIWV4eW5vc19n ZW0tPmRtYV9hZGRyKSB7Cj4gICAJCURSTV9ERUJVR19LTVMoImRtYV9hZGRyIGlzIGludmFsaWQu XG4iKTsKPiAgIAkJcmV0dXJuOwo+ICAgCX0KPgo+ICAgCURSTV9ERUJVR19LTVMoImRtYV9hZGRy KDB4JWx4KSwgc2l6ZSgweCVseClcbiIsCj4gLQkJCSh1bnNpZ25lZCBsb25nKW9iai0+ZG1hX2Fk ZHIsIG9iai0+c2l6ZSk7Cj4gKwkJCSh1bnNpZ25lZCBsb25nKWV4eW5vc19nZW0tPmRtYV9hZGRy LCBleHlub3NfZ2VtLT5zaXplKTsKPgo+IC0JZG1hX2ZyZWVfYXR0cnMoZGV2LT5kZXYsIG9iai0+ c2l6ZSwgb2JqLT5jb29raWUsCj4gLQkJCShkbWFfYWRkcl90KW9iai0+ZG1hX2FkZHIsICZvYmot PmRtYV9hdHRycyk7Cj4gKwlkbWFfZnJlZV9hdHRycyhkZXYtPmRldiwgZXh5bm9zX2dlbS0+c2l6 ZSwgZXh5bm9zX2dlbS0+Y29va2llLAo+ICsJCQkoZG1hX2FkZHJfdClleHlub3NfZ2VtLT5kbWFf YWRkciwKPiArCQkJJmV4eW5vc19nZW0tPmRtYV9hdHRycyk7Cj4KPiAgIAlpZiAoIWlzX2RybV9p b21tdV9zdXBwb3J0ZWQoZGV2KSkKPiAtCQlkcm1fZnJlZV9sYXJnZShvYmotPnBhZ2VzKTsKPiAr CQlkcm1fZnJlZV9sYXJnZShleHlub3NfZ2VtLT5wYWdlcyk7Cj4gICB9Cj4KPiAgIHN0YXRpYyBp bnQgZXh5bm9zX2RybV9nZW1faGFuZGxlX2NyZWF0ZShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9i aiwKPiBAQCAtMTM1LDkgKzEzOCw5IEBAIHN0YXRpYyBpbnQgZXh5bm9zX2RybV9nZW1faGFuZGxl X2NyZWF0ZShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwKPiAgIAlyZXR1cm4gMDsKPiAgIH0K Pgo+IC12b2lkIGV4eW5vc19kcm1fZ2VtX2Rlc3Ryb3koc3RydWN0IGV4eW5vc19kcm1fZ2VtX29i aiAqZXh5bm9zX2dlbV9vYmopCj4gK3ZvaWQgZXh5bm9zX2RybV9nZW1fZGVzdHJveShzdHJ1Y3Qg ZXh5bm9zX2RybV9nZW0gKmV4eW5vc19nZW0pCj4gICB7Cj4gLQlzdHJ1Y3QgZHJtX2dlbV9vYmpl Y3QgKm9iaiA9ICZleHlub3NfZ2VtX29iai0+YmFzZTsKPiArCXN0cnVjdCBkcm1fZ2VtX29iamVj dCAqb2JqID0gJmV4eW5vc19nZW0tPmJhc2U7Cj4KPiAgIAlEUk1fREVCVUdfS01TKCJoYW5kbGUg Y291bnQgPSAlZFxuIiwgb2JqLT5oYW5kbGVfY291bnQpOwo+Cj4gQEAgLTE0OCwyMSArMTUxLDIx IEBAIHZvaWQgZXh5bm9zX2RybV9nZW1fZGVzdHJveShzdHJ1Y3QgZXh5bm9zX2RybV9nZW1fb2Jq ICpleHlub3NfZ2VtX29iaikKPiAgIAkgKiBvbmNlIGRtYWJ1ZidzIHJlZmNvdW50IGJlY29tZXMg MC4KPiAgIAkgKi8KPiAgIAlpZiAob2JqLT5pbXBvcnRfYXR0YWNoKQo+IC0JCWRybV9wcmltZV9n ZW1fZGVzdHJveShvYmosIGV4eW5vc19nZW1fb2JqLT5zZ3QpOwo+ICsJCWRybV9wcmltZV9nZW1f ZGVzdHJveShvYmosIGV4eW5vc19nZW0tPnNndCk7Cj4gICAJZWxzZQo+IC0JCWV4eW5vc19kcm1f ZnJlZV9idWYoZXh5bm9zX2dlbV9vYmopOwo+ICsJCWV4eW5vc19kcm1fZnJlZV9idWYoZXh5bm9z X2dlbSk7Cj4KPiAgIAkvKiByZWxlYXNlIGZpbGUgcG9pbnRlciB0byBnZW0gb2JqZWN0LiAqLwo+ ICAgCWRybV9nZW1fb2JqZWN0X3JlbGVhc2Uob2JqKTsKPgo+IC0Ja2ZyZWUoZXh5bm9zX2dlbV9v YmopOwo+ICsJa2ZyZWUoZXh5bm9zX2dlbSk7Cj4gICB9Cj4KPiAgIHVuc2lnbmVkIGxvbmcgZXh5 bm9zX2RybV9nZW1fZ2V0X3NpemUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgIAkJCQkJCXVu c2lnbmVkIGludCBnZW1faGFuZGxlLAo+ICAgCQkJCQkJc3RydWN0IGRybV9maWxlICpmaWxlX3By aXYpCj4gICB7Cj4gLQlzdHJ1Y3QgZXh5bm9zX2RybV9nZW1fb2JqICpleHlub3NfZ2VtX29iajsK PiArCXN0cnVjdCBleHlub3NfZHJtX2dlbSAqZXh5bm9zX2dlbTsKPiAgIAlzdHJ1Y3QgZHJtX2dl bV9vYmplY3QgKm9iajsKPgo+ICAgCW9iaiA9IGRybV9nZW1fb2JqZWN0X2xvb2t1cChkZXYsIGZp bGVfcHJpdiwgZ2VtX2hhbmRsZSk7Cj4gQEAgLTE3MSw1MSArMTc0LDUxIEBAIHVuc2lnbmVkIGxv bmcgZXh5bm9zX2RybV9nZW1fZ2V0X3NpemUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgIAkJ cmV0dXJuIDA7Cj4gICAJfQo+Cj4gLQlleHlub3NfZ2VtX29iaiA9IHRvX2V4eW5vc19nZW1fb2Jq KG9iaik7Cj4gKwlleHlub3NfZ2VtID0gdG9fZXh5bm9zX2dlbShvYmopOwo+Cj4gICAJZHJtX2dl bV9vYmplY3RfdW5yZWZlcmVuY2VfdW5sb2NrZWQob2JqKTsKPgo+IC0JcmV0dXJuIGV4eW5vc19n ZW1fb2JqLT5zaXplOwo+ICsJcmV0dXJuIGV4eW5vc19nZW0tPnNpemU7Cj4gICB9Cj4KPiAtc3Rh dGljIHN0cnVjdCBleHlub3NfZHJtX2dlbV9vYmogKmV4eW5vc19kcm1fZ2VtX2luaXQoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwKPiAtCQkJCQkJICAgICAgdW5zaWduZWQgbG9uZyBzaXplKQo+ICtz dGF0aWMgc3RydWN0IGV4eW5vc19kcm1fZ2VtICpleHlub3NfZHJtX2dlbV9pbml0KHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCj4gKwkJCQkJCSAgdW5zaWduZWQgbG9uZyBzaXplKQo+ICAgewo+IC0J c3RydWN0IGV4eW5vc19kcm1fZ2VtX29iaiAqZXh5bm9zX2dlbV9vYmo7Cj4gKwlzdHJ1Y3QgZXh5 bm9zX2RybV9nZW0gKmV4eW5vc19nZW07Cj4gICAJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmo7 Cj4gICAJaW50IHJldDsKPgo+IC0JZXh5bm9zX2dlbV9vYmogPSBremFsbG9jKHNpemVvZigqZXh5 bm9zX2dlbV9vYmopLCBHRlBfS0VSTkVMKTsKPiAtCWlmICghZXh5bm9zX2dlbV9vYmopCj4gKwll eHlub3NfZ2VtID0ga3phbGxvYyhzaXplb2YoKmV4eW5vc19nZW0pLCBHRlBfS0VSTkVMKTsKPiAr CWlmICghZXh5bm9zX2dlbSkKPiAgIAkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7Cj4KPiAtCWV4 eW5vc19nZW1fb2JqLT5zaXplID0gc2l6ZTsKPiAtCW9iaiA9ICZleHlub3NfZ2VtX29iai0+YmFz ZTsKPiArCWV4eW5vc19nZW0tPnNpemUgPSBzaXplOwo+ICsJb2JqID0gJmV4eW5vc19nZW0tPmJh c2U7Cj4KPiAgIAlyZXQgPSBkcm1fZ2VtX29iamVjdF9pbml0KGRldiwgb2JqLCBzaXplKTsKPiAg IAlpZiAocmV0IDwgMCkgewo+ICAgCQlEUk1fRVJST1IoImZhaWxlZCB0byBpbml0aWFsaXplIGdl bSBvYmplY3RcbiIpOwo+IC0JCWtmcmVlKGV4eW5vc19nZW1fb2JqKTsKPiArCQlrZnJlZShleHlu b3NfZ2VtKTsKPiAgIAkJcmV0dXJuIEVSUl9QVFIocmV0KTsKPiAgIAl9Cj4KPiAgIAlyZXQgPSBk cm1fZ2VtX2NyZWF0ZV9tbWFwX29mZnNldChvYmopOwo+ICAgCWlmIChyZXQgPCAwKSB7Cj4gICAJ CWRybV9nZW1fb2JqZWN0X3JlbGVhc2Uob2JqKTsKPiAtCQlrZnJlZShleHlub3NfZ2VtX29iaik7 Cj4gKwkJa2ZyZWUoZXh5bm9zX2dlbSk7Cj4gICAJCXJldHVybiBFUlJfUFRSKHJldCk7Cj4gICAJ fQo+Cj4gICAJRFJNX0RFQlVHX0tNUygiY3JlYXRlZCBmaWxlIG9iamVjdCA9IDB4JXhcbiIsICh1 bnNpZ25lZCBpbnQpb2JqLT5maWxwKTsKPgo+IC0JcmV0dXJuIGV4eW5vc19nZW1fb2JqOwo+ICsJ cmV0dXJuIGV4eW5vc19nZW07Cj4gICB9Cj4KPiAtc3RydWN0IGV4eW5vc19kcm1fZ2VtX29iaiAq ZXh5bm9zX2RybV9nZW1fY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gLQkJCQkJCXVu c2lnbmVkIGludCBmbGFncywKPiAtCQkJCQkJdW5zaWduZWQgbG9uZyBzaXplKQo+ICtzdHJ1Y3Qg ZXh5bm9zX2RybV9nZW0gKmV4eW5vc19kcm1fZ2VtX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAo+ICsJCQkJCSAgICAgdW5zaWduZWQgaW50IGZsYWdzLAo+ICsJCQkJCSAgICAgdW5zaWdu ZWQgbG9uZyBzaXplKQo+ICAgewo+IC0Jc3RydWN0IGV4eW5vc19kcm1fZ2VtX29iaiAqZXh5bm9z X2dlbV9vYmo7Cj4gKwlzdHJ1Y3QgZXh5bm9zX2RybV9nZW0gKmV4eW5vc19nZW07Cj4gICAJaW50 IHJldDsKPgo+ICAgCWlmIChmbGFncyAmIH4oRVhZTk9TX0JPX01BU0spKSB7Cj4gQEAgLTIzMCwz OCArMjMzLDM4IEBAIHN0cnVjdCBleHlub3NfZHJtX2dlbV9vYmogKmV4eW5vc19kcm1fZ2VtX2Ny ZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+Cj4gICAJc2l6ZSA9IHJvdW5kdXAoc2l6ZSwg UEFHRV9TSVpFKTsKPgo+IC0JZXh5bm9zX2dlbV9vYmogPSBleHlub3NfZHJtX2dlbV9pbml0KGRl diwgc2l6ZSk7Cj4gLQlpZiAoSVNfRVJSKGV4eW5vc19nZW1fb2JqKSkKPiAtCQlyZXR1cm4gZXh5 bm9zX2dlbV9vYmo7Cj4gKwlleHlub3NfZ2VtID0gZXh5bm9zX2RybV9nZW1faW5pdChkZXYsIHNp emUpOwo+ICsJaWYgKElTX0VSUihleHlub3NfZ2VtKSkKPiArCQlyZXR1cm4gZXh5bm9zX2dlbTsK Pgo+ICAgCS8qIHNldCBtZW1vcnkgdHlwZSBhbmQgY2FjaGUgYXR0cmlidXRlIGZyb20gdXNlciBz aWRlLiAqLwo+IC0JZXh5bm9zX2dlbV9vYmotPmZsYWdzID0gZmxhZ3M7Cj4gKwlleHlub3NfZ2Vt LT5mbGFncyA9IGZsYWdzOwo+Cj4gLQlyZXQgPSBleHlub3NfZHJtX2FsbG9jX2J1ZihleHlub3Nf Z2VtX29iaik7Cj4gKwlyZXQgPSBleHlub3NfZHJtX2FsbG9jX2J1ZihleHlub3NfZ2VtKTsKPiAg IAlpZiAocmV0IDwgMCkgewo+IC0JCWRybV9nZW1fb2JqZWN0X3JlbGVhc2UoJmV4eW5vc19nZW1f b2JqLT5iYXNlKTsKPiAtCQlrZnJlZShleHlub3NfZ2VtX29iaik7Cj4gKwkJZHJtX2dlbV9vYmpl Y3RfcmVsZWFzZSgmZXh5bm9zX2dlbS0+YmFzZSk7Cj4gKwkJa2ZyZWUoZXh5bm9zX2dlbSk7Cj4g ICAJCXJldHVybiBFUlJfUFRSKHJldCk7Cj4gICAJfQo+Cj4gLQlyZXR1cm4gZXh5bm9zX2dlbV9v Ymo7Cj4gKwlyZXR1cm4gZXh5bm9zX2dlbTsKPiAgIH0KPgo+ICAgaW50IGV4eW5vc19kcm1fZ2Vt X2NyZWF0ZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ICAgCQkJ CXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQo+ICAgewo+ICAgCXN0cnVjdCBkcm1fZXh5bm9z X2dlbV9jcmVhdGUgKmFyZ3MgPSBkYXRhOwo+IC0Jc3RydWN0IGV4eW5vc19kcm1fZ2VtX29iaiAq ZXh5bm9zX2dlbV9vYmo7Cj4gKwlzdHJ1Y3QgZXh5bm9zX2RybV9nZW0gKmV4eW5vc19nZW07Cj4g ICAJaW50IHJldDsKPgo+IC0JZXh5bm9zX2dlbV9vYmogPSBleHlub3NfZHJtX2dlbV9jcmVhdGUo ZGV2LCBhcmdzLT5mbGFncywgYXJncy0+c2l6ZSk7Cj4gLQlpZiAoSVNfRVJSKGV4eW5vc19nZW1f b2JqKSkKPiAtCQlyZXR1cm4gUFRSX0VSUihleHlub3NfZ2VtX29iaik7Cj4gKwlleHlub3NfZ2Vt ID0gZXh5bm9zX2RybV9nZW1fY3JlYXRlKGRldiwgYXJncy0+ZmxhZ3MsIGFyZ3MtPnNpemUpOwo+ ICsJaWYgKElTX0VSUihleHlub3NfZ2VtKSkKPiArCQlyZXR1cm4gUFRSX0VSUihleHlub3NfZ2Vt KTsKPgo+IC0JcmV0ID0gZXh5bm9zX2RybV9nZW1faGFuZGxlX2NyZWF0ZSgmZXh5bm9zX2dlbV9v YmotPmJhc2UsIGZpbGVfcHJpdiwKPiAtCQkJJmFyZ3MtPmhhbmRsZSk7Cj4gKwlyZXQgPSBleHlu b3NfZHJtX2dlbV9oYW5kbGVfY3JlYXRlKCZleHlub3NfZ2VtLT5iYXNlLCBmaWxlX3ByaXYsCj4g KwkJCQkJICAgJmFyZ3MtPmhhbmRsZSk7Cj4gICAJaWYgKHJldCkgewo+IC0JCWV4eW5vc19kcm1f Z2VtX2Rlc3Ryb3koZXh5bm9zX2dlbV9vYmopOwo+ICsJCWV4eW5vc19kcm1fZ2VtX2Rlc3Ryb3ko ZXh5bm9zX2dlbSk7Cj4gICAJCXJldHVybiByZXQ7Cj4gICAJfQo+Cj4gQEAgLTI3Miw3ICsyNzUs NyBAQCBkbWFfYWRkcl90ICpleHlub3NfZHJtX2dlbV9nZXRfZG1hX2FkZHIoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKPiAgIAkJCQkJdW5zaWduZWQgaW50IGdlbV9oYW5kbGUsCj4gICAJCQkJCXN0 cnVjdCBkcm1fZmlsZSAqZmlscCkKPiAgIHsKPiAtCXN0cnVjdCBleHlub3NfZHJtX2dlbV9vYmog KmV4eW5vc19nZW1fb2JqOwo+ICsJc3RydWN0IGV4eW5vc19kcm1fZ2VtICpleHlub3NfZ2VtOwo+ ICAgCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqOwo+Cj4gICAJb2JqID0gZHJtX2dlbV9vYmpl Y3RfbG9va3VwKGRldiwgZmlscCwgZ2VtX2hhbmRsZSk7Cj4gQEAgLTI4MSw5ICsyODQsOSBAQCBk bWFfYWRkcl90ICpleHlub3NfZHJtX2dlbV9nZXRfZG1hX2FkZHIoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKPiAgIAkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7Cj4gICAJfQo+Cj4gLQlleHlub3Nf Z2VtX29iaiA9IHRvX2V4eW5vc19nZW1fb2JqKG9iaik7Cj4gKwlleHlub3NfZ2VtID0gdG9fZXh5 bm9zX2dlbShvYmopOwo+Cj4gLQlyZXR1cm4gJmV4eW5vc19nZW1fb2JqLT5kbWFfYWRkcjsKPiAr CXJldHVybiAmZXh5bm9zX2dlbS0+ZG1hX2FkZHI7Cj4gICB9Cj4KPiAgIHZvaWQgZXh5bm9zX2Ry bV9nZW1fcHV0X2RtYV9hZGRyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gQEAgLTMwNywxMCAr MzEwLDEwIEBAIHZvaWQgZXh5bm9zX2RybV9nZW1fcHV0X2RtYV9hZGRyKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCj4gICAJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2VfdW5sb2NrZWQob2JqKTsK PiAgIH0KPgo+IC1zdGF0aWMgaW50IGV4eW5vc19kcm1fZ2VtX21tYXBfYnVmZmVyKHN0cnVjdCBl eHlub3NfZHJtX2dlbV9vYmogKmV4eW5vc19nZW1fb2JqLAo+ICtzdGF0aWMgaW50IGV4eW5vc19k cm1fZ2VtX21tYXBfYnVmZmVyKHN0cnVjdCBleHlub3NfZHJtX2dlbSAqZXh5bm9zX2dlbSwKPiAg IAkJCQkgICAgICBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKPiAgIHsKPiAtCXN0cnVjdCBk cm1fZGV2aWNlICpkcm1fZGV2ID0gZXh5bm9zX2dlbV9vYmotPmJhc2UuZGV2Owo+ICsJc3RydWN0 IGRybV9kZXZpY2UgKmRybV9kZXYgPSBleHlub3NfZ2VtLT5iYXNlLmRldjsKPiAgIAl1bnNpZ25l ZCBsb25nIHZtX3NpemU7Cj4gICAJaW50IHJldDsKPgo+IEBAIC0zMjAsMTIgKzMyMywxMiBAQCBz dGF0aWMgaW50IGV4eW5vc19kcm1fZ2VtX21tYXBfYnVmZmVyKHN0cnVjdCBleHlub3NfZHJtX2dl bV9vYmogKmV4eW5vc19nZW1fb2JqLAo+ICAgCXZtX3NpemUgPSB2bWEtPnZtX2VuZCAtIHZtYS0+ dm1fc3RhcnQ7Cj4KPiAgIAkvKiBjaGVjayBpZiB1c2VyLXJlcXVlc3RlZCBzaXplIGlzIHZhbGlk LiAqLwo+IC0JaWYgKHZtX3NpemUgPiBleHlub3NfZ2VtX29iai0+c2l6ZSkKPiArCWlmICh2bV9z aXplID4gZXh5bm9zX2dlbS0+c2l6ZSkKPiAgIAkJcmV0dXJuIC1FSU5WQUw7Cj4KPiAtCXJldCA9 IGRtYV9tbWFwX2F0dHJzKGRybV9kZXYtPmRldiwgdm1hLCBleHlub3NfZ2VtX29iai0+cGFnZXMs Cj4gLQkJCQlleHlub3NfZ2VtX29iai0+ZG1hX2FkZHIsIGV4eW5vc19nZW1fb2JqLT5zaXplLAo+ IC0JCQkJJmV4eW5vc19nZW1fb2JqLT5kbWFfYXR0cnMpOwo+ICsJcmV0ID0gZG1hX21tYXBfYXR0 cnMoZHJtX2Rldi0+ZGV2LCB2bWEsIGV4eW5vc19nZW0tPnBhZ2VzLAo+ICsJCQkgICAgIGV4eW5v c19nZW0tPmRtYV9hZGRyLCBleHlub3NfZ2VtLT5zaXplLAo+ICsJCQkgICAgICZleHlub3NfZ2Vt LT5kbWFfYXR0cnMpOwo+ICAgCWlmIChyZXQgPCAwKSB7Cj4gICAJCURSTV9FUlJPUigiZmFpbGVk IHRvIG1tYXAuXG4iKTsKPiAgIAkJcmV0dXJuIHJldDsKPiBAQCAtMzM3LDcgKzM0MCw3IEBAIHN0 YXRpYyBpbnQgZXh5bm9zX2RybV9nZW1fbW1hcF9idWZmZXIoc3RydWN0IGV4eW5vc19kcm1fZ2Vt X29iaiAqZXh5bm9zX2dlbV9vYmosCj4gICBpbnQgZXh5bm9zX2RybV9nZW1fZ2V0X2lvY3RsKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gICAJCQkJICAgICAgc3RydWN0IGRy bV9maWxlICpmaWxlX3ByaXYpCj4gICB7Cj4gLQlzdHJ1Y3QgZXh5bm9zX2RybV9nZW1fb2JqICpl eHlub3NfZ2VtX29iajsKPiArCXN0cnVjdCBleHlub3NfZHJtX2dlbSAqZXh5bm9zX2dlbTsKPiAg IAlzdHJ1Y3QgZHJtX2V4eW5vc19nZW1faW5mbyAqYXJncyA9IGRhdGE7Cj4gICAJc3RydWN0IGRy bV9nZW1fb2JqZWN0ICpvYmo7Cj4KPiBAQCAtMzUwLDEwICszNTMsMTAgQEAgaW50IGV4eW5vc19k cm1fZ2VtX2dldF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ICAg CQlyZXR1cm4gLUVJTlZBTDsKPiAgIAl9Cj4KPiAtCWV4eW5vc19nZW1fb2JqID0gdG9fZXh5bm9z X2dlbV9vYmoob2JqKTsKPiArCWV4eW5vc19nZW0gPSB0b19leHlub3NfZ2VtKG9iaik7Cj4KPiAt CWFyZ3MtPmZsYWdzID0gZXh5bm9zX2dlbV9vYmotPmZsYWdzOwo+IC0JYXJncy0+c2l6ZSA9IGV4 eW5vc19nZW1fb2JqLT5zaXplOwo+ICsJYXJncy0+ZmxhZ3MgPSBleHlub3NfZ2VtLT5mbGFnczsK PiArCWFyZ3MtPnNpemUgPSBleHlub3NfZ2VtLT5zaXplOwo+Cj4gICAJZHJtX2dlbV9vYmplY3Rf dW5yZWZlcmVuY2Uob2JqKTsKPiAgIAltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsK PiBAQCAtMzg5LDE0ICszOTIsMTQgQEAgdm9pZCBleHlub3NfZ2VtX3VubWFwX3NndF9mcm9tX2Rt YShzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiwKPgo+ICAgdm9pZCBleHlub3NfZHJtX2dlbV9m cmVlX29iamVjdChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaikKPiAgIHsKPiAtCWV4eW5vc19k cm1fZ2VtX2Rlc3Ryb3kodG9fZXh5bm9zX2dlbV9vYmoob2JqKSk7Cj4gKwlleHlub3NfZHJtX2dl bV9kZXN0cm95KHRvX2V4eW5vc19nZW0ob2JqKSk7Cj4gICB9Cj4KPiAgIGludCBleHlub3NfZHJt X2dlbV9kdW1iX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKPiAgIAkJCSAgICAg ICBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAgCQkJICAgICAgIHN0cnVjdCBkcm1fbW9kZV9j cmVhdGVfZHVtYiAqYXJncykKPiAgIHsKPiAtCXN0cnVjdCBleHlub3NfZHJtX2dlbV9vYmogKmV4 eW5vc19nZW1fb2JqOwo+ICsJc3RydWN0IGV4eW5vc19kcm1fZ2VtICpleHlub3NfZ2VtOwo+ICAg CXVuc2lnbmVkIGludCBmbGFnczsKPiAgIAlpbnQgcmV0Owo+Cj4gQEAgLTQxNCwxNiArNDE3LDE2 IEBAIGludCBleHlub3NfZHJtX2dlbV9kdW1iX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVf cHJpdiwKPiAgIAllbHNlCj4gICAJCWZsYWdzID0gRVhZTk9TX0JPX0NPTlRJRyB8IEVYWU5PU19C T19XQzsKPgo+IC0JZXh5bm9zX2dlbV9vYmogPSBleHlub3NfZHJtX2dlbV9jcmVhdGUoZGV2LCBm bGFncywgYXJncy0+c2l6ZSk7Cj4gLQlpZiAoSVNfRVJSKGV4eW5vc19nZW1fb2JqKSkgewo+ICsJ ZXh5bm9zX2dlbSA9IGV4eW5vc19kcm1fZ2VtX2NyZWF0ZShkZXYsIGZsYWdzLCBhcmdzLT5zaXpl KTsKPiArCWlmIChJU19FUlIoZXh5bm9zX2dlbSkpIHsKPiAgIAkJZGV2X3dhcm4oZGV2LT5kZXYs ICJGQiBhbGxvY2F0aW9uIGZhaWxlZC5cbiIpOwo+IC0JCXJldHVybiBQVFJfRVJSKGV4eW5vc19n ZW1fb2JqKTsKPiArCQlyZXR1cm4gUFRSX0VSUihleHlub3NfZ2VtKTsKPiAgIAl9Cj4KPiAtCXJl dCA9IGV4eW5vc19kcm1fZ2VtX2hhbmRsZV9jcmVhdGUoJmV4eW5vc19nZW1fb2JqLT5iYXNlLCBm aWxlX3ByaXYsCj4gLQkJCSZhcmdzLT5oYW5kbGUpOwo+ICsJcmV0ID0gZXh5bm9zX2RybV9nZW1f aGFuZGxlX2NyZWF0ZSgmZXh5bm9zX2dlbS0+YmFzZSwgZmlsZV9wcml2LAo+ICsJCQkJCSAgICZh cmdzLT5oYW5kbGUpOwo+ICAgCWlmIChyZXQpIHsKPiAtCQlleHlub3NfZHJtX2dlbV9kZXN0cm95 KGV4eW5vc19nZW1fb2JqKTsKPiArCQlleHlub3NfZHJtX2dlbV9kZXN0cm95KGV4eW5vc19nZW0p Owo+ICAgCQlyZXR1cm4gcmV0Owo+ICAgCX0KPgo+IEBAIC00NjQsNyArNDY3LDcgQEAgdW5sb2Nr Ogo+ICAgaW50IGV4eW5vc19kcm1fZ2VtX2ZhdWx0KHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1h LCBzdHJ1Y3Qgdm1fZmF1bHQgKnZtZikKPiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2dlbV9vYmplY3Qg Km9iaiA9IHZtYS0+dm1fcHJpdmF0ZV9kYXRhOwo+IC0Jc3RydWN0IGV4eW5vc19kcm1fZ2VtX29i aiAqZXh5bm9zX2dlbV9vYmogPSB0b19leHlub3NfZ2VtX29iaihvYmopOwo+ICsJc3RydWN0IGV4 eW5vc19kcm1fZ2VtICpleHlub3NfZ2VtID0gdG9fZXh5bm9zX2dlbShvYmopOwo+ICAgCXVuc2ln bmVkIGxvbmcgcGZuOwo+ICAgCXBnb2ZmX3QgcGFnZV9vZmZzZXQ7Cj4gICAJaW50IHJldDsKPiBA QCAtNDcyLDEzICs0NzUsMTMgQEAgaW50IGV4eW5vc19kcm1fZ2VtX2ZhdWx0KHN0cnVjdCB2bV9h cmVhX3N0cnVjdCAqdm1hLCBzdHJ1Y3Qgdm1fZmF1bHQgKnZtZikKPiAgIAlwYWdlX29mZnNldCA9 ICgodW5zaWduZWQgbG9uZyl2bWYtPnZpcnR1YWxfYWRkcmVzcyAtCj4gICAJCQl2bWEtPnZtX3N0 YXJ0KSA+PiBQQUdFX1NISUZUOwo+Cj4gLQlpZiAocGFnZV9vZmZzZXQgPj0gKGV4eW5vc19nZW1f b2JqLT5zaXplID4+IFBBR0VfU0hJRlQpKSB7Cj4gKwlpZiAocGFnZV9vZmZzZXQgPj0gKGV4eW5v c19nZW0tPnNpemUgPj4gUEFHRV9TSElGVCkpIHsKPiAgIAkJRFJNX0VSUk9SKCJpbnZhbGlkIHBh Z2Ugb2Zmc2V0XG4iKTsKPiAgIAkJcmV0ID0gLUVJTlZBTDsKPiAgIAkJZ290byBvdXQ7Cj4gICAJ fQo+Cj4gLQlwZm4gPSBwYWdlX3RvX3BmbihleHlub3NfZ2VtX29iai0+cGFnZXNbcGFnZV9vZmZz ZXRdKTsKPiArCXBmbiA9IHBhZ2VfdG9fcGZuKGV4eW5vc19nZW0tPnBhZ2VzW3BhZ2Vfb2Zmc2V0 XSk7Cj4gICAJcmV0ID0gdm1faW5zZXJ0X21peGVkKHZtYSwgKHVuc2lnbmVkIGxvbmcpdm1mLT52 aXJ0dWFsX2FkZHJlc3MsIHBmbik7Cj4KPiAgIG91dDoKPiBAQCAtNDk2LDcgKzQ5OSw3IEBAIG91 dDoKPgo+ICAgaW50IGV4eW5vc19kcm1fZ2VtX21tYXAoc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVj dCB2bV9hcmVhX3N0cnVjdCAqdm1hKQo+ICAgewo+IC0Jc3RydWN0IGV4eW5vc19kcm1fZ2VtX29i aiAqZXh5bm9zX2dlbV9vYmo7Cj4gKwlzdHJ1Y3QgZXh5bm9zX2RybV9nZW0gKmV4eW5vc19nZW07 Cj4gICAJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmo7Cj4gICAJaW50IHJldDsKPgo+IEBAIC01 MDgsMjEgKzUxMSwyMSBAQCBpbnQgZXh5bm9zX2RybV9nZW1fbW1hcChzdHJ1Y3QgZmlsZSAqZmls cCwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCj4gICAJfQo+Cj4gICAJb2JqID0gdm1hLT52 bV9wcml2YXRlX2RhdGE7Cj4gLQlleHlub3NfZ2VtX29iaiA9IHRvX2V4eW5vc19nZW1fb2JqKG9i aik7Cj4gKwlleHlub3NfZ2VtID0gdG9fZXh5bm9zX2dlbShvYmopOwo+Cj4gLQlEUk1fREVCVUdf S01TKCJmbGFncyA9IDB4JXhcbiIsIGV4eW5vc19nZW1fb2JqLT5mbGFncyk7Cj4gKwlEUk1fREVC VUdfS01TKCJmbGFncyA9IDB4JXhcbiIsIGV4eW5vc19nZW0tPmZsYWdzKTsKPgo+ICAgCS8qIG5v bi1jYWNoYWJsZSBhcyBkZWZhdWx0LiAqLwo+IC0JaWYgKGV4eW5vc19nZW1fb2JqLT5mbGFncyAm IEVYWU5PU19CT19DQUNIQUJMRSkKPiArCWlmIChleHlub3NfZ2VtLT5mbGFncyAmIEVYWU5PU19C T19DQUNIQUJMRSkKPiAgIAkJdm1hLT52bV9wYWdlX3Byb3QgPSB2bV9nZXRfcGFnZV9wcm90KHZt YS0+dm1fZmxhZ3MpOwo+IC0JZWxzZSBpZiAoZXh5bm9zX2dlbV9vYmotPmZsYWdzICYgRVhZTk9T X0JPX1dDKQo+ICsJZWxzZSBpZiAoZXh5bm9zX2dlbS0+ZmxhZ3MgJiBFWFlOT1NfQk9fV0MpCj4g ICAJCXZtYS0+dm1fcGFnZV9wcm90ID0KPiAgIAkJCXBncHJvdF93cml0ZWNvbWJpbmUodm1fZ2V0 X3BhZ2VfcHJvdCh2bWEtPnZtX2ZsYWdzKSk7Cj4gICAJZWxzZQo+ICAgCQl2bWEtPnZtX3BhZ2Vf cHJvdCA9Cj4gICAJCQlwZ3Byb3Rfbm9uY2FjaGVkKHZtX2dldF9wYWdlX3Byb3Qodm1hLT52bV9m bGFncykpOwo+Cj4gLQlyZXQgPSBleHlub3NfZHJtX2dlbV9tbWFwX2J1ZmZlcihleHlub3NfZ2Vt X29iaiwgdm1hKTsKPiArCXJldCA9IGV4eW5vc19kcm1fZ2VtX21tYXBfYnVmZmVyKGV4eW5vc19n ZW0sIHZtYSk7Cj4gICAJaWYgKHJldCkKPiAgIAkJZ290byBlcnJfY2xvc2Vfdm07Cj4KPiBAQCAt NTM3LDEyICs1NDAsMTIgQEAgZXJyX2Nsb3NlX3ZtOgo+ICAgLyogbG93LWxldmVsIGludGVyZmFj ZSBwcmltZSBoZWxwZXJzICovCj4gICBzdHJ1Y3Qgc2dfdGFibGUgKmV4eW5vc19kcm1fZ2VtX3By aW1lX2dldF9zZ190YWJsZShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaikKPiAgIHsKPiAtCXN0 cnVjdCBleHlub3NfZHJtX2dlbV9vYmogKmV4eW5vc19nZW1fb2JqID0gdG9fZXh5bm9zX2dlbV9v Ymoob2JqKTsKPiArCXN0cnVjdCBleHlub3NfZHJtX2dlbSAqZXh5bm9zX2dlbSA9IHRvX2V4eW5v c19nZW0ob2JqKTsKPiAgIAlpbnQgbnBhZ2VzOwo+Cj4gLQlucGFnZXMgPSBleHlub3NfZ2VtX29i ai0+c2l6ZSA+PiBQQUdFX1NISUZUOwo+ICsJbnBhZ2VzID0gZXh5bm9zX2dlbS0+c2l6ZSA+PiBQ QUdFX1NISUZUOwo+Cj4gLQlyZXR1cm4gZHJtX3ByaW1lX3BhZ2VzX3RvX3NnKGV4eW5vc19nZW1f b2JqLT5wYWdlcywgbnBhZ2VzKTsKPiArCXJldHVybiBkcm1fcHJpbWVfcGFnZXNfdG9fc2coZXh5 bm9zX2dlbS0+cGFnZXMsIG5wYWdlcyk7Cj4gICB9Cj4KPiAgIHN0cnVjdCBkcm1fZ2VtX29iamVj dCAqCj4gQEAgLTU1MCwzNSArNTUzLDM1IEBAIGV4eW5vc19kcm1fZ2VtX3ByaW1lX2ltcG9ydF9z Z190YWJsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAgCQkJCSAgICAgc3RydWN0IGRtYV9i dWZfYXR0YWNobWVudCAqYXR0YWNoLAo+ICAgCQkJCSAgICAgc3RydWN0IHNnX3RhYmxlICpzZ3Qp Cj4gICB7Cj4gLQlzdHJ1Y3QgZXh5bm9zX2RybV9nZW1fb2JqICpleHlub3NfZ2VtX29iajsKPiAr CXN0cnVjdCBleHlub3NfZHJtX2dlbSAqZXh5bm9zX2dlbTsKPiAgIAlpbnQgbnBhZ2VzOwo+ICAg CWludCByZXQ7Cj4KPiAtCWV4eW5vc19nZW1fb2JqID0gZXh5bm9zX2RybV9nZW1faW5pdChkZXYs IGF0dGFjaC0+ZG1hYnVmLT5zaXplKTsKPiAtCWlmIChJU19FUlIoZXh5bm9zX2dlbV9vYmopKSB7 Cj4gLQkJcmV0ID0gUFRSX0VSUihleHlub3NfZ2VtX29iaik7Cj4gKwlleHlub3NfZ2VtID0gZXh5 bm9zX2RybV9nZW1faW5pdChkZXYsIGF0dGFjaC0+ZG1hYnVmLT5zaXplKTsKPiArCWlmIChJU19F UlIoZXh5bm9zX2dlbSkpIHsKPiArCQlyZXQgPSBQVFJfRVJSKGV4eW5vc19nZW0pOwo+ICAgCQly ZXR1cm4gRVJSX1BUUihyZXQpOwo+ICAgCX0KPgo+IC0JZXh5bm9zX2dlbV9vYmotPmRtYV9hZGRy ID0gc2dfZG1hX2FkZHJlc3Moc2d0LT5zZ2wpOwo+ICsJZXh5bm9zX2dlbS0+ZG1hX2FkZHIgPSBz Z19kbWFfYWRkcmVzcyhzZ3QtPnNnbCk7Cj4KPiAtCW5wYWdlcyA9IGV4eW5vc19nZW1fb2JqLT5z aXplID4+IFBBR0VfU0hJRlQ7Cj4gLQlleHlub3NfZ2VtX29iai0+cGFnZXMgPSBkcm1fbWFsbG9j X2FiKG5wYWdlcywgc2l6ZW9mKHN0cnVjdCBwYWdlICopKTsKPiAtCWlmICghZXh5bm9zX2dlbV9v YmotPnBhZ2VzKSB7Cj4gKwlucGFnZXMgPSBleHlub3NfZ2VtLT5zaXplID4+IFBBR0VfU0hJRlQ7 Cj4gKwlleHlub3NfZ2VtLT5wYWdlcyA9IGRybV9tYWxsb2NfYWIobnBhZ2VzLCBzaXplb2Yoc3Ry dWN0IHBhZ2UgKikpOwo+ICsJaWYgKCFleHlub3NfZ2VtLT5wYWdlcykgewo+ICAgCQlyZXQgPSAt RU5PTUVNOwo+ICAgCQlnb3RvIGVycjsKPiAgIAl9Cj4KPiAtCXJldCA9IGRybV9wcmltZV9zZ190 b19wYWdlX2FkZHJfYXJyYXlzKHNndCwgZXh5bm9zX2dlbV9vYmotPnBhZ2VzLCBOVUxMLAo+IC0J CQlucGFnZXMpOwo+ICsJcmV0ID0gZHJtX3ByaW1lX3NnX3RvX3BhZ2VfYWRkcl9hcnJheXMoc2d0 LCBleHlub3NfZ2VtLT5wYWdlcywgTlVMTCwKPiArCQkJCQkgICAgICAgbnBhZ2VzKTsKPiAgIAlp ZiAocmV0IDwgMCkKPiAgIAkJZ290byBlcnJfZnJlZV9sYXJnZTsKPgo+IC0JZXh5bm9zX2dlbV9v YmotPnNndCA9IHNndDsKPiArCWV4eW5vc19nZW0tPnNndCA9IHNndDsKPgo+ICAgCWlmIChzZ3Qt Pm5lbnRzID09IDEpIHsKPiAgIAkJLyogYWx3YXlzIHBoeXNpY2FsbHkgY29udGludW91cyBtZW1v cnkgaWYgc2d0LT5uZW50cyBpcyAxLiAqLwo+IC0JCWV4eW5vc19nZW1fb2JqLT5mbGFncyB8PSBF WFlOT1NfQk9fQ09OVElHOwo+ICsJCWV4eW5vc19nZW0tPmZsYWdzIHw9IEVYWU5PU19CT19DT05U SUc7Cj4gICAJfSBlbHNlIHsKPiAgIAkJLyoKPiAgIAkJICogdGhpcyBjYXNlIGNvdWxkIGJlIENP TlRJRyBvciBOT05DT05USUcgdHlwZSBidXQgZm9yIG5vdwo+IEBAIC01ODYsMTYgKzU4OSwxNiBA QCBleHlub3NfZHJtX2dlbV9wcmltZV9pbXBvcnRfc2dfdGFibGUoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKPiAgIAkJICogVE9ETy4gd2UgaGF2ZSB0byBmaW5kIGEgd2F5IHRoYXQgZXhwb3J0ZXIg Y2FuIG5vdGlmeQo+ICAgCQkgKiB0aGUgdHlwZSBvZiBpdHMgb3duIGJ1ZmZlciB0byBpbXBvcnRl ci4KPiAgIAkJICovCj4gLQkJZXh5bm9zX2dlbV9vYmotPmZsYWdzIHw9IEVYWU5PU19CT19OT05D T05USUc7Cj4gKwkJZXh5bm9zX2dlbS0+ZmxhZ3MgfD0gRVhZTk9TX0JPX05PTkNPTlRJRzsKPiAg IAl9Cj4KPiAtCXJldHVybiAmZXh5bm9zX2dlbV9vYmotPmJhc2U7Cj4gKwlyZXR1cm4gJmV4eW5v c19nZW0tPmJhc2U7Cj4KPiAgIGVycl9mcmVlX2xhcmdlOgo+IC0JZHJtX2ZyZWVfbGFyZ2UoZXh5 bm9zX2dlbV9vYmotPnBhZ2VzKTsKPiArCWRybV9mcmVlX2xhcmdlKGV4eW5vc19nZW0tPnBhZ2Vz KTsKPiAgIGVycjoKPiAtCWRybV9nZW1fb2JqZWN0X3JlbGVhc2UoJmV4eW5vc19nZW1fb2JqLT5i YXNlKTsKPiAtCWtmcmVlKGV4eW5vc19nZW1fb2JqKTsKPiArCWRybV9nZW1fb2JqZWN0X3JlbGVh c2UoJmV4eW5vc19nZW0tPmJhc2UpOwo+ICsJa2ZyZWUoZXh5bm9zX2dlbSk7Cj4gICAJcmV0dXJu IEVSUl9QVFIocmV0KTsKPiAgIH0KPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXh5 bm9zL2V4eW5vc19kcm1fZ2VtLmggYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1f Z2VtLmgKPiBpbmRleCBiNjJkMTAwLi4zN2FiOGIyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9leHlub3MvZXh5bm9zX2RybV9nZW0uaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9leHlu b3MvZXh5bm9zX2RybV9nZW0uaAo+IEBAIC0xNCw4ICsxNCw3IEBACj4KPiAgICNpbmNsdWRlIDxk cm0vZHJtX2dlbS5oPgo+Cj4gLSNkZWZpbmUgdG9fZXh5bm9zX2dlbV9vYmooeCkJY29udGFpbmVy X29mKHgsXAo+IC0JCQlzdHJ1Y3QgZXh5bm9zX2RybV9nZW1fb2JqLCBiYXNlKQo+ICsjZGVmaW5l IHRvX2V4eW5vc19nZW0oeCkJY29udGFpbmVyX29mKHgsIHN0cnVjdCBleHlub3NfZHJtX2dlbSwg YmFzZSkKPgo+ICAgI2RlZmluZSBJU19OT05DT05USUdfQlVGRkVSKGYpCQkoZiAmIEVYWU5PU19C T19OT05DT05USUcpCj4KPiBAQCAtNDQsNyArNDMsNyBAQAo+ICAgICogUC5TLiB0aGlzIG9iamVj dCB3b3VsZCBiZSB0cmFuc2ZlcnJlZCB0byB1c2VyIGFzIGttc19iby5oYW5kbGUgc28KPiAgICAq CXVzZXIgY2FuIGFjY2VzcyB0aGUgYnVmZmVyIHRocm91Z2gga21zX2JvLmhhbmRsZS4KPiAgICAq Lwo+IC1zdHJ1Y3QgZXh5bm9zX2RybV9nZW1fb2JqIHsKPiArc3RydWN0IGV4eW5vc19kcm1fZ2Vt IHsKPiAgIAlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QJYmFzZTsKPiAgIAl1bnNpZ25lZCBpbnQJCWZs YWdzOwo+ICAgCXVuc2lnbmVkIGxvbmcJCXNpemU7Cj4gQEAgLTU5LDEyICs1OCwxMiBAQCBzdHJ1 Y3QgZXh5bm9zX2RybV9nZW1fb2JqIHsKPiAgIHN0cnVjdCBwYWdlICoqZXh5bm9zX2dlbV9nZXRf cGFnZXMoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIGdmcF90IGdmcG1hc2spOwo+Cj4gICAv KiBkZXN0cm95IGEgYnVmZmVyIHdpdGggZ2VtIG9iamVjdCAqLwo+IC12b2lkIGV4eW5vc19kcm1f Z2VtX2Rlc3Ryb3koc3RydWN0IGV4eW5vc19kcm1fZ2VtX29iaiAqZXh5bm9zX2dlbV9vYmopOwo+ ICt2b2lkIGV4eW5vc19kcm1fZ2VtX2Rlc3Ryb3koc3RydWN0IGV4eW5vc19kcm1fZ2VtICpleHlu b3NfZ2VtKTsKPgo+ICAgLyogY3JlYXRlIGEgbmV3IGJ1ZmZlciB3aXRoIGdlbSBvYmplY3QgKi8K PiAtc3RydWN0IGV4eW5vc19kcm1fZ2VtX29iaiAqZXh5bm9zX2RybV9nZW1fY3JlYXRlKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCj4gLQkJCQkJCXVuc2lnbmVkIGludCBmbGFncywKPiAtCQkJCQkJ dW5zaWduZWQgbG9uZyBzaXplKTsKPiArc3RydWN0IGV4eW5vc19kcm1fZ2VtICpleHlub3NfZHJt X2dlbV9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiArCQkJCQkgICAgIHVuc2lnbmVk IGludCBmbGFncywKPiArCQkJCQkgICAgIHVuc2lnbmVkIGxvbmcgc2l6ZSk7Cj4KPiAgIC8qCj4g ICAgKiByZXF1ZXN0IGdlbSBvYmplY3QgY3JlYXRpb24gYW5kIGJ1ZmZlciBhbGxvY2F0aW9uIGFz IHRoZSBzaXplCj4gQEAgLTEwNiw3ICsxMDUsNyBAQCB1bnNpZ25lZCBsb25nIGV4eW5vc19kcm1f Z2VtX2dldF9zaXplKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gICAJCQkJCQlzdHJ1Y3QgZHJt X2ZpbGUgKmZpbGVfcHJpdik7Cj4KPiAgIC8qIGZyZWUgZ2VtIG9iamVjdC4gKi8KPiAtdm9pZCBl eHlub3NfZHJtX2dlbV9mcmVlX29iamVjdChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdlbV9vYmop Owo+ICt2b2lkIGV4eW5vc19kcm1fZ2VtX2ZyZWVfb2JqZWN0KHN0cnVjdCBkcm1fZ2VtX29iamVj dCAqb2JqKTsKPgo+ICAgLyogY3JlYXRlIG1lbW9yeSByZWdpb24gZm9yIGRybSBmcmFtZWJ1ZmZl ci4gKi8KPiAgIGludCBleHlub3NfZHJtX2dlbV9kdW1iX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZpbGUg KmZpbGVfcHJpdiwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3Nf ZHJtX3BsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fcGxhbmUuYwo+ IGluZGV4IDcxNDgyMjQuLmVjM2I2NDAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V4 eW5vcy9leHlub3NfZHJtX3BsYW5lLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4 eW5vc19kcm1fcGxhbmUuYwo+IEBAIC0xMjgsMTUgKzEyOCwxNCBAQCBzdGF0aWMgaW50IGV4eW5v c19wbGFuZV9hdG9taWNfY2hlY2soc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4KPiAgIAluciA9 IGRybV9mb3JtYXRfbnVtX3BsYW5lcyhzdGF0ZS0+ZmItPnBpeGVsX2Zvcm1hdCk7Cj4gICAJZm9y IChpID0gMDsgaSA8IG5yOyBpKyspIHsKPiAtCQlzdHJ1Y3QgZXh5bm9zX2RybV9nZW1fb2JqICpv YmogPQo+IC0JCQkJCWV4eW5vc19kcm1fZmJfZ2VtX29iaihzdGF0ZS0+ZmIsIGkpOwo+IC0KPiAt CQlpZiAoIW9iaikgewo+ICsJCXN0cnVjdCBleHlub3NfZHJtX2dlbSAqZXh5bm9zX2dlbSA9Cj4g KwkJCQkJZXh5bm9zX2RybV9mYl9nZW0oc3RhdGUtPmZiLCBpKTsKPiArCQlpZiAoIWV4eW5vc19n ZW0pIHsKPiAgIAkJCURSTV9ERUJVR19LTVMoImdlbSBvYmplY3QgaXMgbnVsbFxuIik7Cj4gICAJ CQlyZXR1cm4gLUVGQVVMVDsKPiAgIAkJfQo+Cj4gLQkJZXh5bm9zX3BsYW5lLT5kbWFfYWRkcltp XSA9IG9iai0+ZG1hX2FkZHIgKwo+ICsJCWV4eW5vc19wbGFuZS0+ZG1hX2FkZHJbaV0gPSBleHlu b3NfZ2VtLT5kbWFfYWRkciArCj4gICAJCQkJCSAgICBzdGF0ZS0+ZmItPm9mZnNldHNbaV07Cj4K PiAgIAkJRFJNX0RFQlVHX0tNUygiYnVmZmVyOiAlZCwgZG1hX2FkZHIgPSAweCVseFxuIiwKPgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwg bWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=