From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeykumar Sankaran Subject: [PATCH 10/14] drm/msm/dpu: move hw resource tracking to crtc state Date: Tue, 28 Aug 2018 17:39:59 -0700 Message-ID: <1535503203-22054-11-git-send-email-jsanka@codeaurora.org> References: <1535503203-22054-1-git-send-email-jsanka@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1535503203-22054-1-git-send-email-jsanka-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 UHJlcCBjaGFuZ2VzIGZvciBzdGF0ZSBiYXNlZCByZXNvdXJjZSBtYW5hZ2VtZW50LgoKTW92ZXMg YWxsIHRoZSBodyBibG9jayB0cmFja2luZyBmb3IgdGhlIGNydGMgdG8gdGhlIHN0YXRlCm9iamVj dC4KClNpZ25lZC1vZmYtYnk6IEpleWt1bWFyIFNhbmthcmFuIDxqc2Fua2FAY29kZWF1cm9yYS5v cmc+Ci0tLQogZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuYyB8IDYwICsr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3Av ZHB1MS9kcHVfY3J0Yy5oIHwgMjIgKysrKysrLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDQ0IGlu c2VydGlvbnMoKyksIDM4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1 MS9kcHVfY3J0Yy5jCmluZGV4IGUwNjE4NDcuLjdhYjMyMGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21z bS9kaXNwL2RwdTEvZHB1X2NydGMuYwpAQCAtMTYzLDkgKzE2Myw5IEBAIHN0YXRpYyB2b2lkIF9k cHVfY3J0Y19wcm9ncmFtX2xtX291dHB1dF9yb2koc3RydWN0IGRybV9jcnRjICpjcnRjKQogCWNy dGNfc3RhdGUgPSB0b19kcHVfY3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSk7CiAKIAlsbV9ob3Jpel9w b3NpdGlvbiA9IDA7Ci0JZm9yIChsbV9pZHggPSAwOyBsbV9pZHggPCBkcHVfY3J0Yy0+bnVtX21p eGVyczsgbG1faWR4KyspIHsKKwlmb3IgKGxtX2lkeCA9IDA7IGxtX2lkeCA8IGNydGNfc3RhdGUt Pm51bV9taXhlcnM7IGxtX2lkeCsrKSB7CiAJCWNvbnN0IHN0cnVjdCBkcm1fcmVjdCAqbG1fcm9p ID0gJmNydGNfc3RhdGUtPmxtX2JvdW5kc1tsbV9pZHhdOwotCQlzdHJ1Y3QgZHB1X2h3X21peGVy ICpod19sbSA9IGRwdV9jcnRjLT5taXhlcnNbbG1faWR4XS5od19sbTsKKwkJc3RydWN0IGRwdV9o d19taXhlciAqaHdfbG0gPSBjcnRjX3N0YXRlLT5taXhlcnNbbG1faWR4XS5od19sbTsKIAkJc3Ry dWN0IGRwdV9od19taXhlcl9jZmcgY2ZnOwogCiAJCWlmICghbG1fcm9pIHx8ICFkcm1fcmVjdF92 aXNpYmxlKGxtX3JvaSkpCkBAIC0yNDYsNyArMjQ2LDcgQEAgc3RhdGljIHZvaWQgX2RwdV9jcnRj X2JsZW5kX3NldHVwX21peGVyKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJCQkJICAgZmIgPyBm Yi0+bW9kaWZpZXIgOiAwKTsKIAogCQkvKiBibGVuZCBjb25maWcgdXBkYXRlICovCi0JCWZvciAo bG1faWR4ID0gMDsgbG1faWR4IDwgZHB1X2NydGMtPm51bV9taXhlcnM7IGxtX2lkeCsrKSB7CisJ CWZvciAobG1faWR4ID0gMDsgbG1faWR4IDwgY3N0YXRlLT5udW1fbWl4ZXJzOyBsbV9pZHgrKykg ewogCQkJX2RwdV9jcnRjX3NldHVwX2JsZW5kX2NmZyhtaXhlciArIGxtX2lkeCwKIAkJCQkJCXBz dGF0ZSwgZm9ybWF0KTsKIApAQCAtMjcwLDcgKzI3MCw3IEBAIHN0YXRpYyB2b2lkIF9kcHVfY3J0 Y19ibGVuZF9zZXR1cF9taXhlcihzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiBzdGF0aWMgdm9pZCBf ZHB1X2NydGNfYmxlbmRfc2V0dXAoc3RydWN0IGRybV9jcnRjICpjcnRjKQogewogCXN0cnVjdCBk cHVfY3J0YyAqZHB1X2NydGM7Ci0Jc3RydWN0IGRwdV9jcnRjX3N0YXRlICpkcHVfY3J0Y19zdGF0 ZTsKKwlzdHJ1Y3QgZHB1X2NydGNfc3RhdGUgKmNzdGF0ZTsKIAlzdHJ1Y3QgZHB1X2NydGNfbWl4 ZXIgKm1peGVyOwogCXN0cnVjdCBkcHVfaHdfY3RsICpjdGw7CiAJc3RydWN0IGRwdV9od19taXhl ciAqbG07CkBAIC0yODEsMTcgKzI4MSwxNyBAQCBzdGF0aWMgdm9pZCBfZHB1X2NydGNfYmxlbmRf c2V0dXAoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCQlyZXR1cm47CiAKIAlkcHVfY3J0YyA9IHRv X2RwdV9jcnRjKGNydGMpOwotCWRwdV9jcnRjX3N0YXRlID0gdG9fZHB1X2NydGNfc3RhdGUoY3J0 Yy0+c3RhdGUpOwotCW1peGVyID0gZHB1X2NydGMtPm1peGVyczsKKwljc3RhdGUgPSB0b19kcHVf Y3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSk7CisJbWl4ZXIgPSBjc3RhdGUtPm1peGVyczsKIAogCURQ VV9ERUJVRygiJXNcbiIsIGRwdV9jcnRjLT5uYW1lKTsKIAotCWlmIChkcHVfY3J0Yy0+bnVtX21p eGVycyA+IENSVENfRFVBTF9NSVhFUlMpIHsKLQkJRFBVX0VSUk9SKCJpbnZhbGlkIG51bWJlciBt aXhlcnM6ICVkXG4iLCBkcHVfY3J0Yy0+bnVtX21peGVycyk7CisJaWYgKGNzdGF0ZS0+bnVtX21p eGVycyA+IENSVENfRFVBTF9NSVhFUlMpIHsKKwkJRFBVX0VSUk9SKCJpbnZhbGlkIG51bWJlciBt aXhlcnM6ICVkXG4iLCBjc3RhdGUtPm51bV9taXhlcnMpOwogCQlyZXR1cm47CiAJfQogCi0JZm9y IChpID0gMDsgaSA8IGRwdV9jcnRjLT5udW1fbWl4ZXJzOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBp IDwgY3N0YXRlLT5udW1fbWl4ZXJzOyBpKyspIHsKIAkJaWYgKCFtaXhlcltpXS5od19sbSB8fCAh bWl4ZXJbaV0uaHdfY3RsKSB7CiAJCQlEUFVfRVJST1IoImludmFsaWQgbG0gb3IgY3RsIGFzc2ln bmVkIHRvIG1peGVyXG4iKTsKIAkJCXJldHVybjsKQEAgLTMwOCw3ICszMDgsNyBAQCBzdGF0aWMg dm9pZCBfZHB1X2NydGNfYmxlbmRfc2V0dXAoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCiAJX2Rw dV9jcnRjX2JsZW5kX3NldHVwX21peGVyKGNydGMsIGRwdV9jcnRjLCBtaXhlcik7CiAKLQlmb3Ig KGkgPSAwOyBpIDwgZHB1X2NydGMtPm51bV9taXhlcnM7IGkrKykgeworCWZvciAoaSA9IDA7IGkg PCBjc3RhdGUtPm51bV9taXhlcnM7IGkrKykgewogCQljdGwgPSBtaXhlcltpXS5od19jdGw7CiAJ CWxtID0gbWl4ZXJbaV0uaHdfbG07CiAKQEAgLTUzMCw3ICs1MzAsNyBAQCBzdGF0aWMgdm9pZCBf ZHB1X2NydGNfc2V0dXBfbWl4ZXJfZm9yX2VuY29kZXIoCiAJCXN0cnVjdCBkcm1fY3J0YyAqY3J0 YywKIAkJc3RydWN0IGRybV9lbmNvZGVyICplbmMpCiB7Ci0Jc3RydWN0IGRwdV9jcnRjICpkcHVf Y3J0YyA9IHRvX2RwdV9jcnRjKGNydGMpOworCXN0cnVjdCBkcHVfY3J0Y19zdGF0ZSAqY3N0YXRl ID0gdG9fZHB1X2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpOwogCXN0cnVjdCBkcHVfa21zICpkcHVf a21zID0gX2RwdV9jcnRjX2dldF9rbXMoY3J0Yyk7CiAJc3RydWN0IGRwdV9ybSAqcm0gPSAmZHB1 X2ttcy0+cm07CiAJc3RydWN0IGRwdV9jcnRjX21peGVyICptaXhlcjsKQEAgLTU0Miw4ICs1NDIs OCBAQCBzdGF0aWMgdm9pZCBfZHB1X2NydGNfc2V0dXBfbWl4ZXJfZm9yX2VuY29kZXIoCiAJZHB1 X3JtX2luaXRfaHdfaXRlcigmY3RsX2l0ZXIsIGVuYy0+YmFzZS5pZCwgRFBVX0hXX0JMS19DVEwp OwogCiAJLyogU2V0IHVwIGFsbCB0aGUgbWl4ZXJzIGFuZCBjdGxzIHJlc2VydmVkIGJ5IHRoaXMg ZW5jb2RlciAqLwotCWZvciAoaSA9IGRwdV9jcnRjLT5udW1fbWl4ZXJzOyBpIDwgQVJSQVlfU0la RShkcHVfY3J0Yy0+bWl4ZXJzKTsgaSsrKSB7Ci0JCW1peGVyID0gJmRwdV9jcnRjLT5taXhlcnNb aV07CisJZm9yIChpID0gY3N0YXRlLT5udW1fbWl4ZXJzOyBpIDwgQVJSQVlfU0laRShjc3RhdGUt Pm1peGVycyk7IGkrKykgeworCQltaXhlciA9ICZjc3RhdGUtPm1peGVyc1tpXTsKIAogCQlpZiAo IWRwdV9ybV9nZXRfaHcocm0sICZsbV9pdGVyKSkKIAkJCWJyZWFrOwpAQCAtNTY4LDcgKzU2OCw3 IEBAIHN0YXRpYyB2b2lkIF9kcHVfY3J0Y19zZXR1cF9taXhlcl9mb3JfZW5jb2RlcigKIAogCQlt aXhlci0+ZW5jb2RlciA9IGVuYzsKIAotCQlkcHVfY3J0Yy0+bnVtX21peGVycysrOworCQljc3Rh dGUtPm51bV9taXhlcnMrKzsKIAkJRFBVX0RFQlVHKCJzZXR1cCBtaXhlciAlZDogbG0gJWRcbiIs CiAJCQkJaSwgbWl4ZXItPmh3X2xtLT5pZHggLSBMTV8wKTsKIAkJRFBVX0RFQlVHKCJzZXR1cCBt aXhlciAlZDogY3RsICVkXG4iLApAQCAtNTc5LDExICs1NzksMTEgQEAgc3RhdGljIHZvaWQgX2Rw dV9jcnRjX3NldHVwX21peGVyX2Zvcl9lbmNvZGVyKAogc3RhdGljIHZvaWQgX2RwdV9jcnRjX3Nl dHVwX21peGVycyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiB7CiAJc3RydWN0IGRwdV9jcnRjICpk cHVfY3J0YyA9IHRvX2RwdV9jcnRjKGNydGMpOworCXN0cnVjdCBkcHVfY3J0Y19zdGF0ZSAqY3N0 YXRlID0gdG9fZHB1X2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpOwogCXN0cnVjdCBkcm1fZW5jb2Rl ciAqZW5jOwogCi0JZHB1X2NydGMtPm51bV9taXhlcnMgPSAwOwotCWRwdV9jcnRjLT5taXhlcnNf c3dhcHBlZCA9IGZhbHNlOwotCW1lbXNldChkcHVfY3J0Yy0+bWl4ZXJzLCAwLCBzaXplb2YoZHB1 X2NydGMtPm1peGVycykpOworCWNzdGF0ZS0+bnVtX21peGVycyA9IDA7CisJbWVtc2V0KGNzdGF0 ZS0+bWl4ZXJzLCAwLCBzaXplb2YoY3N0YXRlLT5taXhlcnMpKTsKIAogCW11dGV4X2xvY2soJmRw dV9jcnRjLT5jcnRjX2xvY2spOwogCS8qIENoZWNrIGZvciBtaXhlcnMgb24gYWxsIGVuY29kZXJz IGF0dGFjaGVkIHRvIHRoaXMgY3J0YyAqLwpAQCAtNjE4LDcgKzYxOCw3IEBAIHN0YXRpYyB2b2lk IF9kcHVfY3J0Y19zZXR1cF9sbV9ib3VuZHMoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCWNydGNf c3BsaXRfd2lkdGggPSBfZHB1X2NydGNfZ2V0X21peGVyX3dpZHRoKGRwdV9jcnRjLCBjc3RhdGUs CiAJCQkJCQkgICAgYWRqX21vZGUpOwogCi0JZm9yIChpID0gMDsgaSA8IGRwdV9jcnRjLT5udW1f bWl4ZXJzOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgY3N0YXRlLT5udW1fbWl4ZXJzOyBpKysp IHsKIAkJc3RydWN0IGRybV9yZWN0ICpyID0gJmNzdGF0ZS0+bG1fYm91bmRzW2ldOwogCQlyLT54 MSA9IGNydGNfc3BsaXRfd2lkdGggKiBpOwogCQlyLT55MSA9IDA7CkBAIC02MzUsNiArNjM1LDcg QEAgc3RhdGljIHZvaWQgZHB1X2NydGNfYXRvbWljX2JlZ2luKHN0cnVjdCBkcm1fY3J0YyAqY3J0 YywKIAkJc3RydWN0IGRybV9jcnRjX3N0YXRlICpvbGRfc3RhdGUpCiB7CiAJc3RydWN0IGRwdV9j cnRjICpkcHVfY3J0YzsKKwlzdHJ1Y3QgZHB1X2NydGNfc3RhdGUgKmNzdGF0ZTsKIAlzdHJ1Y3Qg ZHJtX2VuY29kZXIgKmVuY29kZXI7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldjsKIAl1bnNpZ25l ZCBsb25nIGZsYWdzOwpAQCAtNjU0LDEwICs2NTUsMTEgQEAgc3RhdGljIHZvaWQgZHB1X2NydGNf YXRvbWljX2JlZ2luKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAlEUFVfREVCVUcoImNydGMlZFxu IiwgY3J0Yy0+YmFzZS5pZCk7CiAKIAlkcHVfY3J0YyA9IHRvX2RwdV9jcnRjKGNydGMpOworCWNz dGF0ZSA9IHRvX2RwdV9jcnRjX3N0YXRlKGNydGMtPnN0YXRlKTsKIAlkZXYgPSBjcnRjLT5kZXY7 CiAJc21tdV9zdGF0ZSA9ICZkcHVfY3J0Yy0+c21tdV9zdGF0ZTsKIAotCWlmICghZHB1X2NydGMt Pm51bV9taXhlcnMpIHsKKwlpZiAoIWNzdGF0ZS0+bnVtX21peGVycykgewogCQlfZHB1X2NydGNf c2V0dXBfbWl4ZXJzKGNydGMpOwogCQlfZHB1X2NydGNfc2V0dXBfbG1fYm91bmRzKGNydGMsIGNy dGMtPnN0YXRlKTsKIAl9CkBAIC02ODQsNyArNjg2LDcgQEAgc3RhdGljIHZvaWQgZHB1X2NydGNf YXRvbWljX2JlZ2luKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkgKiBpdCBtZWFucyB3ZSBhcmUg dHJ5aW5nIHRvIGZsdXNoIGEgQ1JUQyB3aG9zZSBzdGF0ZSBpcyBkaXNhYmxlZDoKIAkgKiBub3Ro aW5nIGVsc2UgbmVlZHMgdG8gYmUgZG9uZS4KIAkgKi8KLQlpZiAodW5saWtlbHkoIWRwdV9jcnRj LT5udW1fbWl4ZXJzKSkKKwlpZiAodW5saWtlbHkoIWNzdGF0ZS0+bnVtX21peGVycykpCiAJCXJl dHVybjsKIAogCV9kcHVfY3J0Y19ibGVuZF9zZXR1cChjcnRjKTsKQEAgLTc0OCw3ICs3NTAsNyBA QCBzdGF0aWMgdm9pZCBkcHVfY3J0Y19hdG9taWNfZmx1c2goc3RydWN0IGRybV9jcnRjICpjcnRj LAogCSAqIGl0IG1lYW5zIHdlIGFyZSB0cnlpbmcgdG8gZmx1c2ggYSBDUlRDIHdob3NlIHN0YXRl IGlzIGRpc2FibGVkOgogCSAqIG5vdGhpbmcgZWxzZSBuZWVkcyB0byBiZSBkb25lLgogCSAqLwot CWlmICh1bmxpa2VseSghZHB1X2NydGMtPm51bV9taXhlcnMpKQorCWlmICh1bmxpa2VseSghY3N0 YXRlLT5udW1fbWl4ZXJzKSkKIAkJcmV0dXJuOwogCiAJLyoKQEAgLTg2Myw3ICs4NjUsNyBAQCB2 b2lkIGRwdV9jcnRjX2NvbW1pdF9raWNrb2ZmKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAkgKiBp dCBtZWFucyB3ZSBhcmUgdHJ5aW5nIHRvIHN0YXJ0IGEgQ1JUQyB3aG9zZSBzdGF0ZSBpcyBkaXNh YmxlZDoKIAkgKiBub3RoaW5nIGVsc2UgbmVlZHMgdG8gYmUgZG9uZS4KIAkgKi8KLQlpZiAodW5s aWtlbHkoIWRwdV9jcnRjLT5udW1fbWl4ZXJzKSkKKwlpZiAodW5saWtlbHkoIWNzdGF0ZS0+bnVt X21peGVycykpCiAJCXJldHVybjsKIAogCURQVV9BVFJBQ0VfQkVHSU4oImNydGNfY29tbWl0Iik7 CkBAIC0xMDk3LDEyICsxMDk5LDE0IEBAIHN0YXRpYyB2b2lkIGRwdV9jcnRjX2hhbmRsZV9wb3dl cl9ldmVudCh1MzIgZXZlbnRfdHlwZSwgdm9pZCAqYXJnKQogCXN0cnVjdCBkcm1fY3J0YyAqY3J0 YyA9IGFyZzsKIAlzdHJ1Y3QgZHB1X2NydGMgKmRwdV9jcnRjOwogCXN0cnVjdCBkcm1fZW5jb2Rl ciAqZW5jb2RlcjsKKwlzdHJ1Y3QgZHB1X2NydGNfc3RhdGUgKmNzdGF0ZTsKIAogCWlmICghY3J0 YykgewogCQlEUFVfRVJST1IoImludmFsaWQgY3J0Y1xuIik7CiAJCXJldHVybjsKIAl9CiAJZHB1 X2NydGMgPSB0b19kcHVfY3J0YyhjcnRjKTsKKwljc3RhdGUgPSB0b19kcHVfY3J0Y19zdGF0ZShk cHVfY3J0Yy0+YmFzZS5zdGF0ZSk7CiAKIAltdXRleF9sb2NrKCZkcHVfY3J0Yy0+Y3J0Y19sb2Nr KTsKIApAQCAtMTE5Nyw5ICsxMjAxLDggQEAgc3RhdGljIHZvaWQgZHB1X2NydGNfZGlzYWJsZShz dHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJCWRwdV9wb3dlcl9oYW5kbGVfdW5yZWdpc3Rlcl9ldmVu dChkcHVfY3J0Yy0+cGhhbmRsZSwKIAkJCQlkcHVfY3J0Yy0+cG93ZXJfZXZlbnQpOwogCi0JbWVt c2V0KGRwdV9jcnRjLT5taXhlcnMsIDAsIHNpemVvZihkcHVfY3J0Yy0+bWl4ZXJzKSk7Ci0JZHB1 X2NydGMtPm51bV9taXhlcnMgPSAwOwotCWRwdV9jcnRjLT5taXhlcnNfc3dhcHBlZCA9IGZhbHNl OworCW1lbXNldChjc3RhdGUtPm1peGVycywgMCwgc2l6ZW9mKGNzdGF0ZS0+bWl4ZXJzKSk7CisJ Y3N0YXRlLT5udW1fbWl4ZXJzID0gMDsKIAogCS8qIGRpc2FibGUgY2xrICYgYncgY29udHJvbCB1 bnRpbCBjbGsgJiBidyBwcm9wZXJ0aWVzIGFyZSBzZXQgKi8KIAljc3RhdGUtPmJ3X2NvbnRyb2wg PSBmYWxzZTsKQEAgLTE1NDcsNiArMTU1MCw4IEBAIHN0YXRpYyBpbnQgX2RwdV9kZWJ1Z2ZzX3N0 YXR1c19zaG93KHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqZGF0YSkKIAogCWRwdV9jcnRjID0g cy0+cHJpdmF0ZTsKIAljcnRjID0gJmRwdV9jcnRjLT5iYXNlOworCisJZHJtX21vZGVzZXRfbG9j aygmY3J0Yy0+bXV0ZXgsIE5VTEwpOwogCWNzdGF0ZSA9IHRvX2RwdV9jcnRjX3N0YXRlKGNydGMt PnN0YXRlKTsKIAogCW11dGV4X2xvY2soJmRwdV9jcnRjLT5jcnRjX2xvY2spOwpAQCAtMTU1OCw4 ICsxNTYzLDggQEAgc3RhdGljIGludCBfZHB1X2RlYnVnZnNfc3RhdHVzX3Nob3coc3RydWN0IHNl cV9maWxlICpzLCB2b2lkICpkYXRhKQogCiAJc2VxX3B1dHMocywgIlxuIik7CiAKLQlmb3IgKGkg PSAwOyBpIDwgZHB1X2NydGMtPm51bV9taXhlcnM7ICsraSkgewotCQltID0gJmRwdV9jcnRjLT5t aXhlcnNbaV07CisJZm9yIChpID0gMDsgaSA8IGNzdGF0ZS0+bnVtX21peGVyczsgKytpKSB7CisJ CW0gPSAmY3N0YXRlLT5taXhlcnNbaV07CiAJCWlmICghbS0+aHdfbG0pCiAJCQlzZXFfcHJpbnRm KHMsICJcdG1peGVyWyVkXSBoYXMgbm8gbG1cbiIsIGkpOwogCQllbHNlIGlmICghbS0+aHdfY3Rs KQpAQCAtMTYzOSw2ICsxNjQ0LDcgQEAgc3RhdGljIGludCBfZHB1X2RlYnVnZnNfc3RhdHVzX3No b3coc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpkYXRhKQogCXNlcV9wcmludGYocywgInZibGFu a19lbmFibGU6JWRcbiIsIGRwdV9jcnRjLT52YmxhbmtfcmVxdWVzdGVkKTsKIAogCW11dGV4X3Vu bG9jaygmZHB1X2NydGMtPmNydGNfbG9jayk7CisJZHJtX21vZGVzZXRfdW5sb2NrKCZjcnRjLT5t dXRleCk7CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20v ZGlzcC9kcHUxL2RwdV9jcnRjLmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVf Y3J0Yy5oCmluZGV4IDVlNGRjNWMuLjdhYTc3MmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNw L2RwdTEvZHB1X2NydGMuaApAQCAtMTIxLDExICsxMjEsNiBAQCBzdHJ1Y3QgZHB1X2NydGNfZnJh bWVfZXZlbnQgewogICogc3RydWN0IGRwdV9jcnRjIC0gdmlydHVhbGl6ZWQgQ1JUQyBkYXRhIHN0 cnVjdHVyZQogICogQGJhc2UgICAgICAgICAgOiBCYXNlIGRybSBjcnRjIHN0cnVjdHVyZQogICog QG5hbWUgICAgICAgICAgOiBBU0NJSSBkZXNjcmlwdGlvbiBvZiB0aGlzIGNydGMKLSAqIEBudW1f Y3RscyAgICAgIDogTnVtYmVyIG9mIGN0bCBwYXRocyBpbiB1c2UKLSAqIEBudW1fbWl4ZXJzICAg IDogTnVtYmVyIG9mIG1peGVycyBpbiB1c2UKLSAqIEBtaXhlcnNfc3dhcHBlZDogV2hldGhlciB0 aGUgbWl4ZXJzIGhhdmUgYmVlbiBzd2FwcGVkIGZvciBsZWZ0L3JpZ2h0IHVwZGF0ZQotICogICAg ICAgICAgICAgICAgICBlc3BlY2lhbGx5IGluIHRoZSBjYXNlIG9mIERTQyBNZXJnZS4KLSAqIEBt aXhlcnMgICAgICAgIDogTGlzdCBvZiBhY3RpdmUgbWl4ZXJzCiAgKiBAZXZlbnQgICAgICAgICA6 IFBvaW50ZXIgdG8gbGFzdCByZWNlaXZlZCBkcm0gdmJsYW5rIGV2ZW50LiBJZiB0aGVyZSBpcyBh CiAgKiAgICAgICAgICAgICAgICAgIHBlbmRpbmcgdmJsYW5rIGV2ZW50LCB0aGlzIHdpbGwgYmUg bm9uLW51bGwuCiAgKiBAdnN5bmNfY291bnQgICA6IFJ1bm5pbmcgY291bnQgb2YgcmVjZWl2ZWQg dnN5bmMgZXZlbnRzCkBAIC0xNjQsMTIgKzE1OSw2IEBAIHN0cnVjdCBkcHVfY3J0YyB7CiAJc3Ry dWN0IGRybV9jcnRjIGJhc2U7CiAJY2hhciBuYW1lW0RQVV9DUlRDX05BTUVfU0laRV07CiAKLQkv KiBIVyBSZXNvdXJjZXMgcmVzZXJ2ZWQgZm9yIHRoZSBjcnRjICovCi0JdTMyIG51bV9jdGxzOwot CXUzMiBudW1fbWl4ZXJzOwotCWJvb2wgbWl4ZXJzX3N3YXBwZWQ7Ci0Jc3RydWN0IGRwdV9jcnRj X21peGVyIG1peGVyc1tDUlRDX0RVQUxfTUlYRVJTXTsKLQogCXN0cnVjdCBkcm1fcGVuZGluZ192 YmxhbmtfZXZlbnQgKmV2ZW50OwogCXUzMiB2c3luY19jb3VudDsKIApAQCAtMjIxLDYgKzIxMCwx MCBAQCBzdHJ1Y3QgZHB1X2NydGMgewogICogQHByb3BlcnR5X3ZhbHVlczogQ3VycmVudCBjcnRj IHByb3BlcnR5IHZhbHVlcwogICogQGlucHV0X2ZlbmNlX3RpbWVvdXRfbnMgOiBDYWNoZWQgaW5w dXQgZmVuY2UgdGltZW91dCwgaW4gbnMKICAqIEBuZXdfcGVyZjogbmV3IHBlcmZvcm1hbmNlIHN0 YXRlIGJlaW5nIHJlcXVlc3RlZAorICogQG51bV9taXhlcnMgICAgOiBOdW1iZXIgb2YgbWl4ZXJz IGluIHVzZQorICogQG1peGVycyAgICAgICAgOiBMaXN0IG9mIGFjdGl2ZSBtaXhlcnMKKyAqIEBu dW1fY3RscyAgICAgIDogTnVtYmVyIG9mIGN0bCBwYXRocyBpbiB1c2UKKyAqIEBod19jdGxzICAg ICAgIDogTGlzdCBvZiBhY3RpdmUgY3RsIHBhdGhzCiAgKi8KIHN0cnVjdCBkcHVfY3J0Y19zdGF0 ZSB7CiAJc3RydWN0IGRybV9jcnRjX3N0YXRlIGJhc2U7CkBAIC0yMzIsNiArMjI1LDEzIEBAIHN0 cnVjdCBkcHVfY3J0Y19zdGF0ZSB7CiAJdWludDY0X3QgaW5wdXRfZmVuY2VfdGltZW91dF9uczsK IAogCXN0cnVjdCBkcHVfY29yZV9wZXJmX3BhcmFtcyBuZXdfcGVyZjsKKworCS8qIEhXIFJlc291 cmNlcyByZXNlcnZlZCBmb3IgdGhlIGNydGMgKi8KKwl1MzIgbnVtX21peGVyczsKKwlzdHJ1Y3Qg ZHB1X2NydGNfbWl4ZXIgbWl4ZXJzW0NSVENfRFVBTF9NSVhFUlNdOworCisJdTMyIG51bV9jdGxz OworCXN0cnVjdCBkcHVfaHdfY3RsICpod19jdGxzW0NSVENfRFVBTF9NSVhFUlNdOwogfTsKIAog I2RlZmluZSB0b19kcHVfY3J0Y19zdGF0ZSh4KSBcCi0tIApUaGUgUXVhbGNvbW0gSW5ub3ZhdGlv biBDZW50ZXIsIEluYy4gaXMgYSBtZW1iZXIgb2YgdGhlIENvZGUgQXVyb3JhIEZvcnVtLAphIExp bnV4IEZvdW5kYXRpb24gQ29sbGFib3JhdGl2ZSBQcm9qZWN0CgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpGcmVlZHJlbm8gbWFpbGluZyBsaXN0CkZyZWVk cmVub0BsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9mcmVlZHJlbm8K