From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH v6 3/7] drm/i915: introduce and use i915_gem_object_vmap_range() Date: Tue, 1 Mar 2016 10:12:29 +0000 Message-ID: <56D56B0D.2050704@linux.intel.com> References: <1456780572-19196-1-git-send-email-david.s.gordon@intel.com> <1456780572-19196-4-git-send-email-david.s.gordon@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id A0E3A6E35F for ; Tue, 1 Mar 2016 10:12:32 +0000 (UTC) In-Reply-To: <1456780572-19196-4-git-send-email-david.s.gordon@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Dave Gordon , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDI5LzAyLzE2IDIxOjE2LCBEYXZlIEdvcmRvbiB3cm90ZToKPiBGcm9tOiBBbGV4IERhaSA8 eXUuZGFpQGludGVsLmNvbT4KPgo+IFRoZXJlIGFyZSBzZXZlcmFsIHBsYWNlcyBpbnNpZGUgZHJp dmVyIHdoZXJlIGEgR0VNIG9iamVjdCBpcyBtYXBwZWQKPiB0byBrZXJuZWwgdmlydHVhbCBzcGFj ZS4gVGhlIG1hcHBpbmcgbWF5IGJlIGRvbmUgZWl0aGVyIGZvciB0aGUgd2hvbGUKPiBvYmplY3Qg b3Igb25seSBhIHN1YnNldCBvZiBpdC4KPgo+IFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIGZ1bmN0 aW9uIGk5MTVfZ2VtX29iamVjdF92bWFwX3JhbmdlKCkgdG8KPiBpbXBsZW1lbnQgdGhlIGNvbW1v biBmdW5jdGlvbmFsaXR5LiBUaGUgY29kZSBpdHNlbGYgaXMgZXh0cmFjdGVkIGFuZAo+IGFkYXB0 ZWQgZnJvbSB0aGF0IGluIHZtYXBfYmF0Y2goKSwgYnV0IGFsc28gcmVwbGFjZXMgdm1hcF9vYmoo KSBhbmQgdGhlCj4gb3Blbi1jb2RlZCB2ZXJzaW9uIGluIGk5MTVfZ2VtX2RtYWJ1Zl92bWFwKCku Cj4KPiB2MjogdXNlIG9iai0+cGFnZXMtPm5lbnRzIGZvciBpdGVyYXRpb24gd2l0aGluIGk5MTVf Z2VtX29iamVjdF92bWFwOwo+ICAgICAgYnJlYWsgd2hlbiBpdCBmaW5pc2hlcyBhbGwgZGVzaXJl ZCBwYWdlcy4gVGhlIGNhbGxlciBtdXN0IHBhc3MgdGhlCj4gICAgICBhY3R1YWwgcGFnZSBjb3Vu dCByZXF1aXJlZC4gW1R2cnRrbyBVcnN1bGluXQo+Cj4gdjQ6IHJlbmFtZWQgdG8gaTkxNV9nZW1f b2JqZWN0X3ZtYXBfcmFuZ2UoKSB0byBtYWtlIGl0cyBmdW5jdGlvbgo+ICAgICAgY2xlYXJlci4g W0RhdmUgR29yZG9uXQo+Cj4gdjU6IHVzZSBDaHJpcyBXaWxzb24ncyBuZXcgZHJtX21hbGxvY19n ZnAoKSByYXRoZXIgdGhhbiBrbWFsbG9jKCkgb3IKPiAgICAgIGRybV9tYWxsb2NfYWIoKS4gW0Rh dmUgR29yZG9uXQo+Cj4gdjY6IGNoYW5nZWQgcmFuZ2UgY2hlY2tpbmcgdG8gbm90IHVzZSBwYWdl cy0+bmVudHMuIFtUdnJ0a28gVXJzdWxpbl0KPiAgICAgIFVzZSBzZ19uZW50c19mb3JfbGVuKCkg Zm9yIHJhbmdlIGNoZWNrIGluc3RlYWQuIFtEYXZlIEdvcmRvbl0KPiAgICAgIFBhc3MgcmFuZ2Ug cGFyYW1ldGVycyBpbiBieXRlcyByYXRoZXIgdGhhbiBwYWdlcyAoYm90aCBjYWxsZXJzCj4gICAg ICB3ZXJlIGNvbnZlcnRpbmcgZnJvbSBieXRlcyB0byBwYWdlcyBhbnl3YXksIHNvIHRoaXMgcmVk dWNlcyB0aGUKPiAgICAgIG51bWJlciBvZiBwbGFjZXMgd2hlcmUgdGhlIGNvbnZlcnNpb24gaXMg ZG9uZSkuCj4KPiBXaXRoIHRoaXMgY2hhbmdlLCB3ZSBoYXZlIG9ubHkgb25lIHZtYXAoKSBpbiB0 aGUgd2hvbGUgZHJpdmVyIDopCj4KPiBTaWduZWQtb2ZmLWJ5OiBBbGV4IERhaSA8eXUuZGFpQGlu dGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBEYXZlIEdvcmRvbiA8ZGF2aWQucy5nb3Jkb25AaW50 ZWwuY29tPgo+IENjOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgo+ IENjOiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPiAtLS0KPiAgIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfY21kX3BhcnNlci5jICB8IDMyICstLS0tLS0tLS0tLS0t LS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgIHwgIDQgKysr Cj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICAgICAgfCA1OCArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX2RtYWJ1Zi5jICB8IDE2ICsrLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcmluZ2J1ZmZlci5jIHwgMjQgKystLS0tLS0tLS0tLS0KPiAgIDUgZmlsZXMgY2hhbmdlZCwg NjggaW5zZXJ0aW9ucygrKSwgNjYgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9jbWRfcGFyc2VyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2NtZF9wYXJzZXIuYwo+IGluZGV4IDgxNGQ4OTQuLjFiMjUxNWQgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9jbWRfcGFyc2VyLmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2NtZF9wYXJzZXIuYwo+IEBAIC04NjMsMzcgKzg2Myw3IEBAIHZvaWQg aTkxNV9jbWRfcGFyc2VyX2ZpbmlfcmluZyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQo+ ICAgc3RhdGljIHUzMiAqdm1hcF9iYXRjaChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2Jq LAo+ICAgCQkgICAgICAgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbikKPiAgIHsKPiAtCWlu dCBpOwo+IC0Jdm9pZCAqYWRkciA9IE5VTEw7Cj4gLQlzdHJ1Y3Qgc2dfcGFnZV9pdGVyIHNnX2l0 ZXI7Cj4gLQlpbnQgZmlyc3RfcGFnZSA9IHN0YXJ0ID4+IFBBR0VfU0hJRlQ7Cj4gLQlpbnQgbGFz dF9wYWdlID0gKGxlbiArIHN0YXJ0ICsgNDA5NSkgPj4gUEFHRV9TSElGVDsKPiAtCWludCBucGFn ZXMgPSBsYXN0X3BhZ2UgLSBmaXJzdF9wYWdlOwo+IC0Jc3RydWN0IHBhZ2UgKipwYWdlczsKPiAt Cj4gLQlwYWdlcyA9IGRybV9tYWxsb2NfYWIobnBhZ2VzLCBzaXplb2YoKnBhZ2VzKSk7Cj4gLQlp ZiAocGFnZXMgPT0gTlVMTCkgewo+IC0JCURSTV9ERUJVR19EUklWRVIoIkZhaWxlZCB0byBnZXQg c3BhY2UgZm9yIHBhZ2VzXG4iKTsKPiAtCQlnb3RvIGZpbmlzaDsKPiAtCX0KPiAtCj4gLQlpID0g MDsKPiAtCWZvcl9lYWNoX3NnX3BhZ2Uob2JqLT5wYWdlcy0+c2dsLCAmc2dfaXRlciwgb2JqLT5w YWdlcy0+bmVudHMsIGZpcnN0X3BhZ2UpIHsKPiAtCQlwYWdlc1tpKytdID0gc2dfcGFnZV9pdGVy X3BhZ2UoJnNnX2l0ZXIpOwo+IC0JCWlmIChpID09IG5wYWdlcykKPiAtCQkJYnJlYWs7Cj4gLQl9 Cj4gLQo+IC0JYWRkciA9IHZtYXAocGFnZXMsIGksIDAsIFBBR0VfS0VSTkVMKTsKPiAtCWlmIChh ZGRyID09IE5VTEwpIHsKPiAtCQlEUk1fREVCVUdfRFJJVkVSKCJGYWlsZWQgdG8gdm1hcCBwYWdl c1xuIik7Cj4gLQkJZ290byBmaW5pc2g7Cj4gLQl9Cj4gLQo+IC1maW5pc2g6Cj4gLQlpZiAocGFn ZXMpCj4gLQkJZHJtX2ZyZWVfbGFyZ2UocGFnZXMpOwo+IC0JcmV0dXJuICh1MzIqKWFkZHI7Cj4g KwlyZXR1cm4gaTkxNV9nZW1fb2JqZWN0X3ZtYXBfcmFuZ2Uob2JqLCBzdGFydCwgbGVuKTsKPiAg IH0KPgo+ICAgLyogUmV0dXJucyBhIHZtYXAnZCBwb2ludGVyIHRvIGRlc3Rfb2JqLCB3aGljaCB0 aGUgY2FsbGVyIG11c3QgdW5tYXAgKi8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRleCBh NGRjYjc0Li4xMmIwNzE3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAgLTI5ODMs NiArMjk4MywxMCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaTkxNV9nZW1fb2JqZWN0X3VucGluX3Bh Z2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCj4gICAJb2JqLT5wYWdlc19waW5f Y291bnQtLTsKPiAgIH0KPgo+ICt2b2lkICpfX211c3RfY2hlY2sgaTkxNV9nZW1fb2JqZWN0X3Zt YXBfcmFuZ2Uoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiArCQkJCQkgICAgICB1 bnNpZ25lZCBsb25nIHN0YXJ0LAo+ICsJCQkJCSAgICAgIHVuc2lnbmVkIGxvbmcgbmJ5dGVzKTsK PiArCj4gICBpbnQgX19tdXN0X2NoZWNrIGk5MTVfbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ICAgaW50IGk5MTVfZ2VtX29iamVjdF9zeW5jKHN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gICAJCQkgc3RydWN0IGludGVsX2VuZ2luZV9j cyAqdG8sCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gaW5kZXggM2QzMWQzYS4uOGYxMmU3MyAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IEBAIC0yNDAwLDYgKzI0MDAsNjQgQEAgc3Rh dGljIHZvaWQgaTkxNV9nZW1fb2JqZWN0X2ZyZWVfbW1hcF9vZmZzZXQoc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iaikKPiAgIAlyZXR1cm4gMDsKPiAgIH0KPgo+ICsvKioKPiArICogaTkx NV9nZW1fb2JqZWN0X3ZtYXBfcmFuZ2UgLSBtYXAgc29tZSBvciBhbGwgb2YgYSBHRU0gb2JqZWN0 IGludG8ga2VybmVsIHNwYWNlCj4gKyAqIEBvYmo6IHRoZSBHRU0gb2JqZWN0IHRvIGJlIG1hcHBl ZAo+ICsgKiBAc3RhcnQ6IG9mZnNldCBpbiBieXRlcyBvZiB0aGUgc3RhcnQgb2YgdGhlIHJhbmdl IHRvIGJlIG1hcHBlZAo+ICsgKiBAbGVuOiBsZW5ndGggaW4gYnl0ZXMgb2YgdGhlIHJhbmdlIHRv IGJlIG1hcHBlZAoKa2J1aWxkIHNwb3R0ZWQgdGhpcyBrZXJuZWxkb2MgaXNzdWUuCgo+ICsgKgo+ ICsgKiBNYXAgYSBnaXZlbiByYW5nZSBvZiBhIEdFTSBvYmplY3QgaW50byBrZXJuZWwgdmlydHVh bCBzcGFjZS4gVGhlIHJhbmdlIHdpbGwKPiArICogYmUgZXh0ZW5kZWQgYXQgYm90aCBlbmRzLCBp ZiBuZWNlc3NhcnksIHRvIHNwYW4gYSB3aG9sZSBudW1iZXIgb2YgcGFnZXMuIFRoZQo+ICsgKiBj YWxsZXIgbXVzdCBtYWtlIHN1cmUgdGhlIGFzc29jaWF0ZWQgcGFnZXMgYXJlIGdhdGhlcmVkIGFu ZCBwaW5uZWQgYmVmb3JlCj4gKyAqIGNhbGxpbmcgdGhpcyBmdW5jdGlvbiwgYW5kIGlzIHJlc3Bv bnNpYmxlIGZvciB1bm1hcHBpbmcgdGhlIHJldHVybmVkIGFkZHJlc3MKPiArICogd2hlbiBpdCBp cyBubyBsb25nZXIgcmVxdWlyZWQuCj4gKyAqCj4gKyAqIFJldHVybnMgdGhlIGFkZHJlc3MgYXQg d2hpY2ggdGhlIG9iamVjdCBoYXMgYmVlbiBtYXBwZWQsIG9yIE5VTEwgb24gZmFpbHVyZS4KPiAr ICovCj4gK3ZvaWQgKmk5MTVfZ2VtX29iamVjdF92bWFwX3JhbmdlKHN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpvYmosCj4gKwkJCQkgdW5zaWduZWQgbG9uZyBzdGFydCwKPiArCQkJCSB1bnNp Z25lZCBsb25nIG5ieXRlcykKPiArewo+ICsJc3RydWN0IHNjYXR0ZXJsaXN0ICpzZyA9IG9iai0+ cGFnZXMtPnNnbDsKPiArCXN0cnVjdCBzZ19wYWdlX2l0ZXIgc2dfaXRlcjsKPiArCXN0cnVjdCBw YWdlICoqcGFnZXM7Cj4gKwl1bnNpZ25lZCBsb25nIGZpcnN0LCBucGFnZXMsIGk7Cj4gKwlpbnQg bmVudHM7Cj4gKwl2b2lkICphZGRyOwo+ICsKPiArCS8qIENoZWNrIHJlcXVlc3RlZCByYW5nZSBh Z2FpbnN0IHVuZGVybHlpbmcgc2cgbGlzdCAqLwo+ICsJbmVudHMgPSBzZ19uZW50c19mb3JfbGVu KHNnLCBzdGFydCArIG5ieXRlcyk7Cj4gKwlpZiAobmVudHMgPCAwKSB7Cj4gKwkJRFJNX0RFQlVH X0RSSVZFUigiSW52YWxpZCBwYWdlIGNvdW50XG4iKTsKPiArCQlyZXR1cm4gTlVMTDsKPiArCX0K CkkgdGhpbmsgdGhpcyBpcyBuZWVkbGVzcyBvdmVyaGVhZC4gVGhlIGhlbHBlciB3aWxsIGl0ZXJh dGUgdGhlIHdob2xlIHNnIApjaGFpbiB3aGlsZSB3ZSBrbm93IHRoZSBzaXplIGluIG9iai0+YmFz ZS5zaXplIGFuZCBmaW5kaW5nIG91dCB0aGUgcmVhbCAKbmVudHMgaXMgb2YgbGl0dGxlIChubykg dXNlIHRvIHRoZSBjb2RlIGJlbG93LgoKPiArCj4gKwkvKiBXb3JrIGluIHBhZ2VzIGZyb20gbm93 IG9uICovCj4gKwlmaXJzdCA9IHN0YXJ0ID4+IFBBR0VfU0hJRlQ7Cj4gKwlucGFnZXMgPSBESVZf Uk9VTkRfVVAoc3RhcnQgKyBuYnl0ZXMsIFBBR0VfU0laRSkgLSBmaXJzdDsKCkFuZCB0aGlzIGxv b2tzIGxpa2Ugd2VhayBBUEkgaWYgdGhlIGNhbGxlciBjYW4gcGFzcyBub24gcGFnZSBhbGlnbmVk IApzdGFydCBhbmQgc2l6ZSBhbmQgdGhlIGZ1bmN0aW9uIHdpbGwgc2lsZW50bHkgdm1hcCBzb21l dGhpbmcgZWxzZS4KCkl0IHNob3VsZCBhc3NlcnQgYW5kIGZhaWwgb24gYm90aCBJIHRoaW5rLCBv ciBpdCBtYXkgaGF2ZSBiZWVuIHNpbXBsZXIgCnRvIGtlZXAgaXQgd29ya2luZyBpbiBwYWdlIHVu aXRzLgoKPiArCj4gKwlwYWdlcyA9IGRybV9tYWxsb2NfZ2ZwKG5wYWdlcywgc2l6ZW9mKCpwYWdl cyksIEdGUF9URU1QT1JBUlkpOwo+ICsJaWYgKHBhZ2VzID09IE5VTEwpIHsKPiArCQlEUk1fREVC VUdfRFJJVkVSKCJGYWlsZWQgdG8gZ2V0IHNwYWNlIGZvciBwYWdlc1xuIik7Cj4gKwkJcmV0dXJu IE5VTEw7Cj4gKwl9Cj4gKwo+ICsJaSA9IDA7Cj4gKwlmb3JfZWFjaF9zZ19wYWdlKHNnLCAmc2df aXRlciwgbmVudHMsIGZpcnN0KSB7Cj4gKwkJcGFnZXNbaV0gPSBzZ19wYWdlX2l0ZXJfcGFnZSgm c2dfaXRlcik7Cj4gKwkJaWYgKCsraSA+PSBucGFnZXMpCj4gKwkJCWJyZWFrOwo+ICsJfQo+ICsJ V0FSTl9PTihpICE9IG5wYWdlcyk7Cj4gKwo+ICsJYWRkciA9IHZtYXAocGFnZXMsIG5wYWdlcywg MCwgUEFHRV9LRVJORUwpOwo+ICsJaWYgKGFkZHIgPT0gTlVMTCkKPiArCQlEUk1fREVCVUdfRFJJ VkVSKCJGYWlsZWQgdG8gdm1hcCBwYWdlc1xuIik7Cj4gKwlkcm1fZnJlZV9sYXJnZShwYWdlcyk7 Cj4gKwo+ICsJcmV0dXJuIGFkZHI7Cj4gK30KPiArCj4gICB2b2lkIGk5MTVfdm1hX21vdmVfdG9f YWN0aXZlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLAo+ICAgCQkJICAgICBzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3QgKnJlcSkKPiAgIHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fZG1hYnVmLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9kbWFi dWYuYwo+IGluZGV4IDFmM2VlZjYuLmFlZTQxNDkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fZG1hYnVmLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9kbWFidWYuYwo+IEBAIC0xMTAsOSArMTEwLDcgQEAgc3RhdGljIHZvaWQgKmk5MTVf Z2VtX2RtYWJ1Zl92bWFwKHN0cnVjdCBkbWFfYnVmICpkbWFfYnVmKQo+ICAgewo+ICAgCXN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSBkbWFfYnVmX3RvX29iaihkbWFfYnVmKTsKPiAg IAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gb2JqLT5iYXNlLmRldjsKPiAtCXN0cnVjdCBzZ19w YWdlX2l0ZXIgc2dfaXRlcjsKPiAtCXN0cnVjdCBwYWdlICoqcGFnZXM7Cj4gLQlpbnQgcmV0LCBp Owo+ICsJaW50IHJldDsKPgo+ICAgCXJldCA9IGk5MTVfbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxl KGRldik7Cj4gICAJaWYgKHJldCkKPiBAQCAtMTMxLDE2ICsxMjksOCBAQCBzdGF0aWMgdm9pZCAq aTkxNV9nZW1fZG1hYnVmX3ZtYXAoc3RydWN0IGRtYV9idWYgKmRtYV9idWYpCj4KPiAgIAlyZXQg PSAtRU5PTUVNOwo+Cj4gLQlwYWdlcyA9IGRybV9tYWxsb2NfYWIob2JqLT5iYXNlLnNpemUgPj4g UEFHRV9TSElGVCwgc2l6ZW9mKCpwYWdlcykpOwo+IC0JaWYgKHBhZ2VzID09IE5VTEwpCj4gLQkJ Z290byBlcnJfdW5waW47Cj4gLQo+IC0JaSA9IDA7Cj4gLQlmb3JfZWFjaF9zZ19wYWdlKG9iai0+ cGFnZXMtPnNnbCwgJnNnX2l0ZXIsIG9iai0+cGFnZXMtPm5lbnRzLCAwKQo+IC0JCXBhZ2VzW2kr K10gPSBzZ19wYWdlX2l0ZXJfcGFnZSgmc2dfaXRlcik7Cj4gLQo+IC0Jb2JqLT5kbWFfYnVmX3Zt YXBwaW5nID0gdm1hcChwYWdlcywgaSwgMCwgUEFHRV9LRVJORUwpOwo+IC0JZHJtX2ZyZWVfbGFy Z2UocGFnZXMpOwo+ICsJb2JqLT5kbWFfYnVmX3ZtYXBwaW5nID0gaTkxNV9nZW1fb2JqZWN0X3Zt YXBfcmFuZ2Uob2JqLCAwLAo+ICsJCQkJCQlkbWFfYnVmLT5zaXplID4+IFBBR0VfU0hJRlQpOwoK VGhpcyBpcyBzdGlsbCBpbiBwYWdlcy4gKEFsdGhvdWdoIGFzIHNhaWQgYmVsb3cgSSB0aGluayBp dCBzaG91bGQgcmVtYWluIAphbmQgQVBJIGJlIHJldmVydGVkIGJhY2suKQoKPgo+ICAgCWlmICgh b2JqLT5kbWFfYnVmX3ZtYXBwaW5nKQo+ICAgCQlnb3RvIGVycl91bnBpbjsKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCj4gaW5kZXggNDVjZTQ1YS4uNDM0YTQ1MiAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKPiBAQCAtMjA2NCwyNyAr MjA2NCw2IEBAIHZvaWQgaW50ZWxfdW5waW5fcmluZ2J1ZmZlcl9vYmooc3RydWN0IGludGVsX3Jp bmdidWZmZXIgKnJpbmdidWYpCj4gICAJaTkxNV9nZW1fb2JqZWN0X2dndHRfdW5waW4ocmluZ2J1 Zi0+b2JqKTsKPiAgIH0KPgo+IC1zdGF0aWMgdTMyICp2bWFwX29iaihzdHJ1Y3QgZHJtX2k5MTVf Z2VtX29iamVjdCAqb2JqKQo+IC17Cj4gLQlzdHJ1Y3Qgc2dfcGFnZV9pdGVyIHNnX2l0ZXI7Cj4g LQlzdHJ1Y3QgcGFnZSAqKnBhZ2VzOwo+IC0Jdm9pZCAqYWRkcjsKPiAtCWludCBpOwo+IC0KPiAt CXBhZ2VzID0gZHJtX21hbGxvY19hYihvYmotPmJhc2Uuc2l6ZSA+PiBQQUdFX1NISUZULCBzaXpl b2YoKnBhZ2VzKSk7Cj4gLQlpZiAocGFnZXMgPT0gTlVMTCkKPiAtCQlyZXR1cm4gTlVMTDsKPiAt Cj4gLQlpID0gMDsKPiAtCWZvcl9lYWNoX3NnX3BhZ2Uob2JqLT5wYWdlcy0+c2dsLCAmc2dfaXRl ciwgb2JqLT5wYWdlcy0+bmVudHMsIDApCj4gLQkJcGFnZXNbaSsrXSA9IHNnX3BhZ2VfaXRlcl9w YWdlKCZzZ19pdGVyKTsKPiAtCj4gLQlhZGRyID0gdm1hcChwYWdlcywgaSwgMCwgUEFHRV9LRVJO RUwpOwo+IC0JZHJtX2ZyZWVfbGFyZ2UocGFnZXMpOwo+IC0KPiAtCXJldHVybiBhZGRyOwo+IC19 Cj4gLQo+ICAgaW50IGludGVsX3Bpbl9hbmRfbWFwX3JpbmdidWZmZXJfb2JqKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCj4gICAJCQkJICAgICBzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1 ZikKPiAgIHsKPiBAQCAtMjEwMyw3ICsyMDgyLDggQEAgaW50IGludGVsX3Bpbl9hbmRfbWFwX3Jp bmdidWZmZXJfb2JqKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gICAJCQlyZXR1cm4gcmV0Owo+ ICAgCQl9Cj4KPiAtCQlyaW5nYnVmLT52aXJ0dWFsX3N0YXJ0ID0gdm1hcF9vYmoob2JqKTsKPiAr CQlyaW5nYnVmLT52aXJ0dWFsX3N0YXJ0ID0gaTkxNV9nZW1fb2JqZWN0X3ZtYXBfcmFuZ2Uob2Jq LCAwLAo+ICsJCQkJCQlyaW5nYnVmLT5zaXplID4+IFBBR0VfU0hJRlQpOwoKSGVyZSBhbHNvLgoK PiAgIAkJaWYgKHJpbmdidWYtPnZpcnR1YWxfc3RhcnQgPT0gTlVMTCkgewo+ICAgCQkJaTkxNV9n ZW1fb2JqZWN0X2dndHRfdW5waW4ob2JqKTsKPiAgIAkJCXJldHVybiAtRU5PTUVNOwo+CgpSZWdh cmRzLAoKVHZydGtvCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n ZngK