From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zhang, Jerry (Junwei)" Subject: Re: [PATCH] drm/amdgpu: Remove wrapper layer of cgs irq handling Date: Wed, 21 Mar 2018 09:48:48 +0800 Message-ID: <5AB1BA00.3000004@amd.com> References: <1521545159-17550-1-git-send-email-Rex.Zhu@amd.com> 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> 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 Ck9uIDAzLzIwLzIwMTggMDc6MjUgUE0sIFJleCBaaHUgd3JvdGU6Cj4gMS4gcmVtb3ZlIHN0cnVj dCBjZ3Nfb3Nfb3BzCj4gMi4gZGVsZXRlIGNnc19saW51eC5oCj4gMy4gcmVmaW5lIHRoZSBpcnEg Y29kZSBmb3IgdmVnYTEwCj4KPiBDaGFuZ2UtSWQ6IEkxYjFiNTZjMzg1OTZlNjMyZmU2MjdjNDM2 YTUwNzJhZTViMzU5YjhjCj4gU2lnbmVkLW9mZi1ieTogUmV4IFpodSA8UmV4LlpodUBhbWQuY29t PgoKQWNrZWQtYnk6IEp1bndlaSBaaGFuZyA8SmVycnkuWmhhbmdAYW1kLmNvbT4KCk5pY2UgdG8g c2VlIHRoYXQKCkplcnJ5Cgo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hY3AvaW5jbHVk ZS9hY3BfZ2Z4X2lmLmggICAgICAgfCAgIDEgLQo+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X2Nncy5jICAgICAgICAgICAgfCAxMTEgLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICAg ZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL29zX3R5cGVzLmggICAgICAgICAgfCAgIDIg Ky0KPiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9jZ3NfY29tbW9uLmggICAgICAgICAg IHwgICAxIC0KPiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9jZ3NfbGludXguaCAgICAg ICAgICAgIHwgMTE5IC0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2Ft ZC9wb3dlcnBsYXkvaHdtZ3IvaHdtZ3IuYyAgICAgICAgfCAgNDYgKy0tLS0tLS0KPiAgIGRyaXZl cnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdyL3NtdV9oZWxwZXIuYyAgIHwgIDI4ICsrKysr Cj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci9zbXVfaGVscGVyLmggICB8 ICAgNSArCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci92ZWdhMTBfaHdt Z3IuYyB8ICAzNiArKysrLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9pbmMv aHdtZ3IuaCAgICAgICAgICB8ICAgNSAtCj4gICAxMCBmaWxlcyBjaGFuZ2VkLCA1NiBpbnNlcnRp b25zKCspLCAyOTggZGVsZXRpb25zKC0pCj4gICBkZWxldGUgbW9kZSAxMDA2NDQgZHJpdmVycy9n cHUvZHJtL2FtZC9pbmNsdWRlL2Nnc19saW51eC5oCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hY3AvaW5jbHVkZS9hY3BfZ2Z4X2lmLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2FjcC9pbmNsdWRlL2FjcF9nZnhfaWYuaAo+IGluZGV4IGE3MmRkYjJmLi5mZWFiOGViIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYWNwL2luY2x1ZGUvYWNwX2dmeF9pZi5oCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hY3AvaW5jbHVkZS9hY3BfZ2Z4X2lmLmgKPiBAQCAt MjUsNyArMjUsNiBAQAo+ICAgI2RlZmluZSBfQUNQX0dGWF9JRl9ICj4KPiAgICNpbmNsdWRlIDxs aW51eC90eXBlcy5oPgo+IC0jaW5jbHVkZSAiY2dzX2xpbnV4LmgiCj4gICAjaW5jbHVkZSAiY2dz X2NvbW1vbi5oIgo+Cj4gICBpbnQgYW1kX2FjcF9od19pbml0KHN0cnVjdCBjZ3NfZGV2aWNlICpj Z3NfZGV2aWNlLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfY2dzLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY2dzLmMKPiBpbmRl eCA1YjM3YzFhLi4wZjJiMzc2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV9jZ3MuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV9jZ3MuYwo+IEBAIC0yOCw3ICsyOCw2IEBACj4gICAjaW5jbHVkZSA8bGludXgvZmlybXdhcmUu aD4KPiAgICNpbmNsdWRlIDxkcm0vYW1kZ3B1X2RybS5oPgo+ICAgI2luY2x1ZGUgImFtZGdwdS5o Igo+IC0jaW5jbHVkZSAiY2dzX2xpbnV4LmgiCj4gICAjaW5jbHVkZSAiYXRvbS5oIgo+ICAgI2lu Y2x1ZGUgImFtZGdwdV91Y29kZS5oIgo+Cj4gQEAgLTE4MiwxMDkgKzE4MSw2IEBAIHN0YXRpYyBp bnQgYW1kZ3B1X2Nnc19hdG9tX2V4ZWNfY21kX3RhYmxlKHN0cnVjdCBjZ3NfZGV2aWNlICpjZ3Nf ZGV2aWNlLCB1bnNpZ25lCj4gICAJCWFkZXYtPm1vZGVfaW5mby5hdG9tX2NvbnRleHQsIHRhYmxl LCBhcmdzKTsKPiAgIH0KPgo+IC1zdHJ1Y3QgY2dzX2lycV9wYXJhbXMgewo+IC0JdW5zaWduZWQg c3JjX2lkOwo+IC0JY2dzX2lycV9zb3VyY2Vfc2V0X2Z1bmNfdCBzZXQ7Cj4gLQljZ3NfaXJxX2hh bmRsZXJfZnVuY190IGhhbmRsZXI7Cj4gLQl2b2lkICpwcml2YXRlX2RhdGE7Cj4gLX07Cj4gLQo+ IC1zdGF0aWMgaW50IGNnc19zZXRfaXJxX3N0YXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 LAo+IC0JCQkgICAgIHN0cnVjdCBhbWRncHVfaXJxX3NyYyAqc3JjLAo+IC0JCQkgICAgIHVuc2ln bmVkIHR5cGUsCj4gLQkJCSAgICAgZW51bSBhbWRncHVfaW50ZXJydXB0X3N0YXRlIHN0YXRlKQo+ IC17Cj4gLQlzdHJ1Y3QgY2dzX2lycV9wYXJhbXMgKmlycV9wYXJhbXMgPQo+IC0JCShzdHJ1Y3Qg Y2dzX2lycV9wYXJhbXMgKilzcmMtPmRhdGE7Cj4gLQlpZiAoIWlycV9wYXJhbXMpCj4gLQkJcmV0 dXJuIC1FSU5WQUw7Cj4gLQlpZiAoIWlycV9wYXJhbXMtPnNldCkKPiAtCQlyZXR1cm4gLUVJTlZB TDsKPiAtCXJldHVybiBpcnFfcGFyYW1zLT5zZXQoaXJxX3BhcmFtcy0+cHJpdmF0ZV9kYXRhLAo+ IC0JCQkgICAgICAgaXJxX3BhcmFtcy0+c3JjX2lkLAo+IC0JCQkgICAgICAgdHlwZSwKPiAtCQkJ ICAgICAgIChpbnQpc3RhdGUpOwo+IC19Cj4gLQo+IC1zdGF0aWMgaW50IGNnc19wcm9jZXNzX2ly cShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKPiAtCQkJICAgc3RydWN0IGFtZGdwdV9pcnFf c3JjICpzb3VyY2UsCj4gLQkJCSAgIHN0cnVjdCBhbWRncHVfaXZfZW50cnkgKmVudHJ5KQo+IC17 Cj4gLQlzdHJ1Y3QgY2dzX2lycV9wYXJhbXMgKmlycV9wYXJhbXMgPQo+IC0JCShzdHJ1Y3QgY2dz X2lycV9wYXJhbXMgKilzb3VyY2UtPmRhdGE7Cj4gLQlpZiAoIWlycV9wYXJhbXMpCj4gLQkJcmV0 dXJuIC1FSU5WQUw7Cj4gLQlpZiAoIWlycV9wYXJhbXMtPmhhbmRsZXIpCj4gLQkJcmV0dXJuIC1F SU5WQUw7Cj4gLQlyZXR1cm4gaXJxX3BhcmFtcy0+aGFuZGxlcihpcnFfcGFyYW1zLT5wcml2YXRl X2RhdGEsCj4gLQkJCQkgICBpcnFfcGFyYW1zLT5zcmNfaWQsCj4gLQkJCQkgICBlbnRyeS0+aXZf ZW50cnkpOwo+IC19Cj4gLQo+IC1zdGF0aWMgY29uc3Qgc3RydWN0IGFtZGdwdV9pcnFfc3JjX2Z1 bmNzIGNnc19pcnFfZnVuY3MgPSB7Cj4gLQkuc2V0ID0gY2dzX3NldF9pcnFfc3RhdGUsCj4gLQku cHJvY2VzcyA9IGNnc19wcm9jZXNzX2lycSwKPiAtfTsKPiAtCj4gLXN0YXRpYyBpbnQgYW1kZ3B1 X2Nnc19hZGRfaXJxX3NvdXJjZSh2b2lkICpjZ3NfZGV2aWNlLAo+IC0JCQkJICAgICB1bnNpZ25l ZCBjbGllbnRfaWQsCj4gLQkJCQkgICAgIHVuc2lnbmVkIHNyY19pZCwKPiAtCQkJCSAgICAgdW5z aWduZWQgbnVtX3R5cGVzLAo+IC0JCQkJICAgICBjZ3NfaXJxX3NvdXJjZV9zZXRfZnVuY190IHNl dCwKPiAtCQkJCSAgICAgY2dzX2lycV9oYW5kbGVyX2Z1bmNfdCBoYW5kbGVyLAo+IC0JCQkJICAg ICB2b2lkICpwcml2YXRlX2RhdGEpCj4gLXsKPiAtCUNHU19GVU5DX0FERVY7Cj4gLQlpbnQgcmV0 ID0gMDsKPiAtCXN0cnVjdCBjZ3NfaXJxX3BhcmFtcyAqaXJxX3BhcmFtczsKPiAtCXN0cnVjdCBh bWRncHVfaXJxX3NyYyAqc291cmNlID0KPiAtCQlremFsbG9jKHNpemVvZihzdHJ1Y3QgYW1kZ3B1 X2lycV9zcmMpLCBHRlBfS0VSTkVMKTsKPiAtCWlmICghc291cmNlKQo+IC0JCXJldHVybiAtRU5P TUVNOwo+IC0JaXJxX3BhcmFtcyA9Cj4gLQkJa3phbGxvYyhzaXplb2Yoc3RydWN0IGNnc19pcnFf cGFyYW1zKSwgR0ZQX0tFUk5FTCk7Cj4gLQlpZiAoIWlycV9wYXJhbXMpIHsKPiAtCQlrZnJlZShz b3VyY2UpOwo+IC0JCXJldHVybiAtRU5PTUVNOwo+IC0JfQo+IC0Jc291cmNlLT5udW1fdHlwZXMg PSBudW1fdHlwZXM7Cj4gLQlzb3VyY2UtPmZ1bmNzID0gJmNnc19pcnFfZnVuY3M7Cj4gLQlpcnFf cGFyYW1zLT5zcmNfaWQgPSBzcmNfaWQ7Cj4gLQlpcnFfcGFyYW1zLT5zZXQgPSBzZXQ7Cj4gLQlp cnFfcGFyYW1zLT5oYW5kbGVyID0gaGFuZGxlcjsKPiAtCWlycV9wYXJhbXMtPnByaXZhdGVfZGF0 YSA9IHByaXZhdGVfZGF0YTsKPiAtCXNvdXJjZS0+ZGF0YSA9ICh2b2lkICopaXJxX3BhcmFtczsK PiAtCXJldCA9IGFtZGdwdV9pcnFfYWRkX2lkKGFkZXYsIGNsaWVudF9pZCwgc3JjX2lkLCBzb3Vy Y2UpOwo+IC0JaWYgKHJldCkgewo+IC0JCWtmcmVlKGlycV9wYXJhbXMpOwo+IC0JCWtmcmVlKHNv dXJjZSk7Cj4gLQl9Cj4gLQo+IC0JcmV0dXJuIHJldDsKPiAtfQo+IC0KPiAtc3RhdGljIGludCBh bWRncHVfY2dzX2lycV9nZXQodm9pZCAqY2dzX2RldmljZSwgdW5zaWduZWQgY2xpZW50X2lkLAo+ IC0JCQkgICAgICB1bnNpZ25lZCBzcmNfaWQsIHVuc2lnbmVkIHR5cGUpCj4gLXsKPiAtCUNHU19G VU5DX0FERVY7Cj4gLQo+IC0JaWYgKCFhZGV2LT5pcnEuY2xpZW50W2NsaWVudF9pZF0uc291cmNl cykKPiAtCQlyZXR1cm4gLUVJTlZBTDsKPiAtCj4gLQlyZXR1cm4gYW1kZ3B1X2lycV9nZXQoYWRl diwgYWRldi0+aXJxLmNsaWVudFtjbGllbnRfaWRdLnNvdXJjZXNbc3JjX2lkXSwgdHlwZSk7Cj4g LX0KPiAtCj4gLXN0YXRpYyBpbnQgYW1kZ3B1X2Nnc19pcnFfcHV0KHZvaWQgKmNnc19kZXZpY2Us IHVuc2lnbmVkIGNsaWVudF9pZCwKPiAtCQkJICAgICAgdW5zaWduZWQgc3JjX2lkLCB1bnNpZ25l ZCB0eXBlKQo+IC17Cj4gLQlDR1NfRlVOQ19BREVWOwo+IC0KPiAtCWlmICghYWRldi0+aXJxLmNs aWVudFtjbGllbnRfaWRdLnNvdXJjZXMpCj4gLQkJcmV0dXJuIC1FSU5WQUw7Cj4gLQo+IC0JcmV0 dXJuIGFtZGdwdV9pcnFfcHV0KGFkZXYsIGFkZXYtPmlycS5jbGllbnRbY2xpZW50X2lkXS5zb3Vy Y2VzW3NyY19pZF0sIHR5cGUpOwo+IC19Cj4gLQo+ICAgc3RhdGljIGludCBhbWRncHVfY2dzX3Nl dF9jbG9ja2dhdGluZ19zdGF0ZShzdHJ1Y3QgY2dzX2RldmljZSAqY2dzX2RldmljZSwKPiAgIAkJ CQkgIGVudW0gYW1kX2lwX2Jsb2NrX3R5cGUgYmxvY2tfdHlwZSwKPiAgIAkJCQkgIGVudW0gYW1k X2Nsb2NrZ2F0aW5nX3N0YXRlIHN0YXRlKQo+IEBAIC03OTIsMTIgKzY4OCw2IEBAIHN0YXRpYyBp bnQgYW1kZ3B1X2Nnc19ub3RpZnlfZHBtX2VuYWJsZWQoc3RydWN0IGNnc19kZXZpY2UgKmNnc19k ZXZpY2UsIGJvb2wgZW5hCj4gICAJLmxvY2tfZ3JibV9pZHggPSBhbWRncHVfY2dzX2xvY2tfZ3Ji bV9pZHgsCj4gICB9Owo+Cj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgY2dzX29zX29wcyBhbWRncHVf Y2dzX29zX29wcyA9IHsKPiAtCS5hZGRfaXJxX3NvdXJjZSA9IGFtZGdwdV9jZ3NfYWRkX2lycV9z b3VyY2UsCj4gLQkuaXJxX2dldCA9IGFtZGdwdV9jZ3NfaXJxX2dldCwKPiAtCS5pcnFfcHV0ID0g YW1kZ3B1X2Nnc19pcnFfcHV0Cj4gLX07Cj4gLQo+ICAgc3RydWN0IGNnc19kZXZpY2UgKmFtZGdw dV9jZ3NfY3JlYXRlX2RldmljZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKPiAgIHsKPiAg IAlzdHJ1Y3QgYW1kZ3B1X2Nnc19kZXZpY2UgKmNnc19kZXZpY2UgPQo+IEBAIC04MDksNyArNjk5 LDYgQEAgc3RydWN0IGNnc19kZXZpY2UgKmFtZGdwdV9jZ3NfY3JlYXRlX2RldmljZShzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldikKPiAgIAl9Cj4KPiAgIAljZ3NfZGV2aWNlLT5iYXNlLm9wcyA9 ICZhbWRncHVfY2dzX29wczsKPiAtCWNnc19kZXZpY2UtPmJhc2Uub3Nfb3BzID0gJmFtZGdwdV9j Z3Nfb3Nfb3BzOwo+ICAgCWNnc19kZXZpY2UtPmFkZXYgPSBhZGV2Owo+Cj4gICAJcmV0dXJuIChz dHJ1Y3QgY2dzX2RldmljZSAqKWNnc19kZXZpY2U7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvZGlzcGxheS9kYy9vc190eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNw bGF5L2RjL29zX3R5cGVzLmgKPiBpbmRleCAxZmNiYzk5Li5hNDA3ODkyIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9vc190eXBlcy5oCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL29zX3R5cGVzLmgKPiBAQCAtMzIsNyArMzIsNyBAQAo+ Cj4gICAjaW5jbHVkZSA8bGludXgva3JlZi5oPgo+Cj4gLSNpbmNsdWRlICJjZ3NfbGludXguaCIK PiArI2luY2x1ZGUgImNnc19jb21tb24uaCIKPgo+ICAgI2lmIGRlZmluZWQoX19CSUdfRU5ESUFO KSAmJiAhZGVmaW5lZChCSUdFTkRJQU5fQ1BVKQo+ICAgI2RlZmluZSBCSUdFTkRJQU5fQ1BVCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9jZ3NfY29tbW9uLmggYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvY2dzX2NvbW1vbi5oCj4gaW5kZXggNmZmOGYzNS4u ZjI4MTRhZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvY2dzX2Nv bW1vbi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2Nnc19jb21tb24uaAo+ IEBAIC0yOTAsNyArMjkwLDYgQEAgc3RydWN0IGNnc19vcHMgewo+ICAgc3RydWN0IGNnc19kZXZp Y2UKPiAgIHsKPiAgIAljb25zdCBzdHJ1Y3QgY2dzX29wcyAqb3BzOwo+IC0JY29uc3Qgc3RydWN0 IGNnc19vc19vcHMgKm9zX29wczsKPiAgIAkvKiB0byBiZSBlbWJlZGRlZCBhdCB0aGUgc3RhcnQg b2YgZHJpdmVyIHByaXZhdGUgc3RydWN0dXJlICovCj4gICB9Owo+Cj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9jZ3NfbGludXguaCBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvaW5jbHVkZS9jZ3NfbGludXguaAo+IGRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4 IGJjNzQ0NmMuLjAwMDAwMDAKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvY2dz X2xpbnV4LmgKPiArKysgL2Rldi9udWxsCj4gQEAgLTEsMTE5ICswLDAgQEAKPiAtLyoKPiAtICog Q29weXJpZ2h0IDIwMTUgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgo+IC0gKgo+IC0gKiBQ ZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNv biBvYnRhaW5pbmcgYQo+IC0gKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQg ZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAo+IC0gKiB0byBkZWFsIGluIHRo ZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0 aW9uCj4gLSAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNo LCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAo+IC0gKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhl IFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKPiAtICogU29mdHdh cmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0 aW9uczoKPiAtICoKPiAtICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVy bWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KPiAtICogYWxsIGNvcGllcyBvciBz dWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCj4gLSAqCj4gLSAqIFRIRSBTT0ZU V0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBF WFBSRVNTIE9SCj4gLSAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhF IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAo+IC0gKiBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKPiAt ICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgT1IgQVVUSE9SKFMpIEJFIExJQUJMRSBGT1IgQU5Z IENMQUlNLCBEQU1BR0VTIE9SCj4gLSAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBB Q1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAo+IC0gKiBBUklTSU5HIEZST00s IE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IK PiAtICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgo+IC0gKgo+IC0gKgo+IC0gKi8K PiAtI2lmbmRlZiBfQ0dTX0xJTlVYX0gKPiAtI2RlZmluZSBfQ0dTX0xJTlVYX0gKPiAtCj4gLSNp bmNsdWRlICJjZ3NfY29tbW9uLmgiCj4gLQo+IC0vKioKPiAtICogY2dzX2lycV9zb3VyY2Vfc2V0 X2Z1bmMoKSAtIENhbGxiYWNrIGZvciBlbmFibGluZy9kaXNhYmxpbmcgaW50ZXJydXB0IHNvdXJj ZXMKPiAtICogQHByaXZhdGVfZGF0YTogIHByaXZhdGUgZGF0YSBwcm92aWRlZCB0byBjZ3NfYWRk X2lycV9zb3VyY2UKPiAtICogQHNyY19pZDogICAgICAgIGludGVycnVwdCBzb3VyY2UgSUQKPiAt ICogQHR5cGU6ICAgICAgICAgIGludGVycnVwdCB0eXBlCj4gLSAqIEBlbmFibGVkOiAgICAgICAw ID0gZGlzYWJsZSBzb3VyY2UsIG5vbi0wID0gZW5hYmxlIHNvdXJjZQo+IC0gKgo+IC0gKiBSZXR1 cm46ICAwIG9uIHN1Y2Nlc3MsIC1lcnJubyBvdGhlcndpc2UKPiAtICovCj4gLXR5cGVkZWYgaW50 ICgqY2dzX2lycV9zb3VyY2Vfc2V0X2Z1bmNfdCkodm9pZCAqcHJpdmF0ZV9kYXRhLAo+IC0JCQkJ CSB1bnNpZ25lZCBzcmNfaWQsIHVuc2lnbmVkIHR5cGUsCj4gLQkJCQkJIGludCBlbmFibGVkKTsK PiAtCj4gLS8qKgo+IC0gKiBjZ3NfaXJxX2hhbmRsZXJfZnVuYygpIC0gSW50ZXJydXB0IGhhbmRs ZXIgY2FsbGJhY2sKPiAtICogQHByaXZhdGVfZGF0YTogIHByaXZhdGUgZGF0YSBwcm92aWRlZCB0 byBjZ3NfYWRkX2lycV9zb3VyY2UKPiAtICogQHNyY19pZDogICAgICAgIGludGVycnVwdCBzb3Vy Y2UgSUQKPiAtICogQGl2X2VudHJ5OiAgICAgIHBvaW50ZXIgdG8gcmF3IGloIHJpbmcgZW50cnkK PiAtICoKPiAtICogVGhpcyBjYWxsYmFjayBydW5zIGluIGludGVycnVwdCBjb250ZXh0Lgo+IC0g Kgo+IC0gKiBSZXR1cm46ICAwIG9uIHN1Y2Nlc3MsIC1lcnJubyBvdGhlcndpc2UKPiAtICovCj4g LXR5cGVkZWYgaW50ICgqY2dzX2lycV9oYW5kbGVyX2Z1bmNfdCkodm9pZCAqcHJpdmF0ZV9kYXRh LAo+IC0JCQkJICAgICAgdW5zaWduZWQgc3JjX2lkLCBjb25zdCB1aW50MzJfdCAqaXZfZW50cnkp Owo+IC0KPiAtLyoqCj4gLSAqIGNnc19hZGRfaXJxX3NvdXJjZSgpIC0gQWRkIGFuIElSUSBzb3Vy Y2UKPiAtICogQGNnc19kZXZpY2U6ICAgIG9wYXF1ZSBkZXZpY2UgaGFuZGxlCj4gLSAqIEBzcmNf aWQ6ICAgICAgICBpbnRlcnJ1cHQgc291cmNlIElECj4gLSAqIEBudW1fdHlwZXM6ICAgICBudW1i ZXIgb2YgaW50ZXJydXB0IHR5cGVzIHRoYXQgY2FuIGJlIGluZGVwZW5kZW50bHkgZW5hYmxlZAo+ IC0gKiBAc2V0OiAgICAgICAgICAgY2FsbGJhY2sgZnVuY3Rpb24gdG8gZW5hYmxlL2Rpc2FibGUg YW4gaW50ZXJydXB0IHR5cGUKPiAtICogQGhhbmRsZXI6ICAgICAgIGludGVycnVwdCBoYW5kbGVy IGNhbGxiYWNrCj4gLSAqIEBwcml2YXRlX2RhdGE6ICBwcml2YXRlIGRhdGEgdG8gcGFzcyB0byBj YWxsYmFjayBmdW5jdGlvbnMKPiAtICoKPiAtICogVGhlIHNhbWUgSVJRIHNvdXJjZSBjYW4gYmUg YWRkZWQgb25seSBvbmNlLiBBZGRpbmcgYW4gSVJRIHNvdXJjZQo+IC0gKiBpbmRpY2F0ZXMgb3du ZXJzaGlwIG9mIHRoYXQgSVJRIHNvdXJjZSBhbmQgYWxsIGl0cyBJUlEgdHlwZXMuCj4gLSAqCj4g LSAqIFJldHVybjogIDAgb24gc3VjY2VzcywgLWVycm5vIG90aGVyd2lzZQo+IC0gKi8KPiAtdHlw ZWRlZiBpbnQgKCpjZ3NfYWRkX2lycV9zb3VyY2VfdCkodm9pZCAqY2dzX2RldmljZSwgdW5zaWdu ZWQgY2xpZW50X2lkLAo+IC0JCQkJICAgIHVuc2lnbmVkIHNyY19pZCwKPiAtCQkJCSAgICB1bnNp Z25lZCBudW1fdHlwZXMsCj4gLQkJCQkgICAgY2dzX2lycV9zb3VyY2Vfc2V0X2Z1bmNfdCBzZXQs Cj4gLQkJCQkgICAgY2dzX2lycV9oYW5kbGVyX2Z1bmNfdCBoYW5kbGVyLAo+IC0JCQkJICAgIHZv aWQgKnByaXZhdGVfZGF0YSk7Cj4gLQo+IC0vKioKPiAtICogY2dzX2lycV9nZXQoKSAtIFJlcXVl c3QgZW5hYmxpbmcgYW4gSVJRIHNvdXJjZSBhbmQgdHlwZQo+IC0gKiBAY2dzX2RldmljZTogIG9w YXF1ZSBkZXZpY2UgaGFuZGxlCj4gLSAqIEBzcmNfaWQ6ICAgICAgaW50ZXJydXB0IHNvdXJjZSBJ RAo+IC0gKiBAdHlwZTogICAgICAgIGludGVycnVwdCB0eXBlCj4gLSAqCj4gLSAqIGNnc19pcnFf Z2V0IGFuZCBjZ3NfaXJxX3B1dCBjYWxscyBtdXN0IGJlIGJhbGFuY2VkLiBUaGV5IGNvdW50Cj4g LSAqICJyZWZlcmVuY2VzIiB0byBJUlEgc291cmNlcy4KPiAtICoKPiAtICogUmV0dXJuOiAgMCBv biBzdWNjZXNzLCAtZXJybm8gb3RoZXJ3aXNlCj4gLSAqLwo+IC10eXBlZGVmIGludCAoKmNnc19p cnFfZ2V0X3QpKHZvaWQgKmNnc19kZXZpY2UsIHVuc2lnbmVkIGNsaWVudF9pZCwgdW5zaWduZWQg c3JjX2lkLCB1bnNpZ25lZCB0eXBlKTsKPiAtCj4gLS8qKgo+IC0gKiBjZ3NfaXJxX3B1dCgpIC0g SW5kaWNhdGUgSVJRIHNvdXJjZSBpcyBubyBsb25nZXIgbmVlZGVkCj4gLSAqIEBjZ3NfZGV2aWNl OiAgb3BhcXVlIGRldmljZSBoYW5kbGUKPiAtICogQHNyY19pZDogICAgICBpbnRlcnJ1cHQgc291 cmNlIElECj4gLSAqIEB0eXBlOiAgICAgICAgaW50ZXJydXB0IHR5cGUKPiAtICoKPiAtICogY2dz X2lycV9nZXQgYW5kIGNnc19pcnFfcHV0IGNhbGxzIG11c3QgYmUgYmFsYW5jZWQuIFRoZXkgY291 bnQKPiAtICogInJlZmVyZW5jZXMiIHRvIElSUSBzb3VyY2VzLiBFdmVuIGFmdGVyIGNnc19pcnFf cHV0IGlzIGNhbGxlZCwgdGhlCj4gLSAqIElSUSBoYW5kbGVyIG1heSBzdGlsbCBiZSBjYWxsZWQg aWYgdGhlcmUgYXJlIG1vcmUgcmVmZWNlbmNlcyB0bwo+IC0gKiB0aGUgSVJRIHNvdXJjZS4KPiAt ICoKPiAtICogUmV0dXJuOiAgMCBvbiBzdWNjZXNzLCAtZXJybm8gb3RoZXJ3aXNlCj4gLSAqLwo+ IC10eXBlZGVmIGludCAoKmNnc19pcnFfcHV0X3QpKHZvaWQgKmNnc19kZXZpY2UsIHVuc2lnbmVk IGNsaWVudF9pZCwgdW5zaWduZWQgc3JjX2lkLCB1bnNpZ25lZCB0eXBlKTsKPiAtCj4gLXN0cnVj dCBjZ3Nfb3Nfb3BzIHsKPiAtCS8qIElSUSBoYW5kbGluZyAqLwo+IC0JY2dzX2FkZF9pcnFfc291 cmNlX3QgYWRkX2lycV9zb3VyY2U7Cj4gLQljZ3NfaXJxX2dldF90IGlycV9nZXQ7Cj4gLQljZ3Nf aXJxX3B1dF90IGlycV9wdXQ7Cj4gLX07Cj4gLQo+IC0jZGVmaW5lIGNnc19hZGRfaXJxX3NvdXJj ZShkZXYsY2xpZW50X2lkLHNyY19pZCxudW1fdHlwZXMsc2V0LGhhbmRsZXIscHJpdmF0ZV9kYXRh KSBcCj4gLQlDR1NfT1NfQ0FMTChhZGRfaXJxX3NvdXJjZSxkZXYsY2xpZW50X2lkLHNyY19pZCxu dW1fdHlwZXMsc2V0LGhhbmRsZXIsIFwKPiAtCQkgICAgcHJpdmF0ZV9kYXRhKQo+IC0jZGVmaW5l IGNnc19pcnFfZ2V0KGRldixjbGllbnRfaWQsc3JjX2lkLHR5cGUpCVwKPiAtCUNHU19PU19DQUxM KGlycV9nZXQsZGV2LGNsaWVudF9pZCxzcmNfaWQsdHlwZSkKPiAtI2RlZmluZSBjZ3NfaXJxX3B1 dChkZXYsY2xpZW50X2lkLHNyY19pZCx0eXBlKQlcCj4gLQlDR1NfT1NfQ0FMTChpcnFfcHV0LGRl dixjbGllbnRfaWQsc3JjX2lkLHR5cGUpCj4gLQo+IC0jZW5kaWYgLyogX0NHU19MSU5VWF9IICov Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdyL2h3bWdy LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci9od21nci5jCj4gaW5kZXgg MjI5MDMwMC4uZmJjZGRhNSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2Vy cGxheS9od21nci9od21nci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkv aHdtZ3IvaHdtZ3IuYwo+IEBAIC01Niw1MCArNTYsNiBAQAo+ICAgc3RhdGljIGludCB0b3Bhel9z ZXRfYXNpY19zcGVjaWFsX2NhcHMoc3RydWN0IHBwX2h3bWdyICpod21ncik7Cj4gICBzdGF0aWMg aW50IGNpX3NldF9hc2ljX3NwZWNpYWxfY2FwcyhzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyKTsKPgo+ IC1zdGF0aWMgaW50IHBobV90aGVybWFsX2wyaF9pcnEodm9pZCAqcHJpdmF0ZV9kYXRhLAo+IC0J CSB1bnNpZ25lZCBzcmNfaWQsIGNvbnN0IHVpbnQzMl90ICppdl9lbnRyeSkKPiAtewo+IC0Jc3Ry dWN0IHBwX2h3bWdyICpod21nciA9IChzdHJ1Y3QgcHBfaHdtZ3IgKilwcml2YXRlX2RhdGE7Cj4g LQlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IGh3bWdyLT5hZGV2Owo+IC0KPiAtCXByX3dh cm4oIkdQVSBvdmVyIHRlbXBlcmF0dXJlIHJhbmdlIGRldGVjdGVkIG9uIFBDSWUgJWQ6JWQuJWQh XG4iLAo+IC0JCQlQQ0lfQlVTX05VTShhZGV2LT5wZGV2LT5kZXZmbiksCj4gLQkJCVBDSV9TTE9U KGFkZXYtPnBkZXYtPmRldmZuKSwKPiAtCQkJUENJX0ZVTkMoYWRldi0+cGRldi0+ZGV2Zm4pKTsK PiAtCXJldHVybiAwOwo+IC19Cj4gLQo+IC1zdGF0aWMgaW50IHBobV90aGVybWFsX2gybF9pcnEo dm9pZCAqcHJpdmF0ZV9kYXRhLAo+IC0JCSB1bnNpZ25lZCBzcmNfaWQsIGNvbnN0IHVpbnQzMl90 ICppdl9lbnRyeSkKPiAtewo+IC0Jc3RydWN0IHBwX2h3bWdyICpod21nciA9IChzdHJ1Y3QgcHBf aHdtZ3IgKilwcml2YXRlX2RhdGE7Cj4gLQlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IGh3 bWdyLT5hZGV2Owo+IC0KPiAtCXByX3dhcm4oIkdQVSB1bmRlciB0ZW1wZXJhdHVyZSByYW5nZSBk ZXRlY3RlZCBvbiBQQ0llICVkOiVkLiVkIVxuIiwKPiAtCQkJUENJX0JVU19OVU0oYWRldi0+cGRl di0+ZGV2Zm4pLAo+IC0JCQlQQ0lfU0xPVChhZGV2LT5wZGV2LT5kZXZmbiksCj4gLQkJCVBDSV9G VU5DKGFkZXYtPnBkZXYtPmRldmZuKSk7Cj4gLQlyZXR1cm4gMDsKPiAtfQo+IC0KPiAtc3RhdGlj IGludCBwaG1fY3RmX2lycSh2b2lkICpwcml2YXRlX2RhdGEsCj4gLQkJIHVuc2lnbmVkIHNyY19p ZCwgY29uc3QgdWludDMyX3QgKml2X2VudHJ5KQo+IC17Cj4gLQlzdHJ1Y3QgcHBfaHdtZ3IgKmh3 bWdyID0gKHN0cnVjdCBwcF9od21nciAqKXByaXZhdGVfZGF0YTsKPiAtCXN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2ID0gaHdtZ3ItPmFkZXY7Cj4gLQo+IC0JcHJfd2FybigiR1BVIENyaXRpY2Fs IFRlbXBlcmF0dXJlIEZhdWx0IGRldGVjdGVkIG9uIFBDSWUgJWQ6JWQuJWQhXG4iLAo+IC0JCQlQ Q0lfQlVTX05VTShhZGV2LT5wZGV2LT5kZXZmbiksCj4gLQkJCVBDSV9TTE9UKGFkZXYtPnBkZXYt PmRldmZuKSwKPiAtCQkJUENJX0ZVTkMoYWRldi0+cGRldi0+ZGV2Zm4pKTsKPiAtCXJldHVybiAw Owo+IC19Cj4gLQo+IC1zdGF0aWMgY29uc3Qgc3RydWN0IGNnc19pcnFfc3JjX2Z1bmNzIHRoZXJt YWxfaXJxX3NyY1szXSA9IHsKPiAtCXsgLmhhbmRsZXIgPSBwaG1fdGhlcm1hbF9sMmhfaXJxIH0s Cj4gLQl7IC5oYW5kbGVyID0gcGhtX3RoZXJtYWxfaDJsX2lycSB9LAo+IC0JeyAuaGFuZGxlciA9 IHBobV9jdGZfaXJxIH0KPiAtfTsKPgo+ICAgc3RhdGljIHZvaWQgaHdtZ3JfaW5pdF93b3JrbG9h ZF9wcm9yaXR5KHN0cnVjdCBwcF9od21nciAqaHdtZ3IpCj4gICB7Cj4gQEAgLTI0NCw3ICsyMDAs NyBAQCBpbnQgaHdtZ3JfaHdfaW5pdChzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyKQo+ICAgCWlmIChy ZXQpCj4gICAJCWdvdG8gZXJyMjsKPgo+IC0JcmV0ID0gcGhtX3JlZ2lzdGVyX3RoZXJtYWxfaW50 ZXJydXB0KGh3bWdyLCAmdGhlcm1hbF9pcnFfc3JjKTsKPiArCXJldCA9IHBobV9yZWdpc3Rlcl90 aGVybWFsX2ludGVycnVwdChod21nciwgTlVMTCk7Cj4gICAJaWYgKHJldCkKPiAgIAkJZ290byBl cnIyOwo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdy L3NtdV9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdyL3NtdV9o ZWxwZXIuYwo+IGluZGV4IGUxMWRhZjUuLmRjMWZlM2IgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3Ivc211X2hlbHBlci5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3Ivc211X2hlbHBlci5jCj4gQEAgLTUzNCwzICs1MzQs MzEgQEAgaW50IHBobV9nZXRfdm9sdGFnZV9ldnZfb25fc2NsayhzdHJ1Y3QgcHBfaHdtZ3IgKmh3 bWdyLCB1aW50OF90IHZvbHRhZ2VfdHlwZSwKPiAgIH0KPgo+Cj4gK2V4dGVybiBpbnQgcGhtX2ly cV9wcm9jZXNzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAo+ICsJCQkgICBzdHJ1Y3QgYW1k Z3B1X2lycV9zcmMgKnNvdXJjZSwKPiArCQkJICAgc3RydWN0IGFtZGdwdV9pdl9lbnRyeSAqZW50 cnkpCj4gK3sKPiArCXVpbnQzMl90IGNsaWVudF9pZCA9IGVudHJ5LT5jbGllbnRfaWQ7Cj4gKwl1 aW50MzJfdCBzcmNfaWQgPSBlbnRyeS0+c3JjX2lkOwo+ICsKPiArCWlmIChjbGllbnRfaWQgPT0g U09DMTVfSUhfQ0xJRU5USURfVEhNKSB7Cj4gKwkJaWYgKHNyY19pZCA9PSAwKQo+ICsJCQlwcl93 YXJuKCJHUFUgb3ZlciB0ZW1wZXJhdHVyZSByYW5nZSBkZXRlY3RlZCBvbiBQQ0llICVkOiVkLiVk IVxuIiwKPiArCQkJCQkJUENJX0JVU19OVU0oYWRldi0+cGRldi0+ZGV2Zm4pLAo+ICsJCQkJCQlQ Q0lfU0xPVChhZGV2LT5wZGV2LT5kZXZmbiksCj4gKwkJCQkJCVBDSV9GVU5DKGFkZXYtPnBkZXYt PmRldmZuKSk7Cj4gKwkJZWxzZQo+ICsJCQlwcl93YXJuKCJHUFUgdW5kZXIgdGVtcGVyYXR1cmUg cmFuZ2UgZGV0ZWN0ZWQgb24gUENJZSAlZDolZC4lZCFcbiIsCj4gKwkJCQkJUENJX0JVU19OVU0o YWRldi0+cGRldi0+ZGV2Zm4pLAo+ICsJCQkJCVBDSV9TTE9UKGFkZXYtPnBkZXYtPmRldmZuKSwK PiArCQkJCQlQQ0lfRlVOQyhhZGV2LT5wZGV2LT5kZXZmbikpOwo+ICsJfQo+ICsKPiArCWlmIChj bGllbnRfaWQgPT0gU09DMTVfSUhfQ0xJRU5USURfUk9NX1NNVUlPKQo+ICsJCXByX3dhcm4oIkdQ VSBDcml0aWNhbCBUZW1wZXJhdHVyZSBGYXVsdCBkZXRlY3RlZCBvbiBQQ0llICVkOiVkLiVkIVxu IiwKPiArCQkJCVBDSV9CVVNfTlVNKGFkZXYtPnBkZXYtPmRldmZuKSwKPiArCQkJCVBDSV9TTE9U KGFkZXYtPnBkZXYtPmRldmZuKSwKPiArCQkJCVBDSV9GVU5DKGFkZXYtPnBkZXYtPmRldmZuKSk7 Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9wb3dlcnBsYXkvaHdtZ3Ivc211X2hlbHBlci5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dl cnBsYXkvaHdtZ3Ivc211X2hlbHBlci5oCj4gaW5kZXggYTFhNDkxMy4uOGU4NDc2MCAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci9zbXVfaGVscGVyLmgK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci9zbXVfaGVscGVyLmgK PiBAQCAtNzMsNiArNzMsMTEgQEAgZXh0ZXJuIGludCBwaG1fd2FpdF9vbl9pbmRpcmVjdF9yZWdp c3RlcihzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyLAo+ICAgCQkJCXVpbnQzMl90IHZhbHVlLAo+ICAg CQkJCXVpbnQzMl90IG1hc2spOwo+Cj4gK2V4dGVybiBpbnQgcGhtX2lycV9wcm9jZXNzKHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2LAo+ICsJCQkgICBzdHJ1Y3QgYW1kZ3B1X2lycV9zcmMgKnNv dXJjZSwKPiArCQkJICAgc3RydWN0IGFtZGdwdV9pdl9lbnRyeSAqZW50cnkpOwo+ICsKPiArCj4g ICAjZGVmaW5lIFBITV9GSUVMRF9TSElGVChyZWcsIGZpZWxkKSByZWcjI19fIyNmaWVsZCMjX19T SElGVAo+ICAgI2RlZmluZSBQSE1fRklFTERfTUFTSyhyZWcsIGZpZWxkKSByZWcjI19fIyNmaWVs ZCMjX01BU0sKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9o d21nci92ZWdhMTBfaHdtZ3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdy L3ZlZ2ExMF9od21nci5jCj4gaW5kZXggNTUyMTEzNy4uZjljOWY0MiAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci92ZWdhMTBfaHdtZ3IuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdyL3ZlZ2ExMF9od21nci5jCj4gQEAg LTQ0LDcgKzQ0LDYgQEAKPiAgICNpbmNsdWRlICJ2ZWdhMTBfdGhlcm1hbC5oIgo+ICAgI2luY2x1 ZGUgInBwX2RlYnVnLmgiCj4gICAjaW5jbHVkZSAiYW1kX3BjaWVfaGVscGVycy5oIgo+IC0jaW5j bHVkZSAiY2dzX2xpbnV4LmgiCj4gICAjaW5jbHVkZSAicHBpbnRlcnJ1cHQuaCIKPiAgICNpbmNs dWRlICJwcF9vdmVyZHJpdmVyLmgiCj4gICAjaW5jbHVkZSAicHBfdGhlcm1hbC5oIgo+IEBAIC00 ODE2LDM0ICs0ODE1LDQxIEBAIHN0YXRpYyBpbnQgdmVnYTEwX2dldF90aGVybWFsX3RlbXBlcmF0 dXJlX3JhbmdlKHN0cnVjdCBwcF9od21nciAqaHdtZ3IsCj4gICAJcmV0dXJuIDA7Cj4gICB9Cj4K PiArc3RhdGljIGNvbnN0IHN0cnVjdCBhbWRncHVfaXJxX3NyY19mdW5jcyBzbXU5X2lycV9mdW5j cyA9IHsKPiArCS5wcm9jZXNzID0gcGhtX2lycV9wcm9jZXNzLAo+ICt9Owo+ICsKPiAgIHN0YXRp YyBpbnQgdmVnYTEwX3JlZ2lzdGVyX3RoZXJtYWxfaW50ZXJydXB0KHN0cnVjdCBwcF9od21nciAq aHdtZ3IsCj4gICAJCWNvbnN0IHZvaWQgKmluZm8pCj4gICB7Cj4gLQlzdHJ1Y3QgY2dzX2lycV9z cmNfZnVuY3MgKmlycV9zcmMgPQo+IC0JCQkoc3RydWN0IGNnc19pcnFfc3JjX2Z1bmNzICopaW5m bzsKPiArCXN0cnVjdCBhbWRncHVfaXJxX3NyYyAqc291cmNlID0KPiArCQlremFsbG9jKHNpemVv ZihzdHJ1Y3QgYW1kZ3B1X2lycV9zcmMpLCBHRlBfS0VSTkVMKTsKPiArCj4gKwlpZiAoIXNvdXJj ZSkKPiArCQlyZXR1cm4gLUVOT01FTTsKPiArCj4gKwlzb3VyY2UtPmZ1bmNzID0gJnNtdTlfaXJx X2Z1bmNzOwo+Cj4gICAJaWYgKGh3bWdyLT50aGVybWFsX2NvbnRyb2xsZXIudWNUeXBlID09Cj4g ICAJCQlBVE9NX1ZFR0ExMF9QUF9USEVSTUFMQ09OVFJPTExFUl9WRUdBMTAgfHwKPiAgIAkJaHdt Z3ItPnRoZXJtYWxfY29udHJvbGxlci51Y1R5cGUgPT0KPiAgIAkJCUFUT01fVkVHQTEwX1BQX1RI RVJNQUxDT05UUk9MTEVSX0VNQzIxMDNfV0lUSF9JTlRFUk5BTCkgewo+IC0JCVBQX0FTU0VSVF9X SVRIX0NPREUoIWNnc19hZGRfaXJxX3NvdXJjZShod21nci0+ZGV2aWNlLAo+ICsKPiArCQlhbWRn cHVfaXJxX2FkZF9pZCgoc3RydWN0IGFtZGdwdV9kZXZpY2UgKikoaHdtZ3ItPmFkZXYpLAo+ICAg CQkJCVNPQzE1X0lIX0NMSUVOVElEX1RITSwKPiAtCQkJCTAsIDAsIGlycV9zcmNbMF0uc2V0LCBp cnFfc3JjWzBdLmhhbmRsZXIsIGh3bWdyKSwKPiAtCQkJCSJGYWlsZWQgdG8gcmVnaXN0ZXIgaGln aCB0aGVybWFsIGludGVycnVwdCEiLAo+IC0JCQkJcmV0dXJuIC1FSU5WQUwpOwo+IC0JCVBQX0FT U0VSVF9XSVRIX0NPREUoIWNnc19hZGRfaXJxX3NvdXJjZShod21nci0+ZGV2aWNlLAo+ICsJCQkJ MCwKPiArCQkJCXNvdXJjZSk7Cj4gKwkJYW1kZ3B1X2lycV9hZGRfaWQoKHN0cnVjdCBhbWRncHVf ZGV2aWNlICopKGh3bWdyLT5hZGV2KSwKPiAgIAkJCQlTT0MxNV9JSF9DTElFTlRJRF9USE0sCj4g LQkJCQkxLCAwLCBpcnFfc3JjWzFdLnNldCwgaXJxX3NyY1sxXS5oYW5kbGVyLCBod21nciksCj4g LQkJCQkiRmFpbGVkIHRvIHJlZ2lzdGVyIGxvdyB0aGVybWFsIGludGVycnVwdCEiLAo+IC0JCQkJ cmV0dXJuIC1FSU5WQUwpOwo+ICsJCQkJMSwKPiArCQkJCXNvdXJjZSk7Cj4gICAJfQo+Cj4gICAJ LyogUmVnaXN0ZXIgQ1RGKEdQSU9fMTkpIGludGVycnVwdCAqLwo+IC0JUFBfQVNTRVJUX1dJVEhf Q09ERSghY2dzX2FkZF9pcnFfc291cmNlKGh3bWdyLT5kZXZpY2UsCj4gKwlhbWRncHVfaXJxX2Fk ZF9pZCgoc3RydWN0IGFtZGdwdV9kZXZpY2UgKikoaHdtZ3ItPmFkZXYpLAo+ICAgCQkJU09DMTVf SUhfQ0xJRU5USURfUk9NX1NNVUlPLAo+IC0JCQk4MywgMCwgaXJxX3NyY1syXS5zZXQsIGlycV9z cmNbMl0uaGFuZGxlciwgaHdtZ3IpLAo+IC0JCQkiRmFpbGVkIHRvIHJlZ2lzdGVyIENURiB0aGVy bWFsIGludGVycnVwdCEiLAo+IC0JCQlyZXR1cm4gLUVJTlZBTCk7Cj4gKwkJCTgzLAo+ICsJCQlz b3VyY2UpOwo+Cj4gICAJcmV0dXJuIDA7Cj4gICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvcG93ZXJwbGF5L2luYy9od21nci5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dl cnBsYXkvaW5jL2h3bWdyLmgKPiBpbmRleCA4NWI0NmFkLi4yNjY3Nzc1IDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2luYy9od21nci5oCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaW5jL2h3bWdyLmgKPiBAQCAtNzY0LDExICs3NjQsNiBA QCBzdHJ1Y3QgcHBfaHdtZ3Igewo+ICAgCXVpbnQzMl90IHdvcmtsb2FkX3NldHRpbmdbV29ya2xv YWRfUG9saWN5X01heF07Cj4gICB9Owo+Cj4gLXN0cnVjdCBjZ3NfaXJxX3NyY19mdW5jcyB7Cj4g LQljZ3NfaXJxX3NvdXJjZV9zZXRfZnVuY190IHNldDsKPiAtCWNnc19pcnFfaGFuZGxlcl9mdW5j X3QgaGFuZGxlcjsKPiAtfTsKPiAtCj4gICBleHRlcm4gaW50IGh3bWdyX2Vhcmx5X2luaXQoc3Ry dWN0IHBwX2h3bWdyICpod21ncik7Cj4gICBleHRlcm4gaW50IGh3bWdyX2h3X2luaXQoc3RydWN0 IHBwX2h3bWdyICpod21ncik7Cj4gICBleHRlcm4gaW50IGh3bWdyX2h3X2Zpbmkoc3RydWN0IHBw X2h3bWdyICpod21ncik7Cj4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4 Cg==