From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeykumar Sankaran Subject: [DPU PATCH 3/6] drm/msm: remove panel autorefresh support for SDM845 Date: Mon, 16 Apr 2018 11:22:18 -0700 Message-ID: <1523902941-2253-4-git-send-email-jsanka@codeaurora.org> References: <1523902941-2253-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: <1523902941-2253-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 Y2UKY29tbXVuaWNhdGlvbiB0byBzZXQgcHJlZmVyZW5jZSBmb3IgdGhlIGZlYXR1cmUuCgpTaWdu ZWQtb2ZmLWJ5OiBKZXlrdW1hciBTYW5rYXJhbiA8anNhbmthQGNvZGVhdXJvcmEub3JnPgotLS0K IGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jb25uZWN0b3IuYyAgICAgIHwgICA3 IC0KIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmMgICAgICAgIHwg IDM3ICstLQogZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXJfcGh5cy5o ICAgfCAgMjAgLS0KIC4uLi9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXJfcGh5c19j bWQuYyAgIHwgMjk4ICstLS0tLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL21zbS9k aXNwL2RwdTEvZHB1X2h3X3Bpbmdwb25nLmMgICAgfCAgNDEgLS0tCiBkcml2ZXJzL2dwdS9kcm0v bXNtL2Rpc3AvZHB1MS9kcHVfaHdfcGluZ3BvbmcuaCAgICB8ICAxOCAtLQogNiBmaWxlcyBjaGFu Z2VkLCAxMSBpbnNlcnRpb25zKCspLCA0MTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2Nvbm5lY3Rvci5jIGIvZHJpdmVycy9ncHUv ZHJtL21zbS9kaXNwL2RwdTEvZHB1X2Nvbm5lY3Rvci5jCmluZGV4IGY3ZTlmNzYuLmRjMDk3OGQg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jb25uZWN0b3Iu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY29ubmVjdG9yLmMKQEAg LTI0LDkgKzI0LDYgQEAKIAogI2RlZmluZSBCTF9OT0RFX05BTUVfU0laRSAzMgogCi0vKiBBdXRv cmVmcmVzaCB3aWxsIG9jY3VyIGFmdGVyIEZSQU1FX0NOVCBmcmFtZXMuIExhcmdlIHZhbHVlcyBh cmUgdW5saWtlbHkgKi8KLSNkZWZpbmUgQVVUT1JFRlJFU0hfTUFYX0ZSQU1FX0NOVCA2Ci0KICNk ZWZpbmUgRFBVX0RFQlVHX0NPTk4oYywgZm10LCAuLi4pIERQVV9ERUJVRygiY29ubiVkICIgZm10 LFwKIAkJKGMpID8gKGMpLT5iYXNlLmJhc2UuaWQgOiAtMSwgIyNfX1ZBX0FSR1NfXykKIApAQCAt MTEyNiwxMCArMTEyMyw2IEBAIHN0cnVjdCBkcm1fY29ubmVjdG9yICpkcHVfY29ubmVjdG9yX2lu aXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJQ09OTkVDVE9SX1BST1BfQURfQkxfU0NBTEUp OwogI2VuZGlmCiAKLQltc21fcHJvcGVydHlfaW5zdGFsbF9yYW5nZSgmY19jb25uLT5wcm9wZXJ0 eV9pbmZvLCAiYXV0b3JlZnJlc2giLAotCQkJMHgwLCAwLCBBVVRPUkVGUkVTSF9NQVhfRlJBTUVf Q05ULCAwLAotCQkJQ09OTkVDVE9SX1BST1BfQVVUT1JFRlJFU0gpOwotCiAJLyogZW51bS9iaXRt YXNrIHByb3BlcnRpZXMgKi8KIAltc21fcHJvcGVydHlfaW5zdGFsbF9lbnVtKCZjX2Nvbm4tPnBy b3BlcnR5X2luZm8sICJ0b3BvbG9neV9uYW1lIiwKIAkJCURSTV9NT0RFX1BST1BfSU1NVVRBQkxF LCAwLCBlX3RvcG9sb2d5X25hbWUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rp c3AvZHB1MS9kcHVfZW5jb2Rlci5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1 X2VuY29kZXIuYwppbmRleCAzMjM3NWIxLi4zMDA0NTY5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9t c20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmMKQEAgLTgxNSw3ICs4MTUsNiBAQCBzdGF0aWMgdm9p ZCBfZHB1X2VuY29kZXJfcmVzb3VyY2VfY29udHJvbF9oZWxwZXIoc3RydWN0IGRybV9lbmNvZGVy ICpkcm1fZW5jLAogc3RhdGljIGludCBkcHVfZW5jb2Rlcl9yZXNvdXJjZV9jb250cm9sKHN0cnVj dCBkcm1fZW5jb2RlciAqZHJtX2VuYywKIAkJdTMyIHN3X2V2ZW50KQogewotCWJvb2wgYXV0b3Jl ZnJlc2hfZW5hYmxlZCA9IGZhbHNlOwogCXVuc2lnbmVkIGludCBscCwgaWRsZV90aW1lb3V0Owog CXN0cnVjdCBkcHVfZW5jb2Rlcl92aXJ0ICpkcHVfZW5jOwogCXN0cnVjdCBtc21fZHJtX3ByaXZh dGUgKnByaXY7CkBAIC05MjIsMTMgKzkyMSw2IEBAIHN0YXRpYyBpbnQgZHB1X2VuY29kZXJfcmVz b3VyY2VfY29udHJvbChzdHJ1Y3QgZHJtX2VuY29kZXIgKmRybV9lbmMsCiAJCQlyZXR1cm4gMDsK IAkJfQogCi0JCS8qIHNjaGVkdWxlIGRlbGF5ZWQgb2ZmIHdvcmsgaWYgYXV0b3JlZnJlc2ggaXMg ZGlzYWJsZWQgKi8KLQkJaWYgKGRwdV9lbmMtPmN1cl9tYXN0ZXIgJiYKLQkJCWRwdV9lbmMtPmN1 cl9tYXN0ZXItPm9wcy5pc19hdXRvcmVmcmVzaF9lbmFibGVkKQotCQkJYXV0b3JlZnJlc2hfZW5h YmxlZCA9Ci0JCQkJZHB1X2VuYy0+Y3VyX21hc3Rlci0+b3BzLmlzX2F1dG9yZWZyZXNoX2VuYWJs ZWQoCi0JCQkJCQkJZHB1X2VuYy0+Y3VyX21hc3Rlcik7Ci0KIAkJLyogc2V0IGlkbGUgdGltZW91 dCBiYXNlZCBvbiBtYXN0ZXIgY29ubmVjdG9yJ3MgbHAgdmFsdWUgKi8KIAkJaWYgKGRwdV9lbmMt PmN1cl9tYXN0ZXIpCiAJCQlscCA9IGRwdV9jb25uZWN0b3JfZ2V0X2xwKApAQCAtOTQxLDEzICs5 MzMsMTIgQEAgc3RhdGljIGludCBkcHVfZW5jb2Rlcl9yZXNvdXJjZV9jb250cm9sKHN0cnVjdCBk cm1fZW5jb2RlciAqZHJtX2VuYywKIAkJZWxzZQogCQkJaWRsZV90aW1lb3V0ID0gZHB1X2VuYy0+ aWRsZV90aW1lb3V0OwogCi0JCWlmICghYXV0b3JlZnJlc2hfZW5hYmxlZCkKLQkJCWt0aHJlYWRf cXVldWVfZGVsYXllZF93b3JrKAotCQkJCSZkaXNwX3RocmVhZC0+d29ya2VyLAotCQkJCSZkcHVf ZW5jLT5kZWxheWVkX29mZl93b3JrLAotCQkJCW1zZWNzX3RvX2ppZmZpZXMoaWRsZV90aW1lb3V0 KSk7CisJCWt0aHJlYWRfcXVldWVfZGVsYXllZF93b3JrKAorCQkJJmRpc3BfdGhyZWFkLT53b3Jr ZXIsCisJCQkmZHB1X2VuYy0+ZGVsYXllZF9vZmZfd29yaywKKwkJCW1zZWNzX3RvX2ppZmZpZXMo aWRsZV90aW1lb3V0KSk7CisKIAkJRFBVX0VWVDMyKERSTUlEKGRybV9lbmMpLCBzd19ldmVudCwg ZHB1X2VuYy0+cmNfc3RhdGUsCi0JCQkJYXV0b3JlZnJlc2hfZW5hYmxlZCwKIAkJCQlpZGxlX3Rp bWVvdXQsIERQVV9FVlRMT0dfRlVOQ19DQVNFMik7CiAJCURQVV9ERUJVR19FTkMoZHB1X2VuYywg InN3X2V2ZW50OiVkLCB3b3JrIHNjaGVkdWxlZFxuIiwKIAkJCQlzd19ldmVudCk7CkBAIC0xOTkw LDcgKzE5ODEsNiBAQCBzdGF0aWMgdm9pZCBkcHVfZW5jb2Rlcl92c3luY19ldmVudF9oYW5kbGVy KHN0cnVjdCB0aW1lcl9saXN0ICp0KQogCXN0cnVjdCBkcm1fZW5jb2RlciAqZHJtX2VuYyA9ICZk cHVfZW5jLT5iYXNlOwogCXN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXY7CiAJc3RydWN0IG1z bV9kcm1fdGhyZWFkICpldmVudF90aHJlYWQ7Ci0JYm9vbCBhdXRvcmVmcmVzaF9lbmFibGVkID0g ZmFsc2U7CiAKIAlpZiAoIWRybV9lbmMtPmRldiB8fCAhZHJtX2VuYy0+ZGV2LT5kZXZfcHJpdmF0 ZSB8fAogCQkJIWRybV9lbmMtPmNydGMpIHsKQEAgLTIwMTEsMjIgKzIwMDEsNyBAQCBzdGF0aWMg dm9pZCBkcHVfZW5jb2Rlcl92c3luY19ldmVudF9oYW5kbGVyKHN0cnVjdCB0aW1lcl9saXN0ICp0 KQogCQlyZXR1cm47CiAJfQogCi0JaWYgKGRwdV9lbmMtPmN1cl9tYXN0ZXIgJiYKLQkJZHB1X2Vu Yy0+Y3VyX21hc3Rlci0+b3BzLmlzX2F1dG9yZWZyZXNoX2VuYWJsZWQpCi0JCWF1dG9yZWZyZXNo X2VuYWJsZWQgPQotCQkJZHB1X2VuYy0+Y3VyX21hc3Rlci0+b3BzLmlzX2F1dG9yZWZyZXNoX2Vu YWJsZWQoCi0JCQkJCQlkcHVfZW5jLT5jdXJfbWFzdGVyKTsKLQotCS8qCi0JICogUXVldWUgd29y ayB0byB1cGRhdGUgdGhlIHZzeW5jIGV2ZW50IHRpbWVyCi0JICogaWYgYXV0b3JlZnJlc2ggaXMg ZW5hYmxlZC4KLQkgKi8KLQlEUFVfRVZUMzJfVkVSQk9TRShhdXRvcmVmcmVzaF9lbmFibGVkKTsK LQlpZiAoYXV0b3JlZnJlc2hfZW5hYmxlZCkKLQkJa3RocmVhZF9xdWV1ZV93b3JrKCZldmVudF90 aHJlYWQtPndvcmtlciwKLQkJCQkmZHB1X2VuYy0+dnN5bmNfZXZlbnRfd29yayk7Ci0JZWxzZQot CQlkZWxfdGltZXIoJmRwdV9lbmMtPnZzeW5jX2V2ZW50X3RpbWVyKTsKKwlkZWxfdGltZXIoJmRw dV9lbmMtPnZzeW5jX2V2ZW50X3RpbWVyKTsKIH0KIAogc3RhdGljIHZvaWQgZHB1X2VuY29kZXJf dnN5bmNfZXZlbnRfd29ya19oYW5kbGVyKHN0cnVjdCBrdGhyZWFkX3dvcmsgKndvcmspCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlcl9waHlzLmgg Yi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlcl9waHlzLmgKaW5kZXgg NjllYzJiNi4uZDNiZmM5OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2Rw dTEvZHB1X2VuY29kZXJfcGh5cy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUx L2RwdV9lbmNvZGVyX3BoeXMuaApAQCAtMTI0LDggKzEyNCw2IEBAIHN0cnVjdCBkcHVfZW5jb2Rl cl92aXJ0X29wcyB7CiAgKiBAcHJlcGFyZV9pZGxlX3BjOgkJcGh5cyBlbmNvZGVyIGNhbiB1cGRh dGUgdGhlIHZzeW5jX2VuYWJsZSBzdGF0dXMKICAqICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgb24gaWRsZSBwb3dlciBjb2xsYXBzZSBwcmVwYXJlCiAgKiBAcmVzdG9yZToJCQlSZXN0b3Jl IGFsbCB0aGUgZW5jb2RlciBjb25maWdzLgotICogQGlzX2F1dG9yZWZyZXNoX2VuYWJsZWQ6CXBy b3ZpZGVzIHRoZSBhdXRvcmVmcmVzaCBjdXJyZW50Ci0gKiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGVuYWJsZS9kaXNhYmxlIHN0YXRlLgogICogQGdldF9saW5lX2NvdW50OgkJT2J0YWlu IGN1cnJlbnQgdmVydGljYWwgbGluZSBjb3VudAogICovCiAKQEAgLTE2Niw3ICsxNjQsNiBAQCBz dHJ1Y3QgZHB1X2VuY29kZXJfcGh5c19vcHMgewogCXZvaWQgKCppcnFfY29udHJvbCkoc3RydWN0 IGRwdV9lbmNvZGVyX3BoeXMgKnBoeXMsIGJvb2wgZW5hYmxlKTsKIAl2b2lkICgqcHJlcGFyZV9p ZGxlX3BjKShzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5cyAqcGh5c19lbmMpOwogCXZvaWQgKCpyZXN0 b3JlKShzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5cyAqcGh5cyk7Ci0JYm9vbCAoKmlzX2F1dG9yZWZy ZXNoX2VuYWJsZWQpKHN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzICpwaHlzKTsKIAlpbnQgKCpnZXRf bGluZV9jb3VudCkoc3RydWN0IGRwdV9lbmNvZGVyX3BoeXMgKnBoeXMpOwogfTsKIApAQCAtMTc2 LDggKzE3Myw2IEBAIHN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzX29wcyB7CiAgKiBASU5UUl9JRFhf UElOR1BPTkc6IFBpbmdwb25nIGRvbmUgdW50ZXJydXB0IGZvciBjbWQgbW9kZSBwYW5lbAogICog QElOVFJfSURYX1VOREVSUlVOOiBVbmRlcnJ1biB1bnRlcnJ1cHQgZm9yIHZpZGVvIGFuZCBjbWQg bW9kZSBwYW5lbAogICogQElOVFJfSURYX1JEUFRSOiAgICBSZWFkcG9pbnRlciBkb25lIHVudGVy cnVwdCBmb3IgY21kIG1vZGUgcGFuZWwKLSAqIEBJTlRSX0lEWF9BVVRPUkVGUkVTSF9ET05FOiAg QXV0b3JlZnJlc2ggZG9uZSBmb3IgY21kIG1vZGUgcGFuZWwgbWVhbmluZwotICogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhdXRvcmVmcmVzaCBoYXMgdHJpZ2dlcmVkIGEgZG91YmxlIGJ1 ZmZlciBmbGlwCiAgKi8KIGVudW0gZHB1X2ludHJfaWR4IHsKIAlJTlRSX0lEWF9WU1lOQywKQEAg LTE4NSw3ICsxODAsNiBAQCBlbnVtIGRwdV9pbnRyX2lkeCB7CiAJSU5UUl9JRFhfVU5ERVJSVU4s CiAJSU5UUl9JRFhfQ1RMX1NUQVJULAogCUlOVFJfSURYX1JEUFRSLAotCUlOVFJfSURYX0FVVE9S RUZSRVNIX0RPTkUsCiAJSU5UUl9JRFhfTUFYLAogfTsKIApAQCAtMjg3LDE4ICsyODEsNiBAQCBz dHJ1Y3QgZHB1X2VuY29kZXJfcGh5c192aWQgewogfTsKIAogLyoqCi0gKiBzdHJ1Y3QgZHB1X2Vu Y29kZXJfcGh5c19jbWRfYXV0b3JlZnJlc2ggLSBhdXRvcmVmcmVzaCBzdGF0ZSB0cmFja2luZwot ICogQGNmZzogY3VycmVudCBhY3RpdmUgYXV0b3JlZnJlc2ggY29uZmlndXJhdGlvbgotICogQGtp Y2tvZmZfY250OiBhdG9taWMgY291bnQgdHJhY2tpbmcgYXV0b3JlZnJlc2ggZG9uZSBpcnEga2lj a29mZnMgcGVuZGluZwotICogQGtpY2tvZmZfd3E6CXdhaXQgcXVldWUgZm9yIHdhaXRpbmcgb24g YXV0b3JlZnJlc2ggZG9uZSBpcnEKLSAqLwotc3RydWN0IGRwdV9lbmNvZGVyX3BoeXNfY21kX2F1 dG9yZWZyZXNoIHsKLQlzdHJ1Y3QgZHB1X2h3X2F1dG9yZWZyZXNoIGNmZzsKLQlhdG9taWNfdCBr aWNrb2ZmX2NudDsKLQl3YWl0X3F1ZXVlX2hlYWRfdCBraWNrb2ZmX3dxOwotfTsKLQotLyoqCiAg KiBzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5c19jbWQgLSBzdWItY2xhc3Mgb2YgZHB1X2VuY29kZXJf cGh5cyB0byBoYW5kbGUgY29tbWFuZAogICoJbW9kZSBzcGVjaWZpYyBvcGVyYXRpb25zCiAgKiBA YmFzZToJQmFzZWNsYXNzIHBoeXNpY2FsIGVuY29kZXIgc3RydWN0dXJlCkBAIC0zMDcsNyArMjg5 LDYgQEAgc3RydWN0IGRwdV9lbmNvZGVyX3BoeXNfY21kX2F1dG9yZWZyZXNoIHsKICAqIEBzZXJp YWxpemVfd2FpdDRwcDoJc2VyaWFsaXplIHdhaXQ0cHAgZmVhdHVyZSB3YWl0cyBmb3IgcHBfZG9u ZSBpbnRlcnJ1cHQKICAqCQkJYWZ0ZXIgY3RsX3N0YXJ0IGluc3RlYWQgb2YgYmVmb3JlIG5leHQg ZnJhbWUga2lja29mZgogICogQHBwX3RpbWVvdXRfcmVwb3J0X2NudDogbnVtYmVyIG9mIHBpbmdw b25nIGRvbmUgaXJxIHRpbWVvdXQgZXJyb3JzCi0gKiBAYXV0b3JlZnJlc2g6IGF1dG9yZWZyZXNo IGZlYXR1cmUgc3RhdGUKICAqIEBwZW5kaW5nX3ZibGFua19jbnQ6IEF0b21pYyBjb3VudGVyIHRy YWNraW5nIHBlbmRpbmcgd2FpdCBmb3IgVkJMQU5LCiAgKiBAcGVuZGluZ192Ymxhbmtfd3E6IFdh aXQgcXVldWUgZm9yIGJsb2NraW5nIHVudGlsIFZCTEFOSyByZWNlaXZlZAogICovCkBAIC0zMTYs NyArMjk3LDYgQEAgc3RydWN0IGRwdV9lbmNvZGVyX3BoeXNfY21kIHsKIAlpbnQgc3RyZWFtX3Nl bDsKIAlib29sIHNlcmlhbGl6ZV93YWl0NHBwOwogCWludCBwcF90aW1lb3V0X3JlcG9ydF9jbnQ7 Ci0Jc3RydWN0IGRwdV9lbmNvZGVyX3BoeXNfY21kX2F1dG9yZWZyZXNoIGF1dG9yZWZyZXNoOwog CWF0b21pY190IHBlbmRpbmdfdmJsYW5rX2NudDsKIAl3YWl0X3F1ZXVlX2hlYWRfdCBwZW5kaW5n X3ZibGFua193cTsKIH07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1 MS9kcHVfZW5jb2Rlcl9waHlzX2NtZC5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEv ZHB1X2VuY29kZXJfcGh5c19jbWQuYwppbmRleCAzNDM2Nzg4Li4wNzI5MzljIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlcl9waHlzX2NtZC5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyX3BoeXNfY21kLmMK QEAgLTQ3LDkgKzQ3LDcgQEAKIHN0YXRpYyBpbmxpbmUgaW50IF9kcHVfZW5jb2Rlcl9waHlzX2Nt ZF9nZXRfaWRsZV90aW1lb3V0KAogCQlzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5c19jbWQgKmNtZF9l bmMpCiB7Ci0JcmV0dXJuIGNtZF9lbmMtPmF1dG9yZWZyZXNoLmNmZy5mcmFtZV9jb3VudCA/Ci0J CQljbWRfZW5jLT5hdXRvcmVmcmVzaC5jZmcuZnJhbWVfY291bnQgKgotCQkJS0lDS09GRl9USU1F T1VUX01TIDogS0lDS09GRl9USU1FT1VUX01TOworCXJldHVybiBLSUNLT0ZGX1RJTUVPVVRfTVM7 CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBkcHVfZW5jb2Rlcl9waHlzX2NtZF9pc19tYXN0ZXIo CkBAIC02OCw1MiArNjYsNiBAQCBzdGF0aWMgYm9vbCBkcHVfZW5jb2Rlcl9waHlzX2NtZF9tb2Rl X2ZpeHVwKAogCXJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgdWludDY0X3QgX2RwdV9lbmNvZGVy X3BoeXNfY21kX2dldF9hdXRvcmVmcmVzaF9wcm9wZXJ0eSgKLQkJc3RydWN0IGRwdV9lbmNvZGVy X3BoeXMgKnBoeXNfZW5jKQotewotCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uID0gcGh5c19l bmMtPmNvbm5lY3RvcjsKLQotCWlmICghY29ubiB8fCAhY29ubi0+c3RhdGUpCi0JCXJldHVybiAw OwotCi0JcmV0dXJuIGRwdV9jb25uZWN0b3JfZ2V0X3Byb3BlcnR5KGNvbm4tPnN0YXRlLAotCQkJ CUNPTk5FQ1RPUl9QUk9QX0FVVE9SRUZSRVNIKTsKLX0KLQotc3RhdGljIHZvaWQgX2RwdV9lbmNv ZGVyX3BoeXNfY21kX2NvbmZpZ19hdXRvcmVmcmVzaCgKLQkJc3RydWN0IGRwdV9lbmNvZGVyX3Bo eXMgKnBoeXNfZW5jLAotCQl1MzIgbmV3X2ZyYW1lX2NvdW50KQotewotCXN0cnVjdCBkcHVfZW5j b2Rlcl9waHlzX2NtZCAqY21kX2VuYyA9Ci0JCQl0b19kcHVfZW5jb2Rlcl9waHlzX2NtZChwaHlz X2VuYyk7Ci0Jc3RydWN0IGRwdV9od19waW5ncG9uZyAqaHdfcHAgPSBwaHlzX2VuYy0+aHdfcHA7 Ci0Jc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm4gPSBwaHlzX2VuYy0+Y29ubmVjdG9yOwotCXN0 cnVjdCBkcHVfaHdfYXV0b3JlZnJlc2ggKmNmZ19jdXIsIGNmZ19ueHQ7Ci0KLQlpZiAoIWNvbm4g fHwgIWNvbm4tPnN0YXRlIHx8ICFod19wcCkKLQkJcmV0dXJuOwotCi0JY2ZnX2N1ciA9ICZjbWRf ZW5jLT5hdXRvcmVmcmVzaC5jZmc7Ci0KLQkvKiBhdXRvcmVmcmVzaCBwcm9wZXJ0eSB2YWx1ZSBz aG91bGQgYmUgdmFsaWRhdGVkIGFscmVhZHkgKi8KLQltZW1zZXQoJmNmZ19ueHQsIDAsIHNpemVv ZihjZmdfbnh0KSk7Ci0JY2ZnX254dC5mcmFtZV9jb3VudCA9IG5ld19mcmFtZV9jb3VudDsKLQlj Zmdfbnh0LmVuYWJsZSA9IChjZmdfbnh0LmZyYW1lX2NvdW50ICE9IDApOwotCi0JRFBVX0RFQlVH X0NNREVOQyhjbWRfZW5jLCAiYXV0b3JlZnJlc2ggc3RhdGUgJWQtPiVkIGZyYW1lY291bnQgJWRc biIsCi0JCQljZmdfY3VyLT5lbmFibGUsIGNmZ19ueHQuZW5hYmxlLCBjZmdfbnh0LmZyYW1lX2Nv dW50KTsKLQlEUFVfRVZUMzIoRFJNSUQocGh5c19lbmMtPnBhcmVudCksIGh3X3BwLT5pZHgsIGNm Z19jdXItPmVuYWJsZSwKLQkJCWNmZ19ueHQuZW5hYmxlLCBjZmdfbnh0LmZyYW1lX2NvdW50KTsK LQotCS8qIG9ubHkgcHJvY2VlZCBvbiBzdGF0ZSBjaGFuZ2VzICovCi0JaWYgKGNmZ19ueHQuZW5h YmxlID09IGNmZ19jdXItPmVuYWJsZSkKLQkJcmV0dXJuOwotCi0JbWVtY3B5KGNmZ19jdXIsICZj Zmdfbnh0LCBzaXplb2YoKmNmZ19jdXIpKTsKLQlpZiAoaHdfcHAtPm9wcy5zZXR1cF9hdXRvcmVm cmVzaCkKLQkJaHdfcHAtPm9wcy5zZXR1cF9hdXRvcmVmcmVzaChod19wcCwgY2ZnX2N1cik7Ci19 Ci0KIHN0YXRpYyB2b2lkIF9kcHVfZW5jb2Rlcl9waHlzX2NtZF91cGRhdGVfaW50Zl9jZmcoCiAJ CXN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzICpwaHlzX2VuYykKIHsKQEAgLTE2NCwyOSArMTE2LDYg QEAgc3RhdGljIHZvaWQgZHB1X2VuY29kZXJfcGh5c19jbWRfcHBfdHhfZG9uZV9pcnEodm9pZCAq YXJnLCBpbnQgaXJxX2lkeCkKIAlEUFVfQVRSQUNFX0VORCgicHBfZG9uZV9pcnEiKTsKIH0KIAot c3RhdGljIHZvaWQgZHB1X2VuY29kZXJfcGh5c19jbWRfYXV0b3JlZnJlc2hfZG9uZV9pcnEodm9p ZCAqYXJnLCBpbnQgaXJxX2lkeCkKLXsKLQlzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5cyAqcGh5c19l bmMgPSBhcmc7Ci0Jc3RydWN0IGRwdV9lbmNvZGVyX3BoeXNfY21kICpjbWRfZW5jID0KLQkJCXRv X2RwdV9lbmNvZGVyX3BoeXNfY21kKHBoeXNfZW5jKTsKLQl1bnNpZ25lZCBsb25nIGxvY2tfZmxh Z3M7Ci0JaW50IG5ld19jbnQ7Ci0KLQlpZiAoIWNtZF9lbmMpCi0JCXJldHVybjsKLQotCXBoeXNf ZW5jID0gJmNtZF9lbmMtPmJhc2U7Ci0Jc3Bpbl9sb2NrX2lycXNhdmUocGh5c19lbmMtPmVuY19z cGlubG9jaywgbG9ja19mbGFncyk7Ci0JbmV3X2NudCA9IGF0b21pY19hZGRfdW5sZXNzKCZjbWRf ZW5jLT5hdXRvcmVmcmVzaC5raWNrb2ZmX2NudCwgLTEsIDApOwotCXNwaW5fdW5sb2NrX2lycXJl c3RvcmUocGh5c19lbmMtPmVuY19zcGlubG9jaywgbG9ja19mbGFncyk7Ci0KLQlEUFVfRVZUMzJf SVJRKERSTUlEKHBoeXNfZW5jLT5wYXJlbnQpLAotCQkJcGh5c19lbmMtPmh3X3BwLT5pZHggLSBQ SU5HUE9OR18wLCBuZXdfY250KTsKLQotCS8qIFNpZ25hbCBhbnkgd2FpdGluZyBhdG9taWMgY29t bWl0IHRocmVhZCAqLwotCXdha2VfdXBfYWxsKCZjbWRfZW5jLT5hdXRvcmVmcmVzaC5raWNrb2Zm X3dxKTsKLX0KLQogc3RhdGljIHZvaWQgZHB1X2VuY29kZXJfcGh5c19jbWRfcHBfcmRfcHRyX2ly cSh2b2lkICphcmcsIGludCBpcnFfaWR4KQogewogCXN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzICpw aHlzX2VuYyA9IGFyZzsKQEAgLTI1NywxMCArMTg2LDYgQEAgc3RhdGljIHZvaWQgX2RwdV9lbmNv ZGVyX3BoeXNfY21kX3NldHVwX2lycV9od19pZHgoCiAJaXJxID0gJnBoeXNfZW5jLT5pcnFbSU5U Ul9JRFhfVU5ERVJSVU5dOwogCWlycS0+aHdfaWR4ID0gcGh5c19lbmMtPmludGZfaWR4OwogCWly cS0+aXJxX2lkeCA9IC1FSU5WQUw7Ci0KLQlpcnEgPSAmcGh5c19lbmMtPmlycVtJTlRSX0lEWF9B VVRPUkVGUkVTSF9ET05FXTsKLQlpcnEtPmh3X2lkeCA9IHBoeXNfZW5jLT5od19wcC0+aWR4Owot CWlycS0+aXJxX2lkeCA9IC1FSU5WQUw7CiB9CiAKIHN0YXRpYyB2b2lkIGRwdV9lbmNvZGVyX3Bo eXNfY21kX21vZGVfc2V0KApAQCAtMzUyLDczICsyNzcsNiBAQCBzdGF0aWMgaW50IF9kcHVfZW5j b2Rlcl9waHlzX2NtZF9oYW5kbGVfcHBkb25lX3RpbWVvdXQoCiAJcmV0dXJuIC1FVElNRURPVVQ7 CiB9CiAKLXN0YXRpYyBpbnQgX2RwdV9lbmNvZGVyX3BoeXNfY21kX3BvbGxfd3JpdGVfcG9pbnRl cl9zdGFydGVkKAotCQlzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5cyAqcGh5c19lbmMpCi17Ci0Jc3Ry dWN0IGRwdV9lbmNvZGVyX3BoeXNfY21kICpjbWRfZW5jID0KLQkJCXRvX2RwdV9lbmNvZGVyX3Bo eXNfY21kKHBoeXNfZW5jKTsKLQlzdHJ1Y3QgZHB1X2h3X3Bpbmdwb25nICpod19wcCA9IHBoeXNf ZW5jLT5od19wcDsKLQlzdHJ1Y3QgZHB1X2h3X3BwX3ZzeW5jX2luZm8gaW5mbzsKLQl1MzIgdGlt ZW91dF91cyA9IERQVV9FTkNfV1JfUFRSX1NUQVJUX1RJTUVPVVRfVVM7Ci0JaW50IHJldDsKLQot CWlmICghaHdfcHAgfHwgIWh3X3BwLT5vcHMuZ2V0X3ZzeW5jX2luZm8gfHwKLQkJCSFod19wcC0+ b3BzLnBvbGxfdGltZW91dF93cl9wdHIpCi0JCXJldHVybiAwOwotCi0JcmV0ID0gaHdfcHAtPm9w cy5nZXRfdnN5bmNfaW5mbyhod19wcCwgJmluZm8pOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7 Ci0KLQlEUFVfREVCVUdfQ01ERU5DKGNtZF9lbmMsCi0JCQkicHA6JWQgcmRfcHRyICVkIHdyX3B0 ciAlZFxuIiwKLQkJCXBoeXNfZW5jLT5od19wcC0+aWR4IC0gUElOR1BPTkdfMCwKLQkJCWluZm8u cmRfcHRyX2xpbmVfY291bnQsCi0JCQlpbmZvLndyX3B0cl9saW5lX2NvdW50KTsKLQlEUFVfRVZU MzJfVkVSQk9TRShEUk1JRChwaHlzX2VuYy0+cGFyZW50KSwKLQkJCXBoeXNfZW5jLT5od19wcC0+ aWR4IC0gUElOR1BPTkdfMCwKLQkJCWluZm8ud3JfcHRyX2xpbmVfY291bnQpOwotCi0JcmV0ID0g aHdfcHAtPm9wcy5wb2xsX3RpbWVvdXRfd3JfcHRyKGh3X3BwLCB0aW1lb3V0X3VzKTsKLQlpZiAo cmV0KSB7Ci0JCURQVV9FVlQzMihEUk1JRChwaHlzX2VuYy0+cGFyZW50KSwKLQkJCQlwaHlzX2Vu Yy0+aHdfcHAtPmlkeCAtIFBJTkdQT05HXzAsCi0JCQkJdGltZW91dF91cywKLQkJCQlyZXQpOwot CQlEUFVfREJHX0RVTVAoImFsbCIsICJkYmdfYnVzIiwgInZiaWZfZGJnX2J1cyIsICJwYW5pYyIp OwotCX0KLQotCXJldHVybiByZXQ7Ci19Ci0KLXN0YXRpYyBib29sIF9kcHVfZW5jb2Rlcl9waHlz X2NtZF9pc19vbmdvaW5nX3BwdHgoCi0JCXN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzICpwaHlzX2Vu YykKLXsKLQlzdHJ1Y3QgZHB1X2h3X3Bpbmdwb25nICpod19wcDsKLQlzdHJ1Y3QgZHB1X2h3X3Bw X3ZzeW5jX2luZm8gaW5mbzsKLQotCWlmICghcGh5c19lbmMpCi0JCXJldHVybiBmYWxzZTsKLQot CWh3X3BwID0gcGh5c19lbmMtPmh3X3BwOwotCWlmICghaHdfcHAgfHwgIWh3X3BwLT5vcHMuZ2V0 X3ZzeW5jX2luZm8pCi0JCXJldHVybiBmYWxzZTsKLQotCWh3X3BwLT5vcHMuZ2V0X3ZzeW5jX2lu Zm8oaHdfcHAsICZpbmZvKTsKLQotCURQVV9FVlQzMihEUk1JRChwaHlzX2VuYy0+cGFyZW50KSwK LQkJCXBoeXNfZW5jLT5od19wcC0+aWR4IC0gUElOR1BPTkdfMCwKLQkJCWF0b21pY19yZWFkKCZw aHlzX2VuYy0+cGVuZGluZ19raWNrb2ZmX2NudCksCi0JCQlpbmZvLndyX3B0cl9saW5lX2NvdW50 LAotCQkJcGh5c19lbmMtPmNhY2hlZF9tb2RlLnZkaXNwbGF5KTsKLQotCWlmIChpbmZvLndyX3B0 cl9saW5lX2NvdW50ID4gMCAmJiBpbmZvLndyX3B0cl9saW5lX2NvdW50IDwKLQkJCXBoeXNfZW5j LT5jYWNoZWRfbW9kZS52ZGlzcGxheSkKLQkJcmV0dXJuIHRydWU7Ci0KLQlyZXR1cm4gZmFsc2U7 Ci19Ci0KIHN0YXRpYyBpbnQgX2RwdV9lbmNvZGVyX3BoeXNfY21kX3dhaXRfZm9yX2lkbGUoCiAJ CXN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzICpwaHlzX2VuYykKIHsKQEAgLTQ0Niw0MiArMzA0LDYg QEAgc3RhdGljIGludCBfZHB1X2VuY29kZXJfcGh5c19jbWRfd2FpdF9mb3JfaWRsZSgKIAlyZXR1 cm4gcmV0OwogfQogCi1zdGF0aWMgaW50IF9kcHVfZW5jb2Rlcl9waHlzX2NtZF93YWl0X2Zvcl9h dXRvcmVmcmVzaF9kb25lKAotCQlzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5cyAqcGh5c19lbmMpCi17 Ci0Jc3RydWN0IGRwdV9lbmNvZGVyX3BoeXNfY21kICpjbWRfZW5jID0KLQkJCXRvX2RwdV9lbmNv ZGVyX3BoeXNfY21kKHBoeXNfZW5jKTsKLQlzdHJ1Y3QgZHB1X2VuY29kZXJfd2FpdF9pbmZvIHdh aXRfaW5mbzsKLQlpbnQgcmV0ID0gMDsKLQotCWlmICghcGh5c19lbmMpIHsKLQkJRFBVX0VSUk9S KCJpbnZhbGlkIGVuY29kZXJcbiIpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQkvKiBvbmx5 IG1hc3RlciBkZWFscyB3aXRoIGF1dG9yZWZyZXNoICovCi0JaWYgKCFkcHVfZW5jb2Rlcl9waHlz X2NtZF9pc19tYXN0ZXIocGh5c19lbmMpKQotCQlyZXR1cm4gMDsKLQotCXdhaXRfaW5mby53cSA9 ICZjbWRfZW5jLT5hdXRvcmVmcmVzaC5raWNrb2ZmX3dxOwotCXdhaXRfaW5mby5hdG9taWNfY250 ID0gJmNtZF9lbmMtPmF1dG9yZWZyZXNoLmtpY2tvZmZfY250OwotCXdhaXRfaW5mby50aW1lb3V0 X21zID0gX2RwdV9lbmNvZGVyX3BoeXNfY21kX2dldF9pZGxlX3RpbWVvdXQoY21kX2VuYyk7Ci0K LQkvKiB3YWl0IGZvciBhdXRvcmVmcmVzaCBraWNrb2ZmIHRvIHN0YXJ0ICovCi0JcmV0ID0gZHB1 X2VuY29kZXJfaGVscGVyX3dhaXRfZm9yX2lycShwaHlzX2VuYywKLQkJCUlOVFJfSURYX0FVVE9S RUZSRVNIX0RPTkUsICZ3YWl0X2luZm8pOwotCi0JLyogZG91YmxlIGNoZWNrIHRoYXQga2lja29m ZiBoYXMgc3RhcnRlZCBieSByZWFkaW5nIHdyaXRlIHB0ciByZWcgKi8KLQlpZiAoIXJldCkKLQkJ cmV0ID0gX2RwdV9lbmNvZGVyX3BoeXNfY21kX3BvbGxfd3JpdGVfcG9pbnRlcl9zdGFydGVkKAot CQkJcGh5c19lbmMpOwotCWVsc2UKLQkJZHB1X2VuY29kZXJfaGVscGVyX3JlcG9ydF9pcnFfdGlt ZW91dChwaHlzX2VuYywKLQkJCQlJTlRSX0lEWF9BVVRPUkVGUkVTSF9ET05FKTsKLQotCXJldHVy biByZXQ7Ci19Ci0KIHN0YXRpYyBpbnQgZHB1X2VuY29kZXJfcGh5c19jbWRfY29udHJvbF92Ymxh bmtfaXJxKAogCQlzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5cyAqcGh5c19lbmMsCiAJCWJvb2wgZW5h YmxlKQpAQCAtNTUwLDIwICszNzIsMTMgQEAgdm9pZCBkcHVfZW5jb2Rlcl9waHlzX2NtZF9pcnFf Y29udHJvbChzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5cyAqcGh5c19lbmMsCiAJCWRwdV9lbmNvZGVy X2hlbHBlcl9yZWdpc3Rlcl9pcnEocGh5c19lbmMsIElOVFJfSURYX1VOREVSUlVOKTsKIAkJZHB1 X2VuY29kZXJfcGh5c19jbWRfY29udHJvbF92YmxhbmtfaXJxKHBoeXNfZW5jLCB0cnVlKTsKIAot CQlpZiAoZHB1X2VuY29kZXJfcGh5c19jbWRfaXNfbWFzdGVyKHBoeXNfZW5jKSkgeworCQlpZiAo ZHB1X2VuY29kZXJfcGh5c19jbWRfaXNfbWFzdGVyKHBoeXNfZW5jKSkKIAkJCWRwdV9lbmNvZGVy X2hlbHBlcl9yZWdpc3Rlcl9pcnEocGh5c19lbmMsCiAJCQkJCUlOVFJfSURYX0NUTF9TVEFSVCk7 Ci0JCQlkcHVfZW5jb2Rlcl9oZWxwZXJfcmVnaXN0ZXJfaXJxKHBoeXNfZW5jLAotCQkJCQlJTlRS X0lEWF9BVVRPUkVGUkVTSF9ET05FKTsKLQkJfQotCiAJfSBlbHNlIHsKLQkJaWYgKGRwdV9lbmNv ZGVyX3BoeXNfY21kX2lzX21hc3RlcihwaHlzX2VuYykpIHsKKwkJaWYgKGRwdV9lbmNvZGVyX3Bo eXNfY21kX2lzX21hc3RlcihwaHlzX2VuYykpCiAJCQlkcHVfZW5jb2Rlcl9oZWxwZXJfdW5yZWdp c3Rlcl9pcnEocGh5c19lbmMsCiAJCQkJCUlOVFJfSURYX0NUTF9TVEFSVCk7Ci0JCQlkcHVfZW5j b2Rlcl9oZWxwZXJfdW5yZWdpc3Rlcl9pcnEocGh5c19lbmMsCi0JCQkJCUlOVFJfSURYX0FVVE9S RUZSRVNIX0RPTkUpOwotCQl9CiAKIAkJZHB1X2VuY29kZXJfaGVscGVyX3VucmVnaXN0ZXJfaXJx KHBoeXNfZW5jLCBJTlRSX0lEWF9VTkRFUlJVTik7CiAJCWRwdV9lbmNvZGVyX3BoeXNfY21kX2Nv bnRyb2xfdmJsYW5rX2lycShwaHlzX2VuYywgZmFsc2UpOwpAQCAtNzM2LDMwICs1NTEsNiBAQCBz dGF0aWMgdm9pZCBkcHVfZW5jb2Rlcl9waHlzX2NtZF9lbmFibGUoc3RydWN0IGRwdV9lbmNvZGVy X3BoeXMgKnBoeXNfZW5jKQogCXBoeXNfZW5jLT5lbmFibGVfc3RhdGUgPSBEUFVfRU5DX0VOQUJM RUQ7CiB9CiAKLXN0YXRpYyBib29sIGRwdV9lbmNvZGVyX3BoeXNfY21kX2lzX2F1dG9yZWZyZXNo X2VuYWJsZWQoCi0JCXN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzICpwaHlzX2VuYykKLXsKLQlzdHJ1 Y3QgZHB1X2h3X3Bpbmdwb25nICpod19wcDsKLQlzdHJ1Y3QgZHB1X2h3X2F1dG9yZWZyZXNoIGNm ZzsKLQlpbnQgcmV0OwotCi0JaWYgKCFwaHlzX2VuYyB8fCAhcGh5c19lbmMtPmh3X3BwKQotCQly ZXR1cm4gMDsKLQotCWlmICghZHB1X2VuY29kZXJfcGh5c19jbWRfaXNfbWFzdGVyKHBoeXNfZW5j KSkKLQkJcmV0dXJuIDA7Ci0KLQlod19wcCA9IHBoeXNfZW5jLT5od19wcDsKLQlpZiAoIWh3X3Bw LT5vcHMuZ2V0X2F1dG9yZWZyZXNoKQotCQlyZXR1cm4gMDsKLQotCXJldCA9IGh3X3BwLT5vcHMu Z2V0X2F1dG9yZWZyZXNoKGh3X3BwLCAmY2ZnKTsKLQlpZiAocmV0KQotCQlyZXR1cm4gMDsKLQot CXJldHVybiBjZmcuZW5hYmxlOwotfQotCiBzdGF0aWMgdm9pZCBfZHB1X2VuY29kZXJfcGh5c19j bWRfY29ubmVjdF90ZSgKIAkJc3RydWN0IGRwdV9lbmNvZGVyX3BoeXMgKnBoeXNfZW5jLCBib29s IGVuYWJsZSkKIHsKQEAgLTg2OSw4ICs2NjAsNyBAQCBzdGF0aWMgdm9pZCBkcHVfZW5jb2Rlcl9w aHlzX2NtZF9wcmVwYXJlX2Zvcl9raWNrb2ZmKAogCURQVV9ERUJVR19DTURFTkMoY21kX2VuYywg InBwICVkXG4iLCBwaHlzX2VuYy0+aHdfcHAtPmlkeCAtIFBJTkdQT05HXzApOwogCiAJRFBVX0VW VDMyKERSTUlEKHBoeXNfZW5jLT5wYXJlbnQpLCBwaHlzX2VuYy0+aHdfcHAtPmlkeCAtIFBJTkdQ T05HXzAsCi0JCQlhdG9taWNfcmVhZCgmcGh5c19lbmMtPnBlbmRpbmdfa2lja29mZl9jbnQpLAot CQkJYXRvbWljX3JlYWQoJmNtZF9lbmMtPmF1dG9yZWZyZXNoLmtpY2tvZmZfY250KSk7CisJCQlh dG9taWNfcmVhZCgmcGh5c19lbmMtPnBlbmRpbmdfa2lja29mZl9jbnQpKTsKIAogCS8qCiAJICog TWFyayBraWNrb2ZmIHJlcXVlc3QgYXMgb3V0c3RhbmRpbmcuIElmIHRoZXJlIGFyZSBtb3JlIHRo YW4gb25lLApAQCAtOTU0LDEwICs3NDQsNiBAQCBzdGF0aWMgaW50IGRwdV9lbmNvZGVyX3BoeXNf Y21kX3dhaXRfZm9yX2NvbW1pdF9kb25lKAogCWlmIChkcHVfZW5jb2Rlcl9waHlzX2NtZF9pc19t YXN0ZXIocGh5c19lbmMpKQogCQlyYyA9IF9kcHVfZW5jb2Rlcl9waHlzX2NtZF93YWl0X2Zvcl9j dGxfc3RhcnQocGh5c19lbmMpOwogCi0JaWYgKCFyYyAmJiBkcHVfZW5jb2Rlcl9waHlzX2NtZF9p c19tYXN0ZXIocGh5c19lbmMpICYmCi0JCQljbWRfZW5jLT5hdXRvcmVmcmVzaC5jZmcuZW5hYmxl KQotCQlyYyA9IF9kcHVfZW5jb2Rlcl9waHlzX2NtZF93YWl0X2Zvcl9hdXRvcmVmcmVzaF9kb25l KHBoeXNfZW5jKTsKLQogCS8qIHJlcXVpcmVkIGZvciBib3RoIGNvbnRyb2xsZXJzICovCiAJaWYg KCFyYyAmJiBjbWRfZW5jLT5zZXJpYWxpemVfd2FpdDRwcCkKIAkJZHB1X2VuY29kZXJfcGh5c19j bWRfcHJlcGFyZV9mb3Jfa2lja29mZihwaHlzX2VuYywgTlVMTCk7CkBAIC05OTMsNTggKzc3OSw2 IEBAIHN0YXRpYyBpbnQgZHB1X2VuY29kZXJfcGh5c19jbWRfd2FpdF9mb3JfdmJsYW5rKAogCXJl dHVybiByYzsKIH0KIAotc3RhdGljIHZvaWQgZHB1X2VuY29kZXJfcGh5c19jbWRfcHJlcGFyZV9j b21taXQoCi0JCXN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzICpwaHlzX2VuYykKLXsKLQlzdHJ1Y3Qg ZHB1X2VuY29kZXJfcGh5c19jbWQgKmNtZF9lbmMgPQotCQl0b19kcHVfZW5jb2Rlcl9waHlzX2Nt ZChwaHlzX2VuYyk7Ci0JdW5zaWduZWQgbG9uZyBsb2NrX2ZsYWdzOwotCi0JaWYgKCFwaHlzX2Vu YykKLQkJcmV0dXJuOwotCi0JaWYgKCFkcHVfZW5jb2Rlcl9waHlzX2NtZF9pc19tYXN0ZXIocGh5 c19lbmMpKQotCQlyZXR1cm47Ci0KLQlEUFVfRVZUMzIoRFJNSUQocGh5c19lbmMtPnBhcmVudCks IHBoeXNfZW5jLT5pbnRmX2lkeCAtIElOVEZfMCwKLQkJCWNtZF9lbmMtPmF1dG9yZWZyZXNoLmNm Zy5lbmFibGUpOwotCi0JaWYgKCFkcHVfZW5jb2Rlcl9waHlzX2NtZF9pc19hdXRvcmVmcmVzaF9l bmFibGVkKHBoeXNfZW5jKSkKLQkJcmV0dXJuOwotCi0JLyoqCi0JICogQXV0b3JlZnJlc2ggbXVz dCBiZSBkaXNhYmxlZCBjYXJlZnVsbHk6Ci0JICogIC0gQXV0b3JlZnJlc2ggbXVzdCBiZSBkaXNh YmxlZCBiZXR3ZWVuIHBwX2RvbmUgYW5kIHRlCi0JICogICAgc2lnbmFsIHByaW9yIHRvIHNkbTg0 NSB0YXJnZXRzLiBBbGwgdGFyZ2V0cyBhZnRlciBzZG04NDUKLQkgKiAgICBzdXBwb3J0cyBhdXRv cmVmcmVzaCBkaXNhYmxlIHdpdGhvdXQgdHVybmluZyBvZmYgdGhlCi0JICogICAgaGFyZHdhcmUg VEUgYW5kIHBwX2RvbmUgd2FpdC4KLQkgKgotCSAqICAtIFdhaXQgZm9yIFRYIHRvIENvbXBsZXRl Ci0JICogICAgV2FpdCBmb3IgUFBEb25lIGNvbmZpcm1zIHRoZSBsYXN0IGZyYW1lIHRyYW5zZmVy IGlzIGNvbXBsZXRlLgotCSAqCi0JICogIC0gTGVhdmUgQXV0b3JlZnJlc2ggRGlzYWJsZWQKLQkg KiAgICAtIEFzc3VtZSBkaXNhYmxlIG9mIEF1dG9yZWZyZXNoIHNpbmNlIGl0IGlzIG5vdyBzYWZl Ci0JICogICAgLSBDYW4gbm93IHNhZmVseSBEaXNhYmxlIEVuY29kZXIsIGRvIGRlYnVnIHByaW50 aW5nLCBldGMuCi0JICogICAgIHdpdGhvdXQgd29ycnlpbmcgdGhhdCBBdXRvcmVmcmVzaCB3aWxs IGtpY2tvZmYKLQkgKi8KLQotCXNwaW5fbG9ja19pcnFzYXZlKHBoeXNfZW5jLT5lbmNfc3Bpbmxv Y2ssIGxvY2tfZmxhZ3MpOwotCi0JX2RwdV9lbmNvZGVyX3BoeXNfY21kX2NvbmZpZ19hdXRvcmVm cmVzaChwaHlzX2VuYywgMCk7Ci0KLQkvKiBjaGVjayBmb3Igb3V0c3RhbmRpbmcgVFggKi8KLQlp ZiAoX2RwdV9lbmNvZGVyX3BoeXNfY21kX2lzX29uZ29pbmdfcHB0eChwaHlzX2VuYykpCi0JCWF0 b21pY19hZGRfdW5sZXNzKCZwaHlzX2VuYy0+cGVuZGluZ19raWNrb2ZmX2NudCwgMSwgMSk7Ci0J c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShwaHlzX2VuYy0+ZW5jX3NwaW5sb2NrLCBsb2NrX2ZsYWdz KTsKLQotCS8qIHdhaXQgZm9yIHBwZG9uZSBpZiBuZWNlc3NhcnkgZHVlIHRvIGNhdGNoaW5nIG9u Z29pbmcgVFggKi8KLQlpZiAoX2RwdV9lbmNvZGVyX3BoeXNfY21kX3dhaXRfZm9yX2lkbGUocGh5 c19lbmMpKQotCQlEUFVfRVJST1JfQ01ERU5DKGNtZF9lbmMsICJwcDolZCBraWNrb2ZmIHRpbWVk IG91dFxuIiwKLQkJCQlwaHlzX2VuYy0+aHdfcHAtPmlkeCAtIFBJTkdQT05HXzApOwotCi0JRFBV X0RFQlVHX0NNREVOQyhjbWRfZW5jLCAiZGlzYWJsZWQgYXV0b3JlZnJlc2hcbiIpOwotfQotCiBz dGF0aWMgdm9pZCBkcHVfZW5jb2Rlcl9waHlzX2NtZF9oYW5kbGVfcG9zdF9raWNrb2ZmKAogCQlz dHJ1Y3QgZHB1X2VuY29kZXJfcGh5cyAqcGh5c19lbmMpCiB7CkBAIC0xMDYxLDI3ICs3OTUsMTUg QEAgc3RhdGljIHZvaWQgZHB1X2VuY29kZXJfcGh5c19jbWRfaGFuZGxlX3Bvc3Rfa2lja29mZigK IHN0YXRpYyB2b2lkIGRwdV9lbmNvZGVyX3BoeXNfY21kX3RyaWdnZXJfc3RhcnQoCiAJCXN0cnVj dCBkcHVfZW5jb2Rlcl9waHlzICpwaHlzX2VuYykKIHsKLQlzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5 c19jbWQgKmNtZF9lbmMgPQotCQkJdG9fZHB1X2VuY29kZXJfcGh5c19jbWQocGh5c19lbmMpOwot CXUzMiBmcmFtZV9jbnQ7Ci0KIAlpZiAoIXBoeXNfZW5jKQogCQlyZXR1cm47CiAKLQkvKiB3ZSBk b24ndCBpc3N1ZSBDVExfU1RBUlQgd2hlbiB1c2luZyBhdXRvcmVmcmVzaCAqLwotCWZyYW1lX2Nu dCA9IF9kcHVfZW5jb2Rlcl9waHlzX2NtZF9nZXRfYXV0b3JlZnJlc2hfcHJvcGVydHkocGh5c19l bmMpOwotCWlmIChmcmFtZV9jbnQpIHsKLQkJX2RwdV9lbmNvZGVyX3BoeXNfY21kX2NvbmZpZ19h dXRvcmVmcmVzaChwaHlzX2VuYywgZnJhbWVfY250KTsKLQkJYXRvbWljX2luYygmY21kX2VuYy0+ YXV0b3JlZnJlc2gua2lja29mZl9jbnQpOwotCX0gZWxzZSB7Ci0JCWRwdV9lbmNvZGVyX2hlbHBl cl90cmlnZ2VyX3N0YXJ0KHBoeXNfZW5jKTsKLQl9CisJZHB1X2VuY29kZXJfaGVscGVyX3RyaWdn ZXJfc3RhcnQocGh5c19lbmMpOwogfQogCiBzdGF0aWMgdm9pZCBkcHVfZW5jb2Rlcl9waHlzX2Nt ZF9pbml0X29wcygKIAkJc3RydWN0IGRwdV9lbmNvZGVyX3BoeXNfb3BzICpvcHMpCiB7Ci0Jb3Bz LT5wcmVwYXJlX2NvbW1pdCA9IGRwdV9lbmNvZGVyX3BoeXNfY21kX3ByZXBhcmVfY29tbWl0Owog CW9wcy0+aXNfbWFzdGVyID0gZHB1X2VuY29kZXJfcGh5c19jbWRfaXNfbWFzdGVyOwogCW9wcy0+ bW9kZV9zZXQgPSBkcHVfZW5jb2Rlcl9waHlzX2NtZF9tb2RlX3NldDsKIAlvcHMtPm1vZGVfZml4 dXAgPSBkcHVfZW5jb2Rlcl9waHlzX2NtZF9tb2RlX2ZpeHVwOwpAQCAtMTEwMCw4ICs4MjIsNiBA QCBzdGF0aWMgdm9pZCBkcHVfZW5jb2Rlcl9waHlzX2NtZF9pbml0X29wcygKIAlvcHMtPmlycV9j b250cm9sID0gZHB1X2VuY29kZXJfcGh5c19jbWRfaXJxX2NvbnRyb2w7CiAJb3BzLT5yZXN0b3Jl ID0gZHB1X2VuY29kZXJfcGh5c19jbWRfZW5hYmxlX2hlbHBlcjsKIAlvcHMtPnByZXBhcmVfaWRs ZV9wYyA9IGRwdV9lbmNvZGVyX3BoeXNfY21kX3ByZXBhcmVfaWRsZV9wYzsKLQlvcHMtPmlzX2F1 dG9yZWZyZXNoX2VuYWJsZWQgPQotCQkJZHB1X2VuY29kZXJfcGh5c19jbWRfaXNfYXV0b3JlZnJl c2hfZW5hYmxlZDsKIAlvcHMtPmhhbmRsZV9wb3N0X2tpY2tvZmYgPSBkcHVfZW5jb2Rlcl9waHlz X2NtZF9oYW5kbGVfcG9zdF9raWNrb2ZmOwogCW9wcy0+Z2V0X2xpbmVfY291bnQgPSBkcHVfZW5j b2Rlcl9waHlzX2NtZF9nZXRfbGluZV9jb3VudDsKIH0KQEAgLTExNzUsMjAgKzg5NSwxMiBAQCBz dHJ1Y3QgZHB1X2VuY29kZXJfcGh5cyAqZHB1X2VuY29kZXJfcGh5c19jbWRfaW5pdCgKIAlpcnEt PmludHJfaWR4ID0gSU5UUl9JRFhfVU5ERVJSVU47CiAJaXJxLT5jYi5mdW5jID0gZHB1X2VuY29k ZXJfcGh5c19jbWRfdW5kZXJydW5faXJxOwogCi0JaXJxID0gJnBoeXNfZW5jLT5pcnFbSU5UUl9J RFhfQVVUT1JFRlJFU0hfRE9ORV07Ci0JaXJxLT5uYW1lID0gImF1dG9yZWZyZXNoX2RvbmUiOwot CWlycS0+aW50cl90eXBlID0gRFBVX0lSUV9UWVBFX1BJTkdfUE9OR19BVVRPX1JFRjsKLQlpcnEt PmludHJfaWR4ID0gSU5UUl9JRFhfQVVUT1JFRlJFU0hfRE9ORTsKLQlpcnEtPmNiLmZ1bmMgPSBk cHVfZW5jb2Rlcl9waHlzX2NtZF9hdXRvcmVmcmVzaF9kb25lX2lycTsKLQogCWF0b21pY19zZXQo JnBoeXNfZW5jLT52YmxhbmtfcmVmY291bnQsIDApOwogCWF0b21pY19zZXQoJnBoeXNfZW5jLT5w ZW5kaW5nX2tpY2tvZmZfY250LCAwKTsKIAlhdG9taWNfc2V0KCZwaHlzX2VuYy0+cGVuZGluZ19j dGxzdGFydF9jbnQsIDApOwogCWF0b21pY19zZXQoJmNtZF9lbmMtPnBlbmRpbmdfdmJsYW5rX2Nu dCwgMCk7CiAJaW5pdF93YWl0cXVldWVfaGVhZCgmcGh5c19lbmMtPnBlbmRpbmdfa2lja29mZl93 cSk7CiAJaW5pdF93YWl0cXVldWVfaGVhZCgmY21kX2VuYy0+cGVuZGluZ192Ymxhbmtfd3EpOwot CWF0b21pY19zZXQoJmNtZF9lbmMtPmF1dG9yZWZyZXNoLmtpY2tvZmZfY250LCAwKTsKLQlpbml0 X3dhaXRxdWV1ZV9oZWFkKCZjbWRfZW5jLT5hdXRvcmVmcmVzaC5raWNrb2ZmX3dxKTsKIAogCURQ VV9ERUJVR19DTURFTkMoY21kX2VuYywgImNyZWF0ZWRcbiIpOwogCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdfcGluZ3BvbmcuYyBiL2RyaXZlcnMvZ3B1 L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od19waW5ncG9uZy5jCmluZGV4IDkzMDhmNWMuLjBiZmI1 MTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od19waW5n cG9uZy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od19waW5ncG9u Zy5jCkBAIC0zMSw3ICszMSw2IEBACiAjZGVmaW5lIFBQX1dSX1BUUl9JUlEgICAgICAgICAgICAg ICAgICAgMHgwMjQKICNkZWZpbmUgUFBfT1VUX0xJTkVfQ09VTlQgICAgICAgICAgICAgICAweDAy OAogI2RlZmluZSBQUF9MSU5FX0NPVU5UICAgICAgICAgICAgICAgICAgIDB4MDJDCi0jZGVmaW5l IFBQX0FVVE9SRUZSRVNIX0NPTkZJRyAgICAgICAgICAgMHgwMzAKIAogI2RlZmluZSBQUF9GQkNf TU9ERSAgICAgICAgICAgICAgICAgICAgIDB4MDM0CiAjZGVmaW5lIFBQX0ZCQ19CVURHRVRfQ1RM ICAgICAgICAgICAgICAgMHgwMzgKQEAgLTkzLDQ0ICs5Miw2IEBAIHN0YXRpYyBpbnQgZHB1X2h3 X3BwX3NldHVwX3RlX2NvbmZpZyhzdHJ1Y3QgZHB1X2h3X3Bpbmdwb25nICpwcCwKIAlyZXR1cm4g MDsKIH0KIAotc3RhdGljIGludCBkcHVfaHdfcHBfc2V0dXBfYXV0b3JlZnJlc2hfY29uZmlnKHN0 cnVjdCBkcHVfaHdfcGluZ3BvbmcgKnBwLAotCQlzdHJ1Y3QgZHB1X2h3X2F1dG9yZWZyZXNoICpj ZmcpCi17Ci0Jc3RydWN0IGRwdV9od19ibGtfcmVnX21hcCAqYzsKLQl1MzIgcmVmcmVzaF9jZmc7 Ci0KLQlpZiAoIXBwIHx8ICFjZmcpCi0JCXJldHVybiAtRUlOVkFMOwotCWMgPSAmcHAtPmh3Owot Ci0JaWYgKGNmZy0+ZW5hYmxlKQotCQlyZWZyZXNoX2NmZyA9IEJJVCgzMSkgfCBjZmctPmZyYW1l X2NvdW50OwotCWVsc2UKLQkJcmVmcmVzaF9jZmcgPSAwOwotCi0JRFBVX1JFR19XUklURShjLCBQ UF9BVVRPUkVGUkVTSF9DT05GSUcsIHJlZnJlc2hfY2ZnKTsKLQlEUFVfRVZUMzIocHAtPmlkeCAt IFBJTkdQT05HXzAsIHJlZnJlc2hfY2ZnKTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50 IGRwdV9od19wcF9nZXRfYXV0b3JlZnJlc2hfY29uZmlnKHN0cnVjdCBkcHVfaHdfcGluZ3Bvbmcg KnBwLAotCQlzdHJ1Y3QgZHB1X2h3X2F1dG9yZWZyZXNoICpjZmcpCi17Ci0Jc3RydWN0IGRwdV9o d19ibGtfcmVnX21hcCAqYzsKLQl1MzIgdmFsOwotCi0JaWYgKCFwcCB8fCAhY2ZnKQotCQlyZXR1 cm4gLUVJTlZBTDsKLQotCWMgPSAmcHAtPmh3OwotCXZhbCA9IERQVV9SRUdfUkVBRChjLCBQUF9B VVRPUkVGUkVTSF9DT05GSUcpOwotCWNmZy0+ZW5hYmxlID0gKHZhbCAmIEJJVCgzMSkpID4+IDMx OwotCWNmZy0+ZnJhbWVfY291bnQgPSB2YWwgJiAweGZmZmY7Ci0KLQlyZXR1cm4gMDsKLX0KLQog c3RhdGljIGludCBkcHVfaHdfcHBfcG9sbF90aW1lb3V0X3dyX3B0cihzdHJ1Y3QgZHB1X2h3X3Bp bmdwb25nICpwcCwKIAkJdTMyIHRpbWVvdXRfdXMpCiB7CkBAIC0yOTMsOCArMjU0LDYgQEAgc3Rh dGljIHZvaWQgX3NldHVwX3Bpbmdwb25nX29wcyhzdHJ1Y3QgZHB1X2h3X3Bpbmdwb25nX29wcyAq b3BzLAogCW9wcy0+ZW5hYmxlX3RlYXJjaGVjayA9IGRwdV9od19wcF9lbmFibGVfdGU7CiAJb3Bz LT5jb25uZWN0X2V4dGVybmFsX3RlID0gZHB1X2h3X3BwX2Nvbm5lY3RfZXh0ZXJuYWxfdGU7CiAJ b3BzLT5nZXRfdnN5bmNfaW5mbyA9IGRwdV9od19wcF9nZXRfdnN5bmNfaW5mbzsKLQlvcHMtPnNl dHVwX2F1dG9yZWZyZXNoID0gZHB1X2h3X3BwX3NldHVwX2F1dG9yZWZyZXNoX2NvbmZpZzsKLQlv cHMtPmdldF9hdXRvcmVmcmVzaCA9IGRwdV9od19wcF9nZXRfYXV0b3JlZnJlc2hfY29uZmlnOwog CW9wcy0+cG9sbF90aW1lb3V0X3dyX3B0ciA9IGRwdV9od19wcF9wb2xsX3RpbWVvdXRfd3JfcHRy OwogCW9wcy0+Z2V0X2xpbmVfY291bnQgPSBkcHVfaHdfcHBfZ2V0X2xpbmVfY291bnQ7CiAKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od19waW5ncG9uZy5o IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X3Bpbmdwb25nLmgKaW5kZXgg OTNkMDNjY2UuLjdkYmZjYWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9k cHUxL2RwdV9od19waW5ncG9uZy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUx L2RwdV9od19waW5ncG9uZy5oCkBAIC0zNiwxMSArMzYsNiBAQCBzdHJ1Y3QgZHB1X2h3X3RlYXJf Y2hlY2sgewogCXU4IGh3X3ZzeW5jX21vZGU7CiB9OwogCi1zdHJ1Y3QgZHB1X2h3X2F1dG9yZWZy ZXNoIHsKLQlib29sICBlbmFibGU7Ci0JdTMyIGZyYW1lX2NvdW50OwotfTsKLQogc3RydWN0IGRw dV9od19wcF92c3luY19pbmZvIHsKIAl1MzIgcmRfcHRyX2luaXRfdmFsOwkvKiB2YWx1ZSBvZiBy ZCBwb2ludGVyIGF0IHZzeW5jIGVkZ2UgKi8KIAl1MzIgcmRfcHRyX2ZyYW1lX2NvdW50OwkvKiBu dW0gZnJhbWVzIHNlbnQgc2luY2UgZW5hYmxpbmcgaW50ZXJmYWNlICovCkBAIC01NSw3ICs1MCw2 IEBAIHN0cnVjdCBkcHVfaHdfcHBfdnN5bmNfaW5mbyB7CiAgKiAgQHNldHVwX3RlYXJjaGVjayA6 IHByb2dyYW0gdGVhciBjaGVjayB2YWx1ZXMKICAqICBAZW5hYmxlX3RlYXJjaGVjayA6IGVuYWJs ZXMgdGVhciBjaGVjawogICogIEBnZXRfdnN5bmNfaW5mbyA6IHJldHJpZXMgdGltaW5nIGluZm8g b2YgdGhlIHBhbmVsCi0gKiAgQHNldHVwX2F1dG9yZWZyZXNoIDogcHJvZ3JhbSBhdXRvIHJlZnJl c2gKICAqICBAc2V0dXBfZGl0aGVyIDogZnVuY3Rpb24gdG8gcHJvZ3JhbSB0aGUgZGl0aGVyIGh3 IGJsb2NrCiAgKiAgQGdldF9saW5lX2NvdW50OiBvYnRhaW4gY3VycmVudCB2ZXJ0aWNhbCBsaW5l IGNvdW50ZXIKICAqLwpAQCAtODgsMTggKzgyLDYgQEAgc3RydWN0IGRwdV9od19waW5ncG9uZ19v cHMgewogCQkJc3RydWN0IGRwdV9od19wcF92c3luY19pbmZvICAqaW5mbyk7CiAKIAkvKioKLQkg KiBjb25maWd1cmUgYW5kIGVuYWJsZSB0aGUgYXV0b3JlZnJlc2ggY29uZmlnCi0JICovCi0JaW50 ICgqc2V0dXBfYXV0b3JlZnJlc2gpKHN0cnVjdCBkcHVfaHdfcGluZ3BvbmcgKnBwLAotCQkJc3Ry dWN0IGRwdV9od19hdXRvcmVmcmVzaCAqY2ZnKTsKLQotCS8qKgotCSAqIHJldHJpZXZlIGF1dG9y ZWZyZXNoIGNvbmZpZyBmcm9tIGhhcmR3YXJlCi0JICovCi0JaW50ICgqZ2V0X2F1dG9yZWZyZXNo KShzdHJ1Y3QgZHB1X2h3X3Bpbmdwb25nICpwcCwKLQkJCXN0cnVjdCBkcHVfaHdfYXV0b3JlZnJl c2ggKmNmZyk7Ci0KLQkvKioKIAkgKiBwb2xsIHVudGlsIHdyaXRlIHBvaW50ZXIgdHJhbnNtaXNz aW9uIHN0YXJ0cwogCSAqIEBSZXR1cm46IDAgb24gc3VjY2VzcywgLUVUSU1FRE9VVCBvbiB0aW1l b3V0CiAJICovCi0tIApUaGUgUXVhbGNvbW0gSW5ub3ZhdGlvbiBDZW50ZXIsIEluYy4gaXMgYSBt ZW1iZXIgb2YgdGhlIENvZGUgQXVyb3JhIEZvcnVtLAphIExpbnV4IEZvdW5kYXRpb24gQ29sbGFi b3JhdGl2ZSBQcm9qZWN0CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpGcmVlZHJlbm8gbWFpbGluZyBsaXN0CkZyZWVkcmVub0BsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9mcmVl ZHJlbm8K