From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: Re: [RFC 8/8] drm/i915: Force preemption to complete via engine reset Date: Fri, 16 Mar 2018 20:39:42 +0000 Message-ID: <152123278201.18954.10278017936784836934@mail.alporthouse.com> References: <20180316183105.16027-1-jeff.mcgee@intel.com> <20180316183105.16027-9-jeff.mcgee@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 1BEA46EBEF for ; Fri, 16 Mar 2018 20:40:07 +0000 (UTC) In-Reply-To: <20180316183105.16027-9-jeff.mcgee@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: jeff.mcgee@intel.com, intel-gfx@lists.freedesktop.org Cc: kalyan.kondapally@intel.com, ben@bwidawsk.net List-Id: intel-gfx@lists.freedesktop.org UXVvdGluZyBqZWZmLm1jZ2VlQGludGVsLmNvbSAoMjAxOC0wMy0xNiAxODozMTowNSkKPiBGcm9t OiBKZWZmIE1jR2VlIDxqZWZmLm1jZ2VlQGludGVsLmNvbT4KPiAKPiBUaGUgaGFyZHdhcmUgY2Fu IGNvbXBsZXRlIHRoZSByZXF1ZXN0ZWQgcHJlZW1wdGlvbiBhdCBvbmx5IGNlcnRhaW4gcG9pbnRz Cj4gaW4gZXhlY3V0aW9uLiBUaHVzIGFuIHVuY29vcGVyYXRpdmUgcmVxdWVzdCB0aGF0IGF2b2lk cyB0aG9zZSBwb2ludHMgY2FuCj4gYmxvY2sgYSBwcmVlbXB0aW9uIGluZGVmaW5pdGVseS4gT3Vy IG9ubHkgb3B0aW9uIHRvIGJvdW5kIHRoZSBwcmVlbXB0aW9uCj4gbGF0ZW5jeSBpcyB0byB0cmln Z2VyIHJlc2V0IGFuZCByZWNvdmVyeSBqdXN0IGFzIHdlIHdvdWxkIGlmIGEgcmVxdWVzdCBoYWQK PiBodW5nIHRoZSBoYXJkd2FyZS4gVGhpcyBpcyBzby1jYWxsZWQgZm9yY2VkIHByZWVtcHRpb24u IFRoaXMgY2hhbmdlIGFkZHMKPiB0aGF0IGNhcGFiaWxpdHkgYXMgYW4gb3B0aW9uIGZvciBzeXN0 ZW1zIHdpdGggZXh0cmVtZWx5IHN0cmljdCBzY2hlZHVsaW5nCj4gbGF0ZW5jeSByZXF1aXJlbWVu dHMgZm9yIGl0cyBoaWdoIHByaW9yaXR5IHJlcXVlc3RzLiBUaGlzIG9wdGlvbiBtdXN0IGJlCj4g dXNlZCB3aXRoIGdyZWF0IGNhcmUuIFRoZSBmb3JjZS1wcmVlbXB0ZWQgcmVxdWVzdHMgd2lsbCBi ZSBkaXNjYXJkZWQgYXQKPiB0aGUgcG9pbnQgb2YgcmVzZXQsIHJlc3VsdGluZyBpbiB2YXJpb3Vz IGRlZ3JlZXMgb2YgZGlzcnVwdGlvbiB0byB0aGUKPiBvd25pbmcgYXBwbGljYXRpb24gdXAgdG8g YW5kIGluY2x1ZGluZyBjcmFzaC4KPiAKPiBUaGUgb3B0aW9uIGlzIGVuYWJsZWQgYnkgc3BlY2lm eWluZyBhIG5vbi16ZXJvIHZhbHVlIGZvciBuZXcgaTkxNSBtb2R1bGUKPiBwYXJhbWV0ZXIgZnBy ZWVtcHRfdGltZW91dC4gVGhpcyB2YWx1ZSBiZWNvbWVzIHRoZSB0aW1lIGluIG1pbGxpc2Vjb25k cwo+IGFmdGVyIGluaXRpYXRpb24gb2YgcHJlZW1wdGlvbiBhdCB3aGljaCB0aGUgcmVzZXQgaXMg dHJpZ2dlcmVkIGlmIHRoZQo+IHByZWVtcHRpb24gaGFzIG5vdCBjb21wbGV0ZWQgbm9ybWFsbHku Cj4gCj4gVGVzdDogUnVuIElHVCBnZW1fZXhlY19mcHJlZW1wdC4KPiBDaGFuZ2UtSWQ6IElhZmQz NjA5MDEyNjIxYzU3ZmE5ZTQ5MGRmZWVhYzQ2YWU1NDFiNWMyCj4gU2lnbmVkLW9mZi1ieTogSmVm ZiBNY0dlZSA8amVmZi5tY2dlZUBpbnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmMgICAgICAgICB8IDE0ICsrKysrKysrLQo+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oICAgICAgICAgfCAgMiArKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbS5jICAgICAgICAgfCAzNyArKysrKysrKysrKysrKysrKysrKystLQo+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3BhcmFtcy5jICAgICAgfCAgMyArKwo+ICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3BhcmFtcy5oICAgICAgfCAgMSArCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2VuZ2luZV9jcy5jICB8IDUzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Kwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAgICAgICAgfCAyNCArKysrKysr KysrKysrKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIHwgIDYg KysrKwo+ICA4IGZpbGVzIGNoYW5nZWQsIDEzNiBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygt KQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+IGluZGV4IGI2MjczNzBkNWE5Yy4uM2YyMzk0 ZDYxZWEyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gQEAgLTgxMSw4ICs4MTEsMTYg QEAgc3RhdGljIGludCBpOTE1X3dvcmtxdWV1ZXNfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCj4gICAgICAgICBpZiAoZGV2X3ByaXYtPmhvdHBsdWcuZHBfd3EgPT0gTlVM TCkKPiAgICAgICAgICAgICAgICAgZ290byBvdXRfZnJlZV93cTsKPiAgCj4gKyAgICAgICBpZiAo SU5URUxfSU5GTyhkZXZfcHJpdiktPmhhc19sb2dpY2FsX3JpbmdfcHJlZW1wdGlvbikgewo+ICsg ICAgICAgICAgICAgICBkZXZfcHJpdi0+ZnByZWVtcHRfd3EgPSBhbGxvY19vcmRlcmVkX3dvcmtx dWV1ZSgiaTkxNS1mcHJlZW1wdCIsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdRX0hJR0hQUkkpOwo+ICsgICAgICAgICAg ICAgICBpZiAoZGV2X3ByaXYtPmZwcmVlbXB0X3dxID09IE5VTEwpCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgZ290byBvdXRfZnJlZV9kcF93cTsKCkRvZXNuJ3QgcmVxdWlyZSBvcmRlcmluZywg dGhlIHJlc2V0cyBhcmUgaWYgZWl0aGVyIHJlcXVpcmVkIHRvIGZhbGwgYmFjawp0byBhIGZ1bGwg cmVzZXQuCgo+ICsgICAgICAgfQo+ICAgICAgICAgcmV0dXJuIDA7Cj4gIAo+ICtvdXRfZnJlZV9k cF93cToKPiArICAgICAgIGRlc3Ryb3lfd29ya3F1ZXVlKGRldl9wcml2LT5ob3RwbHVnLmRwX3dx KTsKPiAgb3V0X2ZyZWVfd3E6Cj4gICAgICAgICBkZXN0cm95X3dvcmtxdWV1ZShkZXZfcHJpdi0+ d3EpOwo+ICBvdXRfZXJyOgo+IEBAIC04MzIsNiArODQwLDggQEAgc3RhdGljIHZvaWQgaTkxNV9l bmdpbmVzX2NsZWFudXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4gIAo+ICBzdGF0 aWMgdm9pZCBpOTE1X3dvcmtxdWV1ZXNfY2xlYW51cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCj4gIHsKPiArICAgICAgIGlmIChJTlRFTF9JTkZPKGRldl9wcml2KS0+aGFzX2xv Z2ljYWxfcmluZ19wcmVlbXB0aW9uKQo+ICsgICAgICAgICAgICAgICBkZXN0cm95X3dvcmtxdWV1 ZShkZXZfcHJpdi0+ZnByZWVtcHRfd3EpOwo+ICAgICAgICAgZGVzdHJveV93b3JrcXVldWUoZGV2 X3ByaXYtPmhvdHBsdWcuZHBfd3EpOwo+ICAgICAgICAgZGVzdHJveV93b3JrcXVldWUoZGV2X3By aXYtPndxKTsKPiAgfQo+IEBAIC0yMDA3LDcgKzIwMTcsOSBAQCBpbnQgaTkxNV9yZXNldF9lbmdp bmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCB1bnNpZ25lZCBpbnQgZmxhZ3MpCj4g IAo+ICAgICAgICAgaWYgKCEoZmxhZ3MgJiBJOTE1X1JFU0VUX1FVSUVUKSkgewo+ICAgICAgICAg ICAgICAgICBkZXZfbm90aWNlKGVuZ2luZS0+aTkxNS0+ZHJtLmRldiwKPiAtICAgICAgICAgICAg ICAgICAgICAgICAgICAiUmVzZXR0aW5nICVzIGFmdGVyIGdwdSBoYW5nXG4iLCBlbmdpbmUtPm5h bWUpOwo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICJSZXNldHRpbmcgJXMgJXNcbiIsIGVu Z2luZS0+bmFtZSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICBlbmdpbmUtPmZwcmVlbXB0 X2FjdGl2ZSA/Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgImZvciBmb3JjZSBwcmVlbXB0 aW9uIiA6ICJhZnRlciBncHUgaGFuZyIpOwo+ICAgICAgICAgfQo+ICAgICAgICAgZXJyb3ItPnJl c2V0X2VuZ2luZV9jb3VudFtlbmdpbmUtPmlkXSsrOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKPiBpbmRleCBhZGUwOWY5N2JlNWMuLjUxNGU2NDBkODQwNiAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaAo+IEBAIC0yMjkwLDYgKzIyOTAsOCBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSB7Cj4gICAgICAgICAgKi8KPiAgICAgICAgIHN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICp3cTsK PiAgCj4gKyAgICAgICBzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVjdCAqZnByZWVtcHRfd3E7Cj4gKwo+ ICAgICAgICAgLyogRGlzcGxheSBmdW5jdGlvbnMgKi8KPiAgICAgICAgIHN0cnVjdCBkcm1faTkx NV9kaXNwbGF5X2Z1bmNzIGRpc3BsYXk7Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IGlu ZGV4IDk3ODBkOTAyNmNlNi4uZDU1Njc0M2M1NzhhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bS5jCj4gQEAgLTI4MTEsOSArMjgxMSwyMSBAQCBpOTE1X2dlbV9maW5kX2FjdGl2ZV9yZXF1ZXN0 KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgICAgICAgIHJldHVybiByZXF1ZXN0 Owo+ICB9Cj4gIAo+IC1zdGF0aWMgYm9vbCBlbmdpbmVfc3RhbGxlZChzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUpCj4gK3N0YXRpYyBib29sIGVuZ2luZV9zdGFsbGVkKHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCj4gIHsKPiAgICAgICAgIGlmICghaW50ZWxf dmdwdV9hY3RpdmUoZW5naW5lLT5pOTE1KSkgewo+ICsgICAgICAgICAgICAgICBpZiAoZW5naW5l LT5mcHJlZW1wdF9hY3RpdmUpIHsKPiArICAgICAgICAgICAgICAgICAgICAgICAvKiBQYXJkb24g dGhlIHJlcXVlc3QgaWYgaXQgbWFuYWdlZCB0byBjb21wbGV0ZSBvcgo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAqIHByZWVtcHQgcHJpb3IgdG8gdGhlIHJlc2V0Lgo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAqLwo+ICsgICAgICAgICAgICAgICAgICAgICAgIGlmIChpOTE1X2dlbV9yZXF1 ZXN0X2NvbXBsZXRlZChyZXF1ZXN0KSB8fAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICBp bnRlbF9lbmdpbmVfcHJlZW1wdF9maW5pc2hlZChlbmdpbmUpKQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwo+ICsKCk5vLCBvbmNlIHlvdSBwdWxsIHRoZSB0 cmlnZ2VyIGp1c3QgZ28gdGhyb3VnaCB3aXRoIGl0LiBZb3Ugc2hvdWxkIG5ldmVyCnB1bGwgdGhl IHRyaWdnZXIgaWYgeW91IGFyZSB3b3JyaWVkIGFib3V0IHRoZSBjb25zZXF1ZW5jZXMuCgo+ICsg ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwo+ICsgICAgICAgICAgICAgICB9Cj4g Kwo+ICAgICAgICAgICAgICAgICBpZiAoIWVuZ2luZS0+aGFuZ2NoZWNrLnN0YWxsZWQpCj4gICAg ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwo+ICAKPiBAQCAtMjg1OCw2ICsyODcw LDEzIEBAIGk5MTVfZ2VtX3Jlc2V0X3ByZXBhcmVfZW5naW5lKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZSkKPiAgICAgICAgIHRhc2tsZXRfa2lsbCgmZW5naW5lLT5leGVjbGlzdHMuaXJx X3Rhc2tsZXQpOwo+ICAgICAgICAgdGFza2xldF9kaXNhYmxlKCZlbmdpbmUtPmV4ZWNsaXN0cy5p cnFfdGFza2xldCk7Cj4gIAo+ICsgICAgICAgLyogVGhlcmUgbWF5IGJlIGEgZm9yY2UgcHJlZW1w dGlvbiB0aW1lciBhY3RpdmUgb24gdGhpcyBlbmdpbmUgYnV0Cj4gKyAgICAgICAgKiBub3QgeWV0 IGV4cGlyZWQsIGkuZS4gbm90IHRoZSByZWFzb24gd2UgYXJlIGFib3V0IHRvIHJlc2V0IHRoaXMK PiArICAgICAgICAqIGVuZ2luZS4gQ2FuY2VsIGl0LiBJZiBmb3JjZSBwcmVlbXB0aW9uIHRpbWVv dXQgaXMgdGhlIHJlYXNvbiB3ZQo+ICsgICAgICAgICogYXJlIHJlc2V0dGluZyB0aGUgZW5naW5l LCB0aGlzIGNhbGwgd2lsbCBoYXZlIG5vIGVmZmZlY3QuCj4gKyAgICAgICAgKi8KCkRvbmUgYnkg anVzdCBjbGVhcmluZyBleGVjbGlzdHMtPmFjdGl2ZS4KCj4gKyAgICAgICBpbnRlbF9lbmdpbmVf Y2FuY2VsX2ZwcmVlbXB0KGVuZ2luZSk7Cj4gKwo+ICAgICAgICAgaWYgKGVuZ2luZS0+aXJxX3Nl cW5vX2JhcnJpZXIpCj4gICAgICAgICAgICAgICAgIGVuZ2luZS0+aXJxX3NlcW5vX2JhcnJpZXIo ZW5naW5lKTsKPiAgCj4gQEAgLTI5NTgsNyArMjk3Nyw3IEBAIGk5MTVfZ2VtX3Jlc2V0X3JlcXVl c3Qoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAo+ICAgICAgICAgICogc3Vic2VxdWVu dCBoYW5ncy4KPiAgICAgICAgICAqLwo+ICAKPiAtICAgICAgIGlmIChlbmdpbmVfc3RhbGxlZChl bmdpbmUpKSB7Cj4gKyAgICAgICBpZiAoZW5naW5lX3N0YWxsZWQoZW5naW5lLCByZXF1ZXN0KSkg ewo+ICAgICAgICAgICAgICAgICBpOTE1X2dlbV9jb250ZXh0X21hcmtfZ3VpbHR5KHJlcXVlc3Qt PmN0eCk7Cj4gICAgICAgICAgICAgICAgIHNraXBfcmVxdWVzdChyZXF1ZXN0KTsKPiAgCj4gQEAg LTI5NjYsNiArMjk4NSwxMyBAQCBpOTE1X2dlbV9yZXNldF9yZXF1ZXN0KHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSwKPiAgICAgICAgICAgICAgICAgaWYgKGk5MTVfZ2VtX2NvbnRleHRf aXNfYmFubmVkKHJlcXVlc3QtPmN0eCkpCj4gICAgICAgICAgICAgICAgICAgICAgICAgZW5naW5l X3NraXBfY29udGV4dChyZXF1ZXN0KTsKPiAgICAgICAgIH0gZWxzZSB7Cj4gKyAgICAgICAgICAg ICAgIC8qIElmIHRoZSByZXF1ZXN0IHRoYXQgd2UganVzdCBwYXJkb25lZCB3YXMgdGhlIHRhcmdl dCBvZiBhCj4gKyAgICAgICAgICAgICAgICAqIGZvcmNlIHByZWVtcHRpb24gdGhlcmUgaXMgbm8g cG9zc2liaWxpdHkgb2YgdGhlIG5leHQKPiArICAgICAgICAgICAgICAgICogcmVxdWVzdCBpbiBs aW5lIGhhdmluZyBzdGFydGVkLgo+ICsgICAgICAgICAgICAgICAgKi8KPiArICAgICAgICAgICAg ICAgaWYgKGVuZ2luZS0+ZnByZWVtcHRfYWN0aXZlKQo+ICsgICAgICAgICAgICAgICAgICAgICAg IHJldHVybiBOVUxMOwo+ICsKPiAgICAgICAgICAgICAgICAgLyoKPiAgICAgICAgICAgICAgICAg ICogU2luY2UgdGhpcyBpcyBub3QgdGhlIGh1bmcgZW5naW5lLCBpdCBtYXkgaGF2ZSBhZHZhbmNl ZAo+ICAgICAgICAgICAgICAgICAgKiBzaW5jZSB0aGUgaGFuZyBkZWNsYXJhdGlvbi4gRG91Ymxl IGNoZWNrIGJ5IHJlZmluZGluZwo+IEBAIC0zMDM1LDYgKzMwNjEsMTMgQEAgdm9pZCBpOTE1X2dl bV9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAo+ICB2b2lkIGk5 MTVfZ2VtX3Jlc2V0X2ZpbmlzaF9lbmdpbmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l KQo+ICB7Cj4gKyAgICAgICAvKiBNYXJrIGFueSBhY3RpdmUgZm9yY2UgcHJlZW1wdGlvbiBhcyBj b21wbGV0ZSB0aGVuIGtpY2sKPiArICAgICAgICAqIHRoZSB0YXNrbGV0Lgo+ICsgICAgICAgICov Cj4gKyAgICAgICBlbmdpbmUtPmZwcmVlbXB0X2FjdGl2ZSA9IGZhbHNlOwo+ICsgICAgICAgaWYg KGVuZ2luZS0+ZXhlY2xpc3RzLmZpcnN0KQo+ICsgICAgICAgICAgICAgICB0YXNrbGV0X3NjaGVk dWxlKCZlbmdpbmUtPmV4ZWNsaXN0cy5pcnFfdGFza2xldCk7CgpTdHJheSBjaHVuay4KCj4gKwo+ ICAgICAgICAgdGFza2xldF9lbmFibGUoJmVuZ2luZS0+ZXhlY2xpc3RzLmlycV90YXNrbGV0KTsK PiAgICAgICAgIGt0aHJlYWRfdW5wYXJrKGVuZ2luZS0+YnJlYWRjcnVtYnMuc2lnbmFsZXIpOwo+ ICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGFyYW1zLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BhcmFtcy5jCj4gaW5kZXggNjM3NTFhMWRlNzRhLi45 YTBkZWI2ZTM5MjAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wYXJh bXMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGFyYW1zLmMKPiBAQCAtMjQ3 LDMgKzI0Nyw2IEBAIE1PRFVMRV9QQVJNX0RFU0MoZW5hYmxlX2NvbmZvcm1hbmNlX2NoZWNrLCAi VG8gdG9nZ2xlIHRoZSBHVlQgZ3Vlc3QgY29uZm9ybWFuY2UKPiAgCj4gIG1vZHVsZV9wYXJhbV9u YW1lZChkaXNhYmxlX2d2dF9md19sb2FkaW5nLCBpOTE1X21vZHBhcmFtcy5kaXNhYmxlX2d2dF9m d19sb2FkaW5nLCBib29sLCAwNDAwKTsKPiAgTU9EVUxFX1BBUk1fREVTQyhkaXNhYmxlX2d2dF9m d19sb2FkaW5nLCAiRGlzYWJsZSBHVlQtZyBmdyBsb2FkaW5nLiIpOwo+ICsKPiAraTkxNV9wYXJh bV9uYW1lZChmcHJlZW1wdF90aW1lb3V0LCB1aW50LCAwNjAwLAo+ICsgICAgICAgIldhaXQgdGlt ZSBpbiBtc2VjcyBiZWZvcmUgZm9yY2luZyBhIHByZWVtcHRpb24gd2l0aCByZXNldCAoMDpuZXZl ciBmb3JjZSBbZGVmYXVsdF0pIik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcGFyYW1zLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BhcmFtcy5oCj4gaW5k ZXggZThjMmJhNGNiMWU2Li42NWZiZmZhNjMzM2MgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9wYXJhbXMuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cGFyYW1zLmgKPiBAQCAtNTQsNiArNTQsNyBAQAo+ICAgICAgICAgZnVuYyhpbnQsIGVkcF92c3dp bmcpOyBcCj4gICAgICAgICBmdW5jKGludCwgcmVzZXQpOyBcCj4gICAgICAgICBmdW5jKHVuc2ln bmVkIGludCwgaW5qZWN0X2xvYWRfZmFpbHVyZSk7IFwKPiArICAgICAgIGZ1bmModW5zaWduZWQg aW50LCBmcHJlZW1wdF90aW1lb3V0KTsgXAo+ICAgICAgICAgLyogbGVhdmUgYm9vbHMgYXQgdGhl IGVuZCB0byBub3QgY3JlYXRlIGhvbGVzICovIFwKPiAgICAgICAgIGZ1bmMoYm9vbCwgYWxwaGFf c3VwcG9ydCk7IFwKPiAgICAgICAgIGZ1bmMoYm9vbCwgZW5hYmxlX2NtZF9wYXJzZXIpOyBcCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMKPiBpbmRleCBjOWJmMjM0N2Y3YTQu LmFmNmNjMmQwZjdlOSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9l bmdpbmVfY3MuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5j Cj4gQEAgLTQxMSw2ICs0MTEsNTggQEAgc3RhdGljIHZvaWQgaW50ZWxfZW5naW5lX2luaXRfZXhl Y2xpc3Qoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAgICAgICAgZXhlY2xpc3Rz LT5maXJzdCA9IE5VTEw7Cj4gIH0KPiAgCj4gK3ZvaWQgaW50ZWxfZW5naW5lX3F1ZXVlX2ZwcmVl bXB0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiArewo+ICsgICAgICAgdW5zaWdu ZWQgaW50IHRpbWVvdXQgPSBpOTE1X21vZHBhcmFtcy5mcHJlZW1wdF90aW1lb3V0Owo+ICsKPiAr ICAgICAgIGlmICghdGltZW91dCkKPiArICAgICAgICAgICAgICAgcmV0dXJuOwo+ICsKPiArICAg ICAgIEdFTV9CVUdfT04oZW5naW5lLT5mcHJlZW1wdF9hY3RpdmUpOwo+ICsgICAgICAgaHJ0aW1l cl9zdGFydCgmZW5naW5lLT5mcHJlZW1wdF90aW1lciwKPiArICAgICAgICAgICAgICAgICAgICAg bXNfdG9fa3RpbWUodGltZW91dCksIEhSVElNRVJfTU9ERV9SRUwpOwo+ICt9Cj4gKwo+ICtib29s IGludGVsX2VuZ2luZV9jYW5jZWxfZnByZWVtcHQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lKQo+ICt7Cj4gKyAgICAgICBocnRpbWVyX2NhbmNlbCgmZW5naW5lLT5mcHJlZW1wdF90aW1l cik7Cj4gKwo+ICsgICAgICAgcmV0dXJuICFlbmdpbmUtPmZwcmVlbXB0X2FjdGl2ZTsKPiArfQo+ ICsKPiArc3RhdGljIGVudW0gaHJ0aW1lcl9yZXN0YXJ0Cj4gK2ludGVsX2VuZ2luZV9mcHJlZW1w dF90aW1lcihzdHJ1Y3QgaHJ0aW1lciAqaHJ0aW1lcikKPiArewo+ICsgICAgICAgc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lID0KPiArICAgICAgICAgICAgICAgY29udGFpbmVyX29mKGhy dGltZXIsIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MsCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICBmcHJlZW1wdF90aW1lcik7Cj4gKwo+ICsgICAgICAgZW5naW5lLT5mcHJlZW1wdF9hY3Rp dmUgPSB0cnVlOwo+ICsgICAgICAgcXVldWVfd29yayhlbmdpbmUtPmk5MTUtPmZwcmVlbXB0X3dx LCAmZW5naW5lLT5mcHJlZW1wdF93b3JrKTsKCkFoIEkgc2VlIHlvdSBkaWRuJ3QgY2hlY2suCgo+ ICsKPiArICAgICAgIHJldHVybiBIUlRJTUVSX05PUkVTVEFSVDsKPiArfQo+ICsKPiArc3RhdGlj IHZvaWQgaW50ZWxfZW5naW5lX2ZwcmVlbXB0X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3Jr KQo+ICt7Cj4gKyAgICAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPQo+ICsgICAg ICAgICAgICAgICBjb250YWluZXJfb2Yod29yaywgc3RydWN0IGludGVsX2VuZ2luZV9jcywKPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZwcmVlbXB0X3dvcmspOwo+ICsKPiArICAgICAg IGk5MTVfaGFuZGxlX3Jlc2V0KGVuZ2luZS0+aTkxNSwgaW50ZWxfZW5naW5lX2ZsYWcoZW5naW5l KSk7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGludGVsX2VuZ2luZV9pbml0X2ZwcmVlbXB0KHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiArewo+ICsgICAgICAgaWYgKCFJTlRFTF9J TkZPKGVuZ2luZS0+aTkxNSktPmhhc19sb2dpY2FsX3JpbmdfcHJlZW1wdGlvbikKPiArICAgICAg ICAgICAgICAgcmV0dXJuOwo+ICsKPiArICAgICAgIGhydGltZXJfaW5pdCgmZW5naW5lLT5mcHJl ZW1wdF90aW1lciwKPiArICAgICAgICAgICAgICAgICAgICBDTE9DS19NT05PVE9OSUMsIEhSVElN RVJfTU9ERV9SRUwpOwo+ICsgICAgICAgZW5naW5lLT5mcHJlZW1wdF90aW1lci5mdW5jdGlvbiA9 IGludGVsX2VuZ2luZV9mcHJlZW1wdF90aW1lcjsKPiArICAgICAgIElOSVRfV09SSygmZW5naW5l LT5mcHJlZW1wdF93b3JrLCBpbnRlbF9lbmdpbmVfZnByZWVtcHRfd29yayk7CgpKdXN0IHNldCB0 aGUgZmV3IHBvaW50ZXJzLiBJdCdzIG5vdCBsaWtlIHdlIGFyZSBzYXZpbmcgYW55dGhpbmcuCgo+ ICt9Cj4gKwo+ICAvKioKPiAgICogaW50ZWxfZW5naW5lc19zZXR1cF9jb21tb24gLSBzZXR1cCBl bmdpbmUgc3RhdGUgbm90IHJlcXVpcmluZyBodyBhY2Nlc3MKPiAgICogQGVuZ2luZTogRW5naW5l IHRvIHNldHVwLgo+IEBAIC00MjYsNiArNDc4LDcgQEAgdm9pZCBpbnRlbF9lbmdpbmVfc2V0dXBf Y29tbW9uKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgCj4gICAgICAgICBpbnRl bF9lbmdpbmVfaW5pdF90aW1lbGluZShlbmdpbmUpOwo+ICAgICAgICAgaW50ZWxfZW5naW5lX2lu aXRfaGFuZ2NoZWNrKGVuZ2luZSk7Cj4gKyAgICAgICBpbnRlbF9lbmdpbmVfaW5pdF9mcHJlZW1w dChlbmdpbmUpOwo+ICAgICAgICAgaTkxNV9nZW1fYmF0Y2hfcG9vbF9pbml0KGVuZ2luZSwgJmVu Z2luZS0+YmF0Y2hfcG9vbCk7Cj4gIAo+ICAgICAgICAgaW50ZWxfZW5naW5lX2luaXRfY21kX3Bh cnNlcihlbmdpbmUpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9s cmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gaW5kZXggNTgxNDgzODg2 MTUzLi4xNzQ4N2Y4ZThiNGMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbHJjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+IEBAIC02 MjgsNiArNjI4LDcgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX2RlcXVldWUoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lKQo+ICAgICAgICAgICAgICAgICAgICAgICAgIGluamVjdF9wcmVl bXB0X2NvbnRleHQoZW5naW5lKTsKPiAgICAgICAgICAgICAgICAgICAgICAgICBleGVjbGlzdHNf c2V0X2FjdGl2ZShleGVjbGlzdHMsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgRVhFQ0xJU1RTX0FDVElWRV9QUkVFTVBUKTsKPiArICAgICAgICAgICAgICAg ICAgICAgICBpbnRlbF9lbmdpbmVfcXVldWVfZnByZWVtcHQoZW5naW5lKTsKPiAgICAgICAgICAg ICAgICAgICAgICAgICBnb3RvIHVubG9jazsKPiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKPiAg ICAgICAgICAgICAgICAgICAgICAgICAvKgo+IEBAIC04NDYsNiArODQ3LDcgQEAgc3RhdGljIHZv aWQgaW50ZWxfbHJjX2lycV9oYW5kbGVyKHVuc2lnbmVkIGxvbmcgZGF0YSkKPiAgICAgICAgICAg ICAgICAgY29uc3QgdTMyICpidWYgPQo+ICAgICAgICAgICAgICAgICAgICAgICAgICZlbmdpbmUt PnN0YXR1c19wYWdlLnBhZ2VfYWRkcltJOTE1X0hXU19DU0JfQlVGMF9JTkRFWF07Cj4gICAgICAg ICAgICAgICAgIHVuc2lnbmVkIGludCBoZWFkLCB0YWlsOwo+ICsgICAgICAgICAgICAgICBib29s IGRlZmVyID0gZmFsc2U7Cj4gIAo+ICAgICAgICAgICAgICAgICAvKiBIb3dldmVyIEdWVCBlbXVs YXRpb24gZGVwZW5kcyB1cG9uIGludGVyY2VwdGluZyBDU0IgbW1pbyAqLwo+ICAgICAgICAgICAg ICAgICBpZiAodW5saWtlbHkoZXhlY2xpc3RzLT5jc2JfdXNlX21taW8pKSB7Cj4gQEAgLTkxOSw2 ICs5MjEsMjEgQEAgc3RhdGljIHZvaWQgaW50ZWxfbHJjX2lycV9oYW5kbGVyKHVuc2lnbmVkIGxv bmcgZGF0YSkKPiAgCj4gICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXR1cyAmIEdFTjhf Q1RYX1NUQVRVU19BQ1RJVkVfSURMRSAmJgo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi dWZbMipoZWFkICsgMV0gPT0gUFJFRU1QVF9JRCkgewo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLyogVHJ5IHRvIGNhbmNlbCBhbnkgcGVuZGluZyBmb3JjZSBwcmVlbXB0aW9uLgo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogSWYgd2UgYXJlIHRvbyBsYXRlLCBo b2xkIG9mZiBvbiBwcm9jZXNzaW5nCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KiB0aGUgY29tcGxldGVkIHByZWVtcHRpb24gdW50aWwgcmVzZXQgaGFzCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKiBydW4gaXRzIGNvdXJzZS4gSXQgc2hvdWxkIHJlY29nbml6 ZSB0aGF0Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiB0aGUgZW5naW5lIGhh cyBwcmVlbXB0ZWQgdG8gaWRsZSB0aGVuIGFib3J0Cj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKiB0aGUgcmVzZXQuIFRoZW4gd2UgY2FuIHJlc3VtZSBwcm9jZXNzaW5nCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBhdCB0aGlzIENTQiBoZWFkLgo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCgpUaGlzIGNhbiBiZSBtdWNoIHNpbXBsZXIg dGhhbiBpbXBsaWVkIGhlcmUuCi1DaHJpcwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pbnRlbC1nZngK