From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH v2 08/12] drm/i915: Refactor execlists default context pinning Date: Tue, 19 Apr 2016 13:25:34 +0100 Message-ID: <571623BE.8090008@linux.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"; 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 ESMTP id 1F88D6E758 for ; Tue, 19 Apr 2016 12:25:36 +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 Ck9uIDE5LzA0LzE2IDEyOjQwLCBDaHJpcyBXaWxzb24gd3JvdGU6Cj4gUmVmYWN0b3IgcGlubmlu ZyBhbmQgdW5waW5uaW5nIG9mIGNvbnRleHRzLCBzdWNoIHRoYXQgdGhlIGRlZmF1bHQKPiBjb250 ZXh0IGZvciBhbiBlbmdpbmUgaXMgcGlubmVkIGR1cmluZyBpbml0aWFsaXNhdGlvbiBhbmQgdW5w aW5uZWQKPiBkdXJpbmcgdGVhcmRvd24gKHBpbm5pbmcgb2YgdGhlIGNvbnRleHQgaGFuZGxlcyB0 aGUgcmVmZXJlbmNlIGNvdW50aW5nKS4KPiBUaHVzIHdlIGNhbiBlbGltaW5hdGUgdGhlIHNwZWNp YWwgY2FzZSBoYW5kbGluZyBvZiB0aGUgZGVmYXVsdCBjb250ZXh0Cj4gdGhhdCB3YXMgcmVxdWly ZWQgdG8gbWFzayB0aGF0IGl0IHdhcyBub3QgYmVpbmcgcGlubmVkIG5vcm1hbGx5Lgo+Cj4gdjI6 IFJlYmFsYW5jZSBjb250ZXh0X3F1ZXVlIGFmdGVyIHJlYmFzaW5nLgo+IHYzOiBSZWJhc2UgdG8g LW5pZ2h0bHkgKG5vdCA0MCBwYXRjaGVzIGluKQo+Cj4gU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2ls c29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gQ2M6IFR2cnRrbyBVcnN1bGluIDx0dnJ0 a28udXJzdWxpbkBsaW51eC5pbnRlbC5jb20+Cj4gLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2RlYnVnZnMuYyB8ICAgNSArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW0uYyAgICAgfCAgIDIgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jICAg IHwgMTA3ICsrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICAgMyBmaWxlcyBj aGFuZ2VkLCA0MyBpbnNlcnRpb25zKCspLCA3MSBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZGVidWdmcy5jCj4gaW5kZXggZjc3NTQ1MWJkMGI2Li5lODFhNzUwNDY1NmUgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+IEBAIC0yMDk1LDkgKzIwOTUsOCBA QCBzdGF0aWMgaW50IGk5MTVfZHVtcF9scmMoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVz ZWQpCj4gICAJCXJldHVybiByZXQ7Cj4KPiAgIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGN0eCwgJmRl dl9wcml2LT5jb250ZXh0X2xpc3QsIGxpbmspCj4gLQkJaWYgKGN0eCAhPSBkZXZfcHJpdi0+a2Vy bmVsX2NvbnRleHQpCj4gLQkJCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2KQo+IC0J CQkJaTkxNV9kdW1wX2xyY19vYmoobSwgY3R4LCBlbmdpbmUpOwo+ICsJCWZvcl9lYWNoX2VuZ2lu ZShlbmdpbmUsIGRldl9wcml2KQo+ICsJCQlpOTE1X2R1bXBfbHJjX29iaihtLCBjdHgsIGVuZ2lu ZSk7Cj4KPiAgIAltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKPgo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW0uYwo+IGluZGV4IGI5NWQ1ZjgzZDNiMC4uMjYxMTg1MjgxZTc4IDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gQEAgLTI3MTksNyArMjcxOSw3IEBAIHZvaWQgaTkxNV9n ZW1fcmVxdWVzdF9mcmVlKHN0cnVjdCBrcmVmICpyZXFfcmVmKQo+ICAgCQlpOTE1X2dlbV9yZXF1 ZXN0X3JlbW92ZV9mcm9tX2NsaWVudChyZXEpOwo+Cj4gICAJaWYgKGN0eCkgewo+IC0JCWlmIChp OTE1LmVuYWJsZV9leGVjbGlzdHMgJiYgY3R4ICE9IHJlcS0+aTkxNS0+a2VybmVsX2NvbnRleHQp Cj4gKwkJaWYgKGk5MTUuZW5hYmxlX2V4ZWNsaXN0cykKPiAgIAkJCWludGVsX2xyX2NvbnRleHRf dW5waW4oY3R4LCByZXEtPmVuZ2luZSk7Cj4KPiAgIAkJaTkxNV9nZW1fY29udGV4dF91bnJlZmVy ZW5jZShjdHgpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gaW5kZXggZGVkZDgyYWVhMzg2 Li5lMDY0YTZhZTJkOTcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf bHJjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+IEBAIC01ODgs OSArNTg4LDcgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX2NvbnRleHRfcXVldWUoc3RydWN0IGRy bV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQo+ICAgCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqY3Vyc29yOwo+ICAgCWludCBudW1fZWxlbWVudHMgPSAwOwo+Cj4gLQlpZiAocmVxdWVz dC0+Y3R4ICE9IHJlcXVlc3QtPmk5MTUtPmtlcm5lbF9jb250ZXh0KQo+IC0JCWludGVsX2xyX2Nv bnRleHRfcGluKHJlcXVlc3QtPmN0eCwgZW5naW5lKTsKPiAtCj4gKwlpbnRlbF9scl9jb250ZXh0 X3BpbihyZXF1ZXN0LT5jdHgsIHJlcXVlc3QtPmVuZ2luZSk7Cj4gICAJaTkxNV9nZW1fcmVxdWVz dF9yZWZlcmVuY2UocmVxdWVzdCk7Cj4KPiAgIAlzcGluX2xvY2tfYmgoJmVuZ2luZS0+ZXhlY2xp c3RfbG9jayk7Cj4gQEAgLTY5MSwxMCArNjg5LDcgQEAgaW50IGludGVsX2xvZ2ljYWxfcmluZ19h bGxvY19yZXF1ZXN0X2V4dHJhcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QK PiAgIAkJCXJldHVybiByZXQ7Cj4gICAJfQo+Cj4gLQlpZiAocmVxdWVzdC0+Y3R4ICE9IHJlcXVl c3QtPmk5MTUtPmtlcm5lbF9jb250ZXh0KQo+IC0JCXJldCA9IGludGVsX2xyX2NvbnRleHRfcGlu KHJlcXVlc3QtPmN0eCwgcmVxdWVzdC0+ZW5naW5lKTsKPiAtCj4gLQlyZXR1cm4gcmV0Owo+ICsJ cmV0dXJuIGludGVsX2xyX2NvbnRleHRfcGluKHJlcXVlc3QtPmN0eCwgcmVxdWVzdC0+ZW5naW5l KTsKPiAgIH0KPgo+ICAgc3RhdGljIGludCBsb2dpY2FsX3Jpbmdfd2FpdF9mb3Jfc3BhY2Uoc3Ry dWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gQEAgLTc3NCwxMiArNzY5LDggQEAgaW50 ZWxfbG9naWNhbF9yaW5nX2FkdmFuY2VfYW5kX3N1Ym1pdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3Jl cXVlc3QgKnJlcXVlc3QpCj4gICAJaWYgKGVuZ2luZS0+bGFzdF9jb250ZXh0ICE9IHJlcXVlc3Qt PmN0eCkgewo+ICAgCQlpZiAoZW5naW5lLT5sYXN0X2NvbnRleHQpCj4gICAJCQlpbnRlbF9scl9j b250ZXh0X3VucGluKGVuZ2luZS0+bGFzdF9jb250ZXh0LCBlbmdpbmUpOwo+IC0JCWlmIChyZXF1 ZXN0LT5jdHggIT0gcmVxdWVzdC0+aTkxNS0+a2VybmVsX2NvbnRleHQpIHsKPiAtCQkJaW50ZWxf bHJfY29udGV4dF9waW4ocmVxdWVzdC0+Y3R4LCBlbmdpbmUpOwo+IC0JCQllbmdpbmUtPmxhc3Rf Y29udGV4dCA9IHJlcXVlc3QtPmN0eDsKPiAtCQl9IGVsc2Ugewo+IC0JCQllbmdpbmUtPmxhc3Rf Y29udGV4dCA9IE5VTEw7Cj4gLQkJfQo+ICsJCWludGVsX2xyX2NvbnRleHRfcGluKHJlcXVlc3Qt PmN0eCwgZW5naW5lKTsKPiArCQllbmdpbmUtPmxhc3RfY29udGV4dCA9IHJlcXVlc3QtPmN0eDsK PiAgIAl9Cj4KPiAgIAlpZiAoZGV2X3ByaXYtPmd1Yy5leGVjYnVmX2NsaWVudCkKPiBAQCAtMTAw MiwxMiArOTkzLDcgQEAgdm9pZCBpbnRlbF9leGVjbGlzdHNfcmV0aXJlX3JlcXVlc3RzKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgIAlzcGluX3VubG9ja19iaCgmZW5naW5lLT5l eGVjbGlzdF9sb2NrKTsKPgo+ICAgCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShyZXEsIHRtcCwg JnJldGlyZWRfbGlzdCwgZXhlY2xpc3RfbGluaykgewo+IC0JCXN0cnVjdCBpbnRlbF9jb250ZXh0 ICpjdHggPSByZXEtPmN0eDsKPiAtCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X29i aiA9Cj4gLQkJCQljdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5zdGF0ZTsKPiAtCj4gLQkJaWYgKGN0 eF9vYmogJiYgKGN0eCAhPSByZXEtPmk5MTUtPmtlcm5lbF9jb250ZXh0KSkKPiAtCQkJaW50ZWxf bHJfY29udGV4dF91bnBpbihjdHgsIGVuZ2luZSk7Cj4gKwkJaW50ZWxfbHJfY29udGV4dF91bnBp bihyZXEtPmN0eCwgZW5naW5lKTsKPgo+ICAgCQlsaXN0X2RlbCgmcmVxLT5leGVjbGlzdF9saW5r KTsKPiAgIAkJaTkxNV9nZW1fcmVxdWVzdF91bnJlZmVyZW5jZShyZXEpOwo+IEBAIC0xMDUyLDIz ICsxMDM4LDI2IEBAIGludCBsb2dpY2FsX3JpbmdfZmx1c2hfYWxsX2NhY2hlcyhzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiAgIAlyZXR1cm4gMDsKPiAgIH0KPgo+IC1zdGF0aWMg aW50IGludGVsX2xyX2NvbnRleHRfZG9fcGluKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsCj4g LQkJCQkgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gK3N0YXRpYyBpbnQgaW50 ZWxfbHJfY29udGV4dF9waW4oc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwKPiArCQkJCXN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgIHsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSBlbmdpbmUtPmRldjsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IGRldi0+ZGV2X3ByaXZhdGU7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X29i aiA9IGN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdLnN0YXRlOwo+IC0Jc3RydWN0IGludGVsX3Jpbmdi dWZmZXIgKnJpbmdidWYgPSBjdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5yaW5nYnVmOwo+ICsJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gY3R4LT5pOTE1Owo+ICsJc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKmN0eF9vYmo7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAq cmluZ2J1ZjsKPiAgIAl2b2lkICp2YWRkcjsKPiAgIAl1MzIgKmxyY19yZWdfc3RhdGU7Cj4gICAJ aW50IHJldDsKPgo+IC0JV0FSTl9PTighbXV0ZXhfaXNfbG9ja2VkKCZlbmdpbmUtPmRldi0+c3Ry dWN0X211dGV4KSk7Cj4gKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZjdHgtPmk5MTUtPmRldi0+c3Ry dWN0X211dGV4KTsKPgo+ICsJaWYgKGN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdLnBpbl9jb3VudCsr KQo+ICsJCXJldHVybiAwOwo+ICsKPiArCWN0eF9vYmogPSBjdHgtPmVuZ2luZVtlbmdpbmUtPmlk XS5zdGF0ZTsKPiAgIAlyZXQgPSBpOTE1X2dlbV9vYmpfZ2d0dF9waW4oY3R4X29iaiwgR0VOOF9M Ul9DT05URVhUX0FMSUdOLAo+ICAgCQkJUElOX09GRlNFVF9CSUFTIHwgR1VDX1dPUENNX1RPUCk7 Cj4gICAJaWYgKHJldCkKPiAtCQlyZXR1cm4gcmV0Owo+ICsJCWdvdG8gZXJyOwo+Cj4gICAJdmFk ZHIgPSBpOTE1X2dlbV9vYmplY3RfcGluX21hcChjdHhfb2JqKTsKPiAgIAlpZiAoSVNfRVJSKHZh ZGRyKSkgewo+IEBAIC0xMDc4LDEwICsxMDY3LDEyIEBAIHN0YXRpYyBpbnQgaW50ZWxfbHJfY29u dGV4dF9kb19waW4oc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwKPgo+ICAgCWxyY19yZWdfc3Rh dGUgPSB2YWRkciArIExSQ19TVEFURV9QTiAqIFBBR0VfU0laRTsKPgo+ICsJcmluZ2J1ZiA9IGN0 eC0+ZW5naW5lW2VuZ2luZS0+aWRdLnJpbmdidWY7Cj4gICAJcmV0ID0gaW50ZWxfcGluX2FuZF9t YXBfcmluZ2J1ZmZlcl9vYmooZW5naW5lLT5kZXYsIHJpbmdidWYpOwo+ICAgCWlmIChyZXQpCj4g ICAJCWdvdG8gdW5waW5fbWFwOwo+Cj4gKwlpOTE1X2dlbV9jb250ZXh0X3JlZmVyZW5jZShjdHgp Owo+ICAgCWN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdLmxyY192bWEgPSBpOTE1X2dlbV9vYmpfdG9f Z2d0dChjdHhfb2JqKTsKPiAgIAlpbnRlbF9scl9jb250ZXh0X2Rlc2NyaXB0b3JfdXBkYXRlKGN0 eCwgZW5naW5lKTsKPiAgIAlscmNfcmVnX3N0YXRlW0NUWF9SSU5HX0JVRkZFUl9TVEFSVCsxXSA9 IHJpbmdidWYtPnZtYS0+bm9kZS5zdGFydDsKPiBAQCAtMTA5Miw1MSArMTA4MywzOSBAQCBzdGF0 aWMgaW50IGludGVsX2xyX2NvbnRleHRfZG9fcGluKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgs Cj4gICAJaWYgKGk5MTUuZW5hYmxlX2d1Y19zdWJtaXNzaW9uKQo+ICAgCQlJOTE1X1dSSVRFKEdF TjhfR1RDUiwgR0VOOF9HVENSX0lOVkFMSURBVEUpOwo+Cj4gLQlyZXR1cm4gcmV0Owo+ICsJcmV0 dXJuIDA7Cj4KPiAgIHVucGluX21hcDoKPiAgIAlpOTE1X2dlbV9vYmplY3RfdW5waW5fbWFwKGN0 eF9vYmopOwo+ICAgdW5waW5fY3R4X29iajoKPiAgIAlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBp bihjdHhfb2JqKTsKPiAtCj4gK2VycjoKPiArCWN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdLnBpbl9j b3VudCA9IDA7Cj4gICAJcmV0dXJuIHJldDsKPiAgIH0KPgo+IC1zdGF0aWMgaW50IGludGVsX2xy X2NvbnRleHRfcGluKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsCj4gLQkJCQlzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gK3ZvaWQgaW50ZWxfbHJfY29udGV4dF91bnBpbihzdHJ1 Y3QgaW50ZWxfY29udGV4dCAqY3R4LAo+ICsJCQkgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lKQo+ICAgewo+IC0JaW50IHJldCA9IDA7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqY3R4X29iajsKPgo+IC0JaWYgKGN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdLnBpbl9jb3Vu dCsrID09IDApIHsKPiAtCQlyZXQgPSBpbnRlbF9scl9jb250ZXh0X2RvX3BpbihjdHgsIGVuZ2lu ZSk7Cj4gLQkJaWYgKHJldCkKPiAtCQkJZ290byByZXNldF9waW5fY291bnQ7Cj4gKwlsb2NrZGVw X2Fzc2VydF9oZWxkKCZjdHgtPmk5MTUtPmRldi0+c3RydWN0X211dGV4KTsKPiArCUdFTV9CVUdf T04oY3R4LT5lbmdpbmVbZW5naW5lLT5pZF0ucGluX2NvdW50ID09IDApOwo+Cj4gLQkJaTkxNV9n ZW1fY29udGV4dF9yZWZlcmVuY2UoY3R4KTsKPiAtCX0KPiAtCXJldHVybiByZXQ7Cj4gKwlpZiAo LS1jdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5waW5fY291bnQpCj4gKwkJcmV0dXJuOwo+Cj4gLXJl c2V0X3Bpbl9jb3VudDoKPiAtCWN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdLnBpbl9jb3VudCA9IDA7 Cj4gLQlyZXR1cm4gcmV0Owo+IC19Cj4gKwlpbnRlbF91bnBpbl9yaW5nYnVmZmVyX29iaihjdHgt PmVuZ2luZVtlbmdpbmUtPmlkXS5yaW5nYnVmKTsKPgo+IC12b2lkIGludGVsX2xyX2NvbnRleHRf dW5waW4oc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwKPiAtCQkJICAgIHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSkKPiAtewo+IC0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0 eF9vYmogPSBjdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5zdGF0ZTsKPiArCWN0eF9vYmogPSBjdHgt PmVuZ2luZVtlbmdpbmUtPmlkXS5zdGF0ZTsKPiArCWk5MTVfZ2VtX29iamVjdF91bnBpbl9tYXAo Y3R4X29iaik7Cj4gKwlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihjdHhfb2JqKTsKPgo+IC0J V0FSTl9PTighbXV0ZXhfaXNfbG9ja2VkKCZjdHgtPmk5MTUtPmRldi0+c3RydWN0X211dGV4KSk7 Cj4gLQlpZiAoLS1jdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5waW5fY291bnQgPT0gMCkgewo+IC0J CWk5MTVfZ2VtX29iamVjdF91bnBpbl9tYXAoY3R4X29iaik7Cj4gLQkJaW50ZWxfdW5waW5fcmlu Z2J1ZmZlcl9vYmooY3R4LT5lbmdpbmVbZW5naW5lLT5pZF0ucmluZ2J1Zik7Cj4gLQkJaTkxNV9n ZW1fb2JqZWN0X2dndHRfdW5waW4oY3R4X29iaik7Cj4gLQkJY3R4LT5lbmdpbmVbZW5naW5lLT5p ZF0ubHJjX3ZtYSA9IE5VTEw7Cj4gLQkJY3R4LT5lbmdpbmVbZW5naW5lLT5pZF0ubHJjX2Rlc2Mg PSAwOwo+IC0JCWN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdLmxyY19yZWdfc3RhdGUgPSBOVUxMOwo+ ICsJY3R4LT5lbmdpbmVbZW5naW5lLT5pZF0ubHJjX3ZtYSA9IE5VTEw7Cj4gKwljdHgtPmVuZ2lu ZVtlbmdpbmUtPmlkXS5scmNfZGVzYyA9IDA7Cj4gKwljdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5s cmNfcmVnX3N0YXRlID0gTlVMTDsKPgo+IC0JCWk5MTVfZ2VtX2NvbnRleHRfdW5yZWZlcmVuY2Uo Y3R4KTsKPiAtCX0KPiArCWk5MTVfZ2VtX2NvbnRleHRfdW5yZWZlcmVuY2UoY3R4KTsKPiAgIH0K Pgo+ICAgc3RhdGljIGludCBpbnRlbF9sb2dpY2FsX3Jpbmdfd29ya2Fyb3VuZHNfZW1pdChzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiBAQCAtMjAzNCw2ICsyMDEzLDcgQEAgdm9p ZCBpbnRlbF9sb2dpY2FsX3JpbmdfY2xlYW51cChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUpCj4gICAJCWk5MTVfZ2VtX29iamVjdF91bnBpbl9tYXAoZW5naW5lLT5zdGF0dXNfcGFnZS5v YmopOwo+ICAgCQllbmdpbmUtPnN0YXR1c19wYWdlLm9iaiA9IE5VTEw7Cj4gICAJfQo+ICsJaW50 ZWxfbHJfY29udGV4dF91bnBpbihkZXZfcHJpdi0+a2VybmVsX2NvbnRleHQsIGVuZ2luZSk7Cj4K PiAgIAllbmdpbmUtPmlkbGVfbGl0ZV9yZXN0b3JlX3dhID0gMDsKPiAgIAllbmdpbmUtPmRpc2Fi bGVfbGl0ZV9yZXN0b3JlX3dhID0gZmFsc2U7Cj4gQEAgLTIxMzcsMTEgKzIxMTcsMTAgQEAgbG9n aWNhbF9yaW5nX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lKQo+ICAgCQlnb3RvIGVycm9yOwo+Cj4gICAJLyogQXMgdGhpcyBpcyB0aGUg ZGVmYXVsdCBjb250ZXh0LCBhbHdheXMgcGluIGl0ICovCj4gLQlyZXQgPSBpbnRlbF9scl9jb250 ZXh0X2RvX3BpbihkY3R4LCBlbmdpbmUpOwo+ICsJcmV0ID0gaW50ZWxfbHJfY29udGV4dF9waW4o ZGN0eCwgZW5naW5lKTsKPiAgIAlpZiAocmV0KSB7Cj4gLQkJRFJNX0VSUk9SKAo+IC0JCQkiRmFp bGVkIHRvIHBpbiBhbmQgbWFwIHJpbmdidWZmZXIgJXM6ICVkXG4iLAo+IC0JCQllbmdpbmUtPm5h bWUsIHJldCk7Cj4gKwkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gcGluIGNvbnRleHQgZm9yICVzOiAl ZFxuIiwKPiArCQkJICBlbmdpbmUtPm5hbWUsIHJldCk7Cj4gICAJCWdvdG8gZXJyb3I7Cj4gICAJ fQo+Cj4gQEAgLTI1NjIsMTIgKzI1NDEsNiBAQCB2b2lkIGludGVsX2xyX2NvbnRleHRfZnJlZShz dHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4KQo+ICAgCQlpZiAoIWN0eF9vYmopCj4gICAJCQljb250 aW51ZTsKPgo+IC0JCWlmIChjdHggPT0gY3R4LT5pOTE1LT5rZXJuZWxfY29udGV4dCkgewo+IC0J CQlpbnRlbF91bnBpbl9yaW5nYnVmZmVyX29iaihyaW5nYnVmKTsKPiAtCQkJaTkxNV9nZW1fb2Jq ZWN0X2dndHRfdW5waW4oY3R4X29iaik7Cj4gLQkJCWk5MTVfZ2VtX29iamVjdF91bnBpbl9tYXAo Y3R4X29iaik7Cj4gLQkJfQo+IC0KPiAgIAkJV0FSTl9PTihjdHgtPmVuZ2luZVtpXS5waW5fY291 bnQpOwo+ICAgCQlpbnRlbF9yaW5nYnVmZmVyX2ZyZWUocmluZ2J1Zik7Cj4gICAJCWRybV9nZW1f b2JqZWN0X3VucmVmZXJlbmNlKCZjdHhfb2JqLT5iYXNlKTsKPgoKUmV2aWV3ZWQtYnk6IFR2cnRr byBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+CgpSZWdhcmRzLAoKVHZydGtvCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZngg bWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK