From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: [PATCH] drm/amdgpu: Remove wrapper layer of cgs irq handling Date: Tue, 20 Mar 2018 14:50:06 +0100 Message-ID: <2fd4168a-6dda-b1fe-b646-8e640aac05d6@gmail.com> References: <1521545159-17550-1-git-send-email-Rex.Zhu@amd.com> Reply-To: christian.koenig-5C7GfCeVMHo@public.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1521545159-17550-1-git-send-email-Rex.Zhu-5C7GfCeVMHo@public.gmane.org> Content-Language: en-US List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: Rex Zhu , amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org QW0gMjAuMDMuMjAxOCB1bSAxMjoyNSBzY2hyaWViIFJleCBaaHU6Cj4gMS4gcmVtb3ZlIHN0cnVj dCBjZ3Nfb3Nfb3BzCj4gMi4gZGVsZXRlIGNnc19saW51eC5oCj4gMy4gcmVmaW5lIHRoZSBpcnEg Y29kZSBmb3IgdmVnYTEwCj4KPiBDaGFuZ2UtSWQ6IEkxYjFiNTZjMzg1OTZlNjMyZmU2MjdjNDM2 YTUwNzJhZTViMzU5YjhjCj4gU2lnbmVkLW9mZi1ieTogUmV4IFpodSA8UmV4LlpodUBhbWQuY29t PgoKQWNrZWQtYnk6IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4K Cj4gLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FjcC9pbmNsdWRlL2FjcF9nZnhfaWYuaCAg ICAgICB8ICAgMSAtCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY2dzLmMg ICAgICAgICAgICB8IDExMSAtLS0tLS0tLS0tLS0tLS0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0v YW1kL2Rpc3BsYXkvZGMvb3NfdHlwZXMuaCAgICAgICAgICB8ICAgMiArLQo+ICAgZHJpdmVycy9n cHUvZHJtL2FtZC9pbmNsdWRlL2Nnc19jb21tb24uaCAgICAgICAgICAgfCAgIDEgLQo+ICAgZHJp dmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2Nnc19saW51eC5oICAgICAgICAgICAgfCAxMTkgLS0t LS0tLS0tLS0tLS0tLS0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21n ci9od21nci5jICAgICAgICB8ICA0NiArLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9w b3dlcnBsYXkvaHdtZ3Ivc211X2hlbHBlci5jICAgfCAgMjggKysrKysKPiAgIGRyaXZlcnMvZ3B1 L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdyL3NtdV9oZWxwZXIuaCAgIHwgICA1ICsKPiAgIGRyaXZl cnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdyL3ZlZ2ExMF9od21nci5jIHwgIDM2ICsrKyst LS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2luYy9od21nci5oICAgICAgICAg IHwgICA1IC0KPiAgIDEwIGZpbGVzIGNoYW5nZWQsIDU2IGluc2VydGlvbnMoKyksIDI5OCBkZWxl dGlvbnMoLSkKPiAgIGRlbGV0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1 ZGUvY2dzX2xpbnV4LmgKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FjcC9p bmNsdWRlL2FjcF9nZnhfaWYuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYWNwL2luY2x1ZGUvYWNw X2dmeF9pZi5oCj4gaW5kZXggYTcyZGRiMmYuLmZlYWI4ZWIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9hY3AvaW5jbHVkZS9hY3BfZ2Z4X2lmLmgKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2FjcC9pbmNsdWRlL2FjcF9nZnhfaWYuaAo+IEBAIC0yNSw3ICsyNSw2IEBACj4g ICAjZGVmaW5lIF9BQ1BfR0ZYX0lGX0gKPiAgIAo+ICAgI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+ Cj4gLSNpbmNsdWRlICJjZ3NfbGludXguaCIKPiAgICNpbmNsdWRlICJjZ3NfY29tbW9uLmgiCj4g ICAKPiAgIGludCBhbWRfYWNwX2h3X2luaXQoc3RydWN0IGNnc19kZXZpY2UgKmNnc19kZXZpY2Us Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jZ3MuYyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jZ3MuYwo+IGluZGV4IDViMzdjMWEu LjBmMmIzNzYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X2Nncy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Nncy5jCj4g QEAgLTI4LDcgKzI4LDYgQEAKPiAgICNpbmNsdWRlIDxsaW51eC9maXJtd2FyZS5oPgo+ICAgI2lu Y2x1ZGUgPGRybS9hbWRncHVfZHJtLmg+Cj4gICAjaW5jbHVkZSAiYW1kZ3B1LmgiCj4gLSNpbmNs dWRlICJjZ3NfbGludXguaCIKPiAgICNpbmNsdWRlICJhdG9tLmgiCj4gICAjaW5jbHVkZSAiYW1k Z3B1X3Vjb2RlLmgiCj4gICAKPiBAQCAtMTgyLDEwOSArMTgxLDYgQEAgc3RhdGljIGludCBhbWRn cHVfY2dzX2F0b21fZXhlY19jbWRfdGFibGUoc3RydWN0IGNnc19kZXZpY2UgKmNnc19kZXZpY2Us IHVuc2lnbmUKPiAgIAkJYWRldi0+bW9kZV9pbmZvLmF0b21fY29udGV4dCwgdGFibGUsIGFyZ3Mp Owo+ICAgfQo+ICAgCj4gLXN0cnVjdCBjZ3NfaXJxX3BhcmFtcyB7Cj4gLQl1bnNpZ25lZCBzcmNf aWQ7Cj4gLQljZ3NfaXJxX3NvdXJjZV9zZXRfZnVuY190IHNldDsKPiAtCWNnc19pcnFfaGFuZGxl cl9mdW5jX3QgaGFuZGxlcjsKPiAtCXZvaWQgKnByaXZhdGVfZGF0YTsKPiAtfTsKPiAtCj4gLXN0 YXRpYyBpbnQgY2dzX3NldF9pcnFfc3RhdGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4g LQkJCSAgICAgc3RydWN0IGFtZGdwdV9pcnFfc3JjICpzcmMsCj4gLQkJCSAgICAgdW5zaWduZWQg dHlwZSwKPiAtCQkJICAgICBlbnVtIGFtZGdwdV9pbnRlcnJ1cHRfc3RhdGUgc3RhdGUpCj4gLXsK PiAtCXN0cnVjdCBjZ3NfaXJxX3BhcmFtcyAqaXJxX3BhcmFtcyA9Cj4gLQkJKHN0cnVjdCBjZ3Nf aXJxX3BhcmFtcyAqKXNyYy0+ZGF0YTsKPiAtCWlmICghaXJxX3BhcmFtcykKPiAtCQlyZXR1cm4g LUVJTlZBTDsKPiAtCWlmICghaXJxX3BhcmFtcy0+c2V0KQo+IC0JCXJldHVybiAtRUlOVkFMOwo+ IC0JcmV0dXJuIGlycV9wYXJhbXMtPnNldChpcnFfcGFyYW1zLT5wcml2YXRlX2RhdGEsCj4gLQkJ CSAgICAgICBpcnFfcGFyYW1zLT5zcmNfaWQsCj4gLQkJCSAgICAgICB0eXBlLAo+IC0JCQkgICAg ICAgKGludClzdGF0ZSk7Cj4gLX0KPiAtCj4gLXN0YXRpYyBpbnQgY2dzX3Byb2Nlc3NfaXJxKHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAo+IC0JCQkgICBzdHJ1Y3QgYW1kZ3B1X2lycV9zcmMg KnNvdXJjZSwKPiAtCQkJICAgc3RydWN0IGFtZGdwdV9pdl9lbnRyeSAqZW50cnkpCj4gLXsKPiAt CXN0cnVjdCBjZ3NfaXJxX3BhcmFtcyAqaXJxX3BhcmFtcyA9Cj4gLQkJKHN0cnVjdCBjZ3NfaXJx X3BhcmFtcyAqKXNvdXJjZS0+ZGF0YTsKPiAtCWlmICghaXJxX3BhcmFtcykKPiAtCQlyZXR1cm4g LUVJTlZBTDsKPiAtCWlmICghaXJxX3BhcmFtcy0+aGFuZGxlcikKPiAtCQlyZXR1cm4gLUVJTlZB TDsKPiAtCXJldHVybiBpcnFfcGFyYW1zLT5oYW5kbGVyKGlycV9wYXJhbXMtPnByaXZhdGVfZGF0 YSwKPiAtCQkJCSAgIGlycV9wYXJhbXMtPnNyY19pZCwKPiAtCQkJCSAgIGVudHJ5LT5pdl9lbnRy eSk7Cj4gLX0KPiAtCj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgYW1kZ3B1X2lycV9zcmNfZnVuY3Mg Y2dzX2lycV9mdW5jcyA9IHsKPiAtCS5zZXQgPSBjZ3Nfc2V0X2lycV9zdGF0ZSwKPiAtCS5wcm9j ZXNzID0gY2dzX3Byb2Nlc3NfaXJxLAo+IC19Owo+IC0KPiAtc3RhdGljIGludCBhbWRncHVfY2dz X2FkZF9pcnFfc291cmNlKHZvaWQgKmNnc19kZXZpY2UsCj4gLQkJCQkgICAgIHVuc2lnbmVkIGNs aWVudF9pZCwKPiAtCQkJCSAgICAgdW5zaWduZWQgc3JjX2lkLAo+IC0JCQkJICAgICB1bnNpZ25l ZCBudW1fdHlwZXMsCj4gLQkJCQkgICAgIGNnc19pcnFfc291cmNlX3NldF9mdW5jX3Qgc2V0LAo+ IC0JCQkJICAgICBjZ3NfaXJxX2hhbmRsZXJfZnVuY190IGhhbmRsZXIsCj4gLQkJCQkgICAgIHZv aWQgKnByaXZhdGVfZGF0YSkKPiAtewo+IC0JQ0dTX0ZVTkNfQURFVjsKPiAtCWludCByZXQgPSAw Owo+IC0Jc3RydWN0IGNnc19pcnFfcGFyYW1zICppcnFfcGFyYW1zOwo+IC0Jc3RydWN0IGFtZGdw dV9pcnFfc3JjICpzb3VyY2UgPQo+IC0JCWt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBhbWRncHVfaXJx X3NyYyksIEdGUF9LRVJORUwpOwo+IC0JaWYgKCFzb3VyY2UpCj4gLQkJcmV0dXJuIC1FTk9NRU07 Cj4gLQlpcnFfcGFyYW1zID0KPiAtCQlremFsbG9jKHNpemVvZihzdHJ1Y3QgY2dzX2lycV9wYXJh bXMpLCBHRlBfS0VSTkVMKTsKPiAtCWlmICghaXJxX3BhcmFtcykgewo+IC0JCWtmcmVlKHNvdXJj ZSk7Cj4gLQkJcmV0dXJuIC1FTk9NRU07Cj4gLQl9Cj4gLQlzb3VyY2UtPm51bV90eXBlcyA9IG51 bV90eXBlczsKPiAtCXNvdXJjZS0+ZnVuY3MgPSAmY2dzX2lycV9mdW5jczsKPiAtCWlycV9wYXJh bXMtPnNyY19pZCA9IHNyY19pZDsKPiAtCWlycV9wYXJhbXMtPnNldCA9IHNldDsKPiAtCWlycV9w YXJhbXMtPmhhbmRsZXIgPSBoYW5kbGVyOwo+IC0JaXJxX3BhcmFtcy0+cHJpdmF0ZV9kYXRhID0g cHJpdmF0ZV9kYXRhOwo+IC0Jc291cmNlLT5kYXRhID0gKHZvaWQgKilpcnFfcGFyYW1zOwo+IC0J cmV0ID0gYW1kZ3B1X2lycV9hZGRfaWQoYWRldiwgY2xpZW50X2lkLCBzcmNfaWQsIHNvdXJjZSk7 Cj4gLQlpZiAocmV0KSB7Cj4gLQkJa2ZyZWUoaXJxX3BhcmFtcyk7Cj4gLQkJa2ZyZWUoc291cmNl KTsKPiAtCX0KPiAtCj4gLQlyZXR1cm4gcmV0Owo+IC19Cj4gLQo+IC1zdGF0aWMgaW50IGFtZGdw dV9jZ3NfaXJxX2dldCh2b2lkICpjZ3NfZGV2aWNlLCB1bnNpZ25lZCBjbGllbnRfaWQsCj4gLQkJ CSAgICAgIHVuc2lnbmVkIHNyY19pZCwgdW5zaWduZWQgdHlwZSkKPiAtewo+IC0JQ0dTX0ZVTkNf QURFVjsKPiAtCj4gLQlpZiAoIWFkZXYtPmlycS5jbGllbnRbY2xpZW50X2lkXS5zb3VyY2VzKQo+ IC0JCXJldHVybiAtRUlOVkFMOwo+IC0KPiAtCXJldHVybiBhbWRncHVfaXJxX2dldChhZGV2LCBh ZGV2LT5pcnEuY2xpZW50W2NsaWVudF9pZF0uc291cmNlc1tzcmNfaWRdLCB0eXBlKTsKPiAtfQo+ IC0KPiAtc3RhdGljIGludCBhbWRncHVfY2dzX2lycV9wdXQodm9pZCAqY2dzX2RldmljZSwgdW5z aWduZWQgY2xpZW50X2lkLAo+IC0JCQkgICAgICB1bnNpZ25lZCBzcmNfaWQsIHVuc2lnbmVkIHR5 cGUpCj4gLXsKPiAtCUNHU19GVU5DX0FERVY7Cj4gLQo+IC0JaWYgKCFhZGV2LT5pcnEuY2xpZW50 W2NsaWVudF9pZF0uc291cmNlcykKPiAtCQlyZXR1cm4gLUVJTlZBTDsKPiAtCj4gLQlyZXR1cm4g YW1kZ3B1X2lycV9wdXQoYWRldiwgYWRldi0+aXJxLmNsaWVudFtjbGllbnRfaWRdLnNvdXJjZXNb c3JjX2lkXSwgdHlwZSk7Cj4gLX0KPiAtCj4gICBzdGF0aWMgaW50IGFtZGdwdV9jZ3Nfc2V0X2Ns b2NrZ2F0aW5nX3N0YXRlKHN0cnVjdCBjZ3NfZGV2aWNlICpjZ3NfZGV2aWNlLAo+ICAgCQkJCSAg ZW51bSBhbWRfaXBfYmxvY2tfdHlwZSBibG9ja190eXBlLAo+ICAgCQkJCSAgZW51bSBhbWRfY2xv Y2tnYXRpbmdfc3RhdGUgc3RhdGUpCj4gQEAgLTc5MiwxMiArNjg4LDYgQEAgc3RhdGljIGludCBh bWRncHVfY2dzX25vdGlmeV9kcG1fZW5hYmxlZChzdHJ1Y3QgY2dzX2RldmljZSAqY2dzX2Rldmlj ZSwgYm9vbCBlbmEKPiAgIAkubG9ja19ncmJtX2lkeCA9IGFtZGdwdV9jZ3NfbG9ja19ncmJtX2lk eCwKPiAgIH07Cj4gICAKPiAtc3RhdGljIGNvbnN0IHN0cnVjdCBjZ3Nfb3Nfb3BzIGFtZGdwdV9j Z3Nfb3Nfb3BzID0gewo+IC0JLmFkZF9pcnFfc291cmNlID0gYW1kZ3B1X2Nnc19hZGRfaXJxX3Nv dXJjZSwKPiAtCS5pcnFfZ2V0ID0gYW1kZ3B1X2Nnc19pcnFfZ2V0LAo+IC0JLmlycV9wdXQgPSBh bWRncHVfY2dzX2lycV9wdXQKPiAtfTsKPiAtCj4gICBzdHJ1Y3QgY2dzX2RldmljZSAqYW1kZ3B1 X2Nnc19jcmVhdGVfZGV2aWNlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQo+ICAgewo+ICAg CXN0cnVjdCBhbWRncHVfY2dzX2RldmljZSAqY2dzX2RldmljZSA9Cj4gQEAgLTgwOSw3ICs2OTks NiBAQCBzdHJ1Y3QgY2dzX2RldmljZSAqYW1kZ3B1X2Nnc19jcmVhdGVfZGV2aWNlKHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2KQo+ICAgCX0KPiAgIAo+ICAgCWNnc19kZXZpY2UtPmJhc2Uub3Bz ID0gJmFtZGdwdV9jZ3Nfb3BzOwo+IC0JY2dzX2RldmljZS0+YmFzZS5vc19vcHMgPSAmYW1kZ3B1 X2Nnc19vc19vcHM7Cj4gICAJY2dzX2RldmljZS0+YWRldiA9IGFkZXY7Cj4gICAKPiAgIAlyZXR1 cm4gKHN0cnVjdCBjZ3NfZGV2aWNlICopY2dzX2RldmljZTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL29zX3R5cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2Rpc3BsYXkvZGMvb3NfdHlwZXMuaAo+IGluZGV4IDFmY2JjOTkuLmE0MDc4OTIgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL29zX3R5cGVzLmgKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvb3NfdHlwZXMuaAo+IEBAIC0zMiw3ICszMiw3 IEBACj4gICAKPiAgICNpbmNsdWRlIDxsaW51eC9rcmVmLmg+Cj4gICAKPiAtI2luY2x1ZGUgImNn c19saW51eC5oIgo+ICsjaW5jbHVkZSAiY2dzX2NvbW1vbi5oIgo+ICAgCj4gICAjaWYgZGVmaW5l ZChfX0JJR19FTkRJQU4pICYmICFkZWZpbmVkKEJJR0VORElBTl9DUFUpCj4gICAjZGVmaW5lIEJJ R0VORElBTl9DUFUKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2Nn c19jb21tb24uaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9jZ3NfY29tbW9uLmgKPiBp bmRleCA2ZmY4ZjM1Li5mMjgxNGFlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv aW5jbHVkZS9jZ3NfY29tbW9uLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUv Y2dzX2NvbW1vbi5oCj4gQEAgLTI5MCw3ICsyOTAsNiBAQCBzdHJ1Y3QgY2dzX29wcyB7Cj4gICBz dHJ1Y3QgY2dzX2RldmljZQo+ICAgewo+ICAgCWNvbnN0IHN0cnVjdCBjZ3Nfb3BzICpvcHM7Cj4g LQljb25zdCBzdHJ1Y3QgY2dzX29zX29wcyAqb3Nfb3BzOwo+ICAgCS8qIHRvIGJlIGVtYmVkZGVk IGF0IHRoZSBzdGFydCBvZiBkcml2ZXIgcHJpdmF0ZSBzdHJ1Y3R1cmUgKi8KPiAgIH07Cj4gICAK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2Nnc19saW51eC5oIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2Nnc19saW51eC5oCj4gZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0Cj4gaW5kZXggYmM3NDQ2Yy4uMDAwMDAwMAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvaW5jbHVkZS9jZ3NfbGludXguaAo+ICsrKyAvZGV2L251bGwKPiBAQCAtMSwxMTkgKzAs MCBAQAo+IC0vKgo+IC0gKiBDb3B5cmlnaHQgMjAxNSBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJ bmMuCj4gLSAqCj4gLSAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hh cmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCj4gLSAqIGNvcHkgb2YgdGhpcyBzb2Z0d2Fy ZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCj4g LSAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGlu ZyB3aXRob3V0IGxpbWl0YXRpb24KPiAtICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlm eSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCj4gLSAqIGFuZC9vciBz ZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9t IHRoZQo+IC0gKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhl IGZvbGxvd2luZyBjb25kaXRpb25zOgo+IC0gKgo+IC0gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5v dGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgo+IC0g KiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KPiAt ICoKPiAtICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFO VFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKPiAtICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBO T1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCj4gLSAqIEZJ VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBO TyBFVkVOVCBTSEFMTAo+IC0gKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBPUiBBVVRIT1IoUykg QkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKPiAtICogT1RIRVIgTElBQklMSVRZ LCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCj4g LSAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdB UkUgT1IgVEhFIFVTRSBPUgo+IC0gKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCj4g LSAqCj4gLSAqCj4gLSAqLwo+IC0jaWZuZGVmIF9DR1NfTElOVVhfSAo+IC0jZGVmaW5lIF9DR1Nf TElOVVhfSAo+IC0KPiAtI2luY2x1ZGUgImNnc19jb21tb24uaCIKPiAtCj4gLS8qKgo+IC0gKiBj Z3NfaXJxX3NvdXJjZV9zZXRfZnVuYygpIC0gQ2FsbGJhY2sgZm9yIGVuYWJsaW5nL2Rpc2FibGlu ZyBpbnRlcnJ1cHQgc291cmNlcwo+IC0gKiBAcHJpdmF0ZV9kYXRhOiAgcHJpdmF0ZSBkYXRhIHBy b3ZpZGVkIHRvIGNnc19hZGRfaXJxX3NvdXJjZQo+IC0gKiBAc3JjX2lkOiAgICAgICAgaW50ZXJy dXB0IHNvdXJjZSBJRAo+IC0gKiBAdHlwZTogICAgICAgICAgaW50ZXJydXB0IHR5cGUKPiAtICog QGVuYWJsZWQ6ICAgICAgIDAgPSBkaXNhYmxlIHNvdXJjZSwgbm9uLTAgPSBlbmFibGUgc291cmNl Cj4gLSAqCj4gLSAqIFJldHVybjogIDAgb24gc3VjY2VzcywgLWVycm5vIG90aGVyd2lzZQo+IC0g Ki8KPiAtdHlwZWRlZiBpbnQgKCpjZ3NfaXJxX3NvdXJjZV9zZXRfZnVuY190KSh2b2lkICpwcml2 YXRlX2RhdGEsCj4gLQkJCQkJIHVuc2lnbmVkIHNyY19pZCwgdW5zaWduZWQgdHlwZSwKPiAtCQkJ CQkgaW50IGVuYWJsZWQpOwo+IC0KPiAtLyoqCj4gLSAqIGNnc19pcnFfaGFuZGxlcl9mdW5jKCkg LSBJbnRlcnJ1cHQgaGFuZGxlciBjYWxsYmFjawo+IC0gKiBAcHJpdmF0ZV9kYXRhOiAgcHJpdmF0 ZSBkYXRhIHByb3ZpZGVkIHRvIGNnc19hZGRfaXJxX3NvdXJjZQo+IC0gKiBAc3JjX2lkOiAgICAg ICAgaW50ZXJydXB0IHNvdXJjZSBJRAo+IC0gKiBAaXZfZW50cnk6ICAgICAgcG9pbnRlciB0byBy YXcgaWggcmluZyBlbnRyeQo+IC0gKgo+IC0gKiBUaGlzIGNhbGxiYWNrIHJ1bnMgaW4gaW50ZXJy dXB0IGNvbnRleHQuCj4gLSAqCj4gLSAqIFJldHVybjogIDAgb24gc3VjY2VzcywgLWVycm5vIG90 aGVyd2lzZQo+IC0gKi8KPiAtdHlwZWRlZiBpbnQgKCpjZ3NfaXJxX2hhbmRsZXJfZnVuY190KSh2 b2lkICpwcml2YXRlX2RhdGEsCj4gLQkJCQkgICAgICB1bnNpZ25lZCBzcmNfaWQsIGNvbnN0IHVp bnQzMl90ICppdl9lbnRyeSk7Cj4gLQo+IC0vKioKPiAtICogY2dzX2FkZF9pcnFfc291cmNlKCkg LSBBZGQgYW4gSVJRIHNvdXJjZQo+IC0gKiBAY2dzX2RldmljZTogICAgb3BhcXVlIGRldmljZSBo YW5kbGUKPiAtICogQHNyY19pZDogICAgICAgIGludGVycnVwdCBzb3VyY2UgSUQKPiAtICogQG51 bV90eXBlczogICAgIG51bWJlciBvZiBpbnRlcnJ1cHQgdHlwZXMgdGhhdCBjYW4gYmUgaW5kZXBl bmRlbnRseSBlbmFibGVkCj4gLSAqIEBzZXQ6ICAgICAgICAgICBjYWxsYmFjayBmdW5jdGlvbiB0 byBlbmFibGUvZGlzYWJsZSBhbiBpbnRlcnJ1cHQgdHlwZQo+IC0gKiBAaGFuZGxlcjogICAgICAg aW50ZXJydXB0IGhhbmRsZXIgY2FsbGJhY2sKPiAtICogQHByaXZhdGVfZGF0YTogIHByaXZhdGUg ZGF0YSB0byBwYXNzIHRvIGNhbGxiYWNrIGZ1bmN0aW9ucwo+IC0gKgo+IC0gKiBUaGUgc2FtZSBJ UlEgc291cmNlIGNhbiBiZSBhZGRlZCBvbmx5IG9uY2UuIEFkZGluZyBhbiBJUlEgc291cmNlCj4g LSAqIGluZGljYXRlcyBvd25lcnNoaXAgb2YgdGhhdCBJUlEgc291cmNlIGFuZCBhbGwgaXRzIElS USB0eXBlcy4KPiAtICoKPiAtICogUmV0dXJuOiAgMCBvbiBzdWNjZXNzLCAtZXJybm8gb3RoZXJ3 aXNlCj4gLSAqLwo+IC10eXBlZGVmIGludCAoKmNnc19hZGRfaXJxX3NvdXJjZV90KSh2b2lkICpj Z3NfZGV2aWNlLCB1bnNpZ25lZCBjbGllbnRfaWQsCj4gLQkJCQkgICAgdW5zaWduZWQgc3JjX2lk LAo+IC0JCQkJICAgIHVuc2lnbmVkIG51bV90eXBlcywKPiAtCQkJCSAgICBjZ3NfaXJxX3NvdXJj ZV9zZXRfZnVuY190IHNldCwKPiAtCQkJCSAgICBjZ3NfaXJxX2hhbmRsZXJfZnVuY190IGhhbmRs ZXIsCj4gLQkJCQkgICAgdm9pZCAqcHJpdmF0ZV9kYXRhKTsKPiAtCj4gLS8qKgo+IC0gKiBjZ3Nf aXJxX2dldCgpIC0gUmVxdWVzdCBlbmFibGluZyBhbiBJUlEgc291cmNlIGFuZCB0eXBlCj4gLSAq IEBjZ3NfZGV2aWNlOiAgb3BhcXVlIGRldmljZSBoYW5kbGUKPiAtICogQHNyY19pZDogICAgICBp bnRlcnJ1cHQgc291cmNlIElECj4gLSAqIEB0eXBlOiAgICAgICAgaW50ZXJydXB0IHR5cGUKPiAt ICoKPiAtICogY2dzX2lycV9nZXQgYW5kIGNnc19pcnFfcHV0IGNhbGxzIG11c3QgYmUgYmFsYW5j ZWQuIFRoZXkgY291bnQKPiAtICogInJlZmVyZW5jZXMiIHRvIElSUSBzb3VyY2VzLgo+IC0gKgo+ IC0gKiBSZXR1cm46ICAwIG9uIHN1Y2Nlc3MsIC1lcnJubyBvdGhlcndpc2UKPiAtICovCj4gLXR5 cGVkZWYgaW50ICgqY2dzX2lycV9nZXRfdCkodm9pZCAqY2dzX2RldmljZSwgdW5zaWduZWQgY2xp ZW50X2lkLCB1bnNpZ25lZCBzcmNfaWQsIHVuc2lnbmVkIHR5cGUpOwo+IC0KPiAtLyoqCj4gLSAq IGNnc19pcnFfcHV0KCkgLSBJbmRpY2F0ZSBJUlEgc291cmNlIGlzIG5vIGxvbmdlciBuZWVkZWQK PiAtICogQGNnc19kZXZpY2U6ICBvcGFxdWUgZGV2aWNlIGhhbmRsZQo+IC0gKiBAc3JjX2lkOiAg ICAgIGludGVycnVwdCBzb3VyY2UgSUQKPiAtICogQHR5cGU6ICAgICAgICBpbnRlcnJ1cHQgdHlw ZQo+IC0gKgo+IC0gKiBjZ3NfaXJxX2dldCBhbmQgY2dzX2lycV9wdXQgY2FsbHMgbXVzdCBiZSBi YWxhbmNlZC4gVGhleSBjb3VudAo+IC0gKiAicmVmZXJlbmNlcyIgdG8gSVJRIHNvdXJjZXMuIEV2 ZW4gYWZ0ZXIgY2dzX2lycV9wdXQgaXMgY2FsbGVkLCB0aGUKPiAtICogSVJRIGhhbmRsZXIgbWF5 IHN0aWxsIGJlIGNhbGxlZCBpZiB0aGVyZSBhcmUgbW9yZSByZWZlY2VuY2VzIHRvCj4gLSAqIHRo ZSBJUlEgc291cmNlLgo+IC0gKgo+IC0gKiBSZXR1cm46ICAwIG9uIHN1Y2Nlc3MsIC1lcnJubyBv dGhlcndpc2UKPiAtICovCj4gLXR5cGVkZWYgaW50ICgqY2dzX2lycV9wdXRfdCkodm9pZCAqY2dz X2RldmljZSwgdW5zaWduZWQgY2xpZW50X2lkLCB1bnNpZ25lZCBzcmNfaWQsIHVuc2lnbmVkIHR5 cGUpOwo+IC0KPiAtc3RydWN0IGNnc19vc19vcHMgewo+IC0JLyogSVJRIGhhbmRsaW5nICovCj4g LQljZ3NfYWRkX2lycV9zb3VyY2VfdCBhZGRfaXJxX3NvdXJjZTsKPiAtCWNnc19pcnFfZ2V0X3Qg aXJxX2dldDsKPiAtCWNnc19pcnFfcHV0X3QgaXJxX3B1dDsKPiAtfTsKPiAtCj4gLSNkZWZpbmUg Y2dzX2FkZF9pcnFfc291cmNlKGRldixjbGllbnRfaWQsc3JjX2lkLG51bV90eXBlcyxzZXQsaGFu ZGxlcixwcml2YXRlX2RhdGEpIFwKPiAtCUNHU19PU19DQUxMKGFkZF9pcnFfc291cmNlLGRldixj bGllbnRfaWQsc3JjX2lkLG51bV90eXBlcyxzZXQsaGFuZGxlciwgXAo+IC0JCSAgICBwcml2YXRl X2RhdGEpCj4gLSNkZWZpbmUgY2dzX2lycV9nZXQoZGV2LGNsaWVudF9pZCxzcmNfaWQsdHlwZSkJ XAo+IC0JQ0dTX09TX0NBTEwoaXJxX2dldCxkZXYsY2xpZW50X2lkLHNyY19pZCx0eXBlKQo+IC0j ZGVmaW5lIGNnc19pcnFfcHV0KGRldixjbGllbnRfaWQsc3JjX2lkLHR5cGUpCVwKPiAtCUNHU19P U19DQUxMKGlycV9wdXQsZGV2LGNsaWVudF9pZCxzcmNfaWQsdHlwZSkKPiAtCj4gLSNlbmRpZiAv KiBfQ0dTX0xJTlVYX0ggKi8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dl cnBsYXkvaHdtZ3IvaHdtZ3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdy L2h3bWdyLmMKPiBpbmRleCAyMjkwMzAwLi5mYmNkZGE1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdyL2h3bWdyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vYW1kL3Bvd2VycGxheS9od21nci9od21nci5jCj4gQEAgLTU2LDUwICs1Niw2IEBACj4gICBz dGF0aWMgaW50IHRvcGF6X3NldF9hc2ljX3NwZWNpYWxfY2FwcyhzdHJ1Y3QgcHBfaHdtZ3IgKmh3 bWdyKTsKPiAgIHN0YXRpYyBpbnQgY2lfc2V0X2FzaWNfc3BlY2lhbF9jYXBzKHN0cnVjdCBwcF9o d21nciAqaHdtZ3IpOwo+ICAgCj4gLXN0YXRpYyBpbnQgcGhtX3RoZXJtYWxfbDJoX2lycSh2b2lk ICpwcml2YXRlX2RhdGEsCj4gLQkJIHVuc2lnbmVkIHNyY19pZCwgY29uc3QgdWludDMyX3QgKml2 X2VudHJ5KQo+IC17Cj4gLQlzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyID0gKHN0cnVjdCBwcF9od21n ciAqKXByaXZhdGVfZGF0YTsKPiAtCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gaHdtZ3It PmFkZXY7Cj4gLQo+IC0JcHJfd2FybigiR1BVIG92ZXIgdGVtcGVyYXR1cmUgcmFuZ2UgZGV0ZWN0 ZWQgb24gUENJZSAlZDolZC4lZCFcbiIsCj4gLQkJCVBDSV9CVVNfTlVNKGFkZXYtPnBkZXYtPmRl dmZuKSwKPiAtCQkJUENJX1NMT1QoYWRldi0+cGRldi0+ZGV2Zm4pLAo+IC0JCQlQQ0lfRlVOQyhh ZGV2LT5wZGV2LT5kZXZmbikpOwo+IC0JcmV0dXJuIDA7Cj4gLX0KPiAtCj4gLXN0YXRpYyBpbnQg cGhtX3RoZXJtYWxfaDJsX2lycSh2b2lkICpwcml2YXRlX2RhdGEsCj4gLQkJIHVuc2lnbmVkIHNy Y19pZCwgY29uc3QgdWludDMyX3QgKml2X2VudHJ5KQo+IC17Cj4gLQlzdHJ1Y3QgcHBfaHdtZ3Ig Kmh3bWdyID0gKHN0cnVjdCBwcF9od21nciAqKXByaXZhdGVfZGF0YTsKPiAtCXN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2ID0gaHdtZ3ItPmFkZXY7Cj4gLQo+IC0JcHJfd2FybigiR1BVIHVuZGVy IHRlbXBlcmF0dXJlIHJhbmdlIGRldGVjdGVkIG9uIFBDSWUgJWQ6JWQuJWQhXG4iLAo+IC0JCQlQ Q0lfQlVTX05VTShhZGV2LT5wZGV2LT5kZXZmbiksCj4gLQkJCVBDSV9TTE9UKGFkZXYtPnBkZXYt PmRldmZuKSwKPiAtCQkJUENJX0ZVTkMoYWRldi0+cGRldi0+ZGV2Zm4pKTsKPiAtCXJldHVybiAw Owo+IC19Cj4gLQo+IC1zdGF0aWMgaW50IHBobV9jdGZfaXJxKHZvaWQgKnByaXZhdGVfZGF0YSwK PiAtCQkgdW5zaWduZWQgc3JjX2lkLCBjb25zdCB1aW50MzJfdCAqaXZfZW50cnkpCj4gLXsKPiAt CXN0cnVjdCBwcF9od21nciAqaHdtZ3IgPSAoc3RydWN0IHBwX2h3bWdyICopcHJpdmF0ZV9kYXRh Owo+IC0Jc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBod21nci0+YWRldjsKPiAtCj4gLQlw cl93YXJuKCJHUFUgQ3JpdGljYWwgVGVtcGVyYXR1cmUgRmF1bHQgZGV0ZWN0ZWQgb24gUENJZSAl ZDolZC4lZCFcbiIsCj4gLQkJCVBDSV9CVVNfTlVNKGFkZXYtPnBkZXYtPmRldmZuKSwKPiAtCQkJ UENJX1NMT1QoYWRldi0+cGRldi0+ZGV2Zm4pLAo+IC0JCQlQQ0lfRlVOQyhhZGV2LT5wZGV2LT5k ZXZmbikpOwo+IC0JcmV0dXJuIDA7Cj4gLX0KPiAtCj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgY2dz X2lycV9zcmNfZnVuY3MgdGhlcm1hbF9pcnFfc3JjWzNdID0gewo+IC0JeyAuaGFuZGxlciA9IHBo bV90aGVybWFsX2wyaF9pcnEgfSwKPiAtCXsgLmhhbmRsZXIgPSBwaG1fdGhlcm1hbF9oMmxfaXJx IH0sCj4gLQl7IC5oYW5kbGVyID0gcGhtX2N0Zl9pcnEgfQo+IC19Owo+ICAgCj4gICBzdGF0aWMg dm9pZCBod21ncl9pbml0X3dvcmtsb2FkX3Byb3JpdHkoc3RydWN0IHBwX2h3bWdyICpod21ncikK PiAgIHsKPiBAQCAtMjQ0LDcgKzIwMCw3IEBAIGludCBod21ncl9od19pbml0KHN0cnVjdCBwcF9o d21nciAqaHdtZ3IpCj4gICAJaWYgKHJldCkKPiAgIAkJZ290byBlcnIyOwo+ICAgCj4gLQlyZXQg PSBwaG1fcmVnaXN0ZXJfdGhlcm1hbF9pbnRlcnJ1cHQoaHdtZ3IsICZ0aGVybWFsX2lycV9zcmMp Owo+ICsJcmV0ID0gcGhtX3JlZ2lzdGVyX3RoZXJtYWxfaW50ZXJydXB0KGh3bWdyLCBOVUxMKTsK PiAgIAlpZiAocmV0KQo+ICAgCQlnb3RvIGVycjI7Cj4gICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3Ivc211X2hlbHBlci5jIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3Ivc211X2hlbHBlci5jCj4gaW5kZXggZTExZGFmNS4uZGMx ZmUzYiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci9z bXVfaGVscGVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci9z bXVfaGVscGVyLmMKPiBAQCAtNTM0LDMgKzUzNCwzMSBAQCBpbnQgcGhtX2dldF92b2x0YWdlX2V2 dl9vbl9zY2xrKHN0cnVjdCBwcF9od21nciAqaHdtZ3IsIHVpbnQ4X3Qgdm9sdGFnZV90eXBlLAo+ ICAgfQo+ICAgCj4gICAKPiArZXh0ZXJuIGludCBwaG1faXJxX3Byb2Nlc3Moc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYsCj4gKwkJCSAgIHN0cnVjdCBhbWRncHVfaXJxX3NyYyAqc291cmNlLAo+ ICsJCQkgICBzdHJ1Y3QgYW1kZ3B1X2l2X2VudHJ5ICplbnRyeSkKPiArewo+ICsJdWludDMyX3Qg Y2xpZW50X2lkID0gZW50cnktPmNsaWVudF9pZDsKPiArCXVpbnQzMl90IHNyY19pZCA9IGVudHJ5 LT5zcmNfaWQ7Cj4gKwo+ICsJaWYgKGNsaWVudF9pZCA9PSBTT0MxNV9JSF9DTElFTlRJRF9USE0p IHsKPiArCQlpZiAoc3JjX2lkID09IDApCj4gKwkJCXByX3dhcm4oIkdQVSBvdmVyIHRlbXBlcmF0 dXJlIHJhbmdlIGRldGVjdGVkIG9uIFBDSWUgJWQ6JWQuJWQhXG4iLAo+ICsJCQkJCQlQQ0lfQlVT X05VTShhZGV2LT5wZGV2LT5kZXZmbiksCj4gKwkJCQkJCVBDSV9TTE9UKGFkZXYtPnBkZXYtPmRl dmZuKSwKPiArCQkJCQkJUENJX0ZVTkMoYWRldi0+cGRldi0+ZGV2Zm4pKTsKPiArCQllbHNlCj4g KwkJCXByX3dhcm4oIkdQVSB1bmRlciB0ZW1wZXJhdHVyZSByYW5nZSBkZXRlY3RlZCBvbiBQQ0ll ICVkOiVkLiVkIVxuIiwKPiArCQkJCQlQQ0lfQlVTX05VTShhZGV2LT5wZGV2LT5kZXZmbiksCj4g KwkJCQkJUENJX1NMT1QoYWRldi0+cGRldi0+ZGV2Zm4pLAo+ICsJCQkJCVBDSV9GVU5DKGFkZXYt PnBkZXYtPmRldmZuKSk7Cj4gKwl9Cj4gKwo+ICsJaWYgKGNsaWVudF9pZCA9PSBTT0MxNV9JSF9D TElFTlRJRF9ST01fU01VSU8pCj4gKwkJcHJfd2FybigiR1BVIENyaXRpY2FsIFRlbXBlcmF0dXJl IEZhdWx0IGRldGVjdGVkIG9uIFBDSWUgJWQ6JWQuJWQhXG4iLAo+ICsJCQkJUENJX0JVU19OVU0o YWRldi0+cGRldi0+ZGV2Zm4pLAo+ICsJCQkJUENJX1NMT1QoYWRldi0+cGRldi0+ZGV2Zm4pLAo+ ICsJCQkJUENJX0ZVTkMoYWRldi0+cGRldi0+ZGV2Zm4pKTsKPiArCj4gKwlyZXR1cm4gMDsKPiAr fQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci9zbXVf aGVscGVyLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci9zbXVfaGVscGVy LmgKPiBpbmRleCBhMWE0OTEzLi44ZTg0NzYwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvcG93ZXJwbGF5L2h3bWdyL3NtdV9oZWxwZXIuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvcG93ZXJwbGF5L2h3bWdyL3NtdV9oZWxwZXIuaAo+IEBAIC03Myw2ICs3MywxMSBAQCBl eHRlcm4gaW50IHBobV93YWl0X29uX2luZGlyZWN0X3JlZ2lzdGVyKHN0cnVjdCBwcF9od21nciAq aHdtZ3IsCj4gICAJCQkJdWludDMyX3QgdmFsdWUsCj4gICAJCQkJdWludDMyX3QgbWFzayk7Cj4g ICAKPiArZXh0ZXJuIGludCBwaG1faXJxX3Byb2Nlc3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYsCj4gKwkJCSAgIHN0cnVjdCBhbWRncHVfaXJxX3NyYyAqc291cmNlLAo+ICsJCQkgICBzdHJ1 Y3QgYW1kZ3B1X2l2X2VudHJ5ICplbnRyeSk7Cj4gKwo+ICsKPiAgICNkZWZpbmUgUEhNX0ZJRUxE X1NISUZUKHJlZywgZmllbGQpIHJlZyMjX18jI2ZpZWxkIyNfX1NISUZUCj4gICAjZGVmaW5lIFBI TV9GSUVMRF9NQVNLKHJlZywgZmllbGQpIHJlZyMjX18jI2ZpZWxkIyNfTUFTSwo+ICAgCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdyL3ZlZ2ExMF9od21n ci5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3IvdmVnYTEwX2h3bWdyLmMK PiBpbmRleCA1NTIxMTM3Li5mOWM5ZjQyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvcG93ZXJwbGF5L2h3bWdyL3ZlZ2ExMF9od21nci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9wb3dlcnBsYXkvaHdtZ3IvdmVnYTEwX2h3bWdyLmMKPiBAQCAtNDQsNyArNDQsNiBAQAo+ ICAgI2luY2x1ZGUgInZlZ2ExMF90aGVybWFsLmgiCj4gICAjaW5jbHVkZSAicHBfZGVidWcuaCIK PiAgICNpbmNsdWRlICJhbWRfcGNpZV9oZWxwZXJzLmgiCj4gLSNpbmNsdWRlICJjZ3NfbGludXgu aCIKPiAgICNpbmNsdWRlICJwcGludGVycnVwdC5oIgo+ICAgI2luY2x1ZGUgInBwX292ZXJkcml2 ZXIuaCIKPiAgICNpbmNsdWRlICJwcF90aGVybWFsLmgiCj4gQEAgLTQ4MTYsMzQgKzQ4MTUsNDEg QEAgc3RhdGljIGludCB2ZWdhMTBfZ2V0X3RoZXJtYWxfdGVtcGVyYXR1cmVfcmFuZ2Uoc3RydWN0 IHBwX2h3bWdyICpod21nciwKPiAgIAlyZXR1cm4gMDsKPiAgIH0KPiAgIAo+ICtzdGF0aWMgY29u c3Qgc3RydWN0IGFtZGdwdV9pcnFfc3JjX2Z1bmNzIHNtdTlfaXJxX2Z1bmNzID0gewo+ICsJLnBy b2Nlc3MgPSBwaG1faXJxX3Byb2Nlc3MsCj4gK307Cj4gKwo+ICAgc3RhdGljIGludCB2ZWdhMTBf cmVnaXN0ZXJfdGhlcm1hbF9pbnRlcnJ1cHQoc3RydWN0IHBwX2h3bWdyICpod21nciwKPiAgIAkJ Y29uc3Qgdm9pZCAqaW5mbykKPiAgIHsKPiAtCXN0cnVjdCBjZ3NfaXJxX3NyY19mdW5jcyAqaXJx X3NyYyA9Cj4gLQkJCShzdHJ1Y3QgY2dzX2lycV9zcmNfZnVuY3MgKilpbmZvOwo+ICsJc3RydWN0 IGFtZGdwdV9pcnFfc3JjICpzb3VyY2UgPQo+ICsJCWt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBhbWRn cHVfaXJxX3NyYyksIEdGUF9LRVJORUwpOwo+ICsKPiArCWlmICghc291cmNlKQo+ICsJCXJldHVy biAtRU5PTUVNOwo+ICsKPiArCXNvdXJjZS0+ZnVuY3MgPSAmc211OV9pcnFfZnVuY3M7Cj4gICAK PiAgIAlpZiAoaHdtZ3ItPnRoZXJtYWxfY29udHJvbGxlci51Y1R5cGUgPT0KPiAgIAkJCUFUT01f VkVHQTEwX1BQX1RIRVJNQUxDT05UUk9MTEVSX1ZFR0ExMCB8fAo+ICAgCQlod21nci0+dGhlcm1h bF9jb250cm9sbGVyLnVjVHlwZSA9PQo+ICAgCQkJQVRPTV9WRUdBMTBfUFBfVEhFUk1BTENPTlRS T0xMRVJfRU1DMjEwM19XSVRIX0lOVEVSTkFMKSB7Cj4gLQkJUFBfQVNTRVJUX1dJVEhfQ09ERSgh Y2dzX2FkZF9pcnFfc291cmNlKGh3bWdyLT5kZXZpY2UsCj4gKwo+ICsJCWFtZGdwdV9pcnFfYWRk X2lkKChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKShod21nci0+YWRldiksCj4gICAJCQkJU09DMTVf SUhfQ0xJRU5USURfVEhNLAo+IC0JCQkJMCwgMCwgaXJxX3NyY1swXS5zZXQsIGlycV9zcmNbMF0u aGFuZGxlciwgaHdtZ3IpLAo+IC0JCQkJIkZhaWxlZCB0byByZWdpc3RlciBoaWdoIHRoZXJtYWwg aW50ZXJydXB0ISIsCj4gLQkJCQlyZXR1cm4gLUVJTlZBTCk7Cj4gLQkJUFBfQVNTRVJUX1dJVEhf Q09ERSghY2dzX2FkZF9pcnFfc291cmNlKGh3bWdyLT5kZXZpY2UsCj4gKwkJCQkwLAo+ICsJCQkJ c291cmNlKTsKPiArCQlhbWRncHVfaXJxX2FkZF9pZCgoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiko aHdtZ3ItPmFkZXYpLAo+ICAgCQkJCVNPQzE1X0lIX0NMSUVOVElEX1RITSwKPiAtCQkJCTEsIDAs IGlycV9zcmNbMV0uc2V0LCBpcnFfc3JjWzFdLmhhbmRsZXIsIGh3bWdyKSwKPiAtCQkJCSJGYWls ZWQgdG8gcmVnaXN0ZXIgbG93IHRoZXJtYWwgaW50ZXJydXB0ISIsCj4gLQkJCQlyZXR1cm4gLUVJ TlZBTCk7Cj4gKwkJCQkxLAo+ICsJCQkJc291cmNlKTsKPiAgIAl9Cj4gICAKPiAgIAkvKiBSZWdp c3RlciBDVEYoR1BJT18xOSkgaW50ZXJydXB0ICovCj4gLQlQUF9BU1NFUlRfV0lUSF9DT0RFKCFj Z3NfYWRkX2lycV9zb3VyY2UoaHdtZ3ItPmRldmljZSwKPiArCWFtZGdwdV9pcnFfYWRkX2lkKChz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqKShod21nci0+YWRldiksCj4gICAJCQlTT0MxNV9JSF9DTElF TlRJRF9ST01fU01VSU8sCj4gLQkJCTgzLCAwLCBpcnFfc3JjWzJdLnNldCwgaXJxX3NyY1syXS5o YW5kbGVyLCBod21nciksCj4gLQkJCSJGYWlsZWQgdG8gcmVnaXN0ZXIgQ1RGIHRoZXJtYWwgaW50 ZXJydXB0ISIsCj4gLQkJCXJldHVybiAtRUlOVkFMKTsKPiArCQkJODMsCj4gKwkJCXNvdXJjZSk7 Cj4gICAKPiAgIAlyZXR1cm4gMDsKPiAgIH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2FtZC9wb3dlcnBsYXkvaW5jL2h3bWdyLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxh eS9pbmMvaHdtZ3IuaAo+IGluZGV4IDg1YjQ2YWQuLjI2Njc3NzUgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaW5jL2h3bWdyLmgKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL3Bvd2VycGxheS9pbmMvaHdtZ3IuaAo+IEBAIC03NjQsMTEgKzc2NCw2IEBAIHN0 cnVjdCBwcF9od21nciB7Cj4gICAJdWludDMyX3Qgd29ya2xvYWRfc2V0dGluZ1tXb3JrbG9hZF9Q b2xpY3lfTWF4XTsKPiAgIH07Cj4gICAKPiAtc3RydWN0IGNnc19pcnFfc3JjX2Z1bmNzIHsKPiAt CWNnc19pcnFfc291cmNlX3NldF9mdW5jX3Qgc2V0Owo+IC0JY2dzX2lycV9oYW5kbGVyX2Z1bmNf dCBoYW5kbGVyOwo+IC19Owo+IC0KPiAgIGV4dGVybiBpbnQgaHdtZ3JfZWFybHlfaW5pdChzdHJ1 Y3QgcHBfaHdtZ3IgKmh3bWdyKTsKPiAgIGV4dGVybiBpbnQgaHdtZ3JfaHdfaW5pdChzdHJ1Y3Qg cHBfaHdtZ3IgKmh3bWdyKTsKPiAgIGV4dGVybiBpbnQgaHdtZ3JfaHdfZmluaShzdHJ1Y3QgcHBf aHdtZ3IgKmh3bWdyKTsKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo=