From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zanoni, Paulo R" Subject: Re: [PATCH v6 3/8] drm/i915: Kill off intel_crtc->atomic.wait_vblank, v6. Date: Wed, 24 Feb 2016 14:50:22 +0000 Message-ID: <1456325420.2570.52.camel@intel.com> References: <1455108583-29227-1-git-send-email-maarten.lankhorst@linux.intel.com> <1455108583-29227-4-git-send-email-maarten.lankhorst@linux.intel.com> <1455744008.2576.41.camel@intel.com> <56C5C5AC.8080906@linux.intel.com> <1455804871.2576.51.camel@intel.com> <56C5D92A.6060403@linux.intel.com> <1455814972.2576.57.camel@intel.com> <56CD84DA.5030507@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 37A3B6E7CA for ; Wed, 24 Feb 2016 16:34:02 +0000 (UTC) In-Reply-To: <56CD84DA.5030507@linux.intel.com> Content-Language: en-US Content-ID: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "intel-gfx@lists.freedesktop.org" , "maarten.lankhorst@linux.intel.com" List-Id: intel-gfx@lists.freedesktop.org RW0gUXVhLCAyMDE2LTAyLTI0IMOgcyAxMToyNCArMDEwMCwgTWFhcnRlbiBMYW5raG9yc3QgZXNj cmV2ZXU6DQo+IEN1cnJlbnRseSB3ZSBwZXJmb3JtIG91ciBvd24gd2FpdCBpbiBwb3N0X3BsYW5l X3VwZGF0ZSwNCj4gYnV0IHRoZSBhdG9taWMgY29yZSBwZXJmb3JtcyBhbm90aGVyIG9uZSBpbiB3 YWl0X2Zvcl92YmxhbmtzLg0KPiBUaGlzIG1lYW5zIHRoYXQgMiB2YmxhbmtzIGFyZSBkb25lIHdo ZW4gYSBmYiBpcyBjaGFuZ2VkLA0KPiB3aGljaCBpcyBhIGJpdCBvdmVya2lsbC4NCj4gDQo+IE1l cmdlIHRoZW0gYnkgY3JlYXRpbmcgYSBoZWxwZXIgZnVuY3Rpb24gdGhhdCB0YWtlcyBhIGNydGMg bWFzaw0KPiBmb3IgdGhlIHBsYW5lcyB0byB3YWl0IG9uLg0KPiANCj4gVGhlIGJyb2Fkd2VsbCB2 Ymxhbmsgd29ya2Fyb3VuZCBtYXkgbG9vayBnb25lIGVudGlyZWx5IGJ1dCB0aGlzIGlzDQo+IG5v dCB0aGUgY2FzZS4gcGlwZV9jb25maWctPndtX2NoYW5nZWQgaXMgc2V0IHRvIHRydWUNCj4gd2hl biBhbnkgcGxhbmUgaXMgdHVybmVkIG9uLCB3aGljaCBmb3JjZXMgYSB2Ymxhbmsgd2FpdC4NCj4g DQo+IENoYW5nZXMgc2luY2UgdjE6DQo+IC0gUmVtb3ZpbmcgdGhlIGRvdWJsZSB2Ymxhbmsgd2Fp dCBvbiBicm9hZHdlbGwgbW92ZWQgdG8gaXRzIG93bg0KPiBjb21taXQuDQo+IENoYW5nZXMgc2lu Y2UgdjI6DQo+IC0gTW92ZSBvdXQgUE9XRVJfRE9NQUlOX01PREVTRVQgaGFuZGxpbmcgdG8gaXRz IG93biBjb21taXQuDQo+IENoYW5nZXMgc2luY2UgdjM6DQo+IC0gRG8gbm90IHdhaXQgZm9yIHZi bGFuayBvbiBsZWdhY3kgY3Vyc29yIHVwZGF0ZXMuIChWaWxsZSkNCj4gLSBNb3ZlIGJyb2Fkd2Vs bCB2Ymxhbmsgd29ya2Fyb3VuZCBjb21tZW50IHRvIHBhZ2VfZmxpcF9maW5pc2hlZC4NCj4gKFZp bGxlKQ0KPiBDaGFuZ2VzIHNpbmNlIHY0Og0KPiAtIENvbXBpbGUgZml4LCBsZWdhY3lfY3Vyc29y X2ZsaXAgLT4gKl91cGRhdGUuDQo+IENoYW5nZXMgc2luY2UgdjU6DQo+IC0gS2lsbCBicmFja2V0 cy4NCj4gLSBBZGQgV0FSTl9PTiB3aGVuIHdhaXRfZm9yX3ZibGFua3MgZmFpbHMuDQo+IC0gUmVt b3ZlIGV4dHJhIG5ld2xpbmVzLg0KPiAtIFNwbGl0IHRoZSBjaGVja3Mgd2hldGhlciB2Ymxhbmsg aXMgbmVlZGVkIHRvIGEgc2VwYXJhdGUgZnVuY3Rpb24sDQo+IMKgIHdpdGggY29tbWVudHMgd2h5 IGEgdmJsYW5rIGlzIG5lZWRlZC4NCj4gU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3Qg PG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4NCg0KUmV2aWV3ZWQtYnk6IFBhdWxv IFphbm9uaSA8cGF1bG8uci56YW5vbmlAaW50ZWwuY29tPg0KDQo+IC0tLQ0KPiB2NSB3YXMgc2tp cHBlZCwgcHJldmlvdXMgdmVyc2lvbiB3YXMgdjUgYmVjYXVzZSBpdCBoYWQgdGhlIGNvbXBpbGUN Cj4gZml4Lg0KPiANCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0 b21pYy5jDQo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMNCj4gaW5kZXgg NDYyNWY4YTliYTEyLi44ZTU3OWE4NTA1YWMgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2F0b21pYy5jDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2F0b21pYy5jDQo+IEBAIC05Nyw2ICs5Nyw3IEBAIGludGVsX2NydGNfZHVwbGljYXRlX3N0YXRl KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykNCj4gwqAJY3J0Y19zdGF0ZS0+ZGlzYWJsZV9scF93bSA9 IGZhbHNlOw0KPiDCoAljcnRjX3N0YXRlLT5kaXNhYmxlX2N4c3IgPSBmYWxzZTsNCj4gwqAJY3J0 Y19zdGF0ZS0+d21fY2hhbmdlZCA9IGZhbHNlOw0KPiArCWNydGNfc3RhdGUtPmZiX2NoYW5nZWQg PSBmYWxzZTsNCj4gwqANCj4gwqAJcmV0dXJuICZjcnRjX3N0YXRlLT5iYXNlOw0KPiDCoH0NCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYw0KPiBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYw0KPiBpbmRleCAyMTA3ZTMyNGNkOWUu LjlmMzJjYjBiZjk3OCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYw0K PiBAQCAtNDc5Miw5ICs0NzkyLDYgQEAgc3RhdGljIHZvaWQgaW50ZWxfcG9zdF9wbGFuZV91cGRh dGUoc3RydWN0DQo+IGludGVsX2NydGMgKmNydGMpDQo+IMKgCQl0b19pbnRlbF9jcnRjX3N0YXRl KGNydGMtPmJhc2Uuc3RhdGUpOw0KPiDCoAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ YmFzZS5kZXY7DQo+IMKgDQo+IC0JaWYgKGF0b21pYy0+d2FpdF92YmxhbmspDQo+IC0JCWludGVs X3dhaXRfZm9yX3ZibGFuayhkZXYsIGNydGMtPnBpcGUpOw0KPiAtDQo+IMKgCWludGVsX2Zyb250 YnVmZmVyX2ZsaXAoZGV2LCBhdG9taWMtPmZiX2JpdHMpOw0KPiDCoA0KPiDCoAljcnRjLT53bS5j eHNyX2FsbG93ZWQgPSB0cnVlOw0KPiBAQCAtMTA5NTcsNiArMTA5NTQsMTIgQEAgc3RhdGljIGJv b2wgcGFnZV9mbGlwX2ZpbmlzaGVkKHN0cnVjdA0KPiBpbnRlbF9jcnRjICpjcnRjKQ0KPiDCoAkJ cmV0dXJuIHRydWU7DQo+IMKgDQo+IMKgCS8qDQo+ICsJwqAqIEJEVyBzaWduYWxzIGZsaXAgZG9u ZSBpbW1lZGlhdGVseSBpZiB0aGUgcGxhbmUNCj4gKwnCoCogaXMgZGlzYWJsZWQsIGV2ZW4gaWYg dGhlIHBsYW5lIGVuYWJsZSBpcyBhbHJlYWR5DQo+ICsJwqAqIGFybWVkIHRvIG9jY3VyIGF0IHRo ZSBuZXh0IHZibGFuayA6KA0KPiArCcKgKi8NCj4gKw0KPiArCS8qDQo+IMKgCcKgKiBBIERTUFNV UkZMSVZFIGNoZWNrIGlzbid0IGVub3VnaCBpbiBjYXNlIHRoZSBtbWlvIGFuZCBDUw0KPiBmbGlw cw0KPiDCoAnCoCogdXNlZCB0aGUgc2FtZSBiYXNlIGFkZHJlc3MuIEluIHRoYXQgY2FzZSB0aGUg bW1pbyBmbGlwDQo+IG1pZ2h0DQo+IMKgCcKgKiBoYXZlIGNvbXBsZXRlZCwgYnV0IHRoZSBDUyBo YXNuJ3QgZXZlbiBleGVjdXRlZCB0aGUgZmxpcA0KPiB5ZXQuDQo+IEBAIC0xMTgzMyw2ICsxMTgz Niw5IEBAIGludCBpbnRlbF9wbGFuZV9hdG9taWNfY2FsY19jaGFuZ2VzKHN0cnVjdA0KPiBkcm1f Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwNCj4gwqAJaWYgKCF3YXNfdmlzaWJsZSAmJiAhdmlzaWJs ZSkNCj4gwqAJCXJldHVybiAwOw0KPiDCoA0KPiArCWlmIChmYiAhPSBvbGRfcGxhbmVfc3RhdGUt PmJhc2UuZmIpDQo+ICsJCXBpcGVfY29uZmlnLT5mYl9jaGFuZ2VkID0gdHJ1ZTsNCj4gKw0KPiDC oAl0dXJuX29mZiA9IHdhc192aXNpYmxlICYmICghdmlzaWJsZSB8fCBtb2RlX2NoYW5nZWQpOw0K PiDCoAl0dXJuX29uID0gdmlzaWJsZSAmJiAoIXdhc192aXNpYmxlIHx8IG1vZGVfY2hhbmdlZCk7 DQo+IMKgDQo+IEBAIC0xMTg0NywxMSArMTE4NTMsOCBAQCBpbnQgaW50ZWxfcGxhbmVfYXRvbWlj X2NhbGNfY2hhbmdlcyhzdHJ1Y3QNCj4gZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsDQo+IMKg CQlwaXBlX2NvbmZpZy0+d21fY2hhbmdlZCA9IHRydWU7DQo+IMKgDQo+IMKgCQkvKiBtdXN0IGRp c2FibGUgY3hzciBhcm91bmQgcGxhbmUgZW5hYmxlL2Rpc2FibGUgKi8NCj4gLQkJaWYgKHBsYW5l LT50eXBlICE9IERSTV9QTEFORV9UWVBFX0NVUlNPUikgew0KPiAtCQkJaWYgKGlzX2NydGNfZW5h YmxlZCkNCj4gLQkJCQlpbnRlbF9jcnRjLT5hdG9taWMud2FpdF92YmxhbmsgPQ0KPiB0cnVlOw0K PiArCQlpZiAocGxhbmUtPnR5cGUgIT0gRFJNX1BMQU5FX1RZUEVfQ1VSU09SKQ0KPiDCoAkJCXBp cGVfY29uZmlnLT5kaXNhYmxlX2N4c3IgPSB0cnVlOw0KPiAtCQl9DQo+IMKgCX0gZWxzZSBpZiAo aW50ZWxfd21fbmVlZF91cGRhdGUocGxhbmUsIHBsYW5lX3N0YXRlKSkgew0KPiDCoAkJcGlwZV9j b25maWctPndtX2NoYW5nZWQgPSB0cnVlOw0KPiDCoAl9DQo+IEBAIC0xMTg2NSwxNCArMTE4Njgs NiBAQCBpbnQgaW50ZWxfcGxhbmVfYXRvbWljX2NhbGNfY2hhbmdlcyhzdHJ1Y3QNCj4gZHJtX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUsDQo+IMKgCQlpbnRlbF9jcnRjLT5hdG9taWMucG9zdF9lbmFi bGVfcHJpbWFyeSA9IHR1cm5fb247DQo+IMKgCQlpbnRlbF9jcnRjLT5hdG9taWMudXBkYXRlX2Zi YyA9IHRydWU7DQo+IMKgDQo+IC0JCS8qDQo+IC0JCcKgKiBCRFcgc2lnbmFscyBmbGlwIGRvbmUg aW1tZWRpYXRlbHkgaWYgdGhlIHBsYW5lDQo+IC0JCcKgKiBpcyBkaXNhYmxlZCwgZXZlbiBpZiB0 aGUgcGxhbmUgZW5hYmxlIGlzIGFscmVhZHkNCj4gLQkJwqAqIGFybWVkIHRvIG9jY3VyIGF0IHRo ZSBuZXh0IHZibGFuayA6KA0KPiAtCQnCoCovDQo+IC0JCWlmICh0dXJuX29uICYmIElTX0JST0FE V0VMTChkZXYpKQ0KPiAtCQkJaW50ZWxfY3J0Yy0+YXRvbWljLndhaXRfdmJsYW5rID0gdHJ1ZTsN Cj4gLQ0KPiDCoAkJYnJlYWs7DQo+IMKgCWNhc2UgRFJNX1BMQU5FX1RZUEVfQ1VSU09SOg0KPiDC oAkJYnJlYWs7DQo+IEBAIC0xMTg4NSwxMyArMTE4ODAsMTEgQEAgaW50IGludGVsX3BsYW5lX2F0 b21pY19jYWxjX2NoYW5nZXMoc3RydWN0DQo+IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLA0K PiDCoAkJwqAqLw0KPiDCoAkJaWYgKElTX0lWWUJSSURHRShkZXYpICYmDQo+IMKgCQnCoMKgwqDC oG5lZWRzX3NjYWxpbmcodG9faW50ZWxfcGxhbmVfc3RhdGUocGxhbmVfc3RhdGUpKQ0KPiAmJg0K PiAtCQnCoMKgwqDCoCFuZWVkc19zY2FsaW5nKG9sZF9wbGFuZV9zdGF0ZSkpIHsNCj4gLQkJCXRv X2ludGVsX2NydGNfc3RhdGUoY3J0Y19zdGF0ZSktDQo+ID5kaXNhYmxlX2xwX3dtID0gdHJ1ZTsN Cj4gLQkJfSBlbHNlIGlmICh0dXJuX29mZiAmJiAhbW9kZV9jaGFuZ2VkKSB7DQo+IC0JCQlpbnRl bF9jcnRjLT5hdG9taWMud2FpdF92YmxhbmsgPSB0cnVlOw0KPiArCQnCoMKgwqDCoCFuZWVkc19z Y2FsaW5nKG9sZF9wbGFuZV9zdGF0ZSkpDQo+ICsJCQlwaXBlX2NvbmZpZy0+ZGlzYWJsZV9scF93 bSA9IHRydWU7DQo+ICsJCWVsc2UgaWYgKHR1cm5fb2ZmICYmICFtb2RlX2NoYW5nZWQpDQo+IMKg CQkJaW50ZWxfY3J0Yy0+YXRvbWljLnVwZGF0ZV9zcHJpdGVfd2F0ZXJtYXJrcw0KPiB8PQ0KPiDC oAkJCQkxIDw8IGk7DQo+IC0JCX0NCj4gwqANCj4gwqAJCWJyZWFrOw0KPiDCoAl9DQo+IEBAIC0x MzQyNSw2ICsxMzQxOCw3MSBAQCBzdGF0aWMgaW50DQo+IGludGVsX2F0b21pY19wcmVwYXJlX2Nv bW1pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LA0KPiDCoAlyZXR1cm4gcmV0Ow0KPiDCoH0NCj4g wqANCj4gK3N0YXRpYyB2b2lkIGludGVsX2F0b21pY193YWl0X2Zvcl92YmxhbmtzKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsDQo+ICsJCQkJCcKgwqBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZQ0KPiAq ZGV2X3ByaXYsDQo+ICsJCQkJCcKgwqB1bnNpZ25lZCBjcnRjX21hc2spDQo+ICt7DQo+ICsJdW5z aWduZWQgbGFzdF92YmxhbmtfY291bnRbSTkxNV9NQVhfUElQRVNdOw0KPiArCWVudW0gcGlwZSBw aXBlOw0KPiArCWludCByZXQ7DQo+ICsNCj4gKwlpZiAoIWNydGNfbWFzaykNCj4gKwkJcmV0dXJu Ow0KPiArDQo+ICsJZm9yX2VhY2hfcGlwZShkZXZfcHJpdiwgcGlwZSkgew0KPiArCQlzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMgPSBkZXZfcHJpdi0NCj4gPnBpcGVfdG9fY3J0Y19tYXBwaW5nW3BpcGVd Ow0KPiArDQo+ICsJCWlmICghKCgxIDw8IHBpcGUpICYgY3J0Y19tYXNrKSkNCj4gKwkJCWNvbnRp bnVlOw0KPiArDQo+ICsJCXJldCA9IGRybV9jcnRjX3ZibGFua19nZXQoY3J0Yyk7DQo+ICsJCWlm IChXQVJOX09OKHJldCAhPSAwKSkgew0KPiArCQkJY3J0Y19tYXNrICY9IH4oMSA8PCBwaXBlKTsN Cj4gKwkJCWNvbnRpbnVlOw0KPiArCQl9DQo+ICsNCj4gKwkJbGFzdF92YmxhbmtfY291bnRbcGlw ZV0gPQ0KPiBkcm1fY3J0Y192YmxhbmtfY291bnQoY3J0Yyk7DQo+ICsJfQ0KPiArDQo+ICsJZm9y X2VhY2hfcGlwZShkZXZfcHJpdiwgcGlwZSkgew0KPiArCQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMg PSBkZXZfcHJpdi0NCj4gPnBpcGVfdG9fY3J0Y19tYXBwaW5nW3BpcGVdOw0KPiArCQlsb25nIGxy ZXQ7DQo+ICsNCj4gKwkJaWYgKCEoKDEgPDwgcGlwZSkgJiBjcnRjX21hc2spKQ0KPiArCQkJY29u dGludWU7DQo+ICsNCj4gKwkJbHJldCA9IHdhaXRfZXZlbnRfdGltZW91dChkZXYtPnZibGFua1tw aXBlXS5xdWV1ZSwNCj4gKwkJCQlsYXN0X3ZibGFua19jb3VudFtwaXBlXSAhPQ0KPiArCQkJCQlk cm1fY3J0Y192YmxhbmtfY291bnQoY3J0YyksDQo+ICsJCQkJbXNlY3NfdG9famlmZmllcyg1MCkp Ow0KPiArDQo+ICsJCVdBUk5fT04oIWxyZXQpOw0KPiArDQo+ICsJCWRybV9jcnRjX3ZibGFua19w dXQoY3J0Yyk7DQo+ICsJfQ0KPiArfQ0KPiArDQo+ICtzdGF0aWMgYm9vbCBuZWVkc192Ymxhbmtf d2FpdChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkNCj4gK3sNCj4gKwkvKiBm YiB1cGRhdGVkLCBuZWVkIHRvIHVucGluIG9sZCBmYiAqLw0KPiArCWlmIChjcnRjX3N0YXRlLT5m Yl9jaGFuZ2VkKQ0KPiArCQlyZXR1cm4gdHJ1ZTsNCj4gKw0KPiArCS8qIHdtIGNoYW5nZXMsIG5l ZWQgdmJsYW5rIGJlZm9yZSBmaW5hbCB3bSdzICovDQo+ICsJaWYgKGNydGNfc3RhdGUtPndtX2No YW5nZWQpDQo+ICsJCXJldHVybiB0cnVlOw0KPiArDQo+ICsJLyoNCj4gKwnCoCogY3hzciBpcyBy ZS1lbmFibGVkIGFmdGVyIHZibGFuay4NCj4gKwnCoCogVGhpcyBpcyBhbHJlYWR5IGhhbmRsZWQg YnkgY3J0Y19zdGF0ZS0+d21fY2hhbmdlZCwNCj4gKwnCoCogYnV0IGFkZGVkIGZvciBjbGFyaXR5 Lg0KPiArCcKgKi8NCj4gKwlpZiAoY3J0Y19zdGF0ZS0+ZGlzYWJsZV9jeHNyKQ0KPiArCQlyZXR1 cm4gdHJ1ZTsNCj4gKw0KPiArCXJldHVybiBmYWxzZTsNCj4gK30NCj4gKw0KPiDCoC8qKg0KPiDC oCAqIGludGVsX2F0b21pY19jb21taXQgLSBjb21taXQgdmFsaWRhdGVkIHN0YXRlIG9iamVjdA0K PiDCoCAqIEBkZXY6IERSTSBkZXZpY2UNCj4gQEAgLTEzNDUyLDYgKzEzNTEwLDcgQEAgc3RhdGlj IGludCBpbnRlbF9hdG9taWNfY29tbWl0KHN0cnVjdA0KPiBkcm1fZGV2aWNlICpkZXYsDQo+IMKg CWludCByZXQgPSAwLCBpOw0KPiDCoAlib29sIGh3X2NoZWNrID0gaW50ZWxfc3RhdGUtPm1vZGVz ZXQ7DQo+IMKgCXVuc2lnbmVkIGxvbmcgcHV0X2RvbWFpbnNbSTkxNV9NQVhfUElQRVNdID0ge307 DQo+ICsJdW5zaWduZWQgY3J0Y192YmxhbmtfbWFzayA9IDA7DQo+IMKgDQo+IMKgCXJldCA9IGlu dGVsX2F0b21pY19wcmVwYXJlX2NvbW1pdChkZXYsIHN0YXRlLCBhc3luYyk7DQo+IMKgCWlmIChy ZXQpIHsNCj4gQEAgLTEzNTI1LDggKzEzNTg0LDkgQEAgc3RhdGljIGludCBpbnRlbF9hdG9taWNf Y29tbWl0KHN0cnVjdA0KPiBkcm1fZGV2aWNlICpkZXYsDQo+IMKgCWZvcl9lYWNoX2NydGNfaW5f c3RhdGUoc3RhdGUsIGNydGMsIGNydGNfc3RhdGUsIGkpIHsNCj4gwqAJCXN0cnVjdCBpbnRlbF9j cnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsNCj4gwqAJCWJvb2wgbW9kZXNl dCA9IG5lZWRzX21vZGVzZXQoY3J0Yy0+c3RhdGUpOw0KPiAtCQlib29sIHVwZGF0ZV9waXBlID0g IW1vZGVzZXQgJiYNCj4gLQkJCXRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpLQ0KPiA+ dXBkYXRlX3BpcGU7DQo+ICsJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZyA9 DQo+ICsJCQl0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMtPnN0YXRlKTsNCj4gKwkJYm9vbCB1cGRh dGVfcGlwZSA9ICFtb2Rlc2V0ICYmIHBpcGVfY29uZmlnLQ0KPiA+dXBkYXRlX3BpcGU7DQo+IMKg DQo+IMKgCQlpZiAobW9kZXNldCAmJiBjcnRjLT5zdGF0ZS0+YWN0aXZlKSB7DQo+IMKgCQkJdXBk YXRlX3NjYW5saW5lX29mZnNldCh0b19pbnRlbF9jcnRjKGNydGMpKTsNCj4gQEAgLTEzNTQzLDE0 ICsxMzYwMywxOCBAQCBzdGF0aWMgaW50IGludGVsX2F0b21pY19jb21taXQoc3RydWN0DQo+IGRy bV9kZXZpY2UgKmRldiwNCj4gwqAJCcKgwqDCoMKgKGNydGMtPnN0YXRlLT5wbGFuZXNfY2hhbmdl ZCB8fCB1cGRhdGVfcGlwZSkpDQo+IMKgCQkJZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X3BsYW5l c19vbl9jcnRjKGNydGMNCj4gX3N0YXRlKTsNCj4gwqANCj4gLQkJaW50ZWxfcG9zdF9wbGFuZV91 cGRhdGUoaW50ZWxfY3J0Yyk7DQo+ICsJCWlmIChwaXBlX2NvbmZpZy0+YmFzZS5hY3RpdmUgJiYN Cj4gbmVlZHNfdmJsYW5rX3dhaXQocGlwZV9jb25maWcpKQ0KPiArCQkJY3J0Y192YmxhbmtfbWFz ayB8PSAxIDw8IGk7DQo+IMKgCX0NCj4gwqANCj4gwqAJLyogRklYTUU6IGFkZCBzdWJwaXhlbCBv cmRlciAqLw0KPiDCoA0KPiAtCWRybV9hdG9taWNfaGVscGVyX3dhaXRfZm9yX3ZibGFua3MoZGV2 LCBzdGF0ZSk7DQo+ICsJaWYgKCFzdGF0ZS0+bGVnYWN5X2N1cnNvcl91cGRhdGUpDQo+ICsJCWlu dGVsX2F0b21pY193YWl0X2Zvcl92YmxhbmtzKGRldiwgZGV2X3ByaXYsDQo+IGNydGNfdmJsYW5r X21hc2spOw0KPiDCoA0KPiDCoAlmb3JfZWFjaF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBj cnRjX3N0YXRlLCBpKSB7DQo+ICsJCWludGVsX3Bvc3RfcGxhbmVfdXBkYXRlKHRvX2ludGVsX2Ny dGMoY3J0YykpOw0KPiArDQo+IMKgCQlpZiAocHV0X2RvbWFpbnNbaV0pDQo+IMKgCQkJbW9kZXNl dF9wdXRfcG93ZXJfZG9tYWlucyhkZXZfcHJpdiwNCj4gcHV0X2RvbWFpbnNbaV0pOw0KPiDCoAl9 DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaA0KPiBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oDQo+IGluZGV4IDI4NWIwNTcwYmU5Yy4uNzRk ZjRmODE4ZTAzIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aA0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaA0KPiBAQCAtMzc5LDYg KzM3OSw3IEBAIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlIHsNCj4gwqAJYm9vbCB1cGRhdGVfcGlw ZTsgLyogY2FuIGEgZmFzdCBtb2Rlc2V0IGJlIHBlcmZvcm1lZD8gKi8NCj4gwqAJYm9vbCBkaXNh YmxlX2N4c3I7DQo+IMKgCWJvb2wgd21fY2hhbmdlZDsgLyogd2F0ZXJtYXJrcyBhcmUgdXBkYXRl ZCAqLw0KPiArCWJvb2wgZmJfY2hhbmdlZDsgLyogZmIgb24gYW55IG9mIHRoZSBwbGFuZXMgaXMg Y2hhbmdlZCAqLw0KPiDCoA0KPiDCoAkvKiBQaXBlIHNvdXJjZSBzaXplIChpZS4gcGFuZWwgZml0 dGVyIGlucHV0IHNpemUpDQo+IMKgCcKgKiBBbGwgcGxhbmVzIHdpbGwgYmUgcG9zaXRpb25lZCBp bnNpZGUgdGhpcyBzcGFjZSwNCj4gQEAgLTU0Nyw3ICs1NDgsNiBAQCBzdHJ1Y3QgaW50ZWxfY3J0 Y19hdG9taWNfY29tbWl0IHsNCj4gwqANCj4gwqAJLyogU2xlZXBhYmxlIG9wZXJhdGlvbnMgdG8g cGVyZm9ybSBhZnRlciBjb21taXQgKi8NCj4gwqAJdW5zaWduZWQgZmJfYml0czsNCj4gLQlib29s IHdhaXRfdmJsYW5rOw0KPiDCoAlib29sIHBvc3RfZW5hYmxlX3ByaW1hcnk7DQo+IMKgCXVuc2ln bmVkIHVwZGF0ZV9zcHJpdGVfd2F0ZXJtYXJrczsNCj4gwqANCj4gCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=