From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 20/45] drm/i915: Apply an execution_mask to the virtual_engine Date: Mon, 29 Apr 2019 15:12:23 +0100 Message-ID: References: <20190425092004.9995-1-chris@chris-wilson.co.uk> <20190425092004.9995-20-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 mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2C22B891D1 for ; Mon, 29 Apr 2019 14:12:26 +0000 (UTC) In-Reply-To: <20190425092004.9995-20-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 Ck9uIDI1LzA0LzIwMTkgMTA6MTksIENocmlzIFdpbHNvbiB3cm90ZToKPiBBbGxvdyB0aGUgdXNl ciB0byBkaXJlY3Qgd2hpY2ggcGh5c2ljYWwgZW5naW5lcyBvZiB0aGUgdmlydHVhbCBlbmdpbmUK PiB0aGV5IHdpc2ggdG8gZXhlY3V0ZSBvbmUsIGFzIHNvbWV0aW1lcyBpdCBpcyBuZWNlc3Nhcnkg dG8gb3ZlcnJpZGUgdGhlCj4gbG9hZCBiYWxhbmNpbmcgYWxnb3JpdGhtLgo+IAo+IHYyOiBPbmx5 IGtpY2sgdGhlIHZpcnR1YWwgZW5naW5lcyBvbiBjb250ZXh0LW91dCBpZiByZXF1aXJlZAo+IAo+ IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+ IENjOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgo+IC0tLQo+ICAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbHJjLmMgICAgfCAgNjcgKysrKysrKysrKysr Kwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfbHJjLmMgfCAxMzEgKysrKysr KysrKysrKysrKysrKysrKysrKwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0 LmMgICAgfCAgIDEgKwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmggICAg fCAgIDMgKwo+ICAgNCBmaWxlcyBjaGFuZ2VkLCAyMDIgaW5zZXJ0aW9ucygrKQo+IAo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2d0L2ludGVsX2xyYy5jCj4gaW5kZXggZThmYWYzNDE3ZjljLi44YWNmOWQxYzZm MmYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbHJjLmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9scmMuYwo+IEBAIC01NDksNiArNTQ5 LDE1IEBAIGV4ZWNsaXN0c19jb250ZXh0X3NjaGVkdWxlX2luKHN0cnVjdCBpOTE1X3JlcXVlc3Qg KnJxKQo+ICAgCXJxLT5od19jb250ZXh0LT5hY3RpdmUgPSBycS0+ZW5naW5lOwo+ICAgfQo+ICAg Cj4gK3N0YXRpYyB2b2lkIGtpY2tfc2libGluZ3Moc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCj4g K3sKPiArCXN0cnVjdCB2aXJ0dWFsX2VuZ2luZSAqdmUgPSB0b192aXJ0dWFsX2VuZ2luZShycS0+ aHdfY29udGV4dC0+ZW5naW5lKTsKPiArCXN0cnVjdCBpOTE1X3JlcXVlc3QgKm5leHQgPSBSRUFE X09OQ0UodmUtPnJlcXVlc3QpOwo+ICsKPiArCWlmIChuZXh0ICYmIG5leHQtPmV4ZWN1dGlvbl9t YXNrICYgfnJxLT5leGVjdXRpb25fbWFzaykKPiArCQl0YXNrbGV0X3NjaGVkdWxlKCZ2ZS0+YmFz ZS5leGVjbGlzdHMudGFza2xldCk7Cj4gK30KPiArCj4gICBzdGF0aWMgaW5saW5lIHZvaWQKPiAg IGV4ZWNsaXN0c19jb250ZXh0X3NjaGVkdWxlX291dChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwg dW5zaWduZWQgbG9uZyBzdGF0dXMpCj4gICB7Cj4gQEAgLTU1Niw2ICs1NjUsMTggQEAgZXhlY2xp c3RzX2NvbnRleHRfc2NoZWR1bGVfb3V0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLCB1bnNpZ25l ZCBsb25nIHN0YXR1cykKPiAgIAlpbnRlbF9lbmdpbmVfY29udGV4dF9vdXQocnEtPmVuZ2luZSk7 Cj4gICAJZXhlY2xpc3RzX2NvbnRleHRfc3RhdHVzX2NoYW5nZShycSwgc3RhdHVzKTsKPiAgIAl0 cmFjZV9pOTE1X3JlcXVlc3Rfb3V0KHJxKTsKPiArCj4gKwkvKgo+ICsJICogSWYgdGhpcyBpcyBw YXJ0IG9mIGEgdmlydHVhbCBlbmdpbmUsIGl0cyBuZXh0IHJlcXVlc3QgbWF5IGhhdmUKPiArCSAq IGJlZW4gYmxvY2tlZCB3YWl0aW5nIGZvciBhY2Nlc3MgdG8gdGhlIGFjdGl2ZSBjb250ZXh0LiBX ZSBoYXZlCj4gKwkgKiB0byBraWNrIGFsbCB0aGUgc2libGluZ3MgYWdhaW4gaW4gY2FzZSB3ZSBu ZWVkIHRvIHN3aXRjaCAoZS5nLgo+ICsJICogdGhlIG5leHQgcmVxdWVzdCBpcyBub3QgcnVubmFi bGUgb24gdGhpcyBlbmdpbmUpLiBIb3BlZnVsbHksCj4gKwkgKiB3ZSB3aWxsIGFscmVhZHkgaGF2 ZSBzdWJtaXR0ZWQgdGhlIG5leHQgcmVxdWVzdCBiZWZvcmUgdGhlCj4gKwkgKiB0YXNrbGV0IHJ1 bnMgYW5kIGRvIG5vdCBuZWVkIHRvIHJlYnVpbGQgZWFjaCB2aXJ0dWFsIHRyZWUKPiArCSAqIGFu ZCBraWNrIGV2ZXJ5b25lIGFnYWluLgo+ICsJICovCj4gKwlpZiAocnEtPmVuZ2luZSAhPSBycS0+ aHdfY29udGV4dC0+ZW5naW5lKQo+ICsJCWtpY2tfc2libGluZ3MocnEpOwo+ICAgfQo+ICAgCj4g ICBzdGF0aWMgdTY0IGV4ZWNsaXN0c191cGRhdGVfY29udGV4dChzdHJ1Y3QgaTkxNV9yZXF1ZXN0 ICpycSkKPiBAQCAtNzgzLDYgKzgwNCw5IEBAIHN0YXRpYyBib29sIHZpcnR1YWxfbWF0Y2hlcyhj b25zdCBzdHJ1Y3QgdmlydHVhbF9lbmdpbmUgKnZlLAo+ICAgewo+ICAgCWNvbnN0IHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmFjdGl2ZTsKPiAgIAo+ICsJaWYgKCEocnEtPmV4ZWN1dGlvbl9tYXNr ICYgZW5naW5lLT5tYXNrKSkgLyogV2UgcGVla2VkIHRvbyBzb29uISAqLwo+ICsJCXJldHVybiBm YWxzZTsKPiArCj4gICAJLyoKPiAgIAkgKiBXZSB0cmFjayB3aGVuIHRoZSBIVyBoYXMgY29tcGxl dGVkIHNhdmluZyB0aGUgY29udGV4dCBpbWFnZQo+ICAgCSAqIChpLmUuIHdoZW4gd2UgaGF2ZSBz ZWVuIHRoZSBmaW5hbCBDUyBldmVudCBzd2l0Y2hpbmcgb3V0IG9mCj4gQEAgLTMxNDEsMTIgKzMx NjUsNDQgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9jb250ZXh0X29wcyB2aXJ0dWFsX2Nv bnRleHRfb3BzID0gewo+ICAgCS5kZXN0cm95ID0gdmlydHVhbF9jb250ZXh0X2Rlc3Ryb3ksCj4g ICB9Owo+ICAgCj4gK3N0YXRpYyBpbnRlbF9lbmdpbmVfbWFza190IHZpcnR1YWxfc3VibWlzc2lv bl9tYXNrKHN0cnVjdCB2aXJ0dWFsX2VuZ2luZSAqdmUpCj4gK3sKPiArCXN0cnVjdCBpOTE1X3Jl cXVlc3QgKnJxOwo+ICsJaW50ZWxfZW5naW5lX21hc2tfdCBtYXNrOwo+ICsKPiArCXJxID0gUkVB RF9PTkNFKHZlLT5yZXF1ZXN0KTsKPiArCWlmICghcnEpCj4gKwkJcmV0dXJuIDA7Cj4gKwo+ICsJ LyogVGhlIHJxIGlzIHJlYWR5IGZvciBzdWJtaXNzaW9uOyBycS0+ZXhlY3V0aW9uX21hc2sgaXMg bm93IHN0YWJsZS4gKi8KPiArCW1hc2sgPSBycS0+ZXhlY3V0aW9uX21hc2s7Cj4gKwlpZiAodW5s aWtlbHkoIW1hc2spKSB7Cj4gKwkJLyogSW52YWxpZCBzZWxlY3Rpb24sIHN1Ym1pdCB0byBhIHJh bmRvbSBlbmdpbmUgaW4gZXJyb3IgKi8KPiArCQlpOTE1X3JlcXVlc3Rfc2tpcChycSwgLUVOT0RF Vik7Cj4gKwkJbWFzayA9IHZlLT5zaWJsaW5nc1swXS0+bWFzazsKPiArCX0KPiArCj4gKwlHRU1f VFJBQ0UoIiVzOiBycT0lbGx4OiVsbGQsIG1hc2s9JXgsIHByaW89JWRcbiIsCj4gKwkJICB2ZS0+ YmFzZS5uYW1lLAo+ICsJCSAgcnEtPmZlbmNlLmNvbnRleHQsIHJxLT5mZW5jZS5zZXFubywKPiAr CQkgIG1hc2ssIHZlLT5iYXNlLmV4ZWNsaXN0cy5xdWV1ZV9wcmlvcml0eV9oaW50KTsKPiArCj4g KwlyZXR1cm4gbWFzazsKPiArfQo+ICsKPiAgIHN0YXRpYyB2b2lkIHZpcnR1YWxfc3VibWlzc2lv bl90YXNrbGV0KHVuc2lnbmVkIGxvbmcgZGF0YSkKPiAgIHsKPiAgIAlzdHJ1Y3QgdmlydHVhbF9l bmdpbmUgKiBjb25zdCB2ZSA9IChzdHJ1Y3QgdmlydHVhbF9lbmdpbmUgKilkYXRhOwo+ICAgCWNv bnN0IGludCBwcmlvID0gdmUtPmJhc2UuZXhlY2xpc3RzLnF1ZXVlX3ByaW9yaXR5X2hpbnQ7Cj4g KwlpbnRlbF9lbmdpbmVfbWFza190IG1hc2s7Cj4gICAJdW5zaWduZWQgaW50IG47Cj4gICAKPiAr CXJjdV9yZWFkX2xvY2soKTsKPiArCW1hc2sgPSB2aXJ0dWFsX3N1Ym1pc3Npb25fbWFzayh2ZSk7 Cj4gKwlyY3VfcmVhZF91bmxvY2soKTsKPiArCWlmICh1bmxpa2VseSghbWFzaykpCgpJcyB0aGUg cmN1X2xvY2sgdGhpbmsgc29sZWx5IGZvciB0aGUgc2FtZSBwcm90ZWN0aW9uIGFnYWluc3Qgd2Vk Z2luZyBpbiAKc3VibWl0X25vdGlmeT8KClJlZ2FyZHMsCgpUdnJ0a28KCj4gKwkJcmV0dXJuOwo+ ICsKPiAgIAlsb2NhbF9pcnFfZGlzYWJsZSgpOwo+ICAgCWZvciAobiA9IDA7IFJFQURfT05DRSh2 ZS0+cmVxdWVzdCkgJiYgbiA8IHZlLT5udW1fc2libGluZ3M7IG4rKykgewo+ICAgCQlzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICpzaWJsaW5nID0gdmUtPnNpYmxpbmdzW25dOwo+IEBAIC0zMTU0LDYg KzMyMTAsMTcgQEAgc3RhdGljIHZvaWQgdmlydHVhbF9zdWJtaXNzaW9uX3Rhc2tsZXQodW5zaWdu ZWQgbG9uZyBkYXRhKQo+ICAgCQlzdHJ1Y3QgcmJfbm9kZSAqKnBhcmVudCwgKnJiOwo+ICAgCQli b29sIGZpcnN0Owo+ICAgCj4gKwkJaWYgKHVubGlrZWx5KCEobWFzayAmIHNpYmxpbmctPm1hc2sp KSkgewo+ICsJCQlpZiAoIVJCX0VNUFRZX05PREUoJm5vZGUtPnJiKSkgewo+ICsJCQkJc3Bpbl9s b2NrKCZzaWJsaW5nLT50aW1lbGluZS5sb2NrKTsKPiArCQkJCXJiX2VyYXNlX2NhY2hlZCgmbm9k ZS0+cmIsCj4gKwkJCQkJCSZzaWJsaW5nLT5leGVjbGlzdHMudmlydHVhbCk7Cj4gKwkJCQlSQl9D TEVBUl9OT0RFKCZub2RlLT5yYik7Cj4gKwkJCQlzcGluX3VubG9jaygmc2libGluZy0+dGltZWxp bmUubG9jayk7Cj4gKwkJCX0KPiArCQkJY29udGludWU7Cj4gKwkJfQo+ICsKPiAgIAkJc3Bpbl9s b2NrKCZzaWJsaW5nLT50aW1lbGluZS5sb2NrKTsKPiAgIAo+ICAgCQlpZiAoIVJCX0VNUFRZX05P REUoJm5vZGUtPnJiKSkgewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9z ZWxmdGVzdF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X2xyYy5jCj4g aW5kZXggNTU4Mzk5ZTVjN2JiLi43MzMwODc0OTkzNmMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfbHJjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9ndC9zZWxmdGVzdF9scmMuYwo+IEBAIC0xNDgwLDYgKzE0ODAsMTM2IEBAIHN0YXRpYyBpbnQg bGl2ZV92aXJ0dWFsX2VuZ2luZSh2b2lkICphcmcpCj4gICAJcmV0dXJuIGVycjsKPiAgIH0KPiAg IAo+ICtzdGF0aWMgaW50IG1hc2tfdmlydHVhbF9lbmdpbmUoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmk5MTUsCj4gKwkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICoqc2libGluZ3Ms Cj4gKwkJCSAgICAgICB1bnNpZ25lZCBpbnQgbnNpYmxpbmcpCj4gK3sKPiArCXN0cnVjdCBpOTE1 X3JlcXVlc3QgKnJlcXVlc3RbTUFYX0VOR0lORV9JTlNUQU5DRSArIDFdOwo+ICsJc3RydWN0IGk5 MTVfZ2VtX2NvbnRleHQgKmN0eDsKPiArCXN0cnVjdCBpbnRlbF9jb250ZXh0ICp2ZTsKPiArCXN0 cnVjdCBpZ3RfbGl2ZV90ZXN0IHQ7Cj4gKwl1bnNpZ25lZCBpbnQgbjsKPiArCWludCBlcnI7Cj4g Kwo+ICsJLyoKPiArCSAqIENoZWNrIHRoYXQgYnkgc2V0dGluZyB0aGUgZXhlY3V0aW9uIG1hc2sg b24gYSByZXF1ZXN0LCB3ZSBjYW4KPiArCSAqIHJlc3RyaWN0IGl0IHRvIG91ciBkZXNpcmVkIGVu Z2luZSB3aXRoaW4gdGhlIHZpcnR1YWwgZW5naW5lLgo+ICsJICovCj4gKwo+ICsJY3R4ID0ga2Vy bmVsX2NvbnRleHQoaTkxNSk7Cj4gKwlpZiAoIWN0eCkKPiArCQlyZXR1cm4gLUVOT01FTTsKPiAr Cj4gKwl2ZSA9IGludGVsX2V4ZWNsaXN0c19jcmVhdGVfdmlydHVhbChjdHgsIHNpYmxpbmdzLCBu c2libGluZyk7Cj4gKwlpZiAoSVNfRVJSKHZlKSkgewo+ICsJCWVyciA9IFBUUl9FUlIodmUpOwo+ ICsJCWdvdG8gb3V0X2Nsb3NlOwo+ICsJfQo+ICsKPiArCWVyciA9IGludGVsX2NvbnRleHRfcGlu KHZlKTsKPiArCWlmIChlcnIpCj4gKwkJZ290byBvdXRfcHV0Owo+ICsKPiArCWVyciA9IGlndF9s aXZlX3Rlc3RfYmVnaW4oJnQsIGk5MTUsIF9fZnVuY19fLCB2ZS0+ZW5naW5lLT5uYW1lKTsKPiAr CWlmIChlcnIpCj4gKwkJZ290byBvdXRfdW5waW47Cj4gKwo+ICsJZm9yIChuID0gMDsgbiA8IG5z aWJsaW5nOyBuKyspIHsKPiArCQlyZXF1ZXN0W25dID0gaTkxNV9yZXF1ZXN0X2NyZWF0ZSh2ZSk7 Cj4gKwkJaWYgKElTX0VSUihyZXF1ZXN0KSkgewo+ICsJCQllcnIgPSBQVFJfRVJSKHJlcXVlc3Qp Owo+ICsJCQluc2libGluZyA9IG47Cj4gKwkJCWdvdG8gb3V0Owo+ICsJCX0KPiArCj4gKwkJLyog UmV2ZXJzZSBvcmRlciBhcyBpdCdzIG1vcmUgbGlrZWx5IHRvIGJlIHVubmF0dXJhbCAqLwo+ICsJ CXJlcXVlc3Rbbl0tPmV4ZWN1dGlvbl9tYXNrID0gc2libGluZ3NbbnNpYmxpbmcgLSBuIC0gMV0t Pm1hc2s7Cj4gKwo+ICsJCWk5MTVfcmVxdWVzdF9nZXQocmVxdWVzdFtuXSk7Cj4gKwkJaTkxNV9y ZXF1ZXN0X2FkZChyZXF1ZXN0W25dKTsKPiArCX0KPiArCj4gKwlmb3IgKG4gPSAwOyBuIDwgbnNp Ymxpbmc7IG4rKykgewo+ICsJCWlmIChpOTE1X3JlcXVlc3Rfd2FpdChyZXF1ZXN0W25dLCBJOTE1 X1dBSVRfTE9DS0VELCBIWiAvIDEwKSA8IDApIHsKPiArCQkJcHJfZXJyKCIlcyglcyk6IHdhaXQg Zm9yICVsbHg6JWxsZCB0aW1lZCBvdXRcbiIsCj4gKwkJCSAgICAgICBfX2Z1bmNfXywgdmUtPmVu Z2luZS0+bmFtZSwKPiArCQkJICAgICAgIHJlcXVlc3Rbbl0tPmZlbmNlLmNvbnRleHQsCj4gKwkJ CSAgICAgICByZXF1ZXN0W25dLT5mZW5jZS5zZXFubyk7Cj4gKwo+ICsJCQlHRU1fVFJBQ0UoIiVz KCVzKSBmYWlsZWQgYXQgcmVxdWVzdCAlbGx4OiVsbGRcbiIsCj4gKwkJCQkgIF9fZnVuY19fLCB2 ZS0+ZW5naW5lLT5uYW1lLAo+ICsJCQkJICByZXF1ZXN0W25dLT5mZW5jZS5jb250ZXh0LAo+ICsJ CQkJICByZXF1ZXN0W25dLT5mZW5jZS5zZXFubyk7Cj4gKwkJCUdFTV9UUkFDRV9EVU1QKCk7Cj4g KwkJCWk5MTVfZ2VtX3NldF93ZWRnZWQoaTkxNSk7Cj4gKwkJCWVyciA9IC1FSU87Cj4gKwkJCWdv dG8gb3V0Owo+ICsJCX0KPiArCj4gKwkJaWYgKHJlcXVlc3Rbbl0tPmVuZ2luZSAhPSBzaWJsaW5n c1tuc2libGluZyAtIG4gLSAxXSkgewo+ICsJCQlwcl9lcnIoIkV4ZWN1dGVkIG9uIHdyb25nIHNp YmxpbmcgJyVzJywgZXhwZWN0ZWQgJyVzJ1xuIiwKPiArCQkJICAgICAgIHJlcXVlc3Rbbl0tPmVu Z2luZS0+bmFtZSwKPiArCQkJICAgICAgIHNpYmxpbmdzW25zaWJsaW5nIC0gbiAtIDFdLT5uYW1l KTsKPiArCQkJZXJyID0gLUVJTlZBTDsKPiArCQkJZ290byBvdXQ7Cj4gKwkJfQo+ICsJfQo+ICsK PiArCWVyciA9IGlndF9saXZlX3Rlc3RfZW5kKCZ0KTsKPiArCWlmIChlcnIpCj4gKwkJZ290byBv dXQ7Cj4gKwo+ICtvdXQ6Cj4gKwlpZiAoaWd0X2ZsdXNoX3Rlc3QoaTkxNSwgSTkxNV9XQUlUX0xP Q0tFRCkpCj4gKwkJZXJyID0gLUVJTzsKPiArCj4gKwlmb3IgKG4gPSAwOyBuIDwgbnNpYmxpbmc7 IG4rKykKPiArCQlpOTE1X3JlcXVlc3RfcHV0KHJlcXVlc3Rbbl0pOwo+ICsKPiArb3V0X3VucGlu Ogo+ICsJaW50ZWxfY29udGV4dF91bnBpbih2ZSk7Cj4gK291dF9wdXQ6Cj4gKwlpbnRlbF9jb250 ZXh0X3B1dCh2ZSk7Cj4gK291dF9jbG9zZToKPiArCWtlcm5lbF9jb250ZXh0X2Nsb3NlKGN0eCk7 Cj4gKwlyZXR1cm4gZXJyOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IGxpdmVfdmlydHVhbF9tYXNr KHZvaWQgKmFyZykKPiArewo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBhcmc7 Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpzaWJsaW5nc1tNQVhfRU5HSU5FX0lOU1RBTkNF ICsgMV07Cj4gKwl1bnNpZ25lZCBpbnQgY2xhc3MsIGluc3Q7Cj4gKwlpbnQgZXJyID0gMDsKPiAr Cj4gKwlpZiAoVVNFU19HVUNfU1VCTUlTU0lPTihpOTE1KSkKPiArCQlyZXR1cm4gMDsKPiArCj4g KwltdXRleF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKPiArCj4gKwlmb3IgKGNsYXNz ID0gMDsgY2xhc3MgPD0gTUFYX0VOR0lORV9DTEFTUzsgY2xhc3MrKykgewo+ICsJCXVuc2lnbmVk IGludCBuc2libGluZzsKPiArCj4gKwkJbnNpYmxpbmcgPSAwOwo+ICsJCWZvciAoaW5zdCA9IDA7 IGluc3QgPD0gTUFYX0VOR0lORV9JTlNUQU5DRTsgaW5zdCsrKSB7Cj4gKwkJCWlmICghaTkxNS0+ ZW5naW5lX2NsYXNzW2NsYXNzXVtpbnN0XSkKPiArCQkJCWJyZWFrOwo+ICsKPiArCQkJc2libGlu Z3NbbnNpYmxpbmcrK10gPSBpOTE1LT5lbmdpbmVfY2xhc3NbY2xhc3NdW2luc3RdOwo+ICsJCX0K PiArCQlpZiAobnNpYmxpbmcgPCAyKQo+ICsJCQljb250aW51ZTsKPiArCj4gKwkJZXJyID0gbWFz a192aXJ0dWFsX2VuZ2luZShpOTE1LCBzaWJsaW5ncywgbnNpYmxpbmcpOwo+ICsJCWlmIChlcnIp Cj4gKwkJCWdvdG8gb3V0X3VubG9jazsKPiArCX0KPiArCj4gK291dF91bmxvY2s6Cj4gKwltdXRl eF91bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwo+ICsJcmV0dXJuIGVycjsKPiArfQo+ ICsKPiAgIGludCBpbnRlbF9leGVjbGlzdHNfbGl2ZV9zZWxmdGVzdHMoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmk5MTUpCj4gICB7Cj4gICAJc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X3N1YnRl c3QgdGVzdHNbXSA9IHsKPiBAQCAtMTQ5Myw2ICsxNjIzLDcgQEAgaW50IGludGVsX2V4ZWNsaXN0 c19saXZlX3NlbGZ0ZXN0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPiAgIAkJU1VC VEVTVChsaXZlX3ByZWVtcHRfaGFuZyksCj4gICAJCVNVQlRFU1QobGl2ZV9wcmVlbXB0X3Ntb2tl KSwKPiAgIAkJU1VCVEVTVChsaXZlX3ZpcnR1YWxfZW5naW5lKSwKPiArCQlTVUJURVNUKGxpdmVf dmlydHVhbF9tYXNrKSwKPiAgIAl9Owo+ICAgCj4gICAJaWYgKCFIQVNfRVhFQ0xJU1RTKGk5MTUp KQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5jCj4gaW5kZXggYTVhMmNjYzIzOTU4Li4w NmMyYjg5ZDBiMGEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1 ZXN0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYwo+IEBAIC02 ODgsNiArNjg4LDcgQEAgX19pOTE1X3JlcXVlc3RfY3JlYXRlKHN0cnVjdCBpbnRlbF9jb250ZXh0 ICpjZSwgZ2ZwX3QgZ2ZwKQo+ICAgCXJxLT5iYXRjaCA9IE5VTEw7Cj4gICAJcnEtPmNhcHR1cmVf bGlzdCA9IE5VTEw7Cj4gICAJcnEtPndhaXRib29zdCA9IGZhbHNlOwo+ICsJcnEtPmV4ZWN1dGlv bl9tYXNrID0gQUxMX0VOR0lORVM7Cj4gICAKPiAgIAlJTklUX0xJU1RfSEVBRCgmcnEtPmFjdGl2 ZV9saXN0KTsKPiAgIAlJTklUX0xJU1RfSEVBRCgmcnEtPmV4ZWN1dGVfY2IpOwo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcmVxdWVzdC5oCj4gaW5kZXggODAyNWE4OWI1OTk5Li5kN2Y5YjIxOTQ1Njgg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmgKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuaAo+IEBAIC0yOCw2ICsyOCw4IEBA Cj4gICAjaW5jbHVkZSA8bGludXgvZG1hLWZlbmNlLmg+Cj4gICAjaW5jbHVkZSA8bGludXgvbG9j a2RlcC5oPgo+ICAgCj4gKyNpbmNsdWRlICJndC9pbnRlbF9lbmdpbmVfdHlwZXMuaCIKPiArCj4g ICAjaW5jbHVkZSAiaTkxNV9nZW0uaCIKPiAgICNpbmNsdWRlICJpOTE1X3NjaGVkdWxlci5oIgo+ ICAgI2luY2x1ZGUgImk5MTVfc2VsZnRlc3QuaCIKPiBAQCAtMTU2LDYgKzE1OCw3IEBAIHN0cnVj dCBpOTE1X3JlcXVlc3Qgewo+ICAgCSAqLwo+ICAgCXN0cnVjdCBpOTE1X3NjaGVkX25vZGUgc2No ZWQ7Cj4gICAJc3RydWN0IGk5MTVfZGVwZW5kZW5jeSBkZXA7Cj4gKwlpbnRlbF9lbmdpbmVfbWFz a190IGV4ZWN1dGlvbl9tYXNrOwo+ICAgCj4gICAJLyoKPiAgIAkgKiBBIGNvbnZlbmllbmNlIHBv aW50ZXIgdG8gdGhlIGN1cnJlbnQgYnJlYWRjcnVtYiB2YWx1ZSBzdG9yZWQgaW4KPiAKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4