From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 1/2] drm/i915: Add i915_gem_object_vmap to map GEM object to virtual space Date: Thu, 18 Feb 2016 10:49:22 +0000 Message-ID: <56C5A1B2.1040107@linux.intel.com> References: <1455751108-17673-1-git-send-email-yu.dai@intel.com> <1455751108-17673-2-git-send-email-yu.dai@intel.com> 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 ECF2D6EB28 for ; Thu, 18 Feb 2016 10:49:24 +0000 (UTC) In-Reply-To: <1455751108-17673-2-git-send-email-yu.dai@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: yu.dai@intel.com, intel-gfx@lists.freedesktop.org Cc: daniel.vetter@ffwll.ch List-Id: intel-gfx@lists.freedesktop.org CkhpLAoKT24gMTcvMDIvMTYgMjM6MTgsIHl1LmRhaUBpbnRlbC5jb20gd3JvdGU6Cj4gRnJvbTog QWxleCBEYWkgPHl1LmRhaUBpbnRlbC5jb20+Cj4KPiBUaGVyZSBhcmUgc2V2ZXJhbCBwbGFjZXMg aW5zaWRlIGRyaXZlciB3aGVyZSBhIEdFTSBvYmplY3QgaXMgbWFwcGVkIHRvCj4ga2VybmVsIHZp cnR1YWwgc3BhY2UuIFRoZSBtYXBwaW5nIGlzIGVpdGhlciBkb25lIGZvciB0aGUgd2hvbGUgb2Jq ZWN0Cj4gb3IgY2VydGFpbiBwYWdlIHJhbmdlIG9mIGl0Lgo+Cj4gVGhpcyBwYXRjaCBpbnRyb2R1 Y2VzIGEgZnVuY3Rpb24gaTkxNV9nZW1fb2JqZWN0X3ZtYXAgdG8gZG8gc3VjaCBqb2IuCj4KPiBT aWduZWQtb2ZmLWJ5OiBBbGV4IERhaSA8eXUuZGFpQGludGVsLmNvbT4KPiBDYzogRGF2ZSBHb3Jk b24gPGRhdmlkLnMuZ29yZG9uQGludGVsLmNvbT4KPiBDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVs LnZldHRlckBmZndsbC5jaD4KPiBDYzogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGlu dGVsLmNvbT4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfY21kX3BhcnNlci5j ICB8IDI4ICstLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaCAgICAgICAgIHwgIDMgKysrCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bS5jICAgICAgICAgfCA0NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2RtYWJ1Zi5jICB8IDE1ICsrLS0tLS0tLS0tCj4g ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgfCAyNCArKy0tLS0tLS0t LS0tLS0tLS0KPiAgIDUgZmlsZXMgY2hhbmdlZCwgNTIgaW5zZXJ0aW9ucygrKSwgNjIgZGVsZXRp b25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9jbWRfcGFy c2VyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2NtZF9wYXJzZXIuYwo+IGluZGV4IDgx NGQ4OTQuLjkxNWU4YzEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9j bWRfcGFyc2VyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2NtZF9wYXJzZXIu Ywo+IEBAIC04NjMsMzcgKzg2MywxMSBAQCBmaW5kX3JlZyhjb25zdCBzdHJ1Y3QgZHJtX2k5MTVf cmVnX2Rlc2NyaXB0b3IgKnRhYmxlLAo+ICAgc3RhdGljIHUzMiAqdm1hcF9iYXRjaChzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ICAgCQkgICAgICAgdW5zaWduZWQgc3RhcnQsIHVu c2lnbmVkIGxlbikKPiAgIHsKPiAtCWludCBpOwo+IC0Jdm9pZCAqYWRkciA9IE5VTEw7Cj4gLQlz dHJ1Y3Qgc2dfcGFnZV9pdGVyIHNnX2l0ZXI7Cj4gICAJaW50IGZpcnN0X3BhZ2UgPSBzdGFydCA+ PiBQQUdFX1NISUZUOwo+ICAgCWludCBsYXN0X3BhZ2UgPSAobGVuICsgc3RhcnQgKyA0MDk1KSA+ PiBQQUdFX1NISUZUOwo+ICAgCWludCBucGFnZXMgPSBsYXN0X3BhZ2UgLSBmaXJzdF9wYWdlOwo+ IC0Jc3RydWN0IHBhZ2UgKipwYWdlczsKPiAtCj4gLQlwYWdlcyA9IGRybV9tYWxsb2NfYWIobnBh Z2VzLCBzaXplb2YoKnBhZ2VzKSk7Cj4gLQlpZiAocGFnZXMgPT0gTlVMTCkgewo+IC0JCURSTV9E RUJVR19EUklWRVIoIkZhaWxlZCB0byBnZXQgc3BhY2UgZm9yIHBhZ2VzXG4iKTsKPiAtCQlnb3Rv IGZpbmlzaDsKPiAtCX0KPiAtCj4gLQlpID0gMDsKPiAtCWZvcl9lYWNoX3NnX3BhZ2Uob2JqLT5w YWdlcy0+c2dsLCAmc2dfaXRlciwgb2JqLT5wYWdlcy0+bmVudHMsIGZpcnN0X3BhZ2UpIHsKPiAt CQlwYWdlc1tpKytdID0gc2dfcGFnZV9pdGVyX3BhZ2UoJnNnX2l0ZXIpOwo+IC0JCWlmIChpID09 IG5wYWdlcykKPiAtCQkJYnJlYWs7Cj4gLQl9Cj4gLQo+IC0JYWRkciA9IHZtYXAocGFnZXMsIGks IDAsIFBBR0VfS0VSTkVMKTsKPiAtCWlmIChhZGRyID09IE5VTEwpIHsKPiAtCQlEUk1fREVCVUdf RFJJVkVSKCJGYWlsZWQgdG8gdm1hcCBwYWdlc1xuIik7Cj4gLQkJZ290byBmaW5pc2g7Cj4gLQl9 Cj4KPiAtZmluaXNoOgo+IC0JaWYgKHBhZ2VzKQo+IC0JCWRybV9mcmVlX2xhcmdlKHBhZ2VzKTsK PiAtCXJldHVybiAodTMyKilhZGRyOwo+ICsJcmV0dXJuICh1MzIqKWk5MTVfZ2VtX29iamVjdF92 bWFwKG9iaiwgZmlyc3RfcGFnZSwgbnBhZ2VzKTsKPiAgIH0KPgo+ICAgLyogUmV0dXJucyBhIHZt YXAnZCBwb2ludGVyIHRvIGRlc3Rfb2JqLCB3aGljaCB0aGUgY2FsbGVyIG11c3QgdW5tYXAgKi8K PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRleCA2NjQ0YzJlLi41YjAwYTZhIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAgLTI4OTksNiArMjg5OSw5IEBAIHN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICppOTE1X2dlbV9vYmplY3RfY3JlYXRlX2Zyb21fZGF0YSgKPiAgIAkJ c3RydWN0IGRybV9kZXZpY2UgKmRldiwgY29uc3Qgdm9pZCAqZGF0YSwgc2l6ZV90IHNpemUpOwo+ ICAgdm9pZCBpOTE1X2dlbV9mcmVlX29iamVjdChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaik7 Cj4gICB2b2lkIGk5MTVfZ2VtX3ZtYV9kZXN0cm95KHN0cnVjdCBpOTE1X3ZtYSAqdm1hKTsKPiAr dm9pZCAqaTkxNV9nZW1fb2JqZWN0X3ZtYXAoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9i aiwKPiArCQkJICAgdW5zaWduZWQgaW50IGZpcnN0LAo+ICsJCQkgICB1bnNpZ25lZCBpbnQgbnBh Z2VzKTsKPgo+ICAgLyogRmxhZ3MgdXNlZCBieSBwaW4vYmluZCZmcmllbmRzLiAqLwo+ICAgI2Rl ZmluZSBQSU5fTUFQUEFCTEUJKDE8PDApCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gaW5kZXgg ZjY4ZjM0Ni4uYTZmNDY1YiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IEBAIC01MzU2 LDMgKzUzNTYsNDcgQEAgZmFpbDoKPiAgIAlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZSgmb2Jq LT5iYXNlKTsKPiAgIAlyZXR1cm4gRVJSX1BUUihyZXQpOwo+ICAgfQo+ICsKPiArLyoqCj4gKyAq IGk5MTVfZ2VtX29iamVjdF92bWFwIC0gbWFwIGEgR0VNIG9iaiBpbnRvIGtlcm5lbCB2aXJ0dWFs IHNwYWNlCj4gKyAqIEBvYmo6IHRoZSBHRU0gb2JqIHRvIGJlIG1hcHBlZAo+ICsgKiBAZmlyc3Q6 IGluZGV4IG9mIHRoZSBmaXJzdCBwYWdlIHdoZXJlIG1hcHBpbmcgc3RhcnRzCj4gKyAqIEBucGFn ZXM6IGhvdyBtYW55IHBhZ2VzIHRvIGJlIG1hcHBlZCwgc3RhcnRpbmcgZnJvbSBmaXJzdCBwYWdl Cj4gKyAqCj4gKyAqIE1hcCBhIGdpdmVuIHBhZ2UgcmFuZ2Ugb2YgR0VNIG9iaiBpbnRvIGtlcm5l bCB2aXJ0dWFsIHNwYWNlLiBUaGUgY2FsbGVyIG11c3QKPiArICogbWFrZSBzdXJlIHRoZSBhc3Nv Y2lhdGVkIHBhZ2VzIGFyZSBnYXRoZXJlZCBhbmQgcGlubmVkIGJlZm9yZSBjYWxsaW5nIHRoaXMK PiArICogZnVuY3Rpb24uIHZ1bm1hcCBzaG91bGQgYmUgY2FsbGVkIGFmdGVyIHVzZS4KPiArICoK PiArICogTlVMTCB3aWxsIGJlIHJldHVybmVkIGlmIGZhaWxzLgo+ICsgKi8KPiArdm9pZCAqaTkx NV9nZW1fb2JqZWN0X3ZtYXAoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiArCQkJ ICAgdW5zaWduZWQgaW50IGZpcnN0LAo+ICsJCQkgICB1bnNpZ25lZCBpbnQgbnBhZ2VzKQo+ICt7 Cj4gKwlzdHJ1Y3Qgc2dfcGFnZV9pdGVyIHNnX2l0ZXI7Cj4gKwlzdHJ1Y3QgcGFnZSAqKnBhZ2Vz Owo+ICsJdm9pZCAqYWRkcjsKPiArCWludCBpOwo+ICsKPiArCWlmIChmaXJzdCArIG5wYWdlcyA+ IG9iai0+cGFnZXMtPm5lbnRzKSB7Cj4gKwkJRFJNX0RFQlVHX0RSSVZFUigiSW52YWxpZCBwYWdl IGNvdW50XG4iKTsKPiArCQlyZXR1cm4gTlVMTDsKPiArCX0KPiArCj4gKwlwYWdlcyA9IGRybV9t YWxsb2NfYWIobnBhZ2VzLCBzaXplb2YoKnBhZ2VzKSk7Cj4gKwlpZiAocGFnZXMgPT0gTlVMTCkg ewo+ICsJCURSTV9ERUJVR19EUklWRVIoIkZhaWxlZCB0byBnZXQgc3BhY2UgZm9yIHBhZ2VzXG4i KTsKPiArCQlyZXR1cm4gTlVMTDsKPiArCX0KPiArCj4gKwlpID0gMDsKPiArCWZvcl9lYWNoX3Nn X3BhZ2Uob2JqLT5wYWdlcy0+c2dsLCAmc2dfaXRlciwgbnBhZ2VzLCBmaXJzdCkKPiArCQlwYWdl c1tpKytdID0gc2dfcGFnZV9pdGVyX3BhZ2UoJnNnX2l0ZXIpOwoKSSB0aGluayB0aGVyZSBpcyBh IGdvdGNoYSB3aXRoIGZvcl9lYWNoX3NnX3BhZ2Ugd2hlcmUgdGhlIG5lbnRzIGhhcyB0byAKYmUg bGFyZ2VyIHRoYW4gb2Zmc2V0IGZvciBpdCB0byByZXR1cm4gYW55dGhpbmcuIE9yIGluIG90aGVy IHdvcmRzLCBpdCAKd2lsbCBhY2NvdW50IGFsbCBza2lwcGVkIHBhZ2VzIGFnYWluc3QgbnBhZ2Vz LCBldmVuIGJlZm9yZSBpdCBnZXRzIHRvIAp0aGUgZGVzaXJlZCBvZmZzZXQuCgpMb29raW5nIGF0 IHRoZSBpbXBsZW1lbnRhdGlvbiwgSSBldmVuIHRoaW5rIG5lbnRzIGlzIG5vdCBlcXVpdmFsZW50 IHRvIApucGFnZXMgd2hlbiBwYWdlIGNvYWxlc2NpbmcgaXMgYWN0aXZlIHdoaWNoIHRoaXMgaGVs cGVyIHNob3VsZCBoYW5kbGUuCgpTbyBJIHRoaW5rIHlvdSB3b3VsZCBuZWVkIHRvIGRvIHlvdXIg b3duIGNoZWNraW5nIGFnYWluc3QgbnBhZ2VzIGFuZCAKanVzdCBwYXNzIGluIHRoZSBtYXhpbXVt IG5lbnRzIGZvciB0aGUgb2JqZWN0IGFuZCB0aGUgb2Zmc2V0LgoKSnVzdCBiYXNpY2FsbHkgYWRk ICJpZiAoaSA9PSBucGFnZXMiKSBicmVhazsiIGxpa2UgdGhlIHZtYXBfYmF0Y2ggCmltcGxlbWVu dGF0aW9uIHdhcyBkb2luZy4KCj4gKwo+ICsJYWRkciA9IHZtYXAocGFnZXMsIG5wYWdlcywgMCwg UEFHRV9LRVJORUwpOwo+ICsJaWYgKGFkZHIgPT0gTlVMTCkKPiArCQlEUk1fREVCVUdfRFJJVkVS KCJGYWlsZWQgdG8gdm1hcCBwYWdlc1xuIik7Cj4gKwlkcm1fZnJlZV9sYXJnZShwYWdlcyk7Cj4g Kwo+ICsJcmV0dXJuIGFkZHI7Cj4gK30KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fZG1hYnVmLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9kbWFi dWYuYwo+IGluZGV4IDFmM2VlZjYuLmQyNjk5NTcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fZG1hYnVmLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9kbWFidWYuYwo+IEBAIC0xMTAsOSArMTEwLDcgQEAgc3RhdGljIHZvaWQgKmk5MTVf Z2VtX2RtYWJ1Zl92bWFwKHN0cnVjdCBkbWFfYnVmICpkbWFfYnVmKQo+ICAgewo+ICAgCXN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSBkbWFfYnVmX3RvX29iaihkbWFfYnVmKTsKPiAg IAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gb2JqLT5iYXNlLmRldjsKPiAtCXN0cnVjdCBzZ19w YWdlX2l0ZXIgc2dfaXRlcjsKPiAtCXN0cnVjdCBwYWdlICoqcGFnZXM7Cj4gLQlpbnQgcmV0LCBp Owo+ICsJaW50IHJldDsKPgo+ICAgCXJldCA9IGk5MTVfbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxl KGRldik7Cj4gICAJaWYgKHJldCkKPiBAQCAtMTMxLDE2ICsxMjksNyBAQCBzdGF0aWMgdm9pZCAq aTkxNV9nZW1fZG1hYnVmX3ZtYXAoc3RydWN0IGRtYV9idWYgKmRtYV9idWYpCj4KPiAgIAlyZXQg PSAtRU5PTUVNOwo+Cj4gLQlwYWdlcyA9IGRybV9tYWxsb2NfYWIob2JqLT5iYXNlLnNpemUgPj4g UEFHRV9TSElGVCwgc2l6ZW9mKCpwYWdlcykpOwo+IC0JaWYgKHBhZ2VzID09IE5VTEwpCj4gLQkJ Z290byBlcnJfdW5waW47Cj4gLQo+IC0JaSA9IDA7Cj4gLQlmb3JfZWFjaF9zZ19wYWdlKG9iai0+ cGFnZXMtPnNnbCwgJnNnX2l0ZXIsIG9iai0+cGFnZXMtPm5lbnRzLCAwKQo+IC0JCXBhZ2VzW2kr K10gPSBzZ19wYWdlX2l0ZXJfcGFnZSgmc2dfaXRlcik7Cj4gLQo+IC0Jb2JqLT5kbWFfYnVmX3Zt YXBwaW5nID0gdm1hcChwYWdlcywgaSwgMCwgUEFHRV9LRVJORUwpOwo+IC0JZHJtX2ZyZWVfbGFy Z2UocGFnZXMpOwo+ICsJb2JqLT5kbWFfYnVmX3ZtYXBwaW5nID0gaTkxNV9nZW1fb2JqZWN0X3Zt YXAob2JqLCAwLCBvYmotPnBhZ2VzLT5uZW50cyk7CgpUaGlzIGlzIGFsc28gbm90IGNvcnJlY3Qs IG9iai0+cGFnZXMtPm5lbnRzIGNhbiBiZSBzbWFsbGVyIHRoYW4gCm9iai0+YmFzZS5zaXplID4+ IFBBR0VfU0hJRlQgd2hlbiBjb2FsZXNjaW5nIGlzIHVzZWQuIFNvIEkgdGhpbmsgeW91IApuZWVk IHRvIHBhc3MgaW4gdGhlIGxhdHRlciBoZXJlLgoKPgo+ICAgCWlmICghb2JqLT5kbWFfYnVmX3Zt YXBwaW5nKQo+ICAgCQlnb3RvIGVycl91bnBpbjsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cmluZ2J1ZmZlci5jCj4gaW5kZXggNDVjZTQ1YS4uZmU2ZDE0YSAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKPiBAQCAtMjA2NCwyNyArMjA2NCw2IEBAIHZvaWQg aW50ZWxfdW5waW5fcmluZ2J1ZmZlcl9vYmooc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdi dWYpCj4gICAJaTkxNV9nZW1fb2JqZWN0X2dndHRfdW5waW4ocmluZ2J1Zi0+b2JqKTsKPiAgIH0K Pgo+IC1zdGF0aWMgdTMyICp2bWFwX29iaihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2Jq KQo+IC17Cj4gLQlzdHJ1Y3Qgc2dfcGFnZV9pdGVyIHNnX2l0ZXI7Cj4gLQlzdHJ1Y3QgcGFnZSAq KnBhZ2VzOwo+IC0Jdm9pZCAqYWRkcjsKPiAtCWludCBpOwo+IC0KPiAtCXBhZ2VzID0gZHJtX21h bGxvY19hYihvYmotPmJhc2Uuc2l6ZSA+PiBQQUdFX1NISUZULCBzaXplb2YoKnBhZ2VzKSk7Cj4g LQlpZiAocGFnZXMgPT0gTlVMTCkKPiAtCQlyZXR1cm4gTlVMTDsKPiAtCj4gLQlpID0gMDsKPiAt CWZvcl9lYWNoX3NnX3BhZ2Uob2JqLT5wYWdlcy0+c2dsLCAmc2dfaXRlciwgb2JqLT5wYWdlcy0+ bmVudHMsIDApCj4gLQkJcGFnZXNbaSsrXSA9IHNnX3BhZ2VfaXRlcl9wYWdlKCZzZ19pdGVyKTsK PiAtCj4gLQlhZGRyID0gdm1hcChwYWdlcywgaSwgMCwgUEFHRV9LRVJORUwpOwo+IC0JZHJtX2Zy ZWVfbGFyZ2UocGFnZXMpOwo+IC0KPiAtCXJldHVybiBhZGRyOwo+IC19Cj4gLQo+ICAgaW50IGlu dGVsX3Bpbl9hbmRfbWFwX3JpbmdidWZmZXJfb2JqKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4g ICAJCQkJICAgICBzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZikKPiAgIHsKPiBAQCAt MjEwMyw3ICsyMDgyLDggQEAgaW50IGludGVsX3Bpbl9hbmRfbWFwX3JpbmdidWZmZXJfb2JqKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gICAJCQlyZXR1cm4gcmV0Owo+ICAgCQl9Cj4KPiAtCQly aW5nYnVmLT52aXJ0dWFsX3N0YXJ0ID0gdm1hcF9vYmoob2JqKTsKPiArCQlyaW5nYnVmLT52aXJ0 dWFsX3N0YXJ0ID0KPiArCQkJaTkxNV9nZW1fb2JqZWN0X3ZtYXAob2JqLCAwLCBvYmotPnBhZ2Vz LT5uZW50cyk7Cj4gICAJCWlmIChyaW5nYnVmLT52aXJ0dWFsX3N0YXJ0ID09IE5VTEwpIHsKPiAg IAkJCWk5MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluKG9iaik7Cj4gICAJCQlyZXR1cm4gLUVOT01F TTsKPgoKUmVnYXJkcywKClR2cnRrbwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pbnRlbC1nZngK