From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Goel, Akash" Subject: Re: [PATCH v6 02/19] drm/i915/gen8: Make pdp allocation more dynamic Date: Thu, 30 Jul 2015 08:48:34 +0530 Message-ID: <55B9978A.1030601@intel.com> References: <1438187043-34267-1-git-send-email-michel.thierry@intel.com> <1438187043-34267-3-git-send-email-michel.thierry@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 B970A6E32C for ; Wed, 29 Jul 2015 20:18:37 -0700 (PDT) In-Reply-To: <1438187043-34267-3-git-send-email-michel.thierry@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Michel Thierry , intel-gfx@lists.freedesktop.org Cc: akash.goel@intel.com List-Id: intel-gfx@lists.freedesktop.org UmV2aWV3ZWQgdGhlIHBhdGNoICYgaXQgbG9va3MgZmluZS4KUmV2aWV3ZWQtYnk6ICJBa2FzaCBH b2VsIDxha2FzaC5nb2VsQGludGVsLmNvbT4iCgpPbiA3LzI5LzIwMTUgOTo1MyBQTSwgTWljaGVs IFRoaWVycnkgd3JvdGU6Cj4gVGhpcyB0cmFuc2l0aW9uYWwgcGF0Y2ggZG9lc24ndCBkbyBtdWNo IGZvciB0aGUgZXhpc3RpbmcgY29kZS4gSG93ZXZlciwKPiBpdCBzaG91bGQgbWFrZSB1cGNvbWlu ZyBwYXRjaGVzIHRvIHVzZSB0aGUgZnVsbCA0OGIgYWRkcmVzcyBzcGFjZSBhIGJpdAo+IGVhc2ll ci4KPgo+IHYyOiBSZW5hbWVkICBwZHBfZnJlZSB0byBiZSBzaW1pbGFyIHRvICBwZC9wdCAodW5t YXBfYW5kX2ZyZWVfcGRwKS4KPiB2MzogVG8gZmFjaWxpdGF0ZSB0ZXN0aW5nLCA0OGIgbW9kZSB3 aWxsIGJlIGF2YWlsYWJsZSBvbiBCcm9hZHdlbGwgYW5kCj4gR0VOOSssIHdoZW4gaTkxNS5lbmFi bGVfcHBndHQgPSAzLgo+IHY0OiBSZWJhc2UgYWZ0ZXIgcy9wYWdlX3RhYmxlcy9wYWdlX3RhYmxl LywgYWRkZWQgZXh0cmEgaW5mb3JtYXRpb24KPiBhYm91dCA0LWxldmVsIHBhZ2UgdGFibGUgZm9y bWF0cyBhbmQgdXNlIElTX0VOQUJMRUQgbWFjcm8uCj4gdjU6IENoZWNrIENPTkZJR19YODZfNjQg aW5zdGVhZCBvZiBDT05GSUdfNjRCSVQuCj4gdjY6IFJlYmFzZSBhZnRlciBNaWthJ3MgcHBndHQg Y2xlYW51cCAvIHNjcmF0Y2ggbWVyZ2UgcGF0Y2ggc2VyaWVzLCBhbmQKPiBmb2xsb3cKPiBoaXMg bm9tZW5jbGF0dXJlIGluIHBkcCBmdW5jdGlvbnMgKHRoZXJlIGlzIG5vIGFsbG9jX3BkcCB5ZXQp Lgo+IHY3OiBSZWJhc2UgYWZ0ZXIgbWVyZ2VkIHZlcnNpb24gb2YgTWlrYSdzIHBwZ3R0IGNsZWFu dXAgcGF0Y2ggc2VyaWVzLgo+IHY4OiBSZWJhc2UgYWZ0ZXIgZmluYWwgbWVyZ2VkIHZlcnNpb24g b2YgTWlrYSdzIHBwZ3R0L3NjcmF0Y2ggcGF0Y2hlcy4KPiB2OTogSW50cm9kdWNlIFBNTDQgKGFu ZCA0OC1iaXQgY2hlY2tzKSB1bnRpbCBuZXh0IHBhdGNoIChBa2FzaCkuCj4gdjEwOiBBbHNvIHVz ZSB0ZXN0X2JpdCB0byBkZXRlY3Qgd2hlbiBwZC9wdCBhcmUgYWxyZWFkeSBhbGxvY2F0ZWQgKEFr YXNoKQo+Cj4gQ2M6IEFrYXNoIEdvZWwgPGFrYXNoLmdvZWxAaW50ZWwuY29tPgo+IFNpZ25lZC1v ZmYtYnk6IEJlbiBXaWRhd3NreSA8YmVuQGJ3aWRhd3NrLm5ldD4KPiBTaWduZWQtb2ZmLWJ5OiBN aWNoZWwgVGhpZXJyeSA8bWljaGVsLnRoaWVycnlAaW50ZWwuY29tPiAodjIrKQo+IC0tLQo+ICAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgfCA4NiArKysrKysrKysrKysrKysr KysrKysrKysrKysrKy0tLS0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9n dHQuaCB8IDE3ICsrKysrLS0tCj4gICAyIGZpbGVzIGNoYW5nZWQsIDgwIGluc2VydGlvbnMoKyks IDIzIGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX2d0dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKPiBpbmRl eCAxODk1NzJkLi4yOGYzMjI3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX2d0dC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMK PiBAQCAtNTIyLDYgKzUyMiw0MyBAQCBzdGF0aWMgdm9pZCBnZW44X2luaXRpYWxpemVfcGQoc3Ry dWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4gICAJZmlsbF9weCh2bS0+ZGV2LCBwZCwgc2Ny YXRjaF9wZGUpOwo+ICAgfQo+Cj4gK3N0YXRpYyBpbnQgX19wZHBfaW5pdChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAo+ICsJCSAgICAgIHN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5X3BvaW50ZXIg KnBkcCkKPiArewo+ICsJc2l6ZV90IHBkcGVzID0gSTkxNV9QRFBFU19QRVJfUERQKGRldik7Cj4g Kwo+ICsJcGRwLT51c2VkX3BkcGVzID0ga2NhbGxvYyhCSVRTX1RPX0xPTkdTKHBkcGVzKSwKPiAr CQkJCSAgc2l6ZW9mKHVuc2lnbmVkIGxvbmcpLAo+ICsJCQkJICBHRlBfS0VSTkVMKTsKPiArCWlm ICghcGRwLT51c2VkX3BkcGVzKQo+ICsJCXJldHVybiAtRU5PTUVNOwo+ICsKPiArCXBkcC0+cGFn ZV9kaXJlY3RvcnkgPSBrY2FsbG9jKHBkcGVzLCBzaXplb2YoKnBkcC0+cGFnZV9kaXJlY3Rvcnkp LAo+ICsJCQkJICAgICAgR0ZQX0tFUk5FTCk7Cj4gKwlpZiAoIXBkcC0+cGFnZV9kaXJlY3Rvcnkp IHsKPiArCQlrZnJlZShwZHAtPnVzZWRfcGRwZXMpOwo+ICsJCS8qIHRoZSBQRFAgbWlnaHQgYmUg dGhlIHN0YXRpY2FsbHkgYWxsb2NhdGVkIHRvcCBsZXZlbC4gS2VlcCBpdAo+ICsJCSAqIGFzIGNs ZWFuIGFzIHBvc3NpYmxlICovCj4gKwkJcGRwLT51c2VkX3BkcGVzID0gTlVMTDsKPiArCQlyZXR1 cm4gLUVOT01FTTsKPiArCX0KPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIHZv aWQgX19wZHBfZmluaShzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeV9wb2ludGVyICpwZHApCj4g K3sKPiArCWtmcmVlKHBkcC0+dXNlZF9wZHBlcyk7Cj4gKwlrZnJlZShwZHAtPnBhZ2VfZGlyZWN0 b3J5KTsKPiArCXBkcC0+cGFnZV9kaXJlY3RvcnkgPSBOVUxMOwo+ICt9Cj4gKwo+ICtzdGF0aWMg dm9pZCBmcmVlX3BkcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICsJCSAgICAgc3RydWN0IGk5 MTVfcGFnZV9kaXJlY3RvcnlfcG9pbnRlciAqcGRwKQo+ICt7Cj4gKwlfX3BkcF9maW5pKHBkcCk7 Cj4gK30KPiArCj4gICAvKiBCcm9hZHdlbGwgUGFnZSBEaXJlY3RvcnkgUG9pbnRlciBEZXNjcmlw dG9ycyAqLwo+ICAgc3RhdGljIGludCBnZW44X3dyaXRlX3BkcChzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X3JlcXVlc3QgKnJlcSwKPiAgIAkJCSAgdW5zaWduZWQgZW50cnksCj4gQEAgLTcyMCw3ICs3NTcs OCBAQCBzdGF0aWMgdm9pZCBnZW44X3BwZ3R0X2NsZWFudXAoc3RydWN0IGk5MTVfYWRkcmVzc19z cGFjZSAqdm0pCj4gICAJCWNvbnRhaW5lcl9vZih2bSwgc3RydWN0IGk5MTVfaHdfcHBndHQsIGJh c2UpOwo+ICAgCWludCBpOwo+Cj4gLQlmb3JfZWFjaF9zZXRfYml0KGksIHBwZ3R0LT5wZHAudXNl ZF9wZHBlcywgR0VOOF9MRUdBQ1lfUERQRVMpIHsKPiArCWZvcl9lYWNoX3NldF9iaXQoaSwgcHBn dHQtPnBkcC51c2VkX3BkcGVzLAo+ICsJCQkgSTkxNV9QRFBFU19QRVJfUERQKHBwZ3R0LT5iYXNl LmRldikpIHsKPiAgIAkJaWYgKFdBUk5fT04oIXBwZ3R0LT5wZHAucGFnZV9kaXJlY3RvcnlbaV0p KQo+ICAgCQkJY29udGludWU7Cj4KPiBAQCAtNzI5LDYgKzc2Nyw3IEBAIHN0YXRpYyB2b2lkIGdl bjhfcHBndHRfY2xlYW51cChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSkKPiAgIAkJZnJl ZV9wZChwcGd0dC0+YmFzZS5kZXYsIHBwZ3R0LT5wZHAucGFnZV9kaXJlY3RvcnlbaV0pOwo+ICAg CX0KPgo+ICsJZnJlZV9wZHAocHBndHQtPmJhc2UuZGV2LCAmcHBndHQtPnBkcCk7Cj4gICAJZ2Vu OF9mcmVlX3NjcmF0Y2godm0pOwo+ICAgfQo+Cj4gQEAgLTc2Myw3ICs4MDIsNyBAQCBzdGF0aWMg aW50IGdlbjhfcHBndHRfYWxsb2NfcGFnZXRhYnMoc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0 LAo+Cj4gICAJZ2VuOF9mb3JfZWFjaF9wZGUocHQsIHBkLCBzdGFydCwgbGVuZ3RoLCB0ZW1wLCBw ZGUpIHsKPiAgIAkJLyogRG9uJ3QgcmVhbGxvY2F0ZSBwYWdlIHRhYmxlcyAqLwo+IC0JCWlmIChw dCkgewo+ICsJCWlmICh0ZXN0X2JpdChwZGUsIHBkLT51c2VkX3BkZXMpKSB7Cj4gICAJCQkvKiBT Y3JhdGNoIGlzIG5ldmVyIGFsbG9jYXRlZCB0aGlzIHdheSAqLwo+ICAgCQkJV0FSTl9PTihwdCA9 PSBwcGd0dC0+YmFzZS5zY3JhdGNoX3B0KTsKPiAgIAkJCWNvbnRpbnVlOwo+IEBAIC04MjAsMTEg Kzg1OSwxMiBAQCBzdGF0aWMgaW50IGdlbjhfcHBndHRfYWxsb2NfcGFnZV9kaXJlY3Rvcmllcyhz dHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQsCj4gICAJc3RydWN0IGk5MTVfcGFnZV9kaXJlY3Rv cnkgKnBkOwo+ICAgCXVpbnQ2NF90IHRlbXA7Cj4gICAJdWludDMyX3QgcGRwZTsKPiArCXVpbnQz Ml90IHBkcGVzID0gSTkxNV9QRFBFU19QRVJfUERQKGRldik7Cj4KPiAtCVdBUk5fT04oIWJpdG1h cF9lbXB0eShuZXdfcGRzLCBHRU44X0xFR0FDWV9QRFBFUykpOwo+ICsJV0FSTl9PTighYml0bWFw X2VtcHR5KG5ld19wZHMsIHBkcGVzKSk7Cj4KPiAgIAlnZW44X2Zvcl9lYWNoX3BkcGUocGQsIHBk cCwgc3RhcnQsIGxlbmd0aCwgdGVtcCwgcGRwZSkgewo+IC0JCWlmIChwZCkKPiArCQlpZiAodGVz dF9iaXQocGRwZSwgcGRwLT51c2VkX3BkcGVzKSkKPiAgIAkJCWNvbnRpbnVlOwo+Cj4gICAJCXBk ID0gYWxsb2NfcGQoZGV2KTsKPiBAQCAtODM5LDE4ICs4NzksMTkgQEAgc3RhdGljIGludCBnZW44 X3BwZ3R0X2FsbG9jX3BhZ2VfZGlyZWN0b3JpZXMoc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0 LAo+ICAgCXJldHVybiAwOwo+Cj4gICB1bndpbmRfb3V0Ogo+IC0JZm9yX2VhY2hfc2V0X2JpdChw ZHBlLCBuZXdfcGRzLCBHRU44X0xFR0FDWV9QRFBFUykKPiArCWZvcl9lYWNoX3NldF9iaXQocGRw ZSwgbmV3X3BkcywgcGRwZXMpCj4gICAJCWZyZWVfcGQoZGV2LCBwZHAtPnBhZ2VfZGlyZWN0b3J5 W3BkcGVdKTsKPgo+ICAgCXJldHVybiAtRU5PTUVNOwo+ICAgfQo+Cj4gICBzdGF0aWMgdm9pZAo+ IC1mcmVlX2dlbjhfdGVtcF9iaXRtYXBzKHVuc2lnbmVkIGxvbmcgKm5ld19wZHMsIHVuc2lnbmVk IGxvbmcgKipuZXdfcHRzKQo+ICtmcmVlX2dlbjhfdGVtcF9iaXRtYXBzKHVuc2lnbmVkIGxvbmcg Km5ld19wZHMsIHVuc2lnbmVkIGxvbmcgKipuZXdfcHRzLAo+ICsJCSAgICAgICB1aW50MzJfdCBw ZHBlcykKPiAgIHsKPiAgIAlpbnQgaTsKPgo+IC0JZm9yIChpID0gMDsgaSA8IEdFTjhfTEVHQUNZ X1BEUEVTOyBpKyspCj4gKwlmb3IgKGkgPSAwOyBpIDwgcGRwZXM7IGkrKykKPiAgIAkJa2ZyZWUo bmV3X3B0c1tpXSk7Cj4gICAJa2ZyZWUobmV3X3B0cyk7Cj4gICAJa2ZyZWUobmV3X3Bkcyk7Cj4g QEAgLTg2MSwyMyArOTAyLDI0IEBAIGZyZWVfZ2VuOF90ZW1wX2JpdG1hcHModW5zaWduZWQgbG9u ZyAqbmV3X3BkcywgdW5zaWduZWQgbG9uZyAqKm5ld19wdHMpCj4gICAgKi8KPiAgIHN0YXRpYwo+ ICAgaW50IF9fbXVzdF9jaGVjayBhbGxvY19nZW44X3RlbXBfYml0bWFwcyh1bnNpZ25lZCBsb25n ICoqbmV3X3BkcywKPiAtCQkJCQkgdW5zaWduZWQgbG9uZyAqKipuZXdfcHRzKQo+ICsJCQkJCSB1 bnNpZ25lZCBsb25nICoqKm5ld19wdHMsCj4gKwkJCQkJIHVpbnQzMl90IHBkcGVzKQo+ICAgewo+ ICAgCWludCBpOwo+ICAgCXVuc2lnbmVkIGxvbmcgKnBkczsKPiAgIAl1bnNpZ25lZCBsb25nICoq cHRzOwo+Cj4gLQlwZHMgPSBrY2FsbG9jKEJJVFNfVE9fTE9OR1MoR0VOOF9MRUdBQ1lfUERQRVMp LCBzaXplb2YodW5zaWduZWQgbG9uZyksIEdGUF9LRVJORUwpOwo+ICsJcGRzID0ga2NhbGxvYyhC SVRTX1RPX0xPTkdTKHBkcGVzKSwgc2l6ZW9mKHVuc2lnbmVkIGxvbmcpLCBHRlBfS0VSTkVMKTsK PiAgIAlpZiAoIXBkcykKPiAgIAkJcmV0dXJuIC1FTk9NRU07Cj4KPiAtCXB0cyA9IGtjYWxsb2Mo R0VOOF9MRUdBQ1lfUERQRVMsIHNpemVvZih1bnNpZ25lZCBsb25nICopLCBHRlBfS0VSTkVMKTsK PiArCXB0cyA9IGtjYWxsb2MocGRwZXMsIHNpemVvZih1bnNpZ25lZCBsb25nICopLCBHRlBfS0VS TkVMKTsKPiAgIAlpZiAoIXB0cykgewo+ICAgCQlrZnJlZShwZHMpOwo+ICAgCQlyZXR1cm4gLUVO T01FTTsKPiAgIAl9Cj4KPiAtCWZvciAoaSA9IDA7IGkgPCBHRU44X0xFR0FDWV9QRFBFUzsgaSsr KSB7Cj4gKwlmb3IgKGkgPSAwOyBpIDwgcGRwZXM7IGkrKykgewo+ICAgCQlwdHNbaV0gPSBrY2Fs bG9jKEJJVFNfVE9fTE9OR1MoSTkxNV9QREVTKSwKPiAgIAkJCQkgc2l6ZW9mKHVuc2lnbmVkIGxv bmcpLCBHRlBfS0VSTkVMKTsKPiAgIAkJaWYgKCFwdHNbaV0pCj4gQEAgLTg5MCw3ICs5MzIsNyBA QCBpbnQgX19tdXN0X2NoZWNrIGFsbG9jX2dlbjhfdGVtcF9iaXRtYXBzKHVuc2lnbmVkIGxvbmcg KipuZXdfcGRzLAo+ICAgCXJldHVybiAwOwo+Cj4gICBlcnJfb3V0Ogo+IC0JZnJlZV9nZW44X3Rl bXBfYml0bWFwcyhwZHMsIHB0cyk7Cj4gKwlmcmVlX2dlbjhfdGVtcF9iaXRtYXBzKHBkcywgcHRz LCBwZHBlcyk7Cj4gICAJcmV0dXJuIC1FTk9NRU07Cj4gICB9Cj4KPiBAQCAtOTE2LDYgKzk1OCw3 IEBAIHN0YXRpYyBpbnQgZ2VuOF9hbGxvY192YV9yYW5nZShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3Nw YWNlICp2bSwKPiAgIAljb25zdCB1aW50NjRfdCBvcmlnX2xlbmd0aCA9IGxlbmd0aDsKPiAgIAl1 aW50NjRfdCB0ZW1wOwo+ICAgCXVpbnQzMl90IHBkcGU7Cj4gKwl1aW50MzJfdCBwZHBlcyA9IEk5 MTVfUERQRVNfUEVSX1BEUChwcGd0dC0+YmFzZS5kZXYpOwo+ICAgCWludCByZXQ7Cj4KPiAgIAkv KiBXcmFwIGlzIG5ldmVyIG9rYXkgc2luY2Ugd2UgY2FuIG9ubHkgcmVwcmVzZW50IDQ4YiwgYW5k IHdlIGRvbid0Cj4gQEAgLTkyNyw3ICs5NzAsNyBAQCBzdGF0aWMgaW50IGdlbjhfYWxsb2NfdmFf cmFuZ2Uoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4gICAJaWYgKFdBUk5fT04oc3Rh cnQgKyBsZW5ndGggPiBwcGd0dC0+YmFzZS50b3RhbCkpCj4gICAJCXJldHVybiAtRU5PREVWOwo+ Cj4gLQlyZXQgPSBhbGxvY19nZW44X3RlbXBfYml0bWFwcygmbmV3X3BhZ2VfZGlycywgJm5ld19w YWdlX3RhYmxlcyk7Cj4gKwlyZXQgPSBhbGxvY19nZW44X3RlbXBfYml0bWFwcygmbmV3X3BhZ2Vf ZGlycywgJm5ld19wYWdlX3RhYmxlcywgcGRwZXMpOwo+ICAgCWlmIChyZXQpCj4gICAJCXJldHVy biByZXQ7Cj4KPiBAQCAtOTM1LDcgKzk3OCw3IEBAIHN0YXRpYyBpbnQgZ2VuOF9hbGxvY192YV9y YW5nZShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPiAgIAlyZXQgPSBnZW44X3BwZ3R0 X2FsbG9jX3BhZ2VfZGlyZWN0b3JpZXMocHBndHQsICZwcGd0dC0+cGRwLCBzdGFydCwgbGVuZ3Ro LAo+ICAgCQkJCQluZXdfcGFnZV9kaXJzKTsKPiAgIAlpZiAocmV0KSB7Cj4gLQkJZnJlZV9nZW44 X3RlbXBfYml0bWFwcyhuZXdfcGFnZV9kaXJzLCBuZXdfcGFnZV90YWJsZXMpOwo+ICsJCWZyZWVf Z2VuOF90ZW1wX2JpdG1hcHMobmV3X3BhZ2VfZGlycywgbmV3X3BhZ2VfdGFibGVzLCBwZHBlcyk7 Cj4gICAJCXJldHVybiByZXQ7Cj4gICAJfQo+Cj4gQEAgLTk4OSw3ICsxMDMyLDcgQEAgc3RhdGlj IGludCBnZW44X2FsbG9jX3ZhX3JhbmdlKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+ ICAgCQlfX3NldF9iaXQocGRwZSwgcHBndHQtPnBkcC51c2VkX3BkcGVzKTsKPiAgIAl9Cj4KPiAt CWZyZWVfZ2VuOF90ZW1wX2JpdG1hcHMobmV3X3BhZ2VfZGlycywgbmV3X3BhZ2VfdGFibGVzKTsK PiArCWZyZWVfZ2VuOF90ZW1wX2JpdG1hcHMobmV3X3BhZ2VfZGlycywgbmV3X3BhZ2VfdGFibGVz LCBwZHBlcyk7Cj4gICAJbWFya190bGJzX2RpcnR5KHBwZ3R0KTsKPiAgIAlyZXR1cm4gMDsKPgo+ IEBAIC05OTksMTAgKzEwNDIsMTAgQEAgZXJyX291dDoKPiAgIAkJCWZyZWVfcHQodm0tPmRldiwg cHBndHQtPnBkcC5wYWdlX2RpcmVjdG9yeVtwZHBlXS0+cGFnZV90YWJsZVt0ZW1wXSk7Cj4gICAJ fQo+Cj4gLQlmb3JfZWFjaF9zZXRfYml0KHBkcGUsIG5ld19wYWdlX2RpcnMsIEdFTjhfTEVHQUNZ X1BEUEVTKQo+ICsJZm9yX2VhY2hfc2V0X2JpdChwZHBlLCBuZXdfcGFnZV9kaXJzLCBwZHBlcykK PiAgIAkJZnJlZV9wZCh2bS0+ZGV2LCBwcGd0dC0+cGRwLnBhZ2VfZGlyZWN0b3J5W3BkcGVdKTsK Pgo+IC0JZnJlZV9nZW44X3RlbXBfYml0bWFwcyhuZXdfcGFnZV9kaXJzLCBuZXdfcGFnZV90YWJs ZXMpOwo+ICsJZnJlZV9nZW44X3RlbXBfYml0bWFwcyhuZXdfcGFnZV9kaXJzLCBuZXdfcGFnZV90 YWJsZXMsIHBkcGVzKTsKPiAgIAltYXJrX3RsYnNfZGlydHkocHBndHQpOwo+ICAgCXJldHVybiBy ZXQ7Cj4gICB9Cj4gQEAgLTEwNDAsNyArMTA4MywxNiBAQCBzdGF0aWMgaW50IGdlbjhfcHBndHRf aW5pdChzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQpCj4KPiAgIAlwcGd0dC0+c3dpdGNoX21t ID0gZ2VuOF9tbV9zd2l0Y2g7Cj4KPiArCXJldCA9IF9fcGRwX2luaXQoZmFsc2UsICZwcGd0dC0+ cGRwKTsKPiArCj4gKwlpZiAocmV0KQo+ICsJCWdvdG8gZnJlZV9zY3JhdGNoOwo+ICsKPiAgIAly ZXR1cm4gMDsKPiArCj4gK2ZyZWVfc2NyYXRjaDoKPiArCWdlbjhfZnJlZV9zY3JhdGNoKCZwcGd0 dC0+YmFzZSk7Cj4gKwlyZXR1cm4gcmV0Owo+ICAgfQo+Cj4gICBzdGF0aWMgdm9pZCBnZW42X2R1 bXBfcHBndHQoc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0LCBzdHJ1Y3Qgc2VxX2ZpbGUgKm0p Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgKPiBpbmRleCBkNWJmOTUzLi44N2UzODlj IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgKPiBAQCAtOTgsNiArOTgsOSBA QCB0eXBlZGVmIHVpbnQ2NF90IGdlbjhfcGRlX3Q7Cj4gICAjZGVmaW5lIEdFTjhfTEVHQUNZX1BE UEVTCQk0Cj4gICAjZGVmaW5lIEdFTjhfUFRFUwkJCUk5MTVfUFRFUyhzaXplb2YoZ2VuOF9wdGVf dCkpCj4KPiArLyogRklYTUU6IE5leHQgcGF0Y2ggd2lsbCB1c2UgZGV2ICovCj4gKyNkZWZpbmUg STkxNV9QRFBFU19QRVJfUERQKGRldikJCUdFTjhfTEVHQUNZX1BEUEVTCj4gKwo+ICAgI2RlZmlu ZSBQUEFUX1VOQ0FDSEVEX0lOREVYCQkoX1BBR0VfUFdUIHwgX1BBR0VfUENEKQo+ICAgI2RlZmlu ZSBQUEFUX0NBQ0hFRF9QREVfSU5ERVgJCTAgLyogV0IgTExDICovCj4gICAjZGVmaW5lIFBQQVRf Q0FDSEVEX0lOREVYCQlfUEFHRV9QQVQgLyogV0IgTExDZUxMQyAqLwo+IEBAIC0yNDEsOSArMjQ0 LDEwIEBAIHN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5IHsKPiAgIH07Cj4KPiAgIHN0cnVjdCBp OTE1X3BhZ2VfZGlyZWN0b3J5X3BvaW50ZXIgewo+IC0JLyogc3RydWN0IHBhZ2UgKnBhZ2U7ICov Cj4gLQlERUNMQVJFX0JJVE1BUCh1c2VkX3BkcGVzLCBHRU44X0xFR0FDWV9QRFBFUyk7Cj4gLQlz dHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAqcGFnZV9kaXJlY3RvcnlbR0VOOF9MRUdBQ1lfUERQ RVNdOwo+ICsJc3RydWN0IGk5MTVfcGFnZV9kbWEgYmFzZTsKPiArCj4gKwl1bnNpZ25lZCBsb25n ICp1c2VkX3BkcGVzOwo+ICsJc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnkgKipwYWdlX2RpcmVj dG9yeTsKPiAgIH07Cj4KPiAgIHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2Ugewo+IEBAIC00MzYs OSArNDQwLDEwIEBAIHN0YXRpYyBpbmxpbmUgdWludDMyX3QgZ2VuNl9wZGVfaW5kZXgodWludDMy X3QgYWRkcikKPiAgIAkgICAgIHRlbXAgPSBtaW4odGVtcCwgbGVuZ3RoKSwJCQkJCVwKPiAgIAkg ICAgIHN0YXJ0ICs9IHRlbXAsIGxlbmd0aCAtPSB0ZW1wKQo+Cj4gLSNkZWZpbmUgZ2VuOF9mb3Jf ZWFjaF9wZHBlKHBkLCBwZHAsIHN0YXJ0LCBsZW5ndGgsIHRlbXAsIGl0ZXIpCQlcCj4gLQlmb3Ig KGl0ZXIgPSBnZW44X3BkcGVfaW5kZXgoc3RhcnQpOwlcCj4gLQkgICAgIHBkID0gKHBkcCktPnBh Z2VfZGlyZWN0b3J5W2l0ZXJdLCBsZW5ndGggPiAwICYmIGl0ZXIgPCBHRU44X0xFR0FDWV9QRFBF UzsJXAo+ICsjZGVmaW5lIGdlbjhfZm9yX2VhY2hfcGRwZShwZCwgcGRwLCBzdGFydCwgbGVuZ3Ro LCB0ZW1wLCBpdGVyKQlcCj4gKwlmb3IgKGl0ZXIgPSBnZW44X3BkcGVfaW5kZXgoc3RhcnQpOyBc Cj4gKwkgICAgIHBkID0gKHBkcCktPnBhZ2VfZGlyZWN0b3J5W2l0ZXJdLCBcCj4gKwkgICAgIGxl bmd0aCA+IDAgJiYgKGl0ZXIgPCBJOTE1X1BEUEVTX1BFUl9QRFAoZGV2KSk7IFwKPiAgIAkgICAg IGl0ZXIrKywJCQkJXAo+ICAgCSAgICAgdGVtcCA9IEFMSUdOKHN0YXJ0KzEsIDEgPDwgR0VOOF9Q RFBFX1NISUZUKSAtIHN0YXJ0LAlcCj4gICAJICAgICB0ZW1wID0gbWluKHRlbXAsIGxlbmd0aCks CQkJCQlcCj4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK