From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeykumar Sankaran Subject: [PATCH v6 11/19] drm/msm/dpu: move hw resource tracking to crtc state Date: Fri, 7 Sep 2018 17:24:19 -0700 Message-ID: <1536366267-22336-12-git-send-email-jsanka@codeaurora.org> References: <1536366267-22336-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: <1536366267-22336-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 , jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org UHJlcCBjaGFuZ2VzIGZvciBzdGF0ZSBiYXNlZCByZXNvdXJjZSBtYW5hZ2VtZW50LgoKTW92ZXMg YWxsIHRoZSBodyBibG9jayB0cmFja2luZyBmb3IgdGhlIGNydGMgdG8gdGhlIHN0YXRlCm9iamVj dC4KCmNoYW5nZXMgaW4gdjQ6CgktIFNlcmlhbGl6ZSBjcnRjIHN0YXRlIGFjY2VzcyBpbiBkZWJ1 Z2ZzIGhhbmRsZXJzIChTZWFuKQoJLSBTcGxpdCB0aGUgY3J0YyB3aWR0aCBxdWVyeSBhcyBhIHNl cGFyYXRlIGNoYW5nZSAoU2VhbikKY2hhbmdlcyBpbiB2NToKCS0gbW9kZSBzZXQgbG9jayBhbGwg YmVmb3JlIGNydGMgc3RhdGUgYWNjZXNzIChTZWFuKQoJLSByZW1vdmUgdW53YW50ZWQgbWVtc2V0 IGZvciBodyBtaXhlciBjYWNoZSAoU2VhbikKY2hhbmdlcyBpbiB2NjoKCS0gbm9uZQoKU2lnbmVk LW9mZi1ieTogSmV5a3VtYXIgU2Fua2FyYW4gPGpzYW5rYUBjb2RlYXVyb3JhLm9yZz4KUmV2aWV3 ZWQtYnk6IFNlYW4gUGF1bCA8c2VhbnBhdWxAY2hyb21pdW0ub3JnPgotLS0KIGRyaXZlcnMvZ3B1 L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmMgfCA1OSArKysrKysrKysrKysrKystLS0tLS0t LS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuaCB8IDIy ICsrKysrKy0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAzOSBpbnNlcnRpb25zKCspLCA0MiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVf Y3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuYwppbmRleCA0 NDg5OTRmLi40YWIxMzU1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1 MS9kcHVfY3J0Yy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRj LmMKQEAgLTE1NSw5ICsxNTUsOSBAQCBzdGF0aWMgdm9pZCBfZHB1X2NydGNfcHJvZ3JhbV9sbV9v dXRwdXRfcm9pKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAljcnRjX3N0YXRlID0gdG9fZHB1X2Ny dGNfc3RhdGUoY3J0Yy0+c3RhdGUpOwogCiAJbG1faG9yaXpfcG9zaXRpb24gPSAwOwotCWZvciAo bG1faWR4ID0gMDsgbG1faWR4IDwgZHB1X2NydGMtPm51bV9taXhlcnM7IGxtX2lkeCsrKSB7CisJ Zm9yIChsbV9pZHggPSAwOyBsbV9pZHggPCBjcnRjX3N0YXRlLT5udW1fbWl4ZXJzOyBsbV9pZHgr KykgewogCQljb25zdCBzdHJ1Y3QgZHJtX3JlY3QgKmxtX3JvaSA9ICZjcnRjX3N0YXRlLT5sbV9i b3VuZHNbbG1faWR4XTsKLQkJc3RydWN0IGRwdV9od19taXhlciAqaHdfbG0gPSBkcHVfY3J0Yy0+ bWl4ZXJzW2xtX2lkeF0uaHdfbG07CisJCXN0cnVjdCBkcHVfaHdfbWl4ZXIgKmh3X2xtID0gY3J0 Y19zdGF0ZS0+bWl4ZXJzW2xtX2lkeF0uaHdfbG07CiAJCXN0cnVjdCBkcHVfaHdfbWl4ZXJfY2Zn IGNmZzsKIAogCQlpZiAoIWxtX3JvaSB8fCAhZHJtX3JlY3RfdmlzaWJsZShsbV9yb2kpKQpAQCAt MjM4LDcgKzIzOCw3IEBAIHN0YXRpYyB2b2lkIF9kcHVfY3J0Y19ibGVuZF9zZXR1cF9taXhlcihz dHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCQkJCSAgIGZiID8gZmItPm1vZGlmaWVyIDogMCk7CiAK IAkJLyogYmxlbmQgY29uZmlnIHVwZGF0ZSAqLwotCQlmb3IgKGxtX2lkeCA9IDA7IGxtX2lkeCA8 IGRwdV9jcnRjLT5udW1fbWl4ZXJzOyBsbV9pZHgrKykgeworCQlmb3IgKGxtX2lkeCA9IDA7IGxt X2lkeCA8IGNzdGF0ZS0+bnVtX21peGVyczsgbG1faWR4KyspIHsKIAkJCV9kcHVfY3J0Y19zZXR1 cF9ibGVuZF9jZmcobWl4ZXIgKyBsbV9pZHgsCiAJCQkJCQlwc3RhdGUsIGZvcm1hdCk7CiAKQEAg LTI2Miw3ICsyNjIsNyBAQCBzdGF0aWMgdm9pZCBfZHB1X2NydGNfYmxlbmRfc2V0dXBfbWl4ZXIo c3RydWN0IGRybV9jcnRjICpjcnRjLAogc3RhdGljIHZvaWQgX2RwdV9jcnRjX2JsZW5kX3NldHVw KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIHsKIAlzdHJ1Y3QgZHB1X2NydGMgKmRwdV9jcnRjOwot CXN0cnVjdCBkcHVfY3J0Y19zdGF0ZSAqZHB1X2NydGNfc3RhdGU7CisJc3RydWN0IGRwdV9jcnRj X3N0YXRlICpjc3RhdGU7CiAJc3RydWN0IGRwdV9jcnRjX21peGVyICptaXhlcjsKIAlzdHJ1Y3Qg ZHB1X2h3X2N0bCAqY3RsOwogCXN0cnVjdCBkcHVfaHdfbWl4ZXIgKmxtOwpAQCAtMjczLDE3ICsy NzMsMTIgQEAgc3RhdGljIHZvaWQgX2RwdV9jcnRjX2JsZW5kX3NldHVwKHN0cnVjdCBkcm1fY3J0 YyAqY3J0YykKIAkJcmV0dXJuOwogCiAJZHB1X2NydGMgPSB0b19kcHVfY3J0YyhjcnRjKTsKLQlk cHVfY3J0Y19zdGF0ZSA9IHRvX2RwdV9jcnRjX3N0YXRlKGNydGMtPnN0YXRlKTsKLQltaXhlciA9 IGRwdV9jcnRjLT5taXhlcnM7CisJY3N0YXRlID0gdG9fZHB1X2NydGNfc3RhdGUoY3J0Yy0+c3Rh dGUpOworCW1peGVyID0gY3N0YXRlLT5taXhlcnM7CiAKIAlEUFVfREVCVUcoIiVzXG4iLCBkcHVf Y3J0Yy0+bmFtZSk7CiAKLQlpZiAoZHB1X2NydGMtPm51bV9taXhlcnMgPiBDUlRDX0RVQUxfTUlY RVJTKSB7Ci0JCURQVV9FUlJPUigiaW52YWxpZCBudW1iZXIgbWl4ZXJzOiAlZFxuIiwgZHB1X2Ny dGMtPm51bV9taXhlcnMpOwotCQlyZXR1cm47Ci0JfQotCi0JZm9yIChpID0gMDsgaSA8IGRwdV9j cnRjLT5udW1fbWl4ZXJzOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgY3N0YXRlLT5udW1fbWl4 ZXJzOyBpKyspIHsKIAkJaWYgKCFtaXhlcltpXS5od19sbSB8fCAhbWl4ZXJbaV0uaHdfY3RsKSB7 CiAJCQlEUFVfRVJST1IoImludmFsaWQgbG0gb3IgY3RsIGFzc2lnbmVkIHRvIG1peGVyXG4iKTsK IAkJCXJldHVybjsKQEAgLTMwMCw3ICsyOTUsNyBAQCBzdGF0aWMgdm9pZCBfZHB1X2NydGNfYmxl bmRfc2V0dXAoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCiAJX2RwdV9jcnRjX2JsZW5kX3NldHVw X21peGVyKGNydGMsIGRwdV9jcnRjLCBtaXhlcik7CiAKLQlmb3IgKGkgPSAwOyBpIDwgZHB1X2Ny dGMtPm51bV9taXhlcnM7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBjc3RhdGUtPm51bV9taXhl cnM7IGkrKykgewogCQljdGwgPSBtaXhlcltpXS5od19jdGw7CiAJCWxtID0gbWl4ZXJbaV0uaHdf bG07CiAKQEAgLTUyMiw3ICs1MTcsNyBAQCBzdGF0aWMgdm9pZCBfZHB1X2NydGNfc2V0dXBfbWl4 ZXJfZm9yX2VuY29kZXIoCiAJCXN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJc3RydWN0IGRybV9l bmNvZGVyICplbmMpCiB7Ci0Jc3RydWN0IGRwdV9jcnRjICpkcHVfY3J0YyA9IHRvX2RwdV9jcnRj KGNydGMpOworCXN0cnVjdCBkcHVfY3J0Y19zdGF0ZSAqY3N0YXRlID0gdG9fZHB1X2NydGNfc3Rh dGUoY3J0Yy0+c3RhdGUpOwogCXN0cnVjdCBkcHVfa21zICpkcHVfa21zID0gX2RwdV9jcnRjX2dl dF9rbXMoY3J0Yyk7CiAJc3RydWN0IGRwdV9ybSAqcm0gPSAmZHB1X2ttcy0+cm07CiAJc3RydWN0 IGRwdV9jcnRjX21peGVyICptaXhlcjsKQEAgLTUzNCw4ICs1MjksOCBAQCBzdGF0aWMgdm9pZCBf ZHB1X2NydGNfc2V0dXBfbWl4ZXJfZm9yX2VuY29kZXIoCiAJZHB1X3JtX2luaXRfaHdfaXRlcigm Y3RsX2l0ZXIsIGVuYy0+YmFzZS5pZCwgRFBVX0hXX0JMS19DVEwpOwogCiAJLyogU2V0IHVwIGFs bCB0aGUgbWl4ZXJzIGFuZCBjdGxzIHJlc2VydmVkIGJ5IHRoaXMgZW5jb2RlciAqLwotCWZvciAo aSA9IGRwdV9jcnRjLT5udW1fbWl4ZXJzOyBpIDwgQVJSQVlfU0laRShkcHVfY3J0Yy0+bWl4ZXJz KTsgaSsrKSB7Ci0JCW1peGVyID0gJmRwdV9jcnRjLT5taXhlcnNbaV07CisJZm9yIChpID0gY3N0 YXRlLT5udW1fbWl4ZXJzOyBpIDwgQVJSQVlfU0laRShjc3RhdGUtPm1peGVycyk7IGkrKykgewor CQltaXhlciA9ICZjc3RhdGUtPm1peGVyc1tpXTsKIAogCQlpZiAoIWRwdV9ybV9nZXRfaHcocm0s ICZsbV9pdGVyKSkKIAkJCWJyZWFrOwpAQCAtNTYwLDcgKzU1NSw3IEBAIHN0YXRpYyB2b2lkIF9k cHVfY3J0Y19zZXR1cF9taXhlcl9mb3JfZW5jb2RlcigKIAogCQltaXhlci0+ZW5jb2RlciA9IGVu YzsKIAotCQlkcHVfY3J0Yy0+bnVtX21peGVycysrOworCQljc3RhdGUtPm51bV9taXhlcnMrKzsK IAkJRFBVX0RFQlVHKCJzZXR1cCBtaXhlciAlZDogbG0gJWRcbiIsCiAJCQkJaSwgbWl4ZXItPmh3 X2xtLT5pZHggLSBMTV8wKTsKIAkJRFBVX0RFQlVHKCJzZXR1cCBtaXhlciAlZDogY3RsICVkXG4i LApAQCAtNTczLDEwICs1NjgsNiBAQCBzdGF0aWMgdm9pZCBfZHB1X2NydGNfc2V0dXBfbWl4ZXJz KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAlzdHJ1Y3QgZHB1X2NydGMgKmRwdV9jcnRjID0gdG9f ZHB1X2NydGMoY3J0Yyk7CiAJc3RydWN0IGRybV9lbmNvZGVyICplbmM7CiAKLQlkcHVfY3J0Yy0+ bnVtX21peGVycyA9IDA7Ci0JZHB1X2NydGMtPm1peGVyc19zd2FwcGVkID0gZmFsc2U7Ci0JbWVt c2V0KGRwdV9jcnRjLT5taXhlcnMsIDAsIHNpemVvZihkcHVfY3J0Yy0+bWl4ZXJzKSk7Ci0KIAlt dXRleF9sb2NrKCZkcHVfY3J0Yy0+Y3J0Y19sb2NrKTsKIAkvKiBDaGVjayBmb3IgbWl4ZXJzIG9u IGFsbCBlbmNvZGVycyBhdHRhY2hlZCB0byB0aGlzIGNydGMgKi8KIAlsaXN0X2Zvcl9lYWNoX2Vu dHJ5KGVuYywgJmNydGMtPmRldi0+bW9kZV9jb25maWcuZW5jb2Rlcl9saXN0LCBoZWFkKSB7CkBA IC02MDksNyArNjAwLDcgQEAgc3RhdGljIHZvaWQgX2RwdV9jcnRjX3NldHVwX2xtX2JvdW5kcyhz dHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJYWRqX21vZGUgPSAmc3RhdGUtPmFkanVzdGVkX21vZGU7 CiAJY3J0Y19zcGxpdF93aWR0aCA9IF9kcHVfY3J0Y19nZXRfbWl4ZXJfd2lkdGgoY3N0YXRlLCBh ZGpfbW9kZSk7CiAKLQlmb3IgKGkgPSAwOyBpIDwgZHB1X2NydGMtPm51bV9taXhlcnM7IGkrKykg eworCWZvciAoaSA9IDA7IGkgPCBjc3RhdGUtPm51bV9taXhlcnM7IGkrKykgewogCQlzdHJ1Y3Qg ZHJtX3JlY3QgKnIgPSAmY3N0YXRlLT5sbV9ib3VuZHNbaV07CiAJCXItPngxID0gY3J0Y19zcGxp dF93aWR0aCAqIGk7CiAJCXItPnkxID0gMDsKQEAgLTYyNiw2ICs2MTcsNyBAQCBzdGF0aWMgdm9p ZCBkcHVfY3J0Y19hdG9taWNfYmVnaW4oc3RydWN0IGRybV9jcnRjICpjcnRjLAogCQlzdHJ1Y3Qg ZHJtX2NydGNfc3RhdGUgKm9sZF9zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHB1X2NydGMgKmRwdV9jcnRj OworCXN0cnVjdCBkcHVfY3J0Y19zdGF0ZSAqY3N0YXRlOwogCXN0cnVjdCBkcm1fZW5jb2RlciAq ZW5jb2RlcjsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2OwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7 CkBAIC02NDUsMTAgKzYzNywxMSBAQCBzdGF0aWMgdm9pZCBkcHVfY3J0Y19hdG9taWNfYmVnaW4o c3RydWN0IGRybV9jcnRjICpjcnRjLAogCURQVV9ERUJVRygiY3J0YyVkXG4iLCBjcnRjLT5iYXNl LmlkKTsKIAogCWRwdV9jcnRjID0gdG9fZHB1X2NydGMoY3J0Yyk7CisJY3N0YXRlID0gdG9fZHB1 X2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpOwogCWRldiA9IGNydGMtPmRldjsKIAlzbW11X3N0YXRl ID0gJmRwdV9jcnRjLT5zbW11X3N0YXRlOwogCi0JaWYgKCFkcHVfY3J0Yy0+bnVtX21peGVycykg eworCWlmICghY3N0YXRlLT5udW1fbWl4ZXJzKSB7CiAJCV9kcHVfY3J0Y19zZXR1cF9taXhlcnMo Y3J0Yyk7CiAJCV9kcHVfY3J0Y19zZXR1cF9sbV9ib3VuZHMoY3J0YywgY3J0Yy0+c3RhdGUpOwog CX0KQEAgLTY3NSw3ICs2NjgsNyBAQCBzdGF0aWMgdm9pZCBkcHVfY3J0Y19hdG9taWNfYmVnaW4o c3RydWN0IGRybV9jcnRjICpjcnRjLAogCSAqIGl0IG1lYW5zIHdlIGFyZSB0cnlpbmcgdG8gZmx1 c2ggYSBDUlRDIHdob3NlIHN0YXRlIGlzIGRpc2FibGVkOgogCSAqIG5vdGhpbmcgZWxzZSBuZWVk cyB0byBiZSBkb25lLgogCSAqLwotCWlmICh1bmxpa2VseSghZHB1X2NydGMtPm51bV9taXhlcnMp KQorCWlmICh1bmxpa2VseSghY3N0YXRlLT5udW1fbWl4ZXJzKSkKIAkJcmV0dXJuOwogCiAJX2Rw dV9jcnRjX2JsZW5kX3NldHVwKGNydGMpOwpAQCAtNzM5LDcgKzczMiw3IEBAIHN0YXRpYyB2b2lk IGRwdV9jcnRjX2F0b21pY19mbHVzaChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJICogaXQgbWVh bnMgd2UgYXJlIHRyeWluZyB0byBmbHVzaCBhIENSVEMgd2hvc2Ugc3RhdGUgaXMgZGlzYWJsZWQ6 CiAJICogbm90aGluZyBlbHNlIG5lZWRzIHRvIGJlIGRvbmUuCiAJICovCi0JaWYgKHVubGlrZWx5 KCFkcHVfY3J0Yy0+bnVtX21peGVycykpCisJaWYgKHVubGlrZWx5KCFjc3RhdGUtPm51bV9taXhl cnMpKQogCQlyZXR1cm47CiAKIAkvKgpAQCAtODU0LDcgKzg0Nyw3IEBAIHZvaWQgZHB1X2NydGNf Y29tbWl0X2tpY2tvZmYoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCSAqIGl0IG1lYW5zIHdlIGFy ZSB0cnlpbmcgdG8gc3RhcnQgYSBDUlRDIHdob3NlIHN0YXRlIGlzIGRpc2FibGVkOgogCSAqIG5v dGhpbmcgZWxzZSBuZWVkcyB0byBiZSBkb25lLgogCSAqLwotCWlmICh1bmxpa2VseSghZHB1X2Ny dGMtPm51bV9taXhlcnMpKQorCWlmICh1bmxpa2VseSghY3N0YXRlLT5udW1fbWl4ZXJzKSkKIAkJ cmV0dXJuOwogCiAJRFBVX0FUUkFDRV9CRUdJTigiY3J0Y19jb21taXQiKTsKQEAgLTEwODgsMTIg KzEwODEsMTQgQEAgc3RhdGljIHZvaWQgZHB1X2NydGNfaGFuZGxlX3Bvd2VyX2V2ZW50KHUzMiBl dmVudF90eXBlLCB2b2lkICphcmcpCiAJc3RydWN0IGRybV9jcnRjICpjcnRjID0gYXJnOwogCXN0 cnVjdCBkcHVfY3J0YyAqZHB1X2NydGM7CiAJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyOwor CXN0cnVjdCBkcHVfY3J0Y19zdGF0ZSAqY3N0YXRlOwogCiAJaWYgKCFjcnRjKSB7CiAJCURQVV9F UlJPUigiaW52YWxpZCBjcnRjXG4iKTsKIAkJcmV0dXJuOwogCX0KIAlkcHVfY3J0YyA9IHRvX2Rw dV9jcnRjKGNydGMpOworCWNzdGF0ZSA9IHRvX2RwdV9jcnRjX3N0YXRlKGRwdV9jcnRjLT5iYXNl LnN0YXRlKTsKIAogCW11dGV4X2xvY2soJmRwdV9jcnRjLT5jcnRjX2xvY2spOwogCkBAIC0xMTc0 LDkgKzExNjksOCBAQCBzdGF0aWMgdm9pZCBkcHVfY3J0Y19kaXNhYmxlKHN0cnVjdCBkcm1fY3J0 YyAqY3J0YykKIAkJZHB1X3Bvd2VyX2hhbmRsZV91bnJlZ2lzdGVyX2V2ZW50KGRwdV9jcnRjLT5w aGFuZGxlLAogCQkJCWRwdV9jcnRjLT5wb3dlcl9ldmVudCk7CiAKLQltZW1zZXQoZHB1X2NydGMt Pm1peGVycywgMCwgc2l6ZW9mKGRwdV9jcnRjLT5taXhlcnMpKTsKLQlkcHVfY3J0Yy0+bnVtX21p eGVycyA9IDA7Ci0JZHB1X2NydGMtPm1peGVyc19zd2FwcGVkID0gZmFsc2U7CisJbWVtc2V0KGNz dGF0ZS0+bWl4ZXJzLCAwLCBzaXplb2YoY3N0YXRlLT5taXhlcnMpKTsKKwljc3RhdGUtPm51bV9t aXhlcnMgPSAwOwogCiAJLyogZGlzYWJsZSBjbGsgJiBidyBjb250cm9sIHVudGlsIGNsayAmIGJ3 IHByb3BlcnRpZXMgYXJlIHNldCAqLwogCWNzdGF0ZS0+YndfY29udHJvbCA9IGZhbHNlOwpAQCAt MTUyMSw2ICsxNTE1LDggQEAgc3RhdGljIGludCBfZHB1X2RlYnVnZnNfc3RhdHVzX3Nob3coc3Ry dWN0IHNlcV9maWxlICpzLCB2b2lkICpkYXRhKQogCiAJZHB1X2NydGMgPSBzLT5wcml2YXRlOwog CWNydGMgPSAmZHB1X2NydGMtPmJhc2U7CisKKwlkcm1fbW9kZXNldF9sb2NrX2FsbChjcnRjLT5k ZXYpOwogCWNzdGF0ZSA9IHRvX2RwdV9jcnRjX3N0YXRlKGNydGMtPnN0YXRlKTsKIAogCW11dGV4 X2xvY2soJmRwdV9jcnRjLT5jcnRjX2xvY2spOwpAQCAtMTUzMiw4ICsxNTI4LDggQEAgc3RhdGlj IGludCBfZHB1X2RlYnVnZnNfc3RhdHVzX3Nob3coc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpk YXRhKQogCiAJc2VxX3B1dHMocywgIlxuIik7CiAKLQlmb3IgKGkgPSAwOyBpIDwgZHB1X2NydGMt Pm51bV9taXhlcnM7ICsraSkgewotCQltID0gJmRwdV9jcnRjLT5taXhlcnNbaV07CisJZm9yIChp ID0gMDsgaSA8IGNzdGF0ZS0+bnVtX21peGVyczsgKytpKSB7CisJCW0gPSAmY3N0YXRlLT5taXhl cnNbaV07CiAJCWlmICghbS0+aHdfbG0pCiAJCQlzZXFfcHJpbnRmKHMsICJcdG1peGVyWyVkXSBo YXMgbm8gbG1cbiIsIGkpOwogCQllbHNlIGlmICghbS0+aHdfY3RsKQpAQCAtMTYxMyw2ICsxNjA5 LDcgQEAgc3RhdGljIGludCBfZHB1X2RlYnVnZnNfc3RhdHVzX3Nob3coc3RydWN0IHNlcV9maWxl ICpzLCB2b2lkICpkYXRhKQogCXNlcV9wcmludGYocywgInZibGFua19lbmFibGU6JWRcbiIsIGRw dV9jcnRjLT52YmxhbmtfcmVxdWVzdGVkKTsKIAogCW11dGV4X3VubG9jaygmZHB1X2NydGMtPmNy dGNfbG9jayk7CisJZHJtX21vZGVzZXRfdW5sb2NrX2FsbChjcnRjLT5kZXYpOwogCiAJcmV0dXJu IDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0 Yy5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuaAppbmRleCA1ZTRk YzVjLi43YWE3NzJmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9k cHVfY3J0Yy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmgK QEAgLTEyMSwxMSArMTIxLDYgQEAgc3RydWN0IGRwdV9jcnRjX2ZyYW1lX2V2ZW50IHsKICAqIHN0 cnVjdCBkcHVfY3J0YyAtIHZpcnR1YWxpemVkIENSVEMgZGF0YSBzdHJ1Y3R1cmUKICAqIEBiYXNl ICAgICAgICAgIDogQmFzZSBkcm0gY3J0YyBzdHJ1Y3R1cmUKICAqIEBuYW1lICAgICAgICAgIDog QVNDSUkgZGVzY3JpcHRpb24gb2YgdGhpcyBjcnRjCi0gKiBAbnVtX2N0bHMgICAgICA6IE51bWJl ciBvZiBjdGwgcGF0aHMgaW4gdXNlCi0gKiBAbnVtX21peGVycyAgICA6IE51bWJlciBvZiBtaXhl cnMgaW4gdXNlCi0gKiBAbWl4ZXJzX3N3YXBwZWQ6IFdoZXRoZXIgdGhlIG1peGVycyBoYXZlIGJl ZW4gc3dhcHBlZCBmb3IgbGVmdC9yaWdodCB1cGRhdGUKLSAqICAgICAgICAgICAgICAgICAgZXNw ZWNpYWxseSBpbiB0aGUgY2FzZSBvZiBEU0MgTWVyZ2UuCi0gKiBAbWl4ZXJzICAgICAgICA6IExp c3Qgb2YgYWN0aXZlIG1peGVycwogICogQGV2ZW50ICAgICAgICAgOiBQb2ludGVyIHRvIGxhc3Qg cmVjZWl2ZWQgZHJtIHZibGFuayBldmVudC4gSWYgdGhlcmUgaXMgYQogICogICAgICAgICAgICAg ICAgICBwZW5kaW5nIHZibGFuayBldmVudCwgdGhpcyB3aWxsIGJlIG5vbi1udWxsLgogICogQHZz eW5jX2NvdW50ICAgOiBSdW5uaW5nIGNvdW50IG9mIHJlY2VpdmVkIHZzeW5jIGV2ZW50cwpAQCAt MTY0LDEyICsxNTksNiBAQCBzdHJ1Y3QgZHB1X2NydGMgewogCXN0cnVjdCBkcm1fY3J0YyBiYXNl OwogCWNoYXIgbmFtZVtEUFVfQ1JUQ19OQU1FX1NJWkVdOwogCi0JLyogSFcgUmVzb3VyY2VzIHJl c2VydmVkIGZvciB0aGUgY3J0YyAqLwotCXUzMiBudW1fY3RsczsKLQl1MzIgbnVtX21peGVyczsK LQlib29sIG1peGVyc19zd2FwcGVkOwotCXN0cnVjdCBkcHVfY3J0Y19taXhlciBtaXhlcnNbQ1JU Q19EVUFMX01JWEVSU107Ci0KIAlzdHJ1Y3QgZHJtX3BlbmRpbmdfdmJsYW5rX2V2ZW50ICpldmVu dDsKIAl1MzIgdnN5bmNfY291bnQ7CiAKQEAgLTIyMSw2ICsyMTAsMTAgQEAgc3RydWN0IGRwdV9j cnRjIHsKICAqIEBwcm9wZXJ0eV92YWx1ZXM6IEN1cnJlbnQgY3J0YyBwcm9wZXJ0eSB2YWx1ZXMK ICAqIEBpbnB1dF9mZW5jZV90aW1lb3V0X25zIDogQ2FjaGVkIGlucHV0IGZlbmNlIHRpbWVvdXQs IGluIG5zCiAgKiBAbmV3X3BlcmY6IG5ldyBwZXJmb3JtYW5jZSBzdGF0ZSBiZWluZyByZXF1ZXN0 ZWQKKyAqIEBudW1fbWl4ZXJzICAgIDogTnVtYmVyIG9mIG1peGVycyBpbiB1c2UKKyAqIEBtaXhl cnMgICAgICAgIDogTGlzdCBvZiBhY3RpdmUgbWl4ZXJzCisgKiBAbnVtX2N0bHMgICAgICA6IE51 bWJlciBvZiBjdGwgcGF0aHMgaW4gdXNlCisgKiBAaHdfY3RscyAgICAgICA6IExpc3Qgb2YgYWN0 aXZlIGN0bCBwYXRocwogICovCiBzdHJ1Y3QgZHB1X2NydGNfc3RhdGUgewogCXN0cnVjdCBkcm1f Y3J0Y19zdGF0ZSBiYXNlOwpAQCAtMjMyLDYgKzIyNSwxMyBAQCBzdHJ1Y3QgZHB1X2NydGNfc3Rh dGUgewogCXVpbnQ2NF90IGlucHV0X2ZlbmNlX3RpbWVvdXRfbnM7CiAKIAlzdHJ1Y3QgZHB1X2Nv cmVfcGVyZl9wYXJhbXMgbmV3X3BlcmY7CisKKwkvKiBIVyBSZXNvdXJjZXMgcmVzZXJ2ZWQgZm9y IHRoZSBjcnRjICovCisJdTMyIG51bV9taXhlcnM7CisJc3RydWN0IGRwdV9jcnRjX21peGVyIG1p eGVyc1tDUlRDX0RVQUxfTUlYRVJTXTsKKworCXUzMiBudW1fY3RsczsKKwlzdHJ1Y3QgZHB1X2h3 X2N0bCAqaHdfY3Rsc1tDUlRDX0RVQUxfTUlYRVJTXTsKIH07CiAKICNkZWZpbmUgdG9fZHB1X2Ny dGNfc3RhdGUoeCkgXAotLSAKVGhlIFF1YWxjb21tIElubm92YXRpb24gQ2VudGVyLCBJbmMuIGlz IGEgbWVtYmVyIG9mIHRoZSBDb2RlIEF1cm9yYSBGb3J1bSwKYSBMaW51eCBGb3VuZGF0aW9uIENv bGxhYm9yYXRpdmUgUHJvamVjdAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KRnJlZWRyZW5vIG1haWxpbmcgbGlzdApGcmVlZHJlbm9AbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v ZnJlZWRyZW5vCg==