From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jordan Crouse Subject: [PATCH v3 08/10] drm/msm/dpu: Cleanup the debugfs functions Date: Mon, 3 Dec 2018 15:47:21 -0700 Message-ID: <20181203224723.10450-9-jcrouse@codeaurora.org> References: <20181203224723.10450-1-jcrouse@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181203224723.10450-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, abhinavk-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, bzwang-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, sam-uyr5N9Q2VtJg9hUCZPvPmw@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org RG8gc29tZSBkZWJ1Z2ZzIGNsZWFudXBzIGZyb20gYWNyb3NzIHRoZSBEUFUgZHJpdmVyLiBUaGUg RFJNCmRlc3Ryb3kgZnVuY3Rpb25zIHdpbGwgZG8gYSByZWN1cnNpdmUgZGVsZXRlIG9uIHRoZSBl bnRpcmUKZGVidWdmcyBub2RlIHNvIHRoZXJlIGlzIG5vIG5lZWQgdG8gc3RvcmUgZGVudHJ5IHBv aW50ZXJzIGZvcgp0aGUgZGVidWdmcyBmaWxlcyB0aGF0IGFyZSBwZXJzaXN0ZW50IGZvciB0aGUg bGlmZSBvZiB0aGUKZHJpdmVyLiBUaGlzIGFsc28gbWVhbnMgdGhhdCB0aGUgZGVzdHJveSBmdW5j dGlvbnMgY2FuIGdvCmF3YXkgdG9vLgoKQWxzbywgdXNlIHN0YW5kYXJkIEFQSSBmdW5jdGlvbnMg d2hlcmUgYXBwbGljYWJsZSBpbnN0ZWFkIG9mCnVzaW5nIGhhbmQgd3JpdHRlbiBjb2RlLgoKdjM6 IE5vIGNoYW5nZXMKdjI6IEFkZCBtb3JlIGNvZGU7IG1vc3Qgb2YgdGhlIGRwdSBkZWJ1Z2ZzIGZp bGVzIHNob3VsZCBiZQphZGRyZXNzZWQgbm93LgoKUmV2aWV3ZWQtYnk6IFNlYW4gUGF1bCA8c2Vh bkBwb29ybHkucnVuPgpTaWduZWQtb2ZmLWJ5OiBKb3JkYW4gQ3JvdXNlIDxqY3JvdXNlQGNvZGVh dXJvcmEub3JnPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jb3JlX2ly cS5jICB8ICAzMCArLS0tLQogZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NvcmVf aXJxLmggIHwgICA5ICstCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY29yZV9w ZXJmLmMgfCAxMDUgKysrKystLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3Av ZHB1MS9kcHVfY29yZV9wZXJmLmggfCAgIDcgKy0KIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9k cHUxL2RwdV9jcnRjLmMgICAgICB8ICAzMCArLS0tLQogZHJpdmVycy9ncHUvZHJtL21zbS9kaXNw L2RwdTEvZHB1X2VuY29kZXIuYyAgIHwgIDMxICstLS0tLQogZHJpdmVycy9ncHUvZHJtL21zbS9k aXNwL2RwdTEvZHB1X2ttcy5jICAgICAgIHwgMTA0ICsrKystLS0tLS0tLS0tLS0tCiBkcml2ZXJz L2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfa21zLmggICAgICAgfCAgIDYgLQogZHJpdmVycy9n cHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X21kc3MuYyAgICAgIHwgICAzICstCiBkcml2ZXJzL2dw dS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcGxhbmUuYyAgICAgfCAgOTAgKysrLS0tLS0tLS0tLS0t CiBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfdmJpZi5jICAgICAgfCAgMjQgKyst LQogZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3ZiaWYuaCAgICAgIHwgIDE1ICst LQogMTIgZmlsZXMgY2hhbmdlZCwgOTMgaW5zZXJ0aW9ucygrKSwgMzYxIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jb3JlX2lycS5j IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NvcmVfaXJxLmMKaW5kZXggOWQ1 YThkMjE3YmM2Li5lNDVjNjkwNDQ5MzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20v ZGlzcC9kcHUxL2RwdV9jb3JlX2lycS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9k cHUxL2RwdV9jb3JlX2lycS5jCkBAIC0zMTksMTAgKzMxOSw4IEBAIHN0YXRpYyBpbnQgZHB1X2Rl YnVnZnNfY29yZV9pcnFfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKnYpCiAJdW5zaWdu ZWQgbG9uZyBpcnFfZmxhZ3M7CiAJaW50IGksIGlycV9jb3VudCwgZW5hYmxlX2NvdW50LCBjYl9j b3VudDsKIAotCWlmICghaXJxX29iaiB8fCAhaXJxX29iai0+ZW5hYmxlX2NvdW50cyB8fCAhaXJx X29iai0+aXJxX2NiX3RibCkgewotCQlEUFVfRVJST1IoImludmFsaWQgcGFyYW1ldGVyc1xuIik7 CisJaWYgKFdBUk5fT04oIWlycV9vYmotPmVuYWJsZV9jb3VudHMgfHwgIWlycV9vYmotPmlycV9j Yl90YmwpKQogCQlyZXR1cm4gMDsKLQl9CiAKIAlmb3IgKGkgPSAwOyBpIDwgaXJxX29iai0+dG90 YWxfaXJxczsgaSsrKSB7CiAJCXNwaW5fbG9ja19pcnFzYXZlKCZpcnFfb2JqLT5jYl9sb2NrLCBp cnFfZmxhZ3MpOwpAQCAtMzQzLDMxICszNDEsMTEgQEAgc3RhdGljIGludCBkcHVfZGVidWdmc19j b3JlX2lycV9zaG93KHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqdikKIAogREVGSU5FX0RQVV9E RUJVR0ZTX1NFUV9GT1BTKGRwdV9kZWJ1Z2ZzX2NvcmVfaXJxKTsKIAotaW50IGRwdV9kZWJ1Z2Zz X2NvcmVfaXJxX2luaXQoc3RydWN0IGRwdV9rbXMgKmRwdV9rbXMsCi0JCXN0cnVjdCBkZW50cnkg KnBhcmVudCkKLXsKLQlkcHVfa21zLT5pcnFfb2JqLmRlYnVnZnNfZmlsZSA9IGRlYnVnZnNfY3Jl YXRlX2ZpbGUoImNvcmVfaXJxIiwgMDYwMCwKLQkJCXBhcmVudCwgJmRwdV9rbXMtPmlycV9vYmos Ci0JCQkmZHB1X2RlYnVnZnNfY29yZV9pcnFfZm9wcyk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotdm9p ZCBkcHVfZGVidWdmc19jb3JlX2lycV9kZXN0cm95KHN0cnVjdCBkcHVfa21zICpkcHVfa21zKQot ewotCWRlYnVnZnNfcmVtb3ZlKGRwdV9rbXMtPmlycV9vYmouZGVidWdmc19maWxlKTsKLQlkcHVf a21zLT5pcnFfb2JqLmRlYnVnZnNfZmlsZSA9IE5VTEw7Ci19Ci0KLSNlbHNlCi1pbnQgZHB1X2Rl YnVnZnNfY29yZV9pcnFfaW5pdChzdHJ1Y3QgZHB1X2ttcyAqZHB1X2ttcywKK3ZvaWQgZHB1X2Rl YnVnZnNfY29yZV9pcnFfaW5pdChzdHJ1Y3QgZHB1X2ttcyAqZHB1X2ttcywKIAkJc3RydWN0IGRl bnRyeSAqcGFyZW50KQogewotCXJldHVybiAwOwotfQotCi12b2lkIGRwdV9kZWJ1Z2ZzX2NvcmVf aXJxX2Rlc3Ryb3koc3RydWN0IGRwdV9rbXMgKmRwdV9rbXMpCi17CisJZGVidWdmc19jcmVhdGVf ZmlsZSgiY29yZV9pcnEiLCAwNjAwLCBwYXJlbnQsICZkcHVfa21zLT5pcnFfb2JqLAorCQkmZHB1 X2RlYnVnZnNfY29yZV9pcnFfZm9wcyk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NvcmVfaXJxLmggYi9kcml2ZXJzL2dwdS9kcm0v bXNtL2Rpc3AvZHB1MS9kcHVfY29yZV9pcnEuaAppbmRleCA4ODRmNzdmYTNlYjYuLmU5MDE1YTJi MjNmZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NvcmVf aXJxLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NvcmVfaXJxLmgK QEAgLTEzMiwxNSArMTMyLDggQEAgaW50IGRwdV9jb3JlX2lycV91bnJlZ2lzdGVyX2NhbGxiYWNr KAogICogZHB1X2RlYnVnZnNfY29yZV9pcnFfaW5pdCAtIHJlZ2lzdGVyIGNvcmUgaXJxIGRlYnVn ZnMKICAqIEBkcHVfa21zOiBwb2ludGVyIHRvIGttcwogICogQHBhcmVudDogZGVidWdmcyBkaXJl Y3Rvcnkgcm9vdAotICogQFJldHVybjogMCBvbiBzdWNjZXNzCiAgKi8KLWludCBkcHVfZGVidWdm c19jb3JlX2lycV9pbml0KHN0cnVjdCBkcHVfa21zICpkcHVfa21zLAordm9pZCBkcHVfZGVidWdm c19jb3JlX2lycV9pbml0KHN0cnVjdCBkcHVfa21zICpkcHVfa21zLAogCQlzdHJ1Y3QgZGVudHJ5 ICpwYXJlbnQpOwogCi0vKioKLSAqIGRwdV9kZWJ1Z2ZzX2NvcmVfaXJxX2Rlc3Ryb3kgLSBkZXJl Z2lzdGVyIGNvcmUgaXJxIGRlYnVnZnMKLSAqIEBkcHVfa21zOiBwb2ludGVyIHRvIGttcwotICov Ci12b2lkIGRwdV9kZWJ1Z2ZzX2NvcmVfaXJxX2Rlc3Ryb3koc3RydWN0IGRwdV9rbXMgKmRwdV9r bXMpOwotCiAjZW5kaWYgLyogX19EUFVfQ09SRV9JUlFfSF9fICovCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY29yZV9wZXJmLmMgYi9kcml2ZXJzL2dwdS9k cm0vbXNtL2Rpc3AvZHB1MS9kcHVfY29yZV9wZXJmLmMKaW5kZXggZThhODdmNGI4ZTBlLi45ZjIw ZjM5N2Y3N2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9j b3JlX3BlcmYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY29yZV9w ZXJmLmMKQEAgLTI0LDggKzI0LDYgQEAKICNpbmNsdWRlICJkcHVfY3J0Yy5oIgogI2luY2x1ZGUg ImRwdV9jb3JlX3BlcmYuaCIKIAotI2RlZmluZSBEUFVfUEVSRl9NT0RFX1NUUklOR19TSVpFCTEy OAotCiAvKioKICAqIGVudW0gZHB1X3BlcmZfbW9kZSAtIHBlcmZvcm1hbmNlIHR1bmluZyBtb2Rl CiAgKiBARFBVX1BFUkZfTU9ERV9OT1JNQUw6IHBlcmZvcm1hbmNlIGNvbnRyb2xsZWQgYnkgdXNl ciBtb2RlIGNsaWVudApAQCAtNDUxLDI0ICs0NDksMTQgQEAgc3RhdGljIHNzaXplX3QgX2RwdV9j b3JlX3BlcmZfbW9kZV93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwKIAlzdHJ1Y3QgZHB1X2NvcmVf cGVyZiAqcGVyZiA9IGZpbGUtPnByaXZhdGVfZGF0YTsKIAlzdHJ1Y3QgZHB1X3BlcmZfY2ZnICpj ZmcgPSAmcGVyZi0+Y2F0YWxvZy0+cGVyZjsKIAl1MzIgcGVyZl9tb2RlID0gMDsKLQljaGFyIGJ1 ZlsxMF07Ci0KLQlpZiAoIXBlcmYpCi0JCXJldHVybiAtRU5PREVWOwotCi0JaWYgKGNvdW50ID49 IHNpemVvZihidWYpKQotCQlyZXR1cm4gLUVGQVVMVDsKLQotCWlmIChjb3B5X2Zyb21fdXNlcihi dWYsIHVzZXJfYnVmLCBjb3VudCkpCi0JCXJldHVybiAtRUZBVUxUOwotCi0JYnVmW2NvdW50XSA9 IDA7CS8qIGVuZCBvZiBzdHJpbmcgKi8KKwlpbnQgcmV0OwogCi0JaWYgKGtzdHJ0b3VpbnQoYnVm LCAwLCAmcGVyZl9tb2RlKSkKLQkJcmV0dXJuIC1FRkFVTFQ7CisJcmV0ID0ga3N0cnRvdWludF9m cm9tX3VzZXIodXNlcl9idWYsIGNvdW50LCAwLCAmcGVyZl9tb2RlKTsKKwlpZiAocmV0KQorCQly ZXR1cm4gcmV0OwogCiAJaWYgKHBlcmZfbW9kZSA+PSBEUFVfUEVSRl9NT0RFX01BWCkKLQkJcmV0 dXJuIC1FRkFVTFQ7CisJCXJldHVybiAtRUlOVkFMOwogCiAJaWYgKHBlcmZfbW9kZSA9PSBEUFVf UEVSRl9NT0RFX0ZJWEVEKSB7CiAJCURSTV9JTkZPKCJmaXggcGVyZm9ybWFuY2UgbW9kZVxuIik7 CkBAIC00OTMsMjkgKzQ4MSwxNiBAQCBzdGF0aWMgc3NpemVfdCBfZHB1X2NvcmVfcGVyZl9tb2Rl X3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsCiAJCQljaGFyIF9fdXNlciAqYnVmZiwgc2l6ZV90IGNv dW50LCBsb2ZmX3QgKnBwb3MpCiB7CiAJc3RydWN0IGRwdV9jb3JlX3BlcmYgKnBlcmYgPSBmaWxl LT5wcml2YXRlX2RhdGE7Ci0JaW50IGxlbiA9IDA7Ci0JY2hhciBidWZbRFBVX1BFUkZfTU9ERV9T VFJJTkdfU0laRV0gPSB7J1wwJ307CisJaW50IGxlbjsKKwljaGFyIGJ1ZlsxMjhdOwogCi0JaWYg KCFwZXJmKQotCQlyZXR1cm4gLUVOT0RFVjsKLQotCWlmICgqcHBvcykKLQkJcmV0dXJuIDA7CS8q IHRoZSBlbmQgKi8KLQotCWxlbiA9IHNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksCisJbGVuID0g c2NucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksCiAJCQkibW9kZSAlZCBtaW5fbWRwX2NsayAlbGx1 IG1pbl9idXNfdm90ZSAlbGx1XG4iLAogCQkJcGVyZi0+cGVyZl90dW5lLm1vZGUsCiAJCQlwZXJm LT5wZXJmX3R1bmUubWluX2NvcmVfY2xrLAogCQkJcGVyZi0+cGVyZl90dW5lLm1pbl9idXNfdm90 ZSk7Ci0JaWYgKGxlbiA8IDAgfHwgbGVuID49IHNpemVvZihidWYpKQotCQlyZXR1cm4gMDsKLQot CWlmICgoY291bnQgPCBzaXplb2YoYnVmKSkgfHwgY29weV90b191c2VyKGJ1ZmYsIGJ1ZiwgbGVu KSkKLQkJcmV0dXJuIC1FRkFVTFQ7CiAKLQkqcHBvcyArPSBsZW47ICAgLyogaW5jcmVhc2Ugb2Zm c2V0ICovCi0KLQlyZXR1cm4gbGVuOworCXJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcihi dWZmLCBjb3VudCwgcHBvcywgYnVmLCBsZW4pOwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGZp bGVfb3BlcmF0aW9ucyBkcHVfY29yZV9wZXJmX21vZGVfZm9wcyA9IHsKQEAgLTUyNCw3MCArNDk5 LDQzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGRwdV9jb3JlX3BlcmZf bW9kZV9mb3BzID0gewogCS53cml0ZSA9IF9kcHVfY29yZV9wZXJmX21vZGVfd3JpdGUsCiB9Owog Ci1zdGF0aWMgdm9pZCBkcHVfY29yZV9wZXJmX2RlYnVnZnNfZGVzdHJveShzdHJ1Y3QgZHB1X2Nv cmVfcGVyZiAqcGVyZikKLXsKLQlkZWJ1Z2ZzX3JlbW92ZV9yZWN1cnNpdmUocGVyZi0+ZGVidWdm c19yb290KTsKLQlwZXJmLT5kZWJ1Z2ZzX3Jvb3QgPSBOVUxMOwotfQotCi1pbnQgZHB1X2NvcmVf cGVyZl9kZWJ1Z2ZzX2luaXQoc3RydWN0IGRwdV9jb3JlX3BlcmYgKnBlcmYsCi0JCXN0cnVjdCBk ZW50cnkgKnBhcmVudCkKK2ludCBkcHVfY29yZV9wZXJmX2RlYnVnZnNfaW5pdChzdHJ1Y3QgZHB1 X2ttcyAqZHB1X2ttcywgc3RydWN0IGRlbnRyeSAqcGFyZW50KQogeworCXN0cnVjdCBkcHVfY29y ZV9wZXJmICpwZXJmID0gJmRwdV9rbXMtPnBlcmY7CiAJc3RydWN0IGRwdV9tZHNzX2NmZyAqY2F0 YWxvZyA9IHBlcmYtPmNhdGFsb2c7Ci0Jc3RydWN0IG1zbV9kcm1fcHJpdmF0ZSAqcHJpdjsKLQlz dHJ1Y3QgZHB1X2ttcyAqZHB1X2ttczsKLQotCXByaXYgPSBwZXJmLT5kZXYtPmRldl9wcml2YXRl OwotCWlmICghcHJpdiB8fCAhcHJpdi0+a21zKSB7Ci0JCURQVV9FUlJPUigiaW52YWxpZCBLTVMg cmVmZXJlbmNlXG4iKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JZHB1X2ttcyA9IHRvX2Rw dV9rbXMocHJpdi0+a21zKTsKKwlzdHJ1Y3QgZGVudHJ5ICplbnRyeTsKIAotCXBlcmYtPmRlYnVn ZnNfcm9vdCA9IGRlYnVnZnNfY3JlYXRlX2RpcigiY29yZV9wZXJmIiwgcGFyZW50KTsKLQlpZiAo IXBlcmYtPmRlYnVnZnNfcm9vdCkgewotCQlEUFVfRVJST1IoImZhaWxlZCB0byBjcmVhdGUgY29y ZSBwZXJmIGRlYnVnZnNcbiIpOworCWVudHJ5ID0gZGVidWdmc19jcmVhdGVfZGlyKCJjb3JlX3Bl cmYiLCBwYXJlbnQpOworCWlmIChJU19FUlJfT1JfTlVMTChlbnRyeSkpCiAJCXJldHVybiAtRUlO VkFMOwotCX0KIAotCWRlYnVnZnNfY3JlYXRlX3U2NCgibWF4X2NvcmVfY2xrX3JhdGUiLCAwNjAw LCBwZXJmLT5kZWJ1Z2ZzX3Jvb3QsCisJZGVidWdmc19jcmVhdGVfdTY0KCJtYXhfY29yZV9jbGtf cmF0ZSIsIDA2MDAsIGVudHJ5LAogCQkJJnBlcmYtPm1heF9jb3JlX2Nsa19yYXRlKTsKLQlkZWJ1 Z2ZzX2NyZWF0ZV91NjQoImNvcmVfY2xrX3JhdGUiLCAwNjAwLCBwZXJmLT5kZWJ1Z2ZzX3Jvb3Qs CisJZGVidWdmc19jcmVhdGVfdTY0KCJjb3JlX2Nsa19yYXRlIiwgMDYwMCwgZW50cnksCiAJCQkm cGVyZi0+Y29yZV9jbGtfcmF0ZSk7Ci0JZGVidWdmc19jcmVhdGVfdTMyKCJlbmFibGVfYndfcmVs ZWFzZSIsIDA2MDAsIHBlcmYtPmRlYnVnZnNfcm9vdCwKKwlkZWJ1Z2ZzX2NyZWF0ZV91MzIoImVu YWJsZV9id19yZWxlYXNlIiwgMDYwMCwgZW50cnksCiAJCQkodTMyICopJnBlcmYtPmVuYWJsZV9i d19yZWxlYXNlKTsKLQlkZWJ1Z2ZzX2NyZWF0ZV91MzIoInRocmVzaG9sZF9sb3ciLCAwNjAwLCBw ZXJmLT5kZWJ1Z2ZzX3Jvb3QsCisJZGVidWdmc19jcmVhdGVfdTMyKCJ0aHJlc2hvbGRfbG93Iiwg MDYwMCwgZW50cnksCiAJCQkodTMyICopJmNhdGFsb2ctPnBlcmYubWF4X2J3X2xvdyk7Ci0JZGVi dWdmc19jcmVhdGVfdTMyKCJ0aHJlc2hvbGRfaGlnaCIsIDA2MDAsIHBlcmYtPmRlYnVnZnNfcm9v dCwKKwlkZWJ1Z2ZzX2NyZWF0ZV91MzIoInRocmVzaG9sZF9oaWdoIiwgMDYwMCwgZW50cnksCiAJ CQkodTMyICopJmNhdGFsb2ctPnBlcmYubWF4X2J3X2hpZ2gpOwotCWRlYnVnZnNfY3JlYXRlX3Uz MigibWluX2NvcmVfaWIiLCAwNjAwLCBwZXJmLT5kZWJ1Z2ZzX3Jvb3QsCisJZGVidWdmc19jcmVh dGVfdTMyKCJtaW5fY29yZV9pYiIsIDA2MDAsIGVudHJ5LAogCQkJKHUzMiAqKSZjYXRhbG9nLT5w ZXJmLm1pbl9jb3JlX2liKTsKLQlkZWJ1Z2ZzX2NyZWF0ZV91MzIoIm1pbl9sbGNjX2liIiwgMDYw MCwgcGVyZi0+ZGVidWdmc19yb290LAorCWRlYnVnZnNfY3JlYXRlX3UzMigibWluX2xsY2NfaWIi LCAwNjAwLCBlbnRyeSwKIAkJCSh1MzIgKikmY2F0YWxvZy0+cGVyZi5taW5fbGxjY19pYik7Ci0J ZGVidWdmc19jcmVhdGVfdTMyKCJtaW5fZHJhbV9pYiIsIDA2MDAsIHBlcmYtPmRlYnVnZnNfcm9v dCwKKwlkZWJ1Z2ZzX2NyZWF0ZV91MzIoIm1pbl9kcmFtX2liIiwgMDYwMCwgZW50cnksCiAJCQko dTMyICopJmNhdGFsb2ctPnBlcmYubWluX2RyYW1faWIpOwotCWRlYnVnZnNfY3JlYXRlX2ZpbGUo InBlcmZfbW9kZSIsIDA2MDAsIHBlcmYtPmRlYnVnZnNfcm9vdCwKKwlkZWJ1Z2ZzX2NyZWF0ZV9m aWxlKCJwZXJmX21vZGUiLCAwNjAwLCBlbnRyeSwKIAkJCSh1MzIgKilwZXJmLCAmZHB1X2NvcmVf cGVyZl9tb2RlX2ZvcHMpOwotCWRlYnVnZnNfY3JlYXRlX3U2NCgiZml4X2NvcmVfY2xrX3JhdGUi LCAwNjAwLCBwZXJmLT5kZWJ1Z2ZzX3Jvb3QsCisJZGVidWdmc19jcmVhdGVfdTY0KCJmaXhfY29y ZV9jbGtfcmF0ZSIsIDA2MDAsIGVudHJ5LAogCQkJJnBlcmYtPmZpeF9jb3JlX2Nsa19yYXRlKTsK LQlkZWJ1Z2ZzX2NyZWF0ZV91NjQoImZpeF9jb3JlX2liX3ZvdGUiLCAwNjAwLCBwZXJmLT5kZWJ1 Z2ZzX3Jvb3QsCisJZGVidWdmc19jcmVhdGVfdTY0KCJmaXhfY29yZV9pYl92b3RlIiwgMDYwMCwg ZW50cnksCiAJCQkmcGVyZi0+Zml4X2NvcmVfaWJfdm90ZSk7Ci0JZGVidWdmc19jcmVhdGVfdTY0 KCJmaXhfY29yZV9hYl92b3RlIiwgMDYwMCwgcGVyZi0+ZGVidWdmc19yb290LAorCWRlYnVnZnNf Y3JlYXRlX3U2NCgiZml4X2NvcmVfYWJfdm90ZSIsIDA2MDAsIGVudHJ5LAogCQkJJnBlcmYtPmZp eF9jb3JlX2FiX3ZvdGUpOwogCiAJcmV0dXJuIDA7CiB9Ci0jZWxzZQotc3RhdGljIHZvaWQgZHB1 X2NvcmVfcGVyZl9kZWJ1Z2ZzX2Rlc3Ryb3koc3RydWN0IGRwdV9jb3JlX3BlcmYgKnBlcmYpCi17 Ci19Ci0KLWludCBkcHVfY29yZV9wZXJmX2RlYnVnZnNfaW5pdChzdHJ1Y3QgZHB1X2NvcmVfcGVy ZiAqcGVyZiwKLQkJc3RydWN0IGRlbnRyeSAqcGFyZW50KQotewotCXJldHVybiAwOwotfQogI2Vu ZGlmCiAKIHZvaWQgZHB1X2NvcmVfcGVyZl9kZXN0cm95KHN0cnVjdCBkcHVfY29yZV9wZXJmICpw ZXJmKQpAQCAtNTk3LDcgKzU0NSw2IEBAIHZvaWQgZHB1X2NvcmVfcGVyZl9kZXN0cm95KHN0cnVj dCBkcHVfY29yZV9wZXJmICpwZXJmKQogCQlyZXR1cm47CiAJfQogCi0JZHB1X2NvcmVfcGVyZl9k ZWJ1Z2ZzX2Rlc3Ryb3kocGVyZik7CiAJcGVyZi0+bWF4X2NvcmVfY2xrX3JhdGUgPSAwOwogCXBl cmYtPmNvcmVfY2xrID0gTlVMTDsKIAlwZXJmLT5jYXRhbG9nID0gTlVMTDsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jb3JlX3BlcmYuaCBiL2RyaXZlcnMv Z3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jb3JlX3BlcmYuaAppbmRleCBjNzA4NDUxYTk0YTEu LjM3ZjUxODgxNWViNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEv ZHB1X2NvcmVfcGVyZi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9j b3JlX3BlcmYuaApAQCAtMTMwLDEyICsxMzAsMTMgQEAgaW50IGRwdV9jb3JlX3BlcmZfaW5pdChz dHJ1Y3QgZHB1X2NvcmVfcGVyZiAqcGVyZiwKIAkJc3RydWN0IGRwdV9tZHNzX2NmZyAqY2F0YWxv ZywKIAkJc3RydWN0IGRzc19jbGsgKmNvcmVfY2xrKTsKIAorc3RydWN0IGRwdV9rbXM7CisKIC8q KgogICogZHB1X2NvcmVfcGVyZl9kZWJ1Z2ZzX2luaXQgLSBpbml0aWFsaXplIGRlYnVnZnMgZm9y IGNvcmUgcGVyZm9ybWFuY2UgY29udGV4dAotICogQHBlcmY6IFBvaW50ZXIgdG8gY29yZSBwZXJm b3JtYW5jZSBjb250ZXh0CisgKiBAZHB1X2ttczogUG9pbnRlciB0byB0aGUgZHB1X2ttcyBzdHJ1 Y3QKICAqIEBkZWJ1Z2ZzX3BhcmVudDogUG9pbnRlciB0byBwYXJlbnQgZGVidWdmcwogICovCi1p bnQgZHB1X2NvcmVfcGVyZl9kZWJ1Z2ZzX2luaXQoc3RydWN0IGRwdV9jb3JlX3BlcmYgKnBlcmYs Ci0JCXN0cnVjdCBkZW50cnkgKnBhcmVudCk7CitpbnQgZHB1X2NvcmVfcGVyZl9kZWJ1Z2ZzX2lu aXQoc3RydWN0IGRwdV9rbXMgKmRwdV9rbXMsIHN0cnVjdCBkZW50cnkgKnBhcmVudCk7CiAKICNl bmRpZiAvKiBfRFBVX0NPUkVfUEVSRl9IXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L21zbS9kaXNwL2RwdTEvZHB1X2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUx L2RwdV9jcnRjLmMKaW5kZXggMzlhMGE2ODU0YjZjLi4zMDZlM2RmNmZkNjMgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuYwpAQCAtMTE3NCw5ICsxMTc0LDYgQEAgc3Rh dGljIGludCBfZHB1X2RlYnVnZnNfc3RhdHVzX3Nob3coc3RydWN0IHNlcV9maWxlICpzLCB2b2lk ICpkYXRhKQogCiAJaW50IGksIG91dF93aWR0aDsKIAotCWlmICghcyB8fCAhcy0+cHJpdmF0ZSkK LQkJcmV0dXJuIC1FSU5WQUw7Ci0KIAlkcHVfY3J0YyA9IHMtPnByaXZhdGU7CiAJY3J0YyA9ICZk cHVfY3J0Yy0+YmFzZTsKIApAQCAtMTMxNiw4ICsxMzEzLDcgQEAgREVGSU5FX0RQVV9ERUJVR0ZT X1NFUV9GT1BTKGRwdV9jcnRjX2RlYnVnZnNfc3RhdGUpOwogCiBzdGF0aWMgaW50IF9kcHVfY3J0 Y19pbml0X2RlYnVnZnMoc3RydWN0IGRybV9jcnRjICpjcnRjKQogewotCXN0cnVjdCBkcHVfY3J0 YyAqZHB1X2NydGM7Ci0Jc3RydWN0IGRwdV9rbXMgKmRwdV9rbXM7CisJc3RydWN0IGRwdV9jcnRj ICpkcHVfY3J0YyA9IHRvX2RwdV9jcnRjKGNydGMpOwogCiAJc3RhdGljIGNvbnN0IHN0cnVjdCBm aWxlX29wZXJhdGlvbnMgZGVidWdmc19zdGF0dXNfZm9wcyA9IHsKIAkJLm9wZW4gPQkJX2RwdV9k ZWJ1Z2ZzX3N0YXR1c19vcGVuLApAQCAtMTMyNiwxMiArMTMyMiw2IEBAIHN0YXRpYyBpbnQgX2Rw dV9jcnRjX2luaXRfZGVidWdmcyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJCS5yZWxlYXNlID0J c2luZ2xlX3JlbGVhc2UsCiAJfTsKIAotCWlmICghY3J0YykKLQkJcmV0dXJuIC1FSU5WQUw7Ci0J ZHB1X2NydGMgPSB0b19kcHVfY3J0YyhjcnRjKTsKLQotCWRwdV9rbXMgPSBfZHB1X2NydGNfZ2V0 X2ttcyhjcnRjKTsKLQogCWRwdV9jcnRjLT5kZWJ1Z2ZzX3Jvb3QgPSBkZWJ1Z2ZzX2NyZWF0ZV9k aXIoZHB1X2NydGMtPm5hbWUsCiAJCQljcnRjLT5kZXYtPnByaW1hcnktPmRlYnVnZnNfcm9vdCk7 CiAJaWYgKCFkcHVfY3J0Yy0+ZGVidWdmc19yb290KQpAQCAtMTM0OCwyNSArMTMzOCwxMSBAQCBz dGF0aWMgaW50IF9kcHVfY3J0Y19pbml0X2RlYnVnZnMoc3RydWN0IGRybV9jcnRjICpjcnRjKQog CiAJcmV0dXJuIDA7CiB9Ci0KLXN0YXRpYyB2b2lkIF9kcHVfY3J0Y19kZXN0cm95X2RlYnVnZnMo c3RydWN0IGRybV9jcnRjICpjcnRjKQotewotCXN0cnVjdCBkcHVfY3J0YyAqZHB1X2NydGM7Ci0K LQlpZiAoIWNydGMpCi0JCXJldHVybjsKLQlkcHVfY3J0YyA9IHRvX2RwdV9jcnRjKGNydGMpOwot CWRlYnVnZnNfcmVtb3ZlX3JlY3Vyc2l2ZShkcHVfY3J0Yy0+ZGVidWdmc19yb290KTsKLX0KICNl bHNlCiBzdGF0aWMgaW50IF9kcHVfY3J0Y19pbml0X2RlYnVnZnMoc3RydWN0IGRybV9jcnRjICpj cnRjKQogewogCXJldHVybiAwOwogfQotCi1zdGF0aWMgdm9pZCBfZHB1X2NydGNfZGVzdHJveV9k ZWJ1Z2ZzKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKLXsKLX0KICNlbmRpZiAvKiBDT05GSUdfREVC VUdfRlMgKi8KIAogc3RhdGljIGludCBkcHVfY3J0Y19sYXRlX3JlZ2lzdGVyKHN0cnVjdCBkcm1f Y3J0YyAqY3J0YykKQEAgLTEzNzYsNyArMTM1Miw5IEBAIHN0YXRpYyBpbnQgZHB1X2NydGNfbGF0 ZV9yZWdpc3RlcihzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAKIHN0YXRpYyB2b2lkIGRwdV9jcnRj X2Vhcmx5X3VucmVnaXN0ZXIoc3RydWN0IGRybV9jcnRjICpjcnRjKQogewotCV9kcHVfY3J0Y19k ZXN0cm95X2RlYnVnZnMoY3J0Yyk7CisJc3RydWN0IGRwdV9jcnRjICpkcHVfY3J0YyA9IHRvX2Rw dV9jcnRjKGNydGMpOworCisJZGVidWdmc19yZW1vdmVfcmVjdXJzaXZlKGRwdV9jcnRjLT5kZWJ1 Z2ZzX3Jvb3QpOwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jcnRjX2Z1bmNzIGRwdV9j cnRjX2Z1bmNzID0gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEv ZHB1X2VuY29kZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVy LmMKaW5kZXggYzFiYWFiNGM3MmQyLi4wZGRhNGE2MDM2ODUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuYwpAQCAtMTg2MywxNCArMTg2Myw5IEBAIHZvaWQg ZHB1X2VuY29kZXJfcHJlcGFyZV9jb21taXQoc3RydWN0IGRybV9lbmNvZGVyICpkcm1fZW5jKQog I2lmZGVmIENPTkZJR19ERUJVR19GUwogc3RhdGljIGludCBfZHB1X2VuY29kZXJfc3RhdHVzX3No b3coc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpkYXRhKQogewotCXN0cnVjdCBkcHVfZW5jb2Rl cl92aXJ0ICpkcHVfZW5jOworCXN0cnVjdCBkcHVfZW5jb2Rlcl92aXJ0ICpkcHVfZW5jID0gcy0+ cHJpdmF0ZTsKIAlpbnQgaTsKIAotCWlmICghcyB8fCAhcy0+cHJpdmF0ZSkKLQkJcmV0dXJuIC1F SU5WQUw7Ci0KLQlkcHVfZW5jID0gcy0+cHJpdmF0ZTsKLQogCW11dGV4X2xvY2soJmRwdV9lbmMt PmVuY19sb2NrKTsKIAlmb3IgKGkgPSAwOyBpIDwgZHB1X2VuYy0+bnVtX3BoeXNfZW5jczsgaSsr KSB7CiAJCXN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzICpwaHlzID0gZHB1X2VuYy0+cGh5c19lbmNz W2ldOwpAQCAtMTkwOCw3ICsxOTAzLDcgQEAgc3RhdGljIGludCBfZHB1X2VuY29kZXJfZGVidWdm c19zdGF0dXNfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLAogCiBzdGF0aWMgaW50IF9kcHVfZW5j b2Rlcl9pbml0X2RlYnVnZnMoc3RydWN0IGRybV9lbmNvZGVyICpkcm1fZW5jKQogewotCXN0cnVj dCBkcHVfZW5jb2Rlcl92aXJ0ICpkcHVfZW5jOworCXN0cnVjdCBkcHVfZW5jb2Rlcl92aXJ0ICpk cHVfZW5jID0gdG9fZHB1X2VuY29kZXJfdmlydChkcm1fZW5jKTsKIAlzdHJ1Y3QgbXNtX2RybV9w cml2YXRlICpwcml2OwogCXN0cnVjdCBkcHVfa21zICpkcHVfa21zOwogCWludCBpOwpAQCAtMTky MiwxMiArMTkxNywxMSBAQCBzdGF0aWMgaW50IF9kcHVfZW5jb2Rlcl9pbml0X2RlYnVnZnMoc3Ry dWN0IGRybV9lbmNvZGVyICpkcm1fZW5jKQogCiAJY2hhciBuYW1lW0RQVV9OQU1FX1NJWkVdOwog Ci0JaWYgKCFkcm1fZW5jIHx8ICFkcm1fZW5jLT5kZXYgfHwgIWRybV9lbmMtPmRldi0+ZGV2X3By aXZhdGUpIHsKKwlpZiAoIWRybV9lbmMtPmRldiB8fCAhZHJtX2VuYy0+ZGV2LT5kZXZfcHJpdmF0 ZSkgewogCQlEUFVfRVJST1IoImludmFsaWQgZW5jb2RlciBvciBrbXNcbiIpOwogCQlyZXR1cm4g LUVJTlZBTDsKIAl9CiAKLQlkcHVfZW5jID0gdG9fZHB1X2VuY29kZXJfdmlydChkcm1fZW5jKTsK IAlwcml2ID0gZHJtX2VuYy0+ZGV2LT5kZXZfcHJpdmF0ZTsKIAlkcHVfa21zID0gdG9fZHB1X2tt cyhwcml2LT5rbXMpOwogCkBAIC0xOTUyLDI2ICsxOTQ2LDExIEBAIHN0YXRpYyBpbnQgX2RwdV9l bmNvZGVyX2luaXRfZGVidWdmcyhzdHJ1Y3QgZHJtX2VuY29kZXIgKmRybV9lbmMpCiAKIAlyZXR1 cm4gMDsKIH0KLQotc3RhdGljIHZvaWQgX2RwdV9lbmNvZGVyX2Rlc3Ryb3lfZGVidWdmcyhzdHJ1 Y3QgZHJtX2VuY29kZXIgKmRybV9lbmMpCi17Ci0Jc3RydWN0IGRwdV9lbmNvZGVyX3ZpcnQgKmRw dV9lbmM7Ci0KLQlpZiAoIWRybV9lbmMpCi0JCXJldHVybjsKLQotCWRwdV9lbmMgPSB0b19kcHVf ZW5jb2Rlcl92aXJ0KGRybV9lbmMpOwotCWRlYnVnZnNfcmVtb3ZlX3JlY3Vyc2l2ZShkcHVfZW5j LT5kZWJ1Z2ZzX3Jvb3QpOwotfQogI2Vsc2UKIHN0YXRpYyBpbnQgX2RwdV9lbmNvZGVyX2luaXRf ZGVidWdmcyhzdHJ1Y3QgZHJtX2VuY29kZXIgKmRybV9lbmMpCiB7CiAJcmV0dXJuIDA7CiB9Ci0K LXN0YXRpYyB2b2lkIF9kcHVfZW5jb2Rlcl9kZXN0cm95X2RlYnVnZnMoc3RydWN0IGRybV9lbmNv ZGVyICpkcm1fZW5jKQotewotfQogI2VuZGlmCiAKIHN0YXRpYyBpbnQgZHB1X2VuY29kZXJfbGF0 ZV9yZWdpc3RlcihzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCkBAIC0xOTgxLDcgKzE5NjAs OSBAQCBzdGF0aWMgaW50IGRwdV9lbmNvZGVyX2xhdGVfcmVnaXN0ZXIoc3RydWN0IGRybV9lbmNv ZGVyICplbmNvZGVyKQogCiBzdGF0aWMgdm9pZCBkcHVfZW5jb2Rlcl9lYXJseV91bnJlZ2lzdGVy KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKIHsKLQlfZHB1X2VuY29kZXJfZGVzdHJveV9k ZWJ1Z2ZzKGVuY29kZXIpOworCXN0cnVjdCBkcHVfZW5jb2Rlcl92aXJ0ICpkcHVfZW5jID0gdG9f ZHB1X2VuY29kZXJfdmlydChlbmNvZGVyKTsKKworCWRlYnVnZnNfcmVtb3ZlX3JlY3Vyc2l2ZShk cHVfZW5jLT5kZWJ1Z2ZzX3Jvb3QpOwogfQogCiBzdGF0aWMgaW50IGRwdV9lbmNvZGVyX3ZpcnRf YWRkX3BoeXNfZW5jcygKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUx L2RwdV9rbXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9rbXMuYwppbmRl eCA4NDIyNTA1NjY5MTUuLmQxMGEwY2U2NDA4MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L21zbS9kaXNwL2RwdTEvZHB1X2ttcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9k cHUxL2RwdV9rbXMuYwpAQCAtODEsNyArODEsNyBAQCBzdGF0aWMgaW50IF9kcHVfZGFuZ2VyX3Np Z25hbF9zdGF0dXMoc3RydWN0IHNlcV9maWxlICpzLAogCXN0cnVjdCBkcHVfZGFuZ2VyX3NhZmVf c3RhdHVzIHN0YXR1czsKIAlpbnQgaTsKIAotCWlmICgha21zIHx8ICFrbXMtPmRldiB8fCAha21z LT5kZXYtPmRldl9wcml2YXRlIHx8ICFrbXMtPmh3X21kcCkgeworCWlmICgha21zLT5kZXYgfHwg IWttcy0+ZGV2LT5kZXZfcHJpdmF0ZSB8fCAha21zLT5od19tZHApIHsKIAkJRFBVX0VSUk9SKCJp bnZhbGlkIGFyZyhzKVxuIik7CiAJCXJldHVybiAwOwogCX0KQEAgLTEzOCw0NiArMTM4LDI5IEBA IHN0YXRpYyBpbnQgZHB1X2RlYnVnZnNfc2FmZV9zdGF0c19zaG93KHN0cnVjdCBzZXFfZmlsZSAq cywgdm9pZCAqdikKIH0KIERFRklORV9EUFVfREVCVUdGU19TRVFfRk9QUyhkcHVfZGVidWdmc19z YWZlX3N0YXRzKTsKIAotc3RhdGljIHZvaWQgZHB1X2RlYnVnZnNfZGFuZ2VyX2Rlc3Ryb3koc3Ry dWN0IGRwdV9rbXMgKmRwdV9rbXMpCi17Ci0JZGVidWdmc19yZW1vdmVfcmVjdXJzaXZlKGRwdV9r bXMtPmRlYnVnZnNfZGFuZ2VyKTsKLQlkcHVfa21zLT5kZWJ1Z2ZzX2RhbmdlciA9IE5VTEw7Ci19 Ci0KLXN0YXRpYyBpbnQgZHB1X2RlYnVnZnNfZGFuZ2VyX2luaXQoc3RydWN0IGRwdV9rbXMgKmRw dV9rbXMsCitzdGF0aWMgdm9pZCBkcHVfZGVidWdmc19kYW5nZXJfaW5pdChzdHJ1Y3QgZHB1X2tt cyAqZHB1X2ttcywKIAkJc3RydWN0IGRlbnRyeSAqcGFyZW50KQogewotCWRwdV9rbXMtPmRlYnVn ZnNfZGFuZ2VyID0gZGVidWdmc19jcmVhdGVfZGlyKCJkYW5nZXIiLAotCQkJcGFyZW50KTsKLQlp ZiAoIWRwdV9rbXMtPmRlYnVnZnNfZGFuZ2VyKSB7Ci0JCURQVV9FUlJPUigiZmFpbGVkIHRvIGNy ZWF0ZSBkYW5nZXIgZGVidWdmc1xuIik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KKwlzdHJ1Y3Qg ZGVudHJ5ICplbnRyeSA9IGRlYnVnZnNfY3JlYXRlX2RpcigiZGFuZ2VyIiwgcGFyZW50KTsKKwlp ZiAoSVNfRVJSX09SX05VTEwoZW50cnkpKQorCQlyZXR1cm47CiAKLQlkZWJ1Z2ZzX2NyZWF0ZV9m aWxlKCJkYW5nZXJfc3RhdHVzIiwgMDYwMCwgZHB1X2ttcy0+ZGVidWdmc19kYW5nZXIsCisJZGVi dWdmc19jcmVhdGVfZmlsZSgiZGFuZ2VyX3N0YXR1cyIsIDA2MDAsIGVudHJ5LAogCQkJZHB1X2tt cywgJmRwdV9kZWJ1Z2ZzX2Rhbmdlcl9zdGF0c19mb3BzKTsKLQlkZWJ1Z2ZzX2NyZWF0ZV9maWxl KCJzYWZlX3N0YXR1cyIsIDA2MDAsIGRwdV9rbXMtPmRlYnVnZnNfZGFuZ2VyLAorCWRlYnVnZnNf Y3JlYXRlX2ZpbGUoInNhZmVfc3RhdHVzIiwgMDYwMCwgZW50cnksCiAJCQlkcHVfa21zLCAmZHB1 X2RlYnVnZnNfc2FmZV9zdGF0c19mb3BzKTsKLQotCXJldHVybiAwOwogfQogCiBzdGF0aWMgaW50 IF9kcHVfZGVidWdmc19zaG93X3JlZ3NldDMyKHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqZGF0 YSkKIHsKLQlzdHJ1Y3QgZHB1X2RlYnVnZnNfcmVnc2V0MzIgKnJlZ3NldDsKLQlzdHJ1Y3QgZHB1 X2ttcyAqZHB1X2ttczsKKwlzdHJ1Y3QgZHB1X2RlYnVnZnNfcmVnc2V0MzIgKnJlZ3NldCA9IHMt PnByaXZhdGU7CisJc3RydWN0IGRwdV9rbXMgKmRwdV9rbXMgPSByZWdzZXQtPmRwdV9rbXM7CiAJ c3RydWN0IGRybV9kZXZpY2UgKmRldjsKIAlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2Owog CXZvaWQgX19pb21lbSAqYmFzZTsKIAl1aW50MzJfdCBpLCBhZGRyOwogCi0JaWYgKCFzIHx8ICFz LT5wcml2YXRlKQotCQlyZXR1cm4gMDsKLQotCXJlZ3NldCA9IHMtPnByaXZhdGU7Ci0KLQlkcHVf a21zID0gcmVnc2V0LT5kcHVfa21zOwotCWlmICghZHB1X2ttcyB8fCAhZHB1X2ttcy0+bW1pbykK KwlpZiAoIWRwdV9rbXMtPm1taW8pCiAJCXJldHVybiAwOwogCiAJZGV2ID0gZHB1X2ttcy0+ZGV2 OwpAQCAtMjUwLDUxICsyMzMsMjQgQEAgdm9pZCAqZHB1X2RlYnVnZnNfY3JlYXRlX3JlZ3NldDMy KGNvbnN0IGNoYXIgKm5hbWUsIHVtb2RlX3QgbW9kZSwKIAogc3RhdGljIGludCBfZHB1X2RlYnVn ZnNfaW5pdChzdHJ1Y3QgZHB1X2ttcyAqZHB1X2ttcykKIHsKLQl2b2lkICpwOwotCWludCByYzsK LQotCXAgPSBkcHVfaHdfdXRpbF9nZXRfbG9nX21hc2tfcHRyKCk7CisJdm9pZCAqcCA9IGRwdV9o d191dGlsX2dldF9sb2dfbWFza19wdHIoKTsKKwlzdHJ1Y3QgZGVudHJ5ICplbnRyeTsKIAotCWlm ICghZHB1X2ttcyB8fCAhcCkKKwlpZiAoIXApCiAJCXJldHVybiAtRUlOVkFMOwogCi0JZHB1X2tt cy0+ZGVidWdmc19yb290ID0gZGVidWdmc19jcmVhdGVfZGlyKCJkZWJ1ZyIsCi0JCQkJCSAgIGRw dV9rbXMtPmRldi0+cHJpbWFyeS0+ZGVidWdmc19yb290KTsKLQlpZiAoSVNfRVJSX09SX05VTEwo ZHB1X2ttcy0+ZGVidWdmc19yb290KSkgewotCQlEUk1fRVJST1IoImRlYnVnZnMgY3JlYXRlX2Rp ciBmYWlsZWQgJWxkXG4iLAotCQkJICBQVFJfRVJSKGRwdV9rbXMtPmRlYnVnZnNfcm9vdCkpOwot CQlyZXR1cm4gUFRSX0VSUihkcHVfa21zLT5kZWJ1Z2ZzX3Jvb3QpOwotCX0KKwllbnRyeSA9IGRl YnVnZnNfY3JlYXRlX2RpcigiZGVidWciLCBkcHVfa21zLT5kZXYtPnByaW1hcnktPmRlYnVnZnNf cm9vdCk7CisJaWYgKElTX0VSUl9PUl9OVUxMKGVudHJ5KSkKKwkJcmV0dXJuIC1FTk9ERVY7CiAK IAkvKiBhbGxvdyByb290IHRvIGJlIE5VTEwgKi8KLQlkZWJ1Z2ZzX2NyZWF0ZV94MzIoRFBVX0RF QlVHRlNfSFdNQVNLTkFNRSwgMDYwMCwgZHB1X2ttcy0+ZGVidWdmc19yb290LCBwKTsKLQotCSh2 b2lkKSBkcHVfZGVidWdmc19kYW5nZXJfaW5pdChkcHVfa21zLCBkcHVfa21zLT5kZWJ1Z2ZzX3Jv b3QpOwotCSh2b2lkKSBkcHVfZGVidWdmc192YmlmX2luaXQoZHB1X2ttcywgZHB1X2ttcy0+ZGVi dWdmc19yb290KTsKLQkodm9pZCkgZHB1X2RlYnVnZnNfY29yZV9pcnFfaW5pdChkcHVfa21zLCBk cHVfa21zLT5kZWJ1Z2ZzX3Jvb3QpOworCWRlYnVnZnNfY3JlYXRlX3gzMihEUFVfREVCVUdGU19I V01BU0tOQU1FLCAwNjAwLCBlbnRyeSwgcCk7CiAKLQlyYyA9IGRwdV9jb3JlX3BlcmZfZGVidWdm c19pbml0KCZkcHVfa21zLT5wZXJmLCBkcHVfa21zLT5kZWJ1Z2ZzX3Jvb3QpOwotCWlmIChyYykg ewotCQlEUFVfRVJST1IoImZhaWxlZCB0byBpbml0IHBlcmYgJWRcbiIsIHJjKTsKLQkJcmV0dXJu IHJjOwotCX0KKwlkcHVfZGVidWdmc19kYW5nZXJfaW5pdChkcHVfa21zLCBlbnRyeSk7CisJZHB1 X2RlYnVnZnNfdmJpZl9pbml0KGRwdV9rbXMsIGVudHJ5KTsKKwlkcHVfZGVidWdmc19jb3JlX2ly cV9pbml0KGRwdV9rbXMsIGVudHJ5KTsKIAotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBf ZHB1X2RlYnVnZnNfZGVzdHJveShzdHJ1Y3QgZHB1X2ttcyAqZHB1X2ttcykKLXsKLQkvKiBkb24n dCBuZWVkIHRvIE5VTEwgY2hlY2sgZGVidWdmc19yb290ICovCi0JaWYgKGRwdV9rbXMpIHsKLQkJ ZHB1X2RlYnVnZnNfdmJpZl9kZXN0cm95KGRwdV9rbXMpOwotCQlkcHVfZGVidWdmc19kYW5nZXJf ZGVzdHJveShkcHVfa21zKTsKLQkJZHB1X2RlYnVnZnNfY29yZV9pcnFfZGVzdHJveShkcHVfa21z KTsKLQkJZGVidWdmc19yZW1vdmVfcmVjdXJzaXZlKGRwdV9rbXMtPmRlYnVnZnNfcm9vdCk7Ci0J fQotfQotI2Vsc2UKLXN0YXRpYyB2b2lkIF9kcHVfZGVidWdmc19kZXN0cm95KHN0cnVjdCBkcHVf a21zICpkcHVfa21zKQoteworCXJldHVybiBkcHVfY29yZV9wZXJmX2RlYnVnZnNfaW5pdChkcHVf a21zLCBlbnRyeSk7CiB9CiAjZW5kaWYKIApAQCAtNjIwLDIyICs1NzYsNyBAQCBzdGF0aWMgaW50 IF9kcHVfa21zX2RybV9vYmpfaW5pdChzdHJ1Y3QgZHB1X2ttcyAqZHB1X2ttcykKICNpZmRlZiBD T05GSUdfREVCVUdfRlMKIHN0YXRpYyBpbnQgZHB1X2ttc19kZWJ1Z2ZzX2luaXQoc3RydWN0IG1z bV9rbXMgKmttcywgc3RydWN0IGRybV9taW5vciAqbWlub3IpCiB7Ci0Jc3RydWN0IGRwdV9rbXMg KmRwdV9rbXMgPSB0b19kcHVfa21zKGttcyk7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldjsKLQlp bnQgcmM7Ci0KLQlpZiAoIWRwdV9rbXMgfHwgIWRwdV9rbXMtPmRldiB8fCAhZHB1X2ttcy0+ZGV2 LT5kZXYpIHsKLQkJRFBVX0VSUk9SKCJpbnZhbGlkIGRwdV9rbXNcbiIpOwotCQlyZXR1cm4gLUVJ TlZBTDsKLQl9Ci0KLQlkZXYgPSBkcHVfa21zLT5kZXY7Ci0KLQlyYyA9IF9kcHVfZGVidWdmc19p bml0KGRwdV9rbXMpOwotCWlmIChyYykKLQkJRFBVX0VSUk9SKCJkcHVfZGVidWdmcyBpbml0IGZh aWxlZDogJWRcbiIsIHJjKTsKLQotCXJldHVybiByYzsKKwlyZXR1cm4gX2RwdV9kZWJ1Z2ZzX2lu aXQodG9fZHB1X2ttcyhrbXMpKTsKIH0KICNlbmRpZgogCkBAIC02NTksNyArNjAwLDYgQEAgc3Rh dGljIHZvaWQgX2RwdV9rbXNfaHdfZGVzdHJveShzdHJ1Y3QgZHB1X2ttcyAqZHB1X2ttcykKIAlk cHVfa21zLT5od19pbnRyID0gTlVMTDsKIAogCS8qIHNhZmUgdG8gY2FsbCB0aGVzZSBtb3JlIHRo YW4gb25jZSBkdXJpbmcgc2h1dGRvd24gKi8KLQlfZHB1X2RlYnVnZnNfZGVzdHJveShkcHVfa21z KTsKIAlfZHB1X2ttc19tbXVfZGVzdHJveShkcHVfa21zKTsKIAogCWlmIChkcHVfa21zLT5jYXRh bG9nKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfa21z LmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfa21zLmgKaW5kZXggYzE1ZDIz OWU5ODMyLi5hYzc1Y2ZjMjY3ZjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlz cC9kcHUxL2RwdV9rbXMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVf a21zLmgKQEAgLTEwMiw3ICsxMDIsNiBAQCBzdHJ1Y3QgZHB1X2lycSB7CiAJYXRvbWljX3QgKmVu YWJsZV9jb3VudHM7CiAJYXRvbWljX3QgKmlycV9jb3VudHM7CiAJc3BpbmxvY2tfdCBjYl9sb2Nr OwotCXN0cnVjdCBkZW50cnkgKmRlYnVnZnNfZmlsZTsKIH07CiAKIHN0cnVjdCBkcHVfa21zIHsK QEAgLTExMSwxMSArMTEwLDYgQEAgc3RydWN0IGRwdV9rbXMgewogCWludCBjb3JlX3JldjsKIAlz dHJ1Y3QgZHB1X21kc3NfY2ZnICpjYXRhbG9nOwogCi0JLyogZGlyZWN0b3J5IGVudHJ5IGZvciBk ZWJ1Z2ZzICovCi0Jc3RydWN0IGRlbnRyeSAqZGVidWdmc19yb290OwotCXN0cnVjdCBkZW50cnkg KmRlYnVnZnNfZGFuZ2VyOwotCXN0cnVjdCBkZW50cnkgKmRlYnVnZnNfdmJpZjsKLQogCS8qIGlv L3JlZ2lzdGVyIHNwYWNlczogKi8KIAl2b2lkIF9faW9tZW0gKm1taW8sICp2YmlmW1ZCSUZfTUFY XSwgKnJlZ19kbWE7CiAJdW5zaWduZWQgbG9uZyBtbWlvX2xlbiwgdmJpZl9sZW5bVkJJRl9NQVhd LCByZWdfZG1hX2xlbjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUx L2RwdV9tZHNzLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfbWRzcy5jCmlu ZGV4IGI3OTYzZjZiYjg2NS4uNDEzZTFlZTQzY2YyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vbXNtL2Rpc3AvZHB1MS9kcHVfbWRzcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlz cC9kcHUxL2RwdV9tZHNzLmMKQEAgLTEyMCwxMyArMTIwLDEyIEBAIHN0YXRpYyBpbnQgX2RwdV9t ZHNzX2lycV9kb21haW5fYWRkKHN0cnVjdCBkcHVfbWRzcyAqZHB1X21kc3MpCiAJcmV0dXJuIDA7 CiB9CiAKLXN0YXRpYyBpbnQgX2RwdV9tZHNzX2lycV9kb21haW5fZmluaShzdHJ1Y3QgZHB1X21k c3MgKmRwdV9tZHNzKQorc3RhdGljIHZvaWQgX2RwdV9tZHNzX2lycV9kb21haW5fZmluaShzdHJ1 Y3QgZHB1X21kc3MgKmRwdV9tZHNzKQogewogCWlmIChkcHVfbWRzcy0+aXJxX2NvbnRyb2xsZXIu ZG9tYWluKSB7CiAJCWlycV9kb21haW5fcmVtb3ZlKGRwdV9tZHNzLT5pcnFfY29udHJvbGxlci5k b21haW4pOwogCQlkcHVfbWRzcy0+aXJxX2NvbnRyb2xsZXIuZG9tYWluID0gTlVMTDsKIAl9Ci0J cmV0dXJuIDA7CiB9CiBzdGF0aWMgaW50IGRwdV9tZHNzX2VuYWJsZShzdHJ1Y3QgbXNtX21kc3Mg Km1kc3MpCiB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVf cGxhbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9wbGFuZS5jCmluZGV4 IDk4ZDgzMTVmNjI1ZC4uYmNkOGQ0NmZmYzM4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v bXNtL2Rpc3AvZHB1MS9kcHVfcGxhbmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3Av ZHB1MS9kcHVfcGxhbmUuYwpAQCAtMTI2NCwyNiArMTI2NCwxMiBAQCBzdGF0aWMgc3NpemVfdCBf ZHB1X3BsYW5lX2Rhbmdlcl9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLAogCQkJY2hhciBfX3VzZXIg KmJ1ZmYsIHNpemVfdCBjb3VudCwgbG9mZl90ICpwcG9zKQogewogCXN0cnVjdCBkcHVfa21zICpr bXMgPSBmaWxlLT5wcml2YXRlX2RhdGE7Ci0Jc3RydWN0IGRwdV9tZHNzX2NmZyAqY2ZnID0ga21z LT5jYXRhbG9nOwotCWludCBsZW4gPSAwOwotCWNoYXIgYnVmWzQwXSA9IHsnXDAnfTsKKwlpbnQg bGVuOworCWNoYXIgYnVmWzQwXTsKIAotCWlmICghY2ZnKQotCQlyZXR1cm4gLUVOT0RFVjsKKwls ZW4gPSBzY25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIiVkXG4iLCAha21zLT5oYXNfZGFuZ2Vy X2N0cmwpOwogCi0JaWYgKCpwcG9zKQotCQlyZXR1cm4gMDsgLyogdGhlIGVuZCAqLwotCi0JbGVu ID0gc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIiVkXG4iLCAha21zLT5oYXNfZGFuZ2VyX2N0 cmwpOwotCWlmIChsZW4gPCAwIHx8IGxlbiA+PSBzaXplb2YoYnVmKSkKLQkJcmV0dXJuIDA7Ci0K LQlpZiAoKGNvdW50IDwgc2l6ZW9mKGJ1ZikpIHx8IGNvcHlfdG9fdXNlcihidWZmLCBidWYsIGxl bikpCi0JCXJldHVybiAtRUZBVUxUOwotCi0JKnBwb3MgKz0gbGVuOyAgIC8qIGluY3JlYXNlIG9m ZnNldCAqLwotCi0JcmV0dXJuIGxlbjsKKwlyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIo YnVmZiwgY291bnQsIHBwb3MsIGJ1ZiwgbGVuKTsKIH0KIAogc3RhdGljIHZvaWQgX2RwdV9wbGFu ZV9zZXRfZGFuZ2VyX3N0YXRlKHN0cnVjdCBkcHVfa21zICprbXMsIGJvb2wgZW5hYmxlKQpAQCAt MTMxMywyMyArMTI5OSwxMiBAQCBzdGF0aWMgc3NpemVfdCBfZHB1X3BsYW5lX2Rhbmdlcl93cml0 ZShzdHJ1Y3QgZmlsZSAqZmlsZSwKIAkJICAgIGNvbnN0IGNoYXIgX191c2VyICp1c2VyX2J1Ziwg c2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3MpCiB7CiAJc3RydWN0IGRwdV9rbXMgKmttcyA9IGZp bGUtPnByaXZhdGVfZGF0YTsKLQlzdHJ1Y3QgZHB1X21kc3NfY2ZnICpjZmcgPSBrbXMtPmNhdGFs b2c7CiAJaW50IGRpc2FibGVfcGFuaWM7Ci0JY2hhciBidWZbMTBdOwotCi0JaWYgKCFjZmcpCi0J CXJldHVybiAtRUZBVUxUOwotCi0JaWYgKGNvdW50ID49IHNpemVvZihidWYpKQotCQlyZXR1cm4g LUVGQVVMVDsKLQotCWlmIChjb3B5X2Zyb21fdXNlcihidWYsIHVzZXJfYnVmLCBjb3VudCkpCi0J CXJldHVybiAtRUZBVUxUOwotCi0JYnVmW2NvdW50XSA9IDA7CS8qIGVuZCBvZiBzdHJpbmcgKi8K KwlpbnQgcmV0OwogCi0JaWYgKGtzdHJ0b2ludChidWYsIDAsICZkaXNhYmxlX3BhbmljKSkKLQkJ cmV0dXJuIC1FRkFVTFQ7CisJcmV0ID0ga3N0cnRvdWludF9mcm9tX3VzZXIodXNlcl9idWYsIGNv dW50LCAwLCAmZGlzYWJsZV9wYW5pYyk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKIAogCWlm IChkaXNhYmxlX3BhbmljKSB7CiAJCS8qIERpc2FibGUgcGFuaWMgc2lnbmFsIGZvciBhbGwgYWN0 aXZlIHBpcGVzICovCkBAIC0xMzU0LDMzICsxMzI5LDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg ZmlsZV9vcGVyYXRpb25zIGRwdV9wbGFuZV9kYW5nZXJfZW5hYmxlID0gewogCiBzdGF0aWMgaW50 IF9kcHVfcGxhbmVfaW5pdF9kZWJ1Z2ZzKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQogewotCXN0 cnVjdCBkcHVfcGxhbmUgKnBkcHU7Ci0Jc3RydWN0IGRwdV9rbXMgKmttczsKLQlzdHJ1Y3QgbXNt X2RybV9wcml2YXRlICpwcml2OwotCWNvbnN0IHN0cnVjdCBkcHVfc3NwcF9zdWJfYmxrcyAqc2Js ayA9IDA7Ci0JY29uc3Qgc3RydWN0IGRwdV9zc3BwX2NmZyAqY2ZnID0gMDsKLQotCWlmICghcGxh bmUgfHwgIXBsYW5lLT5kZXYpIHsKLQkJRFBVX0VSUk9SKCJpbnZhbGlkIGFyZ3VtZW50c1xuIik7 Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCXByaXYgPSBwbGFuZS0+ZGV2LT5kZXZfcHJpdmF0 ZTsKLQlpZiAoIXByaXYgfHwgIXByaXYtPmttcykgewotCQlEUFVfRVJST1IoImludmFsaWQgS01T IHJlZmVyZW5jZVxuIik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWttcyA9IHRvX2RwdV9r bXMocHJpdi0+a21zKTsKLQlwZHB1ID0gdG9fZHB1X3BsYW5lKHBsYW5lKTsKLQotCWlmIChwZHB1 ICYmIHBkcHUtPnBpcGVfaHcpCi0JCWNmZyA9IHBkcHUtPnBpcGVfaHctPmNhcDsKLQlpZiAoY2Zn KQotCQlzYmxrID0gY2ZnLT5zYmxrOwotCi0JaWYgKCFzYmxrKQotCQlyZXR1cm4gMDsKKwlzdHJ1 Y3QgZHB1X3BsYW5lICpwZHB1ID0gdG9fZHB1X3BsYW5lKHBsYW5lKTsKKwlzdHJ1Y3QgZHB1X2tt cyAqa21zID0gX2RwdV9wbGFuZV9nZXRfa21zKHBsYW5lKTsKKwljb25zdCBzdHJ1Y3QgZHB1X3Nz cHBfY2ZnICpjZmcgPSBwZHB1LT5waXBlX2h3LT5jYXA7CisJY29uc3Qgc3RydWN0IGRwdV9zc3Bw X3N1Yl9ibGtzICpzYmxrID0gY2ZnLT5zYmxrOwogCiAJLyogY3JlYXRlIG92ZXJhbGwgc3ViLWRp cmVjdG9yeSBmb3IgdGhlIHBpcGUgKi8KIAlwZHB1LT5kZWJ1Z2ZzX3Jvb3QgPQpAQCAtMTQ1MSwy NSArMTQwMywxMSBAQCBzdGF0aWMgaW50IF9kcHVfcGxhbmVfaW5pdF9kZWJ1Z2ZzKHN0cnVjdCBk cm1fcGxhbmUgKnBsYW5lKQogCiAJcmV0dXJuIDA7CiB9Ci0KLXN0YXRpYyB2b2lkIF9kcHVfcGxh bmVfZGVzdHJveV9kZWJ1Z2ZzKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQotewotCXN0cnVjdCBk cHVfcGxhbmUgKnBkcHU7Ci0KLQlpZiAoIXBsYW5lKQotCQlyZXR1cm47Ci0JcGRwdSA9IHRvX2Rw dV9wbGFuZShwbGFuZSk7Ci0KLQlkZWJ1Z2ZzX3JlbW92ZV9yZWN1cnNpdmUocGRwdS0+ZGVidWdm c19yb290KTsKLX0KICNlbHNlCiBzdGF0aWMgaW50IF9kcHVfcGxhbmVfaW5pdF9kZWJ1Z2ZzKHN0 cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQogewogCXJldHVybiAwOwogfQotc3RhdGljIHZvaWQgX2Rw dV9wbGFuZV9kZXN0cm95X2RlYnVnZnMoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpCi17Ci19CiAj ZW5kaWYKIAogc3RhdGljIGludCBkcHVfcGxhbmVfbGF0ZV9yZWdpc3RlcihzdHJ1Y3QgZHJtX3Bs YW5lICpwbGFuZSkKQEAgLTE0NzksNyArMTQxNyw5IEBAIHN0YXRpYyBpbnQgZHB1X3BsYW5lX2xh dGVfcmVnaXN0ZXIoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpCiAKIHN0YXRpYyB2b2lkIGRwdV9w bGFuZV9lYXJseV91bnJlZ2lzdGVyKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQogewotCV9kcHVf cGxhbmVfZGVzdHJveV9kZWJ1Z2ZzKHBsYW5lKTsKKwlzdHJ1Y3QgZHB1X3BsYW5lICpwZHB1ID0g dG9fZHB1X3BsYW5lKHBsYW5lKTsKKworCWRlYnVnZnNfcmVtb3ZlX3JlY3Vyc2l2ZShwZHB1LT5k ZWJ1Z2ZzX3Jvb3QpOwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9wbGFuZV9mdW5jcyBk cHVfcGxhbmVfZnVuY3MgPSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3Av ZHB1MS9kcHVfdmJpZi5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3ZiaWYu YwppbmRleCBmZjUwOTFkMjU1NWQuLmVmNzUzZWE5YzQ5OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3ZiaWYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNt L2Rpc3AvZHB1MS9kcHVfdmJpZi5jCkBAIC0zMTAsMzEgKzMxMCwyNSBAQCB2b2lkIGRwdV92Ymlm X2luaXRfbWVtdHlwZXMoc3RydWN0IGRwdV9rbXMgKmRwdV9rbXMpCiB9CiAKICNpZmRlZiBDT05G SUdfREVCVUdfRlMKLXZvaWQgZHB1X2RlYnVnZnNfdmJpZl9kZXN0cm95KHN0cnVjdCBkcHVfa21z ICpkcHVfa21zKQotewotCWRlYnVnZnNfcmVtb3ZlX3JlY3Vyc2l2ZShkcHVfa21zLT5kZWJ1Z2Zz X3ZiaWYpOwotCWRwdV9rbXMtPmRlYnVnZnNfdmJpZiA9IE5VTEw7Ci19CiAKLWludCBkcHVfZGVi dWdmc192YmlmX2luaXQoc3RydWN0IGRwdV9rbXMgKmRwdV9rbXMsIHN0cnVjdCBkZW50cnkgKmRl YnVnZnNfcm9vdCkKK3ZvaWQgZHB1X2RlYnVnZnNfdmJpZl9pbml0KHN0cnVjdCBkcHVfa21zICpk cHVfa21zLCBzdHJ1Y3QgZGVudHJ5ICpkZWJ1Z2ZzX3Jvb3QpCiB7CiAJY2hhciB2YmlmX25hbWVb MzJdOwotCXN0cnVjdCBkZW50cnkgKmRlYnVnZnNfdmJpZjsKKwlzdHJ1Y3QgZGVudHJ5ICplbnRy eSwgKmRlYnVnZnNfdmJpZjsKIAlpbnQgaSwgajsKIAotCWRwdV9rbXMtPmRlYnVnZnNfdmJpZiA9 IGRlYnVnZnNfY3JlYXRlX2RpcigidmJpZiIsIGRlYnVnZnNfcm9vdCk7Ci0JaWYgKCFkcHVfa21z LT5kZWJ1Z2ZzX3ZiaWYpIHsKLQkJRFBVX0VSUk9SKCJmYWlsZWQgdG8gY3JlYXRlIHZiaWYgZGVi dWdmc1xuIik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KKwllbnRyeSA9IGRlYnVnZnNfY3JlYXRl X2RpcigidmJpZiIsIGRlYnVnZnNfcm9vdCk7CisJaWYgKElTX0VSUl9PUl9OVUxMKGVudHJ5KSkK KwkJcmV0dXJuOwogCiAJZm9yIChpID0gMDsgaSA8IGRwdV9rbXMtPmNhdGFsb2ctPnZiaWZfY291 bnQ7IGkrKykgewogCQlzdHJ1Y3QgZHB1X3ZiaWZfY2ZnICp2YmlmID0gJmRwdV9rbXMtPmNhdGFs b2ctPnZiaWZbaV07CiAKIAkJc25wcmludGYodmJpZl9uYW1lLCBzaXplb2YodmJpZl9uYW1lKSwg IiVkIiwgdmJpZi0+aWQpOwogCi0JCWRlYnVnZnNfdmJpZiA9IGRlYnVnZnNfY3JlYXRlX2Rpcih2 YmlmX25hbWUsCi0JCQkJZHB1X2ttcy0+ZGVidWdmc192YmlmKTsKKwkJZGVidWdmc192YmlmID0g ZGVidWdmc19jcmVhdGVfZGlyKHZiaWZfbmFtZSwgZW50cnkpOworCQlpZiAoSVNfRVJSX09SX05V TEwoZGVidWdmc192YmlmKSkKKwkJCWNvbnRpbnVlOwogCiAJCWRlYnVnZnNfY3JlYXRlX3UzMigi ZmVhdHVyZXMiLCAwNjAwLCBkZWJ1Z2ZzX3ZiaWYsCiAJCQkodTMyICopJnZiaWYtPmZlYXR1cmVz KTsKQEAgLTM3Niw3ICszNzAsNSBAQCBpbnQgZHB1X2RlYnVnZnNfdmJpZl9pbml0KHN0cnVjdCBk cHVfa21zICpkcHVfa21zLCBzdHJ1Y3QgZGVudHJ5ICpkZWJ1Z2ZzX3Jvb3QpCiAJCQkJCSh1MzIg KikmY2ZnLT5vdF9saW1pdCk7CiAJCX0KIAl9Ci0KLQlyZXR1cm4gMDsKIH0KICNlbmRpZgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3ZiaWYuaCBiL2RyaXZl cnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV92YmlmLmgKaW5kZXggZjE3YWY1MmRiYmQ1Li42 MzU2ODc2ZDdhNjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2Rw dV92YmlmLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3ZiaWYuaApA QCAtNzgsMTcgKzc4LDYgQEAgdm9pZCBkcHVfdmJpZl9jbGVhcl9lcnJvcnMoc3RydWN0IGRwdV9r bXMgKmRwdV9rbXMpOwogICovCiB2b2lkIGRwdV92YmlmX2luaXRfbWVtdHlwZXMoc3RydWN0IGRw dV9rbXMgKmRwdV9rbXMpOwogCi0jaWZkZWYgQ09ORklHX0RFQlVHX0ZTCi1pbnQgZHB1X2RlYnVn ZnNfdmJpZl9pbml0KHN0cnVjdCBkcHVfa21zICpkcHVfa21zLCBzdHJ1Y3QgZGVudHJ5ICpkZWJ1 Z2ZzX3Jvb3QpOwotdm9pZCBkcHVfZGVidWdmc192YmlmX2Rlc3Ryb3koc3RydWN0IGRwdV9rbXMg KmRwdV9rbXMpOwotI2Vsc2UKLXN0YXRpYyBpbmxpbmUgaW50IGRwdV9kZWJ1Z2ZzX3ZiaWZfaW5p dChzdHJ1Y3QgZHB1X2ttcyAqZHB1X2ttcywKLQkJc3RydWN0IGRlbnRyeSAqZGVidWdmc19yb290 KQotewotCXJldHVybiAwOwotfQotc3RhdGljIGlubGluZSB2b2lkIGRwdV9kZWJ1Z2ZzX3ZiaWZf ZGVzdHJveShzdHJ1Y3QgZHB1X2ttcyAqZHB1X2ttcykKLXsKLX0KLSNlbmRpZgordm9pZCBkcHVf ZGVidWdmc192YmlmX2luaXQoc3RydWN0IGRwdV9rbXMgKmRwdV9rbXMsIHN0cnVjdCBkZW50cnkg KmRlYnVnZnNfcm9vdCk7CisKICNlbmRpZiAvKiBfX0RQVV9WQklGX0hfXyAqLwotLSAKMi4xOC4w CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpGcmVlZHJl bm8gbWFpbGluZyBsaXN0CkZyZWVkcmVub0BsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9mcmVlZHJlbm8K