From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: Re: [PATCH] drm/i915: Replace obj->pin_global with obj->frontbuffer Date: Fri, 23 Aug 2019 18:03:44 +0100 Message-ID: <156657982467.4019.11264524025208480245@skylake-alporthouse-com> References: <20190823162041.9482-1-chris@chris-wilson.co.uk> <20190823164849.GV5942@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id A2B416ECFB for ; Fri, 23 Aug 2019 17:03:49 +0000 (UTC) In-Reply-To: <20190823164849.GV5942@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: =?utf-8?b?VmlsbGUgU3lyasOkbMOk?= Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org UXVvdGluZyBWaWxsZSBTeXJqw6Rsw6QgKDIwMTktMDgtMjMgMTc6NDg6NDkpCj4gT24gRnJpLCBB dWcgMjMsIDIwMTkgYXQgMDU6MjA6NDFQTSArMDEwMCwgQ2hyaXMgV2lsc29uIHdyb3RlOgo+ID4g b2JqLT5waW5fZ2xvYmFsIHdhcyBvcmlnaW5hbCB1c2VkIGFzIGEgbWVhbnMgdG8ga2VlcCB0aGUg c2hyaW5rZXIgb2ZmCj4gPiB0aGUgYWN0aXZlIHNjYW5vdXQsIGJ1dCB3ZSB1c2UgdGhlIHZtYS0+ cGluX2NvdW50IGl0c2VsZiBmb3IgdGhhdCBhbmQKPiA+IHRoZSBvYmotPmZyb250YnVmZmVyIHRv IGRlbGF5IHNocmlua2luZyBhY3RpdmUgZnJhbWVidWZmZXJzLiBUaGUgb3RoZXIKPiA+IHJvbGUg dGhhdCBvYmotPnBpbl9nbG9iYWwgZ2FpbmVkIHdhcyBmb3Igc3BvdHRpbmcgZGlzcGxheSBvYmpl Y3RzIGluc2lkZQo+ID4gR0VNIGFuZCB3b3JraW5nIGhhcmRlciB0byBrZWVwIHRob3NlIGNvaGVy ZW50OyBmb3Igd2hpY2ggd2UgY2FuIGFnYWluCj4gPiBzaW1wbHkgaW5zcGVjdCBvYmotPmZyb250 YnVmZmVyIGRpcmVjdGx5Lgo+ID4gCj4gPiBDb21pbmcgdXAgbmV4dCwgd2Ugd2lsbCB3YW50IHRv IG1hbmlwdWxhdGUgdGhlIHBpbl9nbG9iYWwgY291bnRlcgo+ID4gb3V0c2lkZSBvZiB0aGUgcHJp bmNpcGxlIGxvY2tzLCBzbyB3b3VsZCBuZWVkIHRvIG1ha2UgcGluX2dsb2JhbCBhdG9taWMuCj4g PiBIb3dldmVyLCBzaW5jZSBvYmotPmZyb250YnVmZmVyIGlzIGFscmVhZHkgbWFuYWdlZCBhdG9t aWNhbGx5LCBpdCBtYWtlcwo+ID4gc2Vuc2UgdG8gdXNlIHRoYXQgdGhlIHByaW1hcnkga2V5IGZv ciBkaXNwbGF5IG9iamVjdHMgaW5zdGVhZCBvZiBoYXZpbmcKPiA+IHBpbl9nbG9iYWwuCj4gCj4g VGhlIGRpZmZlcmVuY2UgYmVpbmcgdGhhdCBwaW5fZ2xvYmFsIHdhcyBvbmx5IGluY3JlbWVudGVk IHdoaWxlIGFjdGl2ZQo+IHNjYW5vdXQgd2FzIGhhcHBlbmluZywgYnV0IG9iai0+ZnJvbnRidWZm ZXIgc2ltcGx5IGluZGljYXRlcyB0aGF0IHRoZQo+IG9iaiBpcyBhdHRhY2hlZCB0byBhdCBsZWFz dCBvbmUgZnJhbWVidWZmZXIgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0J3MKPiBldmVyIHNjYW5u ZWQgb3V0IG9yIG5vdC4KCmNwdV93cml0ZV9uZWVkc19jbGZsdXNoKCkgaXMgdGhlIG1haW4gY3Vs cHJpdCB0aGVyZSwKIGk5MTVfZ2VtX3B3cml0ZV9pb2N0bAogaTkxNV9nZW1fc2V0X2RvbWFpbl9p b2N0bChDUFUsIENQVSkKd2hpY2ggSSBob3BlIHdlIHRydWx5IGRvIG5vdCBoYXZlIHRvIHdvcnJ5 IGFib3V0IGFyZSBiZWluZyBoZWF2aWx5IHVzZWQKb24gZnJhbWVidWZmZXIgb2JqZWN0cy4KCmZs dXNoX2lmX2Rpc3BsYXkoKSBpcyBvbmx5IHVzZWQgb24gZnJhbWVidWZmZXIgb2JqZWN0cwogaW50 ZWxfdXNlcl9mcmFtZWJ1ZmZlcl9kaXJ0eSAoRElSVFlGQl9JT0NUTCkKIGk5MTVfZ2VtX3N3X2Zp bmlzaF9pb2N0bCAod2hpY2ggc2hvdWxkIG5vdCBiZSB1c2VkISkKYW5kIHRoZW4gdGhleSBvbmx5 IGFjdHVhbGx5IGRvIGFueXRoaW5nIGlmIHRoZSBDUFUgY2FjaGUgaXMgZGlydHkgZnJvbQplaXRo ZXIgb2YgdGhlIGFib3ZlIGlvY3RscyBvciBzZXQtY2FjaGUtbGV2ZWwsIG9yIGFmdGVyIHJlbmRl cmluZyB3aXRoCkVYRUNfT0JKRUNUX1dSSVRFIGludG8gYW4gTExDIG9iamVjdC4KCj4gPiBTaWdu ZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPiA+IENj OiBNaWthIEt1b3BwYWxhIDxtaWthLmt1b3BwYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+IC0tLQo+ ID4gIC4uLi9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9mcm9udGJ1ZmZlci5jICB8IDEzICsr KysrLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fZG9tYWluLmMgICAg fCAzNCArKysrKystLS0tLS0tLS0tLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5 MTVfZ2VtX29iamVjdC5oICAgIHwgIDMgKy0KPiA+ICAuLi4vZ3B1L2RybS9pOTE1L2dlbS9pOTE1 X2dlbV9vYmplY3RfdHlwZXMuaCAgfCAgMiAtLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dl bS9pOTE1X2dlbV9zaHJpbmtlci5jICB8IDE1ICsrKy0tLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgICAgICAgICAgIHwgMTIgKystLS0tLQo+ID4gIDYgZmlsZXMg Y2hhbmdlZCwgMjkgaW5zZXJ0aW9ucygrKSwgNTAgZGVsZXRpb25zKC0pCj4gPiAKPiA+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Zyb250YnVmZmVyLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Zyb250YnVmZmVyLmMKPiA+IGlu ZGV4IDcxOTM3OTc3NGZhNS4uNDMwNDdiNjc2YjdiIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9mcm9udGJ1ZmZlci5jCj4gPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Zyb250YnVmZmVyLmMKPiA+IEBAIC0yMjAsMTEg KzIyMCwxOCBAQCBzdGF0aWMgdm9pZCBmcm9udGJ1ZmZlcl9yZWxlYXNlKHN0cnVjdCBrcmVmICpy ZWYpCj4gPiAgewo+ID4gICAgICAgc3RydWN0IGludGVsX2Zyb250YnVmZmVyICpmcm9udCA9Cj4g PiAgICAgICAgICAgICAgIGNvbnRhaW5lcl9vZihyZWYsIHR5cGVvZigqZnJvbnQpLCByZWYpOwo+ ID4gKyAgICAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IGZyb250LT5vYmo7Cj4g PiArICAgICBzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKPiA+ICAKPiA+IC0gICAgIGZyb250LT5vYmot PmZyb250YnVmZmVyID0gTlVMTDsKPiA+IC0gICAgIHNwaW5fdW5sb2NrKCZ0b19pOTE1KGZyb250 LT5vYmotPmJhc2UuZGV2KS0+ZmJfdHJhY2tpbmcubG9jayk7Cj4gPiArICAgICBzcGluX2xvY2so Jm9iai0+dm1hLmxvY2spOwo+ID4gKyAgICAgZm9yX2VhY2hfZ2d0dF92bWEodm1hLCBvYmopCj4g PiArICAgICAgICAgICAgIHZtYS0+ZGlzcGxheV9hbGlnbm1lbnQgPSBJOTE1X0dUVF9QQUdFX1NJ WkU7Cj4gPiArICAgICBzcGluX3VubG9jaygmb2JqLT52bWEubG9jayk7Cj4gPiAgCj4gPiAtICAg ICBpOTE1X2dlbV9vYmplY3RfcHV0KGZyb250LT5vYmopOwo+ID4gKyAgICAgb2JqLT5mcm9udGJ1 ZmZlciA9IE5VTEw7Cj4gPiArICAgICBzcGluX3VubG9jaygmdG9faTkxNShvYmotPmJhc2UuZGV2 KS0+ZmJfdHJhY2tpbmcubG9jayk7Cj4gPiArCj4gPiArICAgICBpOTE1X2dlbV9vYmplY3RfcHV0 KG9iaik7Cj4gPiAgICAgICBrZnJlZShmcm9udCk7Cj4gPiAgfQo+ID4gIAo+ID4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9kb21haW4uYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9kb21haW4uYwo+ID4gaW5kZXggOWM1OGU4ZmFjMWQ5 Li4wMzQxYjNkYTkzMGEgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0v aTkxNV9nZW1fZG9tYWluLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1 X2dlbV9kb21haW4uYwo+ID4gQEAgLTI3LDcgKzI3LDcgQEAgc3RhdGljIHZvaWQgX19pOTE1X2dl bV9vYmplY3RfZmx1c2hfZm9yX2Rpc3BsYXkoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9i aikKPiA+ICAKPiA+ICB2b2lkIGk5MTVfZ2VtX29iamVjdF9mbHVzaF9pZl9kaXNwbGF5KHN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCj4gPiAgewo+ID4gLSAgICAgaWYgKCFSRUFEX09O Q0Uob2JqLT5waW5fZ2xvYmFsKSkKPiA+ICsgICAgIGlmICghUkVBRF9PTkNFKG9iai0+ZnJvbnRi dWZmZXIpKQo+ID4gICAgICAgICAgICAgICByZXR1cm47Cj4gCj4gU28gd2UgbWF5YmUgZ2V0IGEg ZmV3IG1vcmUgZmx1c2hlcyBub3c/CgpMb29raW5nIGF0IHRoZSBjYWxsIHBhdGhzLCBhIGZldywg YnV0IHJlYWxpc3RpY2FsbHkgb25seSBvbiBwYXRocyB0aGF0CndvdWxkIGFscmVhZHkgYmUgZmx1 c2hpbmcgdGhlaXIgZnJhbWVidWZmZXIgb2JqZWN0cy4KCj4gPiAgICAgICBpOTE1X2dlbV9vYmpl Y3RfbG9jayhvYmopOwo+ID4gQEAgLTQyMiwxMiArNDIyLDggQEAgaTkxNV9nZW1fb2JqZWN0X3Bp bl90b19kaXNwbGF5X3BsYW5lKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gPiAg Cj4gPiAgICAgICBhc3NlcnRfb2JqZWN0X2hlbGQob2JqKTsKPiA+ICAKPiA+IC0gICAgIC8qIE1h cmsgdGhlIGdsb2JhbCBwaW4gZWFybHkgc28gdGhhdCB3ZSBhY2NvdW50IGZvciB0aGUKPiA+IC0g ICAgICAqIGRpc3BsYXkgY29oZXJlbmN5IHdoaWxzdCBzZXR0aW5nIHVwIHRoZSBjYWNoZSBkb21h aW5zLgo+ID4gLSAgICAgICovCj4gPiAtICAgICBvYmotPnBpbl9nbG9iYWwrKzsKPiA+IC0KPiA+ IC0gICAgIC8qIFRoZSBkaXNwbGF5IGVuZ2luZSBpcyBub3QgY29oZXJlbnQgd2l0aCB0aGUgTExD IGNhY2hlIG9uIGdlbjYuICBBcwo+ID4gKyAgICAgLyoKPiA+ICsgICAgICAqIFRoZSBkaXNwbGF5 IGVuZ2luZSBpcyBub3QgY29oZXJlbnQgd2l0aCB0aGUgTExDIGNhY2hlIG9uIGdlbjYuICBBcwo+ ID4gICAgICAgICogYSByZXN1bHQsIHdlIG1ha2Ugc3VyZSB0aGF0IHRoZSBwaW5uaW5nIHRoYXQg aXMgYWJvdXQgdG8gb2NjdXIgaXMKPiA+ICAgICAgICAqIGRvbmUgd2l0aCB1bmNhY2hlZCBQVEVz LiBUaGlzIGlzIGxvd2VzdCBjb21tb24gZGVub21pbmF0b3IgZm9yIGFsbAo+ID4gICAgICAgICog Y2hpcHNldHMuCj4gPiBAQCAtNDM5LDEyICs0MzUsMTEgQEAgaTkxNV9nZW1fb2JqZWN0X3Bpbl90 b19kaXNwbGF5X3BsYW5lKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gPiAgICAg ICByZXQgPSBpOTE1X2dlbV9vYmplY3Rfc2V0X2NhY2hlX2xldmVsKG9iaiwKPiA+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSEFTX1dUKHRvX2k5MTUob2JqLT5i YXNlLmRldikpID8KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSTkxNV9DQUNIRV9XVCA6IEk5MTVfQ0FDSEVfTk9ORSk7Cj4gPiAtICAgICBpZiAocmV0KSB7 Cj4gPiAtICAgICAgICAgICAgIHZtYSA9IEVSUl9QVFIocmV0KTsKPiA+IC0gICAgICAgICAgICAg Z290byBlcnJfdW5waW5fZ2xvYmFsOwo+ID4gLSAgICAgfQo+ID4gKyAgICAgaWYgKHJldCkKPiA+ ICsgICAgICAgICAgICAgcmV0dXJuIEVSUl9QVFIocmV0KTsKPiA+ICAKPiA+IC0gICAgIC8qIEFz IHRoZSB1c2VyIG1heSBtYXAgdGhlIGJ1ZmZlciBvbmNlIHBpbm5lZCBpbiB0aGUgZGlzcGxheSBw bGFuZQo+ID4gKyAgICAgLyoKPiA+ICsgICAgICAqIEFzIHRoZSB1c2VyIG1heSBtYXAgdGhlIGJ1 ZmZlciBvbmNlIHBpbm5lZCBpbiB0aGUgZGlzcGxheSBwbGFuZQo+ID4gICAgICAgICogKGUuZy4g bGlia21zIGZvciB0aGUgYm9vdHVwIHNwbGFzaCksIHdlIGhhdmUgdG8gZW5zdXJlIHRoYXQgd2UK PiA+ICAgICAgICAqIGFsd2F5cyB1c2UgbWFwX2FuZF9mZW5jZWFibGUgZm9yIGFsbCBzY2Fub3V0 IGJ1ZmZlcnMuIEhvd2V2ZXIsCj4gPiAgICAgICAgKiBpdCBtYXkgc2ltcGx5IGJlIHRvbyBiaWcg dG8gZml0IGludG8gbWFwcGFibGUsIGluIHdoaWNoIGNhc2UKPiA+IEBAIC00NjEsMjIgKzQ1Niwx OSBAQCBpOTE1X2dlbV9vYmplY3RfcGluX3RvX2Rpc3BsYXlfcGxhbmUoc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iaiwKPiA+ICAgICAgIGlmIChJU19FUlIodm1hKSkKPiA+ICAgICAgICAg ICAgICAgdm1hID0gaTkxNV9nZW1fb2JqZWN0X2dndHRfcGluKG9iaiwgdmlldywgMCwgYWxpZ25t ZW50LCBmbGFncyk7Cj4gPiAgICAgICBpZiAoSVNfRVJSKHZtYSkpCj4gPiAtICAgICAgICAgICAg IGdvdG8gZXJyX3VucGluX2dsb2JhbDsKPiA+ICsgICAgICAgICAgICAgcmV0dXJuIHZtYTsKPiA+ ICAKPiA+ICAgICAgIHZtYS0+ZGlzcGxheV9hbGlnbm1lbnQgPSBtYXhfdCh1NjQsIHZtYS0+ZGlz cGxheV9hbGlnbm1lbnQsIGFsaWdubWVudCk7Cj4gPiAgCj4gPiAgICAgICBfX2k5MTVfZ2VtX29i amVjdF9mbHVzaF9mb3JfZGlzcGxheShvYmopOwo+ID4gIAo+ID4gLSAgICAgLyogSXQgc2hvdWxk IG5vdyBiZSBvdXQgb2YgYW55IG90aGVyIHdyaXRlIGRvbWFpbnMsIGFuZCB3ZSBjYW4gdXBkYXRl Cj4gPiArICAgICAvKgo+ID4gKyAgICAgICogSXQgc2hvdWxkIG5vdyBiZSBvdXQgb2YgYW55IG90 aGVyIHdyaXRlIGRvbWFpbnMsIGFuZCB3ZSBjYW4gdXBkYXRlCj4gPiAgICAgICAgKiB0aGUgZG9t YWluIHZhbHVlcyBmb3Igb3VyIGNoYW5nZXMuCj4gPiAgICAgICAgKi8KPiA+ICAgICAgIG9iai0+ cmVhZF9kb21haW5zIHw9IEk5MTVfR0VNX0RPTUFJTl9HVFQ7Cj4gPiAgCj4gPiAgICAgICByZXR1 cm4gdm1hOwo+ID4gLQo+ID4gLWVycl91bnBpbl9nbG9iYWw6Cj4gPiAtICAgICBvYmotPnBpbl9n bG9iYWwtLTsKPiA+IC0gICAgIHJldHVybiB2bWE7Cj4gPiAgfQo+ID4gIAo+ID4gIHN0YXRpYyB2 b2lkIGk5MTVfZ2VtX29iamVjdF9idW1wX2luYWN0aXZlX2dndHQoc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKm9iaikKPiA+IEBAIC01MTQsMTIgKzUwNiw2IEBAIGk5MTVfZ2VtX29iamVjdF91 bnBpbl9mcm9tX2Rpc3BsYXlfcGxhbmUoc3RydWN0IGk5MTVfdm1hICp2bWEpCj4gPiAgCj4gPiAg ICAgICBhc3NlcnRfb2JqZWN0X2hlbGQob2JqKTsKPiA+ICAKPiA+IC0gICAgIGlmIChXQVJOX09O KG9iai0+cGluX2dsb2JhbCA9PSAwKSkKPiA+IC0gICAgICAgICAgICAgcmV0dXJuOwo+ID4gLQo+ ID4gLSAgICAgaWYgKC0tb2JqLT5waW5fZ2xvYmFsID09IDApCj4gPiAtICAgICAgICAgICAgIHZt YS0+ZGlzcGxheV9hbGlnbm1lbnQgPSBJOTE1X0dUVF9NSU5fQUxJR05NRU5UOwo+ID4gLQo+ID4g ICAgICAgLyogQnVtcCB0aGUgTFJVIHRvIHRyeSBhbmQgYXZvaWQgcHJlbWF0dXJlIGV2aWN0aW9u IHdoaWxzdCBmbGlwcGluZyAgKi8KPiA+ICAgICAgIGk5MTVfZ2VtX29iamVjdF9idW1wX2luYWN0 aXZlX2dndHQob2JqKTsKPiA+ICAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9nZW0vaTkxNV9nZW1fb2JqZWN0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9n ZW1fb2JqZWN0LmgKPiA+IGluZGV4IDVlZmI5OTM2ZTA1Yi4uZDYwMDVjYWQ5ZDVjIDEwMDY0NAo+ ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5oCj4gPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0LmgKPiA+IEBAIC00 MDYsNyArNDA2LDggQEAgc3RhdGljIGlubGluZSBib29sIGNwdV93cml0ZV9uZWVkc19jbGZsdXNo KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCj4gPiAgICAgICBpZiAoIShvYmotPmNh Y2hlX2NvaGVyZW50ICYgSTkxNV9CT19DQUNIRV9DT0hFUkVOVF9GT1JfV1JJVEUpKQo+ID4gICAg ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKPiA+ICAKPiA+IC0gICAgIHJldHVybiBvYmotPnBpbl9n bG9iYWw7IC8qIGN1cnJlbnRseSBpbiB1c2UgYnkgSFcsIGtlZXAgZmx1c2hlZCAqLwo+ID4gKyAg ICAgLyogQ3VycmVudGx5IGluIHVzZSBieSBIVyAoZGlzcGxheSBlbmdpbmUpPyBLZWVwIGZsdXNo ZWQuICovCj4gPiArICAgICByZXR1cm4gUkVBRF9PTkNFKG9iai0+ZnJvbnRidWZmZXIpOwo+ID4g IH0KPiA+ICAKPiA+ICBzdGF0aWMgaW5saW5lIHZvaWQgX19zdGFydF9jcHVfd3JpdGUoc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0X3R5cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9nZW0vaTkxNV9nZW1fb2JqZWN0X3R5cGVzLmgKPiA+IGluZGV4IGVkZTBlYjQyMThhOC4uMTNi OWRjMGUxYTg5IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVf Z2VtX29iamVjdF90eXBlcy5oCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkx NV9nZW1fb2JqZWN0X3R5cGVzLmgKPiA+IEBAIC0xNTIsOCArMTUyLDYgQEAgc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3Qgewo+ID4gIAo+ID4gICAgICAgLyoqIENvdW50IG9mIFZNQSBhY3R1YWxs eSBib3VuZCBieSB0aGlzIG9iamVjdCAqLwo+ID4gICAgICAgYXRvbWljX3QgYmluZF9jb3VudDsK PiA+IC0gICAgIC8qKiBDb3VudCBvZiBob3cgbWFueSBnbG9iYWwgVk1BIGFyZSBjdXJyZW50bHkg cGlubmVkIGZvciB1c2UgYnkgSFcgKi8KPiA+IC0gICAgIHVuc2lnbmVkIGludCBwaW5fZ2xvYmFs Owo+ID4gIAo+ID4gICAgICAgc3RydWN0IHsKPiA+ICAgICAgICAgICAgICAgc3RydWN0IG11dGV4 IGxvY2s7IC8qIHByb3RlY3RzIHRoZSBwYWdlcyBhbmQgdGhlaXIgdXNlICovCj4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3Nocmlua2VyLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fc2hyaW5rZXIuYwo+ID4gaW5kZXggZWRkMjFk MTRlNjRmLi40ZTU1Y2ZjMmIwZGMgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9nZW0vaTkxNV9nZW1fc2hyaW5rZXIuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z2VtL2k5MTVfZ2VtX3Nocmlua2VyLmMKPiA+IEBAIC02MSw3ICs2MSw4IEBAIHN0YXRpYyBib29s IGNhbl9yZWxlYXNlX3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCj4gPiAg ICAgICBpZiAoIWk5MTVfZ2VtX29iamVjdF9pc19zaHJpbmthYmxlKG9iaikpCj4gPiAgICAgICAg ICAgICAgIHJldHVybiBmYWxzZTsKPiA+ICAKPiA+IC0gICAgIC8qIE9ubHkgcmVwb3J0IHRydWUg aWYgYnkgdW5iaW5kaW5nIHRoZSBvYmplY3QgYW5kIHB1dHRpbmcgaXRzIHBhZ2VzCj4gPiArICAg ICAvKgo+ID4gKyAgICAgICogT25seSByZXBvcnQgdHJ1ZSBpZiBieSB1bmJpbmRpbmcgdGhlIG9i amVjdCBhbmQgcHV0dGluZyBpdHMgcGFnZXMKPiA+ICAgICAgICAqIHdlIGNhbiBhY3R1YWxseSBt YWtlIGZvcndhcmQgcHJvZ3Jlc3MgdG93YXJkcyBmcmVlaW5nIHBoeXNpY2FsCj4gPiAgICAgICAg KiBwYWdlcy4KPiA+ICAgICAgICAqCj4gPiBAQCAtNzIsMTYgKzczLDggQEAgc3RhdGljIGJvb2wg Y2FuX3JlbGVhc2VfcGFnZXMoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKPiA+ICAg ICAgIGlmIChhdG9taWNfcmVhZCgmb2JqLT5tbS5wYWdlc19waW5fY291bnQpID4gYXRvbWljX3Jl YWQoJm9iai0+YmluZF9jb3VudCkpCj4gPiAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKPiA+ ICAKPiA+IC0gICAgIC8qIElmIGFueSB2bWEgYXJlICJwZXJtYW5lbnRseSIgcGlubmVkLCBpdCB3 aWxsIHByZXZlbnQgdXMgZnJvbQo+ID4gLSAgICAgICogcmVjbGFpbWluZyB0aGUgb2JqLT5tbS5w YWdlcy4gV2Ugb25seSBhbGxvdyBzY2Fub3V0IG9iamVjdHMgdG8gY2xhaW0KPiA+IC0gICAgICAq IGEgcGVybWFuZW50IHBpbiwgYWxvbmcgd2l0aCBhIGZldyBvdGhlcnMgbGlrZSB0aGUgY29udGV4 dCBvYmplY3RzLgo+ID4gLSAgICAgICogVG8gc2ltcGxpZnkgdGhlIHNjYW4sIGFuZCB0byBhdm9p ZCB3YWxraW5nIHRoZSBsaXN0IG9mIHZtYSB1bmRlciB0aGUKPiA+IC0gICAgICAqIG9iamVjdCwg d2UganVzdCBjaGVjayB0aGUgY291bnQgb2YgaXRzIHBlcm1hbmVudGx5IHBpbm5lZC4KPiA+IC0g ICAgICAqLwo+ID4gLSAgICAgaWYgKFJFQURfT05DRShvYmotPnBpbl9nbG9iYWwpKQo+ID4gLSAg ICAgICAgICAgICByZXR1cm4gZmFsc2U7Cj4gCj4gQXJlIHdlIGdpdmluZyB0aGUgc2hyaW5rZXIg ZmFsc2UgaG9wZSBoZXJlIHdoZW4gaXQgY29tZXMgdG8gdGhlIGFjdHVhbAo+IGZyb250YnVmZmVy PwoKT25seSB1bmRlciBkdXJlc3MsIGFzIHdlIGhhdmUKCmlmICghKHNocmluayAmIEk5MTVfU0hS SU5LX0FDVElWRSkgJiYKICAgICAgaTkxNV9nZW1fb2JqZWN0X2lzX2ZyYW1lYnVmZmVyKG9iaikp Cgljb250aW51ZTsKCmFuZCBzbyBkb24ndCB0cnkgYW55IGZyYW1lYnVmZmVycyB1bnRpbCBrc3dh cGQgb3Igb29tLgoKPiA+IC0gICAgIC8qIFdlIGNhbiBvbmx5IHJldHVybiBwaHlzaWNhbCBwYWdl cyB0byB0aGUgc3lzdGVtIGlmIHdlIGNhbiBlaXRoZXIKPiA+ICsgICAgIC8qCj4gPiArICAgICAg KiBXZSBjYW4gb25seSByZXR1cm4gcGh5c2ljYWwgcGFnZXMgdG8gdGhlIHN5c3RlbSBpZiB3ZSBj YW4gZWl0aGVyCj4gPiAgICAgICAgKiBkaXNjYXJkIHRoZSBjb250ZW50cyAoYmVjYXVzZSB0aGUg dXNlciBoYXMgbWFya2VkIHRoZW0gYXMgYmVpbmcKPiA+ICAgICAgICAqIHB1cmdlYWJsZSkgb3Ig aWYgd2UgY2FuIG1vdmUgdGhlaXIgY29udGVudHMgb3V0IHRvIHN3YXAuCj4gPiAgICAgICAgKi8K PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gPiBpbmRleCBlMTAzZmNiYTY0MzUu LmI5MDM3MTg0NDY4OSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZGVidWdmcy5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+ ID4gQEAgLTc3LDExICs3Nyw2IEBAIHN0YXRpYyBpbnQgaTkxNV9jYXBhYmlsaXRpZXMoc3RydWN0 IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQo+ID4gICAgICAgcmV0dXJuIDA7Cj4gPiAgfQo+ID4g IAo+ID4gLXN0YXRpYyBjaGFyIGdldF9waW5fZmxhZyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqKQo+ID4gLXsKPiA+IC0gICAgIHJldHVybiBvYmotPnBpbl9nbG9iYWwgPyAncCcgOiAn ICc7Cj4gPiAtfQo+ID4gLQo+ID4gIHN0YXRpYyBjaGFyIGdldF90aWxpbmdfZmxhZyhzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQo+ID4gIHsKPiA+ICAgICAgIHN3aXRjaCAoaTkxNV9n ZW1fb2JqZWN0X2dldF90aWxpbmcob2JqKSkgewo+ID4gQEAgLTE0MCw5ICsxMzUsOCBAQCBkZXNj cmliZV9vYmooc3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqKQo+ID4gICAgICAgc3RydWN0IGk5MTVfdm1hICp2bWE7Cj4gPiAgICAgICBpbnQgcGluX2Nv dW50ID0gMDsKPiA+ICAKPiA+IC0gICAgIHNlcV9wcmludGYobSwgIiVwSzogJWMlYyVjJWMgJTh6 ZEtpQiAlMDJ4ICUwMnggJXMlcyVzIiwKPiA+ICsgICAgIHNlcV9wcmludGYobSwgIiVwSzogJWMl YyVjICU4emRLaUIgJTAyeCAlMDJ4ICVzJXMlcyIsCj4gPiAgICAgICAgICAgICAgICAgICZvYmot PmJhc2UsCj4gPiAtICAgICAgICAgICAgICAgIGdldF9waW5fZmxhZyhvYmopLAo+ID4gICAgICAg ICAgICAgICAgICBnZXRfdGlsaW5nX2ZsYWcob2JqKSwKPiA+ICAgICAgICAgICAgICAgICAgZ2V0 X2dsb2JhbF9mbGFnKG9iaiksCj4gPiAgICAgICAgICAgICAgICAgIGdldF9waW5fbWFwcGVkX2Zs YWcob2JqKSwKPiA+IEBAIC0yMjEsOCArMjE1LDggQEAgZGVzY3JpYmVfb2JqKHN0cnVjdCBzZXFf ZmlsZSAqbSwgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKPiA+ICAgICAgIHNlcV9w cmludGYobSwgIiAocGlubmVkIHggJWQpIiwgcGluX2NvdW50KTsKPiA+ICAgICAgIGlmIChvYmot PnN0b2xlbikKPiA+ICAgICAgICAgICAgICAgc2VxX3ByaW50ZihtLCAiIChzdG9sZW46ICUwOGxs eCkiLCBvYmotPnN0b2xlbi0+c3RhcnQpOwo+ID4gLSAgICAgaWYgKG9iai0+cGluX2dsb2JhbCkK PiA+IC0gICAgICAgICAgICAgc2VxX3ByaW50ZihtLCAiIChnbG9iYWwpIik7Cj4gPiArICAgICBp ZiAoUkVBRF9PTkNFKG9iai0+ZnJvbnRidWZmZXIpKQo+ID4gKyAgICAgICAgICAgICBzZXFfcHJp bnRmKG0sICIgKGZyb250KSIpOwo+IAo+IEEgYml0IGNvbmZ1c2luZyB0byBzYXkgaXQncyAiZnJv bnQiIHdoZW4gaW4gZmFjdCBpdCBjYW4gYmUgYW55IHJhbmRvbSBiYWNrYnVmZmVyLgo+IE1heWJl IHNob3VsZCBiZSBqdXN0ICJmYiIgb3Igc29tZXRoaW5nPwoKSGF2aW5nIGp1c3Qgc3BvdHRlZCB3 ZSBhbHJlYWR5IGhhdmUgaTkxNV9nZW1fb2JqZWN0X2lzX2ZyYW1lYnVmZmVyKCksIGZiCmlzIGNv bnNpc3RlbnQuCi1DaHJpcwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZng=