From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH v2 3/6] drm/i915: Refactor duplicate object vmap functions Date: Mon, 11 Apr 2016 15:20:38 +0100 Message-ID: <570BB2B6.8060608@linux.intel.com> References: <1460113874-17366-1-git-send-email-chris@chris-wilson.co.uk> <1460113874-17366-4-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 mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 912F56E57A for ; Mon, 11 Apr 2016 14:20:40 +0000 (UTC) In-Reply-To: <1460113874-17366-4-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 Ck9uIDA4LzA0LzE2IDEyOjExLCBDaHJpcyBXaWxzb24gd3JvdGU6Cj4gV2Ugbm93IGhhdmUgdHdv IGltcGxlbWVudGF0aW9ucyBmb3Igdm1hcHBpbmcgYSB3aG9sZSBvYmplY3QsIG9uZSBmb3IKPiBk bWEtYnVmIGFuZCBvbmUgZm9yIHRoZSByaW5nYnVmZmVyLiBJZiB3ZSBjb3VwbGUgdGhlIG1hcHBp bmcgaW50byB0aGUKPiBvYmotPnBhZ2VzIGxpZmV0aW1lLCB0aGVuIHdlIGNhbiByZXVzZSBhbiBv YmotPm1hcHBpbmcgZm9yIGJvdGggYW5kIGF0Cj4gdGhlIHNhbWUgdGltZSBjb3VwbGUgaXQgaW50 byB0aGUgc2hyaW5rZXIuIFRoZXJlIGlzIGEgdGhpcmQgdm1hcHBpbmcKPiByb3V0aW5lIGluIHRo ZSBjbWRwYXJzZXIgdGhhdCBtYXBzIG9ubHkgYSByYW5nZSB3aXRoaW4gdGhlIG9iamVjdCwgZm9y Cj4gdGhlIHRpbWUgYmVpbmcgdGhhdCBpcyBsZWZ0IGFsb25lLCBidXQgd2lsbCBldmVudHVhbGx5 IHVzZSB0aGVzZSByb3V0aW5lcwo+IGluIG9yZGVyIHRvIGNhY2hlIHRoZSBtYXBwaW5nIGJldHdl ZW4gaW52b2NhdGlvbnMuCj4KPiB2MjogTWFyayB0aGUgZmFpbGFibGUga21hbGxvYygpIGFzIF9f R0ZQX05PV0FSTiAodnN5cmphbGEpCj4gdjM6IENhbGwgdW5waW5fdm1hcCBmcm9tIHRoZSByaWdo dCBkbWFidWYgdW5tYXBwZXIKPgo+IHY0OiBSZW5hbWUgdm1hcCB0byBtYXAgYXMgd2UgZG9uJ3Qg d2lzaCB0byBpbXBseSB0aGUgdHlwZSBvZiBtYXBwaW5nCj4gaW52b2x2ZWQsIGp1c3QgdGhhdCBp dCBjb250aWd1b3VzbHkgbWFwcyB0aGUgb2JqZWN0IGludG8ga2VybmVsIHNwYWNlLgo+IEFkZCBr ZXJuZWxkb2MgYW5kIGxvY2tkZXAgYW5ub3RhdGlvbnMKPgo+IFNpZ25lZC1vZmYtYnk6IENocmlz IFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+IENjOiBUdnJ0a28gVXJzdWxpbiA8 dHZydGtvLnVyc3VsaW5AbGludXguaW50ZWwuY29tPgo+IENjOiBEYXZlIEdvcmRvbiA8ZGF2aWQu cy5nb3Jkb25AaW50ZWwuY29tPgo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaCAgICAgICAgIHwgMzcgKysrKysrKysrKysrKysrKysrKysrKy0tLQo+ICAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgICAgIHwgNDQgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysKPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2RtYWJ1Zi5jICB8IDQ5 ICsrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcmluZ2J1ZmZlci5jIHwgMjYgKystLS0tLS0tLS0tLS0tLS0KPiAgIDQgZmlsZXMg Y2hhbmdlZCwgODQgaW5zZXJ0aW9ucygrKSwgNzIgZGVsZXRpb25zKC0pCgpSZXZpZXdlZC1ieTog VHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KClJlZ2FyZHMsCgpUdnJ0 a28KCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRleCBhOTNlNWRkNGZhOWEuLmVkYTQy MThlMmVkZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IEBAIC0yMTY5LDEwICsyMTY5 LDcgQEAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qgewo+ICAgCQlzdHJ1Y3Qgc2NhdHRlcmxp c3QgKnNnOwo+ICAgCQlpbnQgbGFzdDsKPiAgIAl9IGdldF9wYWdlOwo+IC0KPiAtCS8qIHByaW1l IGRtYS1idWYgc3VwcG9ydCAqLwo+IC0Jdm9pZCAqZG1hX2J1Zl92bWFwcGluZzsKPiAtCWludCB2 bWFwcGluZ19jb3VudDsKPiArCXZvaWQgKm1hcHBpbmc7Cj4KPiAgIAkvKiogQnJlYWRjcnVtYiBv ZiBsYXN0IHJlbmRlcmluZyB0byB0aGUgYnVmZmVyLgo+ICAgCSAqIFRoZXJlIGNhbiBvbmx5IGJl IG9uZSB3cml0ZXIsIGJ1dCB3ZSBhbGxvdyBmb3IgbXVsdGlwbGUgcmVhZGVycy4KPiBAQCAtMjk4 OCwxMiArMjk4NSw0NCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaTkxNV9nZW1fb2JqZWN0X3Bpbl9w YWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQo+ICAgCUJVR19PTihvYmotPnBh Z2VzID09IE5VTEwpOwo+ICAgCW9iai0+cGFnZXNfcGluX2NvdW50Kys7Cj4gICB9Cj4gKwo+ICAg c3RhdGljIGlubGluZSB2b2lkIGk5MTVfZ2VtX29iamVjdF91bnBpbl9wYWdlcyhzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqb2JqKQo+ICAgewo+ICAgCUJVR19PTihvYmotPnBhZ2VzX3Bpbl9j b3VudCA9PSAwKTsKPiAgIAlvYmotPnBhZ2VzX3Bpbl9jb3VudC0tOwo+ICAgfQo+Cj4gKy8qKgo+ ICsgKiBpOTE1X2dlbV9vYmplY3RfcGluX21hcCAtIHJldHVybiBhIGNvbnRpZ3VvdXMgbWFwcGlu ZyBvZiB0aGUgZW50aXJlIG9iamVjdAo+ICsgKiBAb2JqIC0gdGhlIG9iamVjdCB0byBtYXAgaW50 byBrZXJuZWwgYWRkcmVzcyBzcGFjZQo+ICsgKgo+ICsgKiBDYWxscyBpOTE1X2dlbV9vYmplY3Rf cGluX3BhZ2VzKCkgdG8gcHJldmVudCByZWFwaW5nIG9mIHRoZSBvYmplY3Qncwo+ICsgKiBwYWdl cyBhbmQgdGhlbiByZXR1cm5zIGEgY29udGlndW91cyBtYXBwaW5nIG9mIHRoZSBiYWNraW5nIHN0 b3JhZ2UgaW50bwo+ICsgKiB0aGUga2VybmVsIGFkZHJlc3Mgc3BhY2UuCj4gKyAqCj4gKyAqIFRo ZSBjYWxsZXIgbXVzdCBob2xkIHRoZSBzdHJ1Y3RfbXV0ZXguCj4gKyAqCj4gKyAqIFJldHVybnMg dGhlIHBvaW50ZXIgdGhyb3VnaCB3aGljaCB0byBhY2Nlc3MgdGhlIGJhY2tpbmcgc3RvcmFnZS4K PiArICovCj4gK3ZvaWQgKl9fbXVzdF9jaGVjayBpOTE1X2dlbV9vYmplY3RfcGluX21hcChzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKTsKPiArCj4gKy8qKgo+ICsgKiBpOTE1X2dlbV9v YmplY3RfdW5waW5fbWFwIC0gcmVsZWFzZXMgYW4gZWFybGllciBtYXBwaW5nCj4gKyAqIEBvYmog LSB0aGUgb2JqZWN0IHRvIHVubWFwCj4gKyAqCj4gKyAqIEFmdGVyIHBpbm5pbmcgdGhlIG9iamVj dCBhbmQgbWFwcGluZyBpdHMgcGFnZXMsIG9uY2UgeW91IGFyZSBmaW5pc2hlZAo+ICsgKiB3aXRo IHlvdXIgYWNjZXNzLCBjYWxsIGk5MTVfZ2VtX29iamVjdF91bnBpbl9tYXAoKSB0byByZWxlYXNl IHRoZSBwaW4KPiArICogdXBvbiB0aGUgbWFwcGluZy4gT25jZSB0aGUgcGluIGNvdW50IHJlYWNo ZXMgemVybywgdGhhdCBtYXBwaW5nIG1heSBiZQo+ICsgKiByZW1vdmVkLgo+ICsgKgo+ICsgKiBU aGUgY2FsbGVyIG11c3QgaG9sZCB0aGUgc3RydWN0X211dGV4Lgo+ICsgKi8KPiArc3RhdGljIGlu bGluZSB2b2lkIGk5MTVfZ2VtX29iamVjdF91bnBpbl9tYXAoc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaikKPiArewo+ICsJbG9ja2RlcF9hc3NlcnRfaGVsZCgmb2JqLT5iYXNlLmRldi0+ c3RydWN0X211dGV4KTsKPiArCWk5MTVfZ2VtX29iamVjdF91bnBpbl9wYWdlcyhvYmopOwo+ICt9 Cj4gKwo+ICAgaW50IF9fbXVzdF9jaGVjayBpOTE1X211dGV4X2xvY2tfaW50ZXJydXB0aWJsZShz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiAgIGludCBpOTE1X2dlbV9vYmplY3Rfc3luYyhzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ICAgCQkJIHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKnRvLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IGluZGV4IDVhNjVhNzY2M2I4OC4uZmNi ZDQ3ZDM2ZGNmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gQEAgLTIyMzIsNiArMjIz MiwxMSBAQCBpOTE1X2dlbV9vYmplY3RfcHV0X3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpvYmopCj4gICAJICogbGlzdHMgZWFybHkuICovCj4gICAJbGlzdF9kZWwoJm9iai0+Z2xv YmFsX2xpc3QpOwo+Cj4gKwlpZiAob2JqLT5tYXBwaW5nKSB7Cj4gKwkJdnVubWFwKG9iai0+bWFw cGluZyk7Cj4gKwkJb2JqLT5tYXBwaW5nID0gTlVMTDsKPiArCX0KPiArCj4gICAJb3BzLT5wdXRf cGFnZXMob2JqKTsKPiAgIAlvYmotPnBhZ2VzID0gTlVMTDsKPgo+IEBAIC0yNDAwLDYgKzI0MDUs NDUgQEAgaTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqKQo+ICAgCXJldHVybiAwOwo+ICAgfQo+Cj4gK3ZvaWQgKmk5MTVfZ2VtX29iamVjdF9w aW5fbWFwKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCj4gK3sKPiArCWludCByZXQ7 Cj4gKwo+ICsJbG9ja2RlcF9hc3NlcnRfaGVsZCgmb2JqLT5iYXNlLmRldi0+c3RydWN0X211dGV4 KTsKPiArCj4gKwlyZXQgPSBpOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2VzKG9iaik7Cj4gKwlpZiAo cmV0KQo+ICsJCXJldHVybiBFUlJfUFRSKHJldCk7Cj4gKwo+ICsJaTkxNV9nZW1fb2JqZWN0X3Bp bl9wYWdlcyhvYmopOwo+ICsKPiArCWlmIChvYmotPm1hcHBpbmcgPT0gTlVMTCkgewo+ICsJCXN0 cnVjdCBzZ19wYWdlX2l0ZXIgc2dfaXRlcjsKPiArCQlzdHJ1Y3QgcGFnZSAqKnBhZ2VzOwo+ICsJ CWludCBuOwo+ICsKPiArCQluID0gb2JqLT5iYXNlLnNpemUgPj4gUEFHRV9TSElGVDsKPiArCQlw YWdlcyA9IGttYWxsb2MobipzaXplb2YoKnBhZ2VzKSwgR0ZQX1RFTVBPUkFSWSB8IF9fR0ZQX05P V0FSTik7Cj4gKwkJaWYgKHBhZ2VzID09IE5VTEwpCj4gKwkJCXBhZ2VzID0gZHJtX21hbGxvY19h YihuLCBzaXplb2YoKnBhZ2VzKSk7Cj4gKwkJaWYgKHBhZ2VzICE9IE5VTEwpIHsKPiArCQkJbiA9 IDA7Cj4gKwkJCWZvcl9lYWNoX3NnX3BhZ2Uob2JqLT5wYWdlcy0+c2dsLCAmc2dfaXRlciwKPiAr CQkJCQkgb2JqLT5wYWdlcy0+bmVudHMsIDApCj4gKwkJCQlwYWdlc1tuKytdID0gc2dfcGFnZV9p dGVyX3BhZ2UoJnNnX2l0ZXIpOwo+ICsKPiArCQkJb2JqLT5tYXBwaW5nID0gdm1hcChwYWdlcywg biwgMCwgUEFHRV9LRVJORUwpOwo+ICsJCQlkcm1fZnJlZV9sYXJnZShwYWdlcyk7Cj4gKwkJfQo+ ICsJCWlmIChvYmotPm1hcHBpbmcgPT0gTlVMTCkgewo+ICsJCQlpOTE1X2dlbV9vYmplY3RfdW5w aW5fcGFnZXMob2JqKTsKPiArCQkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7Cj4gKwkJfQo+ICsJ fQo+ICsKPiArCXJldHVybiBvYmotPm1hcHBpbmc7Cj4gK30KPiArCj4gICB2b2lkIGk5MTVfdm1h X21vdmVfdG9fYWN0aXZlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLAo+ICAgCQkJICAgICBzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiAgIHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fZG1hYnVmLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9kbWFidWYuYwo+IGluZGV4IGI3ZDQ2ODAwYzQ5Zi4uODBiYmU0M2EyZTkyIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2RtYWJ1Zi5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZG1hYnVmLmMKPiBAQCAtMTA4LDUxICsxMDgsMTcg QEAgc3RhdGljIHZvaWQgKmk5MTVfZ2VtX2RtYWJ1Zl92bWFwKHN0cnVjdCBkbWFfYnVmICpkbWFf YnVmKQo+ICAgewo+ICAgCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSBkbWFfYnVm X3RvX29iaihkbWFfYnVmKTsKPiAgIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gb2JqLT5iYXNl LmRldjsKPiAtCXN0cnVjdCBzZ19wYWdlX2l0ZXIgc2dfaXRlcjsKPiAtCXN0cnVjdCBwYWdlICoq cGFnZXM7Cj4gLQlpbnQgcmV0LCBpOwo+ICsJdm9pZCAqYWRkcjsKPiArCWludCByZXQ7Cj4KPiAg IAlyZXQgPSBpOTE1X211dGV4X2xvY2tfaW50ZXJydXB0aWJsZShkZXYpOwo+ICAgCWlmIChyZXQp Cj4gICAJCXJldHVybiBFUlJfUFRSKHJldCk7Cj4KPiAtCWlmIChvYmotPmRtYV9idWZfdm1hcHBp bmcpIHsKPiAtCQlvYmotPnZtYXBwaW5nX2NvdW50Kys7Cj4gLQkJZ290byBvdXRfdW5sb2NrOwo+ IC0JfQo+IC0KPiAtCXJldCA9IGk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZXMob2JqKTsKPiAtCWlm IChyZXQpCj4gLQkJZ290byBlcnI7Cj4gLQo+IC0JaTkxNV9nZW1fb2JqZWN0X3Bpbl9wYWdlcyhv YmopOwo+IC0KPiAtCXJldCA9IC1FTk9NRU07Cj4gLQo+IC0JcGFnZXMgPSBkcm1fbWFsbG9jX2Fi KG9iai0+YmFzZS5zaXplID4+IFBBR0VfU0hJRlQsIHNpemVvZigqcGFnZXMpKTsKPiAtCWlmIChw YWdlcyA9PSBOVUxMKQo+IC0JCWdvdG8gZXJyX3VucGluOwo+IC0KPiAtCWkgPSAwOwo+IC0JZm9y X2VhY2hfc2dfcGFnZShvYmotPnBhZ2VzLT5zZ2wsICZzZ19pdGVyLCBvYmotPnBhZ2VzLT5uZW50 cywgMCkKPiAtCQlwYWdlc1tpKytdID0gc2dfcGFnZV9pdGVyX3BhZ2UoJnNnX2l0ZXIpOwo+IC0K PiAtCW9iai0+ZG1hX2J1Zl92bWFwcGluZyA9IHZtYXAocGFnZXMsIGksIDAsIFBBR0VfS0VSTkVM KTsKPiAtCWRybV9mcmVlX2xhcmdlKHBhZ2VzKTsKPiAtCj4gLQlpZiAoIW9iai0+ZG1hX2J1Zl92 bWFwcGluZykKPiAtCQlnb3RvIGVycl91bnBpbjsKPiAtCj4gLQlvYmotPnZtYXBwaW5nX2NvdW50 ID0gMTsKPiAtb3V0X3VubG9jazoKPiArCWFkZHIgPSBpOTE1X2dlbV9vYmplY3RfcGluX21hcChv YmopOwo+ICAgCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+IC0JcmV0dXJuIG9i ai0+ZG1hX2J1Zl92bWFwcGluZzsKPgo+IC1lcnJfdW5waW46Cj4gLQlpOTE1X2dlbV9vYmplY3Rf dW5waW5fcGFnZXMob2JqKTsKPiAtZXJyOgo+IC0JbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9t dXRleCk7Cj4gLQlyZXR1cm4gRVJSX1BUUihyZXQpOwo+ICsJcmV0dXJuIGFkZHI7Cj4gICB9Cj4K PiAgIHN0YXRpYyB2b2lkIGk5MTVfZ2VtX2RtYWJ1Zl92dW5tYXAoc3RydWN0IGRtYV9idWYgKmRt YV9idWYsIHZvaWQgKnZhZGRyKQo+IEBAIC0xNjEsMTIgKzEyNyw3IEBAIHN0YXRpYyB2b2lkIGk5 MTVfZ2VtX2RtYWJ1Zl92dW5tYXAoc3RydWN0IGRtYV9idWYgKmRtYV9idWYsIHZvaWQgKnZhZGRy KQo+ICAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBvYmotPmJhc2UuZGV2Owo+Cj4gICAJbXV0 ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+IC0JaWYgKC0tb2JqLT52bWFwcGluZ19jb3Vu dCA9PSAwKSB7Cj4gLQkJdnVubWFwKG9iai0+ZG1hX2J1Zl92bWFwcGluZyk7Cj4gLQkJb2JqLT5k bWFfYnVmX3ZtYXBwaW5nID0gTlVMTDsKPiAtCj4gLQkJaTkxNV9nZW1fb2JqZWN0X3VucGluX3Bh Z2VzKG9iaik7Cj4gLQl9Cj4gKwlpOTE1X2dlbV9vYmplY3RfdW5waW5fbWFwKG9iaik7Cj4gICAJ bXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Cj4gICB9Cj4KPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCj4gaW5kZXggNjAwY2NjNDAzYjFmLi44MzUzNmMzOWI5 Y2EgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCj4gQEAgLTIw NzgsMzUgKzIwNzgsMTMgQEAgc3RhdGljIGludCBpbml0X3BoeXNfc3RhdHVzX3BhZ2Uoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAgdm9pZCBpbnRlbF91bnBpbl9yaW5nYnVmZmVy X29iaihzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZikKPiAgIHsKPiAgIAlpZiAoSEFT X0xMQyhyaW5nYnVmLT5vYmotPmJhc2UuZGV2KSAmJiAhcmluZ2J1Zi0+b2JqLT5zdG9sZW4pCj4g LQkJdnVubWFwKHJpbmdidWYtPnZpcnR1YWxfc3RhcnQpOwo+ICsJCWk5MTVfZ2VtX29iamVjdF91 bnBpbl9tYXAocmluZ2J1Zi0+b2JqKTsKPiAgIAllbHNlCj4gICAJCWlvdW5tYXAocmluZ2J1Zi0+ dmlydHVhbF9zdGFydCk7Cj4gLQlyaW5nYnVmLT52aXJ0dWFsX3N0YXJ0ID0gTlVMTDsKPiAgIAly aW5nYnVmLT52bWEgPSBOVUxMOwo+ICAgCWk5MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluKHJpbmdi dWYtPm9iaik7Cj4gICB9Cj4KPiAtc3RhdGljIHUzMiAqdm1hcF9vYmooc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iaikKPiAtewo+IC0Jc3RydWN0IHNnX3BhZ2VfaXRlciBzZ19pdGVyOwo+ IC0Jc3RydWN0IHBhZ2UgKipwYWdlczsKPiAtCXZvaWQgKmFkZHI7Cj4gLQlpbnQgaTsKPiAtCj4g LQlwYWdlcyA9IGRybV9tYWxsb2NfYWIob2JqLT5iYXNlLnNpemUgPj4gUEFHRV9TSElGVCwgc2l6 ZW9mKCpwYWdlcykpOwo+IC0JaWYgKHBhZ2VzID09IE5VTEwpCj4gLQkJcmV0dXJuIE5VTEw7Cj4g LQo+IC0JaSA9IDA7Cj4gLQlmb3JfZWFjaF9zZ19wYWdlKG9iai0+cGFnZXMtPnNnbCwgJnNnX2l0 ZXIsIG9iai0+cGFnZXMtPm5lbnRzLCAwKQo+IC0JCXBhZ2VzW2krK10gPSBzZ19wYWdlX2l0ZXJf cGFnZSgmc2dfaXRlcik7Cj4gLQo+IC0JYWRkciA9IHZtYXAocGFnZXMsIGksIDAsIFBBR0VfS0VS TkVMKTsKPiAtCWRybV9mcmVlX2xhcmdlKHBhZ2VzKTsKPiAtCj4gLQlyZXR1cm4gYWRkcjsKPiAt fQo+IC0KPiAgIGludCBpbnRlbF9waW5fYW5kX21hcF9yaW5nYnVmZmVyX29iaihzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAo+ICAgCQkJCSAgICAgc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdi dWYpCj4gICB7Cj4gQEAgLTIxMjQsNyArMjEwMiw3IEBAIGludCBpbnRlbF9waW5fYW5kX21hcF9y aW5nYnVmZmVyX29iaihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAgCQlpZiAocmV0KQo+ICAg CQkJZ290byBlcnJfdW5waW47Cj4KPiAtCQlyaW5nYnVmLT52aXJ0dWFsX3N0YXJ0ID0gdm1hcF9v Ymoob2JqKTsKPiArCQlyaW5nYnVmLT52aXJ0dWFsX3N0YXJ0ID0gaTkxNV9nZW1fb2JqZWN0X3Bp bl9tYXAob2JqKTsKPiAgIAkJaWYgKHJpbmdidWYtPnZpcnR1YWxfc3RhcnQgPT0gTlVMTCkgewo+ ICAgCQkJcmV0ID0gLUVOT01FTTsKPiAgIAkJCWdvdG8gZXJyX3VucGluOwo+Cl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxp c3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=