From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeykumar Sankaran Subject: [DPU PATCH v3 3/6] drm/msm: remove panel autorefresh support for SDM845 Date: Fri, 25 May 2018 14:26:04 -0700 Message-ID: <1527283567-6546-4-git-send-email-jsanka@codeaurora.org> References: <1527283567-6546-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: <1527283567-6546-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, Rajesh Yadav List-Id: linux-arm-msm@vger.kernel.org UmVtb3ZlIGF1dG9yZWZyZXNoIHN1cHBvcnQgZm9yIHNtYXJ0IHBhbmVscyBpbiBTRE04NDUgZm9y IG5vdy4KSXQgbmVlZHMgbW9yZSBkaXNjdXNzaW9uIHRvIGZpZ3VyZSBvdXQgdGhlIHVzZXIgc3Bh Y2UKY29tbXVuaWNhdGlvbiB0byBzZXQgcHJlZmVyZW5jZSBmb3IgdGhlIGZlYXR1cmUuCgpjaGFu Z2VzIGluIHYyOgoJLSBub25lCmNoYW5nZXMgaW4gdjM6CgktIG5vbmUKClJldmlld2VkLWJ5OiBT ZWFuIFBhdWwgPHNlYW5wYXVsQGNocm9taXVtLm9yZz4KU2lnbmVkLW9mZi1ieTogSmV5a3VtYXIg U2Fua2FyYW4gPGpzYW5rYUBjb2RlYXVyb3JhLm9yZz4KU2lnbmVkLW9mZi1ieTogU2VhbiBQYXVs IDxzZWFucGF1bEBjaHJvbWl1bS5vcmc+ClNpZ25lZC1vZmYtYnk6IFJhamVzaCBZYWRhdiA8cnlh ZGF2QGNvZGVhdXJvcmEub3JnPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2Rw dV9jb25uZWN0b3IuYyAgICAgIHwgICA3IC0KIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUx L2RwdV9lbmNvZGVyLmMgICAgICAgIHwgIDM3ICstLQogZHJpdmVycy9ncHUvZHJtL21zbS9kaXNw L2RwdTEvZHB1X2VuY29kZXJfcGh5cy5oICAgfCAgMjAgLS0KIC4uLi9ncHUvZHJtL21zbS9kaXNw L2RwdTEvZHB1X2VuY29kZXJfcGh5c19jbWQuYyAgIHwgMjk4ICstLS0tLS0tLS0tLS0tLS0tLS0t LQogZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X3Bpbmdwb25nLmMgICAgfCAg NDEgLS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdfcGluZ3BvbmcuaCAg ICB8ICAxOCAtLQogNiBmaWxlcyBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCA0MTAgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2Nv bm5lY3Rvci5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2Nvbm5lY3Rvci5j CmluZGV4IGE4OTM5MmUuLjk2OTkxOWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20v ZGlzcC9kcHUxL2RwdV9jb25uZWN0b3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3Av ZHB1MS9kcHVfY29ubmVjdG9yLmMKQEAgLTI0LDkgKzI0LDYgQEAKIAogI2RlZmluZSBCTF9OT0RF X05BTUVfU0laRSAzMgogCi0vKiBBdXRvcmVmcmVzaCB3aWxsIG9jY3VyIGFmdGVyIEZSQU1FX0NO VCBmcmFtZXMuIExhcmdlIHZhbHVlcyBhcmUgdW5saWtlbHkgKi8KLSNkZWZpbmUgQVVUT1JFRlJF U0hfTUFYX0ZSQU1FX0NOVCA2Ci0KICNkZWZpbmUgRFBVX0RFQlVHX0NPTk4oYywgZm10LCAuLi4p IERQVV9ERUJVRygiY29ubiVkICIgZm10LFwKIAkJKGMpID8gKGMpLT5iYXNlLmJhc2UuaWQgOiAt MSwgIyNfX1ZBX0FSR1NfXykKIApAQCAtMTEyNywxMCArMTEyNCw2IEBAIHN0cnVjdCBkcm1fY29u bmVjdG9yICpkcHVfY29ubmVjdG9yX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJQ09O TkVDVE9SX1BST1BfQURfQkxfU0NBTEUpOwogI2VuZGlmCiAKLQltc21fcHJvcGVydHlfaW5zdGFs bF9yYW5nZSgmY19jb25uLT5wcm9wZXJ0eV9pbmZvLCAiYXV0b3JlZnJlc2giLAotCQkJMHgwLCAw LCBBVVRPUkVGUkVTSF9NQVhfRlJBTUVfQ05ULCAwLAotCQkJQ09OTkVDVE9SX1BST1BfQVVUT1JF RlJFU0gpOwotCiAJLyogZW51bS9iaXRtYXNrIHByb3BlcnRpZXMgKi8KIAltc21fcHJvcGVydHlf aW5zdGFsbF9lbnVtKCZjX2Nvbm4tPnByb3BlcnR5X2luZm8sICJ0b3BvbG9neV9uYW1lIiwKIAkJ CURSTV9NT0RFX1BST1BfSU1NVVRBQkxFLCAwLCBlX3RvcG9sb2d5X25hbWUsCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5jIGIvZHJpdmVycy9n cHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuYwppbmRleCBkMDQwOTViLi4zODU0NDEw IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmMKQEAgLTgx Myw3ICs4MTMsNiBAQCBzdGF0aWMgdm9pZCBfZHB1X2VuY29kZXJfcmVzb3VyY2VfY29udHJvbF9o ZWxwZXIoc3RydWN0IGRybV9lbmNvZGVyICpkcm1fZW5jLAogc3RhdGljIGludCBkcHVfZW5jb2Rl cl9yZXNvdXJjZV9jb250cm9sKHN0cnVjdCBkcm1fZW5jb2RlciAqZHJtX2VuYywKIAkJdTMyIHN3 X2V2ZW50KQogewotCWJvb2wgYXV0b3JlZnJlc2hfZW5hYmxlZCA9IGZhbHNlOwogCXVuc2lnbmVk IGludCBscCwgaWRsZV90aW1lb3V0OwogCXN0cnVjdCBkcHVfZW5jb2Rlcl92aXJ0ICpkcHVfZW5j OwogCXN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXY7CkBAIC05MjAsMTMgKzkxOSw2IEBAIHN0 YXRpYyBpbnQgZHB1X2VuY29kZXJfcmVzb3VyY2VfY29udHJvbChzdHJ1Y3QgZHJtX2VuY29kZXIg KmRybV9lbmMsCiAJCQlyZXR1cm4gMDsKIAkJfQogCi0JCS8qIHNjaGVkdWxlIGRlbGF5ZWQgb2Zm IHdvcmsgaWYgYXV0b3JlZnJlc2ggaXMgZGlzYWJsZWQgKi8KLQkJaWYgKGRwdV9lbmMtPmN1cl9t YXN0ZXIgJiYKLQkJCWRwdV9lbmMtPmN1cl9tYXN0ZXItPm9wcy5pc19hdXRvcmVmcmVzaF9lbmFi bGVkKQotCQkJYXV0b3JlZnJlc2hfZW5hYmxlZCA9Ci0JCQkJZHB1X2VuYy0+Y3VyX21hc3Rlci0+ b3BzLmlzX2F1dG9yZWZyZXNoX2VuYWJsZWQoCi0JCQkJCQkJZHB1X2VuYy0+Y3VyX21hc3Rlcik7 Ci0KIAkJLyogc2V0IGlkbGUgdGltZW91dCBiYXNlZCBvbiBtYXN0ZXIgY29ubmVjdG9yJ3MgbHAg dmFsdWUgKi8KIAkJaWYgKGRwdV9lbmMtPmN1cl9tYXN0ZXIpCiAJCQlscCA9IGRwdV9jb25uZWN0 b3JfZ2V0X2xwKApAQCAtOTM5LDEzICs5MzEsMTIgQEAgc3RhdGljIGludCBkcHVfZW5jb2Rlcl9y ZXNvdXJjZV9jb250cm9sKHN0cnVjdCBkcm1fZW5jb2RlciAqZHJtX2VuYywKIAkJZWxzZQogCQkJ aWRsZV90aW1lb3V0ID0gZHB1X2VuYy0+aWRsZV90aW1lb3V0OwogCi0JCWlmICghYXV0b3JlZnJl c2hfZW5hYmxlZCkKLQkJCWt0aHJlYWRfcXVldWVfZGVsYXllZF93b3JrKAotCQkJCSZkaXNwX3Ro cmVhZC0+d29ya2VyLAotCQkJCSZkcHVfZW5jLT5kZWxheWVkX29mZl93b3JrLAotCQkJCW1zZWNz X3RvX2ppZmZpZXMoaWRsZV90aW1lb3V0KSk7CisJCWt0aHJlYWRfcXVldWVfZGVsYXllZF93b3Jr KAorCQkJJmRpc3BfdGhyZWFkLT53b3JrZXIsCisJCQkmZHB1X2VuYy0+ZGVsYXllZF9vZmZfd29y aywKKwkJCW1zZWNzX3RvX2ppZmZpZXMoaWRsZV90aW1lb3V0KSk7CisKIAkJRFBVX0VWVDMyKERS TUlEKGRybV9lbmMpLCBzd19ldmVudCwgZHB1X2VuYy0+cmNfc3RhdGUsCi0JCQkJYXV0b3JlZnJl c2hfZW5hYmxlZCwKIAkJCQlpZGxlX3RpbWVvdXQsIERQVV9FVlRMT0dfRlVOQ19DQVNFMik7CiAJ CURQVV9ERUJVR19FTkMoZHB1X2VuYywgInN3X2V2ZW50OiVkLCB3b3JrIHNjaGVkdWxlZFxuIiwK IAkJCQlzd19ldmVudCk7CkBAIC0xOTg4LDcgKzE5NzksNiBAQCBzdGF0aWMgdm9pZCBkcHVfZW5j b2Rlcl92c3luY19ldmVudF9oYW5kbGVyKHN0cnVjdCB0aW1lcl9saXN0ICp0KQogCXN0cnVjdCBk cm1fZW5jb2RlciAqZHJtX2VuYyA9ICZkcHVfZW5jLT5iYXNlOwogCXN0cnVjdCBtc21fZHJtX3By aXZhdGUgKnByaXY7CiAJc3RydWN0IG1zbV9kcm1fdGhyZWFkICpldmVudF90aHJlYWQ7Ci0JYm9v bCBhdXRvcmVmcmVzaF9lbmFibGVkID0gZmFsc2U7CiAKIAlpZiAoIWRybV9lbmMtPmRldiB8fCAh ZHJtX2VuYy0+ZGV2LT5kZXZfcHJpdmF0ZSB8fAogCQkJIWRybV9lbmMtPmNydGMpIHsKQEAgLTIw MDksMjIgKzE5OTksNyBAQCBzdGF0aWMgdm9pZCBkcHVfZW5jb2Rlcl92c3luY19ldmVudF9oYW5k bGVyKHN0cnVjdCB0aW1lcl9saXN0ICp0KQogCQlyZXR1cm47CiAJfQogCi0JaWYgKGRwdV9lbmMt PmN1cl9tYXN0ZXIgJiYKLQkJZHB1X2VuYy0+Y3VyX21hc3Rlci0+b3BzLmlzX2F1dG9yZWZyZXNo X2VuYWJsZWQpCi0JCWF1dG9yZWZyZXNoX2VuYWJsZWQgPQotCQkJZHB1X2VuYy0+Y3VyX21hc3Rl ci0+b3BzLmlzX2F1dG9yZWZyZXNoX2VuYWJsZWQoCi0JCQkJCQlkcHVfZW5jLT5jdXJfbWFzdGVy KTsKLQotCS8qCi0JICogUXVldWUgd29yayB0byB1cGRhdGUgdGhlIHZzeW5jIGV2ZW50IHRpbWVy Ci0JICogaWYgYXV0b3JlZnJlc2ggaXMgZW5hYmxlZC4KLQkgKi8KLQlEUFVfRVZUMzJfVkVSQk9T RShhdXRvcmVmcmVzaF9lbmFibGVkKTsKLQlpZiAoYXV0b3JlZnJlc2hfZW5hYmxlZCkKLQkJa3Ro cmVhZF9xdWV1ZV93b3JrKCZldmVudF90aHJlYWQtPndvcmtlciwKLQkJCQkmZHB1X2VuYy0+dnN5 bmNfZXZlbnRfd29yayk7Ci0JZWxzZQotCQlkZWxfdGltZXIoJmRwdV9lbmMtPnZzeW5jX2V2ZW50 X3RpbWVyKTsKKwlkZWxfdGltZXIoJmRwdV9lbmMtPnZzeW5jX2V2ZW50X3RpbWVyKTsKIH0KIAog c3RhdGljIHZvaWQgZHB1X2VuY29kZXJfdnN5bmNfZXZlbnRfd29ya19oYW5kbGVyKHN0cnVjdCBr dGhyZWFkX3dvcmsgKndvcmspCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3Av ZHB1MS9kcHVfZW5jb2Rlcl9waHlzLmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9k cHVfZW5jb2Rlcl9waHlzLmgKaW5kZXggOTExYWM2ZC4uNTc2YzQ3NSAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXJfcGh5cy5oCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyX3BoeXMuaApAQCAtMTI0LDggKzEy NCw2IEBAIHN0cnVjdCBkcHVfZW5jb2Rlcl92aXJ0X29wcyB7CiAgKiBAcHJlcGFyZV9pZGxlX3Bj OgkJcGh5cyBlbmNvZGVyIGNhbiB1cGRhdGUgdGhlIHZzeW5jX2VuYWJsZSBzdGF0dXMKICAqICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgb24gaWRsZSBwb3dlciBjb2xsYXBzZSBwcmVwYXJl CiAgKiBAcmVzdG9yZToJCQlSZXN0b3JlIGFsbCB0aGUgZW5jb2RlciBjb25maWdzLgotICogQGlz X2F1dG9yZWZyZXNoX2VuYWJsZWQ6CXByb3ZpZGVzIHRoZSBhdXRvcmVmcmVzaCBjdXJyZW50Ci0g KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZS9kaXNhYmxlIHN0YXRlLgogICog QGdldF9saW5lX2NvdW50OgkJT2J0YWluIGN1cnJlbnQgdmVydGljYWwgbGluZSBjb3VudAogICov CiAKQEAgLTE2Niw3ICsxNjQsNiBAQCBzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5c19vcHMgewogCXZv aWQgKCppcnFfY29udHJvbCkoc3RydWN0IGRwdV9lbmNvZGVyX3BoeXMgKnBoeXMsIGJvb2wgZW5h YmxlKTsKIAl2b2lkICgqcHJlcGFyZV9pZGxlX3BjKShzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5cyAq cGh5c19lbmMpOwogCXZvaWQgKCpyZXN0b3JlKShzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5cyAqcGh5 cyk7Ci0JYm9vbCAoKmlzX2F1dG9yZWZyZXNoX2VuYWJsZWQpKHN0cnVjdCBkcHVfZW5jb2Rlcl9w aHlzICpwaHlzKTsKIAlpbnQgKCpnZXRfbGluZV9jb3VudCkoc3RydWN0IGRwdV9lbmNvZGVyX3Bo eXMgKnBoeXMpOwogfTsKIApAQCAtMTc2LDggKzE3Myw2IEBAIHN0cnVjdCBkcHVfZW5jb2Rlcl9w aHlzX29wcyB7CiAgKiBASU5UUl9JRFhfUElOR1BPTkc6IFBpbmdwb25nIGRvbmUgdW50ZXJydXB0 IGZvciBjbWQgbW9kZSBwYW5lbAogICogQElOVFJfSURYX1VOREVSUlVOOiBVbmRlcnJ1biB1bnRl cnJ1cHQgZm9yIHZpZGVvIGFuZCBjbWQgbW9kZSBwYW5lbAogICogQElOVFJfSURYX1JEUFRSOiAg ICBSZWFkcG9pbnRlciBkb25lIHVudGVycnVwdCBmb3IgY21kIG1vZGUgcGFuZWwKLSAqIEBJTlRS X0lEWF9BVVRPUkVGUkVTSF9ET05FOiAgQXV0b3JlZnJlc2ggZG9uZSBmb3IgY21kIG1vZGUgcGFu ZWwgbWVhbmluZwotICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvcmVmcmVzaCBo YXMgdHJpZ2dlcmVkIGEgZG91YmxlIGJ1ZmZlciBmbGlwCiAgKi8KIGVudW0gZHB1X2ludHJfaWR4 IHsKIAlJTlRSX0lEWF9WU1lOQywKQEAgLTE4NSw3ICsxODAsNiBAQCBlbnVtIGRwdV9pbnRyX2lk eCB7CiAJSU5UUl9JRFhfVU5ERVJSVU4sCiAJSU5UUl9JRFhfQ1RMX1NUQVJULAogCUlOVFJfSURY X1JEUFRSLAotCUlOVFJfSURYX0FVVE9SRUZSRVNIX0RPTkUsCiAJSU5UUl9JRFhfTUFYLAogfTsK IApAQCAtMjg3LDE4ICsyODEsNiBAQCBzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5c192aWQgewogfTsK IAogLyoqCi0gKiBzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5c19jbWRfYXV0b3JlZnJlc2ggLSBhdXRv cmVmcmVzaCBzdGF0ZSB0cmFja2luZwotICogQGNmZzogY3VycmVudCBhY3RpdmUgYXV0b3JlZnJl c2ggY29uZmlndXJhdGlvbgotICogQGtpY2tvZmZfY250OiBhdG9taWMgY291bnQgdHJhY2tpbmcg YXV0b3JlZnJlc2ggZG9uZSBpcnEga2lja29mZnMgcGVuZGluZwotICogQGtpY2tvZmZfd3E6CXdh aXQgcXVldWUgZm9yIHdhaXRpbmcgb24gYXV0b3JlZnJlc2ggZG9uZSBpcnEKLSAqLwotc3RydWN0 IGRwdV9lbmNvZGVyX3BoeXNfY21kX2F1dG9yZWZyZXNoIHsKLQlzdHJ1Y3QgZHB1X2h3X2F1dG9y ZWZyZXNoIGNmZzsKLQlhdG9taWNfdCBraWNrb2ZmX2NudDsKLQl3YWl0X3F1ZXVlX2hlYWRfdCBr aWNrb2ZmX3dxOwotfTsKLQotLyoqCiAgKiBzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5c19jbWQgLSBz dWItY2xhc3Mgb2YgZHB1X2VuY29kZXJfcGh5cyB0byBoYW5kbGUgY29tbWFuZAogICoJbW9kZSBz cGVjaWZpYyBvcGVyYXRpb25zCiAgKiBAYmFzZToJQmFzZWNsYXNzIHBoeXNpY2FsIGVuY29kZXIg c3RydWN0dXJlCkBAIC0zMDcsNyArMjg5LDYgQEAgc3RydWN0IGRwdV9lbmNvZGVyX3BoeXNfY21k X2F1dG9yZWZyZXNoIHsKICAqIEBzZXJpYWxpemVfd2FpdDRwcDoJc2VyaWFsaXplIHdhaXQ0cHAg ZmVhdHVyZSB3YWl0cyBmb3IgcHBfZG9uZSBpbnRlcnJ1cHQKICAqCQkJYWZ0ZXIgY3RsX3N0YXJ0 IGluc3RlYWQgb2YgYmVmb3JlIG5leHQgZnJhbWUga2lja29mZgogICogQHBwX3RpbWVvdXRfcmVw b3J0X2NudDogbnVtYmVyIG9mIHBpbmdwb25nIGRvbmUgaXJxIHRpbWVvdXQgZXJyb3JzCi0gKiBA YXV0b3JlZnJlc2g6IGF1dG9yZWZyZXNoIGZlYXR1cmUgc3RhdGUKICAqIEBwZW5kaW5nX3ZibGFu a19jbnQ6IEF0b21pYyBjb3VudGVyIHRyYWNraW5nIHBlbmRpbmcgd2FpdCBmb3IgVkJMQU5LCiAg KiBAcGVuZGluZ192Ymxhbmtfd3E6IFdhaXQgcXVldWUgZm9yIGJsb2NraW5nIHVudGlsIFZCTEFO SyByZWNlaXZlZAogICovCkBAIC0zMTYsNyArMjk3LDYgQEAgc3RydWN0IGRwdV9lbmNvZGVyX3Bo eXNfY21kIHsKIAlpbnQgc3RyZWFtX3NlbDsKIAlib29sIHNlcmlhbGl6ZV93YWl0NHBwOwogCWlu dCBwcF90aW1lb3V0X3JlcG9ydF9jbnQ7Ci0Jc3RydWN0IGRwdV9lbmNvZGVyX3BoeXNfY21kX2F1 dG9yZWZyZXNoIGF1dG9yZWZyZXNoOwogCWF0b21pY190IHBlbmRpbmdfdmJsYW5rX2NudDsKIAl3 YWl0X3F1ZXVlX2hlYWRfdCBwZW5kaW5nX3ZibGFua193cTsKIH07CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlcl9waHlzX2NtZC5jIGIvZHJpdmVy cy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXJfcGh5c19jbWQuYwppbmRleCAzNDM2 Nzg4Li4wNzI5MzljIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9k cHVfZW5jb2Rlcl9waHlzX2NtZC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUx L2RwdV9lbmNvZGVyX3BoeXNfY21kLmMKQEAgLTQ3LDkgKzQ3LDcgQEAKIHN0YXRpYyBpbmxpbmUg aW50IF9kcHVfZW5jb2Rlcl9waHlzX2NtZF9nZXRfaWRsZV90aW1lb3V0KAogCQlzdHJ1Y3QgZHB1 X2VuY29kZXJfcGh5c19jbWQgKmNtZF9lbmMpCiB7Ci0JcmV0dXJuIGNtZF9lbmMtPmF1dG9yZWZy ZXNoLmNmZy5mcmFtZV9jb3VudCA/Ci0JCQljbWRfZW5jLT5hdXRvcmVmcmVzaC5jZmcuZnJhbWVf Y291bnQgKgotCQkJS0lDS09GRl9USU1FT1VUX01TIDogS0lDS09GRl9USU1FT1VUX01TOworCXJl dHVybiBLSUNLT0ZGX1RJTUVPVVRfTVM7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBkcHVfZW5j b2Rlcl9waHlzX2NtZF9pc19tYXN0ZXIoCkBAIC02OCw1MiArNjYsNiBAQCBzdGF0aWMgYm9vbCBk cHVfZW5jb2Rlcl9waHlzX2NtZF9tb2RlX2ZpeHVwKAogCXJldHVybiB0cnVlOwogfQogCi1zdGF0 aWMgdWludDY0X3QgX2RwdV9lbmNvZGVyX3BoeXNfY21kX2dldF9hdXRvcmVmcmVzaF9wcm9wZXJ0 eSgKLQkJc3RydWN0IGRwdV9lbmNvZGVyX3BoeXMgKnBoeXNfZW5jKQotewotCXN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uID0gcGh5c19lbmMtPmNvbm5lY3RvcjsKLQotCWlmICghY29ubiB8fCAh Y29ubi0+c3RhdGUpCi0JCXJldHVybiAwOwotCi0JcmV0dXJuIGRwdV9jb25uZWN0b3JfZ2V0X3By b3BlcnR5KGNvbm4tPnN0YXRlLAotCQkJCUNPTk5FQ1RPUl9QUk9QX0FVVE9SRUZSRVNIKTsKLX0K LQotc3RhdGljIHZvaWQgX2RwdV9lbmNvZGVyX3BoeXNfY21kX2NvbmZpZ19hdXRvcmVmcmVzaCgK LQkJc3RydWN0IGRwdV9lbmNvZGVyX3BoeXMgKnBoeXNfZW5jLAotCQl1MzIgbmV3X2ZyYW1lX2Nv dW50KQotewotCXN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzX2NtZCAqY21kX2VuYyA9Ci0JCQl0b19k cHVfZW5jb2Rlcl9waHlzX2NtZChwaHlzX2VuYyk7Ci0Jc3RydWN0IGRwdV9od19waW5ncG9uZyAq aHdfcHAgPSBwaHlzX2VuYy0+aHdfcHA7Ci0Jc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm4gPSBw aHlzX2VuYy0+Y29ubmVjdG9yOwotCXN0cnVjdCBkcHVfaHdfYXV0b3JlZnJlc2ggKmNmZ19jdXIs IGNmZ19ueHQ7Ci0KLQlpZiAoIWNvbm4gfHwgIWNvbm4tPnN0YXRlIHx8ICFod19wcCkKLQkJcmV0 dXJuOwotCi0JY2ZnX2N1ciA9ICZjbWRfZW5jLT5hdXRvcmVmcmVzaC5jZmc7Ci0KLQkvKiBhdXRv cmVmcmVzaCBwcm9wZXJ0eSB2YWx1ZSBzaG91bGQgYmUgdmFsaWRhdGVkIGFscmVhZHkgKi8KLQlt ZW1zZXQoJmNmZ19ueHQsIDAsIHNpemVvZihjZmdfbnh0KSk7Ci0JY2ZnX254dC5mcmFtZV9jb3Vu dCA9IG5ld19mcmFtZV9jb3VudDsKLQljZmdfbnh0LmVuYWJsZSA9IChjZmdfbnh0LmZyYW1lX2Nv dW50ICE9IDApOwotCi0JRFBVX0RFQlVHX0NNREVOQyhjbWRfZW5jLCAiYXV0b3JlZnJlc2ggc3Rh dGUgJWQtPiVkIGZyYW1lY291bnQgJWRcbiIsCi0JCQljZmdfY3VyLT5lbmFibGUsIGNmZ19ueHQu ZW5hYmxlLCBjZmdfbnh0LmZyYW1lX2NvdW50KTsKLQlEUFVfRVZUMzIoRFJNSUQocGh5c19lbmMt PnBhcmVudCksIGh3X3BwLT5pZHgsIGNmZ19jdXItPmVuYWJsZSwKLQkJCWNmZ19ueHQuZW5hYmxl LCBjZmdfbnh0LmZyYW1lX2NvdW50KTsKLQotCS8qIG9ubHkgcHJvY2VlZCBvbiBzdGF0ZSBjaGFu Z2VzICovCi0JaWYgKGNmZ19ueHQuZW5hYmxlID09IGNmZ19jdXItPmVuYWJsZSkKLQkJcmV0dXJu OwotCi0JbWVtY3B5KGNmZ19jdXIsICZjZmdfbnh0LCBzaXplb2YoKmNmZ19jdXIpKTsKLQlpZiAo aHdfcHAtPm9wcy5zZXR1cF9hdXRvcmVmcmVzaCkKLQkJaHdfcHAtPm9wcy5zZXR1cF9hdXRvcmVm cmVzaChod19wcCwgY2ZnX2N1cik7Ci19Ci0KIHN0YXRpYyB2b2lkIF9kcHVfZW5jb2Rlcl9waHlz X2NtZF91cGRhdGVfaW50Zl9jZmcoCiAJCXN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzICpwaHlzX2Vu YykKIHsKQEAgLTE2NCwyOSArMTE2LDYgQEAgc3RhdGljIHZvaWQgZHB1X2VuY29kZXJfcGh5c19j bWRfcHBfdHhfZG9uZV9pcnEodm9pZCAqYXJnLCBpbnQgaXJxX2lkeCkKIAlEUFVfQVRSQUNFX0VO RCgicHBfZG9uZV9pcnEiKTsKIH0KIAotc3RhdGljIHZvaWQgZHB1X2VuY29kZXJfcGh5c19jbWRf YXV0b3JlZnJlc2hfZG9uZV9pcnEodm9pZCAqYXJnLCBpbnQgaXJxX2lkeCkKLXsKLQlzdHJ1Y3Qg ZHB1X2VuY29kZXJfcGh5cyAqcGh5c19lbmMgPSBhcmc7Ci0Jc3RydWN0IGRwdV9lbmNvZGVyX3Bo eXNfY21kICpjbWRfZW5jID0KLQkJCXRvX2RwdV9lbmNvZGVyX3BoeXNfY21kKHBoeXNfZW5jKTsK LQl1bnNpZ25lZCBsb25nIGxvY2tfZmxhZ3M7Ci0JaW50IG5ld19jbnQ7Ci0KLQlpZiAoIWNtZF9l bmMpCi0JCXJldHVybjsKLQotCXBoeXNfZW5jID0gJmNtZF9lbmMtPmJhc2U7Ci0Jc3Bpbl9sb2Nr X2lycXNhdmUocGh5c19lbmMtPmVuY19zcGlubG9jaywgbG9ja19mbGFncyk7Ci0JbmV3X2NudCA9 IGF0b21pY19hZGRfdW5sZXNzKCZjbWRfZW5jLT5hdXRvcmVmcmVzaC5raWNrb2ZmX2NudCwgLTEs IDApOwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUocGh5c19lbmMtPmVuY19zcGlubG9jaywgbG9j a19mbGFncyk7Ci0KLQlEUFVfRVZUMzJfSVJRKERSTUlEKHBoeXNfZW5jLT5wYXJlbnQpLAotCQkJ cGh5c19lbmMtPmh3X3BwLT5pZHggLSBQSU5HUE9OR18wLCBuZXdfY250KTsKLQotCS8qIFNpZ25h bCBhbnkgd2FpdGluZyBhdG9taWMgY29tbWl0IHRocmVhZCAqLwotCXdha2VfdXBfYWxsKCZjbWRf ZW5jLT5hdXRvcmVmcmVzaC5raWNrb2ZmX3dxKTsKLX0KLQogc3RhdGljIHZvaWQgZHB1X2VuY29k ZXJfcGh5c19jbWRfcHBfcmRfcHRyX2lycSh2b2lkICphcmcsIGludCBpcnFfaWR4KQogewogCXN0 cnVjdCBkcHVfZW5jb2Rlcl9waHlzICpwaHlzX2VuYyA9IGFyZzsKQEAgLTI1NywxMCArMTg2LDYg QEAgc3RhdGljIHZvaWQgX2RwdV9lbmNvZGVyX3BoeXNfY21kX3NldHVwX2lycV9od19pZHgoCiAJ aXJxID0gJnBoeXNfZW5jLT5pcnFbSU5UUl9JRFhfVU5ERVJSVU5dOwogCWlycS0+aHdfaWR4ID0g cGh5c19lbmMtPmludGZfaWR4OwogCWlycS0+aXJxX2lkeCA9IC1FSU5WQUw7Ci0KLQlpcnEgPSAm cGh5c19lbmMtPmlycVtJTlRSX0lEWF9BVVRPUkVGUkVTSF9ET05FXTsKLQlpcnEtPmh3X2lkeCA9 IHBoeXNfZW5jLT5od19wcC0+aWR4OwotCWlycS0+aXJxX2lkeCA9IC1FSU5WQUw7CiB9CiAKIHN0 YXRpYyB2b2lkIGRwdV9lbmNvZGVyX3BoeXNfY21kX21vZGVfc2V0KApAQCAtMzUyLDczICsyNzcs NiBAQCBzdGF0aWMgaW50IF9kcHVfZW5jb2Rlcl9waHlzX2NtZF9oYW5kbGVfcHBkb25lX3RpbWVv dXQoCiAJcmV0dXJuIC1FVElNRURPVVQ7CiB9CiAKLXN0YXRpYyBpbnQgX2RwdV9lbmNvZGVyX3Bo eXNfY21kX3BvbGxfd3JpdGVfcG9pbnRlcl9zdGFydGVkKAotCQlzdHJ1Y3QgZHB1X2VuY29kZXJf cGh5cyAqcGh5c19lbmMpCi17Ci0Jc3RydWN0IGRwdV9lbmNvZGVyX3BoeXNfY21kICpjbWRfZW5j ID0KLQkJCXRvX2RwdV9lbmNvZGVyX3BoeXNfY21kKHBoeXNfZW5jKTsKLQlzdHJ1Y3QgZHB1X2h3 X3Bpbmdwb25nICpod19wcCA9IHBoeXNfZW5jLT5od19wcDsKLQlzdHJ1Y3QgZHB1X2h3X3BwX3Zz eW5jX2luZm8gaW5mbzsKLQl1MzIgdGltZW91dF91cyA9IERQVV9FTkNfV1JfUFRSX1NUQVJUX1RJ TUVPVVRfVVM7Ci0JaW50IHJldDsKLQotCWlmICghaHdfcHAgfHwgIWh3X3BwLT5vcHMuZ2V0X3Zz eW5jX2luZm8gfHwKLQkJCSFod19wcC0+b3BzLnBvbGxfdGltZW91dF93cl9wdHIpCi0JCXJldHVy biAwOwotCi0JcmV0ID0gaHdfcHAtPm9wcy5nZXRfdnN5bmNfaW5mbyhod19wcCwgJmluZm8pOwot CWlmIChyZXQpCi0JCXJldHVybiByZXQ7Ci0KLQlEUFVfREVCVUdfQ01ERU5DKGNtZF9lbmMsCi0J CQkicHA6JWQgcmRfcHRyICVkIHdyX3B0ciAlZFxuIiwKLQkJCXBoeXNfZW5jLT5od19wcC0+aWR4 IC0gUElOR1BPTkdfMCwKLQkJCWluZm8ucmRfcHRyX2xpbmVfY291bnQsCi0JCQlpbmZvLndyX3B0 cl9saW5lX2NvdW50KTsKLQlEUFVfRVZUMzJfVkVSQk9TRShEUk1JRChwaHlzX2VuYy0+cGFyZW50 KSwKLQkJCXBoeXNfZW5jLT5od19wcC0+aWR4IC0gUElOR1BPTkdfMCwKLQkJCWluZm8ud3JfcHRy X2xpbmVfY291bnQpOwotCi0JcmV0ID0gaHdfcHAtPm9wcy5wb2xsX3RpbWVvdXRfd3JfcHRyKGh3 X3BwLCB0aW1lb3V0X3VzKTsKLQlpZiAocmV0KSB7Ci0JCURQVV9FVlQzMihEUk1JRChwaHlzX2Vu Yy0+cGFyZW50KSwKLQkJCQlwaHlzX2VuYy0+aHdfcHAtPmlkeCAtIFBJTkdQT05HXzAsCi0JCQkJ dGltZW91dF91cywKLQkJCQlyZXQpOwotCQlEUFVfREJHX0RVTVAoImFsbCIsICJkYmdfYnVzIiwg InZiaWZfZGJnX2J1cyIsICJwYW5pYyIpOwotCX0KLQotCXJldHVybiByZXQ7Ci19Ci0KLXN0YXRp YyBib29sIF9kcHVfZW5jb2Rlcl9waHlzX2NtZF9pc19vbmdvaW5nX3BwdHgoCi0JCXN0cnVjdCBk cHVfZW5jb2Rlcl9waHlzICpwaHlzX2VuYykKLXsKLQlzdHJ1Y3QgZHB1X2h3X3Bpbmdwb25nICpo d19wcDsKLQlzdHJ1Y3QgZHB1X2h3X3BwX3ZzeW5jX2luZm8gaW5mbzsKLQotCWlmICghcGh5c19l bmMpCi0JCXJldHVybiBmYWxzZTsKLQotCWh3X3BwID0gcGh5c19lbmMtPmh3X3BwOwotCWlmICgh aHdfcHAgfHwgIWh3X3BwLT5vcHMuZ2V0X3ZzeW5jX2luZm8pCi0JCXJldHVybiBmYWxzZTsKLQot CWh3X3BwLT5vcHMuZ2V0X3ZzeW5jX2luZm8oaHdfcHAsICZpbmZvKTsKLQotCURQVV9FVlQzMihE Uk1JRChwaHlzX2VuYy0+cGFyZW50KSwKLQkJCXBoeXNfZW5jLT5od19wcC0+aWR4IC0gUElOR1BP TkdfMCwKLQkJCWF0b21pY19yZWFkKCZwaHlzX2VuYy0+cGVuZGluZ19raWNrb2ZmX2NudCksCi0J CQlpbmZvLndyX3B0cl9saW5lX2NvdW50LAotCQkJcGh5c19lbmMtPmNhY2hlZF9tb2RlLnZkaXNw bGF5KTsKLQotCWlmIChpbmZvLndyX3B0cl9saW5lX2NvdW50ID4gMCAmJiBpbmZvLndyX3B0cl9s aW5lX2NvdW50IDwKLQkJCXBoeXNfZW5jLT5jYWNoZWRfbW9kZS52ZGlzcGxheSkKLQkJcmV0dXJu IHRydWU7Ci0KLQlyZXR1cm4gZmFsc2U7Ci19Ci0KIHN0YXRpYyBpbnQgX2RwdV9lbmNvZGVyX3Bo eXNfY21kX3dhaXRfZm9yX2lkbGUoCiAJCXN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzICpwaHlzX2Vu YykKIHsKQEAgLTQ0Niw0MiArMzA0LDYgQEAgc3RhdGljIGludCBfZHB1X2VuY29kZXJfcGh5c19j bWRfd2FpdF9mb3JfaWRsZSgKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgaW50IF9kcHVfZW5j b2Rlcl9waHlzX2NtZF93YWl0X2Zvcl9hdXRvcmVmcmVzaF9kb25lKAotCQlzdHJ1Y3QgZHB1X2Vu Y29kZXJfcGh5cyAqcGh5c19lbmMpCi17Ci0Jc3RydWN0IGRwdV9lbmNvZGVyX3BoeXNfY21kICpj bWRfZW5jID0KLQkJCXRvX2RwdV9lbmNvZGVyX3BoeXNfY21kKHBoeXNfZW5jKTsKLQlzdHJ1Y3Qg ZHB1X2VuY29kZXJfd2FpdF9pbmZvIHdhaXRfaW5mbzsKLQlpbnQgcmV0ID0gMDsKLQotCWlmICgh cGh5c19lbmMpIHsKLQkJRFBVX0VSUk9SKCJpbnZhbGlkIGVuY29kZXJcbiIpOwotCQlyZXR1cm4g LUVJTlZBTDsKLQl9Ci0KLQkvKiBvbmx5IG1hc3RlciBkZWFscyB3aXRoIGF1dG9yZWZyZXNoICov Ci0JaWYgKCFkcHVfZW5jb2Rlcl9waHlzX2NtZF9pc19tYXN0ZXIocGh5c19lbmMpKQotCQlyZXR1 cm4gMDsKLQotCXdhaXRfaW5mby53cSA9ICZjbWRfZW5jLT5hdXRvcmVmcmVzaC5raWNrb2ZmX3dx OwotCXdhaXRfaW5mby5hdG9taWNfY250ID0gJmNtZF9lbmMtPmF1dG9yZWZyZXNoLmtpY2tvZmZf Y250OwotCXdhaXRfaW5mby50aW1lb3V0X21zID0gX2RwdV9lbmNvZGVyX3BoeXNfY21kX2dldF9p ZGxlX3RpbWVvdXQoY21kX2VuYyk7Ci0KLQkvKiB3YWl0IGZvciBhdXRvcmVmcmVzaCBraWNrb2Zm IHRvIHN0YXJ0ICovCi0JcmV0ID0gZHB1X2VuY29kZXJfaGVscGVyX3dhaXRfZm9yX2lycShwaHlz X2VuYywKLQkJCUlOVFJfSURYX0FVVE9SRUZSRVNIX0RPTkUsICZ3YWl0X2luZm8pOwotCi0JLyog ZG91YmxlIGNoZWNrIHRoYXQga2lja29mZiBoYXMgc3RhcnRlZCBieSByZWFkaW5nIHdyaXRlIHB0 ciByZWcgKi8KLQlpZiAoIXJldCkKLQkJcmV0ID0gX2RwdV9lbmNvZGVyX3BoeXNfY21kX3BvbGxf d3JpdGVfcG9pbnRlcl9zdGFydGVkKAotCQkJcGh5c19lbmMpOwotCWVsc2UKLQkJZHB1X2VuY29k ZXJfaGVscGVyX3JlcG9ydF9pcnFfdGltZW91dChwaHlzX2VuYywKLQkJCQlJTlRSX0lEWF9BVVRP UkVGUkVTSF9ET05FKTsKLQotCXJldHVybiByZXQ7Ci19Ci0KIHN0YXRpYyBpbnQgZHB1X2VuY29k ZXJfcGh5c19jbWRfY29udHJvbF92YmxhbmtfaXJxKAogCQlzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5 cyAqcGh5c19lbmMsCiAJCWJvb2wgZW5hYmxlKQpAQCAtNTUwLDIwICszNzIsMTMgQEAgdm9pZCBk cHVfZW5jb2Rlcl9waHlzX2NtZF9pcnFfY29udHJvbChzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5cyAq cGh5c19lbmMsCiAJCWRwdV9lbmNvZGVyX2hlbHBlcl9yZWdpc3Rlcl9pcnEocGh5c19lbmMsIElO VFJfSURYX1VOREVSUlVOKTsKIAkJZHB1X2VuY29kZXJfcGh5c19jbWRfY29udHJvbF92Ymxhbmtf aXJxKHBoeXNfZW5jLCB0cnVlKTsKIAotCQlpZiAoZHB1X2VuY29kZXJfcGh5c19jbWRfaXNfbWFz dGVyKHBoeXNfZW5jKSkgeworCQlpZiAoZHB1X2VuY29kZXJfcGh5c19jbWRfaXNfbWFzdGVyKHBo eXNfZW5jKSkKIAkJCWRwdV9lbmNvZGVyX2hlbHBlcl9yZWdpc3Rlcl9pcnEocGh5c19lbmMsCiAJ CQkJCUlOVFJfSURYX0NUTF9TVEFSVCk7Ci0JCQlkcHVfZW5jb2Rlcl9oZWxwZXJfcmVnaXN0ZXJf aXJxKHBoeXNfZW5jLAotCQkJCQlJTlRSX0lEWF9BVVRPUkVGUkVTSF9ET05FKTsKLQkJfQotCiAJ fSBlbHNlIHsKLQkJaWYgKGRwdV9lbmNvZGVyX3BoeXNfY21kX2lzX21hc3RlcihwaHlzX2VuYykp IHsKKwkJaWYgKGRwdV9lbmNvZGVyX3BoeXNfY21kX2lzX21hc3RlcihwaHlzX2VuYykpCiAJCQlk cHVfZW5jb2Rlcl9oZWxwZXJfdW5yZWdpc3Rlcl9pcnEocGh5c19lbmMsCiAJCQkJCUlOVFJfSURY X0NUTF9TVEFSVCk7Ci0JCQlkcHVfZW5jb2Rlcl9oZWxwZXJfdW5yZWdpc3Rlcl9pcnEocGh5c19l bmMsCi0JCQkJCUlOVFJfSURYX0FVVE9SRUZSRVNIX0RPTkUpOwotCQl9CiAKIAkJZHB1X2VuY29k ZXJfaGVscGVyX3VucmVnaXN0ZXJfaXJxKHBoeXNfZW5jLCBJTlRSX0lEWF9VTkRFUlJVTik7CiAJ CWRwdV9lbmNvZGVyX3BoeXNfY21kX2NvbnRyb2xfdmJsYW5rX2lycShwaHlzX2VuYywgZmFsc2Up OwpAQCAtNzM2LDMwICs1NTEsNiBAQCBzdGF0aWMgdm9pZCBkcHVfZW5jb2Rlcl9waHlzX2NtZF9l bmFibGUoc3RydWN0IGRwdV9lbmNvZGVyX3BoeXMgKnBoeXNfZW5jKQogCXBoeXNfZW5jLT5lbmFi bGVfc3RhdGUgPSBEUFVfRU5DX0VOQUJMRUQ7CiB9CiAKLXN0YXRpYyBib29sIGRwdV9lbmNvZGVy X3BoeXNfY21kX2lzX2F1dG9yZWZyZXNoX2VuYWJsZWQoCi0JCXN0cnVjdCBkcHVfZW5jb2Rlcl9w aHlzICpwaHlzX2VuYykKLXsKLQlzdHJ1Y3QgZHB1X2h3X3Bpbmdwb25nICpod19wcDsKLQlzdHJ1 Y3QgZHB1X2h3X2F1dG9yZWZyZXNoIGNmZzsKLQlpbnQgcmV0OwotCi0JaWYgKCFwaHlzX2VuYyB8 fCAhcGh5c19lbmMtPmh3X3BwKQotCQlyZXR1cm4gMDsKLQotCWlmICghZHB1X2VuY29kZXJfcGh5 c19jbWRfaXNfbWFzdGVyKHBoeXNfZW5jKSkKLQkJcmV0dXJuIDA7Ci0KLQlod19wcCA9IHBoeXNf ZW5jLT5od19wcDsKLQlpZiAoIWh3X3BwLT5vcHMuZ2V0X2F1dG9yZWZyZXNoKQotCQlyZXR1cm4g MDsKLQotCXJldCA9IGh3X3BwLT5vcHMuZ2V0X2F1dG9yZWZyZXNoKGh3X3BwLCAmY2ZnKTsKLQlp ZiAocmV0KQotCQlyZXR1cm4gMDsKLQotCXJldHVybiBjZmcuZW5hYmxlOwotfQotCiBzdGF0aWMg dm9pZCBfZHB1X2VuY29kZXJfcGh5c19jbWRfY29ubmVjdF90ZSgKIAkJc3RydWN0IGRwdV9lbmNv ZGVyX3BoeXMgKnBoeXNfZW5jLCBib29sIGVuYWJsZSkKIHsKQEAgLTg2OSw4ICs2NjAsNyBAQCBz dGF0aWMgdm9pZCBkcHVfZW5jb2Rlcl9waHlzX2NtZF9wcmVwYXJlX2Zvcl9raWNrb2ZmKAogCURQ VV9ERUJVR19DTURFTkMoY21kX2VuYywgInBwICVkXG4iLCBwaHlzX2VuYy0+aHdfcHAtPmlkeCAt IFBJTkdQT05HXzApOwogCiAJRFBVX0VWVDMyKERSTUlEKHBoeXNfZW5jLT5wYXJlbnQpLCBwaHlz X2VuYy0+aHdfcHAtPmlkeCAtIFBJTkdQT05HXzAsCi0JCQlhdG9taWNfcmVhZCgmcGh5c19lbmMt PnBlbmRpbmdfa2lja29mZl9jbnQpLAotCQkJYXRvbWljX3JlYWQoJmNtZF9lbmMtPmF1dG9yZWZy ZXNoLmtpY2tvZmZfY250KSk7CisJCQlhdG9taWNfcmVhZCgmcGh5c19lbmMtPnBlbmRpbmdfa2lj a29mZl9jbnQpKTsKIAogCS8qCiAJICogTWFyayBraWNrb2ZmIHJlcXVlc3QgYXMgb3V0c3RhbmRp bmcuIElmIHRoZXJlIGFyZSBtb3JlIHRoYW4gb25lLApAQCAtOTU0LDEwICs3NDQsNiBAQCBzdGF0 aWMgaW50IGRwdV9lbmNvZGVyX3BoeXNfY21kX3dhaXRfZm9yX2NvbW1pdF9kb25lKAogCWlmIChk cHVfZW5jb2Rlcl9waHlzX2NtZF9pc19tYXN0ZXIocGh5c19lbmMpKQogCQlyYyA9IF9kcHVfZW5j b2Rlcl9waHlzX2NtZF93YWl0X2Zvcl9jdGxfc3RhcnQocGh5c19lbmMpOwogCi0JaWYgKCFyYyAm JiBkcHVfZW5jb2Rlcl9waHlzX2NtZF9pc19tYXN0ZXIocGh5c19lbmMpICYmCi0JCQljbWRfZW5j LT5hdXRvcmVmcmVzaC5jZmcuZW5hYmxlKQotCQlyYyA9IF9kcHVfZW5jb2Rlcl9waHlzX2NtZF93 YWl0X2Zvcl9hdXRvcmVmcmVzaF9kb25lKHBoeXNfZW5jKTsKLQogCS8qIHJlcXVpcmVkIGZvciBi b3RoIGNvbnRyb2xsZXJzICovCiAJaWYgKCFyYyAmJiBjbWRfZW5jLT5zZXJpYWxpemVfd2FpdDRw cCkKIAkJZHB1X2VuY29kZXJfcGh5c19jbWRfcHJlcGFyZV9mb3Jfa2lja29mZihwaHlzX2VuYywg TlVMTCk7CkBAIC05OTMsNTggKzc3OSw2IEBAIHN0YXRpYyBpbnQgZHB1X2VuY29kZXJfcGh5c19j bWRfd2FpdF9mb3JfdmJsYW5rKAogCXJldHVybiByYzsKIH0KIAotc3RhdGljIHZvaWQgZHB1X2Vu Y29kZXJfcGh5c19jbWRfcHJlcGFyZV9jb21taXQoCi0JCXN0cnVjdCBkcHVfZW5jb2Rlcl9waHlz ICpwaHlzX2VuYykKLXsKLQlzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5c19jbWQgKmNtZF9lbmMgPQot CQl0b19kcHVfZW5jb2Rlcl9waHlzX2NtZChwaHlzX2VuYyk7Ci0JdW5zaWduZWQgbG9uZyBsb2Nr X2ZsYWdzOwotCi0JaWYgKCFwaHlzX2VuYykKLQkJcmV0dXJuOwotCi0JaWYgKCFkcHVfZW5jb2Rl cl9waHlzX2NtZF9pc19tYXN0ZXIocGh5c19lbmMpKQotCQlyZXR1cm47Ci0KLQlEUFVfRVZUMzIo RFJNSUQocGh5c19lbmMtPnBhcmVudCksIHBoeXNfZW5jLT5pbnRmX2lkeCAtIElOVEZfMCwKLQkJ CWNtZF9lbmMtPmF1dG9yZWZyZXNoLmNmZy5lbmFibGUpOwotCi0JaWYgKCFkcHVfZW5jb2Rlcl9w aHlzX2NtZF9pc19hdXRvcmVmcmVzaF9lbmFibGVkKHBoeXNfZW5jKSkKLQkJcmV0dXJuOwotCi0J LyoqCi0JICogQXV0b3JlZnJlc2ggbXVzdCBiZSBkaXNhYmxlZCBjYXJlZnVsbHk6Ci0JICogIC0g QXV0b3JlZnJlc2ggbXVzdCBiZSBkaXNhYmxlZCBiZXR3ZWVuIHBwX2RvbmUgYW5kIHRlCi0JICog ICAgc2lnbmFsIHByaW9yIHRvIHNkbTg0NSB0YXJnZXRzLiBBbGwgdGFyZ2V0cyBhZnRlciBzZG04 NDUKLQkgKiAgICBzdXBwb3J0cyBhdXRvcmVmcmVzaCBkaXNhYmxlIHdpdGhvdXQgdHVybmluZyBv ZmYgdGhlCi0JICogICAgaGFyZHdhcmUgVEUgYW5kIHBwX2RvbmUgd2FpdC4KLQkgKgotCSAqICAt IFdhaXQgZm9yIFRYIHRvIENvbXBsZXRlCi0JICogICAgV2FpdCBmb3IgUFBEb25lIGNvbmZpcm1z IHRoZSBsYXN0IGZyYW1lIHRyYW5zZmVyIGlzIGNvbXBsZXRlLgotCSAqCi0JICogIC0gTGVhdmUg QXV0b3JlZnJlc2ggRGlzYWJsZWQKLQkgKiAgICAtIEFzc3VtZSBkaXNhYmxlIG9mIEF1dG9yZWZy ZXNoIHNpbmNlIGl0IGlzIG5vdyBzYWZlCi0JICogICAgLSBDYW4gbm93IHNhZmVseSBEaXNhYmxl IEVuY29kZXIsIGRvIGRlYnVnIHByaW50aW5nLCBldGMuCi0JICogICAgIHdpdGhvdXQgd29ycnlp bmcgdGhhdCBBdXRvcmVmcmVzaCB3aWxsIGtpY2tvZmYKLQkgKi8KLQotCXNwaW5fbG9ja19pcnFz YXZlKHBoeXNfZW5jLT5lbmNfc3BpbmxvY2ssIGxvY2tfZmxhZ3MpOwotCi0JX2RwdV9lbmNvZGVy X3BoeXNfY21kX2NvbmZpZ19hdXRvcmVmcmVzaChwaHlzX2VuYywgMCk7Ci0KLQkvKiBjaGVjayBm b3Igb3V0c3RhbmRpbmcgVFggKi8KLQlpZiAoX2RwdV9lbmNvZGVyX3BoeXNfY21kX2lzX29uZ29p bmdfcHB0eChwaHlzX2VuYykpCi0JCWF0b21pY19hZGRfdW5sZXNzKCZwaHlzX2VuYy0+cGVuZGlu Z19raWNrb2ZmX2NudCwgMSwgMSk7Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShwaHlzX2VuYy0+ ZW5jX3NwaW5sb2NrLCBsb2NrX2ZsYWdzKTsKLQotCS8qIHdhaXQgZm9yIHBwZG9uZSBpZiBuZWNl c3NhcnkgZHVlIHRvIGNhdGNoaW5nIG9uZ29pbmcgVFggKi8KLQlpZiAoX2RwdV9lbmNvZGVyX3Bo eXNfY21kX3dhaXRfZm9yX2lkbGUocGh5c19lbmMpKQotCQlEUFVfRVJST1JfQ01ERU5DKGNtZF9l bmMsICJwcDolZCBraWNrb2ZmIHRpbWVkIG91dFxuIiwKLQkJCQlwaHlzX2VuYy0+aHdfcHAtPmlk eCAtIFBJTkdQT05HXzApOwotCi0JRFBVX0RFQlVHX0NNREVOQyhjbWRfZW5jLCAiZGlzYWJsZWQg YXV0b3JlZnJlc2hcbiIpOwotfQotCiBzdGF0aWMgdm9pZCBkcHVfZW5jb2Rlcl9waHlzX2NtZF9o YW5kbGVfcG9zdF9raWNrb2ZmKAogCQlzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5cyAqcGh5c19lbmMp CiB7CkBAIC0xMDYxLDI3ICs3OTUsMTUgQEAgc3RhdGljIHZvaWQgZHB1X2VuY29kZXJfcGh5c19j bWRfaGFuZGxlX3Bvc3Rfa2lja29mZigKIHN0YXRpYyB2b2lkIGRwdV9lbmNvZGVyX3BoeXNfY21k X3RyaWdnZXJfc3RhcnQoCiAJCXN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzICpwaHlzX2VuYykKIHsK LQlzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5c19jbWQgKmNtZF9lbmMgPQotCQkJdG9fZHB1X2VuY29k ZXJfcGh5c19jbWQocGh5c19lbmMpOwotCXUzMiBmcmFtZV9jbnQ7Ci0KIAlpZiAoIXBoeXNfZW5j KQogCQlyZXR1cm47CiAKLQkvKiB3ZSBkb24ndCBpc3N1ZSBDVExfU1RBUlQgd2hlbiB1c2luZyBh dXRvcmVmcmVzaCAqLwotCWZyYW1lX2NudCA9IF9kcHVfZW5jb2Rlcl9waHlzX2NtZF9nZXRfYXV0 b3JlZnJlc2hfcHJvcGVydHkocGh5c19lbmMpOwotCWlmIChmcmFtZV9jbnQpIHsKLQkJX2RwdV9l bmNvZGVyX3BoeXNfY21kX2NvbmZpZ19hdXRvcmVmcmVzaChwaHlzX2VuYywgZnJhbWVfY250KTsK LQkJYXRvbWljX2luYygmY21kX2VuYy0+YXV0b3JlZnJlc2gua2lja29mZl9jbnQpOwotCX0gZWxz ZSB7Ci0JCWRwdV9lbmNvZGVyX2hlbHBlcl90cmlnZ2VyX3N0YXJ0KHBoeXNfZW5jKTsKLQl9CisJ ZHB1X2VuY29kZXJfaGVscGVyX3RyaWdnZXJfc3RhcnQocGh5c19lbmMpOwogfQogCiBzdGF0aWMg dm9pZCBkcHVfZW5jb2Rlcl9waHlzX2NtZF9pbml0X29wcygKIAkJc3RydWN0IGRwdV9lbmNvZGVy X3BoeXNfb3BzICpvcHMpCiB7Ci0Jb3BzLT5wcmVwYXJlX2NvbW1pdCA9IGRwdV9lbmNvZGVyX3Bo eXNfY21kX3ByZXBhcmVfY29tbWl0OwogCW9wcy0+aXNfbWFzdGVyID0gZHB1X2VuY29kZXJfcGh5 c19jbWRfaXNfbWFzdGVyOwogCW9wcy0+bW9kZV9zZXQgPSBkcHVfZW5jb2Rlcl9waHlzX2NtZF9t b2RlX3NldDsKIAlvcHMtPm1vZGVfZml4dXAgPSBkcHVfZW5jb2Rlcl9waHlzX2NtZF9tb2RlX2Zp eHVwOwpAQCAtMTEwMCw4ICs4MjIsNiBAQCBzdGF0aWMgdm9pZCBkcHVfZW5jb2Rlcl9waHlzX2Nt ZF9pbml0X29wcygKIAlvcHMtPmlycV9jb250cm9sID0gZHB1X2VuY29kZXJfcGh5c19jbWRfaXJx X2NvbnRyb2w7CiAJb3BzLT5yZXN0b3JlID0gZHB1X2VuY29kZXJfcGh5c19jbWRfZW5hYmxlX2hl bHBlcjsKIAlvcHMtPnByZXBhcmVfaWRsZV9wYyA9IGRwdV9lbmNvZGVyX3BoeXNfY21kX3ByZXBh cmVfaWRsZV9wYzsKLQlvcHMtPmlzX2F1dG9yZWZyZXNoX2VuYWJsZWQgPQotCQkJZHB1X2VuY29k ZXJfcGh5c19jbWRfaXNfYXV0b3JlZnJlc2hfZW5hYmxlZDsKIAlvcHMtPmhhbmRsZV9wb3N0X2tp Y2tvZmYgPSBkcHVfZW5jb2Rlcl9waHlzX2NtZF9oYW5kbGVfcG9zdF9raWNrb2ZmOwogCW9wcy0+ Z2V0X2xpbmVfY291bnQgPSBkcHVfZW5jb2Rlcl9waHlzX2NtZF9nZXRfbGluZV9jb3VudDsKIH0K QEAgLTExNzUsMjAgKzg5NSwxMiBAQCBzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5cyAqZHB1X2VuY29k ZXJfcGh5c19jbWRfaW5pdCgKIAlpcnEtPmludHJfaWR4ID0gSU5UUl9JRFhfVU5ERVJSVU47CiAJ aXJxLT5jYi5mdW5jID0gZHB1X2VuY29kZXJfcGh5c19jbWRfdW5kZXJydW5faXJxOwogCi0JaXJx ID0gJnBoeXNfZW5jLT5pcnFbSU5UUl9JRFhfQVVUT1JFRlJFU0hfRE9ORV07Ci0JaXJxLT5uYW1l ID0gImF1dG9yZWZyZXNoX2RvbmUiOwotCWlycS0+aW50cl90eXBlID0gRFBVX0lSUV9UWVBFX1BJ TkdfUE9OR19BVVRPX1JFRjsKLQlpcnEtPmludHJfaWR4ID0gSU5UUl9JRFhfQVVUT1JFRlJFU0hf RE9ORTsKLQlpcnEtPmNiLmZ1bmMgPSBkcHVfZW5jb2Rlcl9waHlzX2NtZF9hdXRvcmVmcmVzaF9k b25lX2lycTsKLQogCWF0b21pY19zZXQoJnBoeXNfZW5jLT52YmxhbmtfcmVmY291bnQsIDApOwog CWF0b21pY19zZXQoJnBoeXNfZW5jLT5wZW5kaW5nX2tpY2tvZmZfY250LCAwKTsKIAlhdG9taWNf c2V0KCZwaHlzX2VuYy0+cGVuZGluZ19jdGxzdGFydF9jbnQsIDApOwogCWF0b21pY19zZXQoJmNt ZF9lbmMtPnBlbmRpbmdfdmJsYW5rX2NudCwgMCk7CiAJaW5pdF93YWl0cXVldWVfaGVhZCgmcGh5 c19lbmMtPnBlbmRpbmdfa2lja29mZl93cSk7CiAJaW5pdF93YWl0cXVldWVfaGVhZCgmY21kX2Vu Yy0+cGVuZGluZ192Ymxhbmtfd3EpOwotCWF0b21pY19zZXQoJmNtZF9lbmMtPmF1dG9yZWZyZXNo LmtpY2tvZmZfY250LCAwKTsKLQlpbml0X3dhaXRxdWV1ZV9oZWFkKCZjbWRfZW5jLT5hdXRvcmVm cmVzaC5raWNrb2ZmX3dxKTsKIAogCURQVV9ERUJVR19DTURFTkMoY21kX2VuYywgImNyZWF0ZWRc biIpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdf cGluZ3BvbmcuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od19waW5ncG9u Zy5jCmluZGV4IDkzMDhmNWMuLjBiZmI1MTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9t c20vZGlzcC9kcHUxL2RwdV9od19waW5ncG9uZy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20v ZGlzcC9kcHUxL2RwdV9od19waW5ncG9uZy5jCkBAIC0zMSw3ICszMSw2IEBACiAjZGVmaW5lIFBQ X1dSX1BUUl9JUlEgICAgICAgICAgICAgICAgICAgMHgwMjQKICNkZWZpbmUgUFBfT1VUX0xJTkVf Q09VTlQgICAgICAgICAgICAgICAweDAyOAogI2RlZmluZSBQUF9MSU5FX0NPVU5UICAgICAgICAg ICAgICAgICAgIDB4MDJDCi0jZGVmaW5lIFBQX0FVVE9SRUZSRVNIX0NPTkZJRyAgICAgICAgICAg MHgwMzAKIAogI2RlZmluZSBQUF9GQkNfTU9ERSAgICAgICAgICAgICAgICAgICAgIDB4MDM0CiAj ZGVmaW5lIFBQX0ZCQ19CVURHRVRfQ1RMICAgICAgICAgICAgICAgMHgwMzgKQEAgLTkzLDQ0ICs5 Miw2IEBAIHN0YXRpYyBpbnQgZHB1X2h3X3BwX3NldHVwX3RlX2NvbmZpZyhzdHJ1Y3QgZHB1X2h3 X3Bpbmdwb25nICpwcCwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBkcHVfaHdfcHBfc2V0 dXBfYXV0b3JlZnJlc2hfY29uZmlnKHN0cnVjdCBkcHVfaHdfcGluZ3BvbmcgKnBwLAotCQlzdHJ1 Y3QgZHB1X2h3X2F1dG9yZWZyZXNoICpjZmcpCi17Ci0Jc3RydWN0IGRwdV9od19ibGtfcmVnX21h cCAqYzsKLQl1MzIgcmVmcmVzaF9jZmc7Ci0KLQlpZiAoIXBwIHx8ICFjZmcpCi0JCXJldHVybiAt RUlOVkFMOwotCWMgPSAmcHAtPmh3OwotCi0JaWYgKGNmZy0+ZW5hYmxlKQotCQlyZWZyZXNoX2Nm ZyA9IEJJVCgzMSkgfCBjZmctPmZyYW1lX2NvdW50OwotCWVsc2UKLQkJcmVmcmVzaF9jZmcgPSAw OwotCi0JRFBVX1JFR19XUklURShjLCBQUF9BVVRPUkVGUkVTSF9DT05GSUcsIHJlZnJlc2hfY2Zn KTsKLQlEUFVfRVZUMzIocHAtPmlkeCAtIFBJTkdQT05HXzAsIHJlZnJlc2hfY2ZnKTsKLQotCXJl dHVybiAwOwotfQotCi1zdGF0aWMgaW50IGRwdV9od19wcF9nZXRfYXV0b3JlZnJlc2hfY29uZmln KHN0cnVjdCBkcHVfaHdfcGluZ3BvbmcgKnBwLAotCQlzdHJ1Y3QgZHB1X2h3X2F1dG9yZWZyZXNo ICpjZmcpCi17Ci0Jc3RydWN0IGRwdV9od19ibGtfcmVnX21hcCAqYzsKLQl1MzIgdmFsOwotCi0J aWYgKCFwcCB8fCAhY2ZnKQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCWMgPSAmcHAtPmh3OwotCXZh bCA9IERQVV9SRUdfUkVBRChjLCBQUF9BVVRPUkVGUkVTSF9DT05GSUcpOwotCWNmZy0+ZW5hYmxl ID0gKHZhbCAmIEJJVCgzMSkpID4+IDMxOwotCWNmZy0+ZnJhbWVfY291bnQgPSB2YWwgJiAweGZm ZmY7Ci0KLQlyZXR1cm4gMDsKLX0KLQogc3RhdGljIGludCBkcHVfaHdfcHBfcG9sbF90aW1lb3V0 X3dyX3B0cihzdHJ1Y3QgZHB1X2h3X3Bpbmdwb25nICpwcCwKIAkJdTMyIHRpbWVvdXRfdXMpCiB7 CkBAIC0yOTMsOCArMjU0LDYgQEAgc3RhdGljIHZvaWQgX3NldHVwX3Bpbmdwb25nX29wcyhzdHJ1 Y3QgZHB1X2h3X3Bpbmdwb25nX29wcyAqb3BzLAogCW9wcy0+ZW5hYmxlX3RlYXJjaGVjayA9IGRw dV9od19wcF9lbmFibGVfdGU7CiAJb3BzLT5jb25uZWN0X2V4dGVybmFsX3RlID0gZHB1X2h3X3Bw X2Nvbm5lY3RfZXh0ZXJuYWxfdGU7CiAJb3BzLT5nZXRfdnN5bmNfaW5mbyA9IGRwdV9od19wcF9n ZXRfdnN5bmNfaW5mbzsKLQlvcHMtPnNldHVwX2F1dG9yZWZyZXNoID0gZHB1X2h3X3BwX3NldHVw X2F1dG9yZWZyZXNoX2NvbmZpZzsKLQlvcHMtPmdldF9hdXRvcmVmcmVzaCA9IGRwdV9od19wcF9n ZXRfYXV0b3JlZnJlc2hfY29uZmlnOwogCW9wcy0+cG9sbF90aW1lb3V0X3dyX3B0ciA9IGRwdV9o d19wcF9wb2xsX3RpbWVvdXRfd3JfcHRyOwogCW9wcy0+Z2V0X2xpbmVfY291bnQgPSBkcHVfaHdf cHBfZ2V0X2xpbmVfY291bnQ7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlz cC9kcHUxL2RwdV9od19waW5ncG9uZy5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEv ZHB1X2h3X3Bpbmdwb25nLmgKaW5kZXggOTNkMDNjY2UuLjdkYmZjYWUgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od19waW5ncG9uZy5oCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od19waW5ncG9uZy5oCkBAIC0zNiwxMSArMzYs NiBAQCBzdHJ1Y3QgZHB1X2h3X3RlYXJfY2hlY2sgewogCXU4IGh3X3ZzeW5jX21vZGU7CiB9Owog Ci1zdHJ1Y3QgZHB1X2h3X2F1dG9yZWZyZXNoIHsKLQlib29sICBlbmFibGU7Ci0JdTMyIGZyYW1l X2NvdW50OwotfTsKLQogc3RydWN0IGRwdV9od19wcF92c3luY19pbmZvIHsKIAl1MzIgcmRfcHRy X2luaXRfdmFsOwkvKiB2YWx1ZSBvZiByZCBwb2ludGVyIGF0IHZzeW5jIGVkZ2UgKi8KIAl1MzIg cmRfcHRyX2ZyYW1lX2NvdW50OwkvKiBudW0gZnJhbWVzIHNlbnQgc2luY2UgZW5hYmxpbmcgaW50 ZXJmYWNlICovCkBAIC01NSw3ICs1MCw2IEBAIHN0cnVjdCBkcHVfaHdfcHBfdnN5bmNfaW5mbyB7 CiAgKiAgQHNldHVwX3RlYXJjaGVjayA6IHByb2dyYW0gdGVhciBjaGVjayB2YWx1ZXMKICAqICBA ZW5hYmxlX3RlYXJjaGVjayA6IGVuYWJsZXMgdGVhciBjaGVjawogICogIEBnZXRfdnN5bmNfaW5m byA6IHJldHJpZXMgdGltaW5nIGluZm8gb2YgdGhlIHBhbmVsCi0gKiAgQHNldHVwX2F1dG9yZWZy ZXNoIDogcHJvZ3JhbSBhdXRvIHJlZnJlc2gKICAqICBAc2V0dXBfZGl0aGVyIDogZnVuY3Rpb24g dG8gcHJvZ3JhbSB0aGUgZGl0aGVyIGh3IGJsb2NrCiAgKiAgQGdldF9saW5lX2NvdW50OiBvYnRh aW4gY3VycmVudCB2ZXJ0aWNhbCBsaW5lIGNvdW50ZXIKICAqLwpAQCAtODgsMTggKzgyLDYgQEAg c3RydWN0IGRwdV9od19waW5ncG9uZ19vcHMgewogCQkJc3RydWN0IGRwdV9od19wcF92c3luY19p bmZvICAqaW5mbyk7CiAKIAkvKioKLQkgKiBjb25maWd1cmUgYW5kIGVuYWJsZSB0aGUgYXV0b3Jl ZnJlc2ggY29uZmlnCi0JICovCi0JaW50ICgqc2V0dXBfYXV0b3JlZnJlc2gpKHN0cnVjdCBkcHVf aHdfcGluZ3BvbmcgKnBwLAotCQkJc3RydWN0IGRwdV9od19hdXRvcmVmcmVzaCAqY2ZnKTsKLQot CS8qKgotCSAqIHJldHJpZXZlIGF1dG9yZWZyZXNoIGNvbmZpZyBmcm9tIGhhcmR3YXJlCi0JICov Ci0JaW50ICgqZ2V0X2F1dG9yZWZyZXNoKShzdHJ1Y3QgZHB1X2h3X3Bpbmdwb25nICpwcCwKLQkJ CXN0cnVjdCBkcHVfaHdfYXV0b3JlZnJlc2ggKmNmZyk7Ci0KLQkvKioKIAkgKiBwb2xsIHVudGls IHdyaXRlIHBvaW50ZXIgdHJhbnNtaXNzaW9uIHN0YXJ0cwogCSAqIEBSZXR1cm46IDAgb24gc3Vj Y2VzcywgLUVUSU1FRE9VVCBvbiB0aW1lb3V0CiAJICovCi0tIApUaGUgUXVhbGNvbW0gSW5ub3Zh dGlvbiBDZW50ZXIsIEluYy4gaXMgYSBtZW1iZXIgb2YgdGhlIENvZGUgQXVyb3JhIEZvcnVtLAph IExpbnV4IEZvdW5kYXRpb24gQ29sbGFib3JhdGl2ZSBQcm9qZWN0CgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpGcmVlZHJlbm8gbWFpbGluZyBsaXN0CkZy ZWVkcmVub0BsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9mcmVlZHJlbm8K