From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeykumar Sankaran Subject: Re: [PATCH 10/14] drm/msm/dpu: move hw resource tracking to crtc state Date: Tue, 04 Sep 2018 15:36:45 -0700 Message-ID: <10b8cef7276af7d3551cd1591d3412b7@codeaurora.org> References: <1535503203-22054-1-git-send-email-jsanka@codeaurora.org> <1535503203-22054-11-git-send-email-jsanka@codeaurora.org> <20180831145647.GB91962@art_vandelay> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180831145647.GB91962@art_vandelay> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: Sean Paul Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, hoegsberg-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org T24gMjAxOC0wOC0zMSAwNzo1NiwgU2VhbiBQYXVsIHdyb3RlOgo+IE9uIFR1ZSwgQXVnIDI4LCAy MDE4IGF0IDA1OjM5OjU5UE0gLTA3MDAsIEpleWt1bWFyIFNhbmthcmFuIHdyb3RlOgo+PiBQcmVw IGNoYW5nZXMgZm9yIHN0YXRlIGJhc2VkIHJlc291cmNlIG1hbmFnZW1lbnQuCj4+IAo+PiBNb3Zl cyBhbGwgdGhlIGh3IGJsb2NrIHRyYWNraW5nIGZvciB0aGUgY3J0YyB0byB0aGUgc3RhdGUKPj4g b2JqZWN0Lgo+IAo+IENoYW5nZXMgaW4gdjQuLi4KPiAKPj4gCj4+IFNpZ25lZC1vZmYtYnk6IEpl eWt1bWFyIFNhbmthcmFuIDxqc2Fua2FAY29kZWF1cm9yYS5vcmc+Cj4+IC0tLQo+PiAgZHJpdmVy cy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuYyB8IDYwCj4gKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0KPj4gIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9j cnRjLmggfCAyMiArKysrKystLS0tLS0KPj4gIDIgZmlsZXMgY2hhbmdlZCwgNDQgaW5zZXJ0aW9u cygrKSwgMzggZGVsZXRpb25zKC0pCj4+IAo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L21zbS9kaXNwL2RwdTEvZHB1X2NydGMuYwo+IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2Rw dTEvZHB1X2NydGMuYwo+PiBpbmRleCBlMDYxODQ3Li43YWIzMjBkIDEwMDY0NAo+PiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jCj4+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmMKPj4gQEAgLTE2Myw5ICsxNjMsOSBAQCBz dGF0aWMgdm9pZCBfZHB1X2NydGNfcHJvZ3JhbV9sbV9vdXRwdXRfcm9pKHN0cnVjdAo+IGRybV9j cnRjICpjcnRjKQo+PiAgCWNydGNfc3RhdGUgPSB0b19kcHVfY3J0Y19zdGF0ZShjcnRjLT5zdGF0 ZSk7Cj4+IAo+PiAgCWxtX2hvcml6X3Bvc2l0aW9uID0gMDsKPj4gLQlmb3IgKGxtX2lkeCA9IDA7 IGxtX2lkeCA8IGRwdV9jcnRjLT5udW1fbWl4ZXJzOyBsbV9pZHgrKykgewo+PiArCWZvciAobG1f aWR4ID0gMDsgbG1faWR4IDwgY3J0Y19zdGF0ZS0+bnVtX21peGVyczsgbG1faWR4KyspIHsKPj4g IAkJY29uc3Qgc3RydWN0IGRybV9yZWN0ICpsbV9yb2kgPQo+ICZjcnRjX3N0YXRlLT5sbV9ib3Vu ZHNbbG1faWR4XTsKPj4gLQkJc3RydWN0IGRwdV9od19taXhlciAqaHdfbG0gPQo+IGRwdV9jcnRj LT5taXhlcnNbbG1faWR4XS5od19sbTsKPj4gKwkJc3RydWN0IGRwdV9od19taXhlciAqaHdfbG0g PQo+IGNydGNfc3RhdGUtPm1peGVyc1tsbV9pZHhdLmh3X2xtOwo+PiAgCQlzdHJ1Y3QgZHB1X2h3 X21peGVyX2NmZyBjZmc7Cj4+IAo+PiAgCQlpZiAoIWxtX3JvaSB8fCAhZHJtX3JlY3RfdmlzaWJs ZShsbV9yb2kpKQo+PiBAQCAtMjQ2LDcgKzI0Niw3IEBAIHN0YXRpYyB2b2lkIF9kcHVfY3J0Y19i bGVuZF9zZXR1cF9taXhlcihzdHJ1Y3QKPiBkcm1fY3J0YyAqY3J0YywKPj4gIAkJCQkJICAgZmIg PyBmYi0+bW9kaWZpZXIgOiAwKTsKPj4gCj4+ICAJCS8qIGJsZW5kIGNvbmZpZyB1cGRhdGUgKi8K Pj4gLQkJZm9yIChsbV9pZHggPSAwOyBsbV9pZHggPCBkcHVfY3J0Yy0+bnVtX21peGVyczsgbG1f aWR4KyspCj4gewo+PiArCQlmb3IgKGxtX2lkeCA9IDA7IGxtX2lkeCA8IGNzdGF0ZS0+bnVtX21p eGVyczsgbG1faWR4KyspIHsKPj4gIAkJCV9kcHVfY3J0Y19zZXR1cF9ibGVuZF9jZmcobWl4ZXIg KyBsbV9pZHgsCj4+ICAJCQkJCQlwc3RhdGUsIGZvcm1hdCk7Cj4+IAo+PiBAQCAtMjcwLDcgKzI3 MCw3IEBAIHN0YXRpYyB2b2lkIF9kcHVfY3J0Y19ibGVuZF9zZXR1cF9taXhlcihzdHJ1Y3QKPiBk cm1fY3J0YyAqY3J0YywKPj4gIHN0YXRpYyB2b2lkIF9kcHVfY3J0Y19ibGVuZF9zZXR1cChzdHJ1 Y3QgZHJtX2NydGMgKmNydGMpCj4+ICB7Cj4+ICAJc3RydWN0IGRwdV9jcnRjICpkcHVfY3J0YzsK Pj4gLQlzdHJ1Y3QgZHB1X2NydGNfc3RhdGUgKmRwdV9jcnRjX3N0YXRlOwo+PiArCXN0cnVjdCBk cHVfY3J0Y19zdGF0ZSAqY3N0YXRlOwo+PiAgCXN0cnVjdCBkcHVfY3J0Y19taXhlciAqbWl4ZXI7 Cj4+ICAJc3RydWN0IGRwdV9od19jdGwgKmN0bDsKPj4gIAlzdHJ1Y3QgZHB1X2h3X21peGVyICps bTsKPj4gQEAgLTI4MSwxNyArMjgxLDE3IEBAIHN0YXRpYyB2b2lkIF9kcHVfY3J0Y19ibGVuZF9z ZXR1cChzdHJ1Y3QgCj4+IGRybV9jcnRjCj4gKmNydGMpCj4+ICAJCXJldHVybjsKPj4gCj4+ICAJ ZHB1X2NydGMgPSB0b19kcHVfY3J0YyhjcnRjKTsKPj4gLQlkcHVfY3J0Y19zdGF0ZSA9IHRvX2Rw dV9jcnRjX3N0YXRlKGNydGMtPnN0YXRlKTsKPj4gLQltaXhlciA9IGRwdV9jcnRjLT5taXhlcnM7 Cj4+ICsJY3N0YXRlID0gdG9fZHB1X2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpOwo+PiArCW1peGVy ID0gY3N0YXRlLT5taXhlcnM7Cj4+IAo+PiAgCURQVV9ERUJVRygiJXNcbiIsIGRwdV9jcnRjLT5u YW1lKTsKPj4gCj4+IC0JaWYgKGRwdV9jcnRjLT5udW1fbWl4ZXJzID4gQ1JUQ19EVUFMX01JWEVS Uykgewo+PiAtCQlEUFVfRVJST1IoImludmFsaWQgbnVtYmVyIG1peGVyczogJWRcbiIsCj4gZHB1 X2NydGMtPm51bV9taXhlcnMpOwo+PiArCWlmIChjc3RhdGUtPm51bV9taXhlcnMgPiBDUlRDX0RV QUxfTUlYRVJTKSB7Cj4gCj4gVGhpcyBpcyBub3QgcG9zc2libGUuCj4gCj4+ICsJCURQVV9FUlJP UigiaW52YWxpZCBudW1iZXIgbWl4ZXJzOiAlZFxuIiwKPiBjc3RhdGUtPm51bV9taXhlcnMpOwo+ PiAgCQlyZXR1cm47Cj4+ICAJfQo+PiAKPj4gLQlmb3IgKGkgPSAwOyBpIDwgZHB1X2NydGMtPm51 bV9taXhlcnM7IGkrKykgewo+PiArCWZvciAoaSA9IDA7IGkgPCBjc3RhdGUtPm51bV9taXhlcnM7 IGkrKykgewo+PiAgCQlpZiAoIW1peGVyW2ldLmh3X2xtIHx8ICFtaXhlcltpXS5od19jdGwpIHsK Pj4gIAkJCURQVV9FUlJPUigiaW52YWxpZCBsbSBvciBjdGwgYXNzaWduZWQgdG8KPiBtaXhlclxu Iik7Cj4+ICAJCQlyZXR1cm47Cj4+IEBAIC0zMDgsNyArMzA4LDcgQEAgc3RhdGljIHZvaWQgX2Rw dV9jcnRjX2JsZW5kX3NldHVwKHN0cnVjdCBkcm1fY3J0Ywo+ICpjcnRjKQo+PiAKPj4gIAlfZHB1 X2NydGNfYmxlbmRfc2V0dXBfbWl4ZXIoY3J0YywgZHB1X2NydGMsIG1peGVyKTsKPj4gCj4+IC0J Zm9yIChpID0gMDsgaSA8IGRwdV9jcnRjLT5udW1fbWl4ZXJzOyBpKyspIHsKPj4gKwlmb3IgKGkg PSAwOyBpIDwgY3N0YXRlLT5udW1fbWl4ZXJzOyBpKyspIHsKPj4gIAkJY3RsID0gbWl4ZXJbaV0u aHdfY3RsOwo+PiAgCQlsbSA9IG1peGVyW2ldLmh3X2xtOwo+PiAKPj4gQEAgLTUzMCw3ICs1MzAs NyBAQCBzdGF0aWMgdm9pZCBfZHB1X2NydGNfc2V0dXBfbWl4ZXJfZm9yX2VuY29kZXIoCj4+ICAJ CXN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPj4gIAkJc3RydWN0IGRybV9lbmNvZGVyICplbmMpCj4+ ICB7Cj4+IC0Jc3RydWN0IGRwdV9jcnRjICpkcHVfY3J0YyA9IHRvX2RwdV9jcnRjKGNydGMpOwo+ PiArCXN0cnVjdCBkcHVfY3J0Y19zdGF0ZSAqY3N0YXRlID0gdG9fZHB1X2NydGNfc3RhdGUoY3J0 Yy0+c3RhdGUpOwo+PiAgCXN0cnVjdCBkcHVfa21zICpkcHVfa21zID0gX2RwdV9jcnRjX2dldF9r bXMoY3J0Yyk7Cj4+ICAJc3RydWN0IGRwdV9ybSAqcm0gPSAmZHB1X2ttcy0+cm07Cj4+ICAJc3Ry dWN0IGRwdV9jcnRjX21peGVyICptaXhlcjsKPj4gQEAgLTU0Miw4ICs1NDIsOCBAQCBzdGF0aWMg dm9pZCBfZHB1X2NydGNfc2V0dXBfbWl4ZXJfZm9yX2VuY29kZXIoCj4+ICAJZHB1X3JtX2luaXRf aHdfaXRlcigmY3RsX2l0ZXIsIGVuYy0+YmFzZS5pZCwgRFBVX0hXX0JMS19DVEwpOwo+PiAKPj4g IAkvKiBTZXQgdXAgYWxsIHRoZSBtaXhlcnMgYW5kIGN0bHMgcmVzZXJ2ZWQgYnkgdGhpcyBlbmNv ZGVyICovCj4+IC0JZm9yIChpID0gZHB1X2NydGMtPm51bV9taXhlcnM7IGkgPCBBUlJBWV9TSVpF KGRwdV9jcnRjLT5taXhlcnMpOwo+IGkrKykgewo+PiAtCQltaXhlciA9ICZkcHVfY3J0Yy0+bWl4 ZXJzW2ldOwo+PiArCWZvciAoaSA9IGNzdGF0ZS0+bnVtX21peGVyczsgaSA8IEFSUkFZX1NJWkUo Y3N0YXRlLT5taXhlcnMpOyBpKyspCj4gewo+PiArCQltaXhlciA9ICZjc3RhdGUtPm1peGVyc1tp XTsKPj4gCj4+ICAJCWlmICghZHB1X3JtX2dldF9odyhybSwgJmxtX2l0ZXIpKQo+PiAgCQkJYnJl YWs7Cj4+IEBAIC01NjgsNyArNTY4LDcgQEAgc3RhdGljIHZvaWQgX2RwdV9jcnRjX3NldHVwX21p eGVyX2Zvcl9lbmNvZGVyKAo+PiAKPj4gIAkJbWl4ZXItPmVuY29kZXIgPSBlbmM7Cj4+IAo+PiAt CQlkcHVfY3J0Yy0+bnVtX21peGVycysrOwo+PiArCQljc3RhdGUtPm51bV9taXhlcnMrKzsKPj4g IAkJRFBVX0RFQlVHKCJzZXR1cCBtaXhlciAlZDogbG0gJWRcbiIsCj4+ICAJCQkJaSwgbWl4ZXIt Pmh3X2xtLT5pZHggLSBMTV8wKTsKPj4gIAkJRFBVX0RFQlVHKCJzZXR1cCBtaXhlciAlZDogY3Rs ICVkXG4iLAo+PiBAQCAtNTc5LDExICs1NzksMTEgQEAgc3RhdGljIHZvaWQgX2RwdV9jcnRjX3Nl dHVwX21peGVyX2Zvcl9lbmNvZGVyKAo+PiAgc3RhdGljIHZvaWQgX2RwdV9jcnRjX3NldHVwX21p eGVycyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4+ICB7Cj4+ICAJc3RydWN0IGRwdV9jcnRjICpk cHVfY3J0YyA9IHRvX2RwdV9jcnRjKGNydGMpOwo+PiArCXN0cnVjdCBkcHVfY3J0Y19zdGF0ZSAq Y3N0YXRlID0gdG9fZHB1X2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpOwo+PiAgCXN0cnVjdCBkcm1f ZW5jb2RlciAqZW5jOwo+PiAKPj4gLQlkcHVfY3J0Yy0+bnVtX21peGVycyA9IDA7Cj4+IC0JZHB1 X2NydGMtPm1peGVyc19zd2FwcGVkID0gZmFsc2U7Cj4+IC0JbWVtc2V0KGRwdV9jcnRjLT5taXhl cnMsIDAsIHNpemVvZihkcHVfY3J0Yy0+bWl4ZXJzKSk7Cj4+ICsJY3N0YXRlLT5udW1fbWl4ZXJz ID0gMDsKPj4gKwltZW1zZXQoY3N0YXRlLT5taXhlcnMsIDAsIHNpemVvZihjc3RhdGUtPm1peGVy cykpOwo+IAo+IFdoeSBpcyB0aGlzIG5lY2Vzc2FyeT8KPiAKPj4gCj4+ICAJbXV0ZXhfbG9jaygm ZHB1X2NydGMtPmNydGNfbG9jayk7Cj4+ICAJLyogQ2hlY2sgZm9yIG1peGVycyBvbiBhbGwgZW5j b2RlcnMgYXR0YWNoZWQgdG8gdGhpcyBjcnRjICovCj4+IEBAIC02MTgsNyArNjE4LDcgQEAgc3Rh dGljIHZvaWQgX2RwdV9jcnRjX3NldHVwX2xtX2JvdW5kcyhzdHJ1Y3QKPiBkcm1fY3J0YyAqY3J0 YywKPj4gIAljcnRjX3NwbGl0X3dpZHRoID0gX2RwdV9jcnRjX2dldF9taXhlcl93aWR0aChkcHVf Y3J0YywgY3N0YXRlLAo+PiAgCQkJCQkJICAgIGFkal9tb2RlKTsKPj4gCj4+IC0JZm9yIChpID0g MDsgaSA8IGRwdV9jcnRjLT5udW1fbWl4ZXJzOyBpKyspIHsKPj4gKwlmb3IgKGkgPSAwOyBpIDwg Y3N0YXRlLT5udW1fbWl4ZXJzOyBpKyspIHsKPj4gIAkJc3RydWN0IGRybV9yZWN0ICpyID0gJmNz dGF0ZS0+bG1fYm91bmRzW2ldOwo+PiAgCQlyLT54MSA9IGNydGNfc3BsaXRfd2lkdGggKiBpOwo+ PiAgCQlyLT55MSA9IDA7Cj4+IEBAIC02MzUsNiArNjM1LDcgQEAgc3RhdGljIHZvaWQgZHB1X2Ny dGNfYXRvbWljX2JlZ2luKHN0cnVjdCBkcm1fY3J0Ywo+ICpjcnRjLAo+PiAgCQlzdHJ1Y3QgZHJt X2NydGNfc3RhdGUgKm9sZF9zdGF0ZSkKPj4gIHsKPj4gIAlzdHJ1Y3QgZHB1X2NydGMgKmRwdV9j cnRjOwo+PiArCXN0cnVjdCBkcHVfY3J0Y19zdGF0ZSAqY3N0YXRlOwo+PiAgCXN0cnVjdCBkcm1f ZW5jb2RlciAqZW5jb2RlcjsKPj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2Owo+PiAgCXVuc2ln bmVkIGxvbmcgZmxhZ3M7Cj4+IEBAIC02NTQsMTAgKzY1NSwxMSBAQCBzdGF0aWMgdm9pZCBkcHVf Y3J0Y19hdG9taWNfYmVnaW4oc3RydWN0IAo+PiBkcm1fY3J0Ywo+ICpjcnRjLAo+PiAgCURQVV9E RUJVRygiY3J0YyVkXG4iLCBjcnRjLT5iYXNlLmlkKTsKPj4gCj4+ICAJZHB1X2NydGMgPSB0b19k cHVfY3J0YyhjcnRjKTsKPj4gKwljc3RhdGUgPSB0b19kcHVfY3J0Y19zdGF0ZShjcnRjLT5zdGF0 ZSk7Cj4+ICAJZGV2ID0gY3J0Yy0+ZGV2Owo+PiAgCXNtbXVfc3RhdGUgPSAmZHB1X2NydGMtPnNt bXVfc3RhdGU7Cj4+IAo+PiAtCWlmICghZHB1X2NydGMtPm51bV9taXhlcnMpIHsKPj4gKwlpZiAo IWNzdGF0ZS0+bnVtX21peGVycykgewo+PiAgCQlfZHB1X2NydGNfc2V0dXBfbWl4ZXJzKGNydGMp Owo+PiAgCQlfZHB1X2NydGNfc2V0dXBfbG1fYm91bmRzKGNydGMsIGNydGMtPnN0YXRlKTsKPj4g IAl9Cj4+IEBAIC02ODQsNyArNjg2LDcgQEAgc3RhdGljIHZvaWQgZHB1X2NydGNfYXRvbWljX2Jl Z2luKHN0cnVjdCBkcm1fY3J0Ywo+ICpjcnRjLAo+PiAgCSAqIGl0IG1lYW5zIHdlIGFyZSB0cnlp bmcgdG8gZmx1c2ggYSBDUlRDIHdob3NlIHN0YXRlIGlzIGRpc2FibGVkOgo+PiAgCSAqIG5vdGhp bmcgZWxzZSBuZWVkcyB0byBiZSBkb25lLgo+PiAgCSAqLwo+PiAtCWlmICh1bmxpa2VseSghZHB1 X2NydGMtPm51bV9taXhlcnMpKQo+PiArCWlmICh1bmxpa2VseSghY3N0YXRlLT5udW1fbWl4ZXJz KSkKPj4gIAkJcmV0dXJuOwo+PiAKPj4gIAlfZHB1X2NydGNfYmxlbmRfc2V0dXAoY3J0Yyk7Cj4+ IEBAIC03NDgsNyArNzUwLDcgQEAgc3RhdGljIHZvaWQgZHB1X2NydGNfYXRvbWljX2ZsdXNoKHN0 cnVjdCBkcm1fY3J0Ywo+ICpjcnRjLAo+PiAgCSAqIGl0IG1lYW5zIHdlIGFyZSB0cnlpbmcgdG8g Zmx1c2ggYSBDUlRDIHdob3NlIHN0YXRlIGlzIGRpc2FibGVkOgo+PiAgCSAqIG5vdGhpbmcgZWxz ZSBuZWVkcyB0byBiZSBkb25lLgo+PiAgCSAqLwo+PiAtCWlmICh1bmxpa2VseSghZHB1X2NydGMt Pm51bV9taXhlcnMpKQo+PiArCWlmICh1bmxpa2VseSghY3N0YXRlLT5udW1fbWl4ZXJzKSkKPj4g IAkJcmV0dXJuOwo+PiAKPj4gIAkvKgo+PiBAQCAtODYzLDcgKzg2NSw3IEBAIHZvaWQgZHB1X2Ny dGNfY29tbWl0X2tpY2tvZmYoc3RydWN0IGRybV9jcnRjIAo+PiAqY3J0YykKPj4gIAkgKiBpdCBt ZWFucyB3ZSBhcmUgdHJ5aW5nIHRvIHN0YXJ0IGEgQ1JUQyB3aG9zZSBzdGF0ZSBpcyBkaXNhYmxl ZDoKPj4gIAkgKiBub3RoaW5nIGVsc2UgbmVlZHMgdG8gYmUgZG9uZS4KPj4gIAkgKi8KPj4gLQlp ZiAodW5saWtlbHkoIWRwdV9jcnRjLT5udW1fbWl4ZXJzKSkKPj4gKwlpZiAodW5saWtlbHkoIWNz dGF0ZS0+bnVtX21peGVycykpCj4+ICAJCXJldHVybjsKPj4gCj4+ICAJRFBVX0FUUkFDRV9CRUdJ TigiY3J0Y19jb21taXQiKTsKPj4gQEAgLTEwOTcsMTIgKzEwOTksMTQgQEAgc3RhdGljIHZvaWQg ZHB1X2NydGNfaGFuZGxlX3Bvd2VyX2V2ZW50KHUzMgo+IGV2ZW50X3R5cGUsIHZvaWQgKmFyZykK Pj4gIAlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBhcmc7Cj4+ICAJc3RydWN0IGRwdV9jcnRjICpk cHVfY3J0YzsKPj4gIAlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXI7Cj4+ICsJc3RydWN0IGRw dV9jcnRjX3N0YXRlICpjc3RhdGU7Cj4+IAo+PiAgCWlmICghY3J0Yykgewo+PiAgCQlEUFVfRVJS T1IoImludmFsaWQgY3J0Y1xuIik7Cj4+ICAJCXJldHVybjsKPj4gIAl9Cj4+ICAJZHB1X2NydGMg PSB0b19kcHVfY3J0YyhjcnRjKTsKPj4gKwljc3RhdGUgPSB0b19kcHVfY3J0Y19zdGF0ZShkcHVf Y3J0Yy0+YmFzZS5zdGF0ZSk7Cj4+IAo+PiAgCW11dGV4X2xvY2soJmRwdV9jcnRjLT5jcnRjX2xv Y2spOwo+PiAKPj4gQEAgLTExOTcsOSArMTIwMSw4IEBAIHN0YXRpYyB2b2lkIGRwdV9jcnRjX2Rp c2FibGUoc3RydWN0IGRybV9jcnRjCj4gKmNydGMpCj4+ICAJCWRwdV9wb3dlcl9oYW5kbGVfdW5y ZWdpc3Rlcl9ldmVudChkcHVfY3J0Yy0+cGhhbmRsZSwKPj4gIAkJCQlkcHVfY3J0Yy0+cG93ZXJf ZXZlbnQpOwo+PiAKPj4gLQltZW1zZXQoZHB1X2NydGMtPm1peGVycywgMCwgc2l6ZW9mKGRwdV9j cnRjLT5taXhlcnMpKTsKPj4gLQlkcHVfY3J0Yy0+bnVtX21peGVycyA9IDA7Cj4+IC0JZHB1X2Ny dGMtPm1peGVyc19zd2FwcGVkID0gZmFsc2U7Cj4+ICsJbWVtc2V0KGNzdGF0ZS0+bWl4ZXJzLCAw LCBzaXplb2YoY3N0YXRlLT5taXhlcnMpKTsKPiAKPiBTYW1lIHF1ZXN0aW9uIGhlcmUsIHdoeSBp cyB0aGlzIG5lY2Vzc2FyeT8KCkFuYWx5c2luZyBtb3JlIG9uIHRoZSBuZWVkIGZvciB0aGlzIG1l bXNldC4gQWZ0ZXIgYSBjcnRjIGlzIGRpc2FibGVkLAppdCBjYW4gYWxzbyBiZSB1c2VkIHdpdGgg YSBtb2RlIHdoZXJlIHRoZSBuZWVkZWQgbm8uIG9mIGxheWVyIG1peGVycwpjYW4gYmUgZGlmZmVy ZW50IHRoYW4gdGhlIGN1cnJlbnQgb25lLiBTbyBpc24ndCBpdCBhbHdheXMgc2FmZSB0bwpjbGVh ciB0aGUgc3RhbGUgcG9pbnRlcnMgdG8gaHcgYmxvY2tzPwoKVGhhbmtzIGFuZCBSZWdhcmRzLApK ZXlrdW1hciBTLgoKPiAKPj4gKwljc3RhdGUtPm51bV9taXhlcnMgPSAwOwo+PiAKPj4gIAkvKiBk aXNhYmxlIGNsayAmIGJ3IGNvbnRyb2wgdW50aWwgY2xrICYgYncgcHJvcGVydGllcyBhcmUgc2V0 ICovCj4+ICAJY3N0YXRlLT5id19jb250cm9sID0gZmFsc2U7Cj4+IEBAIC0xNTQ3LDYgKzE1NTAs OCBAQCBzdGF0aWMgaW50IF9kcHVfZGVidWdmc19zdGF0dXNfc2hvdyhzdHJ1Y3QKPiBzZXFfZmls ZSAqcywgdm9pZCAqZGF0YSkKPj4gCj4+ICAJZHB1X2NydGMgPSBzLT5wcml2YXRlOwo+PiAgCWNy dGMgPSAmZHB1X2NydGMtPmJhc2U7Cj4+ICsKPj4gKwlkcm1fbW9kZXNldF9sb2NrKCZjcnRjLT5t dXRleCwgTlVMTCk7Cj4gCj4gV2hlbiBJIHN1Z2dlc3RlZCB0aGlzLCBJIHdhcyBob3BpbmcgeW91 J2QgcHV0IGl0IGluIGEgc2VwYXJhdGUgcGF0Y2guCj4gQWRkaXRpb25hbGx5LCB5b3UnbGwgcHJv YmFibHkgd2FudCBtb2Rlc2V0X2xvY2tfYWxsIGluc3RlYWQuCj4gCj4+ICAJY3N0YXRlID0gdG9f ZHB1X2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpOwo+PiAKPj4gIAltdXRleF9sb2NrKCZkcHVfY3J0 Yy0+Y3J0Y19sb2NrKTsKPj4gQEAgLTE1NTgsOCArMTU2Myw4IEBAIHN0YXRpYyBpbnQgX2RwdV9k ZWJ1Z2ZzX3N0YXR1c19zaG93KHN0cnVjdAo+IHNlcV9maWxlICpzLCB2b2lkICpkYXRhKQo+PiAK Pj4gIAlzZXFfcHV0cyhzLCAiXG4iKTsKPj4gCj4+IC0JZm9yIChpID0gMDsgaSA8IGRwdV9jcnRj LT5udW1fbWl4ZXJzOyArK2kpIHsKPj4gLQkJbSA9ICZkcHVfY3J0Yy0+bWl4ZXJzW2ldOwo+PiAr CWZvciAoaSA9IDA7IGkgPCBjc3RhdGUtPm51bV9taXhlcnM7ICsraSkgewo+PiArCQltID0gJmNz dGF0ZS0+bWl4ZXJzW2ldOwo+PiAgCQlpZiAoIW0tPmh3X2xtKQo+PiAgCQkJc2VxX3ByaW50Zihz LCAiXHRtaXhlclslZF0gaGFzIG5vIGxtXG4iLCBpKTsKPj4gIAkJZWxzZSBpZiAoIW0tPmh3X2N0 bCkKPj4gQEAgLTE2MzksNiArMTY0NCw3IEBAIHN0YXRpYyBpbnQgX2RwdV9kZWJ1Z2ZzX3N0YXR1 c19zaG93KHN0cnVjdAo+IHNlcV9maWxlICpzLCB2b2lkICpkYXRhKQo+PiAgCXNlcV9wcmludGYo cywgInZibGFua19lbmFibGU6JWRcbiIsIGRwdV9jcnRjLT52YmxhbmtfcmVxdWVzdGVkKTsKPj4g Cj4+ICAJbXV0ZXhfdW5sb2NrKCZkcHVfY3J0Yy0+Y3J0Y19sb2NrKTsKPj4gKwlkcm1fbW9kZXNl dF91bmxvY2soJmNydGMtPm11dGV4KTsKPj4gCj4+ICAJcmV0dXJuIDA7Cj4+ICB9Cj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5oCj4gYi9kcml2 ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5oCj4+IGluZGV4IDVlNGRjNWMuLjdh YTc3MmYgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9j cnRjLmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuaAo+ PiBAQCAtMTIxLDExICsxMjEsNiBAQCBzdHJ1Y3QgZHB1X2NydGNfZnJhbWVfZXZlbnQgewo+PiAg ICogc3RydWN0IGRwdV9jcnRjIC0gdmlydHVhbGl6ZWQgQ1JUQyBkYXRhIHN0cnVjdHVyZQo+PiAg ICogQGJhc2UgICAgICAgICAgOiBCYXNlIGRybSBjcnRjIHN0cnVjdHVyZQo+PiAgICogQG5hbWUg ICAgICAgICAgOiBBU0NJSSBkZXNjcmlwdGlvbiBvZiB0aGlzIGNydGMKPj4gLSAqIEBudW1fY3Rs cyAgICAgIDogTnVtYmVyIG9mIGN0bCBwYXRocyBpbiB1c2UKPj4gLSAqIEBudW1fbWl4ZXJzICAg IDogTnVtYmVyIG9mIG1peGVycyBpbiB1c2UKPj4gLSAqIEBtaXhlcnNfc3dhcHBlZDogV2hldGhl ciB0aGUgbWl4ZXJzIGhhdmUgYmVlbiBzd2FwcGVkIGZvciAKPj4gbGVmdC9yaWdodAo+IHVwZGF0 ZQo+PiAtICogICAgICAgICAgICAgICAgICBlc3BlY2lhbGx5IGluIHRoZSBjYXNlIG9mIERTQyBN ZXJnZS4KPj4gLSAqIEBtaXhlcnMgICAgICAgIDogTGlzdCBvZiBhY3RpdmUgbWl4ZXJzCj4+ICAg KiBAZXZlbnQgICAgICAgICA6IFBvaW50ZXIgdG8gbGFzdCByZWNlaXZlZCBkcm0gdmJsYW5rIGV2 ZW50LiBJZiAKPj4gdGhlcmUKPiBpcyBhCj4+ICAgKiAgICAgICAgICAgICAgICAgIHBlbmRpbmcg dmJsYW5rIGV2ZW50LCB0aGlzIHdpbGwgYmUgbm9uLW51bGwuCj4+ICAgKiBAdnN5bmNfY291bnQg ICA6IFJ1bm5pbmcgY291bnQgb2YgcmVjZWl2ZWQgdnN5bmMgZXZlbnRzCj4+IEBAIC0xNjQsMTIg KzE1OSw2IEBAIHN0cnVjdCBkcHVfY3J0YyB7Cj4+ICAJc3RydWN0IGRybV9jcnRjIGJhc2U7Cj4+ ICAJY2hhciBuYW1lW0RQVV9DUlRDX05BTUVfU0laRV07Cj4+IAo+PiAtCS8qIEhXIFJlc291cmNl cyByZXNlcnZlZCBmb3IgdGhlIGNydGMgKi8KPj4gLQl1MzIgbnVtX2N0bHM7Cj4+IC0JdTMyIG51 bV9taXhlcnM7Cj4+IC0JYm9vbCBtaXhlcnNfc3dhcHBlZDsKPj4gLQlzdHJ1Y3QgZHB1X2NydGNf bWl4ZXIgbWl4ZXJzW0NSVENfRFVBTF9NSVhFUlNdOwo+PiAtCj4+ICAJc3RydWN0IGRybV9wZW5k aW5nX3ZibGFua19ldmVudCAqZXZlbnQ7Cj4+ICAJdTMyIHZzeW5jX2NvdW50Owo+PiAKPj4gQEAg LTIyMSw2ICsyMTAsMTAgQEAgc3RydWN0IGRwdV9jcnRjIHsKPj4gICAqIEBwcm9wZXJ0eV92YWx1 ZXM6IEN1cnJlbnQgY3J0YyBwcm9wZXJ0eSB2YWx1ZXMKPj4gICAqIEBpbnB1dF9mZW5jZV90aW1l b3V0X25zIDogQ2FjaGVkIGlucHV0IGZlbmNlIHRpbWVvdXQsIGluIG5zCj4+ICAgKiBAbmV3X3Bl cmY6IG5ldyBwZXJmb3JtYW5jZSBzdGF0ZSBiZWluZyByZXF1ZXN0ZWQKPj4gKyAqIEBudW1fbWl4 ZXJzICAgIDogTnVtYmVyIG9mIG1peGVycyBpbiB1c2UKPj4gKyAqIEBtaXhlcnMgICAgICAgIDog TGlzdCBvZiBhY3RpdmUgbWl4ZXJzCj4+ICsgKiBAbnVtX2N0bHMgICAgICA6IE51bWJlciBvZiBj dGwgcGF0aHMgaW4gdXNlCj4+ICsgKiBAaHdfY3RscyAgICAgICA6IExpc3Qgb2YgYWN0aXZlIGN0 bCBwYXRocwo+PiAgICovCj4+ICBzdHJ1Y3QgZHB1X2NydGNfc3RhdGUgewo+PiAgCXN0cnVjdCBk cm1fY3J0Y19zdGF0ZSBiYXNlOwo+PiBAQCAtMjMyLDYgKzIyNSwxMyBAQCBzdHJ1Y3QgZHB1X2Ny dGNfc3RhdGUgewo+PiAgCXVpbnQ2NF90IGlucHV0X2ZlbmNlX3RpbWVvdXRfbnM7Cj4+IAo+PiAg CXN0cnVjdCBkcHVfY29yZV9wZXJmX3BhcmFtcyBuZXdfcGVyZjsKPj4gKwo+PiArCS8qIEhXIFJl c291cmNlcyByZXNlcnZlZCBmb3IgdGhlIGNydGMgKi8KPj4gKwl1MzIgbnVtX21peGVyczsKPj4g KwlzdHJ1Y3QgZHB1X2NydGNfbWl4ZXIgbWl4ZXJzW0NSVENfRFVBTF9NSVhFUlNdOwo+PiArCj4+ ICsJdTMyIG51bV9jdGxzOwo+PiArCXN0cnVjdCBkcHVfaHdfY3RsICpod19jdGxzW0NSVENfRFVB TF9NSVhFUlNdOwo+PiAgfTsKPj4gCj4+ICAjZGVmaW5lIHRvX2RwdV9jcnRjX3N0YXRlKHgpIFwK Pj4gLS0KPj4gVGhlIFF1YWxjb21tIElubm92YXRpb24gQ2VudGVyLCBJbmMuIGlzIGEgbWVtYmVy IG9mIHRoZSBDb2RlIEF1cm9yYQo+IEZvcnVtLAo+PiBhIExpbnV4IEZvdW5kYXRpb24gQ29sbGFi b3JhdGl2ZSBQcm9qZWN0Cj4+IAoKLS0gCkpleWt1bWFyIFMKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KRnJlZWRyZW5vIG1haWxpbmcgbGlzdApGcmVlZHJl bm9AbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vZnJlZWRyZW5vCg==