From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jordan Crouse Subject: [PATCH 09/11] drm/msm/dpu: Cleanup the debugfs functions Date: Mon, 5 Nov 2018 16:31:01 -0700 Message-ID: <20181105233103.7657-10-jcrouse@codeaurora.org> References: <20181105233103.7657-1-jcrouse@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181105233103.7657-1-jcrouse-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: freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, bzwang-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, abhinavk-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, sam-uyr5N9Q2VtJg9hUCZPvPmw@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org RG8gc29tZSBkZWJ1Z2ZzIGNsZWFudXBzIGZyb20gYWNyb3NzIHRoZSBEUFUgZHJpdmVyLiBUaGUg RFJNCmRlc3Ryb3kgZnVuY3Rpb25zIHdpbGwgZG8gYSByZWN1cnNpdmUgZGVsZXRlIG9uIHRoZSBl bnRpcmUKZGVidWdmcyBub2RlIHNvIHRoZXJlIGlzIG5vIG5lZWQgdG8gc3RvcmUgZGVudHJ5IHBv aW50ZXJzIGZvcgp0aGUgZGVidWdmcyBmaWxlcyB0aGF0IGFyZSBwZXJzaXN0ZW50IGZvciB0aGUg bGlmZSBvZiB0aGUKZHJpdmVyLiBUaGlzIGFsc28gbWVhbnMgdGhhdCB0aGUgZGVzdHJveSBmdW5j dGlvbnMgY2FuIGdvCmF3YXkgdG9vLgoKQWxzbywgdXNlIHN0YW5kYXJkIEFQSSBmdW5jdGlvbnMg d2hlcmUgYXBwbGljYWJsZSBpbnN0ZWFkIG9mCnVzaW5nIGhhbmQgd3JpdHRlbiBjb2RlLgoKdjI6 IEFkZCBtb3JlIGNvZGU7IG1vc3Qgb2YgdGhlIGRwdSBkZWJ1Z2ZzIGZpbGVzIHNob3VsZCBiZQph ZGRyZXNzZWQgbm93LgoKU2lnbmVkLW9mZi1ieTogSm9yZGFuIENyb3VzZSA8amNyb3VzZUBjb2Rl YXVyb3JhLm9yZz4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY29yZV9p cnEuYyAgfCAgMzAgKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jb3Jl X2lycS5oICB8ICAgOSArLQogZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NvcmVf cGVyZi5jIHwgMTA1ICsrKysrLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL21zbS9kaXNw L2RwdTEvZHB1X2NvcmVfcGVyZi5oIHwgICA3ICstCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3Av ZHB1MS9kcHVfY3J0Yy5jICAgICAgfCAgMzAgKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlz cC9kcHUxL2RwdV9lbmNvZGVyLmMgICB8ICAzMSArLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20v ZGlzcC9kcHUxL2RwdV9rbXMuYyAgICAgICB8IDEwNCArKysrLS0tLS0tLS0tLS0tLQogZHJpdmVy cy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2ttcy5oICAgICAgIHwgICA2IC0KIGRyaXZlcnMv Z3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9tZHNzLmMgICAgICB8ICAgMyArLQogZHJpdmVycy9n cHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3BsYW5lLmMgICAgIHwgIDkwICsrKy0tLS0tLS0tLS0t LQogZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3ZiaWYuYyAgICAgIHwgIDI0ICsr LS0KIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV92YmlmLmggICAgICB8ICAxNSAr LS0KIDEyIGZpbGVzIGNoYW5nZWQsIDkzIGluc2VydGlvbnMoKyksIDM2MSBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY29yZV9pcnEu YyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jb3JlX2lycS5jCmluZGV4IGY2 NjA3MGNiMmY0Mi4uZjE4OGM3OGRkNzM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNt L2Rpc3AvZHB1MS9kcHVfY29yZV9pcnEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3Av ZHB1MS9kcHVfY29yZV9pcnEuYwpAQCAtMzA3LDEwICszMDcsOCBAQCBzdGF0aWMgaW50IGRwdV9k ZWJ1Z2ZzX2NvcmVfaXJxX3Nob3coc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICp2KQogCXVuc2ln bmVkIGxvbmcgaXJxX2ZsYWdzOwogCWludCBpLCBpcnFfY291bnQsIGVuYWJsZV9jb3VudCwgY2Jf Y291bnQ7CiAKLQlpZiAoIWlycV9vYmogfHwgIWlycV9vYmotPmVuYWJsZV9jb3VudHMgfHwgIWly cV9vYmotPmlycV9jYl90YmwpIHsKLQkJRFBVX0VSUk9SKCJpbnZhbGlkIHBhcmFtZXRlcnNcbiIp OworCWlmIChXQVJOX09OKCFpcnFfb2JqLT5lbmFibGVfY291bnRzIHx8ICFpcnFfb2JqLT5pcnFf Y2JfdGJsKSkKIAkJcmV0dXJuIDA7Ci0JfQogCiAJZm9yIChpID0gMDsgaSA8IGlycV9vYmotPnRv dGFsX2lycXM7IGkrKykgewogCQlzcGluX2xvY2tfaXJxc2F2ZSgmaXJxX29iai0+Y2JfbG9jaywg aXJxX2ZsYWdzKTsKQEAgLTMzMSwzMSArMzI5LDExIEBAIHN0YXRpYyBpbnQgZHB1X2RlYnVnZnNf Y29yZV9pcnFfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKnYpCiAKIERFRklORV9TSE9X X0FUVFJJQlVURShkcHVfZGVidWdmc19jb3JlX2lycSk7CiAKLWludCBkcHVfZGVidWdmc19jb3Jl X2lycV9pbml0KHN0cnVjdCBkcHVfa21zICpkcHVfa21zLAotCQlzdHJ1Y3QgZGVudHJ5ICpwYXJl bnQpCi17Ci0JZHB1X2ttcy0+aXJxX29iai5kZWJ1Z2ZzX2ZpbGUgPSBkZWJ1Z2ZzX2NyZWF0ZV9m aWxlKCJjb3JlX2lycSIsIDA2MDAsCi0JCQlwYXJlbnQsICZkcHVfa21zLT5pcnFfb2JqLAotCQkJ JmRwdV9kZWJ1Z2ZzX2NvcmVfaXJxX2ZvcHMpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXZvaWQgZHB1 X2RlYnVnZnNfY29yZV9pcnFfZGVzdHJveShzdHJ1Y3QgZHB1X2ttcyAqZHB1X2ttcykKLXsKLQlk ZWJ1Z2ZzX3JlbW92ZShkcHVfa21zLT5pcnFfb2JqLmRlYnVnZnNfZmlsZSk7Ci0JZHB1X2ttcy0+ aXJxX29iai5kZWJ1Z2ZzX2ZpbGUgPSBOVUxMOwotfQotCi0jZWxzZQotaW50IGRwdV9kZWJ1Z2Zz X2NvcmVfaXJxX2luaXQoc3RydWN0IGRwdV9rbXMgKmRwdV9rbXMsCit2b2lkIGRwdV9kZWJ1Z2Zz X2NvcmVfaXJxX2luaXQoc3RydWN0IGRwdV9rbXMgKmRwdV9rbXMsCiAJCXN0cnVjdCBkZW50cnkg KnBhcmVudCkKIHsKLQlyZXR1cm4gMDsKLX0KLQotdm9pZCBkcHVfZGVidWdmc19jb3JlX2lycV9k ZXN0cm95KHN0cnVjdCBkcHVfa21zICpkcHVfa21zKQoteworCWRlYnVnZnNfY3JlYXRlX2ZpbGUo ImNvcmVfaXJxIiwgMDYwMCwgcGFyZW50LCAmZHB1X2ttcy0+aXJxX29iaiwKKwkJJmRwdV9kZWJ1 Z2ZzX2NvcmVfaXJxX2ZvcHMpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jb3JlX2lycS5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9k aXNwL2RwdTEvZHB1X2NvcmVfaXJxLmgKaW5kZXggODg0Zjc3ZmEzZWI2Li5lOTAxNWEyYjIzZmUg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jb3JlX2lycS5o CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jb3JlX2lycS5oCkBAIC0x MzIsMTUgKzEzMiw4IEBAIGludCBkcHVfY29yZV9pcnFfdW5yZWdpc3Rlcl9jYWxsYmFjaygKICAq IGRwdV9kZWJ1Z2ZzX2NvcmVfaXJxX2luaXQgLSByZWdpc3RlciBjb3JlIGlycSBkZWJ1Z2ZzCiAg KiBAZHB1X2ttczogcG9pbnRlciB0byBrbXMKICAqIEBwYXJlbnQ6IGRlYnVnZnMgZGlyZWN0b3J5 IHJvb3QKLSAqIEBSZXR1cm46IDAgb24gc3VjY2VzcwogICovCi1pbnQgZHB1X2RlYnVnZnNfY29y ZV9pcnFfaW5pdChzdHJ1Y3QgZHB1X2ttcyAqZHB1X2ttcywKK3ZvaWQgZHB1X2RlYnVnZnNfY29y ZV9pcnFfaW5pdChzdHJ1Y3QgZHB1X2ttcyAqZHB1X2ttcywKIAkJc3RydWN0IGRlbnRyeSAqcGFy ZW50KTsKIAotLyoqCi0gKiBkcHVfZGVidWdmc19jb3JlX2lycV9kZXN0cm95IC0gZGVyZWdpc3Rl ciBjb3JlIGlycSBkZWJ1Z2ZzCi0gKiBAZHB1X2ttczogcG9pbnRlciB0byBrbXMKLSAqLwotdm9p ZCBkcHVfZGVidWdmc19jb3JlX2lycV9kZXN0cm95KHN0cnVjdCBkcHVfa21zICpkcHVfa21zKTsK LQogI2VuZGlmIC8qIF9fRFBVX0NPUkVfSVJRX0hfXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NvcmVfcGVyZi5jIGIvZHJpdmVycy9ncHUvZHJtL21z bS9kaXNwL2RwdTEvZHB1X2NvcmVfcGVyZi5jCmluZGV4IGU2OGNjYjdhODk4YS4uOGE3NjUzYTJm YzdhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY29yZV9w ZXJmLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NvcmVfcGVyZi5j CkBAIC0yNCw4ICsyNCw2IEBACiAjaW5jbHVkZSAiZHB1X2NydGMuaCIKICNpbmNsdWRlICJkcHVf Y29yZV9wZXJmLmgiCiAKLSNkZWZpbmUgRFBVX1BFUkZfTU9ERV9TVFJJTkdfU0laRQkxMjgKLQog LyoqCiAgKiBlbnVtIGRwdV9wZXJmX21vZGUgLSBwZXJmb3JtYW5jZSB0dW5pbmcgbW9kZQogICog QERQVV9QRVJGX01PREVfTk9STUFMOiBwZXJmb3JtYW5jZSBjb250cm9sbGVkIGJ5IHVzZXIgbW9k ZSBjbGllbnQKQEAgLTQ1MSwyNCArNDQ5LDE0IEBAIHN0YXRpYyBzc2l6ZV90IF9kcHVfY29yZV9w ZXJmX21vZGVfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJc3RydWN0IGRwdV9jb3JlX3BlcmYg KnBlcmYgPSBmaWxlLT5wcml2YXRlX2RhdGE7CiAJc3RydWN0IGRwdV9wZXJmX2NmZyAqY2ZnID0g JnBlcmYtPmNhdGFsb2ctPnBlcmY7CiAJdTMyIHBlcmZfbW9kZSA9IDA7Ci0JY2hhciBidWZbMTBd OwotCi0JaWYgKCFwZXJmKQotCQlyZXR1cm4gLUVOT0RFVjsKLQotCWlmIChjb3VudCA+PSBzaXpl b2YoYnVmKSkKLQkJcmV0dXJuIC1FRkFVTFQ7Ci0KLQlpZiAoY29weV9mcm9tX3VzZXIoYnVmLCB1 c2VyX2J1ZiwgY291bnQpKQotCQlyZXR1cm4gLUVGQVVMVDsKLQotCWJ1Zltjb3VudF0gPSAwOwkv KiBlbmQgb2Ygc3RyaW5nICovCisJaW50IHJldDsKIAotCWlmIChrc3RydG91aW50KGJ1ZiwgMCwg JnBlcmZfbW9kZSkpCi0JCXJldHVybiAtRUZBVUxUOworCXJldCA9IGtzdHJ0b3VpbnRfZnJvbV91 c2VyKHVzZXJfYnVmLCBjb3VudCwgMCwgJnBlcmZfbW9kZSk7CisJaWYgKHJldCkKKwkJcmV0dXJu IHJldDsKIAogCWlmIChwZXJmX21vZGUgPj0gRFBVX1BFUkZfTU9ERV9NQVgpCi0JCXJldHVybiAt RUZBVUxUOworCQlyZXR1cm4gLUVJTlZBTDsKIAogCWlmIChwZXJmX21vZGUgPT0gRFBVX1BFUkZf TU9ERV9GSVhFRCkgewogCQlEUk1fSU5GTygiZml4IHBlcmZvcm1hbmNlIG1vZGVcbiIpOwpAQCAt NDkzLDI5ICs0ODEsMTYgQEAgc3RhdGljIHNzaXplX3QgX2RwdV9jb3JlX3BlcmZfbW9kZV9yZWFk KHN0cnVjdCBmaWxlICpmaWxlLAogCQkJY2hhciBfX3VzZXIgKmJ1ZmYsIHNpemVfdCBjb3VudCwg bG9mZl90ICpwcG9zKQogewogCXN0cnVjdCBkcHVfY29yZV9wZXJmICpwZXJmID0gZmlsZS0+cHJp dmF0ZV9kYXRhOwotCWludCBsZW4gPSAwOwotCWNoYXIgYnVmW0RQVV9QRVJGX01PREVfU1RSSU5H X1NJWkVdID0geydcMCd9OworCWludCBsZW47CisJY2hhciBidWZbMTI4XTsKIAotCWlmICghcGVy ZikKLQkJcmV0dXJuIC1FTk9ERVY7Ci0KLQlpZiAoKnBwb3MpCi0JCXJldHVybiAwOwkvKiB0aGUg ZW5kICovCi0KLQlsZW4gPSBzbnByaW50ZihidWYsIHNpemVvZihidWYpLAorCWxlbiA9IHNjbnBy aW50ZihidWYsIHNpemVvZihidWYpLAogCQkJIm1vZGUgJWQgbWluX21kcF9jbGsgJWxsdSBtaW5f YnVzX3ZvdGUgJWxsdVxuIiwKIAkJCXBlcmYtPnBlcmZfdHVuZS5tb2RlLAogCQkJcGVyZi0+cGVy Zl90dW5lLm1pbl9jb3JlX2NsaywKIAkJCXBlcmYtPnBlcmZfdHVuZS5taW5fYnVzX3ZvdGUpOwot CWlmIChsZW4gPCAwIHx8IGxlbiA+PSBzaXplb2YoYnVmKSkKLQkJcmV0dXJuIDA7Ci0KLQlpZiAo KGNvdW50IDwgc2l6ZW9mKGJ1ZikpIHx8IGNvcHlfdG9fdXNlcihidWZmLCBidWYsIGxlbikpCi0J CXJldHVybiAtRUZBVUxUOwogCi0JKnBwb3MgKz0gbGVuOyAgIC8qIGluY3JlYXNlIG9mZnNldCAq LwotCi0JcmV0dXJuIGxlbjsKKwlyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIoYnVmZiwg Y291bnQsIHBwb3MsIGJ1ZiwgbGVuKTsKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29w ZXJhdGlvbnMgZHB1X2NvcmVfcGVyZl9tb2RlX2ZvcHMgPSB7CkBAIC01MjQsNzAgKzQ5OSw0MyBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBkcHVfY29yZV9wZXJmX21vZGVf Zm9wcyA9IHsKIAkud3JpdGUgPSBfZHB1X2NvcmVfcGVyZl9tb2RlX3dyaXRlLAogfTsKIAotc3Rh dGljIHZvaWQgZHB1X2NvcmVfcGVyZl9kZWJ1Z2ZzX2Rlc3Ryb3koc3RydWN0IGRwdV9jb3JlX3Bl cmYgKnBlcmYpCi17Ci0JZGVidWdmc19yZW1vdmVfcmVjdXJzaXZlKHBlcmYtPmRlYnVnZnNfcm9v dCk7Ci0JcGVyZi0+ZGVidWdmc19yb290ID0gTlVMTDsKLX0KLQotaW50IGRwdV9jb3JlX3BlcmZf ZGVidWdmc19pbml0KHN0cnVjdCBkcHVfY29yZV9wZXJmICpwZXJmLAotCQlzdHJ1Y3QgZGVudHJ5 ICpwYXJlbnQpCitpbnQgZHB1X2NvcmVfcGVyZl9kZWJ1Z2ZzX2luaXQoc3RydWN0IGRwdV9rbXMg KmRwdV9rbXMsIHN0cnVjdCBkZW50cnkgKnBhcmVudCkKIHsKKwlzdHJ1Y3QgZHB1X2NvcmVfcGVy ZiAqcGVyZiA9ICZkcHVfa21zLT5wZXJmOwogCXN0cnVjdCBkcHVfbWRzc19jZmcgKmNhdGFsb2cg PSBwZXJmLT5jYXRhbG9nOwotCXN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXY7Ci0Jc3RydWN0 IGRwdV9rbXMgKmRwdV9rbXM7Ci0KLQlwcml2ID0gcGVyZi0+ZGV2LT5kZXZfcHJpdmF0ZTsKLQlp ZiAoIXByaXYgfHwgIXByaXYtPmttcykgewotCQlEUFVfRVJST1IoImludmFsaWQgS01TIHJlZmVy ZW5jZVxuIik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWRwdV9rbXMgPSB0b19kcHVfa21z KHByaXYtPmttcyk7CisJc3RydWN0IGRlbnRyeSAqZW50cnk7CiAKLQlwZXJmLT5kZWJ1Z2ZzX3Jv b3QgPSBkZWJ1Z2ZzX2NyZWF0ZV9kaXIoImNvcmVfcGVyZiIsIHBhcmVudCk7Ci0JaWYgKCFwZXJm LT5kZWJ1Z2ZzX3Jvb3QpIHsKLQkJRFBVX0VSUk9SKCJmYWlsZWQgdG8gY3JlYXRlIGNvcmUgcGVy ZiBkZWJ1Z2ZzXG4iKTsKKwllbnRyeSA9IGRlYnVnZnNfY3JlYXRlX2RpcigiY29yZV9wZXJmIiwg cGFyZW50KTsKKwlpZiAoSVNfRVJSX09SX05VTEwoZW50cnkpKQogCQlyZXR1cm4gLUVJTlZBTDsK LQl9CiAKLQlkZWJ1Z2ZzX2NyZWF0ZV91NjQoIm1heF9jb3JlX2Nsa19yYXRlIiwgMDYwMCwgcGVy Zi0+ZGVidWdmc19yb290LAorCWRlYnVnZnNfY3JlYXRlX3U2NCgibWF4X2NvcmVfY2xrX3JhdGUi LCAwNjAwLCBlbnRyeSwKIAkJCSZwZXJmLT5tYXhfY29yZV9jbGtfcmF0ZSk7Ci0JZGVidWdmc19j cmVhdGVfdTY0KCJjb3JlX2Nsa19yYXRlIiwgMDYwMCwgcGVyZi0+ZGVidWdmc19yb290LAorCWRl YnVnZnNfY3JlYXRlX3U2NCgiY29yZV9jbGtfcmF0ZSIsIDA2MDAsIGVudHJ5LAogCQkJJnBlcmYt PmNvcmVfY2xrX3JhdGUpOwotCWRlYnVnZnNfY3JlYXRlX3UzMigiZW5hYmxlX2J3X3JlbGVhc2Ui LCAwNjAwLCBwZXJmLT5kZWJ1Z2ZzX3Jvb3QsCisJZGVidWdmc19jcmVhdGVfdTMyKCJlbmFibGVf YndfcmVsZWFzZSIsIDA2MDAsIGVudHJ5LAogCQkJKHUzMiAqKSZwZXJmLT5lbmFibGVfYndfcmVs ZWFzZSk7Ci0JZGVidWdmc19jcmVhdGVfdTMyKCJ0aHJlc2hvbGRfbG93IiwgMDYwMCwgcGVyZi0+ ZGVidWdmc19yb290LAorCWRlYnVnZnNfY3JlYXRlX3UzMigidGhyZXNob2xkX2xvdyIsIDA2MDAs IGVudHJ5LAogCQkJKHUzMiAqKSZjYXRhbG9nLT5wZXJmLm1heF9id19sb3cpOwotCWRlYnVnZnNf Y3JlYXRlX3UzMigidGhyZXNob2xkX2hpZ2giLCAwNjAwLCBwZXJmLT5kZWJ1Z2ZzX3Jvb3QsCisJ ZGVidWdmc19jcmVhdGVfdTMyKCJ0aHJlc2hvbGRfaGlnaCIsIDA2MDAsIGVudHJ5LAogCQkJKHUz MiAqKSZjYXRhbG9nLT5wZXJmLm1heF9id19oaWdoKTsKLQlkZWJ1Z2ZzX2NyZWF0ZV91MzIoIm1p bl9jb3JlX2liIiwgMDYwMCwgcGVyZi0+ZGVidWdmc19yb290LAorCWRlYnVnZnNfY3JlYXRlX3Uz MigibWluX2NvcmVfaWIiLCAwNjAwLCBlbnRyeSwKIAkJCSh1MzIgKikmY2F0YWxvZy0+cGVyZi5t aW5fY29yZV9pYik7Ci0JZGVidWdmc19jcmVhdGVfdTMyKCJtaW5fbGxjY19pYiIsIDA2MDAsIHBl cmYtPmRlYnVnZnNfcm9vdCwKKwlkZWJ1Z2ZzX2NyZWF0ZV91MzIoIm1pbl9sbGNjX2liIiwgMDYw MCwgZW50cnksCiAJCQkodTMyICopJmNhdGFsb2ctPnBlcmYubWluX2xsY2NfaWIpOwotCWRlYnVn ZnNfY3JlYXRlX3UzMigibWluX2RyYW1faWIiLCAwNjAwLCBwZXJmLT5kZWJ1Z2ZzX3Jvb3QsCisJ ZGVidWdmc19jcmVhdGVfdTMyKCJtaW5fZHJhbV9pYiIsIDA2MDAsIGVudHJ5LAogCQkJKHUzMiAq KSZjYXRhbG9nLT5wZXJmLm1pbl9kcmFtX2liKTsKLQlkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJwZXJm X21vZGUiLCAwNjAwLCBwZXJmLT5kZWJ1Z2ZzX3Jvb3QsCisJZGVidWdmc19jcmVhdGVfZmlsZSgi cGVyZl9tb2RlIiwgMDYwMCwgZW50cnksCiAJCQkodTMyICopcGVyZiwgJmRwdV9jb3JlX3BlcmZf bW9kZV9mb3BzKTsKLQlkZWJ1Z2ZzX2NyZWF0ZV91NjQoImZpeF9jb3JlX2Nsa19yYXRlIiwgMDYw MCwgcGVyZi0+ZGVidWdmc19yb290LAorCWRlYnVnZnNfY3JlYXRlX3U2NCgiZml4X2NvcmVfY2xr X3JhdGUiLCAwNjAwLCBlbnRyeSwKIAkJCSZwZXJmLT5maXhfY29yZV9jbGtfcmF0ZSk7Ci0JZGVi dWdmc19jcmVhdGVfdTY0KCJmaXhfY29yZV9pYl92b3RlIiwgMDYwMCwgcGVyZi0+ZGVidWdmc19y b290LAorCWRlYnVnZnNfY3JlYXRlX3U2NCgiZml4X2NvcmVfaWJfdm90ZSIsIDA2MDAsIGVudHJ5 LAogCQkJJnBlcmYtPmZpeF9jb3JlX2liX3ZvdGUpOwotCWRlYnVnZnNfY3JlYXRlX3U2NCgiZml4 X2NvcmVfYWJfdm90ZSIsIDA2MDAsIHBlcmYtPmRlYnVnZnNfcm9vdCwKKwlkZWJ1Z2ZzX2NyZWF0 ZV91NjQoImZpeF9jb3JlX2FiX3ZvdGUiLCAwNjAwLCBlbnRyeSwKIAkJCSZwZXJmLT5maXhfY29y ZV9hYl92b3RlKTsKIAogCXJldHVybiAwOwogfQotI2Vsc2UKLXN0YXRpYyB2b2lkIGRwdV9jb3Jl X3BlcmZfZGVidWdmc19kZXN0cm95KHN0cnVjdCBkcHVfY29yZV9wZXJmICpwZXJmKQotewotfQot Ci1pbnQgZHB1X2NvcmVfcGVyZl9kZWJ1Z2ZzX2luaXQoc3RydWN0IGRwdV9jb3JlX3BlcmYgKnBl cmYsCi0JCXN0cnVjdCBkZW50cnkgKnBhcmVudCkKLXsKLQlyZXR1cm4gMDsKLX0KICNlbmRpZgog CiB2b2lkIGRwdV9jb3JlX3BlcmZfZGVzdHJveShzdHJ1Y3QgZHB1X2NvcmVfcGVyZiAqcGVyZikK QEAgLTU5Nyw3ICs1NDUsNiBAQCB2b2lkIGRwdV9jb3JlX3BlcmZfZGVzdHJveShzdHJ1Y3QgZHB1 X2NvcmVfcGVyZiAqcGVyZikKIAkJcmV0dXJuOwogCX0KIAotCWRwdV9jb3JlX3BlcmZfZGVidWdm c19kZXN0cm95KHBlcmYpOwogCXBlcmYtPm1heF9jb3JlX2Nsa19yYXRlID0gMDsKIAlwZXJmLT5j b3JlX2NsayA9IE5VTEw7CiAJcGVyZi0+cGhhbmRsZSA9IE5VTEw7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY29yZV9wZXJmLmggYi9kcml2ZXJzL2dwdS9k cm0vbXNtL2Rpc3AvZHB1MS9kcHVfY29yZV9wZXJmLmgKaW5kZXggZmJjYmUwYzc1MjdhLi42Njhj YWM3MTczNmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9j b3JlX3BlcmYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY29yZV9w ZXJmLmgKQEAgLTEyMiwxMiArMTIyLDEzIEBAIGludCBkcHVfY29yZV9wZXJmX2luaXQoc3RydWN0 IGRwdV9jb3JlX3BlcmYgKnBlcmYsCiAJCXN0cnVjdCBkcHVfcG93ZXJfaGFuZGxlICpwaGFuZGxl LAogCQlzdHJ1Y3QgZHNzX2NsayAqY29yZV9jbGspOwogCitzdHJ1Y3QgZHB1X2ttczsKKwogLyoq CiAgKiBkcHVfY29yZV9wZXJmX2RlYnVnZnNfaW5pdCAtIGluaXRpYWxpemUgZGVidWdmcyBmb3Ig Y29yZSBwZXJmb3JtYW5jZSBjb250ZXh0Ci0gKiBAcGVyZjogUG9pbnRlciB0byBjb3JlIHBlcmZv cm1hbmNlIGNvbnRleHQKKyAqIEBkcHVfa21zOiBQb2ludGVyIHRvIHRoZSBkcHVfa21zIHN0cnVj dAogICogQGRlYnVnZnNfcGFyZW50OiBQb2ludGVyIHRvIHBhcmVudCBkZWJ1Z2ZzCiAgKi8KLWlu dCBkcHVfY29yZV9wZXJmX2RlYnVnZnNfaW5pdChzdHJ1Y3QgZHB1X2NvcmVfcGVyZiAqcGVyZiwK LQkJc3RydWN0IGRlbnRyeSAqcGFyZW50KTsKK2ludCBkcHVfY29yZV9wZXJmX2RlYnVnZnNfaW5p dChzdHJ1Y3QgZHB1X2ttcyAqZHB1X2ttcywgc3RydWN0IGRlbnRyeSAqcGFyZW50KTsKIAogI2Vu ZGlmIC8qIF9EUFVfQ09SRV9QRVJGX0hfICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v bXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEv ZHB1X2NydGMuYwppbmRleCAwMGIxOGJlZTI4N2EuLmVkY2M0NTgwZDQxYiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jCkBAIC0xMjQ2LDkgKzEyNDYsNiBAQCBzdGF0 aWMgaW50IGRwdV9jcnRjX2RlYnVnZnNfc3RhdHVzX3Nob3coc3RydWN0IHNlcV9maWxlICpzLCB2 b2lkICpkYXRhKQogCiAJaW50IGksIG91dF93aWR0aDsKIAotCWlmICghcyB8fCAhcy0+cHJpdmF0 ZSkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KIAlkcHVfY3J0YyA9IHMtPnByaXZhdGU7CiAJY3J0YyA9 ICZkcHVfY3J0Yy0+YmFzZTsKIApAQCAtMTM3OCwxNCArMTM3NSw3IEBAIERFRklORV9TSE9XX0FU VFJJQlVURShkcHVfY3J0Y19kZWJ1Z2ZzX3N0YXRlKTsKIAogc3RhdGljIGludCBfZHB1X2NydGNf aW5pdF9kZWJ1Z2ZzKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIHsKLQlzdHJ1Y3QgZHB1X2NydGMg KmRwdV9jcnRjOwotCXN0cnVjdCBkcHVfa21zICpkcHVfa21zOwotCi0JaWYgKCFjcnRjKQotCQly ZXR1cm4gLUVJTlZBTDsKLQlkcHVfY3J0YyA9IHRvX2RwdV9jcnRjKGNydGMpOwotCi0JZHB1X2tt cyA9IF9kcHVfY3J0Y19nZXRfa21zKGNydGMpOworCXN0cnVjdCBkcHVfY3J0YyAqZHB1X2NydGMg PSB0b19kcHVfY3J0YyhjcnRjKTsKIAogCWRwdV9jcnRjLT5kZWJ1Z2ZzX3Jvb3QgPSBkZWJ1Z2Zz X2NyZWF0ZV9kaXIoZHB1X2NydGMtPm5hbWUsCiAJCQljcnRjLT5kZXYtPnByaW1hcnktPmRlYnVn ZnNfcm9vdCk7CkBAIC0xNDAzLDI1ICsxMzkzLDExIEBAIHN0YXRpYyBpbnQgX2RwdV9jcnRjX2lu aXRfZGVidWdmcyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAKIAlyZXR1cm4gMDsKIH0KLQotc3Rh dGljIHZvaWQgX2RwdV9jcnRjX2Rlc3Ryb3lfZGVidWdmcyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMp Ci17Ci0Jc3RydWN0IGRwdV9jcnRjICpkcHVfY3J0YzsKLQotCWlmICghY3J0YykKLQkJcmV0dXJu OwotCWRwdV9jcnRjID0gdG9fZHB1X2NydGMoY3J0Yyk7Ci0JZGVidWdmc19yZW1vdmVfcmVjdXJz aXZlKGRwdV9jcnRjLT5kZWJ1Z2ZzX3Jvb3QpOwotfQogI2Vsc2UKIHN0YXRpYyBpbnQgX2RwdV9j cnRjX2luaXRfZGVidWdmcyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiB7CiAJcmV0dXJuIDA7CiB9 Ci0KLXN0YXRpYyB2b2lkIF9kcHVfY3J0Y19kZXN0cm95X2RlYnVnZnMoc3RydWN0IGRybV9jcnRj ICpjcnRjKQotewotfQogI2VuZGlmIC8qIENPTkZJR19ERUJVR19GUyAqLwogCiBzdGF0aWMgaW50 IGRwdV9jcnRjX2xhdGVfcmVnaXN0ZXIoc3RydWN0IGRybV9jcnRjICpjcnRjKQpAQCAtMTQzMSw3 ICsxNDA3LDkgQEAgc3RhdGljIGludCBkcHVfY3J0Y19sYXRlX3JlZ2lzdGVyKHN0cnVjdCBkcm1f Y3J0YyAqY3J0YykKIAogc3RhdGljIHZvaWQgZHB1X2NydGNfZWFybHlfdW5yZWdpc3RlcihzdHJ1 Y3QgZHJtX2NydGMgKmNydGMpCiB7Ci0JX2RwdV9jcnRjX2Rlc3Ryb3lfZGVidWdmcyhjcnRjKTsK KwlzdHJ1Y3QgZHB1X2NydGMgKmRwdV9jcnRjID0gdG9fZHB1X2NydGMoY3J0Yyk7CisKKwlkZWJ1 Z2ZzX3JlbW92ZV9yZWN1cnNpdmUoZHB1X2NydGMtPmRlYnVnZnNfcm9vdCk7CiB9CiAKIHN0YXRp YyBjb25zdCBzdHJ1Y3QgZHJtX2NydGNfZnVuY3MgZHB1X2NydGNfZnVuY3MgPSB7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5jIGIvZHJpdmVy cy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuYwppbmRleCA1NTU5ZTVkNDAxNDIu LjI4MTE4NjBmMjY4OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEv ZHB1X2VuY29kZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5j b2Rlci5jCkBAIC0xODM4LDE0ICsxODM4LDkgQEAgdm9pZCBkcHVfZW5jb2Rlcl9wcmVwYXJlX2Nv bW1pdChzdHJ1Y3QgZHJtX2VuY29kZXIgKmRybV9lbmMpCiAjaWZkZWYgQ09ORklHX0RFQlVHX0ZT CiBzdGF0aWMgaW50IGRwdV9lbmNvZGVyX3N0YXR1c19zaG93KHN0cnVjdCBzZXFfZmlsZSAqcywg dm9pZCAqZGF0YSkKIHsKLQlzdHJ1Y3QgZHB1X2VuY29kZXJfdmlydCAqZHB1X2VuYzsKKwlzdHJ1 Y3QgZHB1X2VuY29kZXJfdmlydCAqZHB1X2VuYyA9IHMtPnByaXZhdGU7CiAJaW50IGk7CiAKLQlp ZiAoIXMgfHwgIXMtPnByaXZhdGUpCi0JCXJldHVybiAtRUlOVkFMOwotCi0JZHB1X2VuYyA9IHMt PnByaXZhdGU7Ci0KIAltdXRleF9sb2NrKCZkcHVfZW5jLT5lbmNfbG9jayk7CiAJZm9yIChpID0g MDsgaSA8IGRwdV9lbmMtPm51bV9waHlzX2VuY3M7IGkrKykgewogCQlzdHJ1Y3QgZHB1X2VuY29k ZXJfcGh5cyAqcGh5cyA9IGRwdV9lbmMtPnBoeXNfZW5jc1tpXTsKQEAgLTE4NzksMTggKzE4NzQs MTcgQEAgREVGSU5FX1NIT1dfQVRUUklCVVRFKGRwdV9lbmNvZGVyX3N0YXR1cyk7CiAKIHN0YXRp YyBpbnQgX2RwdV9lbmNvZGVyX2luaXRfZGVidWdmcyhzdHJ1Y3QgZHJtX2VuY29kZXIgKmRybV9l bmMpCiB7Ci0Jc3RydWN0IGRwdV9lbmNvZGVyX3ZpcnQgKmRwdV9lbmM7CisJc3RydWN0IGRwdV9l bmNvZGVyX3ZpcnQgKmRwdV9lbmMgPSB0b19kcHVfZW5jb2Rlcl92aXJ0KGRybV9lbmMpOwogCXN0 cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXY7CiAJc3RydWN0IGRwdV9rbXMgKmRwdV9rbXM7CiAJ aW50IGk7CiAJY2hhciBuYW1lW0RQVV9OQU1FX1NJWkVdOwogCi0JaWYgKCFkcm1fZW5jIHx8ICFk cm1fZW5jLT5kZXYgfHwgIWRybV9lbmMtPmRldi0+ZGV2X3ByaXZhdGUpIHsKKwlpZiAoIWRybV9l bmMtPmRldiB8fCAhZHJtX2VuYy0+ZGV2LT5kZXZfcHJpdmF0ZSkgewogCQlEUFVfRVJST1IoImlu dmFsaWQgZW5jb2RlciBvciBrbXNcbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKLQlkcHVf ZW5jID0gdG9fZHB1X2VuY29kZXJfdmlydChkcm1fZW5jKTsKIAlwcml2ID0gZHJtX2VuYy0+ZGV2 LT5kZXZfcHJpdmF0ZTsKIAlkcHVfa21zID0gdG9fZHB1X2ttcyhwcml2LT5rbXMpOwogCkBAIC0x OTE1LDI2ICsxOTA5LDExIEBAIHN0YXRpYyBpbnQgX2RwdV9lbmNvZGVyX2luaXRfZGVidWdmcyhz dHJ1Y3QgZHJtX2VuY29kZXIgKmRybV9lbmMpCiAKIAlyZXR1cm4gMDsKIH0KLQotc3RhdGljIHZv aWQgX2RwdV9lbmNvZGVyX2Rlc3Ryb3lfZGVidWdmcyhzdHJ1Y3QgZHJtX2VuY29kZXIgKmRybV9l bmMpCi17Ci0Jc3RydWN0IGRwdV9lbmNvZGVyX3ZpcnQgKmRwdV9lbmM7Ci0KLQlpZiAoIWRybV9l bmMpCi0JCXJldHVybjsKLQotCWRwdV9lbmMgPSB0b19kcHVfZW5jb2Rlcl92aXJ0KGRybV9lbmMp OwotCWRlYnVnZnNfcmVtb3ZlX3JlY3Vyc2l2ZShkcHVfZW5jLT5kZWJ1Z2ZzX3Jvb3QpOwotfQog I2Vsc2UKIHN0YXRpYyBpbnQgX2RwdV9lbmNvZGVyX2luaXRfZGVidWdmcyhzdHJ1Y3QgZHJtX2Vu Y29kZXIgKmRybV9lbmMpCiB7CiAJcmV0dXJuIDA7CiB9Ci0KLXN0YXRpYyB2b2lkIF9kcHVfZW5j b2Rlcl9kZXN0cm95X2RlYnVnZnMoc3RydWN0IGRybV9lbmNvZGVyICpkcm1fZW5jKQotewotfQog I2VuZGlmCiAKIHN0YXRpYyBpbnQgZHB1X2VuY29kZXJfbGF0ZV9yZWdpc3RlcihzdHJ1Y3QgZHJt X2VuY29kZXIgKmVuY29kZXIpCkBAIC0xOTQ0LDcgKzE5MjMsOSBAQCBzdGF0aWMgaW50IGRwdV9l bmNvZGVyX2xhdGVfcmVnaXN0ZXIoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQogCiBzdGF0 aWMgdm9pZCBkcHVfZW5jb2Rlcl9lYXJseV91bnJlZ2lzdGVyKHN0cnVjdCBkcm1fZW5jb2RlciAq ZW5jb2RlcikKIHsKLQlfZHB1X2VuY29kZXJfZGVzdHJveV9kZWJ1Z2ZzKGVuY29kZXIpOworCXN0 cnVjdCBkcHVfZW5jb2Rlcl92aXJ0ICpkcHVfZW5jID0gdG9fZHB1X2VuY29kZXJfdmlydChlbmNv ZGVyKTsKKworCWRlYnVnZnNfcmVtb3ZlX3JlY3Vyc2l2ZShkcHVfZW5jLT5kZWJ1Z2ZzX3Jvb3Qp OwogfQogCiBzdGF0aWMgaW50IGRwdV9lbmNvZGVyX3ZpcnRfYWRkX3BoeXNfZW5jcygKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9rbXMuYyBiL2RyaXZlcnMv Z3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9rbXMuYwppbmRleCAyYTkxODgxMDQ4YzguLjNkMGM5 M2M0OTc2NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2tt cy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9rbXMuYwpAQCAtODEs NyArODEsNyBAQCBzdGF0aWMgaW50IF9kcHVfZGFuZ2VyX3NpZ25hbF9zdGF0dXMoc3RydWN0IHNl cV9maWxlICpzLAogCXN0cnVjdCBkcHVfZGFuZ2VyX3NhZmVfc3RhdHVzIHN0YXR1czsKIAlpbnQg aTsKIAotCWlmICgha21zIHx8ICFrbXMtPmRldiB8fCAha21zLT5kZXYtPmRldl9wcml2YXRlIHx8 ICFrbXMtPmh3X21kcCkgeworCWlmICgha21zLT5kZXYgfHwgIWttcy0+ZGV2LT5kZXZfcHJpdmF0 ZSB8fCAha21zLT5od19tZHApIHsKIAkJRFBVX0VSUk9SKCJpbnZhbGlkIGFyZyhzKVxuIik7CiAJ CXJldHVybiAwOwogCX0KQEAgLTEyNSw0NiArMTI1LDI5IEBAIHN0YXRpYyBpbnQgZHB1X2RlYnVn ZnNfc2FmZV9zdGF0c19zaG93KHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqdikKIH0KIERFRklO RV9TSE9XX0FUVFJJQlVURShkcHVfZGVidWdmc19zYWZlX3N0YXRzKTsKIAotc3RhdGljIHZvaWQg ZHB1X2RlYnVnZnNfZGFuZ2VyX2Rlc3Ryb3koc3RydWN0IGRwdV9rbXMgKmRwdV9rbXMpCi17Ci0J ZGVidWdmc19yZW1vdmVfcmVjdXJzaXZlKGRwdV9rbXMtPmRlYnVnZnNfZGFuZ2VyKTsKLQlkcHVf a21zLT5kZWJ1Z2ZzX2RhbmdlciA9IE5VTEw7Ci19Ci0KLXN0YXRpYyBpbnQgZHB1X2RlYnVnZnNf ZGFuZ2VyX2luaXQoc3RydWN0IGRwdV9rbXMgKmRwdV9rbXMsCitzdGF0aWMgdm9pZCBkcHVfZGVi dWdmc19kYW5nZXJfaW5pdChzdHJ1Y3QgZHB1X2ttcyAqZHB1X2ttcywKIAkJc3RydWN0IGRlbnRy eSAqcGFyZW50KQogewotCWRwdV9rbXMtPmRlYnVnZnNfZGFuZ2VyID0gZGVidWdmc19jcmVhdGVf ZGlyKCJkYW5nZXIiLAotCQkJcGFyZW50KTsKLQlpZiAoIWRwdV9rbXMtPmRlYnVnZnNfZGFuZ2Vy KSB7Ci0JCURQVV9FUlJPUigiZmFpbGVkIHRvIGNyZWF0ZSBkYW5nZXIgZGVidWdmc1xuIik7Ci0J CXJldHVybiAtRUlOVkFMOwotCX0KKwlzdHJ1Y3QgZGVudHJ5ICplbnRyeSA9IGRlYnVnZnNfY3Jl YXRlX2RpcigiZGFuZ2VyIiwgcGFyZW50KTsKKwlpZiAoSVNfRVJSX09SX05VTEwoZW50cnkpKQor CQlyZXR1cm47CiAKLQlkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJkYW5nZXJfc3RhdHVzIiwgMDYwMCwg ZHB1X2ttcy0+ZGVidWdmc19kYW5nZXIsCisJZGVidWdmc19jcmVhdGVfZmlsZSgiZGFuZ2VyX3N0 YXR1cyIsIDA2MDAsIGVudHJ5LAogCQkJZHB1X2ttcywgJmRwdV9kZWJ1Z2ZzX2Rhbmdlcl9zdGF0 c19mb3BzKTsKLQlkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJzYWZlX3N0YXR1cyIsIDA2MDAsIGRwdV9r bXMtPmRlYnVnZnNfZGFuZ2VyLAorCWRlYnVnZnNfY3JlYXRlX2ZpbGUoInNhZmVfc3RhdHVzIiwg MDYwMCwgZW50cnksCiAJCQlkcHVfa21zLCAmZHB1X2RlYnVnZnNfc2FmZV9zdGF0c19mb3BzKTsK LQotCXJldHVybiAwOwogfQogCiBzdGF0aWMgaW50IGRwdV9kZWJ1Z2ZzX3JlZ3NldDMyX3Nob3co c3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpkYXRhKQogewotCXN0cnVjdCBkcHVfZGVidWdmc19y ZWdzZXQzMiAqcmVnc2V0OwotCXN0cnVjdCBkcHVfa21zICpkcHVfa21zOworCXN0cnVjdCBkcHVf ZGVidWdmc19yZWdzZXQzMiAqcmVnc2V0ID0gcy0+cHJpdmF0ZTsKKwlzdHJ1Y3QgZHB1X2ttcyAq ZHB1X2ttcyA9IHJlZ3NldC0+ZHB1X2ttczsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2OwogCXN0 cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXY7CiAJdm9pZCBfX2lvbWVtICpiYXNlOwogCXVpbnQz Ml90IGksIGFkZHI7CiAKLQlpZiAoIXMgfHwgIXMtPnByaXZhdGUpCi0JCXJldHVybiAwOwotCi0J cmVnc2V0ID0gcy0+cHJpdmF0ZTsKLQotCWRwdV9rbXMgPSByZWdzZXQtPmRwdV9rbXM7Ci0JaWYg KCFkcHVfa21zIHx8ICFkcHVfa21zLT5tbWlvKQorCWlmICghZHB1X2ttcy0+bW1pbykKIAkJcmV0 dXJuIDA7CiAKIAlkZXYgPSBkcHVfa21zLT5kZXY7CkBAIC0yMjYsNTEgKzIwOSwyNCBAQCB2b2lk ICpkcHVfZGVidWdmc19jcmVhdGVfcmVnc2V0MzIoY29uc3QgY2hhciAqbmFtZSwgdW1vZGVfdCBt b2RlLAogCiBzdGF0aWMgaW50IF9kcHVfZGVidWdmc19pbml0KHN0cnVjdCBkcHVfa21zICpkcHVf a21zKQogewotCXZvaWQgKnA7Ci0JaW50IHJjOwotCi0JcCA9IGRwdV9od191dGlsX2dldF9sb2df bWFza19wdHIoKTsKKwl2b2lkICpwID0gZHB1X2h3X3V0aWxfZ2V0X2xvZ19tYXNrX3B0cigpOwor CXN0cnVjdCBkZW50cnkgKmVudHJ5OwogCi0JaWYgKCFkcHVfa21zIHx8ICFwKQorCWlmICghcCkK IAkJcmV0dXJuIC1FSU5WQUw7CiAKLQlkcHVfa21zLT5kZWJ1Z2ZzX3Jvb3QgPSBkZWJ1Z2ZzX2Ny ZWF0ZV9kaXIoImRlYnVnIiwKLQkJCQkJICAgZHB1X2ttcy0+ZGV2LT5wcmltYXJ5LT5kZWJ1Z2Zz X3Jvb3QpOwotCWlmIChJU19FUlJfT1JfTlVMTChkcHVfa21zLT5kZWJ1Z2ZzX3Jvb3QpKSB7Ci0J CURSTV9FUlJPUigiZGVidWdmcyBjcmVhdGVfZGlyIGZhaWxlZCAlbGRcbiIsCi0JCQkgIFBUUl9F UlIoZHB1X2ttcy0+ZGVidWdmc19yb290KSk7Ci0JCXJldHVybiBQVFJfRVJSKGRwdV9rbXMtPmRl YnVnZnNfcm9vdCk7Ci0JfQorCWVudHJ5ID0gZGVidWdmc19jcmVhdGVfZGlyKCJkZWJ1ZyIsIGRw dV9rbXMtPmRldi0+cHJpbWFyeS0+ZGVidWdmc19yb290KTsKKwlpZiAoSVNfRVJSX09SX05VTEwo ZW50cnkpKQorCQlyZXR1cm4gLUVOT0RFVjsKIAogCS8qIGFsbG93IHJvb3QgdG8gYmUgTlVMTCAq LwotCWRlYnVnZnNfY3JlYXRlX3gzMihEUFVfREVCVUdGU19IV01BU0tOQU1FLCAwNjAwLCBkcHVf a21zLT5kZWJ1Z2ZzX3Jvb3QsIHApOwotCi0JKHZvaWQpIGRwdV9kZWJ1Z2ZzX2Rhbmdlcl9pbml0 KGRwdV9rbXMsIGRwdV9rbXMtPmRlYnVnZnNfcm9vdCk7Ci0JKHZvaWQpIGRwdV9kZWJ1Z2ZzX3Zi aWZfaW5pdChkcHVfa21zLCBkcHVfa21zLT5kZWJ1Z2ZzX3Jvb3QpOwotCSh2b2lkKSBkcHVfZGVi dWdmc19jb3JlX2lycV9pbml0KGRwdV9rbXMsIGRwdV9rbXMtPmRlYnVnZnNfcm9vdCk7CisJZGVi dWdmc19jcmVhdGVfeDMyKERQVV9ERUJVR0ZTX0hXTUFTS05BTUUsIDA2MDAsIGVudHJ5LCBwKTsK IAotCXJjID0gZHB1X2NvcmVfcGVyZl9kZWJ1Z2ZzX2luaXQoJmRwdV9rbXMtPnBlcmYsIGRwdV9r bXMtPmRlYnVnZnNfcm9vdCk7Ci0JaWYgKHJjKSB7Ci0JCURQVV9FUlJPUigiZmFpbGVkIHRvIGlu aXQgcGVyZiAlZFxuIiwgcmMpOwotCQlyZXR1cm4gcmM7Ci0JfQorCWRwdV9kZWJ1Z2ZzX2Rhbmdl cl9pbml0KGRwdV9rbXMsIGVudHJ5KTsKKwlkcHVfZGVidWdmc192YmlmX2luaXQoZHB1X2ttcywg ZW50cnkpOworCWRwdV9kZWJ1Z2ZzX2NvcmVfaXJxX2luaXQoZHB1X2ttcywgZW50cnkpOwogCi0J cmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIF9kcHVfZGVidWdmc19kZXN0cm95KHN0cnVjdCBk cHVfa21zICpkcHVfa21zKQotewotCS8qIGRvbid0IG5lZWQgdG8gTlVMTCBjaGVjayBkZWJ1Z2Zz X3Jvb3QgKi8KLQlpZiAoZHB1X2ttcykgewotCQlkcHVfZGVidWdmc192YmlmX2Rlc3Ryb3koZHB1 X2ttcyk7Ci0JCWRwdV9kZWJ1Z2ZzX2Rhbmdlcl9kZXN0cm95KGRwdV9rbXMpOwotCQlkcHVfZGVi dWdmc19jb3JlX2lycV9kZXN0cm95KGRwdV9rbXMpOwotCQlkZWJ1Z2ZzX3JlbW92ZV9yZWN1cnNp dmUoZHB1X2ttcy0+ZGVidWdmc19yb290KTsKLQl9Ci19Ci0jZWxzZQotc3RhdGljIHZvaWQgX2Rw dV9kZWJ1Z2ZzX2Rlc3Ryb3koc3RydWN0IGRwdV9rbXMgKmRwdV9rbXMpCi17CisJcmV0dXJuIGRw dV9jb3JlX3BlcmZfZGVidWdmc19pbml0KGRwdV9rbXMsIGVudHJ5KTsKIH0KICNlbmRpZgogCkBA IC01ODMsMjIgKzUzOSw3IEBAIHN0YXRpYyBpbnQgX2RwdV9rbXNfZHJtX29ial9pbml0KHN0cnVj dCBkcHVfa21zICpkcHVfa21zKQogI2lmZGVmIENPTkZJR19ERUJVR19GUwogc3RhdGljIGludCBk cHVfa21zX2RlYnVnZnNfaW5pdChzdHJ1Y3QgbXNtX2ttcyAqa21zLCBzdHJ1Y3QgZHJtX21pbm9y ICptaW5vcikKIHsKLQlzdHJ1Y3QgZHB1X2ttcyAqZHB1X2ttcyA9IHRvX2RwdV9rbXMoa21zKTsK LQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2OwotCWludCByYzsKLQotCWlmICghZHB1X2ttcyB8fCAh ZHB1X2ttcy0+ZGV2IHx8ICFkcHVfa21zLT5kZXYtPmRldikgewotCQlEUFVfRVJST1IoImludmFs aWQgZHB1X2ttc1xuIik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWRldiA9IGRwdV9rbXMt PmRldjsKLQotCXJjID0gX2RwdV9kZWJ1Z2ZzX2luaXQoZHB1X2ttcyk7Ci0JaWYgKHJjKQotCQlE UFVfRVJST1IoImRwdV9kZWJ1Z2ZzIGluaXQgZmFpbGVkOiAlZFxuIiwgcmMpOwotCi0JcmV0dXJu IHJjOworCXJldHVybiBfZHB1X2RlYnVnZnNfaW5pdCh0b19kcHVfa21zKGttcykpOwogfQogI2Vu ZGlmCiAKQEAgLTYyNiw3ICs1NjcsNiBAQCBzdGF0aWMgdm9pZCBfZHB1X2ttc19od19kZXN0cm95 KHN0cnVjdCBkcHVfa21zICpkcHVfa21zKQogCQkJCSZkcHVfa21zLT5waGFuZGxlLCBkcHVfa21z LT5wb3dlcl9ldmVudCk7CiAKIAkvKiBzYWZlIHRvIGNhbGwgdGhlc2UgbW9yZSB0aGFuIG9uY2Ug ZHVyaW5nIHNodXRkb3duICovCi0JX2RwdV9kZWJ1Z2ZzX2Rlc3Ryb3koZHB1X2ttcyk7CiAJX2Rw dV9rbXNfbW11X2Rlc3Ryb3koZHB1X2ttcyk7CiAKIAlpZiAoZHB1X2ttcy0+Y2F0YWxvZykgewpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2ttcy5oIGIvZHJp dmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2ttcy5oCmluZGV4IGU3NTM5Yzk4NzBlNC4u Y2IxYTY4NWRjZmVlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9k cHVfa21zLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2ttcy5oCkBA IC0xMDIsNyArMTAyLDYgQEAgc3RydWN0IGRwdV9pcnEgewogCWF0b21pY190ICplbmFibGVfY291 bnRzOwogCWF0b21pY190ICppcnFfY291bnRzOwogCXNwaW5sb2NrX3QgY2JfbG9jazsKLQlzdHJ1 Y3QgZGVudHJ5ICpkZWJ1Z2ZzX2ZpbGU7CiB9OwogCiBzdHJ1Y3QgZHB1X2ttcyB7CkBAIC0xMTUs MTEgKzExNCw2IEBAIHN0cnVjdCBkcHVfa21zIHsKIAlzdHJ1Y3QgZHB1X3Bvd2VyX2NsaWVudCAq Y29yZV9jbGllbnQ7CiAJc3RydWN0IGRwdV9wb3dlcl9ldmVudCAqcG93ZXJfZXZlbnQ7CiAKLQkv KiBkaXJlY3RvcnkgZW50cnkgZm9yIGRlYnVnZnMgKi8KLQlzdHJ1Y3QgZGVudHJ5ICpkZWJ1Z2Zz X3Jvb3Q7Ci0Jc3RydWN0IGRlbnRyeSAqZGVidWdmc19kYW5nZXI7Ci0Jc3RydWN0IGRlbnRyeSAq ZGVidWdmc192YmlmOwotCiAJLyogaW8vcmVnaXN0ZXIgc3BhY2VzOiAqLwogCXZvaWQgX19pb21l bSAqbW1pbywgKnZiaWZbVkJJRl9NQVhdLCAqcmVnX2RtYTsKIAl1bnNpZ25lZCBsb25nIG1taW9f bGVuLCB2YmlmX2xlbltWQklGX01BWF0sIHJlZ19kbWFfbGVuOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X21kc3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20v ZGlzcC9kcHUxL2RwdV9tZHNzLmMKaW5kZXggMTlhYmY3MTk4MTFhLi41ZWNjMjZmZGMzMjggMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9tZHNzLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X21kc3MuYwpAQCAtMTIwLDEzICsxMjAs MTIgQEAgc3RhdGljIGludCBfZHB1X21kc3NfaXJxX2RvbWFpbl9hZGQoc3RydWN0IGRwdV9tZHNz ICpkcHVfbWRzcykKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBfZHB1X21kc3NfaXJxX2Rv bWFpbl9maW5pKHN0cnVjdCBkcHVfbWRzcyAqZHB1X21kc3MpCitzdGF0aWMgdm9pZCBfZHB1X21k c3NfaXJxX2RvbWFpbl9maW5pKHN0cnVjdCBkcHVfbWRzcyAqZHB1X21kc3MpCiB7CiAJaWYgKGRw dV9tZHNzLT5pcnFfY29udHJvbGxlci5kb21haW4pIHsKIAkJaXJxX2RvbWFpbl9yZW1vdmUoZHB1 X21kc3MtPmlycV9jb250cm9sbGVyLmRvbWFpbik7CiAJCWRwdV9tZHNzLT5pcnFfY29udHJvbGxl ci5kb21haW4gPSBOVUxMOwogCX0KLQlyZXR1cm4gMDsKIH0KIHN0YXRpYyBpbnQgZHB1X21kc3Nf ZW5hYmxlKHN0cnVjdCBtc21fbWRzcyAqbWRzcykKIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9tc20vZGlzcC9kcHUxL2RwdV9wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNw L2RwdTEvZHB1X3BsYW5lLmMKaW5kZXggOThkODMxNWY2MjVkLi5iY2Q4ZDQ2ZmZjMzggMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9wbGFuZS5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9wbGFuZS5jCkBAIC0xMjY0LDI2ICsxMjY0 LDEyIEBAIHN0YXRpYyBzc2l6ZV90IF9kcHVfcGxhbmVfZGFuZ2VyX3JlYWQoc3RydWN0IGZpbGUg KmZpbGUsCiAJCQljaGFyIF9fdXNlciAqYnVmZiwgc2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3Mp CiB7CiAJc3RydWN0IGRwdV9rbXMgKmttcyA9IGZpbGUtPnByaXZhdGVfZGF0YTsKLQlzdHJ1Y3Qg ZHB1X21kc3NfY2ZnICpjZmcgPSBrbXMtPmNhdGFsb2c7Ci0JaW50IGxlbiA9IDA7Ci0JY2hhciBi dWZbNDBdID0geydcMCd9OworCWludCBsZW47CisJY2hhciBidWZbNDBdOwogCi0JaWYgKCFjZmcp Ci0JCXJldHVybiAtRU5PREVWOworCWxlbiA9IHNjbnByaW50ZihidWYsIHNpemVvZihidWYpLCAi JWRcbiIsICFrbXMtPmhhc19kYW5nZXJfY3RybCk7CiAKLQlpZiAoKnBwb3MpCi0JCXJldHVybiAw OyAvKiB0aGUgZW5kICovCi0KLQlsZW4gPSBzbnByaW50ZihidWYsIHNpemVvZihidWYpLCAiJWRc biIsICFrbXMtPmhhc19kYW5nZXJfY3RybCk7Ci0JaWYgKGxlbiA8IDAgfHwgbGVuID49IHNpemVv ZihidWYpKQotCQlyZXR1cm4gMDsKLQotCWlmICgoY291bnQgPCBzaXplb2YoYnVmKSkgfHwgY29w eV90b191c2VyKGJ1ZmYsIGJ1ZiwgbGVuKSkKLQkJcmV0dXJuIC1FRkFVTFQ7Ci0KLQkqcHBvcyAr PSBsZW47ICAgLyogaW5jcmVhc2Ugb2Zmc2V0ICovCi0KLQlyZXR1cm4gbGVuOworCXJldHVybiBz aW1wbGVfcmVhZF9mcm9tX2J1ZmZlcihidWZmLCBjb3VudCwgcHBvcywgYnVmLCBsZW4pOwogfQog CiBzdGF0aWMgdm9pZCBfZHB1X3BsYW5lX3NldF9kYW5nZXJfc3RhdGUoc3RydWN0IGRwdV9rbXMg KmttcywgYm9vbCBlbmFibGUpCkBAIC0xMzEzLDIzICsxMjk5LDEyIEBAIHN0YXRpYyBzc2l6ZV90 IF9kcHVfcGxhbmVfZGFuZ2VyX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLAogCQkgICAgY29uc3Qg Y2hhciBfX3VzZXIgKnVzZXJfYnVmLCBzaXplX3QgY291bnQsIGxvZmZfdCAqcHBvcykKIHsKIAlz dHJ1Y3QgZHB1X2ttcyAqa21zID0gZmlsZS0+cHJpdmF0ZV9kYXRhOwotCXN0cnVjdCBkcHVfbWRz c19jZmcgKmNmZyA9IGttcy0+Y2F0YWxvZzsKIAlpbnQgZGlzYWJsZV9wYW5pYzsKLQljaGFyIGJ1 ZlsxMF07Ci0KLQlpZiAoIWNmZykKLQkJcmV0dXJuIC1FRkFVTFQ7Ci0KLQlpZiAoY291bnQgPj0g c2l6ZW9mKGJ1ZikpCi0JCXJldHVybiAtRUZBVUxUOwotCi0JaWYgKGNvcHlfZnJvbV91c2VyKGJ1 ZiwgdXNlcl9idWYsIGNvdW50KSkKLQkJcmV0dXJuIC1FRkFVTFQ7Ci0KLQlidWZbY291bnRdID0g MDsJLyogZW5kIG9mIHN0cmluZyAqLworCWludCByZXQ7CiAKLQlpZiAoa3N0cnRvaW50KGJ1Ziwg MCwgJmRpc2FibGVfcGFuaWMpKQotCQlyZXR1cm4gLUVGQVVMVDsKKwlyZXQgPSBrc3RydG91aW50 X2Zyb21fdXNlcih1c2VyX2J1ZiwgY291bnQsIDAsICZkaXNhYmxlX3BhbmljKTsKKwlpZiAocmV0 KQorCQlyZXR1cm4gcmV0OwogCiAJaWYgKGRpc2FibGVfcGFuaWMpIHsKIAkJLyogRGlzYWJsZSBw YW5pYyBzaWduYWwgZm9yIGFsbCBhY3RpdmUgcGlwZXMgKi8KQEAgLTEzNTQsMzMgKzEzMjksMTAg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZHB1X3BsYW5lX2Rhbmdlcl9l bmFibGUgPSB7CiAKIHN0YXRpYyBpbnQgX2RwdV9wbGFuZV9pbml0X2RlYnVnZnMoc3RydWN0IGRy bV9wbGFuZSAqcGxhbmUpCiB7Ci0Jc3RydWN0IGRwdV9wbGFuZSAqcGRwdTsKLQlzdHJ1Y3QgZHB1 X2ttcyAqa21zOwotCXN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXY7Ci0JY29uc3Qgc3RydWN0 IGRwdV9zc3BwX3N1Yl9ibGtzICpzYmxrID0gMDsKLQljb25zdCBzdHJ1Y3QgZHB1X3NzcHBfY2Zn ICpjZmcgPSAwOwotCi0JaWYgKCFwbGFuZSB8fCAhcGxhbmUtPmRldikgewotCQlEUFVfRVJST1Io ImludmFsaWQgYXJndW1lbnRzXG4iKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JcHJpdiA9 IHBsYW5lLT5kZXYtPmRldl9wcml2YXRlOwotCWlmICghcHJpdiB8fCAhcHJpdi0+a21zKSB7Ci0J CURQVV9FUlJPUigiaW52YWxpZCBLTVMgcmVmZXJlbmNlXG4iKTsKLQkJcmV0dXJuIC1FSU5WQUw7 Ci0JfQotCi0Ja21zID0gdG9fZHB1X2ttcyhwcml2LT5rbXMpOwotCXBkcHUgPSB0b19kcHVfcGxh bmUocGxhbmUpOwotCi0JaWYgKHBkcHUgJiYgcGRwdS0+cGlwZV9odykKLQkJY2ZnID0gcGRwdS0+ cGlwZV9ody0+Y2FwOwotCWlmIChjZmcpCi0JCXNibGsgPSBjZmctPnNibGs7Ci0KLQlpZiAoIXNi bGspCi0JCXJldHVybiAwOworCXN0cnVjdCBkcHVfcGxhbmUgKnBkcHUgPSB0b19kcHVfcGxhbmUo cGxhbmUpOworCXN0cnVjdCBkcHVfa21zICprbXMgPSBfZHB1X3BsYW5lX2dldF9rbXMocGxhbmUp OworCWNvbnN0IHN0cnVjdCBkcHVfc3NwcF9jZmcgKmNmZyA9IHBkcHUtPnBpcGVfaHctPmNhcDsK Kwljb25zdCBzdHJ1Y3QgZHB1X3NzcHBfc3ViX2Jsa3MgKnNibGsgPSBjZmctPnNibGs7CiAKIAkv KiBjcmVhdGUgb3ZlcmFsbCBzdWItZGlyZWN0b3J5IGZvciB0aGUgcGlwZSAqLwogCXBkcHUtPmRl YnVnZnNfcm9vdCA9CkBAIC0xNDUxLDI1ICsxNDAzLDExIEBAIHN0YXRpYyBpbnQgX2RwdV9wbGFu ZV9pbml0X2RlYnVnZnMoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpCiAKIAlyZXR1cm4gMDsKIH0K LQotc3RhdGljIHZvaWQgX2RwdV9wbGFuZV9kZXN0cm95X2RlYnVnZnMoc3RydWN0IGRybV9wbGFu ZSAqcGxhbmUpCi17Ci0Jc3RydWN0IGRwdV9wbGFuZSAqcGRwdTsKLQotCWlmICghcGxhbmUpCi0J CXJldHVybjsKLQlwZHB1ID0gdG9fZHB1X3BsYW5lKHBsYW5lKTsKLQotCWRlYnVnZnNfcmVtb3Zl X3JlY3Vyc2l2ZShwZHB1LT5kZWJ1Z2ZzX3Jvb3QpOwotfQogI2Vsc2UKIHN0YXRpYyBpbnQgX2Rw dV9wbGFuZV9pbml0X2RlYnVnZnMoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpCiB7CiAJcmV0dXJu IDA7CiB9Ci1zdGF0aWMgdm9pZCBfZHB1X3BsYW5lX2Rlc3Ryb3lfZGVidWdmcyhzdHJ1Y3QgZHJt X3BsYW5lICpwbGFuZSkKLXsKLX0KICNlbmRpZgogCiBzdGF0aWMgaW50IGRwdV9wbGFuZV9sYXRl X3JlZ2lzdGVyKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQpAQCAtMTQ3OSw3ICsxNDE3LDkgQEAg c3RhdGljIGludCBkcHVfcGxhbmVfbGF0ZV9yZWdpc3RlcihzdHJ1Y3QgZHJtX3BsYW5lICpwbGFu ZSkKIAogc3RhdGljIHZvaWQgZHB1X3BsYW5lX2Vhcmx5X3VucmVnaXN0ZXIoc3RydWN0IGRybV9w bGFuZSAqcGxhbmUpCiB7Ci0JX2RwdV9wbGFuZV9kZXN0cm95X2RlYnVnZnMocGxhbmUpOworCXN0 cnVjdCBkcHVfcGxhbmUgKnBkcHUgPSB0b19kcHVfcGxhbmUocGxhbmUpOworCisJZGVidWdmc19y ZW1vdmVfcmVjdXJzaXZlKHBkcHUtPmRlYnVnZnNfcm9vdCk7CiB9CiAKIHN0YXRpYyBjb25zdCBz dHJ1Y3QgZHJtX3BsYW5lX2Z1bmNzIGRwdV9wbGFuZV9mdW5jcyA9IHsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV92YmlmLmMgYi9kcml2ZXJzL2dwdS9kcm0v bXNtL2Rpc3AvZHB1MS9kcHVfdmJpZi5jCmluZGV4IGZmNTA5MWQyNTU1ZC4uZWY3NTNlYTljNDk5 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfdmJpZi5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV92YmlmLmMKQEAgLTMxMCwzMSAr MzEwLDI1IEBAIHZvaWQgZHB1X3ZiaWZfaW5pdF9tZW10eXBlcyhzdHJ1Y3QgZHB1X2ttcyAqZHB1 X2ttcykKIH0KIAogI2lmZGVmIENPTkZJR19ERUJVR19GUwotdm9pZCBkcHVfZGVidWdmc192Ymlm X2Rlc3Ryb3koc3RydWN0IGRwdV9rbXMgKmRwdV9rbXMpCi17Ci0JZGVidWdmc19yZW1vdmVfcmVj dXJzaXZlKGRwdV9rbXMtPmRlYnVnZnNfdmJpZik7Ci0JZHB1X2ttcy0+ZGVidWdmc192YmlmID0g TlVMTDsKLX0KIAotaW50IGRwdV9kZWJ1Z2ZzX3ZiaWZfaW5pdChzdHJ1Y3QgZHB1X2ttcyAqZHB1 X2ttcywgc3RydWN0IGRlbnRyeSAqZGVidWdmc19yb290KQordm9pZCBkcHVfZGVidWdmc192Ymlm X2luaXQoc3RydWN0IGRwdV9rbXMgKmRwdV9rbXMsIHN0cnVjdCBkZW50cnkgKmRlYnVnZnNfcm9v dCkKIHsKIAljaGFyIHZiaWZfbmFtZVszMl07Ci0Jc3RydWN0IGRlbnRyeSAqZGVidWdmc192Ymlm OworCXN0cnVjdCBkZW50cnkgKmVudHJ5LCAqZGVidWdmc192YmlmOwogCWludCBpLCBqOwogCi0J ZHB1X2ttcy0+ZGVidWdmc192YmlmID0gZGVidWdmc19jcmVhdGVfZGlyKCJ2YmlmIiwgZGVidWdm c19yb290KTsKLQlpZiAoIWRwdV9rbXMtPmRlYnVnZnNfdmJpZikgewotCQlEUFVfRVJST1IoImZh aWxlZCB0byBjcmVhdGUgdmJpZiBkZWJ1Z2ZzXG4iKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQor CWVudHJ5ID0gZGVidWdmc19jcmVhdGVfZGlyKCJ2YmlmIiwgZGVidWdmc19yb290KTsKKwlpZiAo SVNfRVJSX09SX05VTEwoZW50cnkpKQorCQlyZXR1cm47CiAKIAlmb3IgKGkgPSAwOyBpIDwgZHB1 X2ttcy0+Y2F0YWxvZy0+dmJpZl9jb3VudDsgaSsrKSB7CiAJCXN0cnVjdCBkcHVfdmJpZl9jZmcg KnZiaWYgPSAmZHB1X2ttcy0+Y2F0YWxvZy0+dmJpZltpXTsKIAogCQlzbnByaW50Zih2YmlmX25h bWUsIHNpemVvZih2YmlmX25hbWUpLCAiJWQiLCB2YmlmLT5pZCk7CiAKLQkJZGVidWdmc192Ymlm ID0gZGVidWdmc19jcmVhdGVfZGlyKHZiaWZfbmFtZSwKLQkJCQlkcHVfa21zLT5kZWJ1Z2ZzX3Zi aWYpOworCQlkZWJ1Z2ZzX3ZiaWYgPSBkZWJ1Z2ZzX2NyZWF0ZV9kaXIodmJpZl9uYW1lLCBlbnRy eSk7CisJCWlmIChJU19FUlJfT1JfTlVMTChkZWJ1Z2ZzX3ZiaWYpKQorCQkJY29udGludWU7CiAK IAkJZGVidWdmc19jcmVhdGVfdTMyKCJmZWF0dXJlcyIsIDA2MDAsIGRlYnVnZnNfdmJpZiwKIAkJ CSh1MzIgKikmdmJpZi0+ZmVhdHVyZXMpOwpAQCAtMzc2LDcgKzM3MCw1IEBAIGludCBkcHVfZGVi dWdmc192YmlmX2luaXQoc3RydWN0IGRwdV9rbXMgKmRwdV9rbXMsIHN0cnVjdCBkZW50cnkgKmRl YnVnZnNfcm9vdCkKIAkJCQkJKHUzMiAqKSZjZmctPm90X2xpbWl0KTsKIAkJfQogCX0KLQotCXJl dHVybiAwOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3Av ZHB1MS9kcHVfdmJpZi5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3ZiaWYu aAppbmRleCBmMTdhZjUyZGJiZDUuLjYzNTY4NzZkN2E2NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3ZiaWYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNt L2Rpc3AvZHB1MS9kcHVfdmJpZi5oCkBAIC03OCwxNyArNzgsNiBAQCB2b2lkIGRwdV92YmlmX2Ns ZWFyX2Vycm9ycyhzdHJ1Y3QgZHB1X2ttcyAqZHB1X2ttcyk7CiAgKi8KIHZvaWQgZHB1X3ZiaWZf aW5pdF9tZW10eXBlcyhzdHJ1Y3QgZHB1X2ttcyAqZHB1X2ttcyk7CiAKLSNpZmRlZiBDT05GSUdf REVCVUdfRlMKLWludCBkcHVfZGVidWdmc192YmlmX2luaXQoc3RydWN0IGRwdV9rbXMgKmRwdV9r bXMsIHN0cnVjdCBkZW50cnkgKmRlYnVnZnNfcm9vdCk7Ci12b2lkIGRwdV9kZWJ1Z2ZzX3ZiaWZf ZGVzdHJveShzdHJ1Y3QgZHB1X2ttcyAqZHB1X2ttcyk7Ci0jZWxzZQotc3RhdGljIGlubGluZSBp bnQgZHB1X2RlYnVnZnNfdmJpZl9pbml0KHN0cnVjdCBkcHVfa21zICpkcHVfa21zLAotCQlzdHJ1 Y3QgZGVudHJ5ICpkZWJ1Z2ZzX3Jvb3QpCi17Ci0JcmV0dXJuIDA7Ci19Ci1zdGF0aWMgaW5saW5l IHZvaWQgZHB1X2RlYnVnZnNfdmJpZl9kZXN0cm95KHN0cnVjdCBkcHVfa21zICpkcHVfa21zKQot ewotfQotI2VuZGlmCit2b2lkIGRwdV9kZWJ1Z2ZzX3ZiaWZfaW5pdChzdHJ1Y3QgZHB1X2ttcyAq ZHB1X2ttcywgc3RydWN0IGRlbnRyeSAqZGVidWdmc19yb290KTsKKwogI2VuZGlmIC8qIF9fRFBV X1ZCSUZfSF9fICovCi0tIAoyLjE4LjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkZyZWVkcmVubyBtYWlsaW5nIGxpc3QKRnJlZWRyZW5vQGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ZyZWVkcmVubwo=