From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 29/32] drm/i915: Apply an execution_mask to the virtual_engine Date: Wed, 17 Apr 2019 12:43:49 +0100 Message-ID: References: <20190417075657.19456-1-chris@chris-wilson.co.uk> <20190417075657.19456-29-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 mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6D4566E033 for ; Wed, 17 Apr 2019 11:43:52 +0000 (UTC) In-Reply-To: <20190417075657.19456-29-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 Ck9uIDE3LzA0LzIwMTkgMDg6NTYsIENocmlzIFdpbHNvbiB3cm90ZToKPiBBbGxvdyB0aGUgdXNl ciB0byBkaXJlY3Qgd2hpY2ggcGh5c2ljYWwgZW5naW5lcyBvZiB0aGUgdmlydHVhbCBlbmdpbmUK PiB0aGV5IHdpc2ggdG8gZXhlY3V0ZSBvbmUsIGFzIHNvbWV0aW1lcyBpdCBpcyBuZWNlc3Nhcnkg dG8gb3ZlcnJpZGUgdGhlCj4gbG9hZCBiYWxhbmNpbmcgYWxnb3JpdGhtLgo+IAo+IFNpZ25lZC1v ZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+IC0tLQo+ICAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbHJjLmMgICAgfCAgNTggKysrKysrKysrKysK PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X2xyYy5jIHwgMTMxICsrKysrKysr KysrKysrKysrKysrKysrKysKPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5j ICAgIHwgICAxICsKPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5oICAgIHwg ICAzICsKPiAgIDQgZmlsZXMgY2hhbmdlZCwgMTkzIGluc2VydGlvbnMoKykKPiAKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9ndC9pbnRlbF9scmMuYwo+IGluZGV4IGQ2ZWZkNmFhNjdjYi4uNTYwYTE4YmI0Y2Ji IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2xyYy5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbHJjLmMKPiBAQCAtNTUyLDYgKzU1Miwx OCBAQCBleGVjbGlzdHNfY29udGV4dF9zY2hlZHVsZV9vdXQoc3RydWN0IGk5MTVfcmVxdWVzdCAq cnEsIHVuc2lnbmVkIGxvbmcgc3RhdHVzKQo+ICAgCWludGVsX2VuZ2luZV9jb250ZXh0X291dChy cS0+ZW5naW5lKTsKPiAgIAlleGVjbGlzdHNfY29udGV4dF9zdGF0dXNfY2hhbmdlKHJxLCBzdGF0 dXMpOwo+ICAgCXRyYWNlX2k5MTVfcmVxdWVzdF9vdXQocnEpOwo+ICsKPiArCS8qCj4gKwkgKiBJ ZiB0aGlzIGlzIHBhcnQgb2YgYSB2aXJ0dWFsIGVuZ2luZSwgaXRzIG5leHQgcmVxdWVzdCBtYXkg aGF2ZQo+ICsJICogYmVlbiBibG9ja2VkIHdhaXRpbmcgZm9yIGFjY2VzcyB0byB0aGUgYWN0aXZl IGNvbnRleHQuIFdlIGhhdmUKPiArCSAqIHRvIGtpY2sgYWxsIHRoZSBzaWJsaW5ncyBhZ2FpbiBp biBjYXNlIHdlIG5lZWQgdG8gc3dpdGNoIChlLmcuCj4gKwkgKiB0aGUgbmV4dCByZXF1ZXN0IGlz IG5vdCBydW5uYWJsZSBvbiB0aGlzIGVuZ2luZSkuIEhvcGVmdWxseSwKPiArCSAqIHdlIHdpbGwg YWxyZWFkeSBoYXZlIHN1Ym1pdHRlZCB0aGUgbmV4dCByZXF1ZXN0IGJlZm9yZSB0aGUKPiArCSAq IHRhc2tsZXQgcnVucyBhbmQgZG8gbm90IG5lZWQgdG8gcmVidWlsZCBlYWNoIHZpcnR1YWwgdHJl ZQo+ICsJICogYW5kIGtpY2sgZXZlcnlvbmUgYWdhaW4uCj4gKwkgKi8KPiArCWlmIChycS0+ZW5n aW5lICE9IHJxLT5od19jb250ZXh0LT5lbmdpbmUpCj4gKwkJdGFza2xldF9zY2hlZHVsZSgmcnEt Pmh3X2NvbnRleHQtPmVuZ2luZS0+ZXhlY2xpc3RzLnRhc2tsZXQpOwoKSXMgdGhpcyBuZWVkZWQg b25seSBmb3Igbm9uLWRlZmF1bHQgZXhlY3V0aW9uX21hc2s/IElmIHNvIGl0IHdvdWxkIGJlIApn b29kIHRvIGxpbWl0IGl0IHRvIGF2b2lkIHRhc2tsZXQgc3Rvcm0gd2l0aCBwbGFpbiB2ZW5nLgoK PiAgIH0KPiAgIAo+ICAgc3RhdGljIHU2NCBleGVjbGlzdHNfdXBkYXRlX2NvbnRleHQoc3RydWN0 IGk5MTVfcmVxdWVzdCAqcnEpCj4gQEAgLTc3OSw2ICs3OTEsOSBAQCBzdGF0aWMgYm9vbCB2aXJ0 dWFsX21hdGNoZXMoY29uc3Qgc3RydWN0IHZpcnR1YWxfZW5naW5lICp2ZSwKPiAgIHsKPiAgIAlj b25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICphY3RpdmU7Cj4gICAKPiArCWlmICghKHJxLT5l eGVjdXRpb25fbWFzayAmIGVuZ2luZS0+bWFzaykpIC8qIFdlIHBlZWtlZCB0b28gc29vbiEgKi8K PiArCQlyZXR1cm4gZmFsc2U7Cj4gKwo+ICAgCS8qCj4gICAJICogV2UgdHJhY2sgd2hlbiB0aGUg SFcgaGFzIGNvbXBsZXRlZCBzYXZpbmcgdGhlIGNvbnRleHQgaW1hZ2UKPiAgIAkgKiAoaS5lLiB3 aGVuIHdlIGhhdmUgc2VlbiB0aGUgZmluYWwgQ1MgZXZlbnQgc3dpdGNoaW5nIG91dCBvZgo+IEBA IC0zMTM5LDEyICszMTU0LDQ0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfY29udGV4dF9v cHMgdmlydHVhbF9jb250ZXh0X29wcyA9IHsKPiAgIAkuZGVzdHJveSA9IHZpcnR1YWxfY29udGV4 dF9kZXN0cm95LAo+ICAgfTsKPiAgIAo+ICtzdGF0aWMgaW50ZWxfZW5naW5lX21hc2tfdCB2aXJ0 dWFsX3N1Ym1pc3Npb25fbWFzayhzdHJ1Y3QgdmlydHVhbF9lbmdpbmUgKnZlKQo+ICt7Cj4gKwlz dHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycTsKPiArCWludGVsX2VuZ2luZV9tYXNrX3QgbWFzazsKCmlu dGVsX2VuZ2luZV9tYXNrX3QgdGhyb3VnaG91dCBpcyB0aGUgd3JvbmcgdHlwZSBmb3IgdGhpcywg ZXZlbiBpZiB3ZSAKZGlzYWxsb3dlZCBkdXBsaWNhdGUgc2libGluZ3MsIGFuZCBldmVuIG1vcmUg c28gaWYgd2UgZG9uJ3QuCgpFaXRoZXIgd2F5IGl0IHNlZW1zIGxpa2UgdGhlIDY0IHNpYmxpbmcg bGltaXQgbmVlZHMgdG8gYmUgYmFjay4gT3IgbWF5YmUgCm9ubHkgaW4gdGhlIGJvbmRpbmcgY2Fz ZT8KCj4gKwo+ICsJcnEgPSBSRUFEX09OQ0UodmUtPnJlcXVlc3QpOwo+ICsJaWYgKCFycSkKPiAr CQlyZXR1cm4gMDsKPiArCj4gKwkvKiBUaGUgcnEgaXMgcmVhZHkgZm9yIHN1Ym1pc3Npb247IHJx LT5leGVjdXRpb25fbWFzayBpcyBub3cgc3RhYmxlLiAqLwo+ICsJbWFzayA9IHJxLT5leGVjdXRp b25fbWFzazsKPiArCWlmICh1bmxpa2VseSghbWFzaykpIHsKPiArCQkvKiBJbnZhbGlkIHNlbGVj dGlvbiwgc3VibWl0IHRvIGEgcmFuZG9tIGVuZ2luZSBpbiBlcnJvciAqLwo+ICsJCWk5MTVfcmVx dWVzdF9za2lwKHJxLCAtRU5PREVWKTsKCldoZW4gY2FuIHRoaXMgaGFwcGVuPyBJdCBsb29rcyBs aWtlIGlmIGl0IGNhbiBoYXBwZW4gd2Ugc2hvdWxkIHJlamVjdCBpdCAKZWFybGllci4gT3IgaWYg aXQgY2FuJ3QgdGhlbiBqdXN0IGFzc2VydC4KCj4gKwkJbWFzayA9IHZlLT5zaWJsaW5nc1swXS0+ bWFzazsKPiArCX0KPiArCj4gKwlHRU1fVFJBQ0UoIiVzOiBycT0lbGx4OiVsbGQsIG1hc2s9JXgs IHByaW89JWRcbiIsCj4gKwkJICB2ZS0+YmFzZS5uYW1lLAo+ICsJCSAgcnEtPmZlbmNlLmNvbnRl eHQsIHJxLT5mZW5jZS5zZXFubywKPiArCQkgIG1hc2ssIHZlLT5iYXNlLmV4ZWNsaXN0cy5xdWV1 ZV9wcmlvcml0eV9oaW50KTsKPiArCj4gKwlyZXR1cm4gbWFzazsKPiArfQo+ICsKPiAgIHN0YXRp YyB2b2lkIHZpcnR1YWxfc3VibWlzc2lvbl90YXNrbGV0KHVuc2lnbmVkIGxvbmcgZGF0YSkKPiAg IHsKPiAgIAlzdHJ1Y3QgdmlydHVhbF9lbmdpbmUgKiBjb25zdCB2ZSA9IChzdHJ1Y3QgdmlydHVh bF9lbmdpbmUgKilkYXRhOwo+ICAgCWNvbnN0IGludCBwcmlvID0gdmUtPmJhc2UuZXhlY2xpc3Rz LnF1ZXVlX3ByaW9yaXR5X2hpbnQ7Cj4gKwlpbnRlbF9lbmdpbmVfbWFza190IG1hc2s7Cj4gICAJ dW5zaWduZWQgaW50IG47Cj4gICAKPiArCXJjdV9yZWFkX2xvY2soKTsKPiArCW1hc2sgPSB2aXJ0 dWFsX3N1Ym1pc3Npb25fbWFzayh2ZSk7Cj4gKwlyY3VfcmVhZF91bmxvY2soKTsKCldoYXQgaXMg dGhlIFJDVSBmb3I/Cgo+ICsJaWYgKHVubGlrZWx5KCFtYXNrKSkKPiArCQlyZXR1cm47Cj4gKwo+ ICAgCWxvY2FsX2lycV9kaXNhYmxlKCk7Cj4gICAJZm9yIChuID0gMDsgUkVBRF9PTkNFKHZlLT5y ZXF1ZXN0KSAmJiBuIDwgdmUtPm51bV9zaWJsaW5nczsgbisrKSB7Cj4gICAJCXN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKnNpYmxpbmcgPSB2ZS0+c2libGluZ3Nbbl07Cj4gQEAgLTMxNTIsNiArMzE5 OSwxNyBAQCBzdGF0aWMgdm9pZCB2aXJ0dWFsX3N1Ym1pc3Npb25fdGFza2xldCh1bnNpZ25lZCBs b25nIGRhdGEpCj4gICAJCXN0cnVjdCByYl9ub2RlICoqcGFyZW50LCAqcmI7Cj4gICAJCWJvb2wg Zmlyc3Q7Cj4gICAKPiArCQlpZiAodW5saWtlbHkoIShtYXNrICYgc2libGluZy0+bWFzaykpKSB7 Cj4gKwkJCWlmICghUkJfRU1QVFlfTk9ERSgmbm9kZS0+cmIpKSB7Cj4gKwkJCQlzcGluX2xvY2so JnNpYmxpbmctPnRpbWVsaW5lLmxvY2spOwo+ICsJCQkJcmJfZXJhc2VfY2FjaGVkKCZub2RlLT5y YiwKPiArCQkJCQkJJnNpYmxpbmctPmV4ZWNsaXN0cy52aXJ0dWFsKTsKPiArCQkJCVJCX0NMRUFS X05PREUoJm5vZGUtPnJiKTsKPiArCQkJCXNwaW5fdW5sb2NrKCZzaWJsaW5nLT50aW1lbGluZS5s b2NrKTsKPiArCQkJfQo+ICsJCQljb250aW51ZTsKPiArCQl9Cj4gKwo+ICAgCQlzcGluX2xvY2so JnNpYmxpbmctPnRpbWVsaW5lLmxvY2spOwo+ICAgCj4gICAJCWlmICghUkJfRU1QVFlfTk9ERSgm bm9kZS0+cmIpKSB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0 ZXN0X2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfbHJjLmMKPiBpbmRl eCBmMzRhYTllMDQyYTMuLjIwOWU1MWVmMTNlNiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9ndC9zZWxmdGVzdF9scmMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0 L3NlbGZ0ZXN0X2xyYy5jCj4gQEAgLTE0ODAsNiArMTQ4MCwxMzYgQEAgc3RhdGljIGludCBsaXZl X3ZpcnR1YWxfZW5naW5lKHZvaWQgKmFyZykKPiAgIAlyZXR1cm4gZXJyOwo+ICAgfQo+ICAgCj4g K3N0YXRpYyBpbnQgbWFza192aXJ0dWFsX2VuZ2luZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq aTkxNSwKPiArCQkJICAgICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKipzaWJsaW5ncywKPiAr CQkJICAgICAgIHVuc2lnbmVkIGludCBuc2libGluZykKPiArewo+ICsJc3RydWN0IGk5MTVfcmVx dWVzdCAqcmVxdWVzdFtNQVhfRU5HSU5FX0lOU1RBTkNFICsgMV07Cj4gKwlzdHJ1Y3QgaTkxNV9n ZW1fY29udGV4dCAqY3R4Owo+ICsJc3RydWN0IGludGVsX2NvbnRleHQgKnZlOwo+ICsJc3RydWN0 IGlndF9saXZlX3Rlc3QgdDsKPiArCXVuc2lnbmVkIGludCBuOwo+ICsJaW50IGVycjsKPiArCj4g KwkvKgo+ICsJICogQ2hlY2sgdGhhdCBieSBzZXR0aW5nIHRoZSBleGVjdXRpb24gbWFzayBvbiBh IHJlcXVlc3QsIHdlIGNhbgo+ICsJICogcmVzdHJpY3QgaXQgdG8gb3VyIGRlc2lyZWQgZW5naW5l IHdpdGhpbiB0aGUgdmlydHVhbCBlbmdpbmUuCj4gKwkgKi8KPiArCj4gKwljdHggPSBrZXJuZWxf Y29udGV4dChpOTE1KTsKPiArCWlmICghY3R4KQo+ICsJCXJldHVybiAtRU5PTUVNOwo+ICsKPiAr CXZlID0gaW50ZWxfZXhlY2xpc3RzX2NyZWF0ZV92aXJ0dWFsKGN0eCwgc2libGluZ3MsIG5zaWJs aW5nKTsKPiArCWlmIChJU19FUlIodmUpKSB7Cj4gKwkJZXJyID0gUFRSX0VSUih2ZSk7Cj4gKwkJ Z290byBvdXRfY2xvc2U7Cj4gKwl9Cj4gKwo+ICsJZXJyID0gaW50ZWxfY29udGV4dF9waW4odmUp Owo+ICsJaWYgKGVycikKPiArCQlnb3RvIG91dF9wdXQ7Cj4gKwo+ICsJZXJyID0gaWd0X2xpdmVf dGVzdF9iZWdpbigmdCwgaTkxNSwgX19mdW5jX18sIHZlLT5lbmdpbmUtPm5hbWUpOwo+ICsJaWYg KGVycikKPiArCQlnb3RvIG91dF91bnBpbjsKPiArCj4gKwlmb3IgKG4gPSAwOyBuIDwgbnNpYmxp bmc7IG4rKykgewo+ICsJCXJlcXVlc3Rbbl0gPSBpOTE1X3JlcXVlc3RfY3JlYXRlKHZlKTsKPiAr CQlpZiAoSVNfRVJSKHJlcXVlc3QpKSB7Cj4gKwkJCWVyciA9IFBUUl9FUlIocmVxdWVzdCk7Cj4g KwkJCW5zaWJsaW5nID0gbjsKPiArCQkJZ290byBvdXQ7Cj4gKwkJfQo+ICsKPiArCQkvKiBSZXZl cnNlIG9yZGVyIGFzIGl0J3MgbW9yZSBsaWtlbHkgdG8gYmUgdW5uYXR1cmFsICovCj4gKwkJcmVx dWVzdFtuXS0+ZXhlY3V0aW9uX21hc2sgPSBzaWJsaW5nc1tuc2libGluZyAtIG4gLSAxXS0+bWFz azsKPiArCj4gKwkJaTkxNV9yZXF1ZXN0X2dldChyZXF1ZXN0W25dKTsKPiArCQlpOTE1X3JlcXVl c3RfYWRkKHJlcXVlc3Rbbl0pOwo+ICsJfQo+ICsKPiArCWZvciAobiA9IDA7IG4gPCBuc2libGlu ZzsgbisrKSB7Cj4gKwkJaWYgKGk5MTVfcmVxdWVzdF93YWl0KHJlcXVlc3Rbbl0sIEk5MTVfV0FJ VF9MT0NLRUQsIEhaIC8gMTApIDwgMCkgewo+ICsJCQlwcl9lcnIoIiVzKCVzKTogd2FpdCBmb3Ig JWxseDolbGxkIHRpbWVkIG91dFxuIiwKPiArCQkJICAgICAgIF9fZnVuY19fLCB2ZS0+ZW5naW5l LT5uYW1lLAo+ICsJCQkgICAgICAgcmVxdWVzdFtuXS0+ZmVuY2UuY29udGV4dCwKPiArCQkJICAg ICAgIHJlcXVlc3Rbbl0tPmZlbmNlLnNlcW5vKTsKPiArCj4gKwkJCUdFTV9UUkFDRSgiJXMoJXMp IGZhaWxlZCBhdCByZXF1ZXN0ICVsbHg6JWxsZFxuIiwKPiArCQkJCSAgX19mdW5jX18sIHZlLT5l bmdpbmUtPm5hbWUsCj4gKwkJCQkgIHJlcXVlc3Rbbl0tPmZlbmNlLmNvbnRleHQsCj4gKwkJCQkg IHJlcXVlc3Rbbl0tPmZlbmNlLnNlcW5vKTsKPiArCQkJR0VNX1RSQUNFX0RVTVAoKTsKPiArCQkJ aTkxNV9nZW1fc2V0X3dlZGdlZChpOTE1KTsKPiArCQkJZXJyID0gLUVJTzsKPiArCQkJZ290byBv dXQ7Cj4gKwkJfQo+ICsKPiArCQlpZiAocmVxdWVzdFtuXS0+ZW5naW5lICE9IHNpYmxpbmdzW25z aWJsaW5nIC0gbiAtIDFdKSB7Cj4gKwkJCXByX2VycigiRXhlY3V0ZWQgb24gd3Jvbmcgc2libGlu ZyAnJXMnLCBleHBlY3RlZCAnJXMnXG4iLAo+ICsJCQkgICAgICAgcmVxdWVzdFtuXS0+ZW5naW5l LT5uYW1lLAo+ICsJCQkgICAgICAgc2libGluZ3NbbnNpYmxpbmcgLSBuIC0gMV0tPm5hbWUpOwo+ ICsJCQllcnIgPSAtRUlOVkFMOwo+ICsJCQlnb3RvIG91dDsKPiArCQl9Cj4gKwl9Cj4gKwo+ICsJ ZXJyID0gaWd0X2xpdmVfdGVzdF9lbmQoJnQpOwo+ICsJaWYgKGVycikKPiArCQlnb3RvIG91dDsK PiArCj4gK291dDoKPiArCWlmIChpZ3RfZmx1c2hfdGVzdChpOTE1LCBJOTE1X1dBSVRfTE9DS0VE KSkKPiArCQllcnIgPSAtRUlPOwo+ICsKPiArCWZvciAobiA9IDA7IG4gPCBuc2libGluZzsgbisr KQo+ICsJCWk5MTVfcmVxdWVzdF9wdXQocmVxdWVzdFtuXSk7Cj4gKwo+ICtvdXRfdW5waW46Cj4g KwlpbnRlbF9jb250ZXh0X3VucGluKHZlKTsKPiArb3V0X3B1dDoKPiArCWludGVsX2NvbnRleHRf cHV0KHZlKTsKPiArb3V0X2Nsb3NlOgo+ICsJa2VybmVsX2NvbnRleHRfY2xvc2UoY3R4KTsKPiAr CXJldHVybiBlcnI7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgbGl2ZV92aXJ0dWFsX21hc2sodm9p ZCAqYXJnKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGFyZzsKPiAr CXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnNpYmxpbmdzW01BWF9FTkdJTkVfSU5TVEFOQ0UgKyAx XTsKPiArCXVuc2lnbmVkIGludCBjbGFzcywgaW5zdDsKPiArCWludCBlcnIgPSAwOwo+ICsKPiAr CWlmIChVU0VTX0dVQ19TVUJNSVNTSU9OKGk5MTUpKQo+ICsJCXJldHVybiAwOwo+ICsKPiArCW11 dGV4X2xvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwo+ICsKPiArCWZvciAoY2xhc3MgPSAw OyBjbGFzcyA8PSBNQVhfRU5HSU5FX0NMQVNTOyBjbGFzcysrKSB7Cj4gKwkJdW5zaWduZWQgaW50 IG5zaWJsaW5nOwo+ICsKPiArCQluc2libGluZyA9IDA7Cj4gKwkJZm9yIChpbnN0ID0gMDsgaW5z dCA8PSBNQVhfRU5HSU5FX0lOU1RBTkNFOyBpbnN0KyspIHsKPiArCQkJaWYgKCFpOTE1LT5lbmdp bmVfY2xhc3NbY2xhc3NdW2luc3RdKQo+ICsJCQkJYnJlYWs7Cj4gKwo+ICsJCQlzaWJsaW5nc1tu c2libGluZysrXSA9IGk5MTUtPmVuZ2luZV9jbGFzc1tjbGFzc11baW5zdF07Cj4gKwkJfQo+ICsJ CWlmIChuc2libGluZyA8IDIpCj4gKwkJCWNvbnRpbnVlOwo+ICsKPiArCQllcnIgPSBtYXNrX3Zp cnR1YWxfZW5naW5lKGk5MTUsIHNpYmxpbmdzLCBuc2libGluZyk7Cj4gKwkJaWYgKGVycikKPiAr CQkJZ290byBvdXRfdW5sb2NrOwo+ICsJfQo+ICsKPiArb3V0X3VubG9jazoKPiArCW11dGV4X3Vu bG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Cj4gKwlyZXR1cm4gZXJyOwo+ICt9Cj4gKwo+ ICAgaW50IGludGVsX2V4ZWNsaXN0c19saXZlX3NlbGZ0ZXN0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqaTkxNSkKPiAgIHsKPiAgIAlzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfc3VidGVzdCB0 ZXN0c1tdID0gewo+IEBAIC0xNDkzLDYgKzE2MjMsNyBAQCBpbnQgaW50ZWxfZXhlY2xpc3RzX2xp dmVfc2VsZnRlc3RzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+ICAgCQlTVUJURVNU KGxpdmVfcHJlZW1wdF9oYW5nKSwKPiAgIAkJU1VCVEVTVChsaXZlX3ByZWVtcHRfc21va2UpLAo+ ICAgCQlTVUJURVNUKGxpdmVfdmlydHVhbF9lbmdpbmUpLAo+ICsJCVNVQlRFU1QobGl2ZV92aXJ0 dWFsX21hc2spLAo+ICAgCX07Cj4gICAKPiAgIAlpZiAoIUhBU19FWEVDTElTVFMoaTkxNSkpCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmMKPiBpbmRleCA0NmY0ZmMyYTg4NDAuLjc4YzA3 ZTEzMTUyMSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3Qu Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5jCj4gQEAgLTY4OCw2 ICs2ODgsNyBAQCBfX2k5MTVfcmVxdWVzdF9jcmVhdGUoc3RydWN0IGludGVsX2NvbnRleHQgKmNl LCBnZnBfdCBnZnApCj4gICAJcnEtPmJhdGNoID0gTlVMTDsKPiAgIAlycS0+Y2FwdHVyZV9saXN0 ID0gTlVMTDsKPiAgIAlycS0+d2FpdGJvb3N0ID0gZmFsc2U7Cj4gKwlycS0+ZXhlY3V0aW9uX21h c2sgPSBBTExfRU5HSU5FUzsKPiAgIAo+ICAgCUlOSVRfTElTVF9IRUFEKCZycS0+YWN0aXZlX2xp c3QpOwo+ICAgCUlOSVRfTElTVF9IRUFEKCZycS0+ZXhlY3V0ZV9jYik7Cj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9yZXF1ZXN0LmgKPiBpbmRleCA4MDI1YTg5YjU5OTkuLmQ3ZjliMjE5NDU2OCAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuaAo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5oCj4gQEAgLTI4LDYgKzI4LDggQEAKPiAg ICNpbmNsdWRlIDxsaW51eC9kbWEtZmVuY2UuaD4KPiAgICNpbmNsdWRlIDxsaW51eC9sb2NrZGVw Lmg+Cj4gICAKPiArI2luY2x1ZGUgImd0L2ludGVsX2VuZ2luZV90eXBlcy5oIgo+ICsKPiAgICNp bmNsdWRlICJpOTE1X2dlbS5oIgo+ICAgI2luY2x1ZGUgImk5MTVfc2NoZWR1bGVyLmgiCj4gICAj aW5jbHVkZSAiaTkxNV9zZWxmdGVzdC5oIgo+IEBAIC0xNTYsNiArMTU4LDcgQEAgc3RydWN0IGk5 MTVfcmVxdWVzdCB7Cj4gICAJICovCj4gICAJc3RydWN0IGk5MTVfc2NoZWRfbm9kZSBzY2hlZDsK PiAgIAlzdHJ1Y3QgaTkxNV9kZXBlbmRlbmN5IGRlcDsKPiArCWludGVsX2VuZ2luZV9tYXNrX3Qg ZXhlY3V0aW9uX21hc2s7Cj4gICAKPiAgIAkvKgo+ICAgCSAqIEEgY29udmVuaWVuY2UgcG9pbnRl ciB0byB0aGUgY3VycmVudCBicmVhZGNydW1iIHZhbHVlIHN0b3JlZCBpbgo+IAoKUmVnYXJkcywK ClR2cnRrbwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=