From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 3/9] drm/i915: Refactor execlists default context pinning Date: Tue, 19 Apr 2016 10:16:29 +0100 Message-ID: <5715F76D.4010002@linux.intel.com> References: <1460721275-1001-1-git-send-email-tvrtko.ursulin@linux.intel.com> <1461048560-31983-1-git-send-email-chris@chris-wilson.co.uk> <1461048560-31983-4-git-send-email-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 242A26E6E3 for ; Tue, 19 Apr 2016 09:16:32 +0000 (UTC) In-Reply-To: <1461048560-31983-4-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 Ck9uIDE5LzA0LzE2IDA3OjQ5LCBDaHJpcyBXaWxzb24gd3JvdGU6Cj4gUmVmYWN0b3IgcGlubmlu ZyBhbmQgdW5waW5uaW5nIG9mIGNvbnRleHRzLCBzdWNoIHRoYXQgdGhlIGRlZmF1bHQKPiBjb250 ZXh0IGZvciBhbiBlbmdpbmUgaXMgcGlubmVkIGR1cmluZyBpbml0aWFsaXNhdGlvbiBhbmQgdW5w aW5uZWQKPiBkdXJpbmcgdGVhcmRvd24gKHBpbm5pbmcgb2YgdGhlIGNvbnRleHQgaGFuZGxlcyB0 aGUgcmVmZXJlbmNlIGNvdW50aW5nKS4KPiBUaHVzIHdlIGNhbiBlbGltaW5hdGUgdGhlIHNwZWNp YWwgY2FzZSBoYW5kbGluZyBvZiB0aGUgZGVmYXVsdCBjb250ZXh0Cj4gdGhhdCB3YXMgcmVxdWly ZWQgdG8gbWFzayB0aGF0IGl0IHdhcyBub3QgYmVpbmcgcGlubmVkIG5vcm1hbGx5Lgo+Cj4gdjI6 IFJlYmFsYW5jZSBjb250ZXh0X3F1ZXVlIGFmdGVyIHJlYmFzaW5nLgo+Cj4gU2lnbmVkLW9mZi1i eTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gLS0tCj4gICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAgICAgfCAgIDUgKy0KPiAgIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuYyB8ICAgNiArLQo+ICAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgICAgIHwgMTAzICsrKysrKysrKysrKy0tLS0tLS0tLS0t LS0tLS0tLS0tCj4gICAzIGZpbGVzIGNoYW5nZWQsIDQxIGluc2VydGlvbnMoKyksIDczIGRlbGV0 aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdm cy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiBpbmRleCBiZDQwOWJm YTZlNjEuLmEwN2MzNDc4ZjBkOCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2RlYnVnZnMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5j Cj4gQEAgLTIxMDgsOSArMjEwOCw4IEBAIHN0YXRpYyBpbnQgaTkxNV9kdW1wX2xyYyhzdHJ1Y3Qg c2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKPiAgIAkJcmV0dXJuIHJldDsKPgo+ICAgCWxpc3Rf Zm9yX2VhY2hfZW50cnkoY3R4LCAmZGV2X3ByaXYtPmNvbnRleHRfbGlzdCwgbGluaykKPiAtCQlp ZiAoY3R4ICE9IGRldl9wcml2LT5rZXJuZWxfY29udGV4dCkKPiAtCQkJZm9yX2VhY2hfZW5naW5l KGVuZ2luZSwgZGV2X3ByaXYpCj4gLQkJCQlpOTE1X2R1bXBfbHJjX29iaihtLCBjdHgsIGVuZ2lu ZSk7Cj4gKwkJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYpCj4gKwkJCWk5MTVfZHVt cF9scmNfb2JqKG0sIGN0eCwgZW5naW5lKTsKPgo+ICAgCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1 Y3RfbXV0ZXgpOwo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X3JlcXVlc3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuYwo+IGlu ZGV4IGE2ZjNlNmU1M2IzYi4uMzNhYWNmMTcyNWRkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX3JlcXVlc3QuYwo+IEBAIC02NDQsMTAgKzY0NCw4IEBAIHZvaWQgaTkxNV9nZW1f cmVxdWVzdF9mcmVlKHN0cnVjdCBrcmVmICpyZXFfcmVmKQo+ICAgCQlpOTE1X2dlbV9yZXF1ZXN0 X3JlbW92ZV9mcm9tX2NsaWVudChyZXEpOwo+Cj4gICAJaWYgKGN0eCkgewo+IC0JCWlmIChpOTE1 LmVuYWJsZV9leGVjbGlzdHMpIHsKPiAtCQkJaWYgKGN0eCAhPSB0b19pOTE1KHJlcSktPmtlcm5l bF9jb250ZXh0KQo+IC0JCQkJaW50ZWxfbHJfY29udGV4dF91bnBpbihjdHgsIHJlcS0+ZW5naW5l KTsKPiAtCQl9Cj4gKwkJaWYgKGk5MTUuZW5hYmxlX2V4ZWNsaXN0cykKPiArCQkJaW50ZWxfbHJf Y29udGV4dF91bnBpbihjdHgsIHJlcS0+ZW5naW5lKTsKPgo+ICAgCQlpOTE1X2dlbV9jb250ZXh0 X3VucmVmZXJlbmNlKGN0eCk7Cj4gICAJfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gaW5k ZXggY2VjMTEyNDQ5YjMxLi43OWFjNmYwNmE1MDIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9s cmMuYwo+IEBAIC01ODUsOSArNTg1LDcgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX2NvbnRleHRf cXVldWUoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQo+ICAgCXN0cnVjdCBk cm1faTkxNV9nZW1fcmVxdWVzdCAqY3Vyc29yOwo+ICAgCWludCBudW1fZWxlbWVudHMgPSAwOwo+ Cj4gLQlpZiAocmVxdWVzdC0+Y3R4ICE9IHRvX2k5MTUocmVxdWVzdCktPmtlcm5lbF9jb250ZXh0 KQo+IC0JCWludGVsX2xyX2NvbnRleHRfcGluKHJlcXVlc3QtPmN0eCwgZW5naW5lKTsKPiAtCj4g KwlpbnRlbF9scl9jb250ZXh0X3BpbihyZXF1ZXN0LT5jdHgsIHJlcXVlc3QtPmVuZ2luZSk7Cj4g ICAJaTkxNV9nZW1fcmVxdWVzdF9yZWZlcmVuY2UocmVxdWVzdCk7Cj4KPiAgIAlzcGluX2xvY2tf YmgoJmVuZ2luZS0+ZXhlY2xpc3RfbG9jayk7Cj4gQEAgLTY4OCwxMCArNjg2LDcgQEAgaW50IGlu dGVsX2xvZ2ljYWxfcmluZ19hbGxvY19yZXF1ZXN0X2V4dHJhcyhzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X3JlcXVlc3QgKnJlcXVlc3QKPiAgIAkJCXJldHVybiByZXQ7Cj4gICAJfQo+Cj4gLQlpZiAocmVx dWVzdC0+Y3R4ICE9IHRvX2k5MTUocmVxdWVzdCktPmtlcm5lbF9jb250ZXh0KQo+IC0JCXJldCA9 IGludGVsX2xyX2NvbnRleHRfcGluKHJlcXVlc3QtPmN0eCwgcmVxdWVzdC0+ZW5naW5lKTsKPiAt Cj4gLQlyZXR1cm4gcmV0Owo+ICsJcmV0dXJuIGludGVsX2xyX2NvbnRleHRfcGluKHJlcXVlc3Qt PmN0eCwgcmVxdWVzdC0+ZW5naW5lKTsKPiAgIH0KPgo+ICAgc3RhdGljIGludCBsb2dpY2FsX3Jp bmdfd2FpdF9mb3Jfc3BhY2Uoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gQEAg LTc2OCwxMiArNzYzLDggQEAgaW50ZWxfbG9naWNhbF9yaW5nX2FkdmFuY2VfYW5kX3N1Ym1pdChz dHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCj4gICAJaWYgKGVuZ2luZS0+bGFz dF9jb250ZXh0ICE9IHJlcXVlc3QtPmN0eCkgewo+ICAgCQlpZiAoZW5naW5lLT5sYXN0X2NvbnRl eHQpCj4gICAJCQlpbnRlbF9scl9jb250ZXh0X3VucGluKGVuZ2luZS0+bGFzdF9jb250ZXh0LCBl bmdpbmUpOwo+IC0JCWlmIChyZXF1ZXN0LT5jdHggIT0gdG9faTkxNShyZXF1ZXN0KS0+a2VybmVs X2NvbnRleHQpIHsKPiAtCQkJaW50ZWxfbHJfY29udGV4dF9waW4ocmVxdWVzdC0+Y3R4LCBlbmdp bmUpOwo+IC0JCQllbmdpbmUtPmxhc3RfY29udGV4dCA9IHJlcXVlc3QtPmN0eDsKPiAtCQl9IGVs c2Ugewo+IC0JCQllbmdpbmUtPmxhc3RfY29udGV4dCA9IE5VTEw7Cj4gLQkJfQo+ICsJCWludGVs X2xyX2NvbnRleHRfcGluKHJlcXVlc3QtPmN0eCwgZW5naW5lKTsKPiArCQllbmdpbmUtPmxhc3Rf Y29udGV4dCA9IHJlcXVlc3QtPmN0eDsKPiAgIAl9Cj4KPiAgIAlpZiAoZGV2X3ByaXYtPmd1Yy5l eGVjYnVmX2NsaWVudCkKPiBAQCAtOTk2LDEyICs5ODcsNyBAQCB2b2lkIGludGVsX2V4ZWNsaXN0 c19yZXRpcmVfcmVxdWVzdHMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAgCXNw aW5fdW5sb2NrX2JoKCZlbmdpbmUtPmV4ZWNsaXN0X2xvY2spOwo+Cj4gICAJbGlzdF9mb3JfZWFj aF9lbnRyeV9zYWZlKHJlcSwgdG1wLCAmcmV0aXJlZF9saXN0LCBleGVjbGlzdF9saW5rKSB7Cj4g LQkJc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCA9IHJlcS0+Y3R4Owo+IC0JCXN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqID0KPiAtCQkJCWN0eC0+ZW5naW5lW2VuZ2luZS0+aWRd LnN0YXRlOwo+IC0KPiAtCQlpZiAoY3R4X29iaiAmJiAoY3R4ICE9IHRvX2k5MTUocmVxKS0+a2Vy bmVsX2NvbnRleHQpKQo+IC0JCQlpbnRlbF9scl9jb250ZXh0X3VucGluKGN0eCwgZW5naW5lKTsK PiArCQlpbnRlbF9scl9jb250ZXh0X3VucGluKHJlcS0+Y3R4LCBlbmdpbmUpOwo+Cj4gICAJCWxp c3RfZGVsKCZyZXEtPmV4ZWNsaXN0X2xpbmspOwo+ICAgCQlpOTE1X2dlbV9yZXF1ZXN0X3VucmVm ZXJlbmNlKHJlcSk7Cj4gQEAgLTEwNDYsMjIgKzEwMzIsMjUgQEAgaW50IGxvZ2ljYWxfcmluZ19m bHVzaF9hbGxfY2FjaGVzKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQo+ICAgCXJl dHVybiAwOwo+ICAgfQo+Cj4gLXN0YXRpYyBpbnQgaW50ZWxfbHJfY29udGV4dF9kb19waW4oc3Ry dWN0IGludGVsX2NvbnRleHQgKmN0eCwKPiAtCQkJCSAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSkKPiArc3RhdGljIGludCBpbnRlbF9scl9jb250ZXh0X3BpbihzdHJ1Y3QgaW50ZWxf Y29udGV4dCAqY3R4LAo+ICsJCQkJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAg ewo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGN0eC0+aTkxNTsKPiAt CXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqID0gY3R4LT5lbmdpbmVbZW5naW5l LT5pZF0uc3RhdGU7Cj4gLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiA9IGN0eC0+ ZW5naW5lW2VuZ2luZS0+aWRdLnJpbmdidWY7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqY3R4X29iajsKPiArCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmOwo+ICAgCXZv aWQgKnZhZGRyOwo+IC0JdTMyICpscmNfcmVnX3N0YXRlOwo+ICsJdWludDMyX3QgKmxyY19yZWdf c3RhdGU7CgpJIHByZWZlciB1MzIsIGFuZCB5b3UgcHJlZmVycmVkIHU2NCBpbiAiZHJtL2k5MTU6 IFJlcGxhY2UgdGhlIHBpbm5lZCAKY29udGV4dCBhZGRyZXNzIHdpdGggaXRzIHVuaXF1ZSBJRCIu IDopIERvZXNuJ3QgbWF0dGVyIHJlYWxseSwgaXQgaXMgdG9vIApsYXRlIGZvciBjb25zaXN0ZW5j eSBhbnl3YXkuCgo+ICAgCWludCByZXQ7Cj4KPiAtCVdBUk5fT04oIW11dGV4X2lzX2xvY2tlZCgm ZW5naW5lLT5kZXYtPnN0cnVjdF9tdXRleCkpOwo+ICsJbG9ja2RlcF9hc3NlcnRfaGVsZCgmY3R4 LT5pOTE1LT5kZXYtPnN0cnVjdF9tdXRleCk7Cj4gKwlpZiAoY3R4LT5lbmdpbmVbZW5naW5lLT5p ZF0ucGluX2NvdW50KyspCj4gKwkJcmV0dXJuIDA7Cj4KPiArCWN0eF9vYmogPSBjdHgtPmVuZ2lu ZVtlbmdpbmUtPmlkXS5zdGF0ZTsKPiAgIAlyZXQgPSBpOTE1X2dlbV9vYmpfZ2d0dF9waW4oY3R4 X29iaiwgR0VOOF9MUl9DT05URVhUX0FMSUdOLAo+ICAgCQkJUElOX09GRlNFVF9CSUFTIHwgR1VD X1dPUENNX1RPUCk7Cj4gICAJaWYgKHJldCkKPiAtCQlyZXR1cm4gcmV0Owo+ICsJCWdvdG8gZXJy Owo+Cj4gICAJdmFkZHIgPSBpOTE1X2dlbV9vYmplY3RfcGluX21hcChjdHhfb2JqKTsKPiAgIAlp ZiAoSVNfRVJSKHZhZGRyKSkgewo+IEBAIC0xMDcxLDEwICsxMDYwLDEyIEBAIHN0YXRpYyBpbnQg aW50ZWxfbHJfY29udGV4dF9kb19waW4oc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwKPgo+ICAg CWxyY19yZWdfc3RhdGUgPSB2YWRkciArIExSQ19TVEFURV9QTiAqIFBBR0VfU0laRTsKPgo+ICsJ cmluZ2J1ZiA9IGN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdLnJpbmdidWY7Cj4gICAJcmV0ID0gaW50 ZWxfcGluX2FuZF9tYXBfcmluZ2J1ZmZlcl9vYmooZW5naW5lLT5kZXYsIHJpbmdidWYpOwo+ICAg CWlmIChyZXQpCj4gICAJCWdvdG8gdW5waW5fbWFwOwo+Cj4gKwlpOTE1X2dlbV9jb250ZXh0X3Jl ZmVyZW5jZShjdHgpOwo+ICAgCWN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdLmxyY192bWEgPSBpOTE1 X2dlbV9vYmpfdG9fZ2d0dChjdHhfb2JqKTsKPiAgIAlpbnRlbF9scl9jb250ZXh0X2Rlc2NyaXB0 b3JfdXBkYXRlKGN0eCwgZW5naW5lKTsKPiAgIAlscmNfcmVnX3N0YXRlW0NUWF9SSU5HX0JVRkZF Ul9TVEFSVCsxXSA9IHJpbmdidWYtPnZtYS0+bm9kZS5zdGFydDsKPiBAQCAtMTA4NSwzMSArMTA3 NiwxMyBAQCBzdGF0aWMgaW50IGludGVsX2xyX2NvbnRleHRfZG9fcGluKHN0cnVjdCBpbnRlbF9j b250ZXh0ICpjdHgsCj4gICAJaWYgKGk5MTUuZW5hYmxlX2d1Y19zdWJtaXNzaW9uKQo+ICAgCQlJ OTE1X1dSSVRFKEdFTjhfR1RDUiwgR0VOOF9HVENSX0lOVkFMSURBVEUpOwo+Cj4gLQlyZXR1cm4g cmV0Owo+ICsJcmV0dXJuIDA7Cj4KPiAgIHVucGluX21hcDoKPiAgIAlpOTE1X2dlbV9vYmplY3Rf dW5waW5fbWFwKGN0eF9vYmopOwo+ICAgdW5waW5fY3R4X29iajoKPiAgIAlpOTE1X2dlbV9vYmpl Y3RfZ2d0dF91bnBpbihjdHhfb2JqKTsKPiAtCj4gLQlyZXR1cm4gcmV0Owo+IC19Cj4gLQo+IC1z dGF0aWMgaW50IGludGVsX2xyX2NvbnRleHRfcGluKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgs Cj4gLQkJCQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gLXsKPiAtCWludCByZXQg PSAwOwo+IC0KPiAtCWlmIChjdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5waW5fY291bnQrKyA9PSAw KSB7Cj4gLQkJcmV0ID0gaW50ZWxfbHJfY29udGV4dF9kb19waW4oY3R4LCBlbmdpbmUpOwo+IC0J CWlmIChyZXQpCj4gLQkJCWdvdG8gcmVzZXRfcGluX2NvdW50Owo+IC0KPiAtCQlpOTE1X2dlbV9j b250ZXh0X3JlZmVyZW5jZShjdHgpOwo+IC0JfQo+IC0JcmV0dXJuIHJldDsKPiAtCj4gLXJlc2V0 X3Bpbl9jb3VudDoKPiArZXJyOgo+ICAgCWN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdLnBpbl9jb3Vu dCA9IDA7Cj4gICAJcmV0dXJuIHJldDsKPiAgIH0KPiBAQCAtMTExOSwxNyArMTA5MiwyMSBAQCB2 b2lkIGludGVsX2xyX2NvbnRleHRfdW5waW4oc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwKPiAg IHsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X29iaiA9IGN0eC0+ZW5naW5l W2VuZ2luZS0+aWRdLnN0YXRlOwo+Cj4gLQlXQVJOX09OKCFtdXRleF9pc19sb2NrZWQoJmN0eC0+ aTkxNS0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpKTsKPiAtCWlmICgtLWN0eC0+ZW5naW5lW2VuZ2luZS0+ aWRdLnBpbl9jb3VudCA9PSAwKSB7Cj4gLQkJaTkxNV9nZW1fb2JqZWN0X3VucGluX21hcChjdHhf b2JqKTsKPiAtCQlpbnRlbF91bnBpbl9yaW5nYnVmZmVyX29iaihjdHgtPmVuZ2luZVtlbmdpbmUt PmlkXS5yaW5nYnVmKTsKPiAtCQlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihjdHhfb2JqKTsK PiAtCQljdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5scmNfdm1hID0gTlVMTDsKPiAtCQljdHgtPmVu Z2luZVtlbmdpbmUtPmlkXS5scmNfZGVzYyA9IDA7Cj4gLQkJY3R4LT5lbmdpbmVbZW5naW5lLT5p ZF0ubHJjX3JlZ19zdGF0ZSA9IE5VTEw7Cj4gKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZjdHgtPmk5 MTUtPmRldi0+c3RydWN0X211dGV4KTsKPiArCUdFTV9CVUdfT04oY3R4LT5lbmdpbmVbZW5naW5l LT5pZF0ucGluX2NvdW50ID09IDApOwoKSSB0aG91Z2h0IGl0IGlzIG1vcmUgcmVhZGFibGUgdG8g bGVhdmUgc3BhY2UgYmV0d2VlbiBhc3NlcnRzIGFuZCBjb2RlLiAKQW5kIGluIHBpbiBhcyB3ZWxs IGlmIHlvdSBkZWNpZGUgdG8gZG8gaXQuCgo+ICsJaWYgKC0tY3R4LT5lbmdpbmVbZW5naW5lLT5p ZF0ucGluX2NvdW50KQo+ICsJCXJldHVybjsKPgo+IC0JCWk5MTVfZ2VtX2NvbnRleHRfdW5yZWZl cmVuY2UoY3R4KTsKPiAtCX0KCkNvdWxkIG1vdmUgY3R4X29iaiBhc3NpZ25tZW50IGp1c3QgYmVm b3JlIHVzZSBoZXJlLgoKPiArCWk5MTVfZ2VtX29iamVjdF91bnBpbl9tYXAoY3R4X29iaik7Cj4g KwlpbnRlbF91bnBpbl9yaW5nYnVmZmVyX29iaihjdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5yaW5n YnVmKTsKPiArCj4gKwlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihjdHhfb2JqKTsKPiArCj4g KwljdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5scmNfdm1hID0gTlVMTDsKPiArCWN0eC0+ZW5naW5l W2VuZ2luZS0+aWRdLmxyY19kZXNjID0gMDsKPiArCWN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdLmxy Y19yZWdfc3RhdGUgPSBOVUxMOwo+ICsKPiArCWk5MTVfZ2VtX2NvbnRleHRfdW5yZWZlcmVuY2Uo Y3R4KTsKPiAgIH0KPgo+ICAgc3RhdGljIGludCBpbnRlbF9sb2dpY2FsX3Jpbmdfd29ya2Fyb3Vu ZHNfZW1pdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiBAQCAtMTk4Miw2ICsx OTU5LDcgQEAgdm9pZCBpbnRlbF9sb2dpY2FsX3JpbmdfY2xlYW51cChzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUpCj4gICAJCWk5MTVfZ2VtX29iamVjdF91bnBpbl9tYXAoZW5naW5lLT5z dGF0dXNfcGFnZS5vYmopOwo+ICAgCQllbmdpbmUtPnN0YXR1c19wYWdlLm9iaiA9IE5VTEw7Cj4g ICAJfQo+ICsJaW50ZWxfbHJfY29udGV4dF91bnBpbihlbmdpbmUtPmk5MTUtPmtlcm5lbF9jb250 ZXh0LCBlbmdpbmUpOwoKSSBkb24ndCBzZWUgZW5naW5lLT5pOTE1IHVwc3RyZWFtIHlldCB1bmxl c3MgSSBhbSBtaXNzaW5nIHNvbWV0aGluZy4gCmRldl9wcml2IGlzIGFscmVhZHkgdGhlcmUgb24g dGhlIG90aGVyIGhhbmQuCgo+Cj4gICAJZW5naW5lLT5pZGxlX2xpdGVfcmVzdG9yZV93YSA9IDA7 Cj4gICAJZW5naW5lLT5kaXNhYmxlX2xpdGVfcmVzdG9yZV93YSA9IGZhbHNlOwo+IEBAIC0yMTA0 LDExICsyMDgyLDEwIEBAIGxvZ2ljYWxfcmluZ19pbml0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSkKPiAgIAkJZ290byBlcnJvcjsKPgo+ICAgCS8qIEFzIHRoaXMgaXMgdGhlIGRlZmF1 bHQgY29udGV4dCwgYWx3YXlzIHBpbiBpdCAqLwo+IC0JcmV0ID0gaW50ZWxfbHJfY29udGV4dF9k b19waW4oZGN0eCwgZW5naW5lKTsKPiArCXJldCA9IGludGVsX2xyX2NvbnRleHRfcGluKGRjdHgs IGVuZ2luZSk7Cj4gICAJaWYgKHJldCkgewo+IC0JCURSTV9FUlJPUigKPiAtCQkJIkZhaWxlZCB0 byBwaW4gYW5kIG1hcCByaW5nYnVmZmVyICVzOiAlZFxuIiwKPiAtCQkJZW5naW5lLT5uYW1lLCBy ZXQpOwo+ICsJCURSTV9FUlJPUigiRmFpbGVkIHRvIHBpbiBjb250ZXh0IGZvciAlczogJWRcbiIs Cj4gKwkJCSAgZW5naW5lLT5uYW1lLCByZXQpOwo+ICAgCQlnb3RvIGVycm9yOwo+ICAgCX0KPgo+ IEBAIC0yNTA1LDEyICsyNDgyLDYgQEAgdm9pZCBpbnRlbF9scl9jb250ZXh0X2ZyZWUoc3RydWN0 IGludGVsX2NvbnRleHQgKmN0eCkKPiAgIAkJaWYgKCFjdHhfb2JqKQo+ICAgCQkJY29udGludWU7 Cj4KPiAtCQlpZiAoY3R4ID09IGN0eC0+aTkxNS0+a2VybmVsX2NvbnRleHQpIHsKPiAtCQkJaW50 ZWxfdW5waW5fcmluZ2J1ZmZlcl9vYmoocmluZ2J1Zik7Cj4gLQkJCWk5MTVfZ2VtX29iamVjdF9n Z3R0X3VucGluKGN0eF9vYmopOwo+IC0JCQlpOTE1X2dlbV9vYmplY3RfdW5waW5fbWFwKGN0eF9v YmopOwo+IC0JCX0KPiAtCj4gICAJCVdBUk5fT04oY3R4LT5lbmdpbmVbaV0ucGluX2NvdW50KTsK PiAgIAkJaW50ZWxfcmluZ2J1ZmZlcl9mcmVlKHJpbmdidWYpOwo+ICAgCQlkcm1fZ2VtX29iamVj dF91bnJlZmVyZW5jZSgmY3R4X29iai0+YmFzZSk7Cj4KCkp1c3Qgc29tZSBtaW5vcnMgdGhlbiBh bmQgY29ycmVjdCByZWJhc2UuIE90aGVyd2lzZSBJIHRoaW5rIGl0IGlzIGNvcnJlY3QuCgpSZWdh cmRzLAoKVHZydGtvCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n ZngK