From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 21/43] drm/i915: Track the pinned kernel contexts on each engine Date: Fri, 8 Mar 2019 09:26:35 +0000 Message-ID: References: <20190306142517.22558-1-chris@chris-wilson.co.uk> <20190306142517.22558-22-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 8321B6E2F5 for ; Fri, 8 Mar 2019 09:26:39 +0000 (UTC) In-Reply-To: <20190306142517.22558-22-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 Cc: matthew.auld@intel.com List-Id: intel-gfx@lists.freedesktop.org Ck9uIDA2LzAzLzIwMTkgMTQ6MjQsIENocmlzIFdpbHNvbiB3cm90ZToKPiBFYWNoIGVuZ2luZSBh Y3F1aXJlcyBhIHBpbiBvbiB0aGUga2VybmVsIGNvbnRleHRzIChub3JtYWwgYW5kIHByZWVtcHQp Cj4gc28gdGhhdCB0aGUgbG9naWNhbCBzdGF0ZSBpcyBhbHdheXMgYXZhaWxhYmxlIG9uIGRlbWFu ZC4gS2VlcCB0cmFjayBvZgo+IGVhY2ggZW5naW5lcyBwaW4gYnkgc3RvcmluZyB0aGUgcmV0dXJu ZWQgcG9pbnRlciBvbiB0aGUgZW5naW5lIGZvciBxdWljawo+IGFjY2Vzcy4KPiAKPiBTaWduZWQt b2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPiAtLS0KPiAg IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jICAgICAgIHwgNjUgKysrKysr KysrKy0tLS0tLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV90eXBl cy5oICAgIHwgIDggKy0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfYWRzLmMg ICAgICAgICB8ICAzICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAgICAg ICAgICAgICB8IDEzICsrLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZm ZXIuYyAgICAgIHwgIDMgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2Nr X2VuZ2luZS5jIHwgIDUgKy0KPiAgIDYgZmlsZXMgY2hhbmdlZCwgNDUgaW5zZXJ0aW9ucygrKSwg NTIgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2VuZ2luZV9jcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMK PiBpbmRleCAxOTM3MTI4ZWEyNjcuLjY1MmMxYjNiYTE5MCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2VuZ2luZV9jcy5jCj4gQEAgLTY0MSwxMiArNjQxLDYgQEAgdm9pZCBpbnRlbF9l bmdpbmVzX3NldF9zY2hlZHVsZXJfY2FwcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkK PiAgIAkJaTkxNS0+Y2Fwcy5zY2hlZHVsZXIgPSAwOwo+ICAgfQo+ICAgCj4gLXN0YXRpYyB2b2lk IF9faW50ZWxfY29udGV4dF91bnBpbihzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAo+IC0J CQkJICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gLXsKPiAtCWludGVsX2NvbnRl eHRfdW5waW4oaW50ZWxfY29udGV4dF9sb29rdXAoY3R4LCBlbmdpbmUpKTsKPiAtfQo+IC0KPiAg IHN0cnVjdCBtZWFzdXJlX2JyZWFkY3J1bWIgewo+ICAgCXN0cnVjdCBpOTE1X3JlcXVlc3QgcnE7 Cj4gICAJc3RydWN0IGk5MTVfdGltZWxpbmUgdGltZWxpbmU7Cj4gQEAgLTY5Nyw2ICs2OTEsMjAg QEAgc3RhdGljIGludCBtZWFzdXJlX2JyZWFkY3J1bWJfZHcoc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lKQo+ICAgCXJldHVybiBkdzsKPiAgIH0KPiAgIAo+ICtzdGF0aWMgaW50IHBpbl9j b250ZXh0KHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCj4gKwkJICAgICAgIHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKPiArCQkgICAgICAgc3RydWN0IGludGVsX2NvbnRleHQg KipvdXQpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZTsKPiArCj4gKwljZSA9IGlu dGVsX2NvbnRleHRfcGluKGN0eCwgZW5naW5lKTsKPiArCWlmIChJU19FUlIoY2UpKQo+ICsJCXJl dHVybiBQVFJfRVJSKGNlKTsKPiArCj4gKwkqb3V0ID0gY2U7Cj4gKwlyZXR1cm4gMDsKPiArfQo+ ICsKPiAgIC8qKgo+ICAgICogaW50ZWxfZW5naW5lc19pbml0X2NvbW1vbiAtIGluaXRpYWxpemUg Y2VuZ2luZSBzdGF0ZSB3aGljaCBtaWdodCByZXF1aXJlIGh3IGFjY2Vzcwo+ICAgICogQGVuZ2lu ZTogRW5naW5lIHRvIGluaXRpYWxpemUuCj4gQEAgLTcxMSwxMSArNzE5LDggQEAgc3RhdGljIGlu dCBtZWFzdXJlX2JyZWFkY3J1bWJfZHcoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ ICAgaW50IGludGVsX2VuZ2luZV9pbml0X2NvbW1vbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUpCj4gICB7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBlbmdpbmUt Pmk5MTU7Cj4gLQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2U7Cj4gICAJaW50IHJldDsKPiAgIAo+ IC0JZW5naW5lLT5zZXRfZGVmYXVsdF9zdWJtaXNzaW9uKGVuZ2luZSk7Cj4gLQo+ICAgCS8qIFdl IG1heSBuZWVkIHRvIGRvIHRoaW5ncyB3aXRoIHRoZSBzaHJpbmtlciB3aGljaAo+ICAgCSAqIHJl cXVpcmUgdXMgdG8gaW1tZWRpYXRlbHkgc3dpdGNoIGJhY2sgdG8gdGhlIGRlZmF1bHQKPiAgIAkg KiBjb250ZXh0LiBUaGlzIGNhbiBjYXVzZSBhIHByb2JsZW0gYXMgcGlubmluZyB0aGUKPiBAQCAt NzIzLDM2ICs3MjgsMzQgQEAgaW50IGludGVsX2VuZ2luZV9pbml0X2NvbW1vbihzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gICAJICogYmUgYXZhaWxhYmxlLiBUbyBhdm9pZCB0aGlz IHdlIGFsd2F5cyBwaW4gdGhlIGRlZmF1bHQKPiAgIAkgKiBjb250ZXh0Lgo+ICAgCSAqLwo+IC0J Y2UgPSBpbnRlbF9jb250ZXh0X3BpbihpOTE1LT5rZXJuZWxfY29udGV4dCwgZW5naW5lKTsKPiAt CWlmIChJU19FUlIoY2UpKQo+IC0JCXJldHVybiBQVFJfRVJSKGNlKTsKPiArCXJldCA9IHBpbl9j b250ZXh0KGk5MTUtPmtlcm5lbF9jb250ZXh0LCBlbmdpbmUsCj4gKwkJCSAgJmVuZ2luZS0+a2Vy bmVsX2NvbnRleHQpOwo+ICsJaWYgKHJldCkKPiArCQlyZXR1cm4gcmV0Owo+ICAgCj4gICAJLyoK PiAgIAkgKiBTaW1pbGFybHkgdGhlIHByZWVtcHQgY29udGV4dCBtdXN0IGFsd2F5cyBiZSBhdmFp bGFibGUgc28gdGhhdAo+IC0JICogd2UgY2FuIGludGVycnVwdCB0aGUgZW5naW5lIGF0IGFueSB0 aW1lLgo+ICsJICogd2UgY2FuIGludGVycnVwdCB0aGUgZW5naW5lIGF0IGFueSB0aW1lLiBIb3dl dmVyLCBhcyBwcmVlbXB0aW9uCj4gKwkgKiBpcyBvcHRpb25hbCwgd2UgYWxsb3cgaXQgdG8gZmFp bC4KPiAgIAkgKi8KPiAtCWlmIChpOTE1LT5wcmVlbXB0X2NvbnRleHQpIHsKPiAtCQljZSA9IGlu dGVsX2NvbnRleHRfcGluKGk5MTUtPnByZWVtcHRfY29udGV4dCwgZW5naW5lKTsKPiAtCQlpZiAo SVNfRVJSKGNlKSkgewo+IC0JCQlyZXQgPSBQVFJfRVJSKGNlKTsKPiAtCQkJZ290byBlcnJfdW5w aW5fa2VybmVsOwo+IC0JCX0KPiAtCX0KPiArCWlmIChpOTE1LT5wcmVlbXB0X2NvbnRleHQpCj4g KwkJcGluX2NvbnRleHQoaTkxNS0+cHJlZW1wdF9jb250ZXh0LCBlbmdpbmUsCj4gKwkJCSAgICAm ZW5naW5lLT5wcmVlbXB0X2NvbnRleHQpOwo+ICAgCj4gICAJcmV0ID0gbWVhc3VyZV9icmVhZGNy dW1iX2R3KGVuZ2luZSk7Cj4gICAJaWYgKHJldCA8IDApCj4gLQkJZ290byBlcnJfdW5waW5fcHJl ZW1wdDsKPiArCQlnb3RvIGVycl91bnBpbjsKPiAgIAo+ICAgCWVuZ2luZS0+ZW1pdF9maW5pX2Jy ZWFkY3J1bWJfZHcgPSByZXQ7Cj4gICAKPiAtCXJldHVybiAwOwo+ICsJZW5naW5lLT5zZXRfZGVm YXVsdF9zdWJtaXNzaW9uKGVuZ2luZSk7Cj4gICAKPiAtZXJyX3VucGluX3ByZWVtcHQ6Cj4gLQlp ZiAoaTkxNS0+cHJlZW1wdF9jb250ZXh0KQo+IC0JCV9faW50ZWxfY29udGV4dF91bnBpbihpOTE1 LT5wcmVlbXB0X2NvbnRleHQsIGVuZ2luZSk7Cj4gKwlyZXR1cm4gMDsKPiAgIAo+IC1lcnJfdW5w aW5fa2VybmVsOgo+IC0JX19pbnRlbF9jb250ZXh0X3VucGluKGk5MTUtPmtlcm5lbF9jb250ZXh0 LCBlbmdpbmUpOwo+ICtlcnJfdW5waW46Cj4gKwlpZiAoZW5naW5lLT5wcmVlbXB0X2NvbnRleHQp Cj4gKwkJaW50ZWxfY29udGV4dF91bnBpbihlbmdpbmUtPnByZWVtcHRfY29udGV4dCk7Cj4gKwlp bnRlbF9jb250ZXh0X3VucGluKGVuZ2luZS0+a2VybmVsX2NvbnRleHQpOwo+ICAgCXJldHVybiBy ZXQ7Cj4gICB9Cj4gICAKPiBAQCAtNzY1LDggKzc2OCw2IEBAIGludCBpbnRlbF9lbmdpbmVfaW5p dF9jb21tb24oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAgICovCj4gICB2b2lk IGludGVsX2VuZ2luZV9jbGVhbnVwX2NvbW1vbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUpCj4gICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGVuZ2luZS0+aTkx NTsKPiAtCj4gICAJY2xlYW51cF9zdGF0dXNfcGFnZShlbmdpbmUpOwo+ICAgCj4gICAJaW50ZWxf ZW5naW5lX2ZpbmlfYnJlYWRjcnVtYnMoZW5naW5lKTsKPiBAQCAtNzc2LDkgKzc3Nyw5IEBAIHZv aWQgaW50ZWxfZW5naW5lX2NsZWFudXBfY29tbW9uKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSkKPiAgIAlpZiAoZW5naW5lLT5kZWZhdWx0X3N0YXRlKQo+ICAgCQlpOTE1X2dlbV9vYmpl Y3RfcHV0KGVuZ2luZS0+ZGVmYXVsdF9zdGF0ZSk7Cj4gICAKPiAtCWlmIChpOTE1LT5wcmVlbXB0 X2NvbnRleHQpCj4gLQkJX19pbnRlbF9jb250ZXh0X3VucGluKGk5MTUtPnByZWVtcHRfY29udGV4 dCwgZW5naW5lKTsKPiAtCV9faW50ZWxfY29udGV4dF91bnBpbihpOTE1LT5rZXJuZWxfY29udGV4 dCwgZW5naW5lKTsKPiArCWlmIChlbmdpbmUtPnByZWVtcHRfY29udGV4dCkKPiArCQlpbnRlbF9j b250ZXh0X3VucGluKGVuZ2luZS0+cHJlZW1wdF9jb250ZXh0KTsKPiArCWludGVsX2NvbnRleHRf dW5waW4oZW5naW5lLT5rZXJuZWxfY29udGV4dCk7Cj4gICAKPiAgIAlpOTE1X3RpbWVsaW5lX2Zp bmkoJmVuZ2luZS0+dGltZWxpbmUpOwo+ICAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2VuZ2luZV90eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZW5naW5lX3R5cGVzLmgKPiBpbmRleCAyMWYzMjc1Y2MwMGMuLmIwYWExZjBkNGU0NyAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfdHlwZXMuaAo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV90eXBlcy5oCj4gQEAgLTIzMSwxMSAr MjMxLDYgQEAgc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgewo+ICAgCSAqLwo+ICAgCXUz MiAqY3NiX3N0YXR1czsKPiAgIAo+IC0JLyoqCj4gLQkgKiBAcHJlZW1wdF9jb250ZXh0OiB0aGUg SFcgY29udGV4dCBmb3IgaW5qZWN0aW5nIHByZWVtcHQtdG8taWRsZQo+IC0JICovCj4gLQlzdHJ1 Y3QgaW50ZWxfY29udGV4dCAqcHJlZW1wdF9jb250ZXh0Owo+IC0KPiAgIAkvKioKPiAgIAkgKiBA cHJlZW1wdF9jb21wbGV0ZV9zdGF0dXM6IGV4cGVjdGVkIENTQiB1cG9uIGNvbXBsZXRpbmcgcHJl ZW1wdGlvbgo+ICAgCSAqLwo+IEBAIC0yNzEsNiArMjY2LDkgQEAgc3RydWN0IGludGVsX2VuZ2lu ZV9jcyB7Cj4gICAKPiAgIAlzdHJ1Y3QgaTkxNV90aW1lbGluZSB0aW1lbGluZTsKPiAgIAo+ICsJ c3RydWN0IGludGVsX2NvbnRleHQgKmtlcm5lbF9jb250ZXh0OyAvKiBwaW5uZWQgKi8KPiArCXN0 cnVjdCBpbnRlbF9jb250ZXh0ICpwcmVlbXB0X2NvbnRleHQ7IC8qIHBpbm5lZDsgb3B0aW9uYWwg Ki8KPiArCj4gICAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmRlZmF1bHRfc3RhdGU7Cj4g ICAJdm9pZCAqcGlubmVkX2RlZmF1bHRfc3RhdGU7Cj4gICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2Fkcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZ3VjX2Fkcy5jCj4gaW5kZXggYjRmZjAwNDVhNjA1Li5iZWM2MmYzNGIxNWEgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2Fkcy5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2Fkcy5jCj4gQEAgLTEyMSw4ICsxMjEsNyBAQCBpbnQg aW50ZWxfZ3VjX2Fkc19jcmVhdGUoc3RydWN0IGludGVsX2d1YyAqZ3VjKQo+ICAgCSAqIHRvIGZp bmQgaXQuIE5vdGUgdGhhdCB3ZSBoYXZlIHRvIHNraXAgb3VyIGhlYWRlciAoMSBwYWdlKSwKPiAg IAkgKiBiZWNhdXNlIG91ciBHdUMgc2hhcmVkIGRhdGEgaXMgdGhlcmUuCj4gICAJICovCj4gLQlr ZXJuZWxfY3R4X3ZtYSA9IGludGVsX2NvbnRleHRfbG9va3VwKGRldl9wcml2LT5rZXJuZWxfY29u dGV4dCwKPiAtCQkJCQkgICAgICBkZXZfcHJpdi0+ZW5naW5lW1JDUzBdKS0+c3RhdGU7Cj4gKwlr ZXJuZWxfY3R4X3ZtYSA9IGRldl9wcml2LT5lbmdpbmVbUkNTMF0tPmtlcm5lbF9jb250ZXh0LT5z dGF0ZTsKPiAgIAlibG9iLT5hZHMuZ29sZGVuX2NvbnRleHRfbHJjYSA9Cj4gICAJCWludGVsX2d1 Y19nZ3R0X29mZnNldChndWMsIGtlcm5lbF9jdHhfdm1hKSArIHNraXBwZWRfb2Zmc2V0Owo+ICAg Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiBpbmRleCA3OTEwN2FiNzcxZDguLmY3MTM0ZDY1 MDE4NyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gQEAgLTYyNiw3ICs2MjYsNyBA QCBzdGF0aWMgdm9pZCBwb3J0X2Fzc2lnbihzdHJ1Y3QgZXhlY2xpc3RfcG9ydCAqcG9ydCwgc3Ry dWN0IGk5MTVfcmVxdWVzdCAqcnEpCj4gICBzdGF0aWMgdm9pZCBpbmplY3RfcHJlZW1wdF9jb250 ZXh0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgIHsKPiAgIAlzdHJ1Y3QgaW50 ZWxfZW5naW5lX2V4ZWNsaXN0cyAqZXhlY2xpc3RzID0gJmVuZ2luZS0+ZXhlY2xpc3RzOwo+IC0J c3RydWN0IGludGVsX2NvbnRleHQgKmNlID0gZXhlY2xpc3RzLT5wcmVlbXB0X2NvbnRleHQ7Cj4g KwlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UgPSBlbmdpbmUtPnByZWVtcHRfY29udGV4dDsKPiAg IAl1bnNpZ25lZCBpbnQgbjsKPiAgIAo+ICAgCUdFTV9CVUdfT04oZXhlY2xpc3RzLT5wcmVlbXB0 X2NvbXBsZXRlX3N0YXR1cyAhPQo+IEBAIC0yMzIxLDcgKzIzMjEsNyBAQCB2b2lkIGludGVsX2V4 ZWNsaXN0c19zZXRfZGVmYXVsdF9zdWJtaXNzaW9uKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSkKPiAgIAo+ICAgCWVuZ2luZS0+ZmxhZ3MgfD0gSTkxNV9FTkdJTkVfSEFTX1NFTUFQSE9S RVM7Cj4gICAJZW5naW5lLT5mbGFncyB8PSBJOTE1X0VOR0lORV9TVVBQT1JUU19TVEFUUzsKPiAt CWlmIChlbmdpbmUtPmk5MTUtPnByZWVtcHRfY29udGV4dCkKPiArCWlmIChlbmdpbmUtPnByZWVt cHRfY29udGV4dCkKPiAgIAkJZW5naW5lLT5mbGFncyB8PSBJOTE1X0VOR0lORV9IQVNfUFJFRU1Q VElPTjsKPiAgIH0KPiAgIAo+IEBAIC0yNDIzLDE0ICsyNDIzLDkgQEAgc3RhdGljIGludCBsb2dp Y2FsX3JpbmdfaW5pdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gICAJfQo+ICAg Cj4gICAJZXhlY2xpc3RzLT5wcmVlbXB0X2NvbXBsZXRlX3N0YXR1cyA9IH4wdTsKPiAtCWlmIChp OTE1LT5wcmVlbXB0X2NvbnRleHQpIHsKPiAtCQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UgPQo+ IC0JCQlpbnRlbF9jb250ZXh0X2xvb2t1cChpOTE1LT5wcmVlbXB0X2NvbnRleHQsIGVuZ2luZSk7 Cj4gLQo+IC0JCWV4ZWNsaXN0cy0+cHJlZW1wdF9jb250ZXh0ID0gY2U7Cj4gKwlpZiAoZW5naW5l LT5wcmVlbXB0X2NvbnRleHQpCj4gICAJCWV4ZWNsaXN0cy0+cHJlZW1wdF9jb21wbGV0ZV9zdGF0 dXMgPQo+IC0JCQl1cHBlcl8zMl9iaXRzKGNlLT5scmNfZGVzYyk7Cj4gLQl9Cj4gKwkJCXVwcGVy XzMyX2JpdHMoZW5naW5lLT5wcmVlbXB0X2NvbnRleHQtPmxyY19kZXNjKTsKPiAgIAo+ICAgCWV4 ZWNsaXN0cy0+Y3NiX3N0YXR1cyA9Cj4gICAJCSZlbmdpbmUtPnN0YXR1c19wYWdlLmFkZHJbSTkx NV9IV1NfQ1NCX0JVRjBfSU5ERVhdOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9yaW5nYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVm ZmVyLmMKPiBpbmRleCBkMDY5MDhjOTU4NGMuLjAzNjU2MDIxZDA0YyAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKPiBAQCAtMTczNSw4ICsxNzM1LDcgQEAgc3Rh dGljIGlubGluZSBpbnQgbWlfc2V0X2NvbnRleHQoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIHUz MiBmbGFncykKPiAgIAkJICogcGxhY2Vob2xkZXIgd2UgdXNlIHRvIGZsdXNoIG90aGVyIGNvbnRl eHRzLgo+ICAgCQkgKi8KPiAgIAkJKmNzKysgPSBNSV9TRVRfQ09OVEVYVDsKPiAtCQkqY3MrKyA9 IGk5MTVfZ2d0dF9vZmZzZXQoaW50ZWxfY29udGV4dF9sb29rdXAoaTkxNS0+a2VybmVsX2NvbnRl eHQsCj4gLQkJCQkJCQkgICAgICBlbmdpbmUpLT5zdGF0ZSkgfAo+ICsJCSpjcysrID0gaTkxNV9n Z3R0X29mZnNldChlbmdpbmUtPmtlcm5lbF9jb250ZXh0LT5zdGF0ZSkgfAo+ICAgCQkJTUlfTU1f U1BBQ0VfR1RUIHwKPiAgIAkJCU1JX1JFU1RPUkVfSU5ISUJJVDsKPiAgIAl9Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX2VuZ2luZS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZW5naW5lLmMKPiBpbmRleCBlNDgzMzI5ZmQ1 MzMuLjk5ZDc0NjMyMThkMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxm dGVzdHMvbW9ja19lbmdpbmUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0 cy9tb2NrX2VuZ2luZS5jCj4gQEAgLTIzMyw3ICsyMzMsOCBAQCBzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICptb2NrX2VuZ2luZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKPiAgIAl0aW1l cl9zZXR1cCgmZW5naW5lLT5od19kZWxheSwgaHdfZGVsYXlfY29tcGxldGUsIDApOwo+ICAgCUlO SVRfTElTVF9IRUFEKCZlbmdpbmUtPmh3X3F1ZXVlKTsKPiAgIAo+IC0JaWYgKElTX0VSUihpbnRl bF9jb250ZXh0X3BpbihpOTE1LT5rZXJuZWxfY29udGV4dCwgJmVuZ2luZS0+YmFzZSkpKQo+ICsJ aWYgKHBpbl9jb250ZXh0KGk5MTUtPmtlcm5lbF9jb250ZXh0LCAmZW5naW5lLT5iYXNlLAo+ICsJ CQkmZW5naW5lLT5iYXNlLmtlcm5lbF9jb250ZXh0KSkKPiAgIAkJZ290byBlcnJfYnJlYWRjcnVt YnM7Cj4gICAKPiAgIAlyZXR1cm4gJmVuZ2luZS0+YmFzZTsKPiBAQCAtMjc2LDcgKzI3Nyw3IEBA IHZvaWQgbW9ja19lbmdpbmVfZnJlZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4g ICAJaWYgKGNlKQo+ICAgCQlpbnRlbF9jb250ZXh0X3VucGluKGNlKTsKPiAgIAo+IC0JX19pbnRl bF9jb250ZXh0X3VucGluKGVuZ2luZS0+aTkxNS0+a2VybmVsX2NvbnRleHQsIGVuZ2luZSk7Cj4g KwlpbnRlbF9jb250ZXh0X3VucGluKGVuZ2luZS0+a2VybmVsX2NvbnRleHQpOwo+ICAgCj4gICAJ aW50ZWxfZW5naW5lX2ZpbmlfYnJlYWRjcnVtYnMoZW5naW5lKTsKPiAgIAlpOTE1X3RpbWVsaW5l X2ZpbmkoJmVuZ2luZS0+dGltZWxpbmUpOwo+IAoKSSBhbSBub3QgZW50aXJlbHkgaGFwcHkgd2l0 aCB0aGUgcmVtb3ZhbCBvZiBwcmVlbXB0IGNvbnRleHQgcGluIGZhaWx1cmUgCnBhdGggYnV0IGl0 IGlzIGFsc28gc29tZXRoaW5nIHNvIHVubGlrZWx5IHNvIHNob3VsZCBub3QgYmUgY29uc2lkZXJl ZCBhIApibG9ja2VyLgoKUmV2aWV3ZWQtYnk6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxp bkBpbnRlbC5jb20+CgpSZWdhcmRzLAoKVHZydGtvCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeA==