From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH v2 08/12] drm/i915: Refactor execlists default context pinning Date: Wed, 20 Apr 2016 17:07:17 +0300 Message-ID: <87twiwxtka.fsf@gaia.fi.intel.com> References: <1461066053-30072-1-git-send-email-chris@chris-wilson.co.uk> <1461066053-30072-9-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTP id 290906E9F0 for ; Wed, 20 Apr 2016 14:09:38 +0000 (UTC) In-Reply-To: <1461066053-30072-9-git-send-email-chris@chris-wilson.co.uk> 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 Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+IHdyaXRlczoKCj4gWyB0ZXh0 L3BsYWluIF0KPiBSZWZhY3RvciBwaW5uaW5nIGFuZCB1bnBpbm5pbmcgb2YgY29udGV4dHMsIHN1 Y2ggdGhhdCB0aGUgZGVmYXVsdAo+IGNvbnRleHQgZm9yIGFuIGVuZ2luZSBpcyBwaW5uZWQgZHVy aW5nIGluaXRpYWxpc2F0aW9uIGFuZCB1bnBpbm5lZAo+IGR1cmluZyB0ZWFyZG93biAocGlubmlu ZyBvZiB0aGUgY29udGV4dCBoYW5kbGVzIHRoZSByZWZlcmVuY2UgY291bnRpbmcpLgo+IFRodXMg d2UgY2FuIGVsaW1pbmF0ZSB0aGUgc3BlY2lhbCBjYXNlIGhhbmRsaW5nIG9mIHRoZSBkZWZhdWx0 IGNvbnRleHQKPiB0aGF0IHdhcyByZXF1aXJlZCB0byBtYXNrIHRoYXQgaXQgd2FzIG5vdCBiZWlu ZyBwaW5uZWQgbm9ybWFsbHkuCj4KPiB2MjogUmViYWxhbmNlIGNvbnRleHRfcXVldWUgYWZ0ZXIg cmViYXNpbmcuCj4gdjM6IFJlYmFzZSB0byAtbmlnaHRseSAobm90IDQwIHBhdGNoZXMgaW4pCj4K PiBTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4K PiBDYzogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGxpbnV4LmludGVsLmNvbT4KCkkg aGF2ZSBkb25lIHRoaXMgYXRsZWFzdCBvbmNlIHNvIEkgYW0gZmFuLAoKUmV2aWV3ZWQtYnk6IE1p a2EgS3VvcHBhbGEgPG1pa2Eua3VvcHBhbGFAaW50ZWwuY29tPgoKCj4gLS0tCj4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIHwgICA1ICstCj4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtLmMgICAgIHwgICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2xyYy5jICAgIHwgMTA3ICsrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICAz IGZpbGVzIGNoYW5nZWQsIDQzIGluc2VydGlvbnMoKyksIDcxIGRlbGV0aW9ucygtKQo+Cj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiBpbmRleCBmNzc1NDUxYmQwYjYuLmU4MWE3NTA0 NjU2ZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gQEAgLTIwOTUsOSAr MjA5NSw4IEBAIHN0YXRpYyBpbnQgaTkxNV9kdW1wX2xyYyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZv aWQgKnVudXNlZCkKPiAgCQlyZXR1cm4gcmV0Owo+ICAKPiAgCWxpc3RfZm9yX2VhY2hfZW50cnko Y3R4LCAmZGV2X3ByaXYtPmNvbnRleHRfbGlzdCwgbGluaykKPiAtCQlpZiAoY3R4ICE9IGRldl9w cml2LT5rZXJuZWxfY29udGV4dCkKPiAtCQkJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3By aXYpCj4gLQkJCQlpOTE1X2R1bXBfbHJjX29iaihtLCBjdHgsIGVuZ2luZSk7Cj4gKwkJZm9yX2Vh Y2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYpCj4gKwkJCWk5MTVfZHVtcF9scmNfb2JqKG0sIGN0 eCwgZW5naW5lKTsKPiAgCj4gIAltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKPiAg Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gaW5kZXggYjk1ZDVmODNkM2IwLi4yNjExODUyODFl NzggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBAQCAtMjcxOSw3ICsyNzE5LDcgQEAg dm9pZCBpOTE1X2dlbV9yZXF1ZXN0X2ZyZWUoc3RydWN0IGtyZWYgKnJlcV9yZWYpCj4gIAkJaTkx NV9nZW1fcmVxdWVzdF9yZW1vdmVfZnJvbV9jbGllbnQocmVxKTsKPiAgCj4gIAlpZiAoY3R4KSB7 Cj4gLQkJaWYgKGk5MTUuZW5hYmxlX2V4ZWNsaXN0cyAmJiBjdHggIT0gcmVxLT5pOTE1LT5rZXJu ZWxfY29udGV4dCkKPiArCQlpZiAoaTkxNS5lbmFibGVfZXhlY2xpc3RzKQo+ICAJCQlpbnRlbF9s cl9jb250ZXh0X3VucGluKGN0eCwgcmVxLT5lbmdpbmUpOwo+ICAKPiAgCQlpOTE1X2dlbV9jb250 ZXh0X3VucmVmZXJlbmNlKGN0eCk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiBpbmRleCBk ZWRkODJhZWEzODYuLmUwNjRhNmFlMmQ5NyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9scmMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5j Cj4gQEAgLTU4OCw5ICs1ODgsNyBAQCBzdGF0aWMgdm9pZCBleGVjbGlzdHNfY29udGV4dF9xdWV1 ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCj4gIAlzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlcXVlc3QgKmN1cnNvcjsKPiAgCWludCBudW1fZWxlbWVudHMgPSAwOwo+ICAKPiAt CWlmIChyZXF1ZXN0LT5jdHggIT0gcmVxdWVzdC0+aTkxNS0+a2VybmVsX2NvbnRleHQpCj4gLQkJ aW50ZWxfbHJfY29udGV4dF9waW4ocmVxdWVzdC0+Y3R4LCBlbmdpbmUpOwo+IC0KPiArCWludGVs X2xyX2NvbnRleHRfcGluKHJlcXVlc3QtPmN0eCwgcmVxdWVzdC0+ZW5naW5lKTsKPiAgCWk5MTVf Z2VtX3JlcXVlc3RfcmVmZXJlbmNlKHJlcXVlc3QpOwo+ICAKPiAgCXNwaW5fbG9ja19iaCgmZW5n aW5lLT5leGVjbGlzdF9sb2NrKTsKPiBAQCAtNjkxLDEwICs2ODksNyBAQCBpbnQgaW50ZWxfbG9n aWNhbF9yaW5nX2FsbG9jX3JlcXVlc3RfZXh0cmFzKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVz dCAqcmVxdWVzdAo+ICAJCQlyZXR1cm4gcmV0Owo+ICAJfQo+ICAKPiAtCWlmIChyZXF1ZXN0LT5j dHggIT0gcmVxdWVzdC0+aTkxNS0+a2VybmVsX2NvbnRleHQpCj4gLQkJcmV0ID0gaW50ZWxfbHJf Y29udGV4dF9waW4ocmVxdWVzdC0+Y3R4LCByZXF1ZXN0LT5lbmdpbmUpOwo+IC0KPiAtCXJldHVy biByZXQ7Cj4gKwlyZXR1cm4gaW50ZWxfbHJfY29udGV4dF9waW4ocmVxdWVzdC0+Y3R4LCByZXF1 ZXN0LT5lbmdpbmUpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgaW50IGxvZ2ljYWxfcmluZ193YWl0X2Zv cl9zcGFjZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiBAQCAtNzc0LDEyICs3 NjksOCBAQCBpbnRlbF9sb2dpY2FsX3JpbmdfYWR2YW5jZV9hbmRfc3VibWl0KHN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCkKPiAgCWlmIChlbmdpbmUtPmxhc3RfY29udGV4dCAh PSByZXF1ZXN0LT5jdHgpIHsKPiAgCQlpZiAoZW5naW5lLT5sYXN0X2NvbnRleHQpCj4gIAkJCWlu dGVsX2xyX2NvbnRleHRfdW5waW4oZW5naW5lLT5sYXN0X2NvbnRleHQsIGVuZ2luZSk7Cj4gLQkJ aWYgKHJlcXVlc3QtPmN0eCAhPSByZXF1ZXN0LT5pOTE1LT5rZXJuZWxfY29udGV4dCkgewo+IC0J CQlpbnRlbF9scl9jb250ZXh0X3BpbihyZXF1ZXN0LT5jdHgsIGVuZ2luZSk7Cj4gLQkJCWVuZ2lu ZS0+bGFzdF9jb250ZXh0ID0gcmVxdWVzdC0+Y3R4Owo+IC0JCX0gZWxzZSB7Cj4gLQkJCWVuZ2lu ZS0+bGFzdF9jb250ZXh0ID0gTlVMTDsKPiAtCQl9Cj4gKwkJaW50ZWxfbHJfY29udGV4dF9waW4o cmVxdWVzdC0+Y3R4LCBlbmdpbmUpOwo+ICsJCWVuZ2luZS0+bGFzdF9jb250ZXh0ID0gcmVxdWVz dC0+Y3R4Owo+ICAJfQo+ICAKPiAgCWlmIChkZXZfcHJpdi0+Z3VjLmV4ZWNidWZfY2xpZW50KQo+ IEBAIC0xMDAyLDEyICs5OTMsNyBAQCB2b2lkIGludGVsX2V4ZWNsaXN0c19yZXRpcmVfcmVxdWVz dHMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAJc3Bpbl91bmxvY2tfYmgoJmVu Z2luZS0+ZXhlY2xpc3RfbG9jayk7Cj4gIAo+ICAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHJl cSwgdG1wLCAmcmV0aXJlZF9saXN0LCBleGVjbGlzdF9saW5rKSB7Cj4gLQkJc3RydWN0IGludGVs X2NvbnRleHQgKmN0eCA9IHJlcS0+Y3R4Owo+IC0JCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpjdHhfb2JqID0KPiAtCQkJCWN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdLnN0YXRlOwo+IC0KPiAt CQlpZiAoY3R4X29iaiAmJiAoY3R4ICE9IHJlcS0+aTkxNS0+a2VybmVsX2NvbnRleHQpKQo+IC0J CQlpbnRlbF9scl9jb250ZXh0X3VucGluKGN0eCwgZW5naW5lKTsKPiArCQlpbnRlbF9scl9jb250 ZXh0X3VucGluKHJlcS0+Y3R4LCBlbmdpbmUpOwo+ICAKPiAgCQlsaXN0X2RlbCgmcmVxLT5leGVj bGlzdF9saW5rKTsKPiAgCQlpOTE1X2dlbV9yZXF1ZXN0X3VucmVmZXJlbmNlKHJlcSk7Cj4gQEAg LTEwNTIsMjMgKzEwMzgsMjYgQEAgaW50IGxvZ2ljYWxfcmluZ19mbHVzaF9hbGxfY2FjaGVzKHN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4g LXN0YXRpYyBpbnQgaW50ZWxfbHJfY29udGV4dF9kb19waW4oc3RydWN0IGludGVsX2NvbnRleHQg KmN0eCwKPiAtCQkJCSAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiArc3RhdGlj IGludCBpbnRlbF9scl9jb250ZXh0X3BpbihzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4LAo+ICsJ CQkJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gZW5naW5lLT5kZXY7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+IC0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qg KmN0eF9vYmogPSBjdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5zdGF0ZTsKPiAtCXN0cnVjdCBpbnRl bF9yaW5nYnVmZmVyICpyaW5nYnVmID0gY3R4LT5lbmdpbmVbZW5naW5lLT5pZF0ucmluZ2J1ZjsK PiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGN0eC0+aTkxNTsKPiArCXN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqOwo+ICsJc3RydWN0IGludGVsX3Jpbmdi dWZmZXIgKnJpbmdidWY7Cj4gIAl2b2lkICp2YWRkcjsKPiAgCXUzMiAqbHJjX3JlZ19zdGF0ZTsK PiAgCWludCByZXQ7Cj4gIAo+IC0JV0FSTl9PTighbXV0ZXhfaXNfbG9ja2VkKCZlbmdpbmUtPmRl di0+c3RydWN0X211dGV4KSk7Cj4gKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZjdHgtPmk5MTUtPmRl di0+c3RydWN0X211dGV4KTsKPiAgCj4gKwlpZiAoY3R4LT5lbmdpbmVbZW5naW5lLT5pZF0ucGlu X2NvdW50KyspCj4gKwkJcmV0dXJuIDA7Cj4gKwo+ICsJY3R4X29iaiA9IGN0eC0+ZW5naW5lW2Vu Z2luZS0+aWRdLnN0YXRlOwo+ICAJcmV0ID0gaTkxNV9nZW1fb2JqX2dndHRfcGluKGN0eF9vYmos IEdFTjhfTFJfQ09OVEVYVF9BTElHTiwKPiAgCQkJUElOX09GRlNFVF9CSUFTIHwgR1VDX1dPUENN X1RPUCk7Cj4gIAlpZiAocmV0KQo+IC0JCXJldHVybiByZXQ7Cj4gKwkJZ290byBlcnI7Cj4gIAo+ ICAJdmFkZHIgPSBpOTE1X2dlbV9vYmplY3RfcGluX21hcChjdHhfb2JqKTsKPiAgCWlmIChJU19F UlIodmFkZHIpKSB7Cj4gQEAgLTEwNzgsMTAgKzEwNjcsMTIgQEAgc3RhdGljIGludCBpbnRlbF9s cl9jb250ZXh0X2RvX3BpbihzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4LAo+ICAKPiAgCWxyY19y ZWdfc3RhdGUgPSB2YWRkciArIExSQ19TVEFURV9QTiAqIFBBR0VfU0laRTsKPiAgCj4gKwlyaW5n YnVmID0gY3R4LT5lbmdpbmVbZW5naW5lLT5pZF0ucmluZ2J1ZjsKPiAgCXJldCA9IGludGVsX3Bp bl9hbmRfbWFwX3JpbmdidWZmZXJfb2JqKGVuZ2luZS0+ZGV2LCByaW5nYnVmKTsKPiAgCWlmIChy ZXQpCj4gIAkJZ290byB1bnBpbl9tYXA7Cj4gIAo+ICsJaTkxNV9nZW1fY29udGV4dF9yZWZlcmVu Y2UoY3R4KTsKPiAgCWN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdLmxyY192bWEgPSBpOTE1X2dlbV9v YmpfdG9fZ2d0dChjdHhfb2JqKTsKPiAgCWludGVsX2xyX2NvbnRleHRfZGVzY3JpcHRvcl91cGRh dGUoY3R4LCBlbmdpbmUpOwo+ICAJbHJjX3JlZ19zdGF0ZVtDVFhfUklOR19CVUZGRVJfU1RBUlQr MV0gPSByaW5nYnVmLT52bWEtPm5vZGUuc3RhcnQ7Cj4gQEAgLTEwOTIsNTEgKzEwODMsMzkgQEAg c3RhdGljIGludCBpbnRlbF9scl9jb250ZXh0X2RvX3BpbihzdHJ1Y3QgaW50ZWxfY29udGV4dCAq Y3R4LAo+ICAJaWYgKGk5MTUuZW5hYmxlX2d1Y19zdWJtaXNzaW9uKQo+ICAJCUk5MTVfV1JJVEUo R0VOOF9HVENSLCBHRU44X0dUQ1JfSU5WQUxJREFURSk7Cj4gIAo+IC0JcmV0dXJuIHJldDsKPiAr CXJldHVybiAwOwo+ICAKPiAgdW5waW5fbWFwOgo+ICAJaTkxNV9nZW1fb2JqZWN0X3VucGluX21h cChjdHhfb2JqKTsKPiAgdW5waW5fY3R4X29iajoKPiAgCWk5MTVfZ2VtX29iamVjdF9nZ3R0X3Vu cGluKGN0eF9vYmopOwo+IC0KPiArZXJyOgo+ICsJY3R4LT5lbmdpbmVbZW5naW5lLT5pZF0ucGlu X2NvdW50ID0gMDsKPiAgCXJldHVybiByZXQ7Cj4gIH0KPiAgCj4gLXN0YXRpYyBpbnQgaW50ZWxf bHJfY29udGV4dF9waW4oc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwKPiAtCQkJCXN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiArdm9pZCBpbnRlbF9scl9jb250ZXh0X3VucGluKHN0 cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsCj4gKwkJCSAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUpCj4gIHsKPiAtCWludCByZXQgPSAwOwo+ICsJc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKmN0eF9vYmo7Cj4gIAo+IC0JaWYgKGN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdLnBpbl9j b3VudCsrID09IDApIHsKPiAtCQlyZXQgPSBpbnRlbF9scl9jb250ZXh0X2RvX3BpbihjdHgsIGVu Z2luZSk7Cj4gLQkJaWYgKHJldCkKPiAtCQkJZ290byByZXNldF9waW5fY291bnQ7Cj4gKwlsb2Nr ZGVwX2Fzc2VydF9oZWxkKCZjdHgtPmk5MTUtPmRldi0+c3RydWN0X211dGV4KTsKPiArCUdFTV9C VUdfT04oY3R4LT5lbmdpbmVbZW5naW5lLT5pZF0ucGluX2NvdW50ID09IDApOwo+ICAKPiAtCQlp OTE1X2dlbV9jb250ZXh0X3JlZmVyZW5jZShjdHgpOwo+IC0JfQo+IC0JcmV0dXJuIHJldDsKPiAr CWlmICgtLWN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdLnBpbl9jb3VudCkKPiArCQlyZXR1cm47Cj4g IAo+IC1yZXNldF9waW5fY291bnQ6Cj4gLQljdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5waW5fY291 bnQgPSAwOwo+IC0JcmV0dXJuIHJldDsKPiAtfQo+ICsJaW50ZWxfdW5waW5fcmluZ2J1ZmZlcl9v YmooY3R4LT5lbmdpbmVbZW5naW5lLT5pZF0ucmluZ2J1Zik7Cj4gIAo+IC12b2lkIGludGVsX2xy X2NvbnRleHRfdW5waW4oc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwKPiAtCQkJICAgIHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAtewo+IC0Jc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKmN0eF9vYmogPSBjdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5zdGF0ZTsKPiArCWN0eF9v YmogPSBjdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5zdGF0ZTsKPiArCWk5MTVfZ2VtX29iamVjdF91 bnBpbl9tYXAoY3R4X29iaik7Cj4gKwlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihjdHhfb2Jq KTsKPiAgCj4gLQlXQVJOX09OKCFtdXRleF9pc19sb2NrZWQoJmN0eC0+aTkxNS0+ZGV2LT5zdHJ1 Y3RfbXV0ZXgpKTsKPiAtCWlmICgtLWN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdLnBpbl9jb3VudCA9 PSAwKSB7Cj4gLQkJaTkxNV9nZW1fb2JqZWN0X3VucGluX21hcChjdHhfb2JqKTsKPiAtCQlpbnRl bF91bnBpbl9yaW5nYnVmZmVyX29iaihjdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5yaW5nYnVmKTsK PiAtCQlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihjdHhfb2JqKTsKPiAtCQljdHgtPmVuZ2lu ZVtlbmdpbmUtPmlkXS5scmNfdm1hID0gTlVMTDsKPiAtCQljdHgtPmVuZ2luZVtlbmdpbmUtPmlk XS5scmNfZGVzYyA9IDA7Cj4gLQkJY3R4LT5lbmdpbmVbZW5naW5lLT5pZF0ubHJjX3JlZ19zdGF0 ZSA9IE5VTEw7Cj4gKwljdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5scmNfdm1hID0gTlVMTDsKPiAr CWN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdLmxyY19kZXNjID0gMDsKPiArCWN0eC0+ZW5naW5lW2Vu Z2luZS0+aWRdLmxyY19yZWdfc3RhdGUgPSBOVUxMOwo+ICAKPiAtCQlpOTE1X2dlbV9jb250ZXh0 X3VucmVmZXJlbmNlKGN0eCk7Cj4gLQl9Cj4gKwlpOTE1X2dlbV9jb250ZXh0X3VucmVmZXJlbmNl KGN0eCk7Cj4gIH0KPiAgCj4gIHN0YXRpYyBpbnQgaW50ZWxfbG9naWNhbF9yaW5nX3dvcmthcm91 bmRzX2VtaXQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCj4gQEAgLTIwMzQsNiAr MjAxMyw3IEBAIHZvaWQgaW50ZWxfbG9naWNhbF9yaW5nX2NsZWFudXAoc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lKQo+ICAJCWk5MTVfZ2VtX29iamVjdF91bnBpbl9tYXAoZW5naW5lLT5z dGF0dXNfcGFnZS5vYmopOwo+ICAJCWVuZ2luZS0+c3RhdHVzX3BhZ2Uub2JqID0gTlVMTDsKPiAg CX0KPiArCWludGVsX2xyX2NvbnRleHRfdW5waW4oZGV2X3ByaXYtPmtlcm5lbF9jb250ZXh0LCBl bmdpbmUpOwo+ICAKPiAgCWVuZ2luZS0+aWRsZV9saXRlX3Jlc3RvcmVfd2EgPSAwOwo+ICAJZW5n aW5lLT5kaXNhYmxlX2xpdGVfcmVzdG9yZV93YSA9IGZhbHNlOwo+IEBAIC0yMTM3LDExICsyMTE3 LDEwIEBAIGxvZ2ljYWxfcmluZ19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgCQlnb3RvIGVycm9yOwo+ICAKPiAgCS8qIEFzIHRo aXMgaXMgdGhlIGRlZmF1bHQgY29udGV4dCwgYWx3YXlzIHBpbiBpdCAqLwo+IC0JcmV0ID0gaW50 ZWxfbHJfY29udGV4dF9kb19waW4oZGN0eCwgZW5naW5lKTsKPiArCXJldCA9IGludGVsX2xyX2Nv bnRleHRfcGluKGRjdHgsIGVuZ2luZSk7Cj4gIAlpZiAocmV0KSB7Cj4gLQkJRFJNX0VSUk9SKAo+ IC0JCQkiRmFpbGVkIHRvIHBpbiBhbmQgbWFwIHJpbmdidWZmZXIgJXM6ICVkXG4iLAo+IC0JCQll bmdpbmUtPm5hbWUsIHJldCk7Cj4gKwkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gcGluIGNvbnRleHQg Zm9yICVzOiAlZFxuIiwKPiArCQkJICBlbmdpbmUtPm5hbWUsIHJldCk7Cj4gIAkJZ290byBlcnJv cjsKPiAgCX0KPiAgCj4gQEAgLTI1NjIsMTIgKzI1NDEsNiBAQCB2b2lkIGludGVsX2xyX2NvbnRl eHRfZnJlZShzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4KQo+ICAJCWlmICghY3R4X29iaikKPiAg CQkJY29udGludWU7Cj4gIAo+IC0JCWlmIChjdHggPT0gY3R4LT5pOTE1LT5rZXJuZWxfY29udGV4 dCkgewo+IC0JCQlpbnRlbF91bnBpbl9yaW5nYnVmZmVyX29iaihyaW5nYnVmKTsKPiAtCQkJaTkx NV9nZW1fb2JqZWN0X2dndHRfdW5waW4oY3R4X29iaik7Cj4gLQkJCWk5MTVfZ2VtX29iamVjdF91 bnBpbl9tYXAoY3R4X29iaik7Cj4gLQkJfQo+IC0KPiAgCQlXQVJOX09OKGN0eC0+ZW5naW5lW2ld LnBpbl9jb3VudCk7Cj4gIAkJaW50ZWxfcmluZ2J1ZmZlcl9mcmVlKHJpbmdidWYpOwo+ICAJCWRy bV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZjdHhfb2JqLT5iYXNlKTsKPiAtLSAKPiAyLjguMC5y YzMKPgo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4g SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK PiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK