From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [PATCH 14/25] drm/msm/dpu: remove enc_id tagging for hw blocks Date: Wed, 10 Oct 2018 11:06:33 -0400 Message-ID: <20181010150633.GA154160@art_vandelay> References: <1539059262-8326-1-git-send-email-jsanka@codeaurora.org> <1539059262-8326-15-git-send-email-jsanka@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1539059262-8326-15-git-send-email-jsanka@codeaurora.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Jeykumar Sankaran Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, seanpaul@chromium.org, hoegsberg@google.com, freedreno@lists.freedesktop.org List-Id: linux-arm-msm@vger.kernel.org T24gTW9uLCBPY3QgMDgsIDIwMTggYXQgMDk6Mjc6MzFQTSAtMDcwMCwgSmV5a3VtYXIgU2Fua2Fy YW4gd3JvdGU6Cj4gUk0gd2FzIHVzaW5nIGVuY29kZXIgaWQncyB0byB0YWcgSFcgYmxvY2sncyB0 byByZXNlcnZlCj4gYW5kIHJldHJpZXZlIGxhdGVyIGZvciBkaXNwbGF5IHBpcGVsaW5lLiBOb3cK PiB0aGF0IGFsbCB0aGUgcmVzZXJ2ZWQgSFcgYmxvY2tzIGZvciBhIGRpc3BsYXkgYXJlCj4gbWFp bnRhaW5lZCBpbiBpdHMgY3J0YyBzdGF0ZSwgbm8gcmV0cmlldmFsIGlzIG5lZWRlZC4KPiBUaGlz IHBhdGNoIGNsZWFucyB1cCBSTSBvZiBlbmNvZGVyIGlkIHRhZ2dpbmcuCj4gCj4gU2lnbmVkLW9m Zi1ieTogSmV5a3VtYXIgU2Fua2FyYW4gPGpzYW5rYUBjb2RlYXVyb3JhLm9yZz4KPiAtLS0KPiAg ZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3JtLmMgICAgfCA5MCArKysrKysrKyst LS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2Rw dV90cmFjZS5oIHwgMjggKysrKy0tLS0tLQo+ICAyIGZpbGVzIGNoYW5nZWQsIDM2IGluc2VydGlv bnMoKyksIDgyIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v bXNtL2Rpc3AvZHB1MS9kcHVfcm0uYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2Rw dV9ybS5jCj4gaW5kZXggMzAzZjFiMy4uYTg0NjFiOCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcm0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20v ZGlzcC9kcHUxL2RwdV9ybS5jCj4gQEAgLTIxLDkgKzIxLDYgQEAKPiAgI2luY2x1ZGUgImRwdV9l bmNvZGVyLmgiCj4gICNpbmNsdWRlICJkcHVfdHJhY2UuaCIKPiAgCj4gLSNkZWZpbmUgUkVTRVJW RURfQllfT1RIRVIoaCwgcikgIFwKPiAtCQkoKGgpLT5lbmNfaWQgJiYgKGgpLT5lbmNfaWQgIT0g cikKPiAtCj4gIC8qKgo+ICAgKiBzdHJ1Y3QgZHB1X3JtX3JlcXVpcmVtZW50cyAtIFJlc2VydmF0 aW9uIHJlcXVpcmVtZW50cyBwYXJhbWV0ZXIgYnVuZGxlCj4gICAqIEB0b3BvbG9neTogIHNlbGVj dGVkIHRvcG9sb2d5IGZvciB0aGUgZGlzcGxheQo+IEBAIC0zOCwxMiArMzUsMTMgQEAgc3RydWN0 IGRwdV9ybV9yZXF1aXJlbWVudHMgewo+ICAvKioKPiAgICogc3RydWN0IGRwdV9ybV9od19ibGsg LSBoYXJkd2FyZSBibG9jayB0cmFja2luZyBsaXN0IG1lbWJlcgo+ICAgKiBAbGlzdDoJTGlzdCBo ZWFkIGZvciBsaXN0IG9mIGFsbCBoYXJkd2FyZSBibG9ja3MgdHJhY2tpbmcgaXRlbXMKPiAtICog QGVuY19pZDoJRW5jb2RlciBpZCB0byB3aGljaCB0aGlzIGJsayBpcyBiaW5kZWQKPiArICogQGlu X3VzZTogICAgIFRydWUsIGlmIHRoZSBodyBibG9jayBpcyBhc3NpZ25lZCB0byBhIGRpc3BsYXkg cGlwZWxpbmUuCj4gKyAqCQlGYWxzZSwgb3RoZXJ3aXNlCj4gICAqIEBodzoJCVBvaW50ZXIgdG8g dGhlIGhhcmR3YXJlIHJlZ2lzdGVyIGFjY2VzcyBvYmplY3QgZm9yIHRoaXMgYmxvY2sKPiAgICov Cj4gIHN0cnVjdCBkcHVfcm1faHdfYmxrIHsKPiAgCXN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKPiAt CXVpbnQzMl90IGVuY19pZDsKPiArCWJvb2wgaW5fdXNlOwoKSG93IGRvIHRoZSByZXNlcnZhdGlv bnMgd29yayBmb3IgVEVTVF9PTkxZIGNvbW1pdHM/IEF0IGEgcXVpY2sgZ2xhbmNlIGl0IGxvb2tz Cmxpa2UgdGhleSBtaWdodCBiZSBtYXJrZWQgaW5fdXNlPwoKU2VhbgoKPiAgCXN0cnVjdCBkcHVf aHdfYmxrICpodzsKPiAgfTsKPiAgCj4gQEAgLTUxLDIzICs0OSwxOSBAQCBzdHJ1Y3QgZHB1X3Jt X2h3X2JsayB7Cj4gICAqIHN0cnVjdCBkcHVfcm1faHdfaXRlciAtIGl0ZXJhdG9yIGZvciB1c2Ug d2l0aCBkcHVfcm0KPiAgICogQGh3OiBkcHVfaHcgb2JqZWN0IHJlcXVlc3RlZCwgb3IgTlVMTCBv biBmYWlsdXJlCj4gICAqIEBibGs6IGRwdV9ybSBpbnRlcm5hbCBibG9jayByZXByZXNlbnRhdGlv bi4gQ2xpZW50cyBpZ25vcmUuIFVzZWQgYXMgaXRlcmF0b3IuCj4gLSAqIEBlbmNfaWQ6IERSTSBJ RCBvZiBFbmNvZGVyIGNsaWVudCB3aXNoZXMgdG8gc2VhcmNoIGZvciwgb3IgMCBmb3IgQW55IEVu Y29kZXIKPiAgICogQHR5cGU6IEhhcmR3YXJlIEJsb2NrIFR5cGUgY2xpZW50IHdpc2hlcyB0byBz ZWFyY2ggZm9yLgo+ICAgKi8KPiAgc3RydWN0IGRwdV9ybV9od19pdGVyIHsKPiAgCXN0cnVjdCBk cHVfaHdfYmxrICpodzsKPiAgCXN0cnVjdCBkcHVfcm1faHdfYmxrICpibGs7Cj4gLQl1aW50MzJf dCBlbmNfaWQ7Cj4gIAllbnVtIGRwdV9od19ibGtfdHlwZSB0eXBlOwo+ICB9Owo+ICAKPiAgc3Rh dGljIHZvaWQgX2RwdV9ybV9pbml0X2h3X2l0ZXIoCj4gIAkJc3RydWN0IGRwdV9ybV9od19pdGVy ICppdGVyLAo+IC0JCXVpbnQzMl90IGVuY19pZCwKPiAgCQllbnVtIGRwdV9od19ibGtfdHlwZSB0 eXBlKQo+ICB7Cj4gIAltZW1zZXQoaXRlciwgMCwgc2l6ZW9mKCppdGVyKSk7Cj4gLQlpdGVyLT5l bmNfaWQgPSBlbmNfaWQ7Cj4gIAlpdGVyLT50eXBlID0gdHlwZTsKPiAgfQo+ICAKPiBAQCAtOTEs MTYgKzg1LDEyIEBAIHN0YXRpYyBib29sIF9kcHVfcm1fZ2V0X2h3X2xvY2tlZChzdHJ1Y3QgZHB1 X3JtICpybSwgc3RydWN0IGRwdV9ybV9od19pdGVyICppKQo+ICAJaS0+YmxrID0gbGlzdF9wcmVw YXJlX2VudHJ5KGktPmJsaywgYmxrX2xpc3QsIGxpc3QpOwo+ICAKPiAgCWxpc3RfZm9yX2VhY2hf ZW50cnlfY29udGludWUoaS0+YmxrLCBibGtfbGlzdCwgbGlzdCkgewo+IC0JCWlmIChpLT5lbmNf aWQgPT0gaS0+YmxrLT5lbmNfaWQpIHsKPiArCQlpZiAoIWktPmJsay0+aW5fdXNlKSB7Cj4gIAkJ CWktPmh3ID0gaS0+YmxrLT5odzsKPiAtCQkJRFBVX0RFQlVHKCJmb3VuZCB0eXBlICVkIGlkICVk IGZvciBlbmMgJWRcbiIsCj4gLQkJCQkJaS0+dHlwZSwgaS0+YmxrLT5ody0+aWQsIGktPmVuY19p ZCk7Cj4gIAkJCXJldHVybiB0cnVlOwo+ICAJCX0KPiAgCX0KPiAgCj4gLQlEUFVfREVCVUcoIm5v IG1hdGNoLCB0eXBlICVkIGZvciBlbmMgJWRcbiIsIGktPnR5cGUsIGktPmVuY19pZCk7Cj4gLQo+ ICAJcmV0dXJuIGZhbHNlOwo+ICB9Cj4gIAo+IEBAIC0xOTYsNyArMTg2LDYgQEAgc3RhdGljIGlu dCBfZHB1X3JtX2h3X2Jsa19jcmVhdGUoCj4gIAl9Cj4gIAo+ICAJYmxrLT5odyA9IGh3Owo+IC0J YmxrLT5lbmNfaWQgPSAwOwo+ICAJbGlzdF9hZGRfdGFpbCgmYmxrLT5saXN0LCAmcm0tPmh3X2Js a3NbdHlwZV0pOwo+ICAKPiAgCXJldHVybiAwOwo+IEBAIC0zMDEsNyArMjkwLDYgQEAgc3RhdGlj IGJvb2wgX2RwdV9ybV9uZWVkc19zcGxpdF9kaXNwbGF5KGNvbnN0IHN0cnVjdCBtc21fZGlzcGxh eV90b3BvbG9neSAqdG9wKQo+ICAgKglwcm9wb3NlZCB1c2UgY2FzZSByZXF1aXJlbWVudHMsIGlu Y2wuIGhhcmR3aXJlZCBkZXBlbmRlbnQgYmxvY2tzIGxpa2UKPiAgICoJcGluZ3BvbmcKPiAgICog QHJtOiBkcHUgcmVzb3VyY2UgbWFuYWdlciBoYW5kbGUKPiAtICogQGVuY19pZDogZW5jb2RlciBp ZCByZXF1ZXN0aW5nIGZvciBhbGxvY2F0aW9uCj4gICAqIEByZXFzOiBwcm9wb3NlZCB1c2UgY2Fz ZSByZXF1aXJlbWVudHMKPiAgICogQGxtOiBwcm9wb3NlZCBsYXllciBtaXhlciwgZnVuY3Rpb24g Y2hlY2tzIGlmIGxtLCBhbmQgYWxsIG90aGVyIGhhcmR3aXJlZAo+ICAgKiAgICAgIGJsb2NrcyBj b25uZWN0ZWQgdG8gdGhlIGxtIChwcCkgaXMgYXZhaWxhYmxlIGFuZCBhcHByb3ByaWF0ZQo+IEBA IC0zMTMsNyArMzAxLDYgQEAgc3RhdGljIGJvb2wgX2RwdV9ybV9uZWVkc19zcGxpdF9kaXNwbGF5 KGNvbnN0IHN0cnVjdCBtc21fZGlzcGxheV90b3BvbG9neSAqdG9wKQo+ICAgKi8KPiAgc3RhdGlj IGJvb2wgX2RwdV9ybV9jaGVja19sbV9hbmRfZ2V0X2Nvbm5lY3RlZF9ibGtzKAo+ICAJCXN0cnVj dCBkcHVfcm0gKnJtLAo+IC0JCXVpbnQzMl90IGVuY19pZCwKPiAgCQlzdHJ1Y3QgZHB1X3JtX3Jl cXVpcmVtZW50cyAqcmVxcywKPiAgCQlzdHJ1Y3QgZHB1X3JtX2h3X2JsayAqbG0sCj4gIAkJc3Ry dWN0IGRwdV9ybV9od19ibGsgKipwcCwKPiBAQCAtMzM5LDEzICszMjYsNyBAQCBzdGF0aWMgYm9v bCBfZHB1X3JtX2NoZWNrX2xtX2FuZF9nZXRfY29ubmVjdGVkX2Jsa3MoCj4gIAkJfQo+ICAJfQo+ ICAKPiAtCS8qIEFscmVhZHkgcmVzZXJ2ZWQ/ICovCj4gLQlpZiAoUkVTRVJWRURfQllfT1RIRVIo bG0sIGVuY19pZCkpIHsKPiAtCQlEUFVfREVCVUcoImxtICVkIGFscmVhZHkgcmVzZXJ2ZWRcbiIs IGxtX2NmZy0+aWQpOwo+IC0JCXJldHVybiBmYWxzZTsKPiAtCX0KPiAtCj4gLQlfZHB1X3JtX2lu aXRfaHdfaXRlcigmaXRlciwgMCwgRFBVX0hXX0JMS19QSU5HUE9ORyk7Cj4gKwlfZHB1X3JtX2lu aXRfaHdfaXRlcigmaXRlciwgRFBVX0hXX0JMS19QSU5HUE9ORyk7Cj4gIAl3aGlsZSAoX2RwdV9y bV9nZXRfaHdfbG9ja2VkKHJtLCAmaXRlcikpIHsKPiAgCQlpZiAoaXRlci5ibGstPmh3LT5pZCA9 PSBsbV9jZmctPnBpbmdwb25nKSB7Cj4gIAkJCSpwcCA9IGl0ZXIuYmxrOwo+IEBAIC0zNTgsMTYg KzMzOSwxMCBAQCBzdGF0aWMgYm9vbCBfZHB1X3JtX2NoZWNrX2xtX2FuZF9nZXRfY29ubmVjdGVk X2Jsa3MoCj4gIAkJcmV0dXJuIGZhbHNlOwo+ICAJfQo+ICAKPiAtCWlmIChSRVNFUlZFRF9CWV9P VEhFUigqcHAsIGVuY19pZCkpIHsKPiAtCQlEUFVfREVCVUcoImxtICVkIHBwICVkIGFscmVhZHkg cmVzZXJ2ZWRcbiIsIGxtLT5ody0+aWQsCj4gLQkJCQkoKnBwKS0+aHctPmlkKTsKPiAtCQlyZXR1 cm4gZmFsc2U7Cj4gLQl9Cj4gLQo+ICAJcmV0dXJuIHRydWU7Cj4gIH0KPiAgCj4gLXN0YXRpYyBp bnQgX2RwdV9ybV9yZXNlcnZlX2xtcyhzdHJ1Y3QgZHB1X3JtICpybSwgdWludDMyX3QgZW5jX2lk LAo+ICtzdGF0aWMgaW50IF9kcHVfcm1fcmVzZXJ2ZV9sbXMoc3RydWN0IGRwdV9ybSAqcm0sCj4g IAkJCSAgICAgICBzdHJ1Y3QgZHB1X2NydGNfc3RhdGUgKmRwdV9jc3RhdGUsCj4gIAkJCSAgICAg ICBzdHJ1Y3QgZHB1X3JtX3JlcXVpcmVtZW50cyAqcmVxcykKPiAgCj4gQEAgLTM4NCw3ICszNTks NyBAQCBzdGF0aWMgaW50IF9kcHVfcm1fcmVzZXJ2ZV9sbXMoc3RydWN0IGRwdV9ybSAqcm0sIHVp bnQzMl90IGVuY19pZCwKPiAgCX0KPiAgCj4gIAkvKiBGaW5kIGEgcHJpbWFyeSBtaXhlciAqLwo+ IC0JX2RwdV9ybV9pbml0X2h3X2l0ZXIoJml0ZXJfaSwgMCwgRFBVX0hXX0JMS19MTSk7Cj4gKwlf ZHB1X3JtX2luaXRfaHdfaXRlcigmaXRlcl9pLCBEUFVfSFdfQkxLX0xNKTsKPiAgCXdoaWxlIChs bV9jb3VudCAhPSByZXFzLT50b3BvbG9neS5udW1fbG0gJiYKPiAgCQkJX2RwdV9ybV9nZXRfaHdf bG9ja2VkKHJtLCAmaXRlcl9pKSkgewo+ICAJCW1lbXNldCgmbG0sIDAsIHNpemVvZihsbSkpOwo+ IEBAIC0zOTQsMTQgKzM2OSwxNCBAQCBzdGF0aWMgaW50IF9kcHVfcm1fcmVzZXJ2ZV9sbXMoc3Ry dWN0IGRwdV9ybSAqcm0sIHVpbnQzMl90IGVuY19pZCwKPiAgCQlsbVtsbV9jb3VudF0gPSBpdGVy X2kuYmxrOwo+ICAKPiAgCQlpZiAoIV9kcHVfcm1fY2hlY2tfbG1fYW5kX2dldF9jb25uZWN0ZWRf YmxrcygKPiAtCQkJCXJtLCBlbmNfaWQsIHJlcXMsIGxtW2xtX2NvdW50XSwKPiArCQkJCXJtLCBy ZXFzLCBsbVtsbV9jb3VudF0sCj4gIAkJCQkmcHBbbG1fY291bnRdLCBOVUxMKSkKPiAgCQkJY29u dGludWU7Cj4gIAo+ICAJCSsrbG1fY291bnQ7Cj4gIAo+ICAJCS8qIFZhbGlkIHByaW1hcnkgbWl4 ZXIgZm91bmQsIGZpbmQgbWF0Y2hpbmcgcGVlcnMgKi8KPiAtCQlfZHB1X3JtX2luaXRfaHdfaXRl cigmaXRlcl9qLCAwLCBEUFVfSFdfQkxLX0xNKTsKPiArCQlfZHB1X3JtX2luaXRfaHdfaXRlcigm aXRlcl9qLCBEUFVfSFdfQkxLX0xNKTsKPiAgCj4gIAkJd2hpbGUgKGxtX2NvdW50ICE9IHJlcXMt PnRvcG9sb2d5Lm51bV9sbSAmJgo+ICAJCQkJX2RwdV9ybV9nZXRfaHdfbG9ja2VkKHJtLCAmaXRl cl9qKSkgewo+IEBAIC00MDksNyArMzg0LDcgQEAgc3RhdGljIGludCBfZHB1X3JtX3Jlc2VydmVf bG1zKHN0cnVjdCBkcHVfcm0gKnJtLCB1aW50MzJfdCBlbmNfaWQsCj4gIAkJCQljb250aW51ZTsK PiAgCj4gIAkJCWlmICghX2RwdV9ybV9jaGVja19sbV9hbmRfZ2V0X2Nvbm5lY3RlZF9ibGtzKAo+ IC0JCQkJCXJtLCBlbmNfaWQsIHJlcXMsIGl0ZXJfai5ibGssCj4gKwkJCQkJcm0sIHJlcXMsIGl0 ZXJfai5ibGssCj4gIAkJCQkJJnBwW2xtX2NvdW50XSwgaXRlcl9pLmJsaykpCj4gIAkJCQljb250 aW51ZTsKPiAgCj4gQEAgLTQyNywxMyArNDAyLDEzIEBAIHN0YXRpYyBpbnQgX2RwdV9ybV9yZXNl cnZlX2xtcyhzdHJ1Y3QgZHB1X3JtICpybSwgdWludDMyX3QgZW5jX2lkLAo+ICAJCWlmICghbG1b aV0pCj4gIAkJCWJyZWFrOwo+ICAKPiAtCQlsbVtpXS0+ZW5jX2lkID0gZW5jX2lkOwo+IC0JCXBw W2ldLT5lbmNfaWQgPSBlbmNfaWQ7Cj4gKwkJbG1baV0tPmluX3VzZSA9IHRydWU7Cj4gKwkJcHBb aV0tPmluX3VzZSA9IHRydWU7Cj4gIAo+ICAJCWRwdV9jc3RhdGUtPm1peGVyc1tpXS5od19sbSA9 IHRvX2RwdV9od19taXhlcihsbVtpXS0+aHcpOwo+ICAJCWRwdV9jc3RhdGUtPm1peGVyc1tpXS5o d19wcCA9IHRvX2RwdV9od19waW5ncG9uZyhwcFtpXS0+aHcpOwo+ICAKPiAtCQl0cmFjZV9kcHVf cm1fcmVzZXJ2ZV9sbXMobG1baV0tPmh3LT5pZCwgRFBVX0hXX0JMS19MTSwgZW5jX2lkLAo+ICsJ CXRyYWNlX2RwdV9ybV9yZXNlcnZlX2xtcyhsbVtpXS0+aHctPmlkLCBEUFVfSFdfQkxLX0xNLAo+ ICAJCQkJCSBwcFtpXS0+aHctPmlkKTsKPiAgCX0KPiAgCj4gQEAgLTQ0NCw3ICs0MTksNiBAQCBz dGF0aWMgaW50IF9kcHVfcm1fcmVzZXJ2ZV9sbXMoc3RydWN0IGRwdV9ybSAqcm0sIHVpbnQzMl90 IGVuY19pZCwKPiAgCj4gIHN0YXRpYyBpbnQgX2RwdV9ybV9yZXNlcnZlX2N0bHMoCj4gIAkJc3Ry dWN0IGRwdV9ybSAqcm0sCj4gLQkJdWludDMyX3QgZW5jX2lkLAo+ICAJCXN0cnVjdCBkcHVfY3J0 Y19zdGF0ZSAqZHB1X2NzdGF0ZSwKPiAgCQljb25zdCBzdHJ1Y3QgbXNtX2Rpc3BsYXlfdG9wb2xv Z3kgKnRvcCkKPiAgewo+IEBAIC00NjAsMTUgKzQzNCwxMiBAQCBzdGF0aWMgaW50IF9kcHVfcm1f cmVzZXJ2ZV9jdGxzKAo+ICAKPiAgCW5lZWRzX3NwbGl0X2Rpc3BsYXkgPSBfZHB1X3JtX25lZWRz X3NwbGl0X2Rpc3BsYXkodG9wKTsKPiAgCj4gLQlfZHB1X3JtX2luaXRfaHdfaXRlcigmaXRlciwg MCwgRFBVX0hXX0JMS19DVEwpOwo+ICsJX2RwdV9ybV9pbml0X2h3X2l0ZXIoJml0ZXIsIERQVV9I V19CTEtfQ1RMKTsKPiAgCXdoaWxlIChfZHB1X3JtX2dldF9od19sb2NrZWQocm0sICZpdGVyKSkg ewo+ICAJCWNvbnN0IHN0cnVjdCBkcHVfaHdfY3RsICpjdGwgPSB0b19kcHVfaHdfY3RsKGl0ZXIu YmxrLT5odyk7Cj4gIAkJdW5zaWduZWQgbG9uZyBmZWF0dXJlcyA9IGN0bC0+Y2Fwcy0+ZmVhdHVy ZXM7Cj4gIAkJYm9vbCBoYXNfc3BsaXRfZGlzcGxheTsKPiAgCj4gLQkJaWYgKFJFU0VSVkVEX0JZ X09USEVSKGl0ZXIuYmxrLCBlbmNfaWQpKQo+IC0JCQljb250aW51ZTsKPiAtCj4gIAkJaGFzX3Nw bGl0X2Rpc3BsYXkgPSBCSVQoRFBVX0NUTF9TUExJVF9ESVNQTEFZKSAmIGZlYXR1cmVzOwo+ICAK PiAgCQlEUFVfREVCVUcoImN0bCAlZCBjYXBzIDB4JWxYXG4iLCBpdGVyLmJsay0+aHctPmlkLCBm ZWF0dXJlcyk7Cj4gQEAgLTQ4NywxMSArNDU4LDEwIEBAIHN0YXRpYyBpbnQgX2RwdV9ybV9yZXNl cnZlX2N0bHMoCj4gIAkJcmV0dXJuIC1FTkFWQUlMOwo+ICAKPiAgCWZvciAoaSA9IDA7IGkgPCBB UlJBWV9TSVpFKGN0bHMpICYmIGkgPCBudW1fY3RsczsgaSsrKSB7Cj4gLQkJY3Rsc1tpXS0+ZW5j X2lkID0gZW5jX2lkOwo+ICsJCWN0bHNbaV0tPmluX3VzZSA9IHRydWU7Cj4gIAkJZHB1X2NzdGF0 ZS0+aHdfY3Rsc1tpXSA9IHRvX2RwdV9od19jdGwoY3Rsc1tpXS0+aHcpOwo+ICAKPiAtCQl0cmFj ZV9kcHVfcm1fcmVzZXJ2ZV9jdGxzKGN0bHNbaV0tPmh3LT5pZCwgRFBVX0hXX0JMS19DVEwsCj4g LQkJCQkJICBlbmNfaWQpOwo+ICsJCXRyYWNlX2RwdV9ybV9yZXNlcnZlX2N0bHMoY3Rsc1tpXS0+ aHctPmlkLCBEUFVfSFdfQkxLX0NUTCk7Cj4gIAl9Cj4gIAo+ICAJZHB1X2NzdGF0ZS0+bnVtX2N0 bHMgPSBudW1fY3RsczsKPiBAQCAtNTAxLDI2ICs0NzEsMTkgQEAgc3RhdGljIGludCBfZHB1X3Jt X3Jlc2VydmVfY3RscygKPiAgCj4gIHN0YXRpYyBzdHJ1Y3QgZHB1X3JtX2h3X2JsayAqX2RwdV9y bV9yZXNlcnZlX2ludGYoCj4gIAkJc3RydWN0IGRwdV9ybSAqcm0sCj4gLQkJdWludDMyX3QgZW5j X2lkLAo+ICAJCXVpbnQzMl90IGlkLAo+ICAJCWVudW0gZHB1X2h3X2Jsa190eXBlIHR5cGUpCj4g IHsKPiAgCXN0cnVjdCBkcHVfcm1faHdfaXRlciBpdGVyOwo+ICAKPiAgCS8qIEZpbmQgdGhlIGJs b2NrIGVudHJ5IGluIHRoZSBybSwgYW5kIG5vdGUgdGhlIHJlc2VydmF0aW9uICovCj4gLQlfZHB1 X3JtX2luaXRfaHdfaXRlcigmaXRlciwgMCwgdHlwZSk7Cj4gKwlfZHB1X3JtX2luaXRfaHdfaXRl cigmaXRlciwgdHlwZSk7Cj4gIAl3aGlsZSAoX2RwdV9ybV9nZXRfaHdfbG9ja2VkKHJtLCAmaXRl cikpIHsKPiAgCQlpZiAoaXRlci5ibGstPmh3LT5pZCAhPSBpZCkKPiAgCQkJY29udGludWU7Cj4g IAo+IC0JCWlmIChSRVNFUlZFRF9CWV9PVEhFUihpdGVyLmJsaywgZW5jX2lkKSkgewo+IC0JCQlE UFVfRVJST1IoInR5cGUgJWQgaWQgJWQgYWxyZWFkeSByZXNlcnZlZFxuIiwgdHlwZSwgaWQpOwo+ IC0JCQlyZXR1cm4gTlVMTDsKPiAtCQl9Cj4gKwkJdHJhY2VfZHB1X3JtX3Jlc2VydmVfaW50Zihp dGVyLmJsay0+aHctPmlkLCBEUFVfSFdfQkxLX0lOVEYpOwo+ICAKPiAtCQlpdGVyLmJsay0+ZW5j X2lkID0gZW5jX2lkOwo+IC0JCXRyYWNlX2RwdV9ybV9yZXNlcnZlX2ludGYoaXRlci5ibGstPmh3 LT5pZCwgRFBVX0hXX0JMS19JTlRGLAo+IC0JCQkJCSAgZW5jX2lkKTsKPiAgCQlicmVhazsKPiAg CX0KPiAgCj4gQEAgLTUzNSw3ICs0OTgsNiBAQCBzdGF0aWMgc3RydWN0IGRwdV9ybV9od19ibGsg Kl9kcHVfcm1fcmVzZXJ2ZV9pbnRmKAo+ICAKPiAgc3RhdGljIGludCBfZHB1X3JtX3Jlc2VydmVf aW50Zl9yZWxhdGVkX2h3KAo+ICAJCXN0cnVjdCBkcHVfcm0gKnJtLAo+IC0JCXVpbnQzMl90IGVu Y19pZCwKPiAgCQlzdHJ1Y3QgZHB1X2NydGNfc3RhdGUgKmRwdV9jc3RhdGUsCj4gIAkJc3RydWN0 IGRwdV9lbmNvZGVyX2h3X3Jlc291cmNlcyAqaHdfcmVzKQo+ICB7Cj4gQEAgLTU0NiwxMSArNTA4 LDEyIEBAIHN0YXRpYyBpbnQgX2RwdV9ybV9yZXNlcnZlX2ludGZfcmVsYXRlZF9odygKPiAgCQlp ZiAoaHdfcmVzLT5pbnRmc1tpXSA9PSBJTlRGX01PREVfTk9ORSkKPiAgCQkJY29udGludWU7Cj4g IAo+IC0JCWJsayA9IF9kcHVfcm1fcmVzZXJ2ZV9pbnRmKHJtLCBlbmNfaWQsIGkgKyBJTlRGXzAs Cj4gKwkJYmxrID0gX2RwdV9ybV9yZXNlcnZlX2ludGYocm0sIGkgKyBJTlRGXzAsCj4gIAkJCQlE UFVfSFdfQkxLX0lOVEYpOwo+ICAJCWlmICghYmxrKQo+ICAJCQlyZXR1cm4gLUVOQVZBSUw7Cj4g IAo+ICsJCWJsay0+aW5fdXNlID0gdHJ1ZTsKPiAgCQlkcHVfY3N0YXRlLT5od19pbnRmc1tudW1f aW50ZnMrK10gPSB0b19kcHVfaHdfaW50ZihibGstPmh3KTsKPiAgCX0KPiAgCj4gQEAgLTU2MSwy NyArNTI0LDI0IEBAIHN0YXRpYyBpbnQgX2RwdV9ybV9yZXNlcnZlX2ludGZfcmVsYXRlZF9odygK PiAgCj4gIHN0YXRpYyBpbnQgX2RwdV9ybV9tYWtlX3Jlc2VydmF0aW9uKAo+ICAJCXN0cnVjdCBk cHVfcm0gKnJtLAo+IC0JCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jLAo+ICAJCXN0cnVjdCBkcHVf Y3J0Y19zdGF0ZSAqZHB1X2NzdGF0ZSwKPiAgCQlzdHJ1Y3QgZHB1X3JtX3JlcXVpcmVtZW50cyAq cmVxcykKPiAgewo+ICAJaW50IHJldDsKPiAgCj4gLQlyZXQgPSBfZHB1X3JtX3Jlc2VydmVfbG1z KHJtLCBlbmMtPmJhc2UuaWQsIGRwdV9jc3RhdGUsIHJlcXMpOwo+ICsJcmV0ID0gX2RwdV9ybV9y ZXNlcnZlX2xtcyhybSwgZHB1X2NzdGF0ZSwgcmVxcyk7Cj4gIAlpZiAocmV0KSB7Cj4gIAkJRFBV X0VSUk9SKCJ1bmFibGUgdG8gZmluZCBhcHByb3ByaWF0ZSBtaXhlcnNcbiIpOwo+ICAJCXJldHVy biByZXQ7Cj4gIAl9Cj4gIAo+IC0JcmV0ID0gX2RwdV9ybV9yZXNlcnZlX2N0bHMocm0sIGVuYy0+ YmFzZS5pZCwgZHB1X2NzdGF0ZSwKPiAtCQkJCSAgICZyZXFzLT50b3BvbG9neSk7Cj4gKwlyZXQg PSBfZHB1X3JtX3Jlc2VydmVfY3RscyhybSwgZHB1X2NzdGF0ZSwgJnJlcXMtPnRvcG9sb2d5KTsK PiAgCWlmIChyZXQpIHsKPiAgCQlEUFVfRVJST1IoInVuYWJsZSB0byBmaW5kIGFwcHJvcHJpYXRl IENUTFxuIik7Cj4gIAkJcmV0dXJuIHJldDsKPiAgCX0KPiAgCj4gLQlyZXQgPSBfZHB1X3JtX3Jl c2VydmVfaW50Zl9yZWxhdGVkX2h3KHJtLCBlbmMtPmJhc2UuaWQsIGRwdV9jc3RhdGUsCj4gLQkJ CQkJICAgICAgJnJlcXMtPmh3X3Jlcyk7Cj4gKwlyZXQgPSBfZHB1X3JtX3Jlc2VydmVfaW50Zl9y ZWxhdGVkX2h3KHJtLCBkcHVfY3N0YXRlLCAmcmVxcy0+aHdfcmVzKTsKPiAgCWlmIChyZXQpCj4g IAkJcmV0dXJuIHJldDsKPiAgCj4gQEAgLTYxMiw3ICs1NzIsNyBAQCBzdGF0aWMgaW50IF9kcHVf cm1fcmVsZWFzZV9odyhzdHJ1Y3QgZHB1X3JtICpybSwgZW51bSBkcHVfaHdfYmxrX3R5cGUgdHlw ZSwKPiAgCj4gIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGJsaywgJnJtLT5od19ibGtzW3R5cGVdLCBs aXN0KSB7Cj4gIAkJaWYgKGJsay0+aHctPmlkID09IGlkKSB7Cj4gLQkJCWJsay0+ZW5jX2lkID0g MDsKPiArCQkJYmxrLT5pbl91c2UgPSBmYWxzZTsKPiAgCQkJcmV0dXJuIDA7Cj4gIAkJfQo+ICAJ fQo+IEBAIC02OTksNyArNjU5LDcgQEAgaW50IGRwdV9ybV9yZXNlcnZlKAo+ICAJCWdvdG8gZW5k Owo+ICAJfQo+ICAKPiAtCXJldCA9IF9kcHVfcm1fbWFrZV9yZXNlcnZhdGlvbihybSwgZW5jLCBk cHVfY3N0YXRlLCAmcmVxcyk7Cj4gKwlyZXQgPSBfZHB1X3JtX21ha2VfcmVzZXJ2YXRpb24ocm0s IGRwdV9jc3RhdGUsICZyZXFzKTsKPiAgCWlmIChyZXQpIHsKPiAgCQlEUFVfRVJST1IoImZhaWxl ZCB0byByZXNlcnZlIGh3IHJlc291cmNlczogJWRcbiIsIHJldCk7Cj4gIAkJX2RwdV9ybV9yZWxl YXNlX3Jlc2VydmF0aW9uKHJtLCBkcHVfY3N0YXRlKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3RyYWNlLmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rp c3AvZHB1MS9kcHVfdHJhY2UuaAo+IGluZGV4IDYzNmIzMWIuLjMwNjE5NzggMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3RyYWNlLmgKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfdHJhY2UuaAo+IEBAIC04NjksNDggKzg2OSw0 MiBAQAo+ICApOwo+ICAKPiAgREVDTEFSRV9FVkVOVF9DTEFTUyhkcHVfcm1faXRlcl90ZW1wbGF0 ZSwKPiAtCVRQX1BST1RPKHVpbnQzMl90IGlkLCBlbnVtIGRwdV9od19ibGtfdHlwZSB0eXBlLCB1 aW50MzJfdCBlbmNfaWQpLAo+IC0JVFBfQVJHUyhpZCwgdHlwZSwgZW5jX2lkKSwKPiArCVRQX1BS T1RPKHVpbnQzMl90IGlkLCBlbnVtIGRwdV9od19ibGtfdHlwZSB0eXBlKSwKPiArCVRQX0FSR1Mo aWQsIHR5cGUpLAo+ICAJVFBfU1RSVUNUX19lbnRyeSgKPiAgCQlfX2ZpZWxkKAl1aW50MzJfdCwJ CWlkCSkKPiAgCQlfX2ZpZWxkKAllbnVtIGRwdV9od19ibGtfdHlwZSwJdHlwZQkpCj4gLQkJX19m aWVsZCgJdWludDMyX3QsCQllbmNfaWQJKQo+ICAJKSwKPiAgCVRQX2Zhc3RfYXNzaWduKAo+ICAJ CV9fZW50cnktPmlkID0gaWQ7Cj4gIAkJX19lbnRyeS0+dHlwZSA9IHR5cGU7Cj4gLQkJX19lbnRy eS0+ZW5jX2lkID0gZW5jX2lkOwo+ICAJKSwKPiAtCVRQX3ByaW50aygiaWQ6JWQgdHlwZTolZCBl bmNfaWQ6JXUiLCBfX2VudHJ5LT5pZCwgX19lbnRyeS0+dHlwZSwKPiAtCQkgIF9fZW50cnktPmVu Y19pZCkKPiArCVRQX3ByaW50aygiaWQ6JWQgdHlwZTolZCAiLCBfX2VudHJ5LT5pZCwgX19lbnRy eS0+dHlwZSkKPiAgKTsKPiAgREVGSU5FX0VWRU5UKGRwdV9ybV9pdGVyX3RlbXBsYXRlLCBkcHVf cm1fcmVzZXJ2ZV9pbnRmLAo+IC0JVFBfUFJPVE8odWludDMyX3QgaWQsIGVudW0gZHB1X2h3X2Js a190eXBlIHR5cGUsIHVpbnQzMl90IGVuY19pZCksCj4gLQlUUF9BUkdTKGlkLCB0eXBlLCBlbmNf aWQpCj4gKwlUUF9QUk9UTyh1aW50MzJfdCBpZCwgZW51bSBkcHVfaHdfYmxrX3R5cGUgdHlwZSks Cj4gKwlUUF9BUkdTKGlkLCB0eXBlKQo+ICApOwo+ICBERUZJTkVfRVZFTlQoZHB1X3JtX2l0ZXJf dGVtcGxhdGUsIGRwdV9ybV9yZXNlcnZlX2N0bHMsCj4gLQlUUF9QUk9UTyh1aW50MzJfdCBpZCwg ZW51bSBkcHVfaHdfYmxrX3R5cGUgdHlwZSwgdWludDMyX3QgZW5jX2lkKSwKPiAtCVRQX0FSR1Mo aWQsIHR5cGUsIGVuY19pZCkKPiArCVRQX1BST1RPKHVpbnQzMl90IGlkLCBlbnVtIGRwdV9od19i bGtfdHlwZSB0eXBlKSwKPiArCVRQX0FSR1MoaWQsIHR5cGUpCj4gICk7Cj4gIAo+ICBUUkFDRV9F VkVOVChkcHVfcm1fcmVzZXJ2ZV9sbXMsCj4gLQlUUF9QUk9UTyh1aW50MzJfdCBpZCwgZW51bSBk cHVfaHdfYmxrX3R5cGUgdHlwZSwgdWludDMyX3QgZW5jX2lkLAo+IC0JCSB1aW50MzJfdCBwcF9p ZCksCj4gLQlUUF9BUkdTKGlkLCB0eXBlLCBlbmNfaWQsIHBwX2lkKSwKPiArCVRQX1BST1RPKHVp bnQzMl90IGlkLCBlbnVtIGRwdV9od19ibGtfdHlwZSB0eXBlLCB1aW50MzJfdCBwcF9pZCksCj4g KwlUUF9BUkdTKGlkLCB0eXBlLCBwcF9pZCksCj4gIAlUUF9TVFJVQ1RfX2VudHJ5KAo+ICAJCV9f ZmllbGQoCXVpbnQzMl90LAkJaWQJKQo+ICAJCV9fZmllbGQoCWVudW0gZHB1X2h3X2Jsa190eXBl LAl0eXBlCSkKPiAtCQlfX2ZpZWxkKAl1aW50MzJfdCwJCWVuY19pZAkpCj4gIAkJX19maWVsZCgJ dWludDMyX3QsCQlwcF9pZAkpCj4gIAkpLAo+ICAJVFBfZmFzdF9hc3NpZ24oCj4gIAkJX19lbnRy eS0+aWQgPSBpZDsKPiAgCQlfX2VudHJ5LT50eXBlID0gdHlwZTsKPiAtCQlfX2VudHJ5LT5lbmNf aWQgPSBlbmNfaWQ7Cj4gIAkJX19lbnRyeS0+cHBfaWQgPSBwcF9pZDsKPiAgCSksCj4gLQlUUF9w cmludGsoImlkOiVkIHR5cGU6JWQgZW5jX2lkOiV1IHBwX2lkOiV1IiwgX19lbnRyeS0+aWQsCj4g LQkJICBfX2VudHJ5LT50eXBlLCBfX2VudHJ5LT5lbmNfaWQsIF9fZW50cnktPnBwX2lkKQo+ICsJ VFBfcHJpbnRrKCJpZDolZCB0eXBlOiVkIHBwX2lkOiV1IiwgX19lbnRyeS0+aWQsCj4gKwkJICBf X2VudHJ5LT50eXBlLCBfX2VudHJ5LT5wcF9pZCkKPiAgKTsKPiAgCj4gIFRSQUNFX0VWRU5UKGRw dV92YmlmX3dhaXRfeGluX2hhbHRfZmFpbCwKPiAtLSAKPiBUaGUgUXVhbGNvbW0gSW5ub3ZhdGlv biBDZW50ZXIsIEluYy4gaXMgYSBtZW1iZXIgb2YgdGhlIENvZGUgQXVyb3JhIEZvcnVtLAo+IGEg TGludXggRm91bmRhdGlvbiBDb2xsYWJvcmF0aXZlIFByb2plY3QKPiAKCi0tIApTZWFuIFBhdWws IFNvZnR3YXJlIEVuZ2luZWVyLCBHb29nbGUgLyBDaHJvbWl1bSBPUwpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRy aS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK