From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeykumar Sankaran Subject: [DPU PATCH v2 3/6] drm/msm: remove panel autorefresh support for SDM845 Date: Thu, 19 Apr 2018 16:52:01 -0700 Message-ID: <1524181924-9123-4-git-send-email-jsanka@codeaurora.org> References: <1524181924-9123-1-git-send-email-jsanka@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1524181924-9123-1-git-send-email-jsanka-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: hoegsberg-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org, Jeykumar Sankaran , seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org UmVtb3ZlIGF1dG9yZWZyZXNoIHN1cHBvcnQgZm9yIHNtYXJ0IHBhbmVscyBpbiBTRE04NDUgZm9y IG5vdy4KSXQgbmVlZHMgbW9yZSBkaXNjdXNzaW9uIHRvIGZpZ3VyZSBvdXQgdGhlIHVzZXIgc3Bh Y2UKY29tbXVuaWNhdGlvbiB0byBzZXQgcHJlZmVyZW5jZSBmb3IgdGhlIGZlYXR1cmUuCgpjaGFu Z2VzIGluIHYyOgoJLSBub25lCgpSZXZpZXdlZC1ieTogU2VhbiBQYXVsIDxzZWFucGF1bEBjaHJv bWl1bS5vcmc+ClNpZ25lZC1vZmYtYnk6IEpleWt1bWFyIFNhbmthcmFuIDxqc2Fua2FAY29kZWF1 cm9yYS5vcmc+Ci0tLQogZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2Nvbm5lY3Rv ci5jICAgICAgfCAgIDcgLQogZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29k ZXIuYyAgICAgICAgfCAgMzcgKy0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVf ZW5jb2Rlcl9waHlzLmggICB8ICAyMCAtLQogLi4uL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVf ZW5jb2Rlcl9waHlzX2NtZC5jICAgfCAyOTggKy0tLS0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJz L2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdfcGluZ3BvbmcuYyAgICB8ICA0MSAtLS0KIGRy aXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od19waW5ncG9uZy5oICAgIHwgIDE4IC0t CiA2IGZpbGVzIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDQxMCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY29ubmVjdG9yLmMg Yi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY29ubmVjdG9yLmMKaW5kZXggZjdl OWY3Ni4uZGMwOTc4ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEv ZHB1X2Nvbm5lY3Rvci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9j b25uZWN0b3IuYwpAQCAtMjQsOSArMjQsNiBAQAogCiAjZGVmaW5lIEJMX05PREVfTkFNRV9TSVpF IDMyCiAKLS8qIEF1dG9yZWZyZXNoIHdpbGwgb2NjdXIgYWZ0ZXIgRlJBTUVfQ05UIGZyYW1lcy4g TGFyZ2UgdmFsdWVzIGFyZSB1bmxpa2VseSAqLwotI2RlZmluZSBBVVRPUkVGUkVTSF9NQVhfRlJB TUVfQ05UIDYKLQogI2RlZmluZSBEUFVfREVCVUdfQ09OTihjLCBmbXQsIC4uLikgRFBVX0RFQlVH KCJjb25uJWQgIiBmbXQsXAogCQkoYykgPyAoYyktPmJhc2UuYmFzZS5pZCA6IC0xLCAjI19fVkFf QVJHU19fKQogCkBAIC0xMTI2LDEwICsxMTIzLDYgQEAgc3RydWN0IGRybV9jb25uZWN0b3IgKmRw dV9jb25uZWN0b3JfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQlDT05ORUNUT1JfUFJP UF9BRF9CTF9TQ0FMRSk7CiAjZW5kaWYKIAotCW1zbV9wcm9wZXJ0eV9pbnN0YWxsX3JhbmdlKCZj X2Nvbm4tPnByb3BlcnR5X2luZm8sICJhdXRvcmVmcmVzaCIsCi0JCQkweDAsIDAsIEFVVE9SRUZS RVNIX01BWF9GUkFNRV9DTlQsIDAsCi0JCQlDT05ORUNUT1JfUFJPUF9BVVRPUkVGUkVTSCk7Ci0K IAkvKiBlbnVtL2JpdG1hc2sgcHJvcGVydGllcyAqLwogCW1zbV9wcm9wZXJ0eV9pbnN0YWxsX2Vu dW0oJmNfY29ubi0+cHJvcGVydHlfaW5mbywgInRvcG9sb2d5X25hbWUiLAogCQkJRFJNX01PREVf UFJPUF9JTU1VVEFCTEUsIDAsIGVfdG9wb2xvZ3lfbmFtZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNt L2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5jCmluZGV4IGQwNDA5NWIuLjM4NTQ0MTAgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuYwpAQCAtODEzLDcgKzgxMyw2 IEBAIHN0YXRpYyB2b2lkIF9kcHVfZW5jb2Rlcl9yZXNvdXJjZV9jb250cm9sX2hlbHBlcihzdHJ1 Y3QgZHJtX2VuY29kZXIgKmRybV9lbmMsCiBzdGF0aWMgaW50IGRwdV9lbmNvZGVyX3Jlc291cmNl X2NvbnRyb2woc3RydWN0IGRybV9lbmNvZGVyICpkcm1fZW5jLAogCQl1MzIgc3dfZXZlbnQpCiB7 Ci0JYm9vbCBhdXRvcmVmcmVzaF9lbmFibGVkID0gZmFsc2U7CiAJdW5zaWduZWQgaW50IGxwLCBp ZGxlX3RpbWVvdXQ7CiAJc3RydWN0IGRwdV9lbmNvZGVyX3ZpcnQgKmRwdV9lbmM7CiAJc3RydWN0 IG1zbV9kcm1fcHJpdmF0ZSAqcHJpdjsKQEAgLTkyMCwxMyArOTE5LDYgQEAgc3RhdGljIGludCBk cHVfZW5jb2Rlcl9yZXNvdXJjZV9jb250cm9sKHN0cnVjdCBkcm1fZW5jb2RlciAqZHJtX2VuYywK IAkJCXJldHVybiAwOwogCQl9CiAKLQkJLyogc2NoZWR1bGUgZGVsYXllZCBvZmYgd29yayBpZiBh dXRvcmVmcmVzaCBpcyBkaXNhYmxlZCAqLwotCQlpZiAoZHB1X2VuYy0+Y3VyX21hc3RlciAmJgot CQkJZHB1X2VuYy0+Y3VyX21hc3Rlci0+b3BzLmlzX2F1dG9yZWZyZXNoX2VuYWJsZWQpCi0JCQlh dXRvcmVmcmVzaF9lbmFibGVkID0KLQkJCQlkcHVfZW5jLT5jdXJfbWFzdGVyLT5vcHMuaXNfYXV0 b3JlZnJlc2hfZW5hYmxlZCgKLQkJCQkJCQlkcHVfZW5jLT5jdXJfbWFzdGVyKTsKLQogCQkvKiBz ZXQgaWRsZSB0aW1lb3V0IGJhc2VkIG9uIG1hc3RlciBjb25uZWN0b3IncyBscCB2YWx1ZSAqLwog CQlpZiAoZHB1X2VuYy0+Y3VyX21hc3RlcikKIAkJCWxwID0gZHB1X2Nvbm5lY3Rvcl9nZXRfbHAo CkBAIC05MzksMTMgKzkzMSwxMiBAQCBzdGF0aWMgaW50IGRwdV9lbmNvZGVyX3Jlc291cmNlX2Nv bnRyb2woc3RydWN0IGRybV9lbmNvZGVyICpkcm1fZW5jLAogCQllbHNlCiAJCQlpZGxlX3RpbWVv dXQgPSBkcHVfZW5jLT5pZGxlX3RpbWVvdXQ7CiAKLQkJaWYgKCFhdXRvcmVmcmVzaF9lbmFibGVk KQotCQkJa3RocmVhZF9xdWV1ZV9kZWxheWVkX3dvcmsoCi0JCQkJJmRpc3BfdGhyZWFkLT53b3Jr ZXIsCi0JCQkJJmRwdV9lbmMtPmRlbGF5ZWRfb2ZmX3dvcmssCi0JCQkJbXNlY3NfdG9famlmZmll cyhpZGxlX3RpbWVvdXQpKTsKKwkJa3RocmVhZF9xdWV1ZV9kZWxheWVkX3dvcmsoCisJCQkmZGlz cF90aHJlYWQtPndvcmtlciwKKwkJCSZkcHVfZW5jLT5kZWxheWVkX29mZl93b3JrLAorCQkJbXNl Y3NfdG9famlmZmllcyhpZGxlX3RpbWVvdXQpKTsKKwogCQlEUFVfRVZUMzIoRFJNSUQoZHJtX2Vu YyksIHN3X2V2ZW50LCBkcHVfZW5jLT5yY19zdGF0ZSwKLQkJCQlhdXRvcmVmcmVzaF9lbmFibGVk LAogCQkJCWlkbGVfdGltZW91dCwgRFBVX0VWVExPR19GVU5DX0NBU0UyKTsKIAkJRFBVX0RFQlVH X0VOQyhkcHVfZW5jLCAic3dfZXZlbnQ6JWQsIHdvcmsgc2NoZWR1bGVkXG4iLAogCQkJCXN3X2V2 ZW50KTsKQEAgLTE5ODgsNyArMTk3OSw2IEBAIHN0YXRpYyB2b2lkIGRwdV9lbmNvZGVyX3ZzeW5j X2V2ZW50X2hhbmRsZXIoc3RydWN0IHRpbWVyX2xpc3QgKnQpCiAJc3RydWN0IGRybV9lbmNvZGVy ICpkcm1fZW5jID0gJmRwdV9lbmMtPmJhc2U7CiAJc3RydWN0IG1zbV9kcm1fcHJpdmF0ZSAqcHJp djsKIAlzdHJ1Y3QgbXNtX2RybV90aHJlYWQgKmV2ZW50X3RocmVhZDsKLQlib29sIGF1dG9yZWZy ZXNoX2VuYWJsZWQgPSBmYWxzZTsKIAogCWlmICghZHJtX2VuYy0+ZGV2IHx8ICFkcm1fZW5jLT5k ZXYtPmRldl9wcml2YXRlIHx8CiAJCQkhZHJtX2VuYy0+Y3J0YykgewpAQCAtMjAwOSwyMiArMTk5 OSw3IEBAIHN0YXRpYyB2b2lkIGRwdV9lbmNvZGVyX3ZzeW5jX2V2ZW50X2hhbmRsZXIoc3RydWN0 IHRpbWVyX2xpc3QgKnQpCiAJCXJldHVybjsKIAl9CiAKLQlpZiAoZHB1X2VuYy0+Y3VyX21hc3Rl ciAmJgotCQlkcHVfZW5jLT5jdXJfbWFzdGVyLT5vcHMuaXNfYXV0b3JlZnJlc2hfZW5hYmxlZCkK LQkJYXV0b3JlZnJlc2hfZW5hYmxlZCA9Ci0JCQlkcHVfZW5jLT5jdXJfbWFzdGVyLT5vcHMuaXNf YXV0b3JlZnJlc2hfZW5hYmxlZCgKLQkJCQkJCWRwdV9lbmMtPmN1cl9tYXN0ZXIpOwotCi0JLyoK LQkgKiBRdWV1ZSB3b3JrIHRvIHVwZGF0ZSB0aGUgdnN5bmMgZXZlbnQgdGltZXIKLQkgKiBpZiBh dXRvcmVmcmVzaCBpcyBlbmFibGVkLgotCSAqLwotCURQVV9FVlQzMl9WRVJCT1NFKGF1dG9yZWZy ZXNoX2VuYWJsZWQpOwotCWlmIChhdXRvcmVmcmVzaF9lbmFibGVkKQotCQlrdGhyZWFkX3F1ZXVl X3dvcmsoJmV2ZW50X3RocmVhZC0+d29ya2VyLAotCQkJCSZkcHVfZW5jLT52c3luY19ldmVudF93 b3JrKTsKLQllbHNlCi0JCWRlbF90aW1lcigmZHB1X2VuYy0+dnN5bmNfZXZlbnRfdGltZXIpOwor CWRlbF90aW1lcigmZHB1X2VuYy0+dnN5bmNfZXZlbnRfdGltZXIpOwogfQogCiBzdGF0aWMgdm9p ZCBkcHVfZW5jb2Rlcl92c3luY19ldmVudF93b3JrX2hhbmRsZXIoc3RydWN0IGt0aHJlYWRfd29y ayAqd29yaykKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9l bmNvZGVyX3BoeXMuaCBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVy X3BoeXMuaAppbmRleCA5MTFhYzZkLi41NzZjNDc1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlcl9waHlzLmgKKysrIGIvZHJpdmVycy9ncHUvZHJt L21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXJfcGh5cy5oCkBAIC0xMjQsOCArMTI0LDYgQEAgc3Ry dWN0IGRwdV9lbmNvZGVyX3ZpcnRfb3BzIHsKICAqIEBwcmVwYXJlX2lkbGVfcGM6CQlwaHlzIGVu Y29kZXIgY2FuIHVwZGF0ZSB0aGUgdnN5bmNfZW5hYmxlIHN0YXR1cwogICogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBvbiBpZGxlIHBvd2VyIGNvbGxhcHNlIHByZXBhcmUKICAqIEByZXN0 b3JlOgkJCVJlc3RvcmUgYWxsIHRoZSBlbmNvZGVyIGNvbmZpZ3MuCi0gKiBAaXNfYXV0b3JlZnJl c2hfZW5hYmxlZDoJcHJvdmlkZXMgdGhlIGF1dG9yZWZyZXNoIGN1cnJlbnQKLSAqICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZW5hYmxlL2Rpc2FibGUgc3RhdGUuCiAgKiBAZ2V0X2xpbmVf Y291bnQ6CQlPYnRhaW4gY3VycmVudCB2ZXJ0aWNhbCBsaW5lIGNvdW50CiAgKi8KIApAQCAtMTY2 LDcgKzE2NCw2IEBAIHN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzX29wcyB7CiAJdm9pZCAoKmlycV9j b250cm9sKShzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5cyAqcGh5cywgYm9vbCBlbmFibGUpOwogCXZv aWQgKCpwcmVwYXJlX2lkbGVfcGMpKHN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzICpwaHlzX2VuYyk7 CiAJdm9pZCAoKnJlc3RvcmUpKHN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzICpwaHlzKTsKLQlib29s ICgqaXNfYXV0b3JlZnJlc2hfZW5hYmxlZCkoc3RydWN0IGRwdV9lbmNvZGVyX3BoeXMgKnBoeXMp OwogCWludCAoKmdldF9saW5lX2NvdW50KShzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5cyAqcGh5cyk7 CiB9OwogCkBAIC0xNzYsOCArMTczLDYgQEAgc3RydWN0IGRwdV9lbmNvZGVyX3BoeXNfb3BzIHsK ICAqIEBJTlRSX0lEWF9QSU5HUE9ORzogUGluZ3BvbmcgZG9uZSB1bnRlcnJ1cHQgZm9yIGNtZCBt b2RlIHBhbmVsCiAgKiBASU5UUl9JRFhfVU5ERVJSVU46IFVuZGVycnVuIHVudGVycnVwdCBmb3Ig dmlkZW8gYW5kIGNtZCBtb2RlIHBhbmVsCiAgKiBASU5UUl9JRFhfUkRQVFI6ICAgIFJlYWRwb2lu dGVyIGRvbmUgdW50ZXJydXB0IGZvciBjbWQgbW9kZSBwYW5lbAotICogQElOVFJfSURYX0FVVE9S RUZSRVNIX0RPTkU6ICBBdXRvcmVmcmVzaCBkb25lIGZvciBjbWQgbW9kZSBwYW5lbCBtZWFuaW5n Ci0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9yZWZyZXNoIGhhcyB0cmlnZ2Vy ZWQgYSBkb3VibGUgYnVmZmVyIGZsaXAKICAqLwogZW51bSBkcHVfaW50cl9pZHggewogCUlOVFJf SURYX1ZTWU5DLApAQCAtMTg1LDcgKzE4MCw2IEBAIGVudW0gZHB1X2ludHJfaWR4IHsKIAlJTlRS X0lEWF9VTkRFUlJVTiwKIAlJTlRSX0lEWF9DVExfU1RBUlQsCiAJSU5UUl9JRFhfUkRQVFIsCi0J SU5UUl9JRFhfQVVUT1JFRlJFU0hfRE9ORSwKIAlJTlRSX0lEWF9NQVgsCiB9OwogCkBAIC0yODcs MTggKzI4MSw2IEBAIHN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzX3ZpZCB7CiB9OwogCiAvKioKLSAq IHN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzX2NtZF9hdXRvcmVmcmVzaCAtIGF1dG9yZWZyZXNoIHN0 YXRlIHRyYWNraW5nCi0gKiBAY2ZnOiBjdXJyZW50IGFjdGl2ZSBhdXRvcmVmcmVzaCBjb25maWd1 cmF0aW9uCi0gKiBAa2lja29mZl9jbnQ6IGF0b21pYyBjb3VudCB0cmFja2luZyBhdXRvcmVmcmVz aCBkb25lIGlycSBraWNrb2ZmcyBwZW5kaW5nCi0gKiBAa2lja29mZl93cToJd2FpdCBxdWV1ZSBm b3Igd2FpdGluZyBvbiBhdXRvcmVmcmVzaCBkb25lIGlycQotICovCi1zdHJ1Y3QgZHB1X2VuY29k ZXJfcGh5c19jbWRfYXV0b3JlZnJlc2ggewotCXN0cnVjdCBkcHVfaHdfYXV0b3JlZnJlc2ggY2Zn OwotCWF0b21pY190IGtpY2tvZmZfY250OwotCXdhaXRfcXVldWVfaGVhZF90IGtpY2tvZmZfd3E7 Ci19OwotCi0vKioKICAqIHN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzX2NtZCAtIHN1Yi1jbGFzcyBv ZiBkcHVfZW5jb2Rlcl9waHlzIHRvIGhhbmRsZSBjb21tYW5kCiAgKgltb2RlIHNwZWNpZmljIG9w ZXJhdGlvbnMKICAqIEBiYXNlOglCYXNlY2xhc3MgcGh5c2ljYWwgZW5jb2RlciBzdHJ1Y3R1cmUK QEAgLTMwNyw3ICsyODksNiBAQCBzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5c19jbWRfYXV0b3JlZnJl c2ggewogICogQHNlcmlhbGl6ZV93YWl0NHBwOglzZXJpYWxpemUgd2FpdDRwcCBmZWF0dXJlIHdh aXRzIGZvciBwcF9kb25lIGludGVycnVwdAogICoJCQlhZnRlciBjdGxfc3RhcnQgaW5zdGVhZCBv ZiBiZWZvcmUgbmV4dCBmcmFtZSBraWNrb2ZmCiAgKiBAcHBfdGltZW91dF9yZXBvcnRfY250OiBu dW1iZXIgb2YgcGluZ3BvbmcgZG9uZSBpcnEgdGltZW91dCBlcnJvcnMKLSAqIEBhdXRvcmVmcmVz aDogYXV0b3JlZnJlc2ggZmVhdHVyZSBzdGF0ZQogICogQHBlbmRpbmdfdmJsYW5rX2NudDogQXRv bWljIGNvdW50ZXIgdHJhY2tpbmcgcGVuZGluZyB3YWl0IGZvciBWQkxBTksKICAqIEBwZW5kaW5n X3ZibGFua193cTogV2FpdCBxdWV1ZSBmb3IgYmxvY2tpbmcgdW50aWwgVkJMQU5LIHJlY2VpdmVk CiAgKi8KQEAgLTMxNiw3ICsyOTcsNiBAQCBzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5c19jbWQgewog CWludCBzdHJlYW1fc2VsOwogCWJvb2wgc2VyaWFsaXplX3dhaXQ0cHA7CiAJaW50IHBwX3RpbWVv dXRfcmVwb3J0X2NudDsKLQlzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5c19jbWRfYXV0b3JlZnJlc2gg YXV0b3JlZnJlc2g7CiAJYXRvbWljX3QgcGVuZGluZ192YmxhbmtfY250OwogCXdhaXRfcXVldWVf aGVhZF90IHBlbmRpbmdfdmJsYW5rX3dxOwogfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyX3BoeXNfY21kLmMgYi9kcml2ZXJzL2dwdS9kcm0v bXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlcl9waHlzX2NtZC5jCmluZGV4IDM0MzY3ODguLjA3Mjkz OWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVy X3BoeXNfY21kLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29k ZXJfcGh5c19jbWQuYwpAQCAtNDcsOSArNDcsNyBAQAogc3RhdGljIGlubGluZSBpbnQgX2RwdV9l bmNvZGVyX3BoeXNfY21kX2dldF9pZGxlX3RpbWVvdXQoCiAJCXN0cnVjdCBkcHVfZW5jb2Rlcl9w aHlzX2NtZCAqY21kX2VuYykKIHsKLQlyZXR1cm4gY21kX2VuYy0+YXV0b3JlZnJlc2guY2ZnLmZy YW1lX2NvdW50ID8KLQkJCWNtZF9lbmMtPmF1dG9yZWZyZXNoLmNmZy5mcmFtZV9jb3VudCAqCi0J CQlLSUNLT0ZGX1RJTUVPVVRfTVMgOiBLSUNLT0ZGX1RJTUVPVVRfTVM7CisJcmV0dXJuIEtJQ0tP RkZfVElNRU9VVF9NUzsKIH0KIAogc3RhdGljIGlubGluZSBib29sIGRwdV9lbmNvZGVyX3BoeXNf Y21kX2lzX21hc3RlcigKQEAgLTY4LDUyICs2Niw2IEBAIHN0YXRpYyBib29sIGRwdV9lbmNvZGVy X3BoeXNfY21kX21vZGVfZml4dXAoCiAJcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyB1aW50NjRf dCBfZHB1X2VuY29kZXJfcGh5c19jbWRfZ2V0X2F1dG9yZWZyZXNoX3Byb3BlcnR5KAotCQlzdHJ1 Y3QgZHB1X2VuY29kZXJfcGh5cyAqcGh5c19lbmMpCi17Ci0Jc3RydWN0IGRybV9jb25uZWN0b3Ig KmNvbm4gPSBwaHlzX2VuYy0+Y29ubmVjdG9yOwotCi0JaWYgKCFjb25uIHx8ICFjb25uLT5zdGF0 ZSkKLQkJcmV0dXJuIDA7Ci0KLQlyZXR1cm4gZHB1X2Nvbm5lY3Rvcl9nZXRfcHJvcGVydHkoY29u bi0+c3RhdGUsCi0JCQkJQ09OTkVDVE9SX1BST1BfQVVUT1JFRlJFU0gpOwotfQotCi1zdGF0aWMg dm9pZCBfZHB1X2VuY29kZXJfcGh5c19jbWRfY29uZmlnX2F1dG9yZWZyZXNoKAotCQlzdHJ1Y3Qg ZHB1X2VuY29kZXJfcGh5cyAqcGh5c19lbmMsCi0JCXUzMiBuZXdfZnJhbWVfY291bnQpCi17Ci0J c3RydWN0IGRwdV9lbmNvZGVyX3BoeXNfY21kICpjbWRfZW5jID0KLQkJCXRvX2RwdV9lbmNvZGVy X3BoeXNfY21kKHBoeXNfZW5jKTsKLQlzdHJ1Y3QgZHB1X2h3X3Bpbmdwb25nICpod19wcCA9IHBo eXNfZW5jLT5od19wcDsKLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubiA9IHBoeXNfZW5jLT5j b25uZWN0b3I7Ci0Jc3RydWN0IGRwdV9od19hdXRvcmVmcmVzaCAqY2ZnX2N1ciwgY2ZnX254dDsK LQotCWlmICghY29ubiB8fCAhY29ubi0+c3RhdGUgfHwgIWh3X3BwKQotCQlyZXR1cm47Ci0KLQlj ZmdfY3VyID0gJmNtZF9lbmMtPmF1dG9yZWZyZXNoLmNmZzsKLQotCS8qIGF1dG9yZWZyZXNoIHBy b3BlcnR5IHZhbHVlIHNob3VsZCBiZSB2YWxpZGF0ZWQgYWxyZWFkeSAqLwotCW1lbXNldCgmY2Zn X254dCwgMCwgc2l6ZW9mKGNmZ19ueHQpKTsKLQljZmdfbnh0LmZyYW1lX2NvdW50ID0gbmV3X2Zy YW1lX2NvdW50OwotCWNmZ19ueHQuZW5hYmxlID0gKGNmZ19ueHQuZnJhbWVfY291bnQgIT0gMCk7 Ci0KLQlEUFVfREVCVUdfQ01ERU5DKGNtZF9lbmMsICJhdXRvcmVmcmVzaCBzdGF0ZSAlZC0+JWQg ZnJhbWVjb3VudCAlZFxuIiwKLQkJCWNmZ19jdXItPmVuYWJsZSwgY2ZnX254dC5lbmFibGUsIGNm Z19ueHQuZnJhbWVfY291bnQpOwotCURQVV9FVlQzMihEUk1JRChwaHlzX2VuYy0+cGFyZW50KSwg aHdfcHAtPmlkeCwgY2ZnX2N1ci0+ZW5hYmxlLAotCQkJY2ZnX254dC5lbmFibGUsIGNmZ19ueHQu ZnJhbWVfY291bnQpOwotCi0JLyogb25seSBwcm9jZWVkIG9uIHN0YXRlIGNoYW5nZXMgKi8KLQlp ZiAoY2ZnX254dC5lbmFibGUgPT0gY2ZnX2N1ci0+ZW5hYmxlKQotCQlyZXR1cm47Ci0KLQltZW1j cHkoY2ZnX2N1ciwgJmNmZ19ueHQsIHNpemVvZigqY2ZnX2N1cikpOwotCWlmIChod19wcC0+b3Bz LnNldHVwX2F1dG9yZWZyZXNoKQotCQlod19wcC0+b3BzLnNldHVwX2F1dG9yZWZyZXNoKGh3X3Bw LCBjZmdfY3VyKTsKLX0KLQogc3RhdGljIHZvaWQgX2RwdV9lbmNvZGVyX3BoeXNfY21kX3VwZGF0 ZV9pbnRmX2NmZygKIAkJc3RydWN0IGRwdV9lbmNvZGVyX3BoeXMgKnBoeXNfZW5jKQogewpAQCAt MTY0LDI5ICsxMTYsNiBAQCBzdGF0aWMgdm9pZCBkcHVfZW5jb2Rlcl9waHlzX2NtZF9wcF90eF9k b25lX2lycSh2b2lkICphcmcsIGludCBpcnFfaWR4KQogCURQVV9BVFJBQ0VfRU5EKCJwcF9kb25l X2lycSIpOwogfQogCi1zdGF0aWMgdm9pZCBkcHVfZW5jb2Rlcl9waHlzX2NtZF9hdXRvcmVmcmVz aF9kb25lX2lycSh2b2lkICphcmcsIGludCBpcnFfaWR4KQotewotCXN0cnVjdCBkcHVfZW5jb2Rl cl9waHlzICpwaHlzX2VuYyA9IGFyZzsKLQlzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5c19jbWQgKmNt ZF9lbmMgPQotCQkJdG9fZHB1X2VuY29kZXJfcGh5c19jbWQocGh5c19lbmMpOwotCXVuc2lnbmVk IGxvbmcgbG9ja19mbGFnczsKLQlpbnQgbmV3X2NudDsKLQotCWlmICghY21kX2VuYykKLQkJcmV0 dXJuOwotCi0JcGh5c19lbmMgPSAmY21kX2VuYy0+YmFzZTsKLQlzcGluX2xvY2tfaXJxc2F2ZShw aHlzX2VuYy0+ZW5jX3NwaW5sb2NrLCBsb2NrX2ZsYWdzKTsKLQluZXdfY250ID0gYXRvbWljX2Fk ZF91bmxlc3MoJmNtZF9lbmMtPmF1dG9yZWZyZXNoLmtpY2tvZmZfY250LCAtMSwgMCk7Ci0Jc3Bp bl91bmxvY2tfaXJxcmVzdG9yZShwaHlzX2VuYy0+ZW5jX3NwaW5sb2NrLCBsb2NrX2ZsYWdzKTsK LQotCURQVV9FVlQzMl9JUlEoRFJNSUQocGh5c19lbmMtPnBhcmVudCksCi0JCQlwaHlzX2VuYy0+ aHdfcHAtPmlkeCAtIFBJTkdQT05HXzAsIG5ld19jbnQpOwotCi0JLyogU2lnbmFsIGFueSB3YWl0 aW5nIGF0b21pYyBjb21taXQgdGhyZWFkICovCi0Jd2FrZV91cF9hbGwoJmNtZF9lbmMtPmF1dG9y ZWZyZXNoLmtpY2tvZmZfd3EpOwotfQotCiBzdGF0aWMgdm9pZCBkcHVfZW5jb2Rlcl9waHlzX2Nt ZF9wcF9yZF9wdHJfaXJxKHZvaWQgKmFyZywgaW50IGlycV9pZHgpCiB7CiAJc3RydWN0IGRwdV9l bmNvZGVyX3BoeXMgKnBoeXNfZW5jID0gYXJnOwpAQCAtMjU3LDEwICsxODYsNiBAQCBzdGF0aWMg dm9pZCBfZHB1X2VuY29kZXJfcGh5c19jbWRfc2V0dXBfaXJxX2h3X2lkeCgKIAlpcnEgPSAmcGh5 c19lbmMtPmlycVtJTlRSX0lEWF9VTkRFUlJVTl07CiAJaXJxLT5od19pZHggPSBwaHlzX2VuYy0+ aW50Zl9pZHg7CiAJaXJxLT5pcnFfaWR4ID0gLUVJTlZBTDsKLQotCWlycSA9ICZwaHlzX2VuYy0+ aXJxW0lOVFJfSURYX0FVVE9SRUZSRVNIX0RPTkVdOwotCWlycS0+aHdfaWR4ID0gcGh5c19lbmMt Pmh3X3BwLT5pZHg7Ci0JaXJxLT5pcnFfaWR4ID0gLUVJTlZBTDsKIH0KIAogc3RhdGljIHZvaWQg ZHB1X2VuY29kZXJfcGh5c19jbWRfbW9kZV9zZXQoCkBAIC0zNTIsNzMgKzI3Nyw2IEBAIHN0YXRp YyBpbnQgX2RwdV9lbmNvZGVyX3BoeXNfY21kX2hhbmRsZV9wcGRvbmVfdGltZW91dCgKIAlyZXR1 cm4gLUVUSU1FRE9VVDsKIH0KIAotc3RhdGljIGludCBfZHB1X2VuY29kZXJfcGh5c19jbWRfcG9s bF93cml0ZV9wb2ludGVyX3N0YXJ0ZWQoCi0JCXN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzICpwaHlz X2VuYykKLXsKLQlzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5c19jbWQgKmNtZF9lbmMgPQotCQkJdG9f ZHB1X2VuY29kZXJfcGh5c19jbWQocGh5c19lbmMpOwotCXN0cnVjdCBkcHVfaHdfcGluZ3Bvbmcg Kmh3X3BwID0gcGh5c19lbmMtPmh3X3BwOwotCXN0cnVjdCBkcHVfaHdfcHBfdnN5bmNfaW5mbyBp bmZvOwotCXUzMiB0aW1lb3V0X3VzID0gRFBVX0VOQ19XUl9QVFJfU1RBUlRfVElNRU9VVF9VUzsK LQlpbnQgcmV0OwotCi0JaWYgKCFod19wcCB8fCAhaHdfcHAtPm9wcy5nZXRfdnN5bmNfaW5mbyB8 fAotCQkJIWh3X3BwLT5vcHMucG9sbF90aW1lb3V0X3dyX3B0cikKLQkJcmV0dXJuIDA7Ci0KLQly ZXQgPSBod19wcC0+b3BzLmdldF92c3luY19pbmZvKGh3X3BwLCAmaW5mbyk7Ci0JaWYgKHJldCkK LQkJcmV0dXJuIHJldDsKLQotCURQVV9ERUJVR19DTURFTkMoY21kX2VuYywKLQkJCSJwcDolZCBy ZF9wdHIgJWQgd3JfcHRyICVkXG4iLAotCQkJcGh5c19lbmMtPmh3X3BwLT5pZHggLSBQSU5HUE9O R18wLAotCQkJaW5mby5yZF9wdHJfbGluZV9jb3VudCwKLQkJCWluZm8ud3JfcHRyX2xpbmVfY291 bnQpOwotCURQVV9FVlQzMl9WRVJCT1NFKERSTUlEKHBoeXNfZW5jLT5wYXJlbnQpLAotCQkJcGh5 c19lbmMtPmh3X3BwLT5pZHggLSBQSU5HUE9OR18wLAotCQkJaW5mby53cl9wdHJfbGluZV9jb3Vu dCk7Ci0KLQlyZXQgPSBod19wcC0+b3BzLnBvbGxfdGltZW91dF93cl9wdHIoaHdfcHAsIHRpbWVv dXRfdXMpOwotCWlmIChyZXQpIHsKLQkJRFBVX0VWVDMyKERSTUlEKHBoeXNfZW5jLT5wYXJlbnQp LAotCQkJCXBoeXNfZW5jLT5od19wcC0+aWR4IC0gUElOR1BPTkdfMCwKLQkJCQl0aW1lb3V0X3Vz LAotCQkJCXJldCk7Ci0JCURQVV9EQkdfRFVNUCgiYWxsIiwgImRiZ19idXMiLCAidmJpZl9kYmdf YnVzIiwgInBhbmljIik7Ci0JfQotCi0JcmV0dXJuIHJldDsKLX0KLQotc3RhdGljIGJvb2wgX2Rw dV9lbmNvZGVyX3BoeXNfY21kX2lzX29uZ29pbmdfcHB0eCgKLQkJc3RydWN0IGRwdV9lbmNvZGVy X3BoeXMgKnBoeXNfZW5jKQotewotCXN0cnVjdCBkcHVfaHdfcGluZ3BvbmcgKmh3X3BwOwotCXN0 cnVjdCBkcHVfaHdfcHBfdnN5bmNfaW5mbyBpbmZvOwotCi0JaWYgKCFwaHlzX2VuYykKLQkJcmV0 dXJuIGZhbHNlOwotCi0JaHdfcHAgPSBwaHlzX2VuYy0+aHdfcHA7Ci0JaWYgKCFod19wcCB8fCAh aHdfcHAtPm9wcy5nZXRfdnN5bmNfaW5mbykKLQkJcmV0dXJuIGZhbHNlOwotCi0JaHdfcHAtPm9w cy5nZXRfdnN5bmNfaW5mbyhod19wcCwgJmluZm8pOwotCi0JRFBVX0VWVDMyKERSTUlEKHBoeXNf ZW5jLT5wYXJlbnQpLAotCQkJcGh5c19lbmMtPmh3X3BwLT5pZHggLSBQSU5HUE9OR18wLAotCQkJ YXRvbWljX3JlYWQoJnBoeXNfZW5jLT5wZW5kaW5nX2tpY2tvZmZfY250KSwKLQkJCWluZm8ud3Jf cHRyX2xpbmVfY291bnQsCi0JCQlwaHlzX2VuYy0+Y2FjaGVkX21vZGUudmRpc3BsYXkpOwotCi0J aWYgKGluZm8ud3JfcHRyX2xpbmVfY291bnQgPiAwICYmIGluZm8ud3JfcHRyX2xpbmVfY291bnQg PAotCQkJcGh5c19lbmMtPmNhY2hlZF9tb2RlLnZkaXNwbGF5KQotCQlyZXR1cm4gdHJ1ZTsKLQot CXJldHVybiBmYWxzZTsKLX0KLQogc3RhdGljIGludCBfZHB1X2VuY29kZXJfcGh5c19jbWRfd2Fp dF9mb3JfaWRsZSgKIAkJc3RydWN0IGRwdV9lbmNvZGVyX3BoeXMgKnBoeXNfZW5jKQogewpAQCAt NDQ2LDQyICszMDQsNiBAQCBzdGF0aWMgaW50IF9kcHVfZW5jb2Rlcl9waHlzX2NtZF93YWl0X2Zv cl9pZGxlKAogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbnQgX2RwdV9lbmNvZGVyX3BoeXNf Y21kX3dhaXRfZm9yX2F1dG9yZWZyZXNoX2RvbmUoCi0JCXN0cnVjdCBkcHVfZW5jb2Rlcl9waHlz ICpwaHlzX2VuYykKLXsKLQlzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5c19jbWQgKmNtZF9lbmMgPQot CQkJdG9fZHB1X2VuY29kZXJfcGh5c19jbWQocGh5c19lbmMpOwotCXN0cnVjdCBkcHVfZW5jb2Rl cl93YWl0X2luZm8gd2FpdF9pbmZvOwotCWludCByZXQgPSAwOwotCi0JaWYgKCFwaHlzX2VuYykg ewotCQlEUFVfRVJST1IoImludmFsaWQgZW5jb2RlclxuIik7Ci0JCXJldHVybiAtRUlOVkFMOwot CX0KLQotCS8qIG9ubHkgbWFzdGVyIGRlYWxzIHdpdGggYXV0b3JlZnJlc2ggKi8KLQlpZiAoIWRw dV9lbmNvZGVyX3BoeXNfY21kX2lzX21hc3RlcihwaHlzX2VuYykpCi0JCXJldHVybiAwOwotCi0J d2FpdF9pbmZvLndxID0gJmNtZF9lbmMtPmF1dG9yZWZyZXNoLmtpY2tvZmZfd3E7Ci0Jd2FpdF9p bmZvLmF0b21pY19jbnQgPSAmY21kX2VuYy0+YXV0b3JlZnJlc2gua2lja29mZl9jbnQ7Ci0Jd2Fp dF9pbmZvLnRpbWVvdXRfbXMgPSBfZHB1X2VuY29kZXJfcGh5c19jbWRfZ2V0X2lkbGVfdGltZW91 dChjbWRfZW5jKTsKLQotCS8qIHdhaXQgZm9yIGF1dG9yZWZyZXNoIGtpY2tvZmYgdG8gc3RhcnQg Ki8KLQlyZXQgPSBkcHVfZW5jb2Rlcl9oZWxwZXJfd2FpdF9mb3JfaXJxKHBoeXNfZW5jLAotCQkJ SU5UUl9JRFhfQVVUT1JFRlJFU0hfRE9ORSwgJndhaXRfaW5mbyk7Ci0KLQkvKiBkb3VibGUgY2hl Y2sgdGhhdCBraWNrb2ZmIGhhcyBzdGFydGVkIGJ5IHJlYWRpbmcgd3JpdGUgcHRyIHJlZyAqLwot CWlmICghcmV0KQotCQlyZXQgPSBfZHB1X2VuY29kZXJfcGh5c19jbWRfcG9sbF93cml0ZV9wb2lu dGVyX3N0YXJ0ZWQoCi0JCQlwaHlzX2VuYyk7Ci0JZWxzZQotCQlkcHVfZW5jb2Rlcl9oZWxwZXJf cmVwb3J0X2lycV90aW1lb3V0KHBoeXNfZW5jLAotCQkJCUlOVFJfSURYX0FVVE9SRUZSRVNIX0RP TkUpOwotCi0JcmV0dXJuIHJldDsKLX0KLQogc3RhdGljIGludCBkcHVfZW5jb2Rlcl9waHlzX2Nt ZF9jb250cm9sX3ZibGFua19pcnEoCiAJCXN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzICpwaHlzX2Vu YywKIAkJYm9vbCBlbmFibGUpCkBAIC01NTAsMjAgKzM3MiwxMyBAQCB2b2lkIGRwdV9lbmNvZGVy X3BoeXNfY21kX2lycV9jb250cm9sKHN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzICpwaHlzX2VuYywK IAkJZHB1X2VuY29kZXJfaGVscGVyX3JlZ2lzdGVyX2lycShwaHlzX2VuYywgSU5UUl9JRFhfVU5E RVJSVU4pOwogCQlkcHVfZW5jb2Rlcl9waHlzX2NtZF9jb250cm9sX3ZibGFua19pcnEocGh5c19l bmMsIHRydWUpOwogCi0JCWlmIChkcHVfZW5jb2Rlcl9waHlzX2NtZF9pc19tYXN0ZXIocGh5c19l bmMpKSB7CisJCWlmIChkcHVfZW5jb2Rlcl9waHlzX2NtZF9pc19tYXN0ZXIocGh5c19lbmMpKQog CQkJZHB1X2VuY29kZXJfaGVscGVyX3JlZ2lzdGVyX2lycShwaHlzX2VuYywKIAkJCQkJSU5UUl9J RFhfQ1RMX1NUQVJUKTsKLQkJCWRwdV9lbmNvZGVyX2hlbHBlcl9yZWdpc3Rlcl9pcnEocGh5c19l bmMsCi0JCQkJCUlOVFJfSURYX0FVVE9SRUZSRVNIX0RPTkUpOwotCQl9Ci0KIAl9IGVsc2Ugewot CQlpZiAoZHB1X2VuY29kZXJfcGh5c19jbWRfaXNfbWFzdGVyKHBoeXNfZW5jKSkgeworCQlpZiAo ZHB1X2VuY29kZXJfcGh5c19jbWRfaXNfbWFzdGVyKHBoeXNfZW5jKSkKIAkJCWRwdV9lbmNvZGVy X2hlbHBlcl91bnJlZ2lzdGVyX2lycShwaHlzX2VuYywKIAkJCQkJSU5UUl9JRFhfQ1RMX1NUQVJU KTsKLQkJCWRwdV9lbmNvZGVyX2hlbHBlcl91bnJlZ2lzdGVyX2lycShwaHlzX2VuYywKLQkJCQkJ SU5UUl9JRFhfQVVUT1JFRlJFU0hfRE9ORSk7Ci0JCX0KIAogCQlkcHVfZW5jb2Rlcl9oZWxwZXJf dW5yZWdpc3Rlcl9pcnEocGh5c19lbmMsIElOVFJfSURYX1VOREVSUlVOKTsKIAkJZHB1X2VuY29k ZXJfcGh5c19jbWRfY29udHJvbF92YmxhbmtfaXJxKHBoeXNfZW5jLCBmYWxzZSk7CkBAIC03MzYs MzAgKzU1MSw2IEBAIHN0YXRpYyB2b2lkIGRwdV9lbmNvZGVyX3BoeXNfY21kX2VuYWJsZShzdHJ1 Y3QgZHB1X2VuY29kZXJfcGh5cyAqcGh5c19lbmMpCiAJcGh5c19lbmMtPmVuYWJsZV9zdGF0ZSA9 IERQVV9FTkNfRU5BQkxFRDsKIH0KIAotc3RhdGljIGJvb2wgZHB1X2VuY29kZXJfcGh5c19jbWRf aXNfYXV0b3JlZnJlc2hfZW5hYmxlZCgKLQkJc3RydWN0IGRwdV9lbmNvZGVyX3BoeXMgKnBoeXNf ZW5jKQotewotCXN0cnVjdCBkcHVfaHdfcGluZ3BvbmcgKmh3X3BwOwotCXN0cnVjdCBkcHVfaHdf YXV0b3JlZnJlc2ggY2ZnOwotCWludCByZXQ7Ci0KLQlpZiAoIXBoeXNfZW5jIHx8ICFwaHlzX2Vu Yy0+aHdfcHApCi0JCXJldHVybiAwOwotCi0JaWYgKCFkcHVfZW5jb2Rlcl9waHlzX2NtZF9pc19t YXN0ZXIocGh5c19lbmMpKQotCQlyZXR1cm4gMDsKLQotCWh3X3BwID0gcGh5c19lbmMtPmh3X3Bw OwotCWlmICghaHdfcHAtPm9wcy5nZXRfYXV0b3JlZnJlc2gpCi0JCXJldHVybiAwOwotCi0JcmV0 ID0gaHdfcHAtPm9wcy5nZXRfYXV0b3JlZnJlc2goaHdfcHAsICZjZmcpOwotCWlmIChyZXQpCi0J CXJldHVybiAwOwotCi0JcmV0dXJuIGNmZy5lbmFibGU7Ci19Ci0KIHN0YXRpYyB2b2lkIF9kcHVf ZW5jb2Rlcl9waHlzX2NtZF9jb25uZWN0X3RlKAogCQlzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5cyAq cGh5c19lbmMsIGJvb2wgZW5hYmxlKQogewpAQCAtODY5LDggKzY2MCw3IEBAIHN0YXRpYyB2b2lk IGRwdV9lbmNvZGVyX3BoeXNfY21kX3ByZXBhcmVfZm9yX2tpY2tvZmYoCiAJRFBVX0RFQlVHX0NN REVOQyhjbWRfZW5jLCAicHAgJWRcbiIsIHBoeXNfZW5jLT5od19wcC0+aWR4IC0gUElOR1BPTkdf MCk7CiAKIAlEUFVfRVZUMzIoRFJNSUQocGh5c19lbmMtPnBhcmVudCksIHBoeXNfZW5jLT5od19w cC0+aWR4IC0gUElOR1BPTkdfMCwKLQkJCWF0b21pY19yZWFkKCZwaHlzX2VuYy0+cGVuZGluZ19r aWNrb2ZmX2NudCksCi0JCQlhdG9taWNfcmVhZCgmY21kX2VuYy0+YXV0b3JlZnJlc2gua2lja29m Zl9jbnQpKTsKKwkJCWF0b21pY19yZWFkKCZwaHlzX2VuYy0+cGVuZGluZ19raWNrb2ZmX2NudCkp OwogCiAJLyoKIAkgKiBNYXJrIGtpY2tvZmYgcmVxdWVzdCBhcyBvdXRzdGFuZGluZy4gSWYgdGhl cmUgYXJlIG1vcmUgdGhhbiBvbmUsCkBAIC05NTQsMTAgKzc0NCw2IEBAIHN0YXRpYyBpbnQgZHB1 X2VuY29kZXJfcGh5c19jbWRfd2FpdF9mb3JfY29tbWl0X2RvbmUoCiAJaWYgKGRwdV9lbmNvZGVy X3BoeXNfY21kX2lzX21hc3RlcihwaHlzX2VuYykpCiAJCXJjID0gX2RwdV9lbmNvZGVyX3BoeXNf Y21kX3dhaXRfZm9yX2N0bF9zdGFydChwaHlzX2VuYyk7CiAKLQlpZiAoIXJjICYmIGRwdV9lbmNv ZGVyX3BoeXNfY21kX2lzX21hc3RlcihwaHlzX2VuYykgJiYKLQkJCWNtZF9lbmMtPmF1dG9yZWZy ZXNoLmNmZy5lbmFibGUpCi0JCXJjID0gX2RwdV9lbmNvZGVyX3BoeXNfY21kX3dhaXRfZm9yX2F1 dG9yZWZyZXNoX2RvbmUocGh5c19lbmMpOwotCiAJLyogcmVxdWlyZWQgZm9yIGJvdGggY29udHJv bGxlcnMgKi8KIAlpZiAoIXJjICYmIGNtZF9lbmMtPnNlcmlhbGl6ZV93YWl0NHBwKQogCQlkcHVf ZW5jb2Rlcl9waHlzX2NtZF9wcmVwYXJlX2Zvcl9raWNrb2ZmKHBoeXNfZW5jLCBOVUxMKTsKQEAg LTk5Myw1OCArNzc5LDYgQEAgc3RhdGljIGludCBkcHVfZW5jb2Rlcl9waHlzX2NtZF93YWl0X2Zv cl92YmxhbmsoCiAJcmV0dXJuIHJjOwogfQogCi1zdGF0aWMgdm9pZCBkcHVfZW5jb2Rlcl9waHlz X2NtZF9wcmVwYXJlX2NvbW1pdCgKLQkJc3RydWN0IGRwdV9lbmNvZGVyX3BoeXMgKnBoeXNfZW5j KQotewotCXN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzX2NtZCAqY21kX2VuYyA9Ci0JCXRvX2RwdV9l bmNvZGVyX3BoeXNfY21kKHBoeXNfZW5jKTsKLQl1bnNpZ25lZCBsb25nIGxvY2tfZmxhZ3M7Ci0K LQlpZiAoIXBoeXNfZW5jKQotCQlyZXR1cm47Ci0KLQlpZiAoIWRwdV9lbmNvZGVyX3BoeXNfY21k X2lzX21hc3RlcihwaHlzX2VuYykpCi0JCXJldHVybjsKLQotCURQVV9FVlQzMihEUk1JRChwaHlz X2VuYy0+cGFyZW50KSwgcGh5c19lbmMtPmludGZfaWR4IC0gSU5URl8wLAotCQkJY21kX2VuYy0+ YXV0b3JlZnJlc2guY2ZnLmVuYWJsZSk7Ci0KLQlpZiAoIWRwdV9lbmNvZGVyX3BoeXNfY21kX2lz X2F1dG9yZWZyZXNoX2VuYWJsZWQocGh5c19lbmMpKQotCQlyZXR1cm47Ci0KLQkvKioKLQkgKiBB dXRvcmVmcmVzaCBtdXN0IGJlIGRpc2FibGVkIGNhcmVmdWxseToKLQkgKiAgLSBBdXRvcmVmcmVz aCBtdXN0IGJlIGRpc2FibGVkIGJldHdlZW4gcHBfZG9uZSBhbmQgdGUKLQkgKiAgICBzaWduYWwg cHJpb3IgdG8gc2RtODQ1IHRhcmdldHMuIEFsbCB0YXJnZXRzIGFmdGVyIHNkbTg0NQotCSAqICAg IHN1cHBvcnRzIGF1dG9yZWZyZXNoIGRpc2FibGUgd2l0aG91dCB0dXJuaW5nIG9mZiB0aGUKLQkg KiAgICBoYXJkd2FyZSBURSBhbmQgcHBfZG9uZSB3YWl0LgotCSAqCi0JICogIC0gV2FpdCBmb3Ig VFggdG8gQ29tcGxldGUKLQkgKiAgICBXYWl0IGZvciBQUERvbmUgY29uZmlybXMgdGhlIGxhc3Qg ZnJhbWUgdHJhbnNmZXIgaXMgY29tcGxldGUuCi0JICoKLQkgKiAgLSBMZWF2ZSBBdXRvcmVmcmVz aCBEaXNhYmxlZAotCSAqICAgIC0gQXNzdW1lIGRpc2FibGUgb2YgQXV0b3JlZnJlc2ggc2luY2Ug aXQgaXMgbm93IHNhZmUKLQkgKiAgICAtIENhbiBub3cgc2FmZWx5IERpc2FibGUgRW5jb2Rlciwg ZG8gZGVidWcgcHJpbnRpbmcsIGV0Yy4KLQkgKiAgICAgd2l0aG91dCB3b3JyeWluZyB0aGF0IEF1 dG9yZWZyZXNoIHdpbGwga2lja29mZgotCSAqLwotCi0Jc3Bpbl9sb2NrX2lycXNhdmUocGh5c19l bmMtPmVuY19zcGlubG9jaywgbG9ja19mbGFncyk7Ci0KLQlfZHB1X2VuY29kZXJfcGh5c19jbWRf Y29uZmlnX2F1dG9yZWZyZXNoKHBoeXNfZW5jLCAwKTsKLQotCS8qIGNoZWNrIGZvciBvdXRzdGFu ZGluZyBUWCAqLwotCWlmIChfZHB1X2VuY29kZXJfcGh5c19jbWRfaXNfb25nb2luZ19wcHR4KHBo eXNfZW5jKSkKLQkJYXRvbWljX2FkZF91bmxlc3MoJnBoeXNfZW5jLT5wZW5kaW5nX2tpY2tvZmZf Y250LCAxLCAxKTsKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKHBoeXNfZW5jLT5lbmNfc3Bpbmxv Y2ssIGxvY2tfZmxhZ3MpOwotCi0JLyogd2FpdCBmb3IgcHBkb25lIGlmIG5lY2Vzc2FyeSBkdWUg dG8gY2F0Y2hpbmcgb25nb2luZyBUWCAqLwotCWlmIChfZHB1X2VuY29kZXJfcGh5c19jbWRfd2Fp dF9mb3JfaWRsZShwaHlzX2VuYykpCi0JCURQVV9FUlJPUl9DTURFTkMoY21kX2VuYywgInBwOiVk IGtpY2tvZmYgdGltZWQgb3V0XG4iLAotCQkJCXBoeXNfZW5jLT5od19wcC0+aWR4IC0gUElOR1BP TkdfMCk7Ci0KLQlEUFVfREVCVUdfQ01ERU5DKGNtZF9lbmMsICJkaXNhYmxlZCBhdXRvcmVmcmVz aFxuIik7Ci19Ci0KIHN0YXRpYyB2b2lkIGRwdV9lbmNvZGVyX3BoeXNfY21kX2hhbmRsZV9wb3N0 X2tpY2tvZmYoCiAJCXN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzICpwaHlzX2VuYykKIHsKQEAgLTEw NjEsMjcgKzc5NSwxNSBAQCBzdGF0aWMgdm9pZCBkcHVfZW5jb2Rlcl9waHlzX2NtZF9oYW5kbGVf cG9zdF9raWNrb2ZmKAogc3RhdGljIHZvaWQgZHB1X2VuY29kZXJfcGh5c19jbWRfdHJpZ2dlcl9z dGFydCgKIAkJc3RydWN0IGRwdV9lbmNvZGVyX3BoeXMgKnBoeXNfZW5jKQogewotCXN0cnVjdCBk cHVfZW5jb2Rlcl9waHlzX2NtZCAqY21kX2VuYyA9Ci0JCQl0b19kcHVfZW5jb2Rlcl9waHlzX2Nt ZChwaHlzX2VuYyk7Ci0JdTMyIGZyYW1lX2NudDsKLQogCWlmICghcGh5c19lbmMpCiAJCXJldHVy bjsKIAotCS8qIHdlIGRvbid0IGlzc3VlIENUTF9TVEFSVCB3aGVuIHVzaW5nIGF1dG9yZWZyZXNo ICovCi0JZnJhbWVfY250ID0gX2RwdV9lbmNvZGVyX3BoeXNfY21kX2dldF9hdXRvcmVmcmVzaF9w cm9wZXJ0eShwaHlzX2VuYyk7Ci0JaWYgKGZyYW1lX2NudCkgewotCQlfZHB1X2VuY29kZXJfcGh5 c19jbWRfY29uZmlnX2F1dG9yZWZyZXNoKHBoeXNfZW5jLCBmcmFtZV9jbnQpOwotCQlhdG9taWNf aW5jKCZjbWRfZW5jLT5hdXRvcmVmcmVzaC5raWNrb2ZmX2NudCk7Ci0JfSBlbHNlIHsKLQkJZHB1 X2VuY29kZXJfaGVscGVyX3RyaWdnZXJfc3RhcnQocGh5c19lbmMpOwotCX0KKwlkcHVfZW5jb2Rl cl9oZWxwZXJfdHJpZ2dlcl9zdGFydChwaHlzX2VuYyk7CiB9CiAKIHN0YXRpYyB2b2lkIGRwdV9l bmNvZGVyX3BoeXNfY21kX2luaXRfb3BzKAogCQlzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5c19vcHMg Km9wcykKIHsKLQlvcHMtPnByZXBhcmVfY29tbWl0ID0gZHB1X2VuY29kZXJfcGh5c19jbWRfcHJl cGFyZV9jb21taXQ7CiAJb3BzLT5pc19tYXN0ZXIgPSBkcHVfZW5jb2Rlcl9waHlzX2NtZF9pc19t YXN0ZXI7CiAJb3BzLT5tb2RlX3NldCA9IGRwdV9lbmNvZGVyX3BoeXNfY21kX21vZGVfc2V0Owog CW9wcy0+bW9kZV9maXh1cCA9IGRwdV9lbmNvZGVyX3BoeXNfY21kX21vZGVfZml4dXA7CkBAIC0x MTAwLDggKzgyMiw2IEBAIHN0YXRpYyB2b2lkIGRwdV9lbmNvZGVyX3BoeXNfY21kX2luaXRfb3Bz KAogCW9wcy0+aXJxX2NvbnRyb2wgPSBkcHVfZW5jb2Rlcl9waHlzX2NtZF9pcnFfY29udHJvbDsK IAlvcHMtPnJlc3RvcmUgPSBkcHVfZW5jb2Rlcl9waHlzX2NtZF9lbmFibGVfaGVscGVyOwogCW9w cy0+cHJlcGFyZV9pZGxlX3BjID0gZHB1X2VuY29kZXJfcGh5c19jbWRfcHJlcGFyZV9pZGxlX3Bj OwotCW9wcy0+aXNfYXV0b3JlZnJlc2hfZW5hYmxlZCA9Ci0JCQlkcHVfZW5jb2Rlcl9waHlzX2Nt ZF9pc19hdXRvcmVmcmVzaF9lbmFibGVkOwogCW9wcy0+aGFuZGxlX3Bvc3Rfa2lja29mZiA9IGRw dV9lbmNvZGVyX3BoeXNfY21kX2hhbmRsZV9wb3N0X2tpY2tvZmY7CiAJb3BzLT5nZXRfbGluZV9j b3VudCA9IGRwdV9lbmNvZGVyX3BoeXNfY21kX2dldF9saW5lX2NvdW50OwogfQpAQCAtMTE3NSwy MCArODk1LDEyIEBAIHN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzICpkcHVfZW5jb2Rlcl9waHlzX2Nt ZF9pbml0KAogCWlycS0+aW50cl9pZHggPSBJTlRSX0lEWF9VTkRFUlJVTjsKIAlpcnEtPmNiLmZ1 bmMgPSBkcHVfZW5jb2Rlcl9waHlzX2NtZF91bmRlcnJ1bl9pcnE7CiAKLQlpcnEgPSAmcGh5c19l bmMtPmlycVtJTlRSX0lEWF9BVVRPUkVGUkVTSF9ET05FXTsKLQlpcnEtPm5hbWUgPSAiYXV0b3Jl ZnJlc2hfZG9uZSI7Ci0JaXJxLT5pbnRyX3R5cGUgPSBEUFVfSVJRX1RZUEVfUElOR19QT05HX0FV VE9fUkVGOwotCWlycS0+aW50cl9pZHggPSBJTlRSX0lEWF9BVVRPUkVGUkVTSF9ET05FOwotCWly cS0+Y2IuZnVuYyA9IGRwdV9lbmNvZGVyX3BoeXNfY21kX2F1dG9yZWZyZXNoX2RvbmVfaXJxOwot CiAJYXRvbWljX3NldCgmcGh5c19lbmMtPnZibGFua19yZWZjb3VudCwgMCk7CiAJYXRvbWljX3Nl dCgmcGh5c19lbmMtPnBlbmRpbmdfa2lja29mZl9jbnQsIDApOwogCWF0b21pY19zZXQoJnBoeXNf ZW5jLT5wZW5kaW5nX2N0bHN0YXJ0X2NudCwgMCk7CiAJYXRvbWljX3NldCgmY21kX2VuYy0+cGVu ZGluZ192YmxhbmtfY250LCAwKTsKIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZwaHlzX2VuYy0+cGVu ZGluZ19raWNrb2ZmX3dxKTsKIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZjbWRfZW5jLT5wZW5kaW5n X3ZibGFua193cSk7Ci0JYXRvbWljX3NldCgmY21kX2VuYy0+YXV0b3JlZnJlc2gua2lja29mZl9j bnQsIDApOwotCWluaXRfd2FpdHF1ZXVlX2hlYWQoJmNtZF9lbmMtPmF1dG9yZWZyZXNoLmtpY2tv ZmZfd3EpOwogCiAJRFBVX0RFQlVHX0NNREVOQyhjbWRfZW5jLCAiY3JlYXRlZFxuIik7CiAKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od19waW5ncG9uZy5j IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X3Bpbmdwb25nLmMKaW5kZXgg OTMwOGY1Yy4uMGJmYjUxMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2Rw dTEvZHB1X2h3X3Bpbmdwb25nLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEv ZHB1X2h3X3Bpbmdwb25nLmMKQEAgLTMxLDcgKzMxLDYgQEAKICNkZWZpbmUgUFBfV1JfUFRSX0lS USAgICAgICAgICAgICAgICAgICAweDAyNAogI2RlZmluZSBQUF9PVVRfTElORV9DT1VOVCAgICAg ICAgICAgICAgIDB4MDI4CiAjZGVmaW5lIFBQX0xJTkVfQ09VTlQgICAgICAgICAgICAgICAgICAg MHgwMkMKLSNkZWZpbmUgUFBfQVVUT1JFRlJFU0hfQ09ORklHICAgICAgICAgICAweDAzMAogCiAj ZGVmaW5lIFBQX0ZCQ19NT0RFICAgICAgICAgICAgICAgICAgICAgMHgwMzQKICNkZWZpbmUgUFBf RkJDX0JVREdFVF9DVEwgICAgICAgICAgICAgICAweDAzOApAQCAtOTMsNDQgKzkyLDYgQEAgc3Rh dGljIGludCBkcHVfaHdfcHBfc2V0dXBfdGVfY29uZmlnKHN0cnVjdCBkcHVfaHdfcGluZ3Bvbmcg KnBwLAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGRwdV9od19wcF9zZXR1cF9hdXRvcmVm cmVzaF9jb25maWcoc3RydWN0IGRwdV9od19waW5ncG9uZyAqcHAsCi0JCXN0cnVjdCBkcHVfaHdf YXV0b3JlZnJlc2ggKmNmZykKLXsKLQlzdHJ1Y3QgZHB1X2h3X2Jsa19yZWdfbWFwICpjOwotCXUz MiByZWZyZXNoX2NmZzsKLQotCWlmICghcHAgfHwgIWNmZykKLQkJcmV0dXJuIC1FSU5WQUw7Ci0J YyA9ICZwcC0+aHc7Ci0KLQlpZiAoY2ZnLT5lbmFibGUpCi0JCXJlZnJlc2hfY2ZnID0gQklUKDMx KSB8IGNmZy0+ZnJhbWVfY291bnQ7Ci0JZWxzZQotCQlyZWZyZXNoX2NmZyA9IDA7Ci0KLQlEUFVf UkVHX1dSSVRFKGMsIFBQX0FVVE9SRUZSRVNIX0NPTkZJRywgcmVmcmVzaF9jZmcpOwotCURQVV9F VlQzMihwcC0+aWR4IC0gUElOR1BPTkdfMCwgcmVmcmVzaF9jZmcpOwotCi0JcmV0dXJuIDA7Ci19 Ci0KLXN0YXRpYyBpbnQgZHB1X2h3X3BwX2dldF9hdXRvcmVmcmVzaF9jb25maWcoc3RydWN0IGRw dV9od19waW5ncG9uZyAqcHAsCi0JCXN0cnVjdCBkcHVfaHdfYXV0b3JlZnJlc2ggKmNmZykKLXsK LQlzdHJ1Y3QgZHB1X2h3X2Jsa19yZWdfbWFwICpjOwotCXUzMiB2YWw7Ci0KLQlpZiAoIXBwIHx8 ICFjZmcpCi0JCXJldHVybiAtRUlOVkFMOwotCi0JYyA9ICZwcC0+aHc7Ci0JdmFsID0gRFBVX1JF R19SRUFEKGMsIFBQX0FVVE9SRUZSRVNIX0NPTkZJRyk7Ci0JY2ZnLT5lbmFibGUgPSAodmFsICYg QklUKDMxKSkgPj4gMzE7Ci0JY2ZnLT5mcmFtZV9jb3VudCA9IHZhbCAmIDB4ZmZmZjsKLQotCXJl dHVybiAwOwotfQotCiBzdGF0aWMgaW50IGRwdV9od19wcF9wb2xsX3RpbWVvdXRfd3JfcHRyKHN0 cnVjdCBkcHVfaHdfcGluZ3BvbmcgKnBwLAogCQl1MzIgdGltZW91dF91cykKIHsKQEAgLTI5Myw4 ICsyNTQsNiBAQCBzdGF0aWMgdm9pZCBfc2V0dXBfcGluZ3Bvbmdfb3BzKHN0cnVjdCBkcHVfaHdf cGluZ3Bvbmdfb3BzICpvcHMsCiAJb3BzLT5lbmFibGVfdGVhcmNoZWNrID0gZHB1X2h3X3BwX2Vu YWJsZV90ZTsKIAlvcHMtPmNvbm5lY3RfZXh0ZXJuYWxfdGUgPSBkcHVfaHdfcHBfY29ubmVjdF9l eHRlcm5hbF90ZTsKIAlvcHMtPmdldF92c3luY19pbmZvID0gZHB1X2h3X3BwX2dldF92c3luY19p bmZvOwotCW9wcy0+c2V0dXBfYXV0b3JlZnJlc2ggPSBkcHVfaHdfcHBfc2V0dXBfYXV0b3JlZnJl c2hfY29uZmlnOwotCW9wcy0+Z2V0X2F1dG9yZWZyZXNoID0gZHB1X2h3X3BwX2dldF9hdXRvcmVm cmVzaF9jb25maWc7CiAJb3BzLT5wb2xsX3RpbWVvdXRfd3JfcHRyID0gZHB1X2h3X3BwX3BvbGxf dGltZW91dF93cl9wdHI7CiAJb3BzLT5nZXRfbGluZV9jb3VudCA9IGRwdV9od19wcF9nZXRfbGlu ZV9jb3VudDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1 X2h3X3Bpbmdwb25nLmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdfcGlu Z3BvbmcuaAppbmRleCA5M2QwM2NjZS4uN2RiZmNhZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X3Bpbmdwb25nLmgKKysrIGIvZHJpdmVycy9ncHUvZHJt L21zbS9kaXNwL2RwdTEvZHB1X2h3X3Bpbmdwb25nLmgKQEAgLTM2LDExICszNiw2IEBAIHN0cnVj dCBkcHVfaHdfdGVhcl9jaGVjayB7CiAJdTggaHdfdnN5bmNfbW9kZTsKIH07CiAKLXN0cnVjdCBk cHVfaHdfYXV0b3JlZnJlc2ggewotCWJvb2wgIGVuYWJsZTsKLQl1MzIgZnJhbWVfY291bnQ7Ci19 OwotCiBzdHJ1Y3QgZHB1X2h3X3BwX3ZzeW5jX2luZm8gewogCXUzMiByZF9wdHJfaW5pdF92YWw7 CS8qIHZhbHVlIG9mIHJkIHBvaW50ZXIgYXQgdnN5bmMgZWRnZSAqLwogCXUzMiByZF9wdHJfZnJh bWVfY291bnQ7CS8qIG51bSBmcmFtZXMgc2VudCBzaW5jZSBlbmFibGluZyBpbnRlcmZhY2UgKi8K QEAgLTU1LDcgKzUwLDYgQEAgc3RydWN0IGRwdV9od19wcF92c3luY19pbmZvIHsKICAqICBAc2V0 dXBfdGVhcmNoZWNrIDogcHJvZ3JhbSB0ZWFyIGNoZWNrIHZhbHVlcwogICogIEBlbmFibGVfdGVh cmNoZWNrIDogZW5hYmxlcyB0ZWFyIGNoZWNrCiAgKiAgQGdldF92c3luY19pbmZvIDogcmV0cmll cyB0aW1pbmcgaW5mbyBvZiB0aGUgcGFuZWwKLSAqICBAc2V0dXBfYXV0b3JlZnJlc2ggOiBwcm9n cmFtIGF1dG8gcmVmcmVzaAogICogIEBzZXR1cF9kaXRoZXIgOiBmdW5jdGlvbiB0byBwcm9ncmFt IHRoZSBkaXRoZXIgaHcgYmxvY2sKICAqICBAZ2V0X2xpbmVfY291bnQ6IG9idGFpbiBjdXJyZW50 IHZlcnRpY2FsIGxpbmUgY291bnRlcgogICovCkBAIC04OCwxOCArODIsNiBAQCBzdHJ1Y3QgZHB1 X2h3X3Bpbmdwb25nX29wcyB7CiAJCQlzdHJ1Y3QgZHB1X2h3X3BwX3ZzeW5jX2luZm8gICppbmZv KTsKIAogCS8qKgotCSAqIGNvbmZpZ3VyZSBhbmQgZW5hYmxlIHRoZSBhdXRvcmVmcmVzaCBjb25m aWcKLQkgKi8KLQlpbnQgKCpzZXR1cF9hdXRvcmVmcmVzaCkoc3RydWN0IGRwdV9od19waW5ncG9u ZyAqcHAsCi0JCQlzdHJ1Y3QgZHB1X2h3X2F1dG9yZWZyZXNoICpjZmcpOwotCi0JLyoqCi0JICog cmV0cmlldmUgYXV0b3JlZnJlc2ggY29uZmlnIGZyb20gaGFyZHdhcmUKLQkgKi8KLQlpbnQgKCpn ZXRfYXV0b3JlZnJlc2gpKHN0cnVjdCBkcHVfaHdfcGluZ3BvbmcgKnBwLAotCQkJc3RydWN0IGRw dV9od19hdXRvcmVmcmVzaCAqY2ZnKTsKLQotCS8qKgogCSAqIHBvbGwgdW50aWwgd3JpdGUgcG9p bnRlciB0cmFuc21pc3Npb24gc3RhcnRzCiAJICogQFJldHVybjogMCBvbiBzdWNjZXNzLCAtRVRJ TUVET1VUIG9uIHRpbWVvdXQKIAkgKi8KLS0gClRoZSBRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRl ciwgSW5jLiBpcyBhIG1lbWJlciBvZiB0aGUgQ29kZSBBdXJvcmEgRm9ydW0sCmEgTGludXggRm91 bmRhdGlvbiBDb2xsYWJvcmF0aXZlIFByb2plY3QKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkZyZWVkcmVubyBtYWlsaW5nIGxpc3QKRnJlZWRyZW5vQGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ZyZWVkcmVubwo=