From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeykumar Sankaran Subject: [PATCH 01/14] drm/msm/dpu: remove debugfs support for misr Date: Tue, 28 Aug 2018 17:39:50 -0700 Message-ID: <1535503203-22054-2-git-send-email-jsanka@codeaurora.org> References: <1535503203-22054-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: <1535503203-22054-1-git-send-email-jsanka@codeaurora.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-arm-msm@vger.kernel.org Cc: hoegsberg@google.com, seanpaul@chromium.org List-Id: linux-arm-msm@vger.kernel.org U3RyaXAgZG93biBkZWJ1Z2ZzIHN1cHBvcnQgZm9yIG1pc3IgZGF0YSByZWFkIG9uIGxheWVyIG1p eGVycwphbmQgaW50ZXJmYWNlcy4KClNpZ25lZC1vZmYtYnk6IEpleWt1bWFyIFNhbmthcmFuIDxq c2Fua2FAY29kZWF1cm9yYS5vcmc+Ci0tLQogZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEv ZHB1X2NydGMuYyAgICAgICAgICAgfCAxMzkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJz L2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5oICAgICAgICAgICB8ICAgNiAtCiBkcml2 ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5jICAgICAgICB8IDEyNyAtLS0t LS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rl cl9waHlzLmggICB8ICAgNiAtCiAuLi4vZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVy X3BoeXNfdmlkLmMgICB8ICAyOCAtLS0tLQogZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEv ZHB1X2h3X2ludGYuYyAgICAgICAgfCAgMjkgLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlz cC9kcHUxL2RwdV9od19pbnRmLmggICAgICAgIHwgICA3IC0tCiBkcml2ZXJzL2dwdS9kcm0vbXNt L2Rpc3AvZHB1MS9kcHVfaHdfbG0uYyAgICAgICAgICB8ICAyOSAtLS0tLQogZHJpdmVycy9ncHUv ZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X2xtLmggICAgICAgICAgfCAgIDcgLS0KIGRyaXZlcnMv Z3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od191dGlsLmMgICAgICAgIHwgICAzIC0KIGRyaXZl cnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od191dGlsLmggICAgICAgIHwgICA2IC0KIDEx IGZpbGVzIGNoYW5nZWQsIDM4NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNw L2RwdTEvZHB1X2NydGMuYwppbmRleCAwN2MyZDE1Li5hNGZhYjA0MiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jCkBAIC00Nyw4ICs0Nyw2IEBACiAjZGVmaW5lIExF RlRfTUlYRVIgMAogI2RlZmluZSBSSUdIVF9NSVhFUiAxCiAKLSNkZWZpbmUgTUlTUl9CVUZGX1NJ WkUJCQkyNTYKLQogc3RhdGljIGlubGluZSBzdHJ1Y3QgZHB1X2ttcyAqX2RwdV9jcnRjX2dldF9r bXMoc3RydWN0IGRybV9jcnRjICpjcnRjKQogewogCXN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnBy aXY7CkBAIC0xMjcyLDggKzEyNzAsNiBAQCBzdGF0aWMgdm9pZCBkcHVfY3J0Y19oYW5kbGVfcG93 ZXJfZXZlbnQodTMyIGV2ZW50X3R5cGUsIHZvaWQgKmFyZykKIAlzdHJ1Y3QgZHJtX2NydGMgKmNy dGMgPSBhcmc7CiAJc3RydWN0IGRwdV9jcnRjICpkcHVfY3J0YzsKIAlzdHJ1Y3QgZHJtX2VuY29k ZXIgKmVuY29kZXI7Ci0Jc3RydWN0IGRwdV9jcnRjX21peGVyICptOwotCXUzMiBpLCBtaXNyX3N0 YXR1czsKIAogCWlmICghY3J0YykgewogCQlEUFVfRVJST1IoImludmFsaWQgY3J0Y1xuIik7CkBA IC0xMjk0LDI5ICsxMjkwLDggQEAgc3RhdGljIHZvaWQgZHB1X2NydGNfaGFuZGxlX3Bvd2VyX2V2 ZW50KHUzMiBldmVudF90eXBlLCB2b2lkICphcmcpCiAKIAkJCWRwdV9lbmNvZGVyX3ZpcnRfcmVz dG9yZShlbmNvZGVyKTsKIAkJfQotCi0JCWZvciAoaSA9IDA7IGkgPCBkcHVfY3J0Yy0+bnVtX21p eGVyczsgKytpKSB7Ci0JCQltID0gJmRwdV9jcnRjLT5taXhlcnNbaV07Ci0JCQlpZiAoIW0tPmh3 X2xtIHx8ICFtLT5od19sbS0+b3BzLnNldHVwX21pc3IgfHwKLQkJCQkJIWRwdV9jcnRjLT5taXNy X2VuYWJsZSkKLQkJCQljb250aW51ZTsKLQotCQkJbS0+aHdfbG0tPm9wcy5zZXR1cF9taXNyKG0t Pmh3X2xtLCB0cnVlLAotCQkJCQlkcHVfY3J0Yy0+bWlzcl9mcmFtZV9jb3VudCk7Ci0JCX0KIAkJ YnJlYWs7CiAJY2FzZSBEUFVfUE9XRVJfRVZFTlRfUFJFX0RJU0FCTEU6Ci0JCWZvciAoaSA9IDA7 IGkgPCBkcHVfY3J0Yy0+bnVtX21peGVyczsgKytpKSB7Ci0JCQltID0gJmRwdV9jcnRjLT5taXhl cnNbaV07Ci0JCQlpZiAoIW0tPmh3X2xtIHx8ICFtLT5od19sbS0+b3BzLmNvbGxlY3RfbWlzciB8 fAotCQkJCQkhZHB1X2NydGMtPm1pc3JfZW5hYmxlKQotCQkJCWNvbnRpbnVlOwotCi0JCQltaXNy X3N0YXR1cyA9IG0tPmh3X2xtLT5vcHMuY29sbGVjdF9taXNyKG0tPmh3X2xtKTsKLQkJCWRwdV9j cnRjLT5taXNyX2RhdGFbaV0gPSBtaXNyX3N0YXR1cyA/IG1pc3Jfc3RhdHVzIDoKLQkJCQkJCQlk cHVfY3J0Yy0+bWlzcl9kYXRhW2ldOwotCQl9Ci0JCWJyZWFrOwogCWNhc2UgRFBVX1BPV0VSX0VW RU5UX1BPU1RfRElTQUJMRToKIAkJLyoqCiAJCSAqIE5vdGhpbmcgdG8gZG8uIEFsbCB0aGUgcGxh bmVzIG9uIHRoZSBDUlRDIHdpbGwgYmUKQEAgLTE4NDcsMTEzICsxODIyLDYgQEAgc3RhdGljIGlu dCBfZHB1X2RlYnVnZnNfc3RhdHVzX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZp bGUgKmZpbGUpCiAJcmV0dXJuIHNpbmdsZV9vcGVuKGZpbGUsIF9kcHVfZGVidWdmc19zdGF0dXNf c2hvdywgaW5vZGUtPmlfcHJpdmF0ZSk7CiB9CiAKLXN0YXRpYyBzc2l6ZV90IF9kcHVfY3J0Y19t aXNyX3NldHVwKHN0cnVjdCBmaWxlICpmaWxlLAotCQljb25zdCBjaGFyIF9fdXNlciAqdXNlcl9i dWYsIHNpemVfdCBjb3VudCwgbG9mZl90ICpwcG9zKQotewotCXN0cnVjdCBkcHVfY3J0YyAqZHB1 X2NydGM7Ci0Jc3RydWN0IGRwdV9jcnRjX21peGVyICptOwotCWludCBpID0gMCwgcmM7Ci0JY2hh ciBidWZbTUlTUl9CVUZGX1NJWkUgKyAxXTsKLQl1MzIgZnJhbWVfY291bnQsIGVuYWJsZTsKLQlz aXplX3QgYnVmZl9jb3B5OwotCi0JaWYgKCFmaWxlIHx8ICFmaWxlLT5wcml2YXRlX2RhdGEpCi0J CXJldHVybiAtRUlOVkFMOwotCi0JZHB1X2NydGMgPSBmaWxlLT5wcml2YXRlX2RhdGE7Ci0JYnVm Zl9jb3B5ID0gbWluX3Qoc2l6ZV90LCBjb3VudCwgTUlTUl9CVUZGX1NJWkUpOwotCWlmIChjb3B5 X2Zyb21fdXNlcihidWYsIHVzZXJfYnVmLCBidWZmX2NvcHkpKSB7Ci0JCURQVV9FUlJPUigiYnVm ZmVyIGNvcHkgZmFpbGVkXG4iKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JYnVmW2J1ZmZf Y29weV0gPSAwOyAvKiBlbmQgb2Ygc3RyaW5nICovCi0KLQlpZiAoc3NjYW5mKGJ1ZiwgIiV1ICV1 IiwgJmVuYWJsZSwgJmZyYW1lX2NvdW50KSAhPSAyKQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCXJj ID0gX2RwdV9jcnRjX3Bvd2VyX2VuYWJsZShkcHVfY3J0YywgdHJ1ZSk7Ci0JaWYgKHJjKQotCQly ZXR1cm4gcmM7Ci0KLQltdXRleF9sb2NrKCZkcHVfY3J0Yy0+Y3J0Y19sb2NrKTsKLQlkcHVfY3J0 Yy0+bWlzcl9lbmFibGUgPSBlbmFibGU7Ci0JZHB1X2NydGMtPm1pc3JfZnJhbWVfY291bnQgPSBm cmFtZV9jb3VudDsKLQlmb3IgKGkgPSAwOyBpIDwgZHB1X2NydGMtPm51bV9taXhlcnM7ICsraSkg ewotCQlkcHVfY3J0Yy0+bWlzcl9kYXRhW2ldID0gMDsKLQkJbSA9ICZkcHVfY3J0Yy0+bWl4ZXJz W2ldOwotCQlpZiAoIW0tPmh3X2xtIHx8ICFtLT5od19sbS0+b3BzLnNldHVwX21pc3IpCi0JCQlj b250aW51ZTsKLQotCQltLT5od19sbS0+b3BzLnNldHVwX21pc3IobS0+aHdfbG0sIGVuYWJsZSwg ZnJhbWVfY291bnQpOwotCX0KLQltdXRleF91bmxvY2soJmRwdV9jcnRjLT5jcnRjX2xvY2spOwot CV9kcHVfY3J0Y19wb3dlcl9lbmFibGUoZHB1X2NydGMsIGZhbHNlKTsKLQotCXJldHVybiBjb3Vu dDsKLX0KLQotc3RhdGljIHNzaXplX3QgX2RwdV9jcnRjX21pc3JfcmVhZChzdHJ1Y3QgZmlsZSAq ZmlsZSwKLQkJY2hhciBfX3VzZXIgKnVzZXJfYnVmZiwgc2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBw b3MpCi17Ci0Jc3RydWN0IGRwdV9jcnRjICpkcHVfY3J0YzsKLQlzdHJ1Y3QgZHB1X2NydGNfbWl4 ZXIgKm07Ci0JaW50IGkgPSAwLCByYzsKLQl1MzIgbWlzcl9zdGF0dXM7Ci0Jc3NpemVfdCBsZW4g PSAwOwotCWNoYXIgYnVmW01JU1JfQlVGRl9TSVpFICsgMV0gPSB7J1wwJ307Ci0KLQlpZiAoKnBw b3MpCi0JCXJldHVybiAwOwotCi0JaWYgKCFmaWxlIHx8ICFmaWxlLT5wcml2YXRlX2RhdGEpCi0J CXJldHVybiAtRUlOVkFMOwotCi0JZHB1X2NydGMgPSBmaWxlLT5wcml2YXRlX2RhdGE7Ci0JcmMg PSBfZHB1X2NydGNfcG93ZXJfZW5hYmxlKGRwdV9jcnRjLCB0cnVlKTsKLQlpZiAocmMpCi0JCXJl dHVybiByYzsKLQotCW11dGV4X2xvY2soJmRwdV9jcnRjLT5jcnRjX2xvY2spOwotCWlmICghZHB1 X2NydGMtPm1pc3JfZW5hYmxlKSB7Ci0JCWxlbiArPSBzbnByaW50ZihidWYgKyBsZW4sIE1JU1Jf QlVGRl9TSVpFIC0gbGVuLAotCQkJImRpc2FibGVkXG4iKTsKLQkJZ290byBidWZmX2NoZWNrOwot CX0KLQotCWZvciAoaSA9IDA7IGkgPCBkcHVfY3J0Yy0+bnVtX21peGVyczsgKytpKSB7Ci0JCW0g PSAmZHB1X2NydGMtPm1peGVyc1tpXTsKLQkJaWYgKCFtLT5od19sbSB8fCAhbS0+aHdfbG0tPm9w cy5jb2xsZWN0X21pc3IpCi0JCQljb250aW51ZTsKLQotCQltaXNyX3N0YXR1cyA9IG0tPmh3X2xt LT5vcHMuY29sbGVjdF9taXNyKG0tPmh3X2xtKTsKLQkJZHB1X2NydGMtPm1pc3JfZGF0YVtpXSA9 IG1pc3Jfc3RhdHVzID8gbWlzcl9zdGF0dXMgOgotCQkJCQkJCWRwdV9jcnRjLT5taXNyX2RhdGFb aV07Ci0JCWxlbiArPSBzbnByaW50ZihidWYgKyBsZW4sIE1JU1JfQlVGRl9TSVpFIC0gbGVuLCAi bG0gaWR4OiVkXG4iLAotCQkJCQltLT5od19sbS0+aWR4IC0gTE1fMCk7Ci0JCWxlbiArPSBzbnBy aW50ZihidWYgKyBsZW4sIE1JU1JfQlVGRl9TSVpFIC0gbGVuLCAiMHgleFxuIiwKLQkJCQkJCQlk cHVfY3J0Yy0+bWlzcl9kYXRhW2ldKTsKLQl9Ci0KLWJ1ZmZfY2hlY2s6Ci0JaWYgKGNvdW50IDw9 IGxlbikgewotCQlsZW4gPSAwOwotCQlnb3RvIGVuZDsKLQl9Ci0KLQlpZiAoY29weV90b191c2Vy KHVzZXJfYnVmZiwgYnVmLCBsZW4pKSB7Ci0JCWxlbiA9IC1FRkFVTFQ7Ci0JCWdvdG8gZW5kOwot CX0KLQotCSpwcG9zICs9IGxlbjsgICAvKiBpbmNyZWFzZSBvZmZzZXQgKi8KLQotZW5kOgotCW11 dGV4X3VubG9jaygmZHB1X2NydGMtPmNydGNfbG9jayk7Ci0JX2RwdV9jcnRjX3Bvd2VyX2VuYWJs ZShkcHVfY3J0YywgZmFsc2UpOwotCXJldHVybiBsZW47Ci19Ci0KICNkZWZpbmUgREVGSU5FX0RQ VV9ERUJVR0ZTX1NFUV9GT1BTKF9fcHJlZml4KSAgICAgICAgICAgICAgICAgICAgICAgICAgXAog c3RhdGljIGludCBfX3ByZWZpeCAjIyBfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3Qg ZmlsZSAqZmlsZSkJXAogewkJCQkJCQkJCVwKQEAgLTIwMTUsMTEgKzE4ODMsNiBAQCBzdGF0aWMg aW50IF9kcHVfY3J0Y19pbml0X2RlYnVnZnMoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCQkubGxz ZWVrID0Jc2VxX2xzZWVrLAogCQkucmVsZWFzZSA9CXNpbmdsZV9yZWxlYXNlLAogCX07Ci0Jc3Rh dGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZGVidWdmc19taXNyX2ZvcHMgPSB7Ci0J CS5vcGVuID0JCXNpbXBsZV9vcGVuLAotCQkucmVhZCA9CQlfZHB1X2NydGNfbWlzcl9yZWFkLAot CQkud3JpdGUgPQlfZHB1X2NydGNfbWlzcl9zZXR1cCwKLQl9OwogCiAJaWYgKCFjcnRjKQogCQly ZXR1cm4gLUVJTlZBTDsKQEAgLTIwNDIsOCArMTkwNSw2IEBAIHN0YXRpYyBpbnQgX2RwdV9jcnRj X2luaXRfZGVidWdmcyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJCQlkcHVfY3J0Yy0+ZGVidWdm c19yb290LAogCQkJJmRwdV9jcnRjLT5iYXNlLAogCQkJJmRwdV9jcnRjX2RlYnVnZnNfc3RhdGVf Zm9wcyk7Ci0JZGVidWdmc19jcmVhdGVfZmlsZSgibWlzcl9kYXRhIiwgMDYwMCwgZHB1X2NydGMt PmRlYnVnZnNfcm9vdCwKLQkJCQkJZHB1X2NydGMsICZkZWJ1Z2ZzX21pc3JfZm9wcyk7CiAKIAly ZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2Rw dV9jcnRjLmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5oCmluZGV4 IGE4OTY3OTEuLjUzNDg0YjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9k cHUxL2RwdV9jcnRjLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2Ny dGMuaApAQCAtMTU2LDkgKzE1Niw2IEBAIHN0cnVjdCBkcHVfY3J0Y19mcmFtZV9ldmVudCB7CiAg KiBAZXZlbnRfdGhyZWFkICA6IFBvaW50ZXIgdG8gZXZlbnQgaGFuZGxlciB0aHJlYWQKICAqIEBl dmVudF93b3JrZXIgIDogRXZlbnQgd29ya2VyIHF1ZXVlCiAgKiBAZXZlbnRfbG9jayAgICA6IFNw aW5sb2NrIGFyb3VuZCBldmVudCBoYW5kbGluZyBjb2RlCi0gKiBAbWlzcl9lbmFibGUgICA6IGJv b2xlYW4gZW50cnkgaW5kaWNhdGVzIG1pc3IgZW5hYmxlL2Rpc2FibGUgc3RhdHVzLgotICogQG1p c3JfZnJhbWVfY291bnQgIDogbWlzciBmcmFtZSBjb3VudCBwcm92aWRlZCBieSBjbGllbnQKLSAq IEBtaXNyX2RhdGEgICAgIDogc3RvcmUgbWlzciBkYXRhIGJlZm9yZSB0dXJuaW5nIG9mZiB0aGUg Y2xvY2tzLgogICogQHBoYW5kbGU6IFBvaW50ZXIgdG8gcG93ZXIgaGFuZGxlcgogICogQHBvd2Vy X2V2ZW50ICAgOiByZWdpc3RlcmVkIHBvd2VyIGV2ZW50IGhhbmRsZQogICogQGN1cl9wZXJmICAg ICAgOiBjdXJyZW50IHBlcmZvcm1hbmNlIGNvbW1pdHRlZCB0byBjbG9jay9iYW5kd2lkdGggZHJp dmVyCkBAIC0yMDYsOSArMjAzLDYgQEAgc3RydWN0IGRwdV9jcnRjIHsKIAogCS8qIGZvciBoYW5k bGluZyBpbnRlcm5hbCBldmVudCB0aHJlYWQgKi8KIAlzcGlubG9ja190IGV2ZW50X2xvY2s7Ci0J Ym9vbCBtaXNyX2VuYWJsZTsKLQl1MzIgbWlzcl9mcmFtZV9jb3VudDsKLQl1MzIgbWlzcl9kYXRh W0NSVENfRFVBTF9NSVhFUlNdOwogCiAJc3RydWN0IGRwdV9wb3dlcl9oYW5kbGUgKnBoYW5kbGU7 CiAJc3RydWN0IGRwdV9wb3dlcl9ldmVudCAqcG93ZXJfZXZlbnQ7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5jIGIvZHJpdmVycy9ncHUvZHJt L21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuYwppbmRleCA1YjBlOTQ0Li45OTFiMjJjIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmMKQEAgLTY1LDggKzY1 LDYgQEAKIAogI2RlZmluZSBNQVhfQ0hBTk5FTFNfUEVSX0VOQyAyCiAKLSNkZWZpbmUgTUlTUl9C VUZGX1NJWkUJCQkyNTYKLQogI2RlZmluZSBJRExFX1NIT1JUX1RJTUVPVVQJMQogCiAjZGVmaW5l IE1BWF9WRElTUExBWV9TUExJVCAxMDgwCkBAIC0xNjEsOCArMTU5LDYgQEAgZW51bSBkcHVfZW5j X3JjX3N0YXRlcyB7CiAgKiBAZnJhbWVfZG9uZV90aW1lcjoJCXdhdGNoZG9nIHRpbWVyIGZvciBm cmFtZSBkb25lIGV2ZW50CiAgKiBAdnN5bmNfZXZlbnRfdGltZXI6CQl2c3luYyB0aW1lcgogICog QGRpc3BfaW5mbzoJCQlsb2NhbCBjb3B5IG9mIG1zbV9kaXNwbGF5X2luZm8gc3RydWN0Ci0gKiBA bWlzcl9lbmFibGU6CQltaXNyIGVuYWJsZS9kaXNhYmxlIHN0YXR1cwotICogQG1pc3JfZnJhbWVf Y291bnQ6CQltaXNyIGZyYW1lIGNvdW50IGJlZm9yZSBzdGFydCBjYXB0dXJpbmcgdGhlIGRhdGEK ICAqIEBpZGxlX3BjX3N1cHBvcnRlZDoJCWluZGljYXRlIGlmIGlkbGUgcG93ZXIgY29sbGFwcyBp cyBzdXBwb3J0ZWQKICAqIEByY19sb2NrOgkJCXJlc291cmNlIGNvbnRyb2wgbXV0ZXggbG9jayB0 byBwcm90ZWN0CiAgKgkJCQl2aXJ0IGVuY29kZXIgb3ZlciB2YXJpb3VzIHN0YXRlIGNoYW5nZXMK QEAgLTIwMiw4ICsxOTgsNiBAQCBzdHJ1Y3QgZHB1X2VuY29kZXJfdmlydCB7CiAJc3RydWN0IHRp bWVyX2xpc3QgdnN5bmNfZXZlbnRfdGltZXI7CiAKIAlzdHJ1Y3QgbXNtX2Rpc3BsYXlfaW5mbyBk aXNwX2luZm87Ci0JYm9vbCBtaXNyX2VuYWJsZTsKLQl1MzIgbWlzcl9mcmFtZV9jb3VudDsKIAog CWJvb2wgaWRsZV9wY19zdXBwb3J0ZWQ7CiAJc3RydWN0IG11dGV4IHJjX2xvY2s7CkBAIC0xMTkz LDExICsxMTg3LDYgQEAgc3RhdGljIHZvaWQgZHB1X2VuY29kZXJfdmlydF9lbmFibGUoc3RydWN0 IGRybV9lbmNvZGVyICpkcm1fZW5jKQogCQkJaWYgKHBoeXMtPm9wcy5lbmFibGUpCiAJCQkJcGh5 cy0+b3BzLmVuYWJsZShwaHlzKTsKIAkJfQotCi0JCWlmIChkcHVfZW5jLT5taXNyX2VuYWJsZSAm JiAoZHB1X2VuYy0+ZGlzcF9pbmZvLmNhcGFiaWxpdGllcyAmCi0JCSAgICAgTVNNX0RJU1BMQVlf Q0FQX1ZJRF9NT0RFKSAmJiBwaHlzLT5vcHMuc2V0dXBfbWlzcikKLQkJCXBoeXMtPm9wcy5zZXR1 cF9taXNyKHBoeXMsIHRydWUsCi0JCQkJCQlkcHVfZW5jLT5taXNyX2ZyYW1lX2NvdW50KTsKIAl9 CiAKIAlpZiAoZHB1X2VuYy0+Y3VyX21hc3Rlci0+b3BzLmVuYWJsZSkKQEAgLTE5NDksMTEzICsx OTM4LDYgQEAgc3RhdGljIGludCBfZHB1X2VuY29kZXJfZGVidWdmc19zdGF0dXNfb3BlbihzdHJ1 Y3QgaW5vZGUgKmlub2RlLAogCXJldHVybiBzaW5nbGVfb3BlbihmaWxlLCBfZHB1X2VuY29kZXJf c3RhdHVzX3Nob3csIGlub2RlLT5pX3ByaXZhdGUpOwogfQogCi1zdGF0aWMgc3NpemVfdCBfZHB1 X2VuY29kZXJfbWlzcl9zZXR1cChzdHJ1Y3QgZmlsZSAqZmlsZSwKLQkJY29uc3QgY2hhciBfX3Vz ZXIgKnVzZXJfYnVmLCBzaXplX3QgY291bnQsIGxvZmZfdCAqcHBvcykKLXsKLQlzdHJ1Y3QgZHB1 X2VuY29kZXJfdmlydCAqZHB1X2VuYzsKLQlpbnQgaSA9IDAsIHJjOwotCWNoYXIgYnVmW01JU1Jf QlVGRl9TSVpFICsgMV07Ci0Jc2l6ZV90IGJ1ZmZfY29weTsKLQl1MzIgZnJhbWVfY291bnQsIGVu YWJsZTsKLQotCWlmICghZmlsZSB8fCAhZmlsZS0+cHJpdmF0ZV9kYXRhKQotCQlyZXR1cm4gLUVJ TlZBTDsKLQotCWRwdV9lbmMgPSBmaWxlLT5wcml2YXRlX2RhdGE7Ci0KLQlidWZmX2NvcHkgPSBt aW5fdChzaXplX3QsIGNvdW50LCBNSVNSX0JVRkZfU0laRSk7Ci0JaWYgKGNvcHlfZnJvbV91c2Vy KGJ1ZiwgdXNlcl9idWYsIGJ1ZmZfY29weSkpCi0JCXJldHVybiAtRUlOVkFMOwotCi0JYnVmW2J1 ZmZfY29weV0gPSAwOyAvKiBlbmQgb2Ygc3RyaW5nICovCi0KLQlpZiAoc3NjYW5mKGJ1ZiwgIiV1 ICV1IiwgJmVuYWJsZSwgJmZyYW1lX2NvdW50KSAhPSAyKQotCQlyZXR1cm4gLUVJTlZBTDsKLQot CXJjID0gX2RwdV9lbmNvZGVyX3Bvd2VyX2VuYWJsZShkcHVfZW5jLCB0cnVlKTsKLQlpZiAocmMp Ci0JCXJldHVybiByYzsKLQotCW11dGV4X2xvY2soJmRwdV9lbmMtPmVuY19sb2NrKTsKLQlkcHVf ZW5jLT5taXNyX2VuYWJsZSA9IGVuYWJsZTsKLQlkcHVfZW5jLT5taXNyX2ZyYW1lX2NvdW50ID0g ZnJhbWVfY291bnQ7Ci0JZm9yIChpID0gMDsgaSA8IGRwdV9lbmMtPm51bV9waHlzX2VuY3M7IGkr KykgewotCQlzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5cyAqcGh5cyA9IGRwdV9lbmMtPnBoeXNfZW5j c1tpXTsKLQotCQlpZiAoIXBoeXMgfHwgIXBoeXMtPm9wcy5zZXR1cF9taXNyKQotCQkJY29udGlu dWU7Ci0KLQkJcGh5cy0+b3BzLnNldHVwX21pc3IocGh5cywgZW5hYmxlLCBmcmFtZV9jb3VudCk7 Ci0JfQotCW11dGV4X3VubG9jaygmZHB1X2VuYy0+ZW5jX2xvY2spOwotCV9kcHVfZW5jb2Rlcl9w b3dlcl9lbmFibGUoZHB1X2VuYywgZmFsc2UpOwotCi0JcmV0dXJuIGNvdW50OwotfQotCi1zdGF0 aWMgc3NpemVfdCBfZHB1X2VuY29kZXJfbWlzcl9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLAotCQlj aGFyIF9fdXNlciAqdXNlcl9idWZmLCBzaXplX3QgY291bnQsIGxvZmZfdCAqcHBvcykKLXsKLQlz dHJ1Y3QgZHB1X2VuY29kZXJfdmlydCAqZHB1X2VuYzsKLQlpbnQgaSA9IDAsIGxlbiA9IDA7Ci0J Y2hhciBidWZbTUlTUl9CVUZGX1NJWkUgKyAxXSA9IHsnXDAnfTsKLQlpbnQgcmM7Ci0KLQlpZiAo KnBwb3MpCi0JCXJldHVybiAwOwotCi0JaWYgKCFmaWxlIHx8ICFmaWxlLT5wcml2YXRlX2RhdGEp Ci0JCXJldHVybiAtRUlOVkFMOwotCi0JZHB1X2VuYyA9IGZpbGUtPnByaXZhdGVfZGF0YTsKLQot CXJjID0gX2RwdV9lbmNvZGVyX3Bvd2VyX2VuYWJsZShkcHVfZW5jLCB0cnVlKTsKLQlpZiAocmMp Ci0JCXJldHVybiByYzsKLQotCW11dGV4X2xvY2soJmRwdV9lbmMtPmVuY19sb2NrKTsKLQlpZiAo IWRwdV9lbmMtPm1pc3JfZW5hYmxlKSB7Ci0JCWxlbiArPSBzbnByaW50ZihidWYgKyBsZW4sIE1J U1JfQlVGRl9TSVpFIC0gbGVuLAotCQkJImRpc2FibGVkXG4iKTsKLQkJZ290byBidWZmX2NoZWNr OwotCX0gZWxzZSBpZiAoZHB1X2VuYy0+ZGlzcF9pbmZvLmNhcGFiaWxpdGllcyAmCi0JCQkJCQl+ TVNNX0RJU1BMQVlfQ0FQX1ZJRF9NT0RFKSB7Ci0JCWxlbiArPSBzbnByaW50ZihidWYgKyBsZW4s IE1JU1JfQlVGRl9TSVpFIC0gbGVuLAotCQkJInVuc3VwcG9ydGVkXG4iKTsKLQkJZ290byBidWZm X2NoZWNrOwotCX0KLQotCWZvciAoaSA9IDA7IGkgPCBkcHVfZW5jLT5udW1fcGh5c19lbmNzOyBp KyspIHsKLQkJc3RydWN0IGRwdV9lbmNvZGVyX3BoeXMgKnBoeXMgPSBkcHVfZW5jLT5waHlzX2Vu Y3NbaV07Ci0KLQkJaWYgKCFwaHlzIHx8ICFwaHlzLT5vcHMuY29sbGVjdF9taXNyKQotCQkJY29u dGludWU7Ci0KLQkJbGVuICs9IHNucHJpbnRmKGJ1ZiArIGxlbiwgTUlTUl9CVUZGX1NJWkUgLSBs ZW4sCi0JCQkiSW50ZiBpZHg6JWRcbiIsIHBoeXMtPmludGZfaWR4IC0gSU5URl8wKTsKLQkJbGVu ICs9IHNucHJpbnRmKGJ1ZiArIGxlbiwgTUlTUl9CVUZGX1NJWkUgLSBsZW4sICIweCV4XG4iLAot CQkJCQlwaHlzLT5vcHMuY29sbGVjdF9taXNyKHBoeXMpKTsKLQl9Ci0KLWJ1ZmZfY2hlY2s6Ci0J aWYgKGNvdW50IDw9IGxlbikgewotCQlsZW4gPSAwOwotCQlnb3RvIGVuZDsKLQl9Ci0KLQlpZiAo Y29weV90b191c2VyKHVzZXJfYnVmZiwgYnVmLCBsZW4pKSB7Ci0JCWxlbiA9IC1FRkFVTFQ7Ci0J CWdvdG8gZW5kOwotCX0KLQotCSpwcG9zICs9IGxlbjsgICAvKiBpbmNyZWFzZSBvZmZzZXQgKi8K LQotZW5kOgotCW11dGV4X3VubG9jaygmZHB1X2VuYy0+ZW5jX2xvY2spOwotCV9kcHVfZW5jb2Rl cl9wb3dlcl9lbmFibGUoZHB1X2VuYywgZmFsc2UpOwotCXJldHVybiBsZW47Ci19Ci0KIHN0YXRp YyBpbnQgX2RwdV9lbmNvZGVyX2luaXRfZGVidWdmcyhzdHJ1Y3QgZHJtX2VuY29kZXIgKmRybV9l bmMpCiB7CiAJc3RydWN0IGRwdV9lbmNvZGVyX3ZpcnQgKmRwdV9lbmM7CkBAIC0yMDcwLDEyICsx OTUyLDYgQEAgc3RhdGljIGludCBfZHB1X2VuY29kZXJfaW5pdF9kZWJ1Z2ZzKHN0cnVjdCBkcm1f ZW5jb2RlciAqZHJtX2VuYykKIAkJLnJlbGVhc2UgPQlzaW5nbGVfcmVsZWFzZSwKIAl9OwogCi0J c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZGVidWdmc19taXNyX2ZvcHMgPSB7 Ci0JCS5vcGVuID0gc2ltcGxlX29wZW4sCi0JCS5yZWFkID0gX2RwdV9lbmNvZGVyX21pc3JfcmVh ZCwKLQkJLndyaXRlID0gX2RwdV9lbmNvZGVyX21pc3Jfc2V0dXAsCi0JfTsKLQogCWNoYXIgbmFt ZVtEUFVfTkFNRV9TSVpFXTsKIAogCWlmICghZHJtX2VuYyB8fCAhZHJtX2VuYy0+ZGV2IHx8ICFk cm1fZW5jLT5kZXYtPmRldl9wcml2YXRlKSB7CkBAIC0yMDk5LDkgKzE5NzUsNiBAQCBzdGF0aWMg aW50IF9kcHVfZW5jb2Rlcl9pbml0X2RlYnVnZnMoc3RydWN0IGRybV9lbmNvZGVyICpkcm1fZW5j KQogCWRlYnVnZnNfY3JlYXRlX2ZpbGUoInN0YXR1cyIsIDA2MDAsCiAJCWRwdV9lbmMtPmRlYnVn ZnNfcm9vdCwgZHB1X2VuYywgJmRlYnVnZnNfc3RhdHVzX2ZvcHMpOwogCi0JZGVidWdmc19jcmVh dGVfZmlsZSgibWlzcl9kYXRhIiwgMDYwMCwKLQkJZHB1X2VuYy0+ZGVidWdmc19yb290LCBkcHVf ZW5jLCAmZGVidWdmc19taXNyX2ZvcHMpOwotCiAJZm9yIChpID0gMDsgaSA8IGRwdV9lbmMtPm51 bV9waHlzX2VuY3M7IGkrKykKIAkJaWYgKGRwdV9lbmMtPnBoeXNfZW5jc1tpXSAmJgogCQkJCWRw dV9lbmMtPnBoeXNfZW5jc1tpXS0+b3BzLmxhdGVfcmVnaXN0ZXIpCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlcl9waHlzLmggYi9kcml2ZXJzL2dw dS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlcl9waHlzLmgKaW5kZXggYzdkZjhhYS4uYjM5 MTdlMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29k ZXJfcGh5cy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVy X3BoeXMuaApAQCAtMTE0LDggKzExNCw2IEBAIHN0cnVjdCBkcHVfZW5jb2Rlcl92aXJ0X29wcyB7 CiAgKiBAaGFuZGxlX3Bvc3Rfa2lja29mZjoJRG8gYW55IHdvcmsgbmVjZXNzYXJ5IHBvc3Qta2lj a29mZiB3b3JrCiAgKiBAdHJpZ2dlcl9zdGFydDoJCVByb2Nlc3Mgc3RhcnQgZXZlbnQgb24gcGh5 c2ljYWwgZW5jb2RlcgogICogQG5lZWRzX3NpbmdsZV9mbHVzaDoJCVdoZXRoZXIgZW5jb2RlciBz bGF2ZXMgbmVlZCB0byBiZSBmbHVzaGVkCi0gKiBAc2V0dXBfbWlzcjoJCVNldHMgdXAgTUlTUiwg ZW5hYmxlIGFuZCBkaXNhYmxlcyBiYXNlZCBvbiBzeXNmcwotICogQGNvbGxlY3RfbWlzcjoJCUNv bGxlY3RzIE1JU1IgZGF0YSBvbiBmcmFtZSB1cGRhdGUKICAqIEBod19yZXNldDoJCQlJc3N1ZSBI VyByZWNvdmVyeSBzdWNoIGFzIENUTCByZXNldCBhbmQgY2xlYXIKICAqCQkJCURQVV9FTkNfRVJS X05FRURTX0hXX1JFU0VUIHN0YXRlCiAgKiBAaXJxX2NvbnRyb2w6CQlIYW5kbGVyIHRvIGVuYWJs ZS9kaXNhYmxlIGFsbCB0aGUgZW5jb2RlciBJUlFzCkBAIC0xNTQsMTAgKzE1Miw2IEBAIHN0cnVj dCBkcHVfZW5jb2Rlcl9waHlzX29wcyB7CiAJdm9pZCAoKmhhbmRsZV9wb3N0X2tpY2tvZmYpKHN0 cnVjdCBkcHVfZW5jb2Rlcl9waHlzICpwaHlzX2VuYyk7CiAJdm9pZCAoKnRyaWdnZXJfc3RhcnQp KHN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzICpwaHlzX2VuYyk7CiAJYm9vbCAoKm5lZWRzX3Npbmds ZV9mbHVzaCkoc3RydWN0IGRwdV9lbmNvZGVyX3BoeXMgKnBoeXNfZW5jKTsKLQotCXZvaWQgKCpz ZXR1cF9taXNyKShzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5cyAqcGh5c19lbmNzLAotCQkJCWJvb2wg ZW5hYmxlLCB1MzIgZnJhbWVfY291bnQpOwotCXUzMiAoKmNvbGxlY3RfbWlzcikoc3RydWN0IGRw dV9lbmNvZGVyX3BoeXMgKnBoeXNfZW5jKTsKIAl2b2lkICgqaHdfcmVzZXQpKHN0cnVjdCBkcHVf ZW5jb2Rlcl9waHlzICpwaHlzX2VuYyk7CiAJdm9pZCAoKmlycV9jb250cm9sKShzdHJ1Y3QgZHB1 X2VuY29kZXJfcGh5cyAqcGh5cywgYm9vbCBlbmFibGUpOwogCXZvaWQgKCpwcmVwYXJlX2lkbGVf cGMpKHN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzICpwaHlzX2VuYyk7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlcl9waHlzX3ZpZC5jIGIvZHJpdmVy cy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXJfcGh5c192aWQuYwppbmRleCAxNGZj N2MyLi42ZmMzZDNmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9k cHVfZW5jb2Rlcl9waHlzX3ZpZC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUx L2RwdV9lbmNvZGVyX3BoeXNfdmlkLmMKQEAgLTc1NiwzMiArNzU2LDYgQEAgc3RhdGljIHZvaWQg ZHB1X2VuY29kZXJfcGh5c192aWRfaXJxX2NvbnRyb2woc3RydWN0IGRwdV9lbmNvZGVyX3BoeXMg KnBoeXNfZW5jLAogCX0KIH0KIAotc3RhdGljIHZvaWQgZHB1X2VuY29kZXJfcGh5c192aWRfc2V0 dXBfbWlzcihzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5cyAqcGh5c19lbmMsCi0JCQkJCQlib29sIGVu YWJsZSwgdTMyIGZyYW1lX2NvdW50KQotewotCXN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzX3ZpZCAq dmlkX2VuYzsKLQotCWlmICghcGh5c19lbmMpCi0JCXJldHVybjsKLQl2aWRfZW5jID0gdG9fZHB1 X2VuY29kZXJfcGh5c192aWQocGh5c19lbmMpOwotCi0JaWYgKHZpZF9lbmMtPmh3X2ludGYgJiYg dmlkX2VuYy0+aHdfaW50Zi0+b3BzLnNldHVwX21pc3IpCi0JCXZpZF9lbmMtPmh3X2ludGYtPm9w cy5zZXR1cF9taXNyKHZpZF9lbmMtPmh3X2ludGYsCi0JCQkJCQkJZW5hYmxlLCBmcmFtZV9jb3Vu dCk7Ci19Ci0KLXN0YXRpYyB1MzIgZHB1X2VuY29kZXJfcGh5c192aWRfY29sbGVjdF9taXNyKHN0 cnVjdCBkcHVfZW5jb2Rlcl9waHlzICpwaHlzX2VuYykKLXsKLQlzdHJ1Y3QgZHB1X2VuY29kZXJf cGh5c192aWQgKnZpZF9lbmM7Ci0KLQlpZiAoIXBoeXNfZW5jKQotCQlyZXR1cm4gMDsKLQl2aWRf ZW5jID0gdG9fZHB1X2VuY29kZXJfcGh5c192aWQocGh5c19lbmMpOwotCi0JcmV0dXJuIHZpZF9l bmMtPmh3X2ludGYgJiYgdmlkX2VuYy0+aHdfaW50Zi0+b3BzLmNvbGxlY3RfbWlzciA/Ci0JCXZp ZF9lbmMtPmh3X2ludGYtPm9wcy5jb2xsZWN0X21pc3IodmlkX2VuYy0+aHdfaW50ZikgOiAwOwot fQotCiBzdGF0aWMgaW50IGRwdV9lbmNvZGVyX3BoeXNfdmlkX2dldF9saW5lX2NvdW50KAogCQlz dHJ1Y3QgZHB1X2VuY29kZXJfcGh5cyAqcGh5c19lbmMpCiB7CkBAIC04MTcsOCArNzkxLDYgQEAg c3RhdGljIHZvaWQgZHB1X2VuY29kZXJfcGh5c192aWRfaW5pdF9vcHMoc3RydWN0IGRwdV9lbmNv ZGVyX3BoeXNfb3BzICpvcHMpCiAJb3BzLT5wcmVwYXJlX2Zvcl9raWNrb2ZmID0gZHB1X2VuY29k ZXJfcGh5c192aWRfcHJlcGFyZV9mb3Jfa2lja29mZjsKIAlvcHMtPmhhbmRsZV9wb3N0X2tpY2tv ZmYgPSBkcHVfZW5jb2Rlcl9waHlzX3ZpZF9oYW5kbGVfcG9zdF9raWNrb2ZmOwogCW9wcy0+bmVl ZHNfc2luZ2xlX2ZsdXNoID0gZHB1X2VuY29kZXJfcGh5c192aWRfbmVlZHNfc2luZ2xlX2ZsdXNo OwotCW9wcy0+c2V0dXBfbWlzciA9IGRwdV9lbmNvZGVyX3BoeXNfdmlkX3NldHVwX21pc3I7Ci0J b3BzLT5jb2xsZWN0X21pc3IgPSBkcHVfZW5jb2Rlcl9waHlzX3ZpZF9jb2xsZWN0X21pc3I7CiAJ b3BzLT5od19yZXNldCA9IGRwdV9lbmNvZGVyX2hlbHBlcl9od19yZXNldDsKIAlvcHMtPmdldF9s aW5lX2NvdW50ID0gZHB1X2VuY29kZXJfcGh5c192aWRfZ2V0X2xpbmVfY291bnQ7CiB9CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdfaW50Zi5jIGIvZHJp dmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X2ludGYuYwppbmRleCBkMjgwZGY1Li45 YzZiYmEwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdf aW50Zi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od19pbnRmLmMK QEAgLTY1LDkgKzY1LDYgQEAKICNkZWZpbmUgICBJTlRGX0ZSQU1FX0NPVU5UICAgICAgICAgICAg ICAweDBBQwogI2RlZmluZSAgIElOVEZfTElORV9DT1VOVCAgICAgICAgICAgICAgIDB4MEIwCiAK LSNkZWZpbmUgSU5URl9NSVNSX0NUUkwJCQkweDE4MAotI2RlZmluZSBJTlRGX01JU1JfU0lHTkFU VVJFCQkweDE4NAotCiBzdGF0aWMgc3RydWN0IGRwdV9pbnRmX2NmZyAqX2ludGZfb2Zmc2V0KGVu dW0gZHB1X2ludGYgaW50ZiwKIAkJc3RydWN0IGRwdV9tZHNzX2NmZyAqbSwKIAkJdm9pZCBfX2lv bWVtICphZGRyLApAQCAtMjQ2LDMwICsyNDMsNiBAQCBzdGF0aWMgdm9pZCBkcHVfaHdfaW50Zl9n ZXRfc3RhdHVzKAogCX0KIH0KIAotc3RhdGljIHZvaWQgZHB1X2h3X2ludGZfc2V0dXBfbWlzcihz dHJ1Y3QgZHB1X2h3X2ludGYgKmludGYsCi0JCQkJCQlib29sIGVuYWJsZSwgdTMyIGZyYW1lX2Nv dW50KQotewotCXN0cnVjdCBkcHVfaHdfYmxrX3JlZ19tYXAgKmMgPSAmaW50Zi0+aHc7Ci0JdTMy IGNvbmZpZyA9IDA7Ci0KLQlEUFVfUkVHX1dSSVRFKGMsIElOVEZfTUlTUl9DVFJMLCBNSVNSX0NU UkxfU1RBVFVTX0NMRUFSKTsKLQkvKiBjbGVhciBtaXNyIGRhdGEgKi8KLQl3bWIoKTsKLQotCWlm IChlbmFibGUpCi0JCWNvbmZpZyA9IChmcmFtZV9jb3VudCAmIE1JU1JfRlJBTUVfQ09VTlRfTUFT SykgfAotCQkJTUlTUl9DVFJMX0VOQUJMRSB8IElOVEZfTUlTUl9DVFJMX0ZSRUVfUlVOX01BU0s7 Ci0KLQlEUFVfUkVHX1dSSVRFKGMsIElOVEZfTUlTUl9DVFJMLCBjb25maWcpOwotfQotCi1zdGF0 aWMgdTMyIGRwdV9od19pbnRmX2NvbGxlY3RfbWlzcihzdHJ1Y3QgZHB1X2h3X2ludGYgKmludGYp Ci17Ci0Jc3RydWN0IGRwdV9od19ibGtfcmVnX21hcCAqYyA9ICZpbnRmLT5odzsKLQotCXJldHVy biBEUFVfUkVHX1JFQUQoYywgSU5URl9NSVNSX1NJR05BVFVSRSk7Ci19Ci0KIHN0YXRpYyB1MzIg ZHB1X2h3X2ludGZfZ2V0X2xpbmVfY291bnQoc3RydWN0IGRwdV9od19pbnRmICppbnRmKQogewog CXN0cnVjdCBkcHVfaHdfYmxrX3JlZ19tYXAgKmM7CkBAIC0yODksOCArMjYyLDYgQEAgc3RhdGlj IHZvaWQgX3NldHVwX2ludGZfb3BzKHN0cnVjdCBkcHVfaHdfaW50Zl9vcHMgKm9wcywKIAlvcHMt PnNldHVwX3ByZ19mZXRjaCAgPSBkcHVfaHdfaW50Zl9zZXR1cF9wcmdfZmV0Y2g7CiAJb3BzLT5n ZXRfc3RhdHVzID0gZHB1X2h3X2ludGZfZ2V0X3N0YXR1czsKIAlvcHMtPmVuYWJsZV90aW1pbmcg PSBkcHVfaHdfaW50Zl9lbmFibGVfdGltaW5nX2VuZ2luZTsKLQlvcHMtPnNldHVwX21pc3IgPSBk cHVfaHdfaW50Zl9zZXR1cF9taXNyOwotCW9wcy0+Y29sbGVjdF9taXNyID0gZHB1X2h3X2ludGZf Y29sbGVjdF9taXNyOwogCW9wcy0+Z2V0X2xpbmVfY291bnQgPSBkcHVfaHdfaW50Zl9nZXRfbGlu ZV9jb3VudDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEv ZHB1X2h3X2ludGYuaCBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od19pbnRm LmgKaW5kZXggYTc5ZDczNS4uM2I3N2RmNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21z bS9kaXNwL2RwdTEvZHB1X2h3X2ludGYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3Av ZHB1MS9kcHVfaHdfaW50Zi5oCkBAIC01OSw4ICs1OSw2IEBAIHN0cnVjdCBpbnRmX3N0YXR1cyB7 CiAgKiBAIHNldHVwX3Byb2dfZmV0Y2ggOiBlbmFibGVzL2Rpc2FibGVzIHRoZSBwcm9ncmFtbWFi bGUgZmV0Y2ggbG9naWMKICAqIEAgZW5hYmxlX3RpbWluZzogZW5hYmxlL2Rpc2FibGUgdGltaW5n IGVuZ2luZQogICogQCBnZXRfc3RhdHVzOiByZXR1cm5zIGlmIHRpbWluZyBlbmdpbmUgaXMgZW5h YmxlZCBvciBub3QKLSAqIEAgc2V0dXBfbWlzcjogZW5hYmxlcy9kaXNhYmxlcyBNSVNSIGluIEhX IHJlZ2lzdGVyCi0gKiBAIGNvbGxlY3RfbWlzcjogcmVhZHMgYW5kIHN0b3JlcyBNSVNSIGRhdGEg ZnJvbSBIVyByZWdpc3RlcgogICogQCBnZXRfbGluZV9jb3VudDogcmVhZHMgY3VycmVudCB2ZXJ0 aWNhbCBsaW5lIGNvdW50ZXIKICAqLwogc3RydWN0IGRwdV9od19pbnRmX29wcyB7CkBAIC03Nywx MSArNzUsNiBAQCBzdHJ1Y3QgZHB1X2h3X2ludGZfb3BzIHsKIAl2b2lkICgqZ2V0X3N0YXR1cyko c3RydWN0IGRwdV9od19pbnRmICppbnRmLAogCQkJc3RydWN0IGludGZfc3RhdHVzICpzdGF0dXMp OwogCi0Jdm9pZCAoKnNldHVwX21pc3IpKHN0cnVjdCBkcHVfaHdfaW50ZiAqaW50ZiwKLQkJCWJv b2wgZW5hYmxlLCB1MzIgZnJhbWVfY291bnQpOwotCi0JdTMyICgqY29sbGVjdF9taXNyKShzdHJ1 Y3QgZHB1X2h3X2ludGYgKmludGYpOwotCiAJdTMyICgqZ2V0X2xpbmVfY291bnQpKHN0cnVjdCBk cHVfaHdfaW50ZiAqaW50Zik7CiB9OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNt L2Rpc3AvZHB1MS9kcHVfaHdfbG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2Rw dV9od19sbS5jCmluZGV4IDRhYjcyYjAuLmFjYjhkYzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od19sbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20v ZGlzcC9kcHUxL2RwdV9od19sbS5jCkBAIC0zNCw5ICszNCw2IEBACiAjZGVmaW5lIExNX0JMRU5E MF9GR19BTFBIQSAgICAgICAgICAgICAgIDB4MDQKICNkZWZpbmUgTE1fQkxFTkQwX0JHX0FMUEhB ICAgICAgICAgICAgICAgMHgwOAogCi0jZGVmaW5lIExNX01JU1JfQ1RSTAkJCTB4MzEwCi0jZGVm aW5lIExNX01JU1JfU0lHTkFUVVJFCQkweDMxNAotCiBzdGF0aWMgc3RydWN0IGRwdV9sbV9jZmcg Kl9sbV9vZmZzZXQoZW51bSBkcHVfbG0gbWl4ZXIsCiAJCXN0cnVjdCBkcHVfbWRzc19jZmcgKm0s CiAJCXZvaWQgX19pb21lbSAqYWRkciwKQEAgLTE3MSwzMCArMTY4LDYgQEAgc3RhdGljIHZvaWQg ZHB1X2h3X2xtX2djKHN0cnVjdCBkcHVfaHdfbWl4ZXIgKm1peGVyLAogewogfQogCi1zdGF0aWMg dm9pZCBkcHVfaHdfbG1fc2V0dXBfbWlzcihzdHJ1Y3QgZHB1X2h3X21peGVyICpjdHgsCi0JCQkJ Ym9vbCBlbmFibGUsIHUzMiBmcmFtZV9jb3VudCkKLXsKLQlzdHJ1Y3QgZHB1X2h3X2Jsa19yZWdf bWFwICpjID0gJmN0eC0+aHc7Ci0JdTMyIGNvbmZpZyA9IDA7Ci0KLQlEUFVfUkVHX1dSSVRFKGMs IExNX01JU1JfQ1RSTCwgTUlTUl9DVFJMX1NUQVRVU19DTEVBUik7Ci0JLyogY2xlYXIgbWlzciBk YXRhICovCi0Jd21iKCk7Ci0KLQlpZiAoZW5hYmxlKQotCQljb25maWcgPSAoZnJhbWVfY291bnQg JiBNSVNSX0ZSQU1FX0NPVU5UX01BU0spIHwKLQkJCU1JU1JfQ1RSTF9FTkFCTEUgfCBJTlRGX01J U1JfQ1RSTF9GUkVFX1JVTl9NQVNLOwotCi0JRFBVX1JFR19XUklURShjLCBMTV9NSVNSX0NUUkws IGNvbmZpZyk7Ci19Ci0KLXN0YXRpYyB1MzIgZHB1X2h3X2xtX2NvbGxlY3RfbWlzcihzdHJ1Y3Qg ZHB1X2h3X21peGVyICpjdHgpCi17Ci0Jc3RydWN0IGRwdV9od19ibGtfcmVnX21hcCAqYyA9ICZj dHgtPmh3OwotCi0JcmV0dXJuIERQVV9SRUdfUkVBRChjLCBMTV9NSVNSX1NJR05BVFVSRSk7Ci19 Ci0KIHN0YXRpYyB2b2lkIF9zZXR1cF9taXhlcl9vcHMoc3RydWN0IGRwdV9tZHNzX2NmZyAqbSwK IAkJc3RydWN0IGRwdV9od19sbV9vcHMgKm9wcywKIAkJdW5zaWduZWQgbG9uZyBmZWF0dXJlcykK QEAgLTIwNyw4ICsxODAsNiBAQCBzdGF0aWMgdm9pZCBfc2V0dXBfbWl4ZXJfb3BzKHN0cnVjdCBk cHVfbWRzc19jZmcgKm0sCiAJb3BzLT5zZXR1cF9hbHBoYV9vdXQgPSBkcHVfaHdfbG1fc2V0dXBf Y29sb3IzOwogCW9wcy0+c2V0dXBfYm9yZGVyX2NvbG9yID0gZHB1X2h3X2xtX3NldHVwX2JvcmRl cl9jb2xvcjsKIAlvcHMtPnNldHVwX2djID0gZHB1X2h3X2xtX2djOwotCW9wcy0+c2V0dXBfbWlz ciA9IGRwdV9od19sbV9zZXR1cF9taXNyOwotCW9wcy0+Y29sbGVjdF9taXNyID0gZHB1X2h3X2xt X2NvbGxlY3RfbWlzcjsKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgZHB1X2h3X2Jsa19vcHMgZHB1X2h3 X29wcyA9IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9o d19sbS5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X2xtLmgKaW5kZXgg ZTI5ZTVkYS4uNWIwMzZhYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2Rw dTEvZHB1X2h3X2xtLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3 X2xtLmgKQEAgLTY2LDEzICs2Niw2IEBAIHN0cnVjdCBkcHVfaHdfbG1fb3BzIHsKIAkgKi8KIAl2 b2lkICgqc2V0dXBfZ2MpKHN0cnVjdCBkcHVfaHdfbWl4ZXIgKm1peGVyLAogCQkJdm9pZCAqY2Zn KTsKLQotCS8qIHNldHVwX21pc3I6IGVuYWJsZXMvZGlzYWJsZXMgTUlTUiBpbiBIVyByZWdpc3Rl ciAqLwotCXZvaWQgKCpzZXR1cF9taXNyKShzdHJ1Y3QgZHB1X2h3X21peGVyICpjdHgsCi0JCQli b29sIGVuYWJsZSwgdTMyIGZyYW1lX2NvdW50KTsKLQotCS8qIGNvbGxlY3RfbWlzcjogcmVhZHMg YW5kIHN0b3JlcyBNSVNSIGRhdGEgZnJvbSBIVyByZWdpc3RlciAqLwotCXUzMiAoKmNvbGxlY3Rf bWlzcikoc3RydWN0IGRwdV9od19taXhlciAqY3R4KTsKIH07CiAKIHN0cnVjdCBkcHVfaHdfbWl4 ZXIgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X3V0 aWwuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od191dGlsLmMKaW5kZXgg NGNhYmFlNC4uY2I1YzAxNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2Rw dTEvZHB1X2h3X3V0aWwuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVf aHdfdXRpbC5jCkBAIC01MCw5ICs1MCw2IEBACiAjZGVmaW5lIFFTRUVEM19DTEtfQ1RSTDAgICAg ICAgICAgICAgICAgICAgMHg1NAogI2RlZmluZSBRU0VFRDNfQ0xLX0NUUkwxICAgICAgICAgICAg ICAgICAgIDB4NTgKICNkZWZpbmUgUVNFRUQzX0NMS19TVEFUVVMgICAgICAgICAgICAgICAgICAw eDVDCi0jZGVmaW5lIFFTRUVEM19NSVNSX0NUUkwgICAgICAgICAgICAgICAgICAgMHg3MAotI2Rl ZmluZSBRU0VFRDNfTUlTUl9TSUdOQVRVUkVfMCAgICAgICAgICAgIDB4NzQKLSNkZWZpbmUgUVNF RUQzX01JU1JfU0lHTkFUVVJFXzEgICAgICAgICAgICAweDc4CiAjZGVmaW5lIFFTRUVEM19QSEFT RV9JTklUX1lfSCAgICAgICAgICAgICAgMHg5MAogI2RlZmluZSBRU0VFRDNfUEhBU0VfSU5JVF9Z X1YgICAgICAgICAgICAgIDB4OTQKICNkZWZpbmUgUVNFRUQzX1BIQVNFX0lOSVRfVVZfSCAgICAg ICAgICAgICAweDk4CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9k cHVfaHdfdXRpbC5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X3V0aWwu aAppbmRleCAxMjQwZjUwLi5jYjAyMDQxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNt L2Rpc3AvZHB1MS9kcHVfaHdfdXRpbC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9k cHUxL2RwdV9od191dGlsLmgKQEAgLTMyNSwxMiArMzI1LDYgQEAgdm9pZCBkcHVfcmVnX3dyaXRl KHN0cnVjdCBkcHVfaHdfYmxrX3JlZ19tYXAgKmMsCiAjZGVmaW5lIERQVV9SRUdfV1JJVEUoYywg b2ZmLCB2YWwpIGRwdV9yZWdfd3JpdGUoYywgb2ZmLCB2YWwsICNvZmYpCiAjZGVmaW5lIERQVV9S RUdfUkVBRChjLCBvZmYpIGRwdV9yZWdfcmVhZChjLCBvZmYpCiAKLSNkZWZpbmUgTUlTUl9GUkFN RV9DT1VOVF9NQVNLCQkweEZGCi0jZGVmaW5lIE1JU1JfQ1RSTF9FTkFCTEUJCUJJVCg4KQotI2Rl ZmluZSBNSVNSX0NUUkxfU1RBVFVTCQlCSVQoOSkKLSNkZWZpbmUgTUlTUl9DVFJMX1NUQVRVU19D TEVBUgkJQklUKDEwKQotI2RlZmluZSBJTlRGX01JU1JfQ1RSTF9GUkVFX1JVTl9NQVNLCUJJVCgz MSkKLQogdm9pZCAqZHB1X2h3X3V0aWxfZ2V0X2Rpcih2b2lkKTsKIAogdm9pZCBkcHVfaHdfc2V0 dXBfc2NhbGVyMyhzdHJ1Y3QgZHB1X2h3X2Jsa19yZWdfbWFwICpjLAotLSAKVGhlIFF1YWxjb21t IElubm92YXRpb24gQ2VudGVyLCBJbmMuIGlzIGEgbWVtYmVyIG9mIHRoZSBDb2RlIEF1cm9yYSBG b3J1bSwKYSBMaW51eCBGb3VuZGF0aW9uIENvbGxhYm9yYXRpdmUgUHJvamVjdAoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcg bGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==