From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeykumar Sankaran Subject: [PATCH v5 01/19] drm/msm/dpu: remove debugfs support for misr Date: Wed, 5 Sep 2018 19:08:10 -0700 Message-ID: <1536199708-23664-2-git-send-email-jsanka@codeaurora.org> References: <1536199708-23664-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: <1536199708-23664-1-git-send-email-jsanka-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: hoegsberg-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org, Jeykumar Sankaran , seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org TUlTUiBzdXBwb3J0IGlzIHRoZSBkZWJ1ZyBmZWF0dXJlIHByZXNlbnQgaW4gU25hcGRyYWdvbiBj aGlwc2V0cy4KQXQgdGhlIGxheWVyIG1peGVyIGFuZCBpbnRlcmZhY2VzLCBNSVNSIGFsZ29yaXRo bSBjYW4gZ2VuZXJhdGUgQ1JDCnNpZ25hdHVyZXMgb2YgdGhlIHBpeGVsIGRhdGEgd2hpY2ggY2Fu IGJlIHVzZWQgZm9yIHZhbGlkYXRpbmcKdGhlIGZyYW1lcyBnZW5lcmF0ZWQuIFNpbmNlIHRoZXJl IGFyZSBubyBjbGllbnRzIGZvciB0aGlzIGZlYXR1cmUsCnN0cmlwIGRvd24gdGhlIHN1cHBvcnQg ZnJvbSB0aGUgZHJpdmVyLgoKY2hhbmdlcyBpbiB2NDoKCS0gY2hhbmdlZCBpbnRyb2R1Y2VkIGlu IHRoZSBzZXJpZXMKY2hhbmdlcyBpbiB2NToKCS0gdXBkYXRlIGNvbW1pdCB0ZXh0IHdpdGggdGhl IG5lZWQgZm9yIHRoZSBjaGFuZ2UoU2VhbikKClNpZ25lZC1vZmYtYnk6IEpleWt1bWFyIFNhbmth cmFuIDxqc2Fua2FAY29kZWF1cm9yYS5vcmc+Ci0tLQogZHJpdmVycy9ncHUvZHJtL21zbS9kaXNw L2RwdTEvZHB1X2NydGMuYyAgICAgICAgICAgfCAxMzkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBk cml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5oICAgICAgICAgICB8ICAgNiAt CiBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5jICAgICAgICB8IDEy NyAtLS0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVf ZW5jb2Rlcl9waHlzLmggICB8ICAgNiAtCiAuLi4vZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9l bmNvZGVyX3BoeXNfdmlkLmMgICB8ICAyOCAtLS0tLQogZHJpdmVycy9ncHUvZHJtL21zbS9kaXNw L2RwdTEvZHB1X2h3X2ludGYuYyAgICAgICAgfCAgMjkgLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9t c20vZGlzcC9kcHUxL2RwdV9od19pbnRmLmggICAgICAgIHwgICA3IC0tCiBkcml2ZXJzL2dwdS9k cm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdfbG0uYyAgICAgICAgICB8ICAyOSAtLS0tLQogZHJpdmVy cy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X2xtLmggICAgICAgICAgfCAgIDcgLS0KIGRy aXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od191dGlsLmMgICAgICAgIHwgICAzIC0K IGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od191dGlsLmggICAgICAgIHwgICA2 IC0KIDExIGZpbGVzIGNoYW5nZWQsIDM4NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL21z bS9kaXNwL2RwdTEvZHB1X2NydGMuYwppbmRleCBmMGE1ZTc3Li4xZTAzODJmIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmMKQEAgLTQ3LDggKzQ3LDYgQEAKICNkZWZp bmUgTEVGVF9NSVhFUiAwCiAjZGVmaW5lIFJJR0hUX01JWEVSIDEKIAotI2RlZmluZSBNSVNSX0JV RkZfU0laRQkJCTI1NgotCiBzdGF0aWMgaW5saW5lIHN0cnVjdCBkcHVfa21zICpfZHB1X2NydGNf Z2V0X2ttcyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiB7CiAJc3RydWN0IG1zbV9kcm1fcHJpdmF0 ZSAqcHJpdjsKQEAgLTEyNzIsOCArMTI3MCw2IEBAIHN0YXRpYyB2b2lkIGRwdV9jcnRjX2hhbmRs ZV9wb3dlcl9ldmVudCh1MzIgZXZlbnRfdHlwZSwgdm9pZCAqYXJnKQogCXN0cnVjdCBkcm1fY3J0 YyAqY3J0YyA9IGFyZzsKIAlzdHJ1Y3QgZHB1X2NydGMgKmRwdV9jcnRjOwogCXN0cnVjdCBkcm1f ZW5jb2RlciAqZW5jb2RlcjsKLQlzdHJ1Y3QgZHB1X2NydGNfbWl4ZXIgKm07Ci0JdTMyIGksIG1p c3Jfc3RhdHVzOwogCiAJaWYgKCFjcnRjKSB7CiAJCURQVV9FUlJPUigiaW52YWxpZCBjcnRjXG4i KTsKQEAgLTEyOTQsMjkgKzEyOTAsOCBAQCBzdGF0aWMgdm9pZCBkcHVfY3J0Y19oYW5kbGVfcG93 ZXJfZXZlbnQodTMyIGV2ZW50X3R5cGUsIHZvaWQgKmFyZykKIAogCQkJZHB1X2VuY29kZXJfdmly dF9yZXN0b3JlKGVuY29kZXIpOwogCQl9Ci0KLQkJZm9yIChpID0gMDsgaSA8IGRwdV9jcnRjLT5u dW1fbWl4ZXJzOyArK2kpIHsKLQkJCW0gPSAmZHB1X2NydGMtPm1peGVyc1tpXTsKLQkJCWlmICgh bS0+aHdfbG0gfHwgIW0tPmh3X2xtLT5vcHMuc2V0dXBfbWlzciB8fAotCQkJCQkhZHB1X2NydGMt Pm1pc3JfZW5hYmxlKQotCQkJCWNvbnRpbnVlOwotCi0JCQltLT5od19sbS0+b3BzLnNldHVwX21p c3IobS0+aHdfbG0sIHRydWUsCi0JCQkJCWRwdV9jcnRjLT5taXNyX2ZyYW1lX2NvdW50KTsKLQkJ fQogCQlicmVhazsKIAljYXNlIERQVV9QT1dFUl9FVkVOVF9QUkVfRElTQUJMRToKLQkJZm9yIChp ID0gMDsgaSA8IGRwdV9jcnRjLT5udW1fbWl4ZXJzOyArK2kpIHsKLQkJCW0gPSAmZHB1X2NydGMt Pm1peGVyc1tpXTsKLQkJCWlmICghbS0+aHdfbG0gfHwgIW0tPmh3X2xtLT5vcHMuY29sbGVjdF9t aXNyIHx8Ci0JCQkJCSFkcHVfY3J0Yy0+bWlzcl9lbmFibGUpCi0JCQkJY29udGludWU7Ci0KLQkJ CW1pc3Jfc3RhdHVzID0gbS0+aHdfbG0tPm9wcy5jb2xsZWN0X21pc3IobS0+aHdfbG0pOwotCQkJ ZHB1X2NydGMtPm1pc3JfZGF0YVtpXSA9IG1pc3Jfc3RhdHVzID8gbWlzcl9zdGF0dXMgOgotCQkJ CQkJCWRwdV9jcnRjLT5taXNyX2RhdGFbaV07Ci0JCX0KLQkJYnJlYWs7CiAJY2FzZSBEUFVfUE9X RVJfRVZFTlRfUE9TVF9ESVNBQkxFOgogCQkvKioKIAkJICogTm90aGluZyB0byBkby4gQWxsIHRo ZSBwbGFuZXMgb24gdGhlIENSVEMgd2lsbCBiZQpAQCAtMTg0NiwxMTMgKzE4MjEsNiBAQCBzdGF0 aWMgaW50IF9kcHVfZGVidWdmc19zdGF0dXNfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1 Y3QgZmlsZSAqZmlsZSkKIAlyZXR1cm4gc2luZ2xlX29wZW4oZmlsZSwgX2RwdV9kZWJ1Z2ZzX3N0 YXR1c19zaG93LCBpbm9kZS0+aV9wcml2YXRlKTsKIH0KIAotc3RhdGljIHNzaXplX3QgX2RwdV9j cnRjX21pc3Jfc2V0dXAoc3RydWN0IGZpbGUgKmZpbGUsCi0JCWNvbnN0IGNoYXIgX191c2VyICp1 c2VyX2J1Ziwgc2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3MpCi17Ci0Jc3RydWN0IGRwdV9jcnRj ICpkcHVfY3J0YzsKLQlzdHJ1Y3QgZHB1X2NydGNfbWl4ZXIgKm07Ci0JaW50IGkgPSAwLCByYzsK LQljaGFyIGJ1ZltNSVNSX0JVRkZfU0laRSArIDFdOwotCXUzMiBmcmFtZV9jb3VudCwgZW5hYmxl OwotCXNpemVfdCBidWZmX2NvcHk7Ci0KLQlpZiAoIWZpbGUgfHwgIWZpbGUtPnByaXZhdGVfZGF0 YSkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQlkcHVfY3J0YyA9IGZpbGUtPnByaXZhdGVfZGF0YTsK LQlidWZmX2NvcHkgPSBtaW5fdChzaXplX3QsIGNvdW50LCBNSVNSX0JVRkZfU0laRSk7Ci0JaWYg KGNvcHlfZnJvbV91c2VyKGJ1ZiwgdXNlcl9idWYsIGJ1ZmZfY29weSkpIHsKLQkJRFBVX0VSUk9S KCJidWZmZXIgY29weSBmYWlsZWRcbiIpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlidWZb YnVmZl9jb3B5XSA9IDA7IC8qIGVuZCBvZiBzdHJpbmcgKi8KLQotCWlmIChzc2NhbmYoYnVmLCAi JXUgJXUiLCAmZW5hYmxlLCAmZnJhbWVfY291bnQpICE9IDIpCi0JCXJldHVybiAtRUlOVkFMOwot Ci0JcmMgPSBfZHB1X2NydGNfcG93ZXJfZW5hYmxlKGRwdV9jcnRjLCB0cnVlKTsKLQlpZiAocmMp Ci0JCXJldHVybiByYzsKLQotCW11dGV4X2xvY2soJmRwdV9jcnRjLT5jcnRjX2xvY2spOwotCWRw dV9jcnRjLT5taXNyX2VuYWJsZSA9IGVuYWJsZTsKLQlkcHVfY3J0Yy0+bWlzcl9mcmFtZV9jb3Vu dCA9IGZyYW1lX2NvdW50OwotCWZvciAoaSA9IDA7IGkgPCBkcHVfY3J0Yy0+bnVtX21peGVyczsg KytpKSB7Ci0JCWRwdV9jcnRjLT5taXNyX2RhdGFbaV0gPSAwOwotCQltID0gJmRwdV9jcnRjLT5t aXhlcnNbaV07Ci0JCWlmICghbS0+aHdfbG0gfHwgIW0tPmh3X2xtLT5vcHMuc2V0dXBfbWlzcikK LQkJCWNvbnRpbnVlOwotCi0JCW0tPmh3X2xtLT5vcHMuc2V0dXBfbWlzcihtLT5od19sbSwgZW5h YmxlLCBmcmFtZV9jb3VudCk7Ci0JfQotCW11dGV4X3VubG9jaygmZHB1X2NydGMtPmNydGNfbG9j ayk7Ci0JX2RwdV9jcnRjX3Bvd2VyX2VuYWJsZShkcHVfY3J0YywgZmFsc2UpOwotCi0JcmV0dXJu IGNvdW50OwotfQotCi1zdGF0aWMgc3NpemVfdCBfZHB1X2NydGNfbWlzcl9yZWFkKHN0cnVjdCBm aWxlICpmaWxlLAotCQljaGFyIF9fdXNlciAqdXNlcl9idWZmLCBzaXplX3QgY291bnQsIGxvZmZf dCAqcHBvcykKLXsKLQlzdHJ1Y3QgZHB1X2NydGMgKmRwdV9jcnRjOwotCXN0cnVjdCBkcHVfY3J0 Y19taXhlciAqbTsKLQlpbnQgaSA9IDAsIHJjOwotCXUzMiBtaXNyX3N0YXR1czsKLQlzc2l6ZV90 IGxlbiA9IDA7Ci0JY2hhciBidWZbTUlTUl9CVUZGX1NJWkUgKyAxXSA9IHsnXDAnfTsKLQotCWlm ICgqcHBvcykKLQkJcmV0dXJuIDA7Ci0KLQlpZiAoIWZpbGUgfHwgIWZpbGUtPnByaXZhdGVfZGF0 YSkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQlkcHVfY3J0YyA9IGZpbGUtPnByaXZhdGVfZGF0YTsK LQlyYyA9IF9kcHVfY3J0Y19wb3dlcl9lbmFibGUoZHB1X2NydGMsIHRydWUpOwotCWlmIChyYykK LQkJcmV0dXJuIHJjOwotCi0JbXV0ZXhfbG9jaygmZHB1X2NydGMtPmNydGNfbG9jayk7Ci0JaWYg KCFkcHVfY3J0Yy0+bWlzcl9lbmFibGUpIHsKLQkJbGVuICs9IHNucHJpbnRmKGJ1ZiArIGxlbiwg TUlTUl9CVUZGX1NJWkUgLSBsZW4sCi0JCQkiZGlzYWJsZWRcbiIpOwotCQlnb3RvIGJ1ZmZfY2hl Y2s7Ci0JfQotCi0JZm9yIChpID0gMDsgaSA8IGRwdV9jcnRjLT5udW1fbWl4ZXJzOyArK2kpIHsK LQkJbSA9ICZkcHVfY3J0Yy0+bWl4ZXJzW2ldOwotCQlpZiAoIW0tPmh3X2xtIHx8ICFtLT5od19s bS0+b3BzLmNvbGxlY3RfbWlzcikKLQkJCWNvbnRpbnVlOwotCi0JCW1pc3Jfc3RhdHVzID0gbS0+ aHdfbG0tPm9wcy5jb2xsZWN0X21pc3IobS0+aHdfbG0pOwotCQlkcHVfY3J0Yy0+bWlzcl9kYXRh W2ldID0gbWlzcl9zdGF0dXMgPyBtaXNyX3N0YXR1cyA6Ci0JCQkJCQkJZHB1X2NydGMtPm1pc3Jf ZGF0YVtpXTsKLQkJbGVuICs9IHNucHJpbnRmKGJ1ZiArIGxlbiwgTUlTUl9CVUZGX1NJWkUgLSBs ZW4sICJsbSBpZHg6JWRcbiIsCi0JCQkJCW0tPmh3X2xtLT5pZHggLSBMTV8wKTsKLQkJbGVuICs9 IHNucHJpbnRmKGJ1ZiArIGxlbiwgTUlTUl9CVUZGX1NJWkUgLSBsZW4sICIweCV4XG4iLAotCQkJ CQkJCWRwdV9jcnRjLT5taXNyX2RhdGFbaV0pOwotCX0KLQotYnVmZl9jaGVjazoKLQlpZiAoY291 bnQgPD0gbGVuKSB7Ci0JCWxlbiA9IDA7Ci0JCWdvdG8gZW5kOwotCX0KLQotCWlmIChjb3B5X3Rv X3VzZXIodXNlcl9idWZmLCBidWYsIGxlbikpIHsKLQkJbGVuID0gLUVGQVVMVDsKLQkJZ290byBl bmQ7Ci0JfQotCi0JKnBwb3MgKz0gbGVuOyAgIC8qIGluY3JlYXNlIG9mZnNldCAqLwotCi1lbmQ6 Ci0JbXV0ZXhfdW5sb2NrKCZkcHVfY3J0Yy0+Y3J0Y19sb2NrKTsKLQlfZHB1X2NydGNfcG93ZXJf ZW5hYmxlKGRwdV9jcnRjLCBmYWxzZSk7Ci0JcmV0dXJuIGxlbjsKLX0KLQogI2RlZmluZSBERUZJ TkVfRFBVX0RFQlVHRlNfU0VRX0ZPUFMoX19wcmVmaXgpICAgICAgICAgICAgICAgICAgICAgICAg ICBcCiBzdGF0aWMgaW50IF9fcHJlZml4ICMjIF9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0 cnVjdCBmaWxlICpmaWxlKQlcCiB7CQkJCQkJCQkJXApAQCAtMjAxNCwxMSArMTg4Miw2IEBAIHN0 YXRpYyBpbnQgX2RwdV9jcnRjX2luaXRfZGVidWdmcyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJ CS5sbHNlZWsgPQlzZXFfbHNlZWssCiAJCS5yZWxlYXNlID0Jc2luZ2xlX3JlbGVhc2UsCiAJfTsK LQlzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBkZWJ1Z2ZzX21pc3JfZm9wcyA9 IHsKLQkJLm9wZW4gPQkJc2ltcGxlX29wZW4sCi0JCS5yZWFkID0JCV9kcHVfY3J0Y19taXNyX3Jl YWQsCi0JCS53cml0ZSA9CV9kcHVfY3J0Y19taXNyX3NldHVwLAotCX07CiAKIAlpZiAoIWNydGMp CiAJCXJldHVybiAtRUlOVkFMOwpAQCAtMjA0MSw4ICsxOTA0LDYgQEAgc3RhdGljIGludCBfZHB1 X2NydGNfaW5pdF9kZWJ1Z2ZzKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAkJCWRwdV9jcnRjLT5k ZWJ1Z2ZzX3Jvb3QsCiAJCQkmZHB1X2NydGMtPmJhc2UsCiAJCQkmZHB1X2NydGNfZGVidWdmc19z dGF0ZV9mb3BzKTsKLQlkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJtaXNyX2RhdGEiLCAwNjAwLCBkcHVf Y3J0Yy0+ZGVidWdmc19yb290LAotCQkJCQlkcHVfY3J0YywgJmRlYnVnZnNfbWlzcl9mb3BzKTsK IAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2Rw dTEvZHB1X2NydGMuaCBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmgK aW5kZXggYTg5Njc5MS4uNTM0ODRiMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9k aXNwL2RwdTEvZHB1X2NydGMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9k cHVfY3J0Yy5oCkBAIC0xNTYsOSArMTU2LDYgQEAgc3RydWN0IGRwdV9jcnRjX2ZyYW1lX2V2ZW50 IHsKICAqIEBldmVudF90aHJlYWQgIDogUG9pbnRlciB0byBldmVudCBoYW5kbGVyIHRocmVhZAog ICogQGV2ZW50X3dvcmtlciAgOiBFdmVudCB3b3JrZXIgcXVldWUKICAqIEBldmVudF9sb2NrICAg IDogU3BpbmxvY2sgYXJvdW5kIGV2ZW50IGhhbmRsaW5nIGNvZGUKLSAqIEBtaXNyX2VuYWJsZSAg IDogYm9vbGVhbiBlbnRyeSBpbmRpY2F0ZXMgbWlzciBlbmFibGUvZGlzYWJsZSBzdGF0dXMuCi0g KiBAbWlzcl9mcmFtZV9jb3VudCAgOiBtaXNyIGZyYW1lIGNvdW50IHByb3ZpZGVkIGJ5IGNsaWVu dAotICogQG1pc3JfZGF0YSAgICAgOiBzdG9yZSBtaXNyIGRhdGEgYmVmb3JlIHR1cm5pbmcgb2Zm IHRoZSBjbG9ja3MuCiAgKiBAcGhhbmRsZTogUG9pbnRlciB0byBwb3dlciBoYW5kbGVyCiAgKiBA cG93ZXJfZXZlbnQgICA6IHJlZ2lzdGVyZWQgcG93ZXIgZXZlbnQgaGFuZGxlCiAgKiBAY3VyX3Bl cmYgICAgICA6IGN1cnJlbnQgcGVyZm9ybWFuY2UgY29tbWl0dGVkIHRvIGNsb2NrL2JhbmR3aWR0 aCBkcml2ZXIKQEAgLTIwNiw5ICsyMDMsNiBAQCBzdHJ1Y3QgZHB1X2NydGMgewogCiAJLyogZm9y IGhhbmRsaW5nIGludGVybmFsIGV2ZW50IHRocmVhZCAqLwogCXNwaW5sb2NrX3QgZXZlbnRfbG9j azsKLQlib29sIG1pc3JfZW5hYmxlOwotCXUzMiBtaXNyX2ZyYW1lX2NvdW50OwotCXUzMiBtaXNy X2RhdGFbQ1JUQ19EVUFMX01JWEVSU107CiAKIAlzdHJ1Y3QgZHB1X3Bvd2VyX2hhbmRsZSAqcGhh bmRsZTsKIAlzdHJ1Y3QgZHB1X3Bvd2VyX2V2ZW50ICpwb3dlcl9ldmVudDsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmMgYi9kcml2ZXJzL2dw dS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5jCmluZGV4IDViMGU5NDQuLjk5MWIyMmMg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuYwpAQCAtNjUs OCArNjUsNiBAQAogCiAjZGVmaW5lIE1BWF9DSEFOTkVMU19QRVJfRU5DIDIKIAotI2RlZmluZSBN SVNSX0JVRkZfU0laRQkJCTI1NgotCiAjZGVmaW5lIElETEVfU0hPUlRfVElNRU9VVAkxCiAKICNk ZWZpbmUgTUFYX1ZESVNQTEFZX1NQTElUIDEwODAKQEAgLTE2MSw4ICsxNTksNiBAQCBlbnVtIGRw dV9lbmNfcmNfc3RhdGVzIHsKICAqIEBmcmFtZV9kb25lX3RpbWVyOgkJd2F0Y2hkb2cgdGltZXIg Zm9yIGZyYW1lIGRvbmUgZXZlbnQKICAqIEB2c3luY19ldmVudF90aW1lcjoJCXZzeW5jIHRpbWVy CiAgKiBAZGlzcF9pbmZvOgkJCWxvY2FsIGNvcHkgb2YgbXNtX2Rpc3BsYXlfaW5mbyBzdHJ1Y3QK LSAqIEBtaXNyX2VuYWJsZToJCW1pc3IgZW5hYmxlL2Rpc2FibGUgc3RhdHVzCi0gKiBAbWlzcl9m cmFtZV9jb3VudDoJCW1pc3IgZnJhbWUgY291bnQgYmVmb3JlIHN0YXJ0IGNhcHR1cmluZyB0aGUg ZGF0YQogICogQGlkbGVfcGNfc3VwcG9ydGVkOgkJaW5kaWNhdGUgaWYgaWRsZSBwb3dlciBjb2xs YXBzIGlzIHN1cHBvcnRlZAogICogQHJjX2xvY2s6CQkJcmVzb3VyY2UgY29udHJvbCBtdXRleCBs b2NrIHRvIHByb3RlY3QKICAqCQkJCXZpcnQgZW5jb2RlciBvdmVyIHZhcmlvdXMgc3RhdGUgY2hh bmdlcwpAQCAtMjAyLDggKzE5OCw2IEBAIHN0cnVjdCBkcHVfZW5jb2Rlcl92aXJ0IHsKIAlzdHJ1 Y3QgdGltZXJfbGlzdCB2c3luY19ldmVudF90aW1lcjsKIAogCXN0cnVjdCBtc21fZGlzcGxheV9p bmZvIGRpc3BfaW5mbzsKLQlib29sIG1pc3JfZW5hYmxlOwotCXUzMiBtaXNyX2ZyYW1lX2NvdW50 OwogCiAJYm9vbCBpZGxlX3BjX3N1cHBvcnRlZDsKIAlzdHJ1Y3QgbXV0ZXggcmNfbG9jazsKQEAg LTExOTMsMTEgKzExODcsNiBAQCBzdGF0aWMgdm9pZCBkcHVfZW5jb2Rlcl92aXJ0X2VuYWJsZShz dHJ1Y3QgZHJtX2VuY29kZXIgKmRybV9lbmMpCiAJCQlpZiAocGh5cy0+b3BzLmVuYWJsZSkKIAkJ CQlwaHlzLT5vcHMuZW5hYmxlKHBoeXMpOwogCQl9Ci0KLQkJaWYgKGRwdV9lbmMtPm1pc3JfZW5h YmxlICYmIChkcHVfZW5jLT5kaXNwX2luZm8uY2FwYWJpbGl0aWVzICYKLQkJICAgICBNU01fRElT UExBWV9DQVBfVklEX01PREUpICYmIHBoeXMtPm9wcy5zZXR1cF9taXNyKQotCQkJcGh5cy0+b3Bz LnNldHVwX21pc3IocGh5cywgdHJ1ZSwKLQkJCQkJCWRwdV9lbmMtPm1pc3JfZnJhbWVfY291bnQp OwogCX0KIAogCWlmIChkcHVfZW5jLT5jdXJfbWFzdGVyLT5vcHMuZW5hYmxlKQpAQCAtMTk0OSwx MTMgKzE5MzgsNiBAQCBzdGF0aWMgaW50IF9kcHVfZW5jb2Rlcl9kZWJ1Z2ZzX3N0YXR1c19vcGVu KHN0cnVjdCBpbm9kZSAqaW5vZGUsCiAJcmV0dXJuIHNpbmdsZV9vcGVuKGZpbGUsIF9kcHVfZW5j b2Rlcl9zdGF0dXNfc2hvdywgaW5vZGUtPmlfcHJpdmF0ZSk7CiB9CiAKLXN0YXRpYyBzc2l6ZV90 IF9kcHVfZW5jb2Rlcl9taXNyX3NldHVwKHN0cnVjdCBmaWxlICpmaWxlLAotCQljb25zdCBjaGFy IF9fdXNlciAqdXNlcl9idWYsIHNpemVfdCBjb3VudCwgbG9mZl90ICpwcG9zKQotewotCXN0cnVj dCBkcHVfZW5jb2Rlcl92aXJ0ICpkcHVfZW5jOwotCWludCBpID0gMCwgcmM7Ci0JY2hhciBidWZb TUlTUl9CVUZGX1NJWkUgKyAxXTsKLQlzaXplX3QgYnVmZl9jb3B5OwotCXUzMiBmcmFtZV9jb3Vu dCwgZW5hYmxlOwotCi0JaWYgKCFmaWxlIHx8ICFmaWxlLT5wcml2YXRlX2RhdGEpCi0JCXJldHVy biAtRUlOVkFMOwotCi0JZHB1X2VuYyA9IGZpbGUtPnByaXZhdGVfZGF0YTsKLQotCWJ1ZmZfY29w eSA9IG1pbl90KHNpemVfdCwgY291bnQsIE1JU1JfQlVGRl9TSVpFKTsKLQlpZiAoY29weV9mcm9t X3VzZXIoYnVmLCB1c2VyX2J1ZiwgYnVmZl9jb3B5KSkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQli dWZbYnVmZl9jb3B5XSA9IDA7IC8qIGVuZCBvZiBzdHJpbmcgKi8KLQotCWlmIChzc2NhbmYoYnVm LCAiJXUgJXUiLCAmZW5hYmxlLCAmZnJhbWVfY291bnQpICE9IDIpCi0JCXJldHVybiAtRUlOVkFM OwotCi0JcmMgPSBfZHB1X2VuY29kZXJfcG93ZXJfZW5hYmxlKGRwdV9lbmMsIHRydWUpOwotCWlm IChyYykKLQkJcmV0dXJuIHJjOwotCi0JbXV0ZXhfbG9jaygmZHB1X2VuYy0+ZW5jX2xvY2spOwot CWRwdV9lbmMtPm1pc3JfZW5hYmxlID0gZW5hYmxlOwotCWRwdV9lbmMtPm1pc3JfZnJhbWVfY291 bnQgPSBmcmFtZV9jb3VudDsKLQlmb3IgKGkgPSAwOyBpIDwgZHB1X2VuYy0+bnVtX3BoeXNfZW5j czsgaSsrKSB7Ci0JCXN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzICpwaHlzID0gZHB1X2VuYy0+cGh5 c19lbmNzW2ldOwotCi0JCWlmICghcGh5cyB8fCAhcGh5cy0+b3BzLnNldHVwX21pc3IpCi0JCQlj b250aW51ZTsKLQotCQlwaHlzLT5vcHMuc2V0dXBfbWlzcihwaHlzLCBlbmFibGUsIGZyYW1lX2Nv dW50KTsKLQl9Ci0JbXV0ZXhfdW5sb2NrKCZkcHVfZW5jLT5lbmNfbG9jayk7Ci0JX2RwdV9lbmNv ZGVyX3Bvd2VyX2VuYWJsZShkcHVfZW5jLCBmYWxzZSk7Ci0KLQlyZXR1cm4gY291bnQ7Ci19Ci0K LXN0YXRpYyBzc2l6ZV90IF9kcHVfZW5jb2Rlcl9taXNyX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUs Ci0JCWNoYXIgX191c2VyICp1c2VyX2J1ZmYsIHNpemVfdCBjb3VudCwgbG9mZl90ICpwcG9zKQot ewotCXN0cnVjdCBkcHVfZW5jb2Rlcl92aXJ0ICpkcHVfZW5jOwotCWludCBpID0gMCwgbGVuID0g MDsKLQljaGFyIGJ1ZltNSVNSX0JVRkZfU0laRSArIDFdID0geydcMCd9OwotCWludCByYzsKLQot CWlmICgqcHBvcykKLQkJcmV0dXJuIDA7Ci0KLQlpZiAoIWZpbGUgfHwgIWZpbGUtPnByaXZhdGVf ZGF0YSkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQlkcHVfZW5jID0gZmlsZS0+cHJpdmF0ZV9kYXRh OwotCi0JcmMgPSBfZHB1X2VuY29kZXJfcG93ZXJfZW5hYmxlKGRwdV9lbmMsIHRydWUpOwotCWlm IChyYykKLQkJcmV0dXJuIHJjOwotCi0JbXV0ZXhfbG9jaygmZHB1X2VuYy0+ZW5jX2xvY2spOwot CWlmICghZHB1X2VuYy0+bWlzcl9lbmFibGUpIHsKLQkJbGVuICs9IHNucHJpbnRmKGJ1ZiArIGxl biwgTUlTUl9CVUZGX1NJWkUgLSBsZW4sCi0JCQkiZGlzYWJsZWRcbiIpOwotCQlnb3RvIGJ1ZmZf Y2hlY2s7Ci0JfSBlbHNlIGlmIChkcHVfZW5jLT5kaXNwX2luZm8uY2FwYWJpbGl0aWVzICYKLQkJ CQkJCX5NU01fRElTUExBWV9DQVBfVklEX01PREUpIHsKLQkJbGVuICs9IHNucHJpbnRmKGJ1ZiAr IGxlbiwgTUlTUl9CVUZGX1NJWkUgLSBsZW4sCi0JCQkidW5zdXBwb3J0ZWRcbiIpOwotCQlnb3Rv IGJ1ZmZfY2hlY2s7Ci0JfQotCi0JZm9yIChpID0gMDsgaSA8IGRwdV9lbmMtPm51bV9waHlzX2Vu Y3M7IGkrKykgewotCQlzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5cyAqcGh5cyA9IGRwdV9lbmMtPnBo eXNfZW5jc1tpXTsKLQotCQlpZiAoIXBoeXMgfHwgIXBoeXMtPm9wcy5jb2xsZWN0X21pc3IpCi0J CQljb250aW51ZTsKLQotCQlsZW4gKz0gc25wcmludGYoYnVmICsgbGVuLCBNSVNSX0JVRkZfU0la RSAtIGxlbiwKLQkJCSJJbnRmIGlkeDolZFxuIiwgcGh5cy0+aW50Zl9pZHggLSBJTlRGXzApOwot CQlsZW4gKz0gc25wcmludGYoYnVmICsgbGVuLCBNSVNSX0JVRkZfU0laRSAtIGxlbiwgIjB4JXhc biIsCi0JCQkJCXBoeXMtPm9wcy5jb2xsZWN0X21pc3IocGh5cykpOwotCX0KLQotYnVmZl9jaGVj azoKLQlpZiAoY291bnQgPD0gbGVuKSB7Ci0JCWxlbiA9IDA7Ci0JCWdvdG8gZW5kOwotCX0KLQot CWlmIChjb3B5X3RvX3VzZXIodXNlcl9idWZmLCBidWYsIGxlbikpIHsKLQkJbGVuID0gLUVGQVVM VDsKLQkJZ290byBlbmQ7Ci0JfQotCi0JKnBwb3MgKz0gbGVuOyAgIC8qIGluY3JlYXNlIG9mZnNl dCAqLwotCi1lbmQ6Ci0JbXV0ZXhfdW5sb2NrKCZkcHVfZW5jLT5lbmNfbG9jayk7Ci0JX2RwdV9l bmNvZGVyX3Bvd2VyX2VuYWJsZShkcHVfZW5jLCBmYWxzZSk7Ci0JcmV0dXJuIGxlbjsKLX0KLQog c3RhdGljIGludCBfZHB1X2VuY29kZXJfaW5pdF9kZWJ1Z2ZzKHN0cnVjdCBkcm1fZW5jb2RlciAq ZHJtX2VuYykKIHsKIAlzdHJ1Y3QgZHB1X2VuY29kZXJfdmlydCAqZHB1X2VuYzsKQEAgLTIwNzAs MTIgKzE5NTIsNiBAQCBzdGF0aWMgaW50IF9kcHVfZW5jb2Rlcl9pbml0X2RlYnVnZnMoc3RydWN0 IGRybV9lbmNvZGVyICpkcm1fZW5jKQogCQkucmVsZWFzZSA9CXNpbmdsZV9yZWxlYXNlLAogCX07 CiAKLQlzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBkZWJ1Z2ZzX21pc3JfZm9w cyA9IHsKLQkJLm9wZW4gPSBzaW1wbGVfb3BlbiwKLQkJLnJlYWQgPSBfZHB1X2VuY29kZXJfbWlz cl9yZWFkLAotCQkud3JpdGUgPSBfZHB1X2VuY29kZXJfbWlzcl9zZXR1cCwKLQl9OwotCiAJY2hh ciBuYW1lW0RQVV9OQU1FX1NJWkVdOwogCiAJaWYgKCFkcm1fZW5jIHx8ICFkcm1fZW5jLT5kZXYg fHwgIWRybV9lbmMtPmRldi0+ZGV2X3ByaXZhdGUpIHsKQEAgLTIwOTksOSArMTk3NSw2IEBAIHN0 YXRpYyBpbnQgX2RwdV9lbmNvZGVyX2luaXRfZGVidWdmcyhzdHJ1Y3QgZHJtX2VuY29kZXIgKmRy bV9lbmMpCiAJZGVidWdmc19jcmVhdGVfZmlsZSgic3RhdHVzIiwgMDYwMCwKIAkJZHB1X2VuYy0+ ZGVidWdmc19yb290LCBkcHVfZW5jLCAmZGVidWdmc19zdGF0dXNfZm9wcyk7CiAKLQlkZWJ1Z2Zz X2NyZWF0ZV9maWxlKCJtaXNyX2RhdGEiLCAwNjAwLAotCQlkcHVfZW5jLT5kZWJ1Z2ZzX3Jvb3Qs IGRwdV9lbmMsICZkZWJ1Z2ZzX21pc3JfZm9wcyk7Ci0KIAlmb3IgKGkgPSAwOyBpIDwgZHB1X2Vu Yy0+bnVtX3BoeXNfZW5jczsgaSsrKQogCQlpZiAoZHB1X2VuYy0+cGh5c19lbmNzW2ldICYmCiAJ CQkJZHB1X2VuYy0+cGh5c19lbmNzW2ldLT5vcHMubGF0ZV9yZWdpc3RlcikKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyX3BoeXMuaCBiL2RyaXZl cnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyX3BoeXMuaAppbmRleCBjN2RmOGFh Li5iMzkxN2UwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVf ZW5jb2Rlcl9waHlzLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2Vu Y29kZXJfcGh5cy5oCkBAIC0xMTQsOCArMTE0LDYgQEAgc3RydWN0IGRwdV9lbmNvZGVyX3ZpcnRf b3BzIHsKICAqIEBoYW5kbGVfcG9zdF9raWNrb2ZmOglEbyBhbnkgd29yayBuZWNlc3NhcnkgcG9z dC1raWNrb2ZmIHdvcmsKICAqIEB0cmlnZ2VyX3N0YXJ0OgkJUHJvY2VzcyBzdGFydCBldmVudCBv biBwaHlzaWNhbCBlbmNvZGVyCiAgKiBAbmVlZHNfc2luZ2xlX2ZsdXNoOgkJV2hldGhlciBlbmNv ZGVyIHNsYXZlcyBuZWVkIHRvIGJlIGZsdXNoZWQKLSAqIEBzZXR1cF9taXNyOgkJU2V0cyB1cCBN SVNSLCBlbmFibGUgYW5kIGRpc2FibGVzIGJhc2VkIG9uIHN5c2ZzCi0gKiBAY29sbGVjdF9taXNy OgkJQ29sbGVjdHMgTUlTUiBkYXRhIG9uIGZyYW1lIHVwZGF0ZQogICogQGh3X3Jlc2V0OgkJCUlz c3VlIEhXIHJlY292ZXJ5IHN1Y2ggYXMgQ1RMIHJlc2V0IGFuZCBjbGVhcgogICoJCQkJRFBVX0VO Q19FUlJfTkVFRFNfSFdfUkVTRVQgc3RhdGUKICAqIEBpcnFfY29udHJvbDoJCUhhbmRsZXIgdG8g ZW5hYmxlL2Rpc2FibGUgYWxsIHRoZSBlbmNvZGVyIElSUXMKQEAgLTE1NCwxMCArMTUyLDYgQEAg c3RydWN0IGRwdV9lbmNvZGVyX3BoeXNfb3BzIHsKIAl2b2lkICgqaGFuZGxlX3Bvc3Rfa2lja29m Zikoc3RydWN0IGRwdV9lbmNvZGVyX3BoeXMgKnBoeXNfZW5jKTsKIAl2b2lkICgqdHJpZ2dlcl9z dGFydCkoc3RydWN0IGRwdV9lbmNvZGVyX3BoeXMgKnBoeXNfZW5jKTsKIAlib29sICgqbmVlZHNf c2luZ2xlX2ZsdXNoKShzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5cyAqcGh5c19lbmMpOwotCi0Jdm9p ZCAoKnNldHVwX21pc3IpKHN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzICpwaHlzX2VuY3MsCi0JCQkJ Ym9vbCBlbmFibGUsIHUzMiBmcmFtZV9jb3VudCk7Ci0JdTMyICgqY29sbGVjdF9taXNyKShzdHJ1 Y3QgZHB1X2VuY29kZXJfcGh5cyAqcGh5c19lbmMpOwogCXZvaWQgKCpod19yZXNldCkoc3RydWN0 IGRwdV9lbmNvZGVyX3BoeXMgKnBoeXNfZW5jKTsKIAl2b2lkICgqaXJxX2NvbnRyb2wpKHN0cnVj dCBkcHVfZW5jb2Rlcl9waHlzICpwaHlzLCBib29sIGVuYWJsZSk7CiAJdm9pZCAoKnByZXBhcmVf aWRsZV9wYykoc3RydWN0IGRwdV9lbmNvZGVyX3BoeXMgKnBoeXNfZW5jKTsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyX3BoeXNfdmlkLmMgYi9k cml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlcl9waHlzX3ZpZC5jCmluZGV4 IDE0ZmM3YzIuLjZmYzNkM2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9k cHUxL2RwdV9lbmNvZGVyX3BoeXNfdmlkLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNw L2RwdTEvZHB1X2VuY29kZXJfcGh5c192aWQuYwpAQCAtNzU2LDMyICs3NTYsNiBAQCBzdGF0aWMg dm9pZCBkcHVfZW5jb2Rlcl9waHlzX3ZpZF9pcnFfY29udHJvbChzdHJ1Y3QgZHB1X2VuY29kZXJf cGh5cyAqcGh5c19lbmMsCiAJfQogfQogCi1zdGF0aWMgdm9pZCBkcHVfZW5jb2Rlcl9waHlzX3Zp ZF9zZXR1cF9taXNyKHN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzICpwaHlzX2VuYywKLQkJCQkJCWJv b2wgZW5hYmxlLCB1MzIgZnJhbWVfY291bnQpCi17Ci0Jc3RydWN0IGRwdV9lbmNvZGVyX3BoeXNf dmlkICp2aWRfZW5jOwotCi0JaWYgKCFwaHlzX2VuYykKLQkJcmV0dXJuOwotCXZpZF9lbmMgPSB0 b19kcHVfZW5jb2Rlcl9waHlzX3ZpZChwaHlzX2VuYyk7Ci0KLQlpZiAodmlkX2VuYy0+aHdfaW50 ZiAmJiB2aWRfZW5jLT5od19pbnRmLT5vcHMuc2V0dXBfbWlzcikKLQkJdmlkX2VuYy0+aHdfaW50 Zi0+b3BzLnNldHVwX21pc3IodmlkX2VuYy0+aHdfaW50ZiwKLQkJCQkJCQllbmFibGUsIGZyYW1l X2NvdW50KTsKLX0KLQotc3RhdGljIHUzMiBkcHVfZW5jb2Rlcl9waHlzX3ZpZF9jb2xsZWN0X21p c3Ioc3RydWN0IGRwdV9lbmNvZGVyX3BoeXMgKnBoeXNfZW5jKQotewotCXN0cnVjdCBkcHVfZW5j b2Rlcl9waHlzX3ZpZCAqdmlkX2VuYzsKLQotCWlmICghcGh5c19lbmMpCi0JCXJldHVybiAwOwot CXZpZF9lbmMgPSB0b19kcHVfZW5jb2Rlcl9waHlzX3ZpZChwaHlzX2VuYyk7Ci0KLQlyZXR1cm4g dmlkX2VuYy0+aHdfaW50ZiAmJiB2aWRfZW5jLT5od19pbnRmLT5vcHMuY29sbGVjdF9taXNyID8K LQkJdmlkX2VuYy0+aHdfaW50Zi0+b3BzLmNvbGxlY3RfbWlzcih2aWRfZW5jLT5od19pbnRmKSA6 IDA7Ci19Ci0KIHN0YXRpYyBpbnQgZHB1X2VuY29kZXJfcGh5c192aWRfZ2V0X2xpbmVfY291bnQo CiAJCXN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzICpwaHlzX2VuYykKIHsKQEAgLTgxNyw4ICs3OTEs NiBAQCBzdGF0aWMgdm9pZCBkcHVfZW5jb2Rlcl9waHlzX3ZpZF9pbml0X29wcyhzdHJ1Y3QgZHB1 X2VuY29kZXJfcGh5c19vcHMgKm9wcykKIAlvcHMtPnByZXBhcmVfZm9yX2tpY2tvZmYgPSBkcHVf ZW5jb2Rlcl9waHlzX3ZpZF9wcmVwYXJlX2Zvcl9raWNrb2ZmOwogCW9wcy0+aGFuZGxlX3Bvc3Rf a2lja29mZiA9IGRwdV9lbmNvZGVyX3BoeXNfdmlkX2hhbmRsZV9wb3N0X2tpY2tvZmY7CiAJb3Bz LT5uZWVkc19zaW5nbGVfZmx1c2ggPSBkcHVfZW5jb2Rlcl9waHlzX3ZpZF9uZWVkc19zaW5nbGVf Zmx1c2g7Ci0Jb3BzLT5zZXR1cF9taXNyID0gZHB1X2VuY29kZXJfcGh5c192aWRfc2V0dXBfbWlz cjsKLQlvcHMtPmNvbGxlY3RfbWlzciA9IGRwdV9lbmNvZGVyX3BoeXNfdmlkX2NvbGxlY3RfbWlz cjsKIAlvcHMtPmh3X3Jlc2V0ID0gZHB1X2VuY29kZXJfaGVscGVyX2h3X3Jlc2V0OwogCW9wcy0+ Z2V0X2xpbmVfY291bnQgPSBkcHVfZW5jb2Rlcl9waHlzX3ZpZF9nZXRfbGluZV9jb3VudDsKIH0K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od19pbnRmLmMg Yi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdfaW50Zi5jCmluZGV4IGQyODBk ZjUuLjljNmJiYTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2Rw dV9od19pbnRmLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X2lu dGYuYwpAQCAtNjUsOSArNjUsNiBAQAogI2RlZmluZSAgIElOVEZfRlJBTUVfQ09VTlQgICAgICAg ICAgICAgIDB4MEFDCiAjZGVmaW5lICAgSU5URl9MSU5FX0NPVU5UICAgICAgICAgICAgICAgMHgw QjAKIAotI2RlZmluZSBJTlRGX01JU1JfQ1RSTAkJCTB4MTgwCi0jZGVmaW5lIElOVEZfTUlTUl9T SUdOQVRVUkUJCTB4MTg0Ci0KIHN0YXRpYyBzdHJ1Y3QgZHB1X2ludGZfY2ZnICpfaW50Zl9vZmZz ZXQoZW51bSBkcHVfaW50ZiBpbnRmLAogCQlzdHJ1Y3QgZHB1X21kc3NfY2ZnICptLAogCQl2b2lk IF9faW9tZW0gKmFkZHIsCkBAIC0yNDYsMzAgKzI0Myw2IEBAIHN0YXRpYyB2b2lkIGRwdV9od19p bnRmX2dldF9zdGF0dXMoCiAJfQogfQogCi1zdGF0aWMgdm9pZCBkcHVfaHdfaW50Zl9zZXR1cF9t aXNyKHN0cnVjdCBkcHVfaHdfaW50ZiAqaW50ZiwKLQkJCQkJCWJvb2wgZW5hYmxlLCB1MzIgZnJh bWVfY291bnQpCi17Ci0Jc3RydWN0IGRwdV9od19ibGtfcmVnX21hcCAqYyA9ICZpbnRmLT5odzsK LQl1MzIgY29uZmlnID0gMDsKLQotCURQVV9SRUdfV1JJVEUoYywgSU5URl9NSVNSX0NUUkwsIE1J U1JfQ1RSTF9TVEFUVVNfQ0xFQVIpOwotCS8qIGNsZWFyIG1pc3IgZGF0YSAqLwotCXdtYigpOwot Ci0JaWYgKGVuYWJsZSkKLQkJY29uZmlnID0gKGZyYW1lX2NvdW50ICYgTUlTUl9GUkFNRV9DT1VO VF9NQVNLKSB8Ci0JCQlNSVNSX0NUUkxfRU5BQkxFIHwgSU5URl9NSVNSX0NUUkxfRlJFRV9SVU5f TUFTSzsKLQotCURQVV9SRUdfV1JJVEUoYywgSU5URl9NSVNSX0NUUkwsIGNvbmZpZyk7Ci19Ci0K LXN0YXRpYyB1MzIgZHB1X2h3X2ludGZfY29sbGVjdF9taXNyKHN0cnVjdCBkcHVfaHdfaW50ZiAq aW50ZikKLXsKLQlzdHJ1Y3QgZHB1X2h3X2Jsa19yZWdfbWFwICpjID0gJmludGYtPmh3OwotCi0J cmV0dXJuIERQVV9SRUdfUkVBRChjLCBJTlRGX01JU1JfU0lHTkFUVVJFKTsKLX0KLQogc3RhdGlj IHUzMiBkcHVfaHdfaW50Zl9nZXRfbGluZV9jb3VudChzdHJ1Y3QgZHB1X2h3X2ludGYgKmludGYp CiB7CiAJc3RydWN0IGRwdV9od19ibGtfcmVnX21hcCAqYzsKQEAgLTI4OSw4ICsyNjIsNiBAQCBz dGF0aWMgdm9pZCBfc2V0dXBfaW50Zl9vcHMoc3RydWN0IGRwdV9od19pbnRmX29wcyAqb3BzLAog CW9wcy0+c2V0dXBfcHJnX2ZldGNoICA9IGRwdV9od19pbnRmX3NldHVwX3ByZ19mZXRjaDsKIAlv cHMtPmdldF9zdGF0dXMgPSBkcHVfaHdfaW50Zl9nZXRfc3RhdHVzOwogCW9wcy0+ZW5hYmxlX3Rp bWluZyA9IGRwdV9od19pbnRmX2VuYWJsZV90aW1pbmdfZW5naW5lOwotCW9wcy0+c2V0dXBfbWlz ciA9IGRwdV9od19pbnRmX3NldHVwX21pc3I7Ci0Jb3BzLT5jb2xsZWN0X21pc3IgPSBkcHVfaHdf aW50Zl9jb2xsZWN0X21pc3I7CiAJb3BzLT5nZXRfbGluZV9jb3VudCA9IGRwdV9od19pbnRmX2dl dF9saW5lX2NvdW50OwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3Av ZHB1MS9kcHVfaHdfaW50Zi5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3 X2ludGYuaAppbmRleCBhNzlkNzM1Li4zYjc3ZGY0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdfaW50Zi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20v ZGlzcC9kcHUxL2RwdV9od19pbnRmLmgKQEAgLTU5LDggKzU5LDYgQEAgc3RydWN0IGludGZfc3Rh dHVzIHsKICAqIEAgc2V0dXBfcHJvZ19mZXRjaCA6IGVuYWJsZXMvZGlzYWJsZXMgdGhlIHByb2dy YW1tYWJsZSBmZXRjaCBsb2dpYwogICogQCBlbmFibGVfdGltaW5nOiBlbmFibGUvZGlzYWJsZSB0 aW1pbmcgZW5naW5lCiAgKiBAIGdldF9zdGF0dXM6IHJldHVybnMgaWYgdGltaW5nIGVuZ2luZSBp cyBlbmFibGVkIG9yIG5vdAotICogQCBzZXR1cF9taXNyOiBlbmFibGVzL2Rpc2FibGVzIE1JU1Ig aW4gSFcgcmVnaXN0ZXIKLSAqIEAgY29sbGVjdF9taXNyOiByZWFkcyBhbmQgc3RvcmVzIE1JU1Ig ZGF0YSBmcm9tIEhXIHJlZ2lzdGVyCiAgKiBAIGdldF9saW5lX2NvdW50OiByZWFkcyBjdXJyZW50 IHZlcnRpY2FsIGxpbmUgY291bnRlcgogICovCiBzdHJ1Y3QgZHB1X2h3X2ludGZfb3BzIHsKQEAg LTc3LDExICs3NSw2IEBAIHN0cnVjdCBkcHVfaHdfaW50Zl9vcHMgewogCXZvaWQgKCpnZXRfc3Rh dHVzKShzdHJ1Y3QgZHB1X2h3X2ludGYgKmludGYsCiAJCQlzdHJ1Y3QgaW50Zl9zdGF0dXMgKnN0 YXR1cyk7CiAKLQl2b2lkICgqc2V0dXBfbWlzcikoc3RydWN0IGRwdV9od19pbnRmICppbnRmLAot CQkJYm9vbCBlbmFibGUsIHUzMiBmcmFtZV9jb3VudCk7Ci0KLQl1MzIgKCpjb2xsZWN0X21pc3Ip KHN0cnVjdCBkcHVfaHdfaW50ZiAqaW50Zik7Ci0KIAl1MzIgKCpnZXRfbGluZV9jb3VudCkoc3Ry dWN0IGRwdV9od19pbnRmICppbnRmKTsKIH07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9tc20vZGlzcC9kcHUxL2RwdV9od19sbS5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2Rw dTEvZHB1X2h3X2xtLmMKaW5kZXggNGFiNzJiMC4uYWNiOGRjOCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X2xtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L21zbS9kaXNwL2RwdTEvZHB1X2h3X2xtLmMKQEAgLTM0LDkgKzM0LDYgQEAKICNkZWZpbmUgTE1f QkxFTkQwX0ZHX0FMUEhBICAgICAgICAgICAgICAgMHgwNAogI2RlZmluZSBMTV9CTEVORDBfQkdf QUxQSEEgICAgICAgICAgICAgICAweDA4CiAKLSNkZWZpbmUgTE1fTUlTUl9DVFJMCQkJMHgzMTAK LSNkZWZpbmUgTE1fTUlTUl9TSUdOQVRVUkUJCTB4MzE0Ci0KIHN0YXRpYyBzdHJ1Y3QgZHB1X2xt X2NmZyAqX2xtX29mZnNldChlbnVtIGRwdV9sbSBtaXhlciwKIAkJc3RydWN0IGRwdV9tZHNzX2Nm ZyAqbSwKIAkJdm9pZCBfX2lvbWVtICphZGRyLApAQCAtMTcxLDMwICsxNjgsNiBAQCBzdGF0aWMg dm9pZCBkcHVfaHdfbG1fZ2Moc3RydWN0IGRwdV9od19taXhlciAqbWl4ZXIsCiB7CiB9CiAKLXN0 YXRpYyB2b2lkIGRwdV9od19sbV9zZXR1cF9taXNyKHN0cnVjdCBkcHVfaHdfbWl4ZXIgKmN0eCwK LQkJCQlib29sIGVuYWJsZSwgdTMyIGZyYW1lX2NvdW50KQotewotCXN0cnVjdCBkcHVfaHdfYmxr X3JlZ19tYXAgKmMgPSAmY3R4LT5odzsKLQl1MzIgY29uZmlnID0gMDsKLQotCURQVV9SRUdfV1JJ VEUoYywgTE1fTUlTUl9DVFJMLCBNSVNSX0NUUkxfU1RBVFVTX0NMRUFSKTsKLQkvKiBjbGVhciBt aXNyIGRhdGEgKi8KLQl3bWIoKTsKLQotCWlmIChlbmFibGUpCi0JCWNvbmZpZyA9IChmcmFtZV9j b3VudCAmIE1JU1JfRlJBTUVfQ09VTlRfTUFTSykgfAotCQkJTUlTUl9DVFJMX0VOQUJMRSB8IElO VEZfTUlTUl9DVFJMX0ZSRUVfUlVOX01BU0s7Ci0KLQlEUFVfUkVHX1dSSVRFKGMsIExNX01JU1Jf Q1RSTCwgY29uZmlnKTsKLX0KLQotc3RhdGljIHUzMiBkcHVfaHdfbG1fY29sbGVjdF9taXNyKHN0 cnVjdCBkcHVfaHdfbWl4ZXIgKmN0eCkKLXsKLQlzdHJ1Y3QgZHB1X2h3X2Jsa19yZWdfbWFwICpj ID0gJmN0eC0+aHc7Ci0KLQlyZXR1cm4gRFBVX1JFR19SRUFEKGMsIExNX01JU1JfU0lHTkFUVVJF KTsKLX0KLQogc3RhdGljIHZvaWQgX3NldHVwX21peGVyX29wcyhzdHJ1Y3QgZHB1X21kc3NfY2Zn ICptLAogCQlzdHJ1Y3QgZHB1X2h3X2xtX29wcyAqb3BzLAogCQl1bnNpZ25lZCBsb25nIGZlYXR1 cmVzKQpAQCAtMjA3LDggKzE4MCw2IEBAIHN0YXRpYyB2b2lkIF9zZXR1cF9taXhlcl9vcHMoc3Ry dWN0IGRwdV9tZHNzX2NmZyAqbSwKIAlvcHMtPnNldHVwX2FscGhhX291dCA9IGRwdV9od19sbV9z ZXR1cF9jb2xvcjM7CiAJb3BzLT5zZXR1cF9ib3JkZXJfY29sb3IgPSBkcHVfaHdfbG1fc2V0dXBf Ym9yZGVyX2NvbG9yOwogCW9wcy0+c2V0dXBfZ2MgPSBkcHVfaHdfbG1fZ2M7Ci0Jb3BzLT5zZXR1 cF9taXNyID0gZHB1X2h3X2xtX3NldHVwX21pc3I7Ci0Jb3BzLT5jb2xsZWN0X21pc3IgPSBkcHVf aHdfbG1fY29sbGVjdF9taXNyOwogfTsKIAogc3RhdGljIHN0cnVjdCBkcHVfaHdfYmxrX29wcyBk cHVfaHdfb3BzID0gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEv ZHB1X2h3X2xtLmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdfbG0uaApp bmRleCBlMjllNWRhLi41YjAzNmFjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rp c3AvZHB1MS9kcHVfaHdfbG0uaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9k cHVfaHdfbG0uaApAQCAtNjYsMTMgKzY2LDYgQEAgc3RydWN0IGRwdV9od19sbV9vcHMgewogCSAq LwogCXZvaWQgKCpzZXR1cF9nYykoc3RydWN0IGRwdV9od19taXhlciAqbWl4ZXIsCiAJCQl2b2lk ICpjZmcpOwotCi0JLyogc2V0dXBfbWlzcjogZW5hYmxlcy9kaXNhYmxlcyBNSVNSIGluIEhXIHJl Z2lzdGVyICovCi0Jdm9pZCAoKnNldHVwX21pc3IpKHN0cnVjdCBkcHVfaHdfbWl4ZXIgKmN0eCwK LQkJCWJvb2wgZW5hYmxlLCB1MzIgZnJhbWVfY291bnQpOwotCi0JLyogY29sbGVjdF9taXNyOiBy ZWFkcyBhbmQgc3RvcmVzIE1JU1IgZGF0YSBmcm9tIEhXIHJlZ2lzdGVyICovCi0JdTMyICgqY29s bGVjdF9taXNyKShzdHJ1Y3QgZHB1X2h3X21peGVyICpjdHgpOwogfTsKIAogc3RydWN0IGRwdV9o d19taXhlciB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVf aHdfdXRpbC5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X3V0aWwuYwpp bmRleCA0Y2FiYWU0Li5jYjVjMDE3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rp c3AvZHB1MS9kcHVfaHdfdXRpbC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUx L2RwdV9od191dGlsLmMKQEAgLTUwLDkgKzUwLDYgQEAKICNkZWZpbmUgUVNFRUQzX0NMS19DVFJM MCAgICAgICAgICAgICAgICAgICAweDU0CiAjZGVmaW5lIFFTRUVEM19DTEtfQ1RSTDEgICAgICAg ICAgICAgICAgICAgMHg1OAogI2RlZmluZSBRU0VFRDNfQ0xLX1NUQVRVUyAgICAgICAgICAgICAg ICAgIDB4NUMKLSNkZWZpbmUgUVNFRUQzX01JU1JfQ1RSTCAgICAgICAgICAgICAgICAgICAweDcw Ci0jZGVmaW5lIFFTRUVEM19NSVNSX1NJR05BVFVSRV8wICAgICAgICAgICAgMHg3NAotI2RlZmlu ZSBRU0VFRDNfTUlTUl9TSUdOQVRVUkVfMSAgICAgICAgICAgIDB4NzgKICNkZWZpbmUgUVNFRUQz X1BIQVNFX0lOSVRfWV9IICAgICAgICAgICAgICAweDkwCiAjZGVmaW5lIFFTRUVEM19QSEFTRV9J TklUX1lfViAgICAgICAgICAgICAgMHg5NAogI2RlZmluZSBRU0VFRDNfUEhBU0VfSU5JVF9VVl9I ICAgICAgICAgICAgIDB4OTgKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9k cHUxL2RwdV9od191dGlsLmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdf dXRpbC5oCmluZGV4IDEyNDBmNTAuLmNiMDIwNDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9tc20vZGlzcC9kcHUxL2RwdV9od191dGlsLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9k aXNwL2RwdTEvZHB1X2h3X3V0aWwuaApAQCAtMzI1LDEyICszMjUsNiBAQCB2b2lkIGRwdV9yZWdf d3JpdGUoc3RydWN0IGRwdV9od19ibGtfcmVnX21hcCAqYywKICNkZWZpbmUgRFBVX1JFR19XUklU RShjLCBvZmYsIHZhbCkgZHB1X3JlZ193cml0ZShjLCBvZmYsIHZhbCwgI29mZikKICNkZWZpbmUg RFBVX1JFR19SRUFEKGMsIG9mZikgZHB1X3JlZ19yZWFkKGMsIG9mZikKIAotI2RlZmluZSBNSVNS X0ZSQU1FX0NPVU5UX01BU0sJCTB4RkYKLSNkZWZpbmUgTUlTUl9DVFJMX0VOQUJMRQkJQklUKDgp Ci0jZGVmaW5lIE1JU1JfQ1RSTF9TVEFUVVMJCUJJVCg5KQotI2RlZmluZSBNSVNSX0NUUkxfU1RB VFVTX0NMRUFSCQlCSVQoMTApCi0jZGVmaW5lIElOVEZfTUlTUl9DVFJMX0ZSRUVfUlVOX01BU0sJ QklUKDMxKQotCiB2b2lkICpkcHVfaHdfdXRpbF9nZXRfZGlyKHZvaWQpOwogCiB2b2lkIGRwdV9o d19zZXR1cF9zY2FsZXIzKHN0cnVjdCBkcHVfaHdfYmxrX3JlZ19tYXAgKmMsCi0tIApUaGUgUXVh bGNvbW0gSW5ub3ZhdGlvbiBDZW50ZXIsIEluYy4gaXMgYSBtZW1iZXIgb2YgdGhlIENvZGUgQXVy b3JhIEZvcnVtLAphIExpbnV4IEZvdW5kYXRpb24gQ29sbGFib3JhdGl2ZSBQcm9qZWN0CgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpGcmVlZHJlbm8gbWFp bGluZyBsaXN0CkZyZWVkcmVub0BsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9mcmVlZHJlbm8K