From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH v7 4/7] drm/i915: introduce and use i915_gem_object_vmap_range() Date: Tue, 1 Mar 2016 17:39:08 +0000 Message-ID: <56D5D3BC.7090600@linux.intel.com> References: <1456850039-25856-1-git-send-email-david.s.gordon@intel.com> <1456850039-25856-5-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 mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 471566E656 for ; Tue, 1 Mar 2016 17:39:10 +0000 (UTC) In-Reply-To: <1456850039-25856-5-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 CgpPbiAwMS8wMy8xNiAxNjozMywgRGF2ZSBHb3Jkb24gd3JvdGU6Cj4gRnJvbTogQWxleCBEYWkg PHl1LmRhaUBpbnRlbC5jb20+Cj4KPiBUaGVyZSBhcmUgc2V2ZXJhbCBwbGFjZXMgaW5zaWRlIGRy aXZlciB3aGVyZSBhIEdFTSBvYmplY3QgaXMgbWFwcGVkCj4gdG8ga2VybmVsIHZpcnR1YWwgc3Bh Y2UuIFRoZSBtYXBwaW5nIG1heSBiZSBkb25lIGVpdGhlciBmb3IgdGhlIHdob2xlCj4gb2JqZWN0 IG9yIG9ubHkgYSBzdWJzZXQgb2YgaXQuCj4KPiBUaGlzIHBhdGNoIGludHJvZHVjZXMgYSBmdW5j dGlvbiBpOTE1X2dlbV9vYmplY3Rfdm1hcF9yYW5nZSgpIHRvCj4gaW1wbGVtZW50IHRoZSBjb21t b24gZnVuY3Rpb25hbGl0eS4gVGhlIGNvZGUgaXRzZWxmIGlzIGV4dHJhY3RlZCBhbmQKPiBhZGFw dGVkIGZyb20gdGhhdCBpbiB2bWFwX2JhdGNoKCksIGJ1dCBhbHNvIHJlcGxhY2VzIHZtYXBfb2Jq KCkgYW5kCj4gdGhlIG9wZW4tY29kZWQgdmVyc2lvbiBpbiBpOTE1X2dlbV9kbWFidWZfdm1hcCgp Lgo+Cj4gdjI6IHVzZSBvYmotPnBhZ2VzLT5uZW50cyBmb3IgaXRlcmF0aW9uIHdpdGhpbiBpOTE1 X2dlbV9vYmplY3Rfdm1hcDsKPiAgICAgIGJyZWFrIHdoZW4gaXQgZmluaXNoZXMgYWxsIGRlc2ly ZWQgcGFnZXMuIFRoZSBjYWxsZXIgbXVzdCBwYXNzCj4gICAgICB0aGUgYWN0dWFsIHBhZ2UgY291 bnQgcmVxdWlyZWQuIFtUdnJ0a28gVXJzdWxpbl0KPgo+IHY0OiByZW5hbWVkIHRvIGk5MTVfZ2Vt X29iamVjdF92bWFwX3JhbmdlKCkgdG8gbWFrZSBpdHMgZnVuY3Rpb24KPiAgICAgIGNsZWFyZXIu IFtEYXZlIEdvcmRvbl0KPgo+IHY1OiB1c2UgQ2hyaXMgV2lsc29uJ3MgbmV3IGRybV9tYWxsb2Nf Z2ZwKCkgcmF0aGVyIHRoYW4ga21hbGxvYygpIG9yCj4gICAgICBkcm1fbWFsbG9jX2FiKCkuIFtE YXZlIEdvcmRvbl0KPgo+IHY2OiBjaGFuZ2VkIHJhbmdlIGNoZWNraW5nIHRvIG5vdCB1c2UgcGFn ZXMtPm5lbnRzLiBbVHZydGtvIFVyc3VsaW5dCj4gICAgICBVc2Ugc2dfbmVudHNfZm9yX2xlbigp IGZvciByYW5nZSBjaGVjayBpbnN0ZWFkLiBbRGF2ZSBHb3Jkb25dCj4gICAgICBQYXNzIHJhbmdl IHBhcmFtZXRlcnMgaW4gYnl0ZXMgcmF0aGVyIHRoYW4gcGFnZXMgKGJvdGggY2FsbGVycwo+ICAg ICAgd2VyZSBjb252ZXJ0aW5nIGZyb20gYnl0ZXMgdG8gcGFnZXMgYW55d2F5LCBzbyB0aGlzIHJl ZHVjZXMgdGhlCj4gICAgICBudW1iZXIgb2YgcGxhY2VzIHdoZXJlIHRoZSBjb252ZXJzaW9uIGlz IGRvbmUpLgo+Cj4gdjc6IGNoYW5nZWQgcmFuZ2UgcGFyYW1ldGVycyBiYWNrIHRvIHBhZ2VzLCBh bmQgc2ltcGxpZmllZCBwYXJhbWV0ZXIKPiAgICAgIHZhbGlkYXRpb24uIFtUdnJ0a28gVXJzdWxp bl0gQXMgYSBjb252ZW5pZW5jZSBmb3IgY2FsbGVycywgYWxsb3cKPiAgICAgIG5wYWdlcz09MCBh cyBhIHNob3J0aGFuZCBmb3IgInVwIHRvIHRoZSBlbmQgb2YgdGhlIG9iamVjdCIuCgpMb29rcyBP SyB0byBtZSwKClJldmlld2VkLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50 ZWwuY29tPgoKUmVnYXJkcywKClR2cnRrbwoKCj4gV2l0aCB0aGlzIGNoYW5nZSwgd2UgaGF2ZSBv bmx5IG9uZSB2bWFwKCkgaW4gdGhlIHdob2xlIGRyaXZlciA6KQo+Cj4gU2lnbmVkLW9mZi1ieTog QWxleCBEYWkgPHl1LmRhaUBpbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogRGF2ZSBHb3Jkb24g PGRhdmlkLnMuZ29yZG9uQGludGVsLmNvbT4KPiBDYzogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51 cnN1bGluQGludGVsLmNvbT4KPiBDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24u Y28udWs+Cj4gLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2NtZF9wYXJzZXIuYyAg fCAzNCArKystLS0tLS0tLS0tLS0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oICAgICAgICAgfCAgNCArKysKPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMg ICAgICAgICB8IDU5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZG1hYnVmLmMgIHwgMTUgKystLS0tLS0tCj4gICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgfCAyMyArLS0tLS0tLS0tLS0tCj4g ICA1IGZpbGVzIGNoYW5nZWQsIDcxIGluc2VydGlvbnMoKyksIDY0IGRlbGV0aW9ucygtKQo+Cj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfY21kX3BhcnNlci5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9jbWRfcGFyc2VyLmMKPiBpbmRleCA4MTRkODk0Li40ZDQ4 NjE3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfY21kX3BhcnNlci5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9jbWRfcGFyc2VyLmMKPiBAQCAtODYz LDM3ICs4NjMsMTMgQEAgdm9pZCBpOTE1X2NtZF9wYXJzZXJfZmluaV9yaW5nKHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKnJpbmcpCj4gICBzdGF0aWMgdTMyICp2bWFwX2JhdGNoKHN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gICAJCSAgICAgICB1bnNpZ25lZCBzdGFydCwgdW5zaWdu ZWQgbGVuKQo+ICAgewo+IC0JaW50IGk7Cj4gLQl2b2lkICphZGRyID0gTlVMTDsKPiAtCXN0cnVj dCBzZ19wYWdlX2l0ZXIgc2dfaXRlcjsKPiAtCWludCBmaXJzdF9wYWdlID0gc3RhcnQgPj4gUEFH RV9TSElGVDsKPiAtCWludCBsYXN0X3BhZ2UgPSAobGVuICsgc3RhcnQgKyA0MDk1KSA+PiBQQUdF X1NISUZUOwo+IC0JaW50IG5wYWdlcyA9IGxhc3RfcGFnZSAtIGZpcnN0X3BhZ2U7Cj4gLQlzdHJ1 Y3QgcGFnZSAqKnBhZ2VzOwo+IC0KPiAtCXBhZ2VzID0gZHJtX21hbGxvY19hYihucGFnZXMsIHNp emVvZigqcGFnZXMpKTsKPiAtCWlmIChwYWdlcyA9PSBOVUxMKSB7Cj4gLQkJRFJNX0RFQlVHX0RS SVZFUigiRmFpbGVkIHRvIGdldCBzcGFjZSBmb3IgcGFnZXNcbiIpOwo+IC0JCWdvdG8gZmluaXNo Owo+IC0JfQo+IC0KPiAtCWkgPSAwOwo+IC0JZm9yX2VhY2hfc2dfcGFnZShvYmotPnBhZ2VzLT5z Z2wsICZzZ19pdGVyLCBvYmotPnBhZ2VzLT5uZW50cywgZmlyc3RfcGFnZSkgewo+IC0JCXBhZ2Vz W2krK10gPSBzZ19wYWdlX2l0ZXJfcGFnZSgmc2dfaXRlcik7Cj4gLQkJaWYgKGkgPT0gbnBhZ2Vz KQo+IC0JCQlicmVhazsKPiAtCX0KPiArCXVuc2lnbmVkIGxvbmcgZmlyc3QsIG5wYWdlczsKPgo+ IC0JYWRkciA9IHZtYXAocGFnZXMsIGksIDAsIFBBR0VfS0VSTkVMKTsKPiAtCWlmIChhZGRyID09 IE5VTEwpIHsKPiAtCQlEUk1fREVCVUdfRFJJVkVSKCJGYWlsZWQgdG8gdm1hcCBwYWdlc1xuIik7 Cj4gLQkJZ290byBmaW5pc2g7Cj4gLQl9Cj4gKwkvKiBDb252ZXJ0IFtzdGFydCwgbGVuKSB0byBw YWdlcyAqLwo+ICsJZmlyc3QgPSBzdGFydCA+PiBQQUdFX1NISUZUOwo+ICsJbnBhZ2VzID0gRElW X1JPVU5EX1VQKHN0YXJ0ICsgbGVuLCBQQUdFX1NJWkUpIC0gZmlyc3Q7Cj4KPiAtZmluaXNoOgo+ IC0JaWYgKHBhZ2VzKQo+IC0JCWRybV9mcmVlX2xhcmdlKHBhZ2VzKTsKPiAtCXJldHVybiAodTMy KilhZGRyOwo+ICsJcmV0dXJuIGk5MTVfZ2VtX29iamVjdF92bWFwX3JhbmdlKG9iaiwgZmlyc3Qs IG5wYWdlcyk7Cj4gICB9Cj4KPiAgIC8qIFJldHVybnMgYSB2bWFwJ2QgcG9pbnRlciB0byBkZXN0 X29iaiwgd2hpY2ggdGhlIGNhbGxlciBtdXN0IHVubWFwICovCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oCj4gaW5kZXggYTRkY2I3NC4uYjNhZTE5MSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aAo+IEBAIC0yOTgzLDYgKzI5ODMsMTAgQEAgc3RhdGljIGlubGluZSB2b2lkIGk5MTVfZ2VtX29i amVjdF91bnBpbl9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQo+ICAgCW9i ai0+cGFnZXNfcGluX2NvdW50LS07Cj4gICB9Cj4KPiArdm9pZCAqX19tdXN0X2NoZWNrIGk5MTVf Z2VtX29iamVjdF92bWFwX3JhbmdlKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4g KwkJCQkJICAgICAgdW5zaWduZWQgbG9uZyBmaXJzdCwKPiArCQkJCQkgICAgICB1bnNpZ25lZCBs b25nIG5wYWdlcyk7Cj4gKwo+ICAgaW50IF9fbXVzdF9jaGVjayBpOTE1X211dGV4X2xvY2tfaW50 ZXJydXB0aWJsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiAgIGludCBpOTE1X2dlbV9vYmpl Y3Rfc3luYyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ICAgCQkJIHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKnRvLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IGluZGV4IDNkMzFk M2EuLmQ3YzljY2QgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0u Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBAQCAtMjQwMCw2ICsy NDAwLDY1IEBAIHN0YXRpYyB2b2lkIGk5MTVfZ2VtX29iamVjdF9mcmVlX21tYXBfb2Zmc2V0KHN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCj4gICAJcmV0dXJuIDA7Cj4gICB9Cj4KPiAr LyoqCj4gKyAqIGk5MTVfZ2VtX29iamVjdF92bWFwX3JhbmdlIC0gbWFwIHNvbWUgb3IgYWxsIG9m IGEgR0VNIG9iamVjdCBpbnRvIGtlcm5lbCBzcGFjZQo+ICsgKiBAb2JqOiB0aGUgR0VNIG9iamVj dCB0byBiZSBtYXBwZWQKPiArICogQGZpcnN0OiBvZmZzZXQgaW4gcGFnZXMgb2YgdGhlIHN0YXJ0 IG9mIHRoZSByYW5nZSB0byBiZSBtYXBwZWQKPiArICogQG5wYWdlczogbGVuZ3RoIGluIHBhZ2Vz IG9mIHRoZSByYW5nZSB0byBiZSBtYXBwZWQuIEZvciBjb252ZW5pZW5jZSwgYQo+ICsgKiAgICAg ICAgICBsZW5ndGggb2YgemVybyBpcyB0YWtlbiB0byBtZWFuICJ0aGUgcmVtYWluZGVyIG9mIHRo ZSBvYmplY3QiCj4gKyAqCj4gKyAqIE1hcCBhIGdpdmVuIHJhbmdlIG9mIGEgR0VNIG9iamVjdCBp bnRvIGtlcm5lbCB2aXJ0dWFsIHNwYWNlLiAgVGhlIGNhbGxlciBtdXN0Cj4gKyAqIG1ha2Ugc3Vy ZSB0aGUgYXNzb2NpYXRlZCBwYWdlcyBhcmUgZ2F0aGVyZWQgYW5kIHBpbm5lZCBiZWZvcmUgY2Fs bGluZyB0aGlzCj4gKyAqIGZ1bmN0aW9uLCBhbmQgaXMgcmVzcG9uc2libGUgZm9yIHVubWFwcGlu ZyB0aGUgcmV0dXJuZWQgYWRkcmVzcyB3aGVuIGl0IGlzIG5vCj4gKyAqIGxvbmdlciByZXF1aXJl ZC4KPiArICoKPiArICogUmV0dXJucyB0aGUgYWRkcmVzcyBhdCB3aGljaCB0aGUgb2JqZWN0IGhh cyBiZWVuIG1hcHBlZCwgb3IgTlVMTCBvbiBmYWlsdXJlLgo+ICsgKi8KPiArdm9pZCAqaTkxNV9n ZW1fb2JqZWN0X3ZtYXBfcmFuZ2Uoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiAr CQkJCSB1bnNpZ25lZCBsb25nIGZpcnN0LAo+ICsJCQkJIHVuc2lnbmVkIGxvbmcgbnBhZ2VzKQo+ ICt7Cj4gKwl1bnNpZ25lZCBsb25nIG1heF9wYWdlcyA9IG9iai0+YmFzZS5zaXplID4+IFBBR0Vf U0hJRlQ7Cj4gKwlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnID0gb2JqLT5wYWdlcy0+c2dsOwo+ICsJ c3RydWN0IHNnX3BhZ2VfaXRlciBzZ19pdGVyOwo+ICsJc3RydWN0IHBhZ2UgKipwYWdlczsKPiAr CXVuc2lnbmVkIGxvbmcgaSA9IDA7Cj4gKwl2b2lkICphZGRyID0gTlVMTDsKPiArCj4gKwkvKiBN aW5pbWFsIHJhbmdlIGNoZWNrICovCj4gKwlpZiAoZmlyc3QgKyBucGFnZXMgPiBtYXhfcGFnZXMp IHsKPiArCQlEUk1fREVCVUdfRFJJVkVSKCJJbnZhbGlkIHBhZ2UgcmFuZ2VcbiIpOwo+ICsJCXJl dHVybiBOVUxMOwo+ICsJfQo+ICsKPiArCS8qIG5wYWdlcz09MCBpcyBzaG9ydGhhbmQgZm9yICJ0 aGUgcmVzdCBvZiB0aGUgb2JqZWN0IiAqLwo+ICsJaWYgKG5wYWdlcyA9PSAwKQo+ICsJCW5wYWdl cyA9IG1heF9wYWdlcyAtIGZpcnN0Owo+ICsKPiArCXBhZ2VzID0gZHJtX21hbGxvY19nZnAobnBh Z2VzLCBzaXplb2YoKnBhZ2VzKSwgR0ZQX1RFTVBPUkFSWSk7Cj4gKwlpZiAocGFnZXMgPT0gTlVM TCkgewo+ICsJCURSTV9ERUJVR19EUklWRVIoIkZhaWxlZCB0byBnZXQgc3BhY2UgZm9yIHBhZ2Vz XG4iKTsKPiArCQlyZXR1cm4gTlVMTDsKPiArCX0KPiArCj4gKwlmb3JfZWFjaF9zZ19wYWdlKHNn LCAmc2dfaXRlciwgbWF4X3BhZ2VzLCBmaXJzdCkgewo+ICsJCXBhZ2VzW2ldID0gc2dfcGFnZV9p dGVyX3BhZ2UoJnNnX2l0ZXIpOwo+ICsJCWlmICgrK2kgPT0gbnBhZ2VzKSB7Cj4gKwkJCWFkZHIg PSB2bWFwKHBhZ2VzLCBucGFnZXMsIDAsIFBBR0VfS0VSTkVMKTsKPiArCQkJYnJlYWs7Cj4gKwkJ fQo+ICsJfQo+ICsKPiArCS8qIFdlIHNob3VsZCBoYXZlIGdvdCBoZXJlIHZpYSB0aGUgJ2JyZWFr JyBhYm92ZSAqLwo+ICsJV0FSTl9PTihpICE9IG5wYWdlcyk7Cj4gKwlpZiAoYWRkciA9PSBOVUxM KQo+ICsJCURSTV9ERUJVR19EUklWRVIoIkZhaWxlZCB0byB2bWFwIHBhZ2VzXG4iKTsKPiArCj4g Kwlkcm1fZnJlZV9sYXJnZShwYWdlcyk7Cj4gKwo+ICsJcmV0dXJuIGFkZHI7Cj4gK30KPiArCj4g ICB2b2lkIGk5MTVfdm1hX21vdmVfdG9fYWN0aXZlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLAo+ICAg CQkJICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiAgIHsKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZG1hYnVmLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9kbWFidWYuYwo+IGluZGV4IDYxNmYwNzguLjNhNWQwMWEgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZG1hYnVmLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9kbWFidWYuYwo+IEBAIC0xMDgsOSArMTA4 LDcgQEAgc3RhdGljIHZvaWQgKmk5MTVfZ2VtX2RtYWJ1Zl92bWFwKHN0cnVjdCBkbWFfYnVmICpk bWFfYnVmKQo+ICAgewo+ICAgCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSBkbWFf YnVmX3RvX29iaihkbWFfYnVmKTsKPiAgIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gb2JqLT5i YXNlLmRldjsKPiAtCXN0cnVjdCBzZ19wYWdlX2l0ZXIgc2dfaXRlcjsKPiAtCXN0cnVjdCBwYWdl ICoqcGFnZXM7Cj4gLQlpbnQgcmV0LCBpOwo+ICsJaW50IHJldDsKPgo+ICAgCXJldCA9IGk5MTVf bXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKGRldik7Cj4gICAJaWYgKHJldCkKPiBAQCAtMTI5LDE2 ICsxMjcsNyBAQCBzdGF0aWMgdm9pZCAqaTkxNV9nZW1fZG1hYnVmX3ZtYXAoc3RydWN0IGRtYV9i dWYgKmRtYV9idWYpCj4KPiAgIAlyZXQgPSAtRU5PTUVNOwo+Cj4gLQlwYWdlcyA9IGRybV9tYWxs b2NfYWIob2JqLT5iYXNlLnNpemUgPj4gUEFHRV9TSElGVCwgc2l6ZW9mKCpwYWdlcykpOwo+IC0J aWYgKHBhZ2VzID09IE5VTEwpCj4gLQkJZ290byBlcnJfdW5waW47Cj4gLQo+IC0JaSA9IDA7Cj4g LQlmb3JfZWFjaF9zZ19wYWdlKG9iai0+cGFnZXMtPnNnbCwgJnNnX2l0ZXIsIG9iai0+cGFnZXMt Pm5lbnRzLCAwKQo+IC0JCXBhZ2VzW2krK10gPSBzZ19wYWdlX2l0ZXJfcGFnZSgmc2dfaXRlcik7 Cj4gLQo+IC0Jb2JqLT5kbWFfYnVmX3ZtYXBwaW5nID0gdm1hcChwYWdlcywgaSwgMCwgUEFHRV9L RVJORUwpOwo+IC0JZHJtX2ZyZWVfbGFyZ2UocGFnZXMpOwo+ICsJb2JqLT5kbWFfYnVmX3ZtYXBw aW5nID0gaTkxNV9nZW1fb2JqZWN0X3ZtYXBfcmFuZ2Uob2JqLCAwLCAwKTsKPgo+ICAgCWlmICgh b2JqLT5kbWFfYnVmX3ZtYXBwaW5nKQo+ICAgCQlnb3RvIGVycl91bnBpbjsKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCj4gaW5kZXggOGY1MjU1Ni4uNThhMThlMSAxMDA2 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 ZikKPiAgIHsKPiBAQCAtMjEwMSw3ICsyMDgwLDcgQEAgaW50IGludGVsX3Bpbl9hbmRfbWFwX3Jp bmdidWZmZXJfb2JqKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gICAJCWlmIChyZXQpCj4gICAJ CQlnb3RvIHVucGluOwo+Cj4gLQkJcmluZ2J1Zi0+dmlydHVhbF9zdGFydCA9IHZtYXBfb2JqKG9i aik7Cj4gKwkJcmluZ2J1Zi0+dmlydHVhbF9zdGFydCA9IGk5MTVfZ2VtX29iamVjdF92bWFwX3Jh bmdlKG9iaiwgMCwgMCk7Cj4gICAJCWlmIChyaW5nYnVmLT52aXJ0dWFsX3N0YXJ0ID09IE5VTEwp IHsKPiAgIAkJCXJldCA9IC1FTk9NRU07Cj4gICAJCQlnb3RvIHVucGluOwo+Cl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxp c3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=