From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Goel, Akash" Subject: Re: [PATCH v4] drm/i915: Add soft-pinning API for execbuffer Date: Wed, 15 Jul 2015 20:25:23 +0530 Message-ID: <55A6745B.2000103@intel.com> References: <1425635047-25214-1-git-send-email-chris@chris-wilson.co.uk> <1435673593-28127-1-git-send-email-thomas.daniel@intel.com> 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 491BA6E121 for ; Wed, 15 Jul 2015 07:55:28 -0700 (PDT) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Daniel, Thomas" , "intel-gfx@lists.freedesktop.org" Cc: "Belgaumkar, Vinay" List-Id: intel-gfx@lists.freedesktop.org CgpPbiA2LzMwLzIwMTUgNzo1MCBQTSwgRGFuaWVsLCBUaG9tYXMgd3JvdGU6Cj4gTWFueSBhcG9s b2dpZXMgdG8gTWljaGFsIGZvciBpbmNvcnJlY3RseSBzcGVsbGluZyBoaXMgbmFtZSBpbiB0aGUg Q0MgbGlzdC4KPgo+IFRob21hcy4KPgo+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+PiBG cm9tOiBEYW5pZWwsIFRob21hcwo+PiBTZW50OiBUdWVzZGF5LCBKdW5lIDMwLCAyMDE1IDM6MTMg UE0KPj4gVG86IGludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4gQ2M6IENocmlzIFdp bHNvbjsgR29lbCwgQWthc2g7IEJlbGdhdW1rYXIsIFZpbmF5OyBNaWNoYWwgV2luaWFyc2t5OyBa b3UsCj4+IE5hbmhhaTsgRGFuaWVsLCBUaG9tYXMKPj4gU3ViamVjdDogW1BBVENIIHY0XSBkcm0v aTkxNTogQWRkIHNvZnQtcGlubmluZyBBUEkgZm9yIGV4ZWNidWZmZXIKPj4KPj4gRnJvbTogQ2hy aXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4+Cj4+IFVzZXJzcGFjZSBjYW4g cGFzcyBpbiBhbiBvZmZzZXQgdGhhdCBpdCBwcmVzdW1lcyB0aGUgb2JqZWN0IGlzIGxvY2F0ZWQK Pj4gYXQuIFRoZSBrZXJuZWwgd2lsbCB0aGVuIGRvIGl0cyB1dG1vc3QgdG8gZml0IHRoZSBvYmpl Y3QgaW50byB0aGF0Cj4+IGxvY2F0aW9uLiBUaGUgYXNzdW1wdGlvbiBpcyB0aGF0IHVzZXJzcGFj ZSBpcyBoYW5kbGluZyBpdHMgb3duIG9iamVjdAo+PiBsb2NhdGlvbnMgKGZvciBleGFtcGxlIGFs b25nIHdpdGggZnVsbC1wcGd0dCkgYW5kIHRoYXQgdGhlIGtlcm5lbCB3aWxsCj4+IHJhcmVseSBo YXZlIHRvIG1ha2Ugc3BhY2UgZm9yIHRoZSB1c2VyJ3MgcmVxdWVzdHMuCj4+Cj4+IFNpZ25lZC1v ZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+Pgo+PiB2Mjog Rml4ZWQgaW5jb3JyZWN0IGV2aWN0aW9uIGZvdW5kIGJ5IE1pY2hhbCBXaW5pYXJza2kgLSBmaXgg c3VnZ2VzdGVkIGJ5IENocmlzCj4+IFdpbHNvbi4gIEZpeGVkIGluY29ycmVjdCBlcnJvciBwYXRo cyBjYXVzaW5nIGNyYXNoIGZvdW5kIGJ5IE1pY2hhbCBXaW5pYXJza2kuCj4+IChOb3QgcHVibGlz aGVkIGV4dGVybmFsbHkpCj4+Cj4+IHYzOiBSZWJhc2VkIGJlY2F1c2Ugb2YgdHJpdmlhbCBjb25m bGljdCBpbiBvYmplY3RfYmluZF90b192bS4gIEZpeGVkIGV2aWN0aW9uCj4+IHRvIGFsbG93IGV2 aWN0aW9uIG9mIHNvZnQtcGlubmVkIG9iamVjdHMgd2hlbiBhbm90aGVyIHNvZnQtcGlubmVkIG9i amVjdCB1c2VkCj4+IGJ5IGEgc3Vic2VxdWVudCBleGVjYnVmZmVyIG92ZXJsYXBzIHJlcG9ydGVk IGJ5IE1pY2hhbCBXaW5pYXJza2kuCj4+IChOb3QgcHVibGlzaGVkIGV4dGVybmFsbHkpCj4+Cj4+ IHY0OiBNb3ZlZCBzb2Z0LXBpbm5lZCBvYmplY3RzIHRvIHRoZSBmcm9udCBvZiBvcmRlcmVkX3Zt YXMgc28gdGhhdCB0aGV5IGFyZQo+PiBwaW5uZWQgZmlyc3QgYWZ0ZXIgYW4gYWRkcmVzcyBjb25m bGljdCBoYXBwZW5zIHRvIGF2b2lkIHJlcGVhdGVkIGNvbmZsaWN0cyBpbgo+PiByYXJlIGNhc2Vz IChTdWdnZXN0ZWQgYnkgQ2hyaXMgV2lsc29uKS4gIEV4cGFuZGVkIGNvbW1lbnQgb24KPj4gZHJt X2k5MTVfZ2VtX2V4ZWNfb2JqZWN0Mi5vZmZzZXQgdG8gY292ZXIgdGhpcyBuZXcgQVBJLgo+Pgo+ PiBDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4+IENjOiBBa2Fz aCBHb2VsIDxha2FzaC5nb2VsQGludGVsLmNvbT4KPj4gQ2M6IFZpbmF5IEJlbGdhdW1rYXIgPHZp bmF5LmJlbGdhdW1rYXJAaW50ZWwuY29tPgo+PiBDYzogTWljaGFsIFdpbmlhcnNreSA8bWljaGFs LndpbmlhcnNreUBpbnRlbC5jb20+Cj4+IENjOiBab3UgTmFuaGFpIDxuYW5oYWkuem91QGludGVs LmNvbT4KPj4gU2lnbmVkLW9mZi1ieTogVGhvbWFzIERhbmllbCA8dGhvbWFzLmRhbmllbEBpbnRl bC5jb20+Cj4+IC0tLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAg ICAgICB8ICAgIDQgKysrCj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAg ICAgICAgIHwgICA1MSArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCj4+ICAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fZXZpY3QuYyAgICAgIHwgICAzOCArKysrKysrKysrKysrKysr KysrKysKPj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMgfCAg IDE2ICsrKysrKystLQo+PiAgIGluY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaCAgICAgICAgICAg ICAgICB8ICAgIDkgKysrLS0KPj4gICA1IGZpbGVzIGNoYW5nZWQsIDk5IGluc2VydGlvbnMoKyks IDE5IGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4gaW5kZXggZDkw YTc4Mi4uZTk2YzEwMSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaAo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+IEBAIC0yNzQ3 LDcgKzI3NDcsOSBAQCB2b2lkIGk5MTVfZ2VtX3ZtYV9kZXN0cm95KHN0cnVjdCBpOTE1X3ZtYSAq dm1hKTsKPj4gICAjZGVmaW5lIFBJTl9VU0VSCSgxPDw0KQo+PiAgICNkZWZpbmUgUElOX1VQREFU RQkoMTw8NSkKPj4gICAjZGVmaW5lIFBJTl9GVUxMX1JBTkdFCSgxPDw2KQo+PiArI2RlZmluZSBQ SU5fT0ZGU0VUX0ZJWEVECSgxPDw3KQo+PiAgICNkZWZpbmUgUElOX09GRlNFVF9NQVNLICh+NDA5 NSkKPj4gKwo+PiAgIGludCBfX211c3RfY2hlY2sKPj4gICBpOTE1X2dlbV9vYmplY3RfcGluKHN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4+ICAgCQkgICAgc3RydWN0IGk5MTVfYWRk cmVzc19zcGFjZSAqdm0sCj4+IEBAIC0zMDg1LDYgKzMwODcsOCBAQCBpbnQgX19tdXN0X2NoZWNr IGk5MTVfZ2VtX2V2aWN0X3NvbWV0aGluZyhzdHJ1Y3QKPj4gZHJtX2RldmljZSAqZGV2LAo+PiAg IAkJCQkJICB1bnNpZ25lZCBsb25nIHN0YXJ0LAo+PiAgIAkJCQkJICB1bnNpZ25lZCBsb25nIGVu ZCwKPj4gICAJCQkJCSAgdW5zaWduZWQgZmxhZ3MpOwo+PiAraW50IF9fbXVzdF9jaGVjawo+PiAr aTkxNV9nZW1fZXZpY3RfZm9yX3ZtYShzdHJ1Y3QgaTkxNV92bWEgKnRhcmdldCk7Cj4+ICAgaW50 IGk5MTVfZ2VtX2V2aWN0X3ZtKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLCBib29sIGRv X2lkbGUpOwo+PiAgIGludCBpOTE1X2dlbV9ldmljdF9ldmVyeXRoaW5nKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpOwo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW0uYwo+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPj4gaW5kZXggZjE3MGRh Ni4uYTdlNWZmMiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0u Ywo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4+IEBAIC0zODA2LDIy ICszODA2LDQxIEBAIGk5MTVfZ2VtX29iamVjdF9iaW5kX3RvX3ZtKHN0cnVjdAo+PiBkcm1faTkx NV9nZW1fb2JqZWN0ICpvYmosCj4+ICAgCWlmIChJU19FUlIodm1hKSkKPj4gICAJCWdvdG8gZXJy X3VucGluOwo+Pgo+PiArCWlmIChmbGFncyAmIFBJTl9PRkZTRVRfRklYRUQpIHsKPj4gKwkJdWlu dDY0X3Qgb2Zmc2V0ID0gZmxhZ3MgJiBQSU5fT0ZGU0VUX01BU0s7Cj4+ICsJCWlmIChvZmZzZXQg JiAoYWxpZ25tZW50IC0gMSkpIHsKPj4gKwkJCXJldCA9IC1FSU5WQUw7Cj4+ICsJCQlnb3RvIGVy cl9mcmVlX3ZtYTsKPj4gKwkJfQo+PiArCQl2bWEtPm5vZGUuc3RhcnQgPSBvZmZzZXQ7Cj4+ICsJ CXZtYS0+bm9kZS5zaXplID0gc2l6ZTsKPj4gKwkJdm1hLT5ub2RlLmNvbG9yID0gb2JqLT5jYWNo ZV9sZXZlbDsKPj4gKwkJcmV0ID0gZHJtX21tX3Jlc2VydmVfbm9kZSgmdm0tPm1tLCAmdm1hLT5u b2RlKTsKPj4gKwkJaWYgKHJldCkgewo+PiArCQkJcmV0ID0gaTkxNV9nZW1fZXZpY3RfZm9yX3Zt YSh2bWEpOwo+PiArCQkJaWYgKHJldCA9PSAwKQo+PiArCQkJCXJldCA9IGRybV9tbV9yZXNlcnZl X25vZGUoJnZtLT5tbSwKPj4gJnZtYS0+bm9kZSk7Cj4+ICsJCX0KPj4gKwkJaWYgKHJldCkKPj4g KwkJCWdvdG8gZXJyX2ZyZWVfdm1hOwo+PiArCX0gZWxzZSB7Cj4+ICAgc2VhcmNoX2ZyZWU6Cj4+ IC0JcmV0ID0gZHJtX21tX2luc2VydF9ub2RlX2luX3JhbmdlX2dlbmVyaWMoJnZtLT5tbSwgJnZt YS0+bm9kZSwKPj4gLQkJCQkJCSAgc2l6ZSwgYWxpZ25tZW50LAo+PiAtCQkJCQkJICBvYmotPmNh Y2hlX2xldmVsLAo+PiAtCQkJCQkJICBzdGFydCwgZW5kLAo+PiAtCQkJCQkJICBzZWFyY2hfZmxh ZywKPj4gLQkJCQkJCSAgYWxsb2NfZmxhZyk7Cj4+IC0JaWYgKHJldCkgewo+PiAtCQlyZXQgPSBp OTE1X2dlbV9ldmljdF9zb21ldGhpbmcoZGV2LCB2bSwgc2l6ZSwgYWxpZ25tZW50LAo+PiAtCQkJ CQkgICAgICAgb2JqLT5jYWNoZV9sZXZlbCwKPj4gLQkJCQkJICAgICAgIHN0YXJ0LCBlbmQsCj4+ IC0JCQkJCSAgICAgICBmbGFncyk7Cj4+IC0JCWlmIChyZXQgPT0gMCkKPj4gLQkJCWdvdG8gc2Vh cmNoX2ZyZWU7Cj4+ICsJCXJldCA9IGRybV9tbV9pbnNlcnRfbm9kZV9pbl9yYW5nZV9nZW5lcmlj KCZ2bS0+bW0sCj4+ICZ2bWEtPm5vZGUsCj4+ICsJCQkJCQkgIAkgIHNpemUsIGFsaWdubWVudCwK Pj4gKwkJCQkJCSAgCSAgb2JqLT5jYWNoZV9sZXZlbCwKPj4gKwkJCQkJCSAgCSAgc3RhcnQsIGVu ZCwKPj4gKwkJCQkJCSAgCSAgc2VhcmNoX2ZsYWcsCj4+ICsJCQkJCQkgIAkgIGFsbG9jX2ZsYWcp Owo+PiArCQlpZiAocmV0KSB7Cj4+ICsJCQlyZXQgPSBpOTE1X2dlbV9ldmljdF9zb21ldGhpbmco ZGV2LCB2bSwgc2l6ZSwKPj4gYWxpZ25tZW50LAo+PiArCQkJCQkgICAgICAgCSAgICAgICBvYmot PmNhY2hlX2xldmVsLAo+PiArCQkJCQkgICAgICAgCSAgICAgICBzdGFydCwgZW5kLAo+PiArCQkJ CQkgICAgICAgCSAgICAgICBmbGFncyk7Cj4+ICsJCQlpZiAocmV0ID09IDApCj4+ICsJCQkJZ290 byBzZWFyY2hfZnJlZTsKPj4KPj4gLQkJZ290byBlcnJfZnJlZV92bWE7Cj4+ICsJCQlnb3RvIGVy cl9mcmVlX3ZtYTsKPj4gKwkJfQo+PiAgIAl9Cj4+ICAgCWlmIChXQVJOX09OKCFpOTE1X2dlbV92 YWxpZF9ndHRfc3BhY2Uodm1hLCBvYmotPmNhY2hlX2xldmVsKSkpIHsKPj4gICAJCXJldCA9IC1F SU5WQUw7Cj4+IEBAIC00MzU3LDYgKzQzNzYsMTAgQEAgaTkxNV92bWFfbWlzcGxhY2VkKHN0cnVj dCBpOTE1X3ZtYSAqdm1hLAo+PiB1aW50MzJfdCBhbGlnbm1lbnQsIHVpbnQ2NF90IGZsYWdzKQo+ PiAgIAkgICAgdm1hLT5ub2RlLnN0YXJ0IDwgKGZsYWdzICYgUElOX09GRlNFVF9NQVNLKSkKPj4g ICAJCXJldHVybiB0cnVlOwo+Pgo+PiArCWlmIChmbGFncyAmIFBJTl9PRkZTRVRfRklYRUQgJiYK Pj4gKwkgICAgdm1hLT5ub2RlLnN0YXJ0ICE9IChmbGFncyAmIFBJTl9PRkZTRVRfTUFTSykpCj4+ ICsJCXJldHVybiB0cnVlOwo+PiArCj4+ICAgCXJldHVybiBmYWxzZTsKPj4gICB9Cj4+Cj4+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ldmljdC5jCj4+IGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXZpY3QuYwo+PiBpbmRleCBkMDllMzVlLi42MDk4 ZTJmIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ldmljdC5j Cj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V2aWN0LmMKPj4gQEAgLTE5 OSw2ICsxOTksNDQgQEAgZm91bmQ6Cj4+ICAgCXJldHVybiByZXQ7Cj4+ICAgfQo+Pgo+PiAraW50 Cj4+ICtpOTE1X2dlbV9ldmljdF9mb3Jfdm1hKHN0cnVjdCBpOTE1X3ZtYSAqdGFyZ2V0KQo+PiAr ewo+PiArCXN0cnVjdCBkcm1fbW1fbm9kZSAqbm9kZSwgKm5leHQ7Cj4+ICsKPj4gKwlsaXN0X2Zv cl9lYWNoX2VudHJ5X3NhZmUobm9kZSwgbmV4dCwKPj4gKwkJCSZ0YXJnZXQtPnZtLT5tbS5oZWFk X25vZGUubm9kZV9saXN0LAo+PiArCQkJbm9kZV9saXN0KSB7Cj4+ICsJCXN0cnVjdCBpOTE1X3Zt YSAqdm1hOwo+PiArCQlpbnQgcmV0Owo+PiArCj4+ICsJCWlmIChub2RlLT5zdGFydCArIG5vZGUt PnNpemUgPD0gdGFyZ2V0LT5ub2RlLnN0YXJ0KQo+PiArCQkJY29udGludWU7Cj4+ICsJCWlmIChu b2RlLT5zdGFydCA+PSB0YXJnZXQtPm5vZGUuc3RhcnQgKyB0YXJnZXQtPm5vZGUuc2l6ZSkKPj4g KwkJCWJyZWFrOwo+PiArCj4+ICsJCXZtYSA9IGNvbnRhaW5lcl9vZihub2RlLCB0eXBlb2YoKnZt YSksIG5vZGUpOwo+PiArCj4+ICsJCWlmICh2bWEtPnBpbl9jb3VudCkgewo+PiArCQkJLyogV2Ug bWF5IG5lZWQgdG8gZXZpY3QgYSBidWZmZXIgaW4gdGhlIHNhbWUgYmF0Y2ggKi8KPj4gKwkJCWlm ICghdm1hLT5leGVjX2VudHJ5KQo+PiArCQkJCXJldHVybiAtRUJVU1k7Cj4+ICsKPj4gKwkJCWlm ICh2bWEtPmV4ZWNfZW50cnktPmZsYWdzICYgRVhFQ19PQkpFQ1RfUElOTkVEKQo+PiArCQkJCS8q IE92ZXJsYXBwaW5nIGZpeGVkIG9iamVjdHMgaW4gdGhlIHNhbWUgYmF0Y2gKPj4gKi8KPj4gKwkJ CQlyZXR1cm4gLUVJTlZBTDsKPj4gKwo+PiArCQkJcmV0dXJuIC1FTk9TUEM7CgpDYW4gd2UgYWN0 dWFsbHkgaGl0IHRoaXMgY29uZGl0aW9uLCBjb25zaWRlcmluZyB0aGUgc29mdCBwaW5uZWQgb2Jq ZWN0cyAKYXJlIG5vdyBvbiB0aGUgZnJvbnQgc2lkZSBvZiAnZWItPnZtYXMnIGxpc3QgPwpJZiB3 ZSBkbyBlbmNvdW50ZXIgc3VjaCBhIGNhc2UsIGl0IHByb2JhYmx5IG1lYW5zIHRoYXQgdGhlIG92 ZXJsYXBwaW5nIApvYmplY3QgaXMgYWxyZWFkeSBwaW5uZWQgZnJvbSBzb21lIG90aGVyIHBhdGgu CgpJcyB0aGVyZSBhIHNjb3BlIG9mIGFuIGFkZGl0aW9uYWwgY2hlY2sgaGVyZSA/CmkuZS4gaWYg KHZtYS0+cGluX2NvdW50KSBpcyA+IDEsIHRoaXMgaW5kaWNhdGVzIHRoYXQgdGhlIG9iamVjdCBp cyBub3QgCm9ubHkgcGlubmVkIGR1ZSB0byBleGVjYnVmZmVyLCBoZW5jZSBjYW5ub3QgYmUgZXZp Y3RlZCwgc28gLUVCVVNZIGNhbiBiZSAKc3RyYWlnaHQgYXdheSByZXR1cm5lZCB0byBVc2VyLgoK QmVzdCByZWdhcmRzCkFrYXNoCgo+PiArCQl9Cj4+ICsKPj4gKwkJcmV0ID0gaTkxNV92bWFfdW5i aW5kKHZtYSk7Cj4+ICsJCWlmIChyZXQpCj4+ICsJCQlyZXR1cm4gcmV0Owo+PiArCX0KPj4gKwo+ PiArCXJldHVybiAwOwo+PiArfQo+PiArCj4+ICAgLyoqCj4+ICAgICogaTkxNV9nZW1fZXZpY3Rf dm0gLSBFdmljdCBhbGwgaWRsZSB2bWFzIGZyb20gYSB2bQo+PiAgICAqIEB2bTogQWRkcmVzcyBz cGFjZSB0byBjbGVhbnNlCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9leGVjYnVmZmVyLmMKPj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVj YnVmZmVyLmMKPj4gaW5kZXggM2Q5NDc0NC4uNGU2OTU1ZSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwo+PiBAQCAtNTk2LDYgKzU5Niw4IEBAIGk5 MTVfZ2VtX2V4ZWNidWZmZXJfcmVzZXJ2ZV92bWEoc3RydWN0IGk5MTVfdm1hCj4+ICp2bWEsCj4+ ICAgCQkJZmxhZ3MgfD0gUElOX0dMT0JBTCB8IFBJTl9NQVBQQUJMRTsKPj4gICAJCWlmIChlbnRy eS0+ZmxhZ3MgJiBfX0VYRUNfT0JKRUNUX05FRURTX0JJQVMpCj4+ICAgCQkJZmxhZ3MgfD0gQkFU Q0hfT0ZGU0VUX0JJQVMgfCBQSU5fT0ZGU0VUX0JJQVM7Cj4+ICsJCWlmIChlbnRyeS0+ZmxhZ3Mg JiBFWEVDX09CSkVDVF9QSU5ORUQpCj4+ICsJCQlmbGFncyB8PSBlbnRyeS0+b2Zmc2V0IHwgUElO X09GRlNFVF9GSVhFRDsKPj4gICAJfQo+Pgo+PiAgIAlyZXQgPSBpOTE1X2dlbV9vYmplY3RfcGlu KG9iaiwgdm1hLT52bSwgZW50cnktPmFsaWdubWVudCwgZmxhZ3MpOwo+PiBAQCAtNjY1LDYgKzY2 NywxMCBAQCBlYl92bWFfbWlzcGxhY2VkKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQo+PiAgIAkgICAg dm1hLT5ub2RlLnN0YXJ0ICYgKGVudHJ5LT5hbGlnbm1lbnQgLSAxKSkKPj4gICAJCXJldHVybiB0 cnVlOwo+Pgo+PiArCWlmIChlbnRyeS0+ZmxhZ3MgJiBFWEVDX09CSkVDVF9QSU5ORUQgJiYKPj4g KwkgICAgdm1hLT5ub2RlLnN0YXJ0ICE9IGVudHJ5LT5vZmZzZXQpCj4+ICsJCXJldHVybiB0cnVl Owo+PiArCj4+ICAgCWlmIChlbnRyeS0+ZmxhZ3MgJiBfX0VYRUNfT0JKRUNUX05FRURTX0JJQVMg JiYKPj4gICAJICAgIHZtYS0+bm9kZS5zdGFydCA8IEJBVENIX09GRlNFVF9CSUFTKQo+PiAgIAkJ cmV0dXJuIHRydWU7Cj4+IEBAIC02OTAsNiArNjk2LDcgQEAgaTkxNV9nZW1fZXhlY2J1ZmZlcl9y ZXNlcnZlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MKPj4gKnJpbmcsCj4+ICAgCXN0cnVjdCBpOTE1 X3ZtYSAqdm1hOwo+PiAgIAlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bTsKPj4gICAJc3Ry dWN0IGxpc3RfaGVhZCBvcmRlcmVkX3ZtYXM7Cj4+ICsJc3RydWN0IGxpc3RfaGVhZCBwaW5uZWRf dm1hczsKPj4gICAJYm9vbCBoYXNfZmVuY2VkX2dwdV9hY2Nlc3MgPSBJTlRFTF9JTkZPKHJpbmct PmRldiktPmdlbiA8IDQ7Cj4+ICAgCWludCByZXRyeTsKPj4KPj4gQEAgLTY5OCw2ICs3MDUsNyBA QCBpOTE1X2dlbV9leGVjYnVmZmVyX3Jlc2VydmUoc3RydWN0IGludGVsX2VuZ2luZV9jcwo+PiAq cmluZywKPj4gICAJdm0gPSBsaXN0X2ZpcnN0X2VudHJ5KHZtYXMsIHN0cnVjdCBpOTE1X3ZtYSwg ZXhlY19saXN0KS0+dm07Cj4+Cj4+ICAgCUlOSVRfTElTVF9IRUFEKCZvcmRlcmVkX3ZtYXMpOwo+ PiArCUlOSVRfTElTVF9IRUFEKCZwaW5uZWRfdm1hcyk7Cj4+ICAgCXdoaWxlICghbGlzdF9lbXB0 eSh2bWFzKSkgewo+PiAgIAkJc3RydWN0IGRybV9pOTE1X2dlbV9leGVjX29iamVjdDIgKmVudHJ5 Owo+PiAgIAkJYm9vbCBuZWVkX2ZlbmNlLCBuZWVkX21hcHBhYmxlOwo+PiBAQCAtNzE2LDcgKzcy NCw5IEBAIGk5MTVfZ2VtX2V4ZWNidWZmZXJfcmVzZXJ2ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz Cj4+ICpyaW5nLAo+PiAgIAkJCW9iai0+dGlsaW5nX21vZGUgIT0gSTkxNV9USUxJTkdfTk9ORTsK Pj4gICAJCW5lZWRfbWFwcGFibGUgPSBuZWVkX2ZlbmNlIHx8IG5lZWRfcmVsb2NfbWFwcGFibGUo dm1hKTsKPj4KPj4gLQkJaWYgKG5lZWRfbWFwcGFibGUpIHsKPj4gKwkJaWYgKGVudHJ5LT5mbGFn cyAmIEVYRUNfT0JKRUNUX1BJTk5FRCkKPj4gKwkJCWxpc3RfbW92ZV90YWlsKCZ2bWEtPmV4ZWNf bGlzdCwgJnBpbm5lZF92bWFzKTsKPj4gKwkJZWxzZSBpZiAobmVlZF9tYXBwYWJsZSkgewo+PiAg IAkJCWVudHJ5LT5mbGFncyB8PSBfX0VYRUNfT0JKRUNUX05FRURTX01BUDsKPj4gICAJCQlsaXN0 X21vdmUoJnZtYS0+ZXhlY19saXN0LCAmb3JkZXJlZF92bWFzKTsKPj4gICAJCX0gZWxzZQo+PiBA QCAtNzI2LDYgKzczNiw3IEBAIGk5MTVfZ2VtX2V4ZWNidWZmZXJfcmVzZXJ2ZShzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzCj4+ICpyaW5nLAo+PiAgIAkJb2JqLT5iYXNlLnBlbmRpbmdfd3JpdGVfZG9t YWluID0gMDsKPj4gICAJfQo+PiAgIAlsaXN0X3NwbGljZSgmb3JkZXJlZF92bWFzLCB2bWFzKTsK Pj4gKwlsaXN0X3NwbGljZSgmcGlubmVkX3ZtYXMsIHZtYXMpOwo+Pgo+PiAgIAkvKiBBdHRlbXB0 IHRvIHBpbiBhbGwgb2YgdGhlIGJ1ZmZlcnMgaW50byB0aGUgR1RULgo+PiAgIAkgKiBUaGlzIGlz IGRvbmUgaW4gMyBwaGFzZXM6Cj4+IEBAIC0xNDA0LDcgKzE0MTUsOCBAQCBlYl9nZXRfYmF0Y2go c3RydWN0IGViX3ZtYXMgKmViKQo+PiAgIAkgKiBOb3RlIHRoYXQgYWN0dWFsIGhhbmdzIGhhdmUg b25seSBiZWVuIG9ic2VydmVkIG9uIGdlbjcsIGJ1dCBmb3IKPj4gICAJICogcGFyYW5vaWEgZG8g aXQgZXZlcnl3aGVyZS4KPj4gICAJICovCj4+IC0Jdm1hLT5leGVjX2VudHJ5LT5mbGFncyB8PSBf X0VYRUNfT0JKRUNUX05FRURTX0JJQVM7Cj4+ICsJaWYgKCh2bWEtPmV4ZWNfZW50cnktPmZsYWdz ICYgRVhFQ19PQkpFQ1RfUElOTkVEKSA9PSAwKQo+PiArCQl2bWEtPmV4ZWNfZW50cnktPmZsYWdz IHw9IF9fRVhFQ19PQkpFQ1RfTkVFRFNfQklBUzsKPj4KPj4gICAJcmV0dXJuIHZtYS0+b2JqOwo+ PiAgIH0KPj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaCBiL2luY2x1 ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAo+PiBpbmRleCA1NWJhNTI3Li4xOGY4Zjk5IDEwMDY0NAo+ PiAtLS0gYS9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKPj4gKysrIGIvaW5jbHVkZS91YXBp L2RybS9pOTE1X2RybS5oCj4+IEBAIC02NzcsOCArNjc3LDEwIEBAIHN0cnVjdCBkcm1faTkxNV9n ZW1fZXhlY19vYmplY3QyIHsKPj4gICAJX191NjQgYWxpZ25tZW50Owo+Pgo+PiAgIAkvKioKPj4g LQkgKiBSZXR1cm5lZCB2YWx1ZSBvZiB0aGUgdXBkYXRlZCBvZmZzZXQgb2YgdGhlIG9iamVjdCwg Zm9yIGZ1dHVyZQo+PiAtCSAqIHByZXN1bWVkX29mZnNldCB3cml0ZXMuCj4+ICsJICogV2hlbiB0 aGUgRVhFQ19PQkpFQ1RfUElOTkVEIGZsYWcgaXMgc3BlY2lmaWVkIHRoaXMgaXMgcG9wdWxhdGVk IGJ5Cj4+ICsJICogdGhlIHVzZXIgd2l0aCB0aGUgR1RUIG9mZnNldCBhdCB3aGljaCB0aGlzIG9i amVjdCB3aWxsIGJlIHBpbm5lZC4KPj4gKwkgKiBPdGhlcndpc2UgdGhlIGtlcm5lbCBwb3B1bGF0 ZXMgaXQgd2l0aCB0aGUgdmFsdWUgb2YgdGhlIHVwZGF0ZWQKPj4gKwkgKiBvZmZzZXQgb2YgdGhl IG9iamVjdCwgZm9yIGZ1dHVyZSBwcmVzdW1lZF9vZmZzZXQgd3JpdGVzLgo+PiAgIAkgKi8KPj4g ICAJX191NjQgb2Zmc2V0Owo+Pgo+PiBAQCAtNjg2LDcgKzY4OCw4IEBAIHN0cnVjdCBkcm1faTkx NV9nZW1fZXhlY19vYmplY3QyIHsKPj4gICAjZGVmaW5lIEVYRUNfT0JKRUNUX05FRURTX0dUVAko MTw8MSkKPj4gICAjZGVmaW5lIEVYRUNfT0JKRUNUX1dSSVRFCSgxPDwyKQo+PiAgICNkZWZpbmUg RVhFQ19PQkpFQ1RfU1VQUE9SVFNfNDhCQkFERFJFU1MgKDE8PDMpCj4+IC0jZGVmaW5lIF9fRVhF Q19PQkpFQ1RfVU5LTk9XTl9GTEFHUyAtCj4+IChFWEVDX09CSkVDVF9TVVBQT1JUU180OEJCQURE UkVTUzw8MSkKPj4gKyNkZWZpbmUgRVhFQ19PQkpFQ1RfUElOTkVECSgxPDw0KQo+PiArI2RlZmlu ZSBfX0VYRUNfT0JKRUNUX1VOS05PV05fRkxBR1MgLShFWEVDX09CSkVDVF9QSU5ORUQ8PDEpCj4+ ICAgCV9fdTY0IGZsYWdzOwo+Pgo+PiAgIAlfX3U2NCByc3ZkMTsKPj4gLS0KPj4gMS43LjkuNQo+ Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdm eCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==