From mboxrd@z Thu Jan 1 00:00:00 1970 From: Archit Taneja Subject: Re: [RFC 1/3] drm/msm/mdp5: Add global state as a private atomic object Date: Wed, 3 Jan 2018 17:02:40 +0530 Message-ID: References: <20171221061425.5511-1-architt@codeaurora.org> <20171221061425.5511-2-architt@codeaurora.org> <20171221095608.GS26573@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20171221095608.GS26573@phenom.ffwll.local> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter Cc: linux-arm-msm@vger.kernel.org, dhinakaran.pandiyan@intel.com, dri-devel@lists.freedesktop.org List-Id: linux-arm-msm@vger.kernel.org CgpPbiAxMi8yMS8yMDE3IDAzOjI2IFBNLCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+IE9uIFRodSwg RGVjIDIxLCAyMDE3IGF0IDExOjQ0OjIzQU0gKzA1MzAsIEFyY2hpdCBUYW5lamEgd3JvdGU6Cj4+ IEdsb2JhbCBzaGFyZWQgcmVzb3VyY2VzIChod3BpcGVzLCBod21peGVycyBhbmQgU01QKSBmb3Ig TURQNSBhcmUKPj4gaW1wbGVtZW50ZWQgYXMgYSBwYXJ0IG9mIGF0b21pYyBzdGF0ZSBieSBzdWJj bGFzc2luZyBkcm1fYXRvbWljX3N0YXRlLgo+Pgo+PiBUaGUgcHJlZmVycmVkIGFwcHJvYWNoIGlz IHRvIHVzZSB0aGUgZHJtX3ByaXZhdGVfb2JqIGluZnJhc3RydWN0dXJlCj4+IGF2YWlsYWJsZSBp biB0aGUgYXRvbWljIGNvcmUuCj4+Cj4+IG1kcDVfZ2xvYmFsX3N0YXRlIGlzIGludHJvZHVjZWQg YXMgYSBkcm0gYXRvbWljIHByaXZhdGUgb2JqZWN0LiBUaGUgdHdvCj4+IGZ1bmNzIG1kcDVfZ2V0 X2dsb2JhbF9zdGF0ZSgpIGFuZCBtZHA1X2dldF9leGlzdGluZ19nbG9iYWxfc3RhdGUoKSBhcmUK Pj4gdGhlIHR3byB2YXJpYW50cyB0aGF0IHdpbGwgYmUgdXNlZCB0byBhY2Nlc3MgbWRwNV9nbG9i YWxfc3RhdGUuCj4+Cj4+IFRoaXMgd2lsbCByZXBsYWNlIHRoZSBleGlzdGluZyBtZHA1X3N0YXRl IHN0cnVjdCAod2hpY2ggc3ViY2xhc3Nlcwo+PiBkcm1fYXRvbWljX3N0YXRlKSBhbmQgdGhlIGZ1 bmNzIGFyb3VuZCBpdC4gVGhlc2Ugd2lsbCBiZSByZW1vdmVkIGxhdGVyCj4+IG9uY2Ugd2UgbWRw NV9nbG9iYWxfc3RhdGUgaXMgcHV0IHRvIHVzZSBldmVyeXdoZXJlLgo+Pgo+PiBTaWduZWQtb2Zm LWJ5OiBBcmNoaXQgVGFuZWphIDxhcmNoaXR0QGNvZGVhdXJvcmEub3JnPgo+PiAtLS0KPj4gICBk cml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfa21zLmMgfCA4NiArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysKPj4gICBkcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21k cDVfa21zLmggfCAyNyArKysrKysrKysrKwo+PiAgIDIgZmlsZXMgY2hhbmdlZCwgMTEzIGluc2Vy dGlvbnMoKykKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUv bWRwNV9rbXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9rbXMuYwo+PiBp bmRleCBmN2MwNjk4ZmVjNDAuLmRmYzRkODExMjRkNSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X2ttcy5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9t c20vbWRwL21kcDUvbWRwNV9rbXMuYwo+PiBAQCAtMTA2LDYgKzEwNiw4NiBAQCBzdGF0aWMgdm9p ZCBtZHA1X3N3YXBfc3RhdGUoc3RydWN0IG1zbV9rbXMgKmttcywgc3RydWN0IGRybV9hdG9taWNf c3RhdGUgKnN0YXRlKQo+PiAgIAlzd2FwKHRvX2ttc19zdGF0ZShzdGF0ZSktPnN0YXRlLCBtZHA1 X2ttcy0+c3RhdGUpOwo+PiAgIH0KPj4gICAKPj4gKy8qIEdsb2JhbC9zaGFyZWQgb2JqZWN0IHN0 YXRlIGZ1bmNzICovCj4+ICsKPj4gKy8qCj4+ICsgKiBUaGlzIGlzIGEgaGVscGVyIHRoYXQgcmV0 dXJucyB0aGUgcHJpdmF0ZSBzdGF0ZSBjdXJyZW50bHkgaW4gb3BlcmF0aW9uLgo+PiArICogTm90 ZSB0aGF0IHRoaXMgd291bGQgcmV0dXJuIHRoZSAib2xkX3N0YXRlIiBpZiBjYWxsZWQgaW4gdGhl IGF0b21pYyBjaGVjawo+PiArICogcGF0aCwgYW5kIHRoZSAibmV3X3N0YXRlIiBhZnRlciB0aGUg YXRvbWljIHN3YXAgaGFzIGJlZW4gZG9uZS4KPj4gKyAqLwo+PiArc3RydWN0IG1kcDVfZ2xvYmFs X3N0YXRlICoKPj4gK21kcDVfZ2V0X2V4aXN0aW5nX2dsb2JhbF9zdGF0ZShzdHJ1Y3QgbWRwNV9r bXMgKm1kcDVfa21zKQo+PiArewo+PiArCXJldHVybiB0b19tZHA1X2dsb2JhbF9zdGF0ZShtZHA1 X2ttcy0+Z2xvYl9iYXNlLnN0YXRlKTsKPiAKPiBUaGlzIGRvZXNuJ3QgbWF0Y2ggdGhlIGV4aXN0 aW5nIHN0YXRlIHN0dWZmIGZvciBldmVyeXRoaW5nIGVsc2UuIEhlcmUgeW91Cj4gbG9vayBhdCB0 aGUgZ2xvYmFsIHN0YXRlLCBidXQgbm90IGF0IHRoZSBvbmUgaGFuZ2luZyBvZmYgZHJtX2F0b21p Y19zdGF0ZS4KPiAKPiBNYXliZSB3ZSBzaG91bGQgYWRkIGEgZHJtX2F0b21pY19nZXRfZXhpc3Rp bmdfcHJpdmF0ZV9vYmpfc3RhdGUgZnVuY3Rpb24KPiB0byBtYWtlIHRoaXMgZWFzaWVyPwo+IAo+ IEknbSBhbHNvIG5vdCAxMDAlIHN1cmUgb24gd2hhdCBzZW1hbnRpY3MgeW91IHdhbnQgcHJlY2lz ZWx5LgoKSSBqdXN0IHdhbnRlZCBhIGZ1bmMgdGhhdCByZXR1cm5zIG1lIHRoZSBwcml2YXRlIG9i aidzIHN0YXRlIHRoYXQgaXMgY3VycmVudGx5CiJpbiB1c2UiLiBJLmUsIHRoZSBvbGQgc3RhdGUg cHJlLXN3YXAsIGFuZCB0aGUgbmV3IHN0YXRlIHBvc3Qtc3dhcC4gSWYgSSB1c2UKZHJtX2F0b21p Y19nZXRfcHJpdmF0ZV9vYmpfc3RhdGUoKSBhZnRlciB0aGUgc3dhcCBoYXMgb2NjdXJyZWQsIEkg Z2V0IHRoZSBvbGQKc3RhdGUgYmFjay4gSW4gb3RoZXIgd29yZHMsIHRoZXJlIGFyZW4ndCBmdW5j cyBmb3IgcHJpdmF0ZSBvYmpzIGxpa2UKZHJtX2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUoKSBh bmQgZHJtX2F0b21pY19nZXRfb2xkX2NydGNfc3RhdGUoKSB0aGF0IHdlCmNhbiB1c2UuIEknbGwg Z28gdGhyb3VnaCB0aGUgY29kZSBhZ2FpbiBjYXJlZnVsbHkgdG8gc2VlIGlmIG15IHVuZGVyc3Rh bmRpbmcKaXNuJ3Qgc2NyZXdlZCB1cC4KCj4gCj4gCj4+ICt9Cj4+ICsKPj4gKy8qCj4+ICsgKiBU aGlzIGFjcXVpcmVzIHRoZSBtb2Rlc2V0IGxvY2sgc2V0IGFzaWRlIGZvciBnbG9iYWwgc3RhdGUs IGNyZWF0ZXMKPj4gKyAqIGEgbmV3IGR1cGxpY2F0ZWQgcHJpdmF0ZSBvYmplY3Qgc3RhdGUuCj4+ ICsgKi8KPj4gK3N0cnVjdCBtZHA1X2dsb2JhbF9zdGF0ZSAqbWRwNV9nZXRfZ2xvYmFsX3N0YXRl KHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzKQo+PiArewo+PiArCXN0cnVjdCBtc21fZHJtX3By aXZhdGUgKnByaXYgPSBzLT5kZXYtPmRldl9wcml2YXRlOwo+PiArCXN0cnVjdCBtZHA1X2ttcyAq bWRwNV9rbXMgPSB0b19tZHA1X2ttcyh0b19tZHBfa21zKHByaXYtPmttcykpOwo+PiArCXN0cnVj dCBkcm1fcHJpdmF0ZV9zdGF0ZSAqcHJpdl9zdGF0ZTsKPj4gKwlpbnQgcmV0Owo+PiArCj4+ICsJ cmV0ID0gZHJtX21vZGVzZXRfbG9jaygmbWRwNV9rbXMtPmdsb2Jfc3RhdGVfbG9jaywgcy0+YWNx dWlyZV9jdHgpOwo+PiArCWlmIChyZXQpCj4+ICsJCXJldHVybiBFUlJfUFRSKHJldCk7Cj4+ICsK Pj4gKwlwcml2X3N0YXRlID0gZHJtX2F0b21pY19nZXRfcHJpdmF0ZV9vYmpfc3RhdGUocywgJm1k cDVfa21zLT5nbG9iX2Jhc2UpOwo+PiArCWlmIChJU19FUlIocHJpdl9zdGF0ZSkpCj4+ICsJCXJl dHVybiBFUlJfQ0FTVChwcml2X3N0YXRlKTsKPj4gKwo+PiArCXJldHVybiB0b19tZHA1X2dsb2Jh bF9zdGF0ZShwcml2X3N0YXRlKTsKPj4gK30KPj4gKwo+PiArc3RhdGljIHN0cnVjdCBkcm1fcHJp dmF0ZV9zdGF0ZSAqCj4+ICttZHA1X2dsb2JhbF9kdXBsaWNhdGVfc3RhdGUoc3RydWN0IGRybV9w cml2YXRlX29iaiAqb2JqKQo+PiArewo+PiArCXN0cnVjdCBtZHA1X2dsb2JhbF9zdGF0ZSAqc3Rh dGU7Cj4+ICsKPj4gKwlzdGF0ZSA9IGttZW1kdXAob2JqLT5zdGF0ZSwgc2l6ZW9mKCpzdGF0ZSks IEdGUF9LRVJORUwpOwo+PiArCWlmICghc3RhdGUpCj4+ICsJCXJldHVybiBOVUxMOwo+PiArCj4+ ICsJX19kcm1fYXRvbWljX2hlbHBlcl9wcml2YXRlX29ial9kdXBsaWNhdGVfc3RhdGUob2JqLCAm c3RhdGUtPmJhc2UpOwo+PiArCj4+ICsJcmV0dXJuICZzdGF0ZS0+YmFzZTsKPj4gK30KPj4gKwo+ PiArc3RhdGljIHZvaWQgbWRwNV9nbG9iYWxfZGVzdHJveV9zdGF0ZShzdHJ1Y3QgZHJtX3ByaXZh dGVfb2JqICpvYmosCj4+ICsJCQkJICAgICAgc3RydWN0IGRybV9wcml2YXRlX3N0YXRlICpzdGF0 ZSkKPj4gK3sKPj4gKwlzdHJ1Y3QgbWRwNV9nbG9iYWxfc3RhdGUgKm1kcDVfc3RhdGUgPSB0b19t ZHA1X2dsb2JhbF9zdGF0ZShzdGF0ZSk7Cj4+ICsKPj4gKwlrZnJlZShtZHA1X3N0YXRlKTsKPj4g K30KPj4gKwo+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fcHJpdmF0ZV9zdGF0ZV9mdW5jcyBt ZHA1X2dsb2JhbF9zdGF0ZV9mdW5jcyA9IHsKPj4gKwkuYXRvbWljX2R1cGxpY2F0ZV9zdGF0ZSA9 IG1kcDVfZ2xvYmFsX2R1cGxpY2F0ZV9zdGF0ZSwKPj4gKwkuYXRvbWljX2Rlc3Ryb3lfc3RhdGUg PSBtZHA1X2dsb2JhbF9kZXN0cm95X3N0YXRlLAo+PiArfTsKPj4gKwo+PiArc3RhdGljIGludCBt ZHA1X2dsb2JhbF9vYmpfaW5pdChzdHJ1Y3QgbWRwNV9rbXMgKm1kcDVfa21zKQo+PiArewo+PiAr CXN0cnVjdCBtZHA1X2dsb2JhbF9zdGF0ZSAqc3RhdGU7Cj4+ICsKPj4gKwlzdGF0ZSA9IGt6YWxs b2Moc2l6ZW9mKCpzdGF0ZSksIEdGUF9LRVJORUwpOwo+PiArCWlmICghc3RhdGUpCj4+ICsJCXJl dHVybiAtRU5PTUVNOwo+PiArCj4+ICsJZHJtX21vZGVzZXRfbG9ja19pbml0KCZtZHA1X2ttcy0+ Z2xvYl9zdGF0ZV9sb2NrKTsKPiAKPiBJIHRob3VnaHQgYSBiaXQgdGhlIGxhc3QgZmV3IGRheXMg YWJvdXQgaG93IHRvIGludGVncmF0ZSBtb2Rlc2V0IGxvY2tpbmcKPiBpbnRvIGRyaXZlciBwcml2 YXRlIHN0YXRlIG9iamVjdHMuIEkgdGhpbmsgdGhlIHNpbXBsZXN0IHNvbHV0aW9uIHdvdWxkIGJl Cj4gaWYgd2UganVzdCBhZGQgYSBkcm1fbW9kZXNldF9sb2NrIHRvIGRybV9wcml2YXRlX29iaiwg YW5kIHB1c2ggdGhlIGxvY2tpbmcKPiAoYm90aCBoZXJlIGFuZCBpbiB0aGUgbXN0IGhlbHBlcikg aW50byB0aGUgY29yZSBwcml2YXRlIG9iaiBjb2RlLgoKSSdtIGFsc28gYSBiaXQgdW5jbGVhciBv biBob3cgbWFueSBwcml2YXRlIG9ianMgb25lIHNob3VsZCBjcmVhdGUuIEluIHRoaXMgcGF0Y2hz ZXQsCkkganVzdCBjcmVhdGUgb25lIHByaXZhdGUgb2JqIGluc3RhbmNlLCBhbmQgc3R1ZmYgYWxs IG9mIG91ciBzaGFyZWQgcmVzb3VyY2VzIGludG8KaXQgKHNlZSBtZHA1X2dsb2JhbF9zdGF0ZSBi ZWxvdykuIEkgZGlkbid0IHNlZSB0aGUgcG9pbnQgaW4gY3JlYXRpbmcgb25lIHByaXYgb2JqZWN0 CnBlciBzaGFyZWQgcmVzb3VyY2UsIHNpbmNlIGEgc2luZ2xlIGxvY2sgZm9yIGFsbCBvZiB0aGVt IHNlZW1lZCBva2F5IGhlcmUuCgpUaGFua3MsCkFyY2hpdAoKPiAKPiBQZXItb2JqZWN0IGxvY2tp bmcgbWlnaHQgYmUgYSBiaXQgb3ZlcmtpbGwgKGl0J3MgZGVmaW5pdGVseSBvdmVya2lsbCBmb3IK PiBtc3QpLCBidXQgaXQncyBhbHNvIGVhc2llciB0byBhdm9pZCBzcGVjaWFsIGNhc2VzLgo+IAo+ IFRoYXQgd291bGQgcmVkdWNlIHRoZSBib2lsZXJwbGF0ZSBoZXJlIGEgYml0IG1vcmUsIGVzc2Vu dGlhbGx5IGNvbnZlcnRpbmcKPiB0aGUgd3JhcHBlcnMgaW50byB0eXBlIGNhc3RpbmcgZnVuY3Rp b25zLgo+IC1EYW5pZWwKPiAKPj4gKwo+PiArCXN0YXRlLT5tZHA1X2ttcyA9IG1kcDVfa21zOwo+ PiArCj4+ICsJZHJtX2F0b21pY19wcml2YXRlX29ial9pbml0KCZtZHA1X2ttcy0+Z2xvYl9iYXNl LAo+PiArCQkJCSAgICAmc3RhdGUtPmJhc2UsCj4+ICsJCQkJICAgICZtZHA1X2dsb2JhbF9zdGF0 ZV9mdW5jcyk7Cj4+ICsJcmV0dXJuIDA7Cj4+ICt9Cj4+ICsKPj4gICBzdGF0aWMgdm9pZCBtZHA1 X3ByZXBhcmVfY29tbWl0KHN0cnVjdCBtc21fa21zICprbXMsIHN0cnVjdCBkcm1fYXRvbWljX3N0 YXRlICpzdGF0ZSkKPj4gICB7Cj4+ICAgCXN0cnVjdCBtZHA1X2ttcyAqbWRwNV9rbXMgPSB0b19t ZHA1X2ttcyh0b19tZHBfa21zKGttcykpOwo+PiBAQCAtNzI3LDYgKzgwNyw4IEBAIHN0YXRpYyB2 b2lkIG1kcDVfZGVzdHJveShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+PiAgIAlpZiAo bWRwNV9rbXMtPnJwbV9lbmFibGVkKQo+PiAgIAkJcG1fcnVudGltZV9kaXNhYmxlKCZwZGV2LT5k ZXYpOwo+PiAgIAo+PiArCWRybV9hdG9taWNfcHJpdmF0ZV9vYmpfZmluaSgmbWRwNV9rbXMtPmds b2JfYmFzZSk7Cj4+ICsKPj4gICAJa2ZyZWUobWRwNV9rbXMtPnN0YXRlKTsKPj4gICB9Cj4+ICAg Cj4+IEBAIC04ODcsNiArOTY5LDEwIEBAIHN0YXRpYyBpbnQgbWRwNV9pbml0KHN0cnVjdCBwbGF0 Zm9ybV9kZXZpY2UgKnBkZXYsIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4+ICAgCQlnb3RvIGZh aWw7Cj4+ICAgCX0KPj4gICAKPj4gKwlyZXQgPSBtZHA1X2dsb2JhbF9vYmpfaW5pdChtZHA1X2tt cyk7Cj4+ICsJaWYgKHJldCkKPj4gKwkJZ290byBmYWlsOwo+PiArCj4+ICAgCW1kcDVfa21zLT5t bWlvID0gbXNtX2lvcmVtYXAocGRldiwgIm1kcF9waHlzIiwgIk1EUDUiKTsKPj4gICAJaWYgKElT X0VSUihtZHA1X2ttcy0+bW1pbykpIHsKPj4gICAJCXJldCA9IFBUUl9FUlIobWRwNV9rbXMtPm1t aW8pOwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X2tt cy5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X2ttcy5oCj4+IGluZGV4IDli M2ZlMDEwODlkMS4uNTIyZGRiODM1NTkzIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v bXNtL21kcC9tZHA1L21kcDVfa21zLmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tZHAv bWRwNS9tZHA1X2ttcy5oCj4+IEBAIC01NSw2ICs1NSwxMyBAQCBzdHJ1Y3QgbWRwNV9rbXMgewo+ PiAgIAlzdHJ1Y3QgbWRwNV9zdGF0ZSAqc3RhdGU7Cj4+ICAgCXN0cnVjdCBkcm1fbW9kZXNldF9s b2NrIHN0YXRlX2xvY2s7Cj4+ICAgCj4+ICsJLyoKPj4gKwkgKiBHbG9iYWwgcHJpdmF0ZSBvYmpl Y3Qgc3RhdGUsIERvIG5vdCBhY2Nlc3MgZGlyZWN0bHksIHVzZQo+PiArCSAqIG1kcDVfZ2xvYmFs X2dldF9zdGF0ZSgpCj4+ICsJICovCj4+ICsJc3RydWN0IGRybV9wcml2YXRlX29iaiBnbG9iX2Jh c2U7Cj4+ICsJc3RydWN0IGRybV9tb2Rlc2V0X2xvY2sgZ2xvYl9zdGF0ZV9sb2NrOwo+PiArCj4+ ICAgCXN0cnVjdCBtZHA1X3NtcCAqc21wOwo+PiAgIAlzdHJ1Y3QgbWRwNV9jdGxfbWFuYWdlciAq Y3RsbTsKPj4gICAKPj4gQEAgLTk1LDYgKzEwMiwyNiBAQCBzdHJ1Y3QgbWRwNV9zdGF0ZSB7Cj4+ ICAgc3RydWN0IG1kcDVfc3RhdGUgKl9fbXVzdF9jaGVjawo+PiAgIG1kcDVfZ2V0X3N0YXRlKHN0 cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzKTsKPj4gICAKPj4gKy8qIEdsb2JhbCBwcml2YXRlIG9i amVjdCBzdGF0ZSBmb3IgdHJhY2tpbmcgcmVzb3VyY2VzIHRoYXQgYXJlIHNoYXJlZCBhY3Jvc3MK Pj4gKyAqIG11bHRpcGxlIGttcyBvYmplY3RzIChwbGFuZXMvY3J0Y3MvZXRjKS4KPj4gKyAqLwo+ PiArI2RlZmluZSB0b19tZHA1X2dsb2JhbF9zdGF0ZSh4KSBjb250YWluZXJfb2YoeCwgc3RydWN0 IG1kcDVfZ2xvYmFsX3N0YXRlLCBiYXNlKQo+PiArc3RydWN0IG1kcDVfZ2xvYmFsX3N0YXRlIHsK Pj4gKwlzdHJ1Y3QgZHJtX3ByaXZhdGVfc3RhdGUgYmFzZTsKPj4gKwo+PiArCXN0cnVjdCBkcm1f YXRvbWljX3N0YXRlICpzdGF0ZTsKPj4gKwlzdHJ1Y3QgbWRwNV9rbXMgKm1kcDVfa21zOwo+PiAr Cj4+ICsJc3RydWN0IG1kcDVfaHdfcGlwZV9zdGF0ZSBod3BpcGU7Cj4+ICsJc3RydWN0IG1kcDVf aHdfbWl4ZXJfc3RhdGUgaHdtaXhlcjsKPj4gKwlzdHJ1Y3QgbWRwNV9zbXBfc3RhdGUgc21wOwo+ PiArfTsKPj4gKwo+PiArc3RydWN0IG1kcDVfZ2xvYmFsX3N0YXRlICoKPj4gK21kcDVfZ2V0X2V4 aXN0aW5nX2dsb2JhbF9zdGF0ZShzdHJ1Y3QgbWRwNV9rbXMgKm1kcDVfa21zKTsKPj4gK3N0cnVj dCBtZHA1X2dsb2JhbF9zdGF0ZSAqX19tdXN0X2NoZWNrCj4+ICttZHA1X2dldF9nbG9iYWxfc3Rh dGUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnMpOwo+PiArCj4+ICAgLyogQXRvbWljIHBsYW5l IHN0YXRlLiAgU3ViY2xhc3NlcyB0aGUgYmFzZSBkcm1fcGxhbmVfc3RhdGUgaW4gb3JkZXIgdG8K Pj4gICAgKiB0cmFjayBhc3NpZ25lZCBod3BpcGUgYW5kIGh3IHNwZWNpZmljIHN0YXRlLgo+PiAg ICAqLwo+PiAtLSAKPj4gVGhlIFF1YWxjb21tIElubm92YXRpb24gQ2VudGVyLCBJbmMuIGlzIGEg bWVtYmVyIG9mIHRoZSBDb2RlIEF1cm9yYSBGb3J1bSwKPj4gaG9zdGVkIGJ5IFRoZSBMaW51eCBG b3VuZGF0aW9uCj4+Cj4gCgotLSAKUXVhbGNvbW0gSW5ub3ZhdGlvbiBDZW50ZXIsIEluYy4gaXMg YSBtZW1iZXIgb2YgQ29kZSBBdXJvcmEgRm9ydW0sCmEgTGludXggRm91bmRhdGlvbiBDb2xsYWJv cmF0aXZlIFByb2plY3QKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRl dmVsCg==