From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 07/40] drm/i915: Seal races between async GPU cancellation, retirement and signaling Date: Wed, 8 May 2019 11:21:00 +0100 Message-ID: References: <20190508080704.24223-1-chris@chris-wilson.co.uk> <20190508080704.24223-7-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 463DD892C2 for ; Wed, 8 May 2019 10:21:02 +0000 (UTC) In-Reply-To: <20190508080704.24223-7-chris@chris-wilson.co.uk> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDA4LzA1LzIwMTkgMDk6MDYsIENocmlzIFdpbHNvbiB3cm90ZToKPiBDdXJyZW50bHkgdGhl cmUgaXMgYW4gdW5kZXJseWluZyBhc3N1bXB0aW9uIHRoYXQgaTkxNV9yZXF1ZXN0X3Vuc3VibWl0 KCkKPiBpcyBzeW5jaHJvbm91cyB3cnQgdGhlIEdQVSAtLSB0aGF0IGlzIHRoZSByZXF1ZXN0IGlz IG5vIGxvbmdlciBpbiBmbGlnaHQKPiBhcyB3ZSByZW1vdmUgaXQuIEluIHRoZSBuZWFyIGZ1dHVy ZSB0aGF0IG1heSBjaGFuZ2UsIGFuZCB0aGlzIG1heSB1cHNldAo+IG91ciBzaWduYWxpbmcgYXMg d2UgY2FuIHByb2Nlc3MgYW4gaW50ZXJydXB0IGZvciB0aGF0IHJlcXVlc3Qgd2hpbGUgaXQKPiBp cyBubyBsb25nZXIgaW4gZmxpZ2h0Lgo+IAo+IENQVTAJCQkJCUNQVTEKPiBpbnRlbF9lbmdpbmVf YnJlYWRjcnVtYnNfaXJxCj4gKHF1ZXVlIHJlcXVlc3QgY29tcGxldGlvbikKPiAJCQkJCWk5MTVf cmVxdWVzdF9jYW5jZWxfc2lnbmFsaW5nCj4gLi4uCQkJCQkuLi4KPiAJCQkJCWk5MTVfcmVxdWVz dF9lbmFibGVfc2lnbmFsaW5nCj4gZG1hX2ZlbmNlX3NpZ25hbAo+IAo+IEhlbmNlIGluIHRoZSB0 aW1lIGl0IHRvb2sgdXMgdG8gZHJvcCB0aGUgbG9jayB0byBzaWduYWwgdGhlIHJlcXVlc3QsIGEK PiBwcmVlbXB0aW9uIGV2ZW50IG1heSBoYXZlIG9jY3VycmVkIGFuZCByZS1xdWV1ZWQgdGhlIHJl cXVlc3QuIEluIHRoZQo+IHByb2Nlc3MsIHRoYXQgcmVxdWVzdCB3b3VsZCBoYXZlIHNlZW4gSTkx NV9GRU5DRV9GTEFHX1NJR05BTCBjbGVhciBhbmQKPiBzbyByZXVzZWQgdGhlIHJxLT5zaWduYWxf bGluayB0aGF0IHdhcyBpbiB1c2Ugb24gQ1BVMCwgbGVhZGluZyB0byBiYWQKPiBwb2ludGVyIGNo YXNpbmcgaW4gaW50ZWxfZW5naW5lX2JyZWFkY3J1bWJzX2lycS4KPiAKPiBBIHJlbGF0ZWQgaXNz dWUgd2FzIHRoYXQgaWYgc29tZW9uZSBzdGFydGVkIGxpc3RlbmluZyBmb3IgYSBzaWduYWwgb24g YQo+IGNvbXBsZXRlZCBidXQgbm8gbG9uZ2VyIGluLWZsaWdodCByZXF1ZXN0LCB3ZSBtaXNzZWQg dGhlIG9wcG9ydHVuaXR5IHRvCj4gaW1tZWRpYXRlbHkgc2lnbmFsIHRoYXQgcmVxdWVzdC4KPiAK PiBGdXJ0aGVybW9yZSwgYXMgaW50ZWxfY29udGV4dHMgbWF5IGJlIGltbWVkaWF0ZWx5IHJlbGVh c2VkIGR1cmluZwo+IHJlcXVlc3QgcmV0aXJlbWVudCwgaW4gb3JkZXIgdG8gYmUgZW50aXJlbHkg c3VyZSB0aGF0Cj4gaW50ZWxfZW5naW5lX2JyZWFkY3J1bWJzX2lycSBtYXkgbm8gbG9uZ2VyIGRl cmVmZXJlbmNlIHRoZSBpbnRlbF9jb250ZXh0Cj4gKGNlLT5zaWduYWxzIGFuZCBjZS0+c2lnbmFs X2xpbmspLCB3ZSBtdXN0IHdhaXQgZm9yIGlycSBzcGlubG9jay4KPiAKPiBJbiBvcmRlciB0byBw cmV2ZW50IHRoZSByYWNlLCB3ZSB1c2UgYSBiaXQgaW4gdGhlIGZlbmNlLmZsYWdzIHRvIHNpZ25h bAo+IHRoZSB0cmFuc2ZlciBvbnRvIHRoZSBzaWduYWwgbGlzdCBpbnNpZGUgaW50ZWxfZW5naW5l X2JyZWFkY3J1bWJzX2lycS4KPiBGb3Igc2ltcGxpY2l0eSwgd2UgdXNlIHRoZSBETUFfRkVOQ0Vf RkxBR19TSUdOQUxFRF9CSVQgYXMgaXQgdGhlbgo+IHF1aWNrbHkgc2lnbmFscyB0byBhbnkgb3V0 c2lkZSBvYnNlcnZlciB0aGF0IHRoZSBmZW5jZSBpcyBpbmRlZWQgc2lnbmFsZWQuCj4gCj4gdjI6 IFNrZXRjaCBvdXQgcG90ZW50aWFsIGRtYS1mZW5jZSBBUEkgZm9yIG1hbnVhbCBzaWduYWxpbmcK PiAKPiBGaXhlczogNTJjMGZkYjI1YzdjICgiZHJtL2k5MTU6IFJlcGxhY2UgZ2xvYmFsIGJyZWFk Y3J1bWJzIHdpdGggcGVyLWNvbnRleHQgaW50ZXJydXB0IHRyYWNraW5nIikKPiBTaWduZWQtb2Zm LWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPiBDYzogVHZydGtv IFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KPiAtLS0KPiAgIGRyaXZlcnMvZG1h LWJ1Zi9kbWEtZmVuY2UuYyAgICAgICAgICAgICAgICAgfCAgMSArCj4gICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9ndC9pbnRlbF9icmVhZGNydW1icy5jIHwgNzAgKysrKysrKysrKysrKystLS0tLS0t Cj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYyAgICAgICAgIHwgIDEgKwo+ ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX3N1Ym1pc3Npb24uYyB8ICAxIC0KPiAg IDQgZmlsZXMgY2hhbmdlZCwgNTEgaW5zZXJ0aW9ucygrKSwgMjIgZGVsZXRpb25zKC0pCj4gCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZG1hLWJ1Zi9kbWEtZmVuY2UuYyBiL2RyaXZlcnMvZG1hLWJ1 Zi9kbWEtZmVuY2UuYwo+IGluZGV4IDNhYTg3MzNmODMyYS4uOWJmMDYwNDI2MTlhIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZG1hLWJ1Zi9kbWEtZmVuY2UuYwo+ICsrKyBiL2RyaXZlcnMvZG1hLWJ1 Zi9kbWEtZmVuY2UuYwo+IEBAIC0yOSw2ICsyOSw3IEBACj4gICAKPiAgIEVYUE9SVF9UUkFDRVBP SU5UX1NZTUJPTChkbWFfZmVuY2VfZW1pdCk7Cj4gICBFWFBPUlRfVFJBQ0VQT0lOVF9TWU1CT0wo ZG1hX2ZlbmNlX2VuYWJsZV9zaWduYWwpOwo+ICtFWFBPUlRfVFJBQ0VQT0lOVF9TWU1CT0woZG1h X2ZlbmNlX3NpZ25hbGVkKTsKPiAgIAo+ICAgc3RhdGljIERFRklORV9TUElOTE9DSyhkbWFfZmVu Y2Vfc3R1Yl9sb2NrKTsKPiAgIHN0YXRpYyBzdHJ1Y3QgZG1hX2ZlbmNlIGRtYV9mZW5jZV9zdHVi Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9icmVhZGNydW1i cy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfYnJlYWRjcnVtYnMuYwo+IGluZGV4 IGZlNDU1ZjAxYWE2NS4uNzA1M2E5MGU1Y2I1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L2ludGVsX2JyZWFkY3J1bWJzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9ndC9pbnRlbF9icmVhZGNydW1icy5jCj4gQEAgLTIzLDYgKzIzLDcgQEAKPiAgICAqLwo+ICAg Cj4gICAjaW5jbHVkZSA8bGludXgva3RocmVhZC5oPgo+ICsjaW5jbHVkZSA8dHJhY2UvZXZlbnRz L2RtYV9mZW5jZS5oPgo+ICAgI2luY2x1ZGUgPHVhcGkvbGludXgvc2NoZWQvdHlwZXMuaD4KPiAg IAo+ICAgI2luY2x1ZGUgImk5MTVfZHJ2LmgiCj4gQEAgLTk2LDkgKzk3LDMwIEBAIGNoZWNrX3Np Z25hbF9vcmRlcihzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsIHN0cnVjdCBpOTE1X3JlcXVlc3Qg KnJxKQo+ICAgCXJldHVybiB0cnVlOwo+ICAgfQo+ICAgCj4gK3N0YXRpYyB2b2lkCj4gK19fZG1h X2ZlbmNlX3NpZ25hbF90aW1lc3RhbXAoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsIGt0aW1lX3Qg dGltZXN0YW1wKQo+ICt7Cj4gKwlmZW5jZS0+dGltZXN0YW1wID0gdGltZXN0YW1wOwo+ICsJc2V0 X2JpdChETUFfRkVOQ0VfRkxBR19USU1FU1RBTVBfQklULCAmZmVuY2UtPmZsYWdzKTsKPiArCXRy YWNlX2RtYV9mZW5jZV9zaWduYWxlZChmZW5jZSk7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkCj4g K19fZG1hX2ZlbmNlX3NpZ25hbF9ub3RpZnkoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCj4gK3sK PiArCXN0cnVjdCBkbWFfZmVuY2VfY2IgKmN1ciwgKnRtcDsKPiArCj4gKwlsaXN0X2Zvcl9lYWNo X2VudHJ5X3NhZmUoY3VyLCB0bXAsICZmZW5jZS0+Y2JfbGlzdCwgbm9kZSkgewo+ICsJCUlOSVRf TElTVF9IRUFEKCZjdXItPm5vZGUpOwo+ICsJCWN1ci0+ZnVuYyhmZW5jZSwgY3VyKTsKPiArCX0K PiArCUlOSVRfTElTVF9IRUFEKCZmZW5jZS0+Y2JfbGlzdCk7Cj4gK30KPiArCj4gICB2b2lkIGlu dGVsX2VuZ2luZV9icmVhZGNydW1ic19pcnEoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l KQo+ICAgewo+ICAgCXN0cnVjdCBpbnRlbF9icmVhZGNydW1icyAqYiA9ICZlbmdpbmUtPmJyZWFk Y3J1bWJzOwo+ICsJY29uc3Qga3RpbWVfdCB0aW1lc3RhbXAgPSBrdGltZV9nZXQoKTsKPiAgIAlz dHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsICpjbjsKPiAgIAlzdHJ1Y3QgbGlzdF9oZWFkICpwb3Ms ICpuZXh0Owo+ICAgCUxJU1RfSEVBRChzaWduYWwpOwo+IEBAIC0xMjIsNiArMTQ0LDExIEBAIHZv aWQgaW50ZWxfZW5naW5lX2JyZWFkY3J1bWJzX2lycShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUpCj4gICAKPiAgIAkJCUdFTV9CVUdfT04oIXRlc3RfYml0KEk5MTVfRkVOQ0VfRkxBR19T SUdOQUwsCj4gICAJCQkJCSAgICAgJnJxLT5mZW5jZS5mbGFncykpOwo+ICsJCQljbGVhcl9iaXQo STkxNV9GRU5DRV9GTEFHX1NJR05BTCwgJnJxLT5mZW5jZS5mbGFncyk7Cj4gKwo+ICsJCQlpZiAo dGVzdF9hbmRfc2V0X2JpdChETUFfRkVOQ0VfRkxBR19TSUdOQUxFRF9CSVQsCj4gKwkJCQkJICAg ICAmcnEtPmZlbmNlLmZsYWdzKSkKCkkgd2FudGVkIHRoaXMgZGlyZWN0L29wZW4tY29kZWQgbWFu aXB1bGF0aW9uIHRvIGFsc28gYmUgY2xlYXJseSBjYWxsZWQgCm91dCBmb3IuCgpUbyBmb2xsb3cg dGhlIGNvbnZlbnRpb24gaW4gb3RoZXIgaGVscGVycyBoZXJlLCBpZiB5b3UgY291bGQgd3JhcCBp dCBpbiAKc29tZXRoaW5nIGxpa2UgX19kbWFfZmVuY2Vfc2lnbmFsX3JldHVybiBJIGNvdWxkIGxp dmUgd2l0aCBpdC4KClJlZ2FyZHMsCgpUdnJ0a28KCj4gKwkJCQljb250aW51ZTsKPiAgIAo+ICAg CQkJLyoKPiAgIAkJCSAqIFF1ZXVlIGZvciBleGVjdXRpb24gYWZ0ZXIgZHJvcHBpbmcgdGhlIHNp Z25hbGluZwo+IEBAIC0xMjksMTQgKzE1Niw2IEBAIHZvaWQgaW50ZWxfZW5naW5lX2JyZWFkY3J1 bWJzX2lycShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gICAJCQkgKiBtb3JlIHNp Z25hbGVycyB0byB0aGUgc2FtZSBjb250ZXh0IG9yIGVuZ2luZS4KPiAgIAkJCSAqLwo+ICAgCQkJ aTkxNV9yZXF1ZXN0X2dldChycSk7Cj4gLQo+IC0JCQkvKgo+IC0JCQkgKiBXZSBtYXkgcmFjZSB3 aXRoIGRpcmVjdCBpbnZvY2F0aW9uIG9mCj4gLQkJCSAqIGRtYV9mZW5jZV9zaWduYWwoKSwgZS5n LiBpOTE1X3JlcXVlc3RfcmV0aXJlKCksCj4gLQkJCSAqIHNvIHdlIG5lZWQgdG8gYWNxdWlyZSBv dXIgcmVmZXJlbmNlIHRvIHRoZSByZXF1ZXN0Cj4gLQkJCSAqIGJlZm9yZSB3ZSBjYW5jZWwgdGhl IGJyZWFkY3J1bWIuCj4gLQkJCSAqLwo+IC0JCQljbGVhcl9iaXQoSTkxNV9GRU5DRV9GTEFHX1NJ R05BTCwgJnJxLT5mZW5jZS5mbGFncyk7Cj4gICAJCQlsaXN0X2FkZF90YWlsKCZycS0+c2lnbmFs X2xpbmssICZzaWduYWwpOwo+ICAgCQl9Cj4gICAKPiBAQCAtMTU5LDcgKzE3OCwxMiBAQCB2b2lk IGludGVsX2VuZ2luZV9icmVhZGNydW1ic19pcnEoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lKQo+ICAgCQlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSA9Cj4gICAJCQlsaXN0X2VudHJ5KHBv cywgdHlwZW9mKCpycSksIHNpZ25hbF9saW5rKTsKPiAgIAo+IC0JCWRtYV9mZW5jZV9zaWduYWwo JnJxLT5mZW5jZSk7Cj4gKwkJX19kbWFfZmVuY2Vfc2lnbmFsX3RpbWVzdGFtcCgmcnEtPmZlbmNl LCB0aW1lc3RhbXApOwo+ICsKPiArCQlzcGluX2xvY2soJnJxLT5sb2NrKTsKPiArCQlfX2RtYV9m ZW5jZV9zaWduYWxfbm90aWZ5KCZycS0+ZmVuY2UpOwo+ICsJCXNwaW5fdW5sb2NrKCZycS0+bG9j ayk7Cj4gKwo+ICAgCQlpOTE1X3JlcXVlc3RfcHV0KHJxKTsKPiAgIAl9Cj4gICB9Cj4gQEAgLTI2 MSwxOSArMjg1LDE3IEBAIHZvaWQgaW50ZWxfZW5naW5lX2ZpbmlfYnJlYWRjcnVtYnMoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAgCj4gICBib29sIGk5MTVfcmVxdWVzdF9lbmFi bGVfYnJlYWRjcnVtYihzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKPiAgIHsKPiAtCXN0cnVjdCBp bnRlbF9icmVhZGNydW1icyAqYiA9ICZycS0+ZW5naW5lLT5icmVhZGNydW1iczsKPiAtCj4gLQlH RU1fQlVHX09OKHRlc3RfYml0KEk5MTVfRkVOQ0VfRkxBR19TSUdOQUwsICZycS0+ZmVuY2UuZmxh Z3MpKTsKPiAtCj4gLQlpZiAoIXRlc3RfYml0KEk5MTVfRkVOQ0VfRkxBR19BQ1RJVkUsICZycS0+ ZmVuY2UuZmxhZ3MpKQo+IC0JCXJldHVybiB0cnVlOwo+ICsJbG9ja2RlcF9hc3NlcnRfaGVsZCgm cnEtPmxvY2spOwo+ICsJbG9ja2RlcF9hc3NlcnRfaXJxc19kaXNhYmxlZCgpOwo+ICAgCj4gLQlz cGluX2xvY2soJmItPmlycV9sb2NrKTsKPiAtCWlmICh0ZXN0X2JpdChJOTE1X0ZFTkNFX0ZMQUdf QUNUSVZFLCAmcnEtPmZlbmNlLmZsYWdzKSAmJgo+IC0JICAgICFfX3JlcXVlc3RfY29tcGxldGVk KHJxKSkgewo+ICsJaWYgKHRlc3RfYml0KEk5MTVfRkVOQ0VfRkxBR19BQ1RJVkUsICZycS0+ZmVu Y2UuZmxhZ3MpKSB7Cj4gKwkJc3RydWN0IGludGVsX2JyZWFkY3J1bWJzICpiID0gJnJxLT5lbmdp bmUtPmJyZWFkY3J1bWJzOwo+ICAgCQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UgPSBycS0+aHdf Y29udGV4dDsKPiAgIAkJc3RydWN0IGxpc3RfaGVhZCAqcG9zOwo+ICAgCj4gKwkJc3Bpbl9sb2Nr KCZiLT5pcnFfbG9jayk7Cj4gKwkJR0VNX0JVR19PTih0ZXN0X2JpdChJOTE1X0ZFTkNFX0ZMQUdf U0lHTkFMLCAmcnEtPmZlbmNlLmZsYWdzKSk7Cj4gKwo+ICAgCQlfX2ludGVsX2JyZWFkY3J1bWJz X2FybV9pcnEoYik7Cj4gICAKPiAgIAkJLyoKPiBAQCAtMzAzLDggKzMyNSw4IEBAIGJvb2wgaTkx NV9yZXF1ZXN0X2VuYWJsZV9icmVhZGNydW1iKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQo+ICAg CQlHRU1fQlVHX09OKCFjaGVja19zaWduYWxfb3JkZXIoY2UsIHJxKSk7Cj4gICAKPiAgIAkJc2V0 X2JpdChJOTE1X0ZFTkNFX0ZMQUdfU0lHTkFMLCAmcnEtPmZlbmNlLmZsYWdzKTsKPiArCQlzcGlu X3VubG9jaygmYi0+aXJxX2xvY2spOwo+ICAgCX0KPiAtCXNwaW5fdW5sb2NrKCZiLT5pcnFfbG9j ayk7Cj4gICAKPiAgIAlyZXR1cm4gIV9fcmVxdWVzdF9jb21wbGV0ZWQocnEpOwo+ICAgfQo+IEBA IC0zMTMsOSArMzM1LDE1IEBAIHZvaWQgaTkxNV9yZXF1ZXN0X2NhbmNlbF9icmVhZGNydW1iKHN0 cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQo+ICAgewo+ICAgCXN0cnVjdCBpbnRlbF9icmVhZGNydW1i cyAqYiA9ICZycS0+ZW5naW5lLT5icmVhZGNydW1iczsKPiAgIAo+IC0JaWYgKCF0ZXN0X2JpdChJ OTE1X0ZFTkNFX0ZMQUdfU0lHTkFMLCAmcnEtPmZlbmNlLmZsYWdzKSkKPiAtCQlyZXR1cm47Cj4g Kwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZycS0+bG9jayk7Cj4gKwlsb2NrZGVwX2Fzc2VydF9pcnFz X2Rpc2FibGVkKCk7Cj4gICAKPiArCS8qCj4gKwkgKiBXZSBtdXN0IHdhaXQgZm9yIGItPmlycV9s b2NrIHNvIHRoYXQgd2Uga25vdyB0aGUgaW50ZXJydXB0IGhhbmRsZXIKPiArCSAqIGhhcyByZWxl YXNlZCBpdHMgcmVmZXJlbmNlIHRvIHRoZSBpbnRlbF9jb250ZXh0IGFuZCBoYXMgY29tcGxldGVk Cj4gKwkgKiB0aGUgRE1BX0ZFTkNFX0ZMQUdfU0lHTkFMRURfQklUL0k5MTVfRkVOQ0VfRkxBR19T SUdOQUwgZGFuY2UgKGlmCj4gKwkgKiByZXF1aXJlZCkuCj4gKwkgKi8KPiAgIAlzcGluX2xvY2so JmItPmlycV9sb2NrKTsKPiAgIAlpZiAodGVzdF9iaXQoSTkxNV9GRU5DRV9GTEFHX1NJR05BTCwg JnJxLT5mZW5jZS5mbGFncykpIHsKPiAgIAkJc3RydWN0IGludGVsX2NvbnRleHQgKmNlID0gcnEt Pmh3X2NvbnRleHQ7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVx dWVzdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmMKPiBpbmRleCA5NTEw ZGI1NjZhNTguLmNiZTQwOThjZDZlYyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3JlcXVlc3QuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVz dC5jCj4gQEAgLTQzNyw2ICs0MzcsNyBAQCB2b2lkIF9faTkxNV9yZXF1ZXN0X3N1Ym1pdChzdHJ1 Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0KQo+ICAgCXNldF9iaXQoSTkxNV9GRU5DRV9GTEFHX0FD VElWRSwgJnJlcXVlc3QtPmZlbmNlLmZsYWdzKTsKPiAgIAo+ICAgCWlmICh0ZXN0X2JpdChETUFf RkVOQ0VfRkxBR19FTkFCTEVfU0lHTkFMX0JJVCwgJnJlcXVlc3QtPmZlbmNlLmZsYWdzKSAmJgo+ ICsJICAgICF0ZXN0X2JpdChETUFfRkVOQ0VfRkxBR19TSUdOQUxFRF9CSVQsICZyZXF1ZXN0LT5m ZW5jZS5mbGFncykgJiYKPiAgIAkgICAgIWk5MTVfcmVxdWVzdF9lbmFibGVfYnJlYWRjcnVtYihy ZXF1ZXN0KSkKPiAgIAkJaW50ZWxfZW5naW5lX3F1ZXVlX2JyZWFkY3J1bWJzKGVuZ2luZSk7Cj4g ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX3N1Ym1pc3Np b24uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19zdWJtaXNzaW9uLmMKPiBpbmRl eCAzODBkODNhMmJmYjYuLmVhMGUzNzM0ZDM3YyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9ndWNfc3VibWlzc2lvbi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZ3VjX3N1Ym1pc3Npb24uYwo+IEBAIC0yMyw3ICsyMyw2IEBACj4gICAgKi8KPiAg IAo+ICAgI2luY2x1ZGUgPGxpbnV4L2NpcmNfYnVmLmg+Cj4gLSNpbmNsdWRlIDx0cmFjZS9ldmVu dHMvZG1hX2ZlbmNlLmg+Cj4gICAKPiAgICNpbmNsdWRlICJndC9pbnRlbF9lbmdpbmVfcG0uaCIK PiAgICNpbmNsdWRlICJndC9pbnRlbF9scmNfcmVnLmgiCj4gCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==