From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [Freedreno] [PATCH v2 1/4] drm/msm/dpu: add atomic private object to dpu crtc Date: Tue, 5 Mar 2019 15:18:06 -0500 Message-ID: <20190305201806.GE114153@art_vandelay> References: <1550109142-28303-1-git-send-email-jsanka@codeaurora.org> <1550109142-28303-2-git-send-email-jsanka@codeaurora.org> <20190304213241.GD114153@art_vandelay> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: 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: Sean Paul , dri-devel@lists.freedesktop.org, seanpaul@chromium.org, linux-arm-msm@vger.kernel.org, hoegsberg@google.com, freedreno@lists.freedesktop.org List-Id: linux-arm-msm@vger.kernel.org T24gVHVlLCBNYXIgMDUsIDIwMTkgYXQgMTE6MzQ6NDhBTSAtMDgwMCwgSmV5a3VtYXIgU2Fua2Fy YW4gd3JvdGU6Cj4gT24gMjAxOS0wMy0wNCAxMzozMiwgU2VhbiBQYXVsIHdyb3RlOgo+ID4gT24g V2VkLCBGZWIgMTMsIDIwMTkgYXQgMDU6NTI6MTlQTSAtMDgwMCwgSmV5a3VtYXIgU2Fua2FyYW4g d3JvdGU6Cj4gPiA+IFN1YmNsYXNzIGRybSBwcml2YXRlIG9iamVjdCBzdGF0ZSBmb3IgRFBVIGZv ciBoYW5kbGluZyBkcml2ZXIKPiA+ID4gc3BlY2lmaWMgZGF0YS4gQWRkcyBhdG9taWMgcHJpdmF0 ZSBvYmplY3QgdG8gZHB1IGNydGMgdG8KPiA+ID4gdHJhY2sgaHcgcmVzb3VyY2VzIHBlciBkaXNw bGF5LiBQcm92aWRlIGhlbHBlciBmdW5jdGlvbiB0bwo+ID4gPiByZXRyaWV2ZSBEUFUgcHJpdmF0 ZSBkYXRhIGZyb20gY3VycmVudCBhdG9taWMgc3RhdGUgYmVmb3JlCj4gPiA+IGF0b21pYyBzd2Fw Lgo+ID4gPiAKPiA+ID4gY2hhbmdlcyBpbiB2MjoKPiA+ID4gCS0gcHJpdmF0ZSBvYmplY3RzIGFy ZSBtYWludGFpbmVkIGluIGRwdV9jcnRjIGFzCj4gPiA+IAkgIHRoZSByZXNvdXJjZXMgYXJlIHRy YWNrZWQgcGVyIGRpc3BsYXkKPiA+IAo+ID4gU2VlbXMgbGlrZSB5b3UgY291bGQganVzdCBzdG9y ZSBpdCBpbiBjcnRjX3N0YXRlIGlmIGl0J3MgcGVyLWNydGM/Cj4gPiAKPiBJZiB5b3UgbWVhbiAt ICJubyBuZWVkIGZvciBwcml2IG9iamVjdCwgbWFpbnRhaW4gaW4gY3J0YyBzdGF0ZSIsIHRoYXQK PiB3YXMgdGhlIG9yaWdpbmFsIHYxIGltcGxlbWVudGF0aW9uLiBCdXQgeW91IHByb3Bvc2VkIHRv IGhhdmUgdGhlbQo+IHRyYWNrZWQgaW4gYSBwcml2YXRlIG9iamVjdCBzaW5jZSBJIGhhZCB0byB1 c2UgY3J0Y19zdGF0ZSBmb3IgdHJhY2tpbmcKPiBpbnRlcmZhY2VzIHRvbyB3aGljaCB3ZXJlIG1h cHBlZCBpbiBlbmNvZGVycy4KPiAKPiBJdCBtYWRlIHNlbnNlIGFzIHRoZSBwcml2YXRlIG9iamVj dHMgbm90IGJvdW5kZWQgdG8gYW55IERSTSBvYmplY3QKPiBkb21haW4gYW5kIGlzIHRoZSBiZXN0 IGNhbmRpZGF0ZSB0byB0cmFjayBwZXIgZGlzcGxheSBhc3NpZ25tZW50cy4KPiBTbyB2MiBpbXBs ZW1lbnRhdGlvbiBtb3ZlZCBhbGwgdGhlIFJNIGFzc2lnbm1lbnQgdG8gcHJpdmF0ZSBvYmplY3Rz IHN0YXRlCj4gYW5kIHByb3ZpZGVkIGFuIGludGVyZmFjZSBmb3IgQ1JUQyBhbmQgRW5jb2RlciB0 byBxdWVyeSBpdHMgZG9tYWluCj4gc3BlY2lmaWMgaHcgYmxvY2tzLgo+IAoKQXBvbG9naWVzIGZv ciB0aGUgY2h1cm4sIEknbSB0cnlpbmcgbXkgYmVzdCB0byBncm9rIGFsbCBvZiB0aGlzLCBidXQg b2J2aW91c2x5CmZhaWxpbmcgOigKCkkgdGhpbmsgaXQgbWFrZXMgc2Vuc2UgdG8gdXNlIHByaXZh dGUgb2JqZWN0cyBpZiB5b3UncmUgdHJhY2tpbmcgcmVzb3VyY2VzCmFjcm9zcyB0aGUgZW50aXJl IGRyaXZlci4gU28gaWYgdGhhdCdzIHdoYXQgeW91J3JlIHRyeWluZyB0byBkbywgSSdkCnByZWZl ciBzdG9yaW5nIGl0IGFsbCBpbiBvbmUgcHJpdmF0ZSBvYmplY3QgYXQgdGhlIHRvcC1sZXZlbC4g SWYgeW91IHdhbnQgdG8Kc3RvcmUgaXQgcGVyLWNydGMsIHRoZW4gdXNlIHRoZSBjcnRjIHN0YXRl IHNpbmNlIGl0J3MgYWxyZWFkeSBtYW5hZ2VkIGJ5IHRoZQpjb3JlL2hlbHBlcnMuCgpTZWFuCgo+ IHYxOiBodHRwczovL3BhdGNod29yay5mcmVlZGVza3RvcC5vcmcvcGF0Y2gvMjU1NDUyLwo+IAo+ IFRoYW5rcyBhbmQgUmVnYXJkcywKPiBKZXlrdW1hciBTLgo+IAo+IAo+ID4gU2Vhbgo+ID4gCj4g PiA+IAo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBKZXlrdW1hciBTYW5rYXJhbiA8anNhbmthQGNvZGVh dXJvcmEub3JnPgo+ID4gPiAtLS0KPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUx L2RwdV9jcnRjLmggfCAgMyArKwo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEv ZHB1X2ttcy5jICB8IDY0Cj4gPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQo+ID4g PiAgZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2ttcy5oICB8IDE1ICsrKysrKysr Cj4gPiA+ICAzIGZpbGVzIGNoYW5nZWQsIDgxIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkK PiA+ID4gCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9k cHVfY3J0Yy5oCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmgK PiA+ID4gaW5kZXggZTU5ZDYyYi4uYmUwNzU1NCAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuaAo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5oCj4gPiA+IEBAIC0xNDEsNiArMTQxLDcgQEAgc3Ry dWN0IGRwdV9jcnRjX2ZyYW1lX2V2ZW50IHsKPiA+ID4gICAqIEBmcmFtZV9wZW5kaW5nIDogV2hl dGhlciBvciBub3QgYW4gdXBkYXRlIGlzIHBlbmRpbmcKPiA+ID4gICAqIEBmcmFtZV9ldmVudHMg IDogc3RhdGljIGFsbG9jYXRpb24gb2YgaW4tZmxpZ2h0IGZyYW1lIGV2ZW50cwo+ID4gPiAgICog QGZyYW1lX2V2ZW50X2xpc3QgOiBhdmFpbGFibGUgZnJhbWUgZXZlbnQgbGlzdAo+ID4gPiArICog QHByaXZfb2JqCSAgOiBwcml2YXRlIHN0YXRlIG9iamVjdCB0byB0cmFjayBodyByZXNvdXJjZXMK PiA+ID4gICAqIEBzcGluX2xvY2sgICAgIDogc3BpbiBsb2NrIGZvciBmcmFtZSBldmVudCwgdHJh bnNhY3Rpb24gc3RhdHVzLAo+ID4gZXRjLi4uCj4gPiA+ICAgKiBAZnJhbWVfZG9uZV9jb21wICAg IDogZm9yIGZyYW1lX2V2ZW50X2RvbmUgc3luY2hyb25pemF0aW9uCj4gPiA+ICAgKiBAZXZlbnRf dGhyZWFkICA6IFBvaW50ZXIgdG8gZXZlbnQgaGFuZGxlciB0aHJlYWQKPiA+ID4gQEAgLTE3Niw2 ICsxNzcsOCBAQCBzdHJ1Y3QgZHB1X2NydGMgewo+ID4gPiAgCXNwaW5sb2NrX3Qgc3Bpbl9sb2Nr Owo+ID4gPiAgCXN0cnVjdCBjb21wbGV0aW9uIGZyYW1lX2RvbmVfY29tcDsKPiA+ID4gCj4gPiA+ ICsJc3RydWN0IGRybV9wcml2YXRlX29iaiBwcml2X29iajsKPiA+ID4gKwo+ID4gPiAgCS8qIGZv ciBoYW5kbGluZyBpbnRlcm5hbCBldmVudCB0aHJlYWQgKi8KPiA+ID4gIAlzcGlubG9ja190IGV2 ZW50X2xvY2s7Cj4gPiA+IAo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9k aXNwL2RwdTEvZHB1X2ttcy5jCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2Rw dV9rbXMuYwo+ID4gPiBpbmRleCA4ODViZjg4Li4xNjc3ODYyIDEwMDY0NAo+ID4gPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfa21zLmMKPiA+ID4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2ttcy5jCj4gPiA+IEBAIC00NTksNiArNDU5LDQ5 IEBAIHN0YXRpYyBpbnQgX2RwdV9rbXNfc2V0dXBfZGlzcGxheXMoc3RydWN0Cj4gPiBkcm1fZGV2 aWNlICpkZXYsCj4gPiA+ICAJcmV0dXJuIF9kcHVfa21zX2luaXRpYWxpemVfZHNpKGRldiwgcHJp diwgZHB1X2ttcyk7Cj4gPiA+ICB9Cj4gPiA+IAo+ID4gPiArc3RydWN0IGRwdV9wcml2YXRlX3N0 YXRlICpkcHVfZ2V0X3ByaXZhdGVfc3RhdGUoc3RydWN0Cj4gPiA+IGRybV9hdG9taWNfc3RhdGUK PiA+ICpzdGF0ZSwKPiA+ID4gKwkJCQkJCXN0cnVjdCBkcHVfY3J0YyAqY3J0YykKPiA+ID4gK3sK PiA+ID4gKwlzdHJ1Y3QgZHJtX3ByaXZhdGVfc3RhdGUgKnByaXZfc3RhdGU7Cj4gPiA+ICsKPiA+ ID4gKwlwcml2X3N0YXRlID0gZHJtX2F0b21pY19nZXRfcHJpdmF0ZV9vYmpfc3RhdGUoc3RhdGUs Cj4gPiAmY3J0Yy0+cHJpdl9vYmopOwo+ID4gPiArCWlmIChJU19FUlIocHJpdl9zdGF0ZSkpCj4g PiA+ICsJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwo+ID4gPiArCj4gPiA+ICsJcmV0dXJuIGNv bnRhaW5lcl9vZihwcml2X3N0YXRlLCBzdHJ1Y3QgZHB1X3ByaXZhdGVfc3RhdGUsIGJhc2UpOwo+ ID4gPiArfQo+ID4gPiArCj4gPiA+ICtzdGF0aWMgc3RydWN0IGRybV9wcml2YXRlX3N0YXRlICoK PiA+ID4gK2RwdV9wcml2YXRlX29ial9kdXBsaWNhdGVfc3RhdGUoc3RydWN0IGRybV9wcml2YXRl X29iaiAqb2JqKQo+ID4gPiArewo+ID4gPiArCXN0cnVjdCBkcHVfcHJpdmF0ZV9zdGF0ZSAqZHB1 X3ByaXZfc3RhdGU7Cj4gPiA+ICsKPiA+ID4gKwlkcHVfcHJpdl9zdGF0ZSA9IGttZW1kdXAob2Jq LT5zdGF0ZSwgc2l6ZW9mKCpkcHVfcHJpdl9zdGF0ZSksCj4gPiA+ICsJCQkJIEdGUF9LRVJORUwp Owo+ID4gPiArCWlmICghZHB1X3ByaXZfc3RhdGUpCj4gPiA+ICsJCXJldHVybiBOVUxMOwo+ID4g PiArCj4gPiA+ICsJX19kcm1fYXRvbWljX2hlbHBlcl9wcml2YXRlX29ial9kdXBsaWNhdGVfc3Rh dGUob2JqLAo+ID4gPiArCj4gPiAmZHB1X3ByaXZfc3RhdGUtPmJhc2UpOwo+ID4gPiArCj4gPiA+ ICsJcmV0dXJuICZkcHVfcHJpdl9zdGF0ZS0+YmFzZTsKPiA+ID4gK30KPiA+ID4gKwo+ID4gPiAr c3RhdGljIHZvaWQgZHB1X3ByaXZhdGVfb2JqX2Rlc3Ryb3lfc3RhdGUoc3RydWN0IGRybV9wcml2 YXRlX29iago+ID4gPiAqb2JqLAo+ID4gPiArCQkJCSAgICAgIHN0cnVjdCBkcm1fcHJpdmF0ZV9z dGF0ZSAqc3RhdGUpCj4gPiA+ICt7Cj4gPiA+ICsJc3RydWN0IGRwdV9wcml2YXRlX3N0YXRlICpk cHVfcHJpdl9zdGF0ZSA9IGNvbnRhaW5lcl9vZihzdGF0ZSwKPiA+ID4gKwkJCQkJCSAgICAgIHN0 cnVjdAo+ID4gZHB1X3ByaXZhdGVfc3RhdGUsCj4gPiA+ICsJCQkJCQkgICAgICBiYXNlKTsKPiA+ ID4gKwo+ID4gPiArCWtmcmVlKGRwdV9wcml2X3N0YXRlKTsKPiA+ID4gK30KPiA+ID4gKwo+ID4g PiArc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fcHJpdmF0ZV9zdGF0ZV9mdW5jcyBwcml2X29ial9m dW5jcyA9IHsKPiA+ID4gKwkuYXRvbWljX2R1cGxpY2F0ZV9zdGF0ZSA9IGRwdV9wcml2YXRlX29i al9kdXBsaWNhdGVfc3RhdGUsCj4gPiA+ICsJLmF0b21pY19kZXN0cm95X3N0YXRlID0gZHB1X3By aXZhdGVfb2JqX2Rlc3Ryb3lfc3RhdGUsCj4gPiA+ICt9Owo+ID4gPiArCj4gPiA+ICBzdGF0aWMg dm9pZCBfZHB1X2ttc19kcm1fb2JqX2Rlc3Ryb3koc3RydWN0IGRwdV9rbXMgKmRwdV9rbXMpCj4g PiA+ICB7Cj4gPiA+ICAJc3RydWN0IG1zbV9kcm1fcHJpdmF0ZSAqcHJpdjsKPiA+ID4gQEAgLTQ3 Niw4ICs1MTksMTIgQEAgc3RhdGljIHZvaWQgX2RwdV9rbXNfZHJtX29ial9kZXN0cm95KHN0cnVj dAo+ID4gPiBkcHVfa21zCj4gPiAqZHB1X2ttcykKPiA+ID4gIAl9Cj4gPiA+ICAJcHJpdiA9IGRw dV9rbXMtPmRldi0+ZGV2X3ByaXZhdGU7Cj4gPiA+IAo+ID4gPiAtCWZvciAoaSA9IDA7IGkgPCBw cml2LT5udW1fY3J0Y3M7IGkrKykKPiA+ID4gKwlmb3IgKGkgPSAwOyBpIDwgcHJpdi0+bnVtX2Ny dGNzOyBpKyspIHsKPiA+ID4gKwkJc3RydWN0IGRwdV9jcnRjICpkcHVfY3J0YyA9IHRvX2RwdV9j cnRjKHByaXYtPmNydGNzW2ldKTsKPiA+ID4gKwo+ID4gPiArCQlkcm1fYXRvbWljX3ByaXZhdGVf b2JqX2ZpbmkoJmRwdV9jcnRjLT5wcml2X29iaik7Cj4gPiA+ICAJCXByaXYtPmNydGNzW2ldLT5m dW5jcy0+ZGVzdHJveShwcml2LT5jcnRjc1tpXSk7Cj4gPiA+ICsJfQo+ID4gPiAgCXByaXYtPm51 bV9jcnRjcyA9IDA7Cj4gPiA+IAo+ID4gPiAgCWZvciAoaSA9IDA7IGkgPCBwcml2LT5udW1fcGxh bmVzOyBpKyspCj4gPiA+IEBAIC00OTksNiArNTQ2LDcgQEAgc3RhdGljIGludCBfZHB1X2ttc19k cm1fb2JqX2luaXQoc3RydWN0IGRwdV9rbXMKPiA+ICpkcHVfa21zKQo+ID4gPiAgCXN0cnVjdCBk cm1fcGxhbmUgKnByaW1hcnlfcGxhbmVzW01BWF9QTEFORVNdLCAqcGxhbmU7Cj4gPiA+ICAJc3Ry dWN0IGRybV9wbGFuZSAqY3Vyc29yX3BsYW5lc1tNQVhfUExBTkVTXSA9IHsgTlVMTCB9Owo+ID4g PiAgCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPiA+ID4gKwlzdHJ1Y3QgZHB1X3ByaXZhdGVfc3Rh dGUgKmRwdV9wcml2X3N0YXRlOwo+ID4gPiAKPiA+ID4gIAlzdHJ1Y3QgbXNtX2RybV9wcml2YXRl ICpwcml2Owo+ID4gPiAgCXN0cnVjdCBkcHVfbWRzc19jZmcgKmNhdGFsb2c7Cj4gPiA+IEBAIC01 NjAsMTEgKzYwOCwyNSBAQCBzdGF0aWMgaW50IF9kcHVfa21zX2RybV9vYmpfaW5pdChzdHJ1Y3Qg ZHB1X2ttcwo+ID4gKmRwdV9rbXMpCj4gPiA+IAo+ID4gPiAgCS8qIENyZWF0ZSBvbmUgQ1JUQyBw ZXIgZW5jb2RlciAqLwo+ID4gPiAgCWZvciAoaSA9IDA7IGkgPCBtYXhfY3J0Y19jb3VudDsgaSsr KSB7Cj4gPiA+ICsJCXN0cnVjdCBkcHVfY3J0YyAqZHB1X2NydGM7Cj4gPiA+ICsKPiA+ID4gIAkJ Y3J0YyA9IGRwdV9jcnRjX2luaXQoZGV2LCBwcmltYXJ5X3BsYW5lc1tpXSwKPiA+IGN1cnNvcl9w bGFuZXNbaV0pOwo+ID4gPiAgCQlpZiAoSVNfRVJSKGNydGMpKSB7Cj4gPiA+ICAJCQlyZXQgPSBQ VFJfRVJSKGNydGMpOwo+ID4gPiAgCQkJZ290byBmYWlsOwo+ID4gPiAgCQl9Cj4gPiA+ICsKPiA+ ID4gKwkJZHB1X2NydGMgPSB0b19kcHVfY3J0YyhjcnRjKTsKPiA+ID4gKwo+ID4gPiArCQkvKiBJ bml0aWFsaXplIHByaXZhdGUgb2JqJ3MgKi8KPiA+ID4gKwkJZHB1X3ByaXZfc3RhdGUgPSBremFs bG9jKHNpemVvZigqZHB1X3ByaXZfc3RhdGUpLAo+ID4gR0ZQX0tFUk5FTCk7Cj4gPiA+ICsJCWlm ICghZHB1X3ByaXZfc3RhdGUpCj4gPiA+ICsJCQlyZXR1cm4gLUVOT01FTTsKPiA+ID4gKwo+ID4g PiArCQlkcm1fYXRvbWljX3ByaXZhdGVfb2JqX2luaXQoJmRwdV9jcnRjLT5wcml2X29iaiwKPiA+ ID4gKwkJCQkJICAgICZkcHVfcHJpdl9zdGF0ZS0+YmFzZSwKPiA+ID4gKwkJCQkJICAgICZwcml2 X29ial9mdW5jcyk7Cj4gPiA+ICsKPiA+ID4gIAkJcHJpdi0+Y3J0Y3NbcHJpdi0+bnVtX2NydGNz KytdID0gY3J0YzsKPiA+ID4gIAl9Cj4gPiA+IAo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2ttcy5oCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9tc20v ZGlzcC9kcHUxL2RwdV9rbXMuaAo+ID4gPiBpbmRleCBhYzc1Y2ZjLi4zZGVlZGZiIDEwMDY0NAo+ ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfa21zLmgKPiA+ID4g KysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2ttcy5oCj4gPiA+IEBAIC0z Miw2ICszMiw4IEBACj4gPiA+ICAjaW5jbHVkZSAiZHB1X3JtLmgiCj4gPiA+ICAjaW5jbHVkZSAi ZHB1X2NvcmVfcGVyZi5oIgo+ID4gPiAKPiA+ID4gK3N0cnVjdCBkcHVfY3J0YzsKPiA+ID4gKwo+ ID4gPiAgI2RlZmluZSBEUk1JRCh4KSAoKHgpID8gKHgpLT5iYXNlLmlkIDogLTEpCj4gPiA+IAo+ ID4gPiAgLyoqCj4gPiA+IEBAIC0xMzYsNiArMTM4LDEwIEBAIHN0cnVjdCBkcHVfa21zIHsKPiA+ ID4gIAlzdHJ1Y3QgZHNzX21vZHVsZV9wb3dlciBtcDsKPiA+ID4gIH07Cj4gPiA+IAo+ID4gPiAr c3RydWN0IGRwdV9wcml2YXRlX3N0YXRlIHsKPiA+ID4gKwlzdHJ1Y3QgZHJtX3ByaXZhdGVfc3Rh dGUgYmFzZTsKPiA+ID4gK307Cj4gPiA+ICsKPiA+ID4gIHN0cnVjdCB2c3luY19pbmZvIHsKPiA+ ID4gIAl1MzIgZnJhbWVfY291bnQ7Cj4gPiA+ICAJdTMyIGxpbmVfY291bnQ7Cj4gPiA+IEBAIC0x NDMsNiArMTQ5LDE1IEBAIHN0cnVjdCB2c3luY19pbmZvIHsKPiA+ID4gCj4gPiA+ICAjZGVmaW5l IHRvX2RwdV9rbXMoeCkgY29udGFpbmVyX29mKHgsIHN0cnVjdCBkcHVfa21zLCBiYXNlKQo+ID4g PiAKPiA+ID4gKy8qKgo+ID4gPiArICogZHB1X2dldF9wcml2YXRlX3N0YXRlIC0gZ2V0IGRwdSBw cml2YXRlIHN0YXRlIGZyb20gYXRvbWljIHN0YXRlCj4gPiA+ICsgKiBAc3RhdGU6IGRybSBhdG9t aWMgc3RhdGUKPiA+ID4gKyAqIEBjcnRjOiBwb2ludGVyIHRvIGNydGMgb2JqCj4gPiA+ICsgKiBS ZXR1cm46IHBvaW50ZXIgdG8gZHB1IHByaXZhdGUgc3RhdGUgb2JqZWN0Cj4gPiA+ICsgKi8KPiA+ ID4gK3N0cnVjdCBkcHVfcHJpdmF0ZV9zdGF0ZSAqZHB1X2dldF9wcml2YXRlX3N0YXRlKHN0cnVj dAo+ID4gPiBkcm1fYXRvbWljX3N0YXRlCj4gPiAqc3RhdGUsCj4gPiA+ICsJCQkJCQlzdHJ1Y3Qg ZHB1X2NydGMgKmNydGMpOwo+ID4gPiArCj4gPiA+ICAvKiBnZXQgc3RydWN0IG1zbV9rbXMgKiBm cm9tIGRybV9kZXZpY2UgKiAqLwo+ID4gPiAgI2RlZmluZSBkZGV2X3RvX21zbV9rbXMoRCkgKChE KSAmJiAoRCktPmRldl9wcml2YXRlID8gXAo+ID4gPiAgCQkoKHN0cnVjdCBtc21fZHJtX3ByaXZh dGUgKikoKEQpLT5kZXZfcHJpdmF0ZSkpLT5rbXMgOgo+ID4gTlVMTCkKPiA+ID4gLS0KPiA+ID4g VGhlIFF1YWxjb21tIElubm92YXRpb24gQ2VudGVyLCBJbmMuIGlzIGEgbWVtYmVyIG9mIHRoZSBD b2RlIEF1cm9yYQo+ID4gRm9ydW0sCj4gPiA+IGEgTGludXggRm91bmRhdGlvbiBDb2xsYWJvcmF0 aXZlIFByb2plY3QKPiA+ID4gCj4gPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCj4gPiA+IEZyZWVkcmVubyBtYWlsaW5nIGxpc3QKPiA+ID4gRnJlZWRy ZW5vQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ID4gPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZyZWVkcmVubwo+IAo+IC0tIAo+IEpleWt1bWFyIFMKCi0t IApTZWFuIFBhdWwsIFNvZnR3YXJlIEVuZ2luZWVyLCBHb29nbGUgLyBDaHJvbWl1bSBPUwpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFp bGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw=