From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michel Thierry Subject: Re: [PATCH v4 1/2] intel: 48b ppgtt support (EXEC_OBJECT_SUPPORTS_48B_ADDRESS flag) Date: Mon, 5 Oct 2015 15:03:46 +0100 Message-ID: <56128342.2070407@intel.com> References: <1441290239-31462-1-git-send-email-michel.thierry@intel.com> <1441290239-31462-2-git-send-email-michel.thierry@intel.com> <20150914135403.GA8219@mwiniars-desk1.igk.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20150914135403.GA8219@mwiniars-desk1.igk.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: =?UTF-8?Q?Kristian_H=c3=b8gsberg?= Cc: mesa-dev , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gOS8xNC8yMDE1IDI6NTQgUE0sIE1pY2hhxYIgV2luaWFyc2tpIHdyb3RlOgo+IE9uIFRodSwg U2VwIDAzLCAyMDE1IGF0IDAzOjIzOjU4UE0gKzAxMDAsIE1pY2hlbCBUaGllcnJ5IHdyb3RlOgo+ PiBHZW44KyBzdXBwb3J0cyA0OC1iaXQgdmlydHVhbCBhZGRyZXNzZXMsIGJ1dCBzb21lIG9iamVj dHMgbXVzdCBhbHdheXMgYmUKPj4gYWxsb2NhdGVkIGluc2lkZSB0aGUgMzItYml0IGFkZHJlc3Mg cmFuZ2UuCj4+Cj4+IEluIHNwZWNpZmljLCBhbnkgcmVzb3VyY2UgdXNlZCB3aXRoIGZsYXQvaGVh cGxlc3MgKDB4MDAwMDAwMDAtMHhmZmZmZjAwMCkKPj4gR2VuZXJhbCBTdGF0ZSBIZWFwIChHU0gp IG9yIEluc3RydWN0aW9uIFN0YXRlIEhlYXAgKElTSCkgbXVzdCBiZSBpbiBhCj4+IDMyLWJpdCBy YW5nZSwgYmVjYXVzZSB0aGUgR2VuZXJhbCBTdGF0ZSBPZmZzZXQgYW5kIEluc3RydWN0aW9uIFN0 YXRlIE9mZnNldAo+PiBhcmUgbGltaXRlZCB0byAzMi1iaXRzLgo+Pgo+PiBUaGUgaTkxNSBkcml2 ZXIgaGFzIGJlZW4gbW9kaWZpZWQgdG8gcHJvdmlkZSBhIGZsYWcgdG8gc2V0IHdoZW4gdGhlIDRH Qgo+PiBsaW1pdCBpcyBub3QgbmVjZXNzYXJ5IGluIGEgZ2l2ZW4gYm8gKEVYRUNfT0JKRUNUX1NV UFBPUlRTXzQ4Ql9BRERSRVNTKS4KPj4gNDgtYml0IHJhbmdlIHdpbGwgb25seSBiZSB1c2VkIHdo ZW4gZXhwbGljaXRseSByZXF1ZXN0ZWQuCj4+Cj4+IENhbGxlcnMgdG8gdGhlIGV4aXN0aW5nIGRy bV9pbnRlbF9ib19lbWl0X3JlbG9jIGZ1bmN0aW9uIHNob3VsZCBzZXQgdGhlCj4+IHVzZV80OGJf YWRkcmVzc19yYW5nZSBmbGFnIGJlZm9yZWhhbmQsIGluIG9yZGVyIHRvIHVzZSBmdWxsIHBwZ3R0 IHJhbmdlLgo+Pgo+PiB2MjogTWFrZSBzZXQvY2xlYXIgZnVuY3Rpb25zIG5vcHMgb24gcHJlLWdl bjggcGxhdGZvcm1zLCBhbmQgdXNlIHRoZW0KPj4gICAgICBpbnRlcm5hbGx5IGluIGVtaXRfcmVs b2MgZnVuY3Rpb25zIChCZW4pCj4+ICAgICAgcy80OEJBRERSRVNTLzQ4Ql9BRERSRVNTLyAoRGF2 ZSkKPj4gdjM6IEtlZXAgc2V0L2NsZWFyIGZ1bmN0aW9ucyBpbnRlcm5hbCwgbm8tb25lIG5lZWRz IHRvIHVzZSB0aGVtIGRpcmVjdGx5Lgo+PiB2NDogRG9uJ3Qgc2V0IDQ4Yml0LXN1cHBvcnQgZmxh ZyBpbiBlbWl0IHJlbG9jLCBjaGVjayBmb3IgcHBndHQgdHlwZQo+PiAgICAgIGJlZm9yZSBlbmFi bGluZyBzZXQvY2xlYXIgZnVuY3Rpb24sIHByaW50IGZ1bGwgb2Zmc2V0cyBpbiBkZWJ1Zwo+PiAg ICAgIHN0YXRlbWVudHMsIHVzaW5nIHBvcnQgb2YgbG93ZXJfMzJfYml0cyBhbmQgdXBwZXJfMzJf Yml0cyBmcm9tIGxpbnV4Cj4+ICAgICAga2VybmVsIChNaWNoYcWCKQo+Pgo+PiBSZWZlcmVuY2Vz OiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL2FyY2hpdmVzL2ludGVsLWdmeC8yMDE1LUp1 bHkvMDcyNjEyLmh0bWwKPj4gQ2M6IEJlbiBXaWRhd3NreSA8YmVuQGJ3aWRhd3NrLm5ldD4KPj4g Q2M6IE1pY2hhxYIgV2luaWFyc2tpIDxtaWNoYWwud2luaWFyc2tpQGludGVsLmNvbT4KPgo+ICtL cmlzdGlhbgo+Cj4gTEdUTS4KPiBBY2tlZC1ieTogTWljaGHFgiBXaW5pYXJza2kgPG1pY2hhbC53 aW5pYXJza2lAaW50ZWwuY29tPgo+Cj4+IFNpZ25lZC1vZmYtYnk6IE1pY2hlbCBUaGllcnJ5IDxt aWNoZWwudGhpZXJyeUBpbnRlbC5jb20+CgoKSGkgS3Jpc3RpYW4sCgpNb3JlIGNvbW1lbnRzIG9u IHRoaXM/CkkndmUgcmVzZW50IHRoZSBtZXNhIHBhdGNoIHdpdGggdGhlIGxhc3QgY2hhbmdlcyAK KGh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMvZHJpLWRldmVsLzIwMTUtT2N0 b2Jlci8wOTE3NTIuaHRtbCkuCgpNaWNoYcWCIGhhcyBhZ3JlZWQgd2l0aCB0aGUgaW50ZXJmYWNl IGFuZCB3aWxsIHVzZSBpdCBmb3IgaGlzIHdvcmsuCklmIG1lc2EgZG9lc24ndCBwbGFuIHRvIHVz ZSB0aGlzIGZvciBub3csIGl0J3Mgb2suIFRoZSBrZXJuZWwgY2hhbmdlcyAKaGF2ZSBiZWVuIGRv bmUgdG8gcHJldmVudCBhbnkgcmVncmVzc2lvbnMgd2hlbiB0aGUgc3VwcG9ydCA0OC1iaXQgZmxh ZyAKaXMgbm90IHNldC4KClRoYW5rcywKCi1NaWNoZWwKCj4+IC0tLQo+PiAgIGluY2x1ZGUvZHJt L2k5MTVfZHJtLmggICAgfCAgMyArLQo+PiAgIGludGVsL2ludGVsX2J1Zm1nci5jICAgICAgfCAx MSArKysrKysKPj4gICBpbnRlbC9pbnRlbF9idWZtZ3IuaCAgICAgIHwgIDEgKwo+PiAgIGludGVs L2ludGVsX2J1Zm1ncl9nZW0uYyAgfCA4OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrLS0tLS0tLS0tLQo+PiAgIGludGVsL2ludGVsX2J1Zm1ncl9wcml2LmggfCAxNCArKysr KysrKwo+PiAgIDUgZmlsZXMgY2hhbmdlZCwgOTcgaW5zZXJ0aW9ucygrKSwgMjAgZGVsZXRpb25z KC0pCj4+Cj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9pOTE1X2RybS5oIGIvaW5jbHVkZS9k cm0vaTkxNV9kcm0uaAo+PiBpbmRleCBkZWQ0M2IxLi40MjZiMjVjIDEwMDY0NAo+PiAtLS0gYS9p bmNsdWRlL2RybS9pOTE1X2RybS5oCj4+ICsrKyBiL2luY2x1ZGUvZHJtL2k5MTVfZHJtLmgKPj4g QEAgLTY4MCw3ICs2ODAsOCBAQCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNfb2JqZWN0MiB7Cj4+ ICAgI2RlZmluZSBFWEVDX09CSkVDVF9ORUVEU19GRU5DRSAoMTw8MCkKPj4gICAjZGVmaW5lIEVY RUNfT0JKRUNUX05FRURTX0dUVAkoMTw8MSkKPj4gICAjZGVmaW5lIEVYRUNfT0JKRUNUX1dSSVRF CSgxPDwyKQo+PiAtI2RlZmluZSBfX0VYRUNfT0JKRUNUX1VOS05PV05fRkxBR1MgLShFWEVDX09C SkVDVF9XUklURTw8MSkKPj4gKyNkZWZpbmUgRVhFQ19PQkpFQ1RfU1VQUE9SVFNfNDhCX0FERFJF U1MgKDE8PDMpCj4+ICsjZGVmaW5lIF9fRVhFQ19PQkpFQ1RfVU5LTk9XTl9GTEFHUyAtKEVYRUNf T0JKRUNUX1NVUFBPUlRTXzQ4Ql9BRERSRVNTPDwxKQo+PiAgIAlfX3U2NCBmbGFnczsKPj4KPj4g ICAJX191NjQgcnN2ZDE7Cj4+IGRpZmYgLS1naXQgYS9pbnRlbC9pbnRlbF9idWZtZ3IuYyBiL2lu dGVsL2ludGVsX2J1Zm1nci5jCj4+IGluZGV4IDE0ZWE5ZjkuLjA4NTZlNjAgMTAwNjQ0Cj4+IC0t LSBhL2ludGVsL2ludGVsX2J1Zm1nci5jCj4+ICsrKyBiL2ludGVsL2ludGVsX2J1Zm1nci5jCj4+ IEBAIC0yOTMsNiArMjkzLDE3IEBAIGRybV9pbnRlbF9ib19tYWR2aXNlKGRybV9pbnRlbF9ibyAq Ym8sIGludCBtYWR2KQo+PiAgIH0KPj4KPj4gICBpbnQKPj4gK2RybV9pbnRlbF9ib191c2VfNDhi X2FkZHJlc3NfcmFuZ2UoZHJtX2ludGVsX2JvICpibywgdWludDMyX3QgZW5hYmxlKQo+PiArewo+ PiArCWlmIChiby0+YnVmbWdyLT5ib191c2VfNDhiX2FkZHJlc3NfcmFuZ2UpIHsKPj4gKwkJYm8t PmJ1Zm1nci0+Ym9fdXNlXzQ4Yl9hZGRyZXNzX3JhbmdlKGJvLCBlbmFibGUpOwo+PiArCQlyZXR1 cm4gMDsKPj4gKwl9Cj4+ICsKPj4gKwlyZXR1cm4gLUVOT0RFVjsKPj4gK30KPj4gKwo+PiAraW50 Cj4+ICAgZHJtX2ludGVsX2JvX3JlZmVyZW5jZXMoZHJtX2ludGVsX2JvICpibywgZHJtX2ludGVs X2JvICp0YXJnZXRfYm8pCj4+ICAgewo+PiAgIAlyZXR1cm4gYm8tPmJ1Zm1nci0+Ym9fcmVmZXJl bmNlcyhibywgdGFyZ2V0X2JvKTsKPj4gZGlmZiAtLWdpdCBhL2ludGVsL2ludGVsX2J1Zm1nci5o IGIvaW50ZWwvaW50ZWxfYnVmbWdyLmgKPj4gaW5kZXggOTVlZWNiOC4uYTE0Yzc4ZiAxMDA2NDQK Pj4gLS0tIGEvaW50ZWwvaW50ZWxfYnVmbWdyLmgKPj4gKysrIGIvaW50ZWwvaW50ZWxfYnVmbWdy LmgKPj4gQEAgLTE2NCw2ICsxNjQsNyBAQCBpbnQgZHJtX2ludGVsX2JvX2dldF90aWxpbmcoZHJt X2ludGVsX2JvICpibywgdWludDMyX3QgKiB0aWxpbmdfbW9kZSwKPj4gICBpbnQgZHJtX2ludGVs X2JvX2ZsaW5rKGRybV9pbnRlbF9ibyAqYm8sIHVpbnQzMl90ICogbmFtZSk7Cj4+ICAgaW50IGRy bV9pbnRlbF9ib19idXN5KGRybV9pbnRlbF9ibyAqYm8pOwo+PiAgIGludCBkcm1faW50ZWxfYm9f bWFkdmlzZShkcm1faW50ZWxfYm8gKmJvLCBpbnQgbWFkdik7Cj4+ICtpbnQgZHJtX2ludGVsX2Jv X3VzZV80OGJfYWRkcmVzc19yYW5nZShkcm1faW50ZWxfYm8gKmJvLCB1aW50MzJfdCBlbmFibGUp Owo+Pgo+PiAgIGludCBkcm1faW50ZWxfYm9fZGlzYWJsZV9yZXVzZShkcm1faW50ZWxfYm8gKmJv KTsKPj4gICBpbnQgZHJtX2ludGVsX2JvX2lzX3JldXNhYmxlKGRybV9pbnRlbF9ibyAqYm8pOwo+ PiBkaWZmIC0tZ2l0IGEvaW50ZWwvaW50ZWxfYnVmbWdyX2dlbS5jIGIvaW50ZWwvaW50ZWxfYnVm bWdyX2dlbS5jCj4+IGluZGV4IDI3MjNlMjEuLjA5ZDgyZDIgMTAwNjQ0Cj4+IC0tLSBhL2ludGVs L2ludGVsX2J1Zm1ncl9nZW0uYwo+PiArKysgYi9pbnRlbC9pbnRlbF9idWZtZ3JfZ2VtLmMKPj4g QEAgLTgzLDYgKzgzLDIyIEBACj4+ICAgI2RlZmluZSBBUlJBWV9TSVpFKHgpIChzaXplb2YoeCkg LyBzaXplb2YoKHgpWzBdKSkKPj4gICAjZGVmaW5lIE1BWDIoQSwgQikgKChBKSA+IChCKSA/IChB KSA6IChCKSkKPj4KPj4gKy8qKgo+PiArICogdXBwZXJfMzJfYml0cyAtIHJldHVybiBiaXRzIDMy LTYzIG9mIGEgbnVtYmVyCj4+ICsgKiBAbjogdGhlIG51bWJlciB3ZSdyZSBhY2Nlc3NpbmcKPj4g KyAqCj4+ICsgKiBBIGJhc2ljIHNoaWZ0LXJpZ2h0IG9mIGEgNjQtIG9yIDMyLWJpdCBxdWFudGl0 eS4gIFVzZSB0aGlzIHRvIHN1cHByZXNzCj4+ICsgKiB0aGUgInJpZ2h0IHNoaWZ0IGNvdW50ID49 IHdpZHRoIG9mIHR5cGUiIHdhcm5pbmcgd2hlbiB0aGF0IHF1YW50aXR5IGlzCj4+ICsgKiAzMi1i aXRzLgo+PiArICovCj4+ICsjZGVmaW5lIHVwcGVyXzMyX2JpdHMobikgKChfX3UzMikoKChuKSA+ PiAxNikgPj4gMTYpKQo+PiArCj4+ICsvKioKPj4gKyAqIGxvd2VyXzMyX2JpdHMgLSByZXR1cm4g Yml0cyAwLTMxIG9mIGEgbnVtYmVyCj4+ICsgKiBAbjogdGhlIG51bWJlciB3ZSdyZSBhY2Nlc3Np bmcKPj4gKyAqLwo+PiArI2RlZmluZSBsb3dlcl8zMl9iaXRzKG4pICgoX191MzIpKG4pKQo+PiAr Cj4+ICAgdHlwZWRlZiBzdHJ1Y3QgX2RybV9pbnRlbF9ib19nZW0gZHJtX2ludGVsX2JvX2dlbTsK Pj4KPj4gICBzdHJ1Y3QgZHJtX2ludGVsX2dlbV9ib19idWNrZXQgewo+PiBAQCAtMjM3LDYgKzI1 MywxNSBAQCBzdHJ1Y3QgX2RybV9pbnRlbF9ib19nZW0gewo+PiAgIAlib29sIGlzX3VzZXJwdHI7 Cj4+Cj4+ICAgCS8qKgo+PiArCSAqIEJvb2xlYW4gb2Ygd2hldGhlciB0aGlzIGJ1ZmZlciBjYW4g YmUgcGxhY2VkIGluIHRoZSBmdWxsIDQ4LWJpdAo+PiArCSAqIGFkZHJlc3MgcmFuZ2Ugb24gZ2Vu OCsuCj4+ICsJICoKPj4gKwkgKiBCeSBkZWZhdWx0LCBidWZmZXJzIHdpbGwgYmUga2VlcCBpbiBh IDMyLWJpdCByYW5nZSwgdW5sZXNzIHRoaXMKPj4gKwkgKiBmbGFnIGlzIGV4cGxpY2l0bHkgc2V0 Lgo+PiArCSAqLwo+PiArCWJvb2wgdXNlXzQ4Yl9hZGRyZXNzX3JhbmdlOwo+PiArCj4+ICsJLyoq Cj4+ICAgCSAqIFNpemUgaW4gYnl0ZXMgb2YgdGhpcyBidWZmZXIgYW5kIGl0cyByZWxvY2F0aW9u IGRlc2NlbmRlbnRzLgo+PiAgIAkgKgo+PiAgIAkgKiBVc2VkIHRvIGF2b2lkIGNvc3RseSB0cmVl IHdhbGtpbmcgaW4KPj4gQEAgLTM5NSwxNCArNDIwLDE2IEBAIGRybV9pbnRlbF9nZW1fZHVtcF92 YWxpZGF0aW9uX2xpc3QoZHJtX2ludGVsX2J1Zm1ncl9nZW0gKmJ1Zm1ncl9nZW0pCj4+ICAgCQkJ ZHJtX2ludGVsX2JvX2dlbSAqdGFyZ2V0X2dlbSA9Cj4+ICAgCQkJICAgIChkcm1faW50ZWxfYm9f Z2VtICopIHRhcmdldF9ibzsKPj4KPj4gLQkJCURCRygiJTJkOiAlZCAoJXMpQDB4JTA4bGx4IC0+ ICIKPj4gLQkJCSAgICAiJWQgKCVzKUAweCUwOGx4ICsgMHglMDh4XG4iLAo+PiArCQkJREJHKCIl MmQ6ICVkICglcylAMHglMDh4ICUwOHggLT4gIgo+PiArCQkJICAgICIlZCAoJXMpQDB4JTA4eCAl MDh4ICsgMHglMDh4XG4iLAo+PiAgIAkJCSAgICBpLAo+PiAgIAkJCSAgICBib19nZW0tPmdlbV9o YW5kbGUsIGJvX2dlbS0+bmFtZSwKPj4gLQkJCSAgICAodW5zaWduZWQgbG9uZyBsb25nKWJvX2dl bS0+cmVsb2NzW2pdLm9mZnNldCwKPj4gKwkJCSAgICB1cHBlcl8zMl9iaXRzKGJvX2dlbS0+cmVs b2NzW2pdLm9mZnNldCksCj4+ICsJCQkgICAgbG93ZXJfMzJfYml0cyhib19nZW0tPnJlbG9jc1tq XS5vZmZzZXQpLAo+PiAgIAkJCSAgICB0YXJnZXRfZ2VtLT5nZW1faGFuZGxlLAo+PiAgIAkJCSAg ICB0YXJnZXRfZ2VtLT5uYW1lLAo+PiAtCQkJICAgIHRhcmdldF9iby0+b2Zmc2V0NjQsCj4+ICsJ CQkgICAgdXBwZXJfMzJfYml0cyh0YXJnZXRfYm8tPm9mZnNldDY0KSwKPj4gKwkJCSAgICBsb3dl cl8zMl9iaXRzKHRhcmdldF9iby0+b2Zmc2V0NjQpLAo+PiAgIAkJCSAgICBib19nZW0tPnJlbG9j c1tqXS5kZWx0YSk7Cj4+ICAgCQl9Cj4+ICAgCX0KPj4gQEAgLTQ2OCwxMSArNDk1LDE1IEBAIGRy bV9pbnRlbF9hZGRfdmFsaWRhdGVfYnVmZmVyMihkcm1faW50ZWxfYm8gKmJvLCBpbnQgbmVlZF9m ZW5jZSkKPj4gICAJZHJtX2ludGVsX2J1Zm1ncl9nZW0gKmJ1Zm1ncl9nZW0gPSAoZHJtX2ludGVs X2J1Zm1ncl9nZW0gKiliby0+YnVmbWdyOwo+PiAgIAlkcm1faW50ZWxfYm9fZ2VtICpib19nZW0g PSAoZHJtX2ludGVsX2JvX2dlbSAqKWJvOwo+PiAgIAlpbnQgaW5kZXg7Cj4+ICsJaW50IGZsYWdz ID0gMDsKPj4gKwo+PiArCWlmIChuZWVkX2ZlbmNlKQo+PiArCQlmbGFncyB8PSBFWEVDX09CSkVD VF9ORUVEU19GRU5DRTsKPj4gKwlpZiAoYm9fZ2VtLT51c2VfNDhiX2FkZHJlc3NfcmFuZ2UpCj4+ ICsJCWZsYWdzIHw9IEVYRUNfT0JKRUNUX1NVUFBPUlRTXzQ4Ql9BRERSRVNTOwo+Pgo+PiAgIAlp ZiAoYm9fZ2VtLT52YWxpZGF0ZV9pbmRleCAhPSAtMSkgewo+PiAtCQlpZiAobmVlZF9mZW5jZSkK Pj4gLQkJCWJ1Zm1ncl9nZW0tPmV4ZWMyX29iamVjdHNbYm9fZ2VtLT52YWxpZGF0ZV9pbmRleF0u ZmxhZ3MgfD0KPj4gLQkJCQlFWEVDX09CSkVDVF9ORUVEU19GRU5DRTsKPj4gKwkJYnVmbWdyX2dl bS0+ZXhlYzJfb2JqZWN0c1tib19nZW0tPnZhbGlkYXRlX2luZGV4XS5mbGFncyB8PSBmbGFnczsK Pj4gICAJCXJldHVybjsKPj4gICAJfQo+Pgo+PiBAQCAtNTAxLDEzICs1MzIsOSBAQCBkcm1faW50 ZWxfYWRkX3ZhbGlkYXRlX2J1ZmZlcjIoZHJtX2ludGVsX2JvICpibywgaW50IG5lZWRfZmVuY2Up Cj4+ICAgCWJ1Zm1ncl9nZW0tPmV4ZWMyX29iamVjdHNbaW5kZXhdLmFsaWdubWVudCA9IGJvLT5h bGlnbjsKPj4gICAJYnVmbWdyX2dlbS0+ZXhlYzJfb2JqZWN0c1tpbmRleF0ub2Zmc2V0ID0gMDsK Pj4gICAJYnVmbWdyX2dlbS0+ZXhlY19ib3NbaW5kZXhdID0gYm87Cj4+IC0JYnVmbWdyX2dlbS0+ ZXhlYzJfb2JqZWN0c1tpbmRleF0uZmxhZ3MgPSAwOwo+PiArCWJ1Zm1ncl9nZW0tPmV4ZWMyX29i amVjdHNbaW5kZXhdLmZsYWdzID0gZmxhZ3M7Cj4+ICAgCWJ1Zm1ncl9nZW0tPmV4ZWMyX29iamVj dHNbaW5kZXhdLnJzdmQxID0gMDsKPj4gICAJYnVmbWdyX2dlbS0+ZXhlYzJfb2JqZWN0c1tpbmRl eF0ucnN2ZDIgPSAwOwo+PiAtCWlmIChuZWVkX2ZlbmNlKSB7Cj4+IC0JCWJ1Zm1ncl9nZW0tPmV4 ZWMyX29iamVjdHNbaW5kZXhdLmZsYWdzIHw9Cj4+IC0JCQlFWEVDX09CSkVDVF9ORUVEU19GRU5D RTsKPj4gLQl9Cj4+ICAgCWJ1Zm1ncl9nZW0tPmV4ZWNfY291bnQrKzsKPj4gICB9Cj4+Cj4+IEBA IC03ODAsNiArODA3LDcgQEAgcmV0cnk6Cj4+ICAgCWJvX2dlbS0+dXNlZF9hc19yZWxvY190YXJn ZXQgPSBmYWxzZTsKPj4gICAJYm9fZ2VtLT5oYXNfZXJyb3IgPSBmYWxzZTsKPj4gICAJYm9fZ2Vt LT5yZXVzYWJsZSA9IHRydWU7Cj4+ICsJYm9fZ2VtLT51c2VfNDhiX2FkZHJlc3NfcmFuZ2UgPSBm YWxzZTsKPj4KPj4gICAJZHJtX2ludGVsX2JvX2dlbV9zZXRfaW5fYXBlcnR1cmVfc2l6ZShidWZt Z3JfZ2VtLCBib19nZW0sIGFsaWdubWVudCk7Cj4+Cj4+IEBAIC05MjYsNiArOTU0LDcgQEAgZHJt X2ludGVsX2dlbV9ib19hbGxvY191c2VycHRyKGRybV9pbnRlbF9idWZtZ3IgKmJ1Zm1nciwKPj4g ICAJYm9fZ2VtLT51c2VkX2FzX3JlbG9jX3RhcmdldCA9IGZhbHNlOwo+PiAgIAlib19nZW0tPmhh c19lcnJvciA9IGZhbHNlOwo+PiAgIAlib19nZW0tPnJldXNhYmxlID0gZmFsc2U7Cj4+ICsJYm9f Z2VtLT51c2VfNDhiX2FkZHJlc3NfcmFuZ2UgPSBmYWxzZTsKPj4KPj4gICAJZHJtX2ludGVsX2Jv X2dlbV9zZXRfaW5fYXBlcnR1cmVfc2l6ZShidWZtZ3JfZ2VtLCBib19nZW0sIDApOwo+Pgo+PiBA QCAtMTA4MSw2ICsxMTEwLDcgQEAgZHJtX2ludGVsX2JvX2dlbV9jcmVhdGVfZnJvbV9uYW1lKGRy bV9pbnRlbF9idWZtZ3IgKmJ1Zm1nciwKPj4gICAJYm9fZ2VtLT5iby5oYW5kbGUgPSBvcGVuX2Fy Zy5oYW5kbGU7Cj4+ICAgCWJvX2dlbS0+Z2xvYmFsX25hbWUgPSBoYW5kbGU7Cj4+ICAgCWJvX2dl bS0+cmV1c2FibGUgPSBmYWxzZTsKPj4gKwlib19nZW0tPnVzZV80OGJfYWRkcmVzc19yYW5nZSA9 IGZhbHNlOwo+Pgo+PiAgIAltZW1jbGVhcihnZXRfdGlsaW5nKTsKPj4gICAJZ2V0X3RpbGluZy5o YW5kbGUgPSBib19nZW0tPmdlbV9oYW5kbGU7Cj4+IEBAIC0xOTMwLDYgKzE5NjAsMTMgQEAgZG9f Ym9fZW1pdF9yZWxvYyhkcm1faW50ZWxfYm8gKmJvLCB1aW50MzJfdCBvZmZzZXQsCj4+ICAgCXJl dHVybiAwOwo+PiAgIH0KPj4KPj4gK3N0YXRpYyB2b2lkCj4+ICtkcm1faW50ZWxfZ2VtX2JvX3Vz ZV80OGJfYWRkcmVzc19yYW5nZShkcm1faW50ZWxfYm8gKmJvLCB1aW50MzJfdCBlbmFibGUpCj4+ ICt7Cj4+ICsJZHJtX2ludGVsX2JvX2dlbSAqYm9fZ2VtID0gKGRybV9pbnRlbF9ib19nZW0gKikg Ym87Cj4+ICsJYm9fZ2VtLT51c2VfNDhiX2FkZHJlc3NfcmFuZ2UgPSBlbmFibGU7Cj4+ICt9Cj4+ ICsKPj4gICBzdGF0aWMgaW50Cj4+ICAgZHJtX2ludGVsX2dlbV9ib19lbWl0X3JlbG9jKGRybV9p bnRlbF9ibyAqYm8sIHVpbnQzMl90IG9mZnNldCwKPj4gICAJCQkgICAgZHJtX2ludGVsX2JvICp0 YXJnZXRfYm8sIHVpbnQzMl90IHRhcmdldF9vZmZzZXQsCj4+IEBAIC0yMDczLDEwICsyMTEwLDEy IEBAIGRybV9pbnRlbF91cGRhdGVfYnVmZmVyX29mZnNldHMoZHJtX2ludGVsX2J1Zm1ncl9nZW0g KmJ1Zm1ncl9nZW0pCj4+Cj4+ICAgCQkvKiBVcGRhdGUgdGhlIGJ1ZmZlciBvZmZzZXQgKi8KPj4g ICAJCWlmIChidWZtZ3JfZ2VtLT5leGVjX29iamVjdHNbaV0ub2Zmc2V0ICE9IGJvLT5vZmZzZXQ2 NCkgewo+PiAtCQkJREJHKCJCTyAlZCAoJXMpIG1pZ3JhdGVkOiAweCUwOGx4IC0+IDB4JTA4bGx4 XG4iLAo+PiAtCQkJICAgIGJvX2dlbS0+Z2VtX2hhbmRsZSwgYm9fZ2VtLT5uYW1lLCBiby0+b2Zm c2V0NjQsCj4+IC0JCQkgICAgKHVuc2lnbmVkIGxvbmcgbG9uZylidWZtZ3JfZ2VtLT5leGVjX29i amVjdHNbaV0uCj4+IC0JCQkgICAgb2Zmc2V0KTsKPj4gKwkJCURCRygiQk8gJWQgKCVzKSBtaWdy YXRlZDogMHglMDh4ICUwOHggLT4gMHglMDh4ICUwOHhcbiIsCj4+ICsJCQkgICAgYm9fZ2VtLT5n ZW1faGFuZGxlLCBib19nZW0tPm5hbWUsCj4+ICsJCQkgICAgdXBwZXJfMzJfYml0cyhiby0+b2Zm c2V0NjQpLAo+PiArCQkJICAgIGxvd2VyXzMyX2JpdHMoYm8tPm9mZnNldDY0KSwKPj4gKwkJCSAg ICB1cHBlcl8zMl9iaXRzKGJ1Zm1ncl9nZW0tPmV4ZWNfb2JqZWN0c1tpXS5vZmZzZXQpLAo+PiAr CQkJICAgIGxvd2VyXzMyX2JpdHMoYnVmbWdyX2dlbS0+ZXhlY19vYmplY3RzW2ldLm9mZnNldCkp Owo+PiAgIAkJCWJvLT5vZmZzZXQ2NCA9IGJ1Zm1ncl9nZW0tPmV4ZWNfb2JqZWN0c1tpXS5vZmZz ZXQ7Cj4+ICAgCQkJYm8tPm9mZnNldCA9IGJ1Zm1ncl9nZW0tPmV4ZWNfb2JqZWN0c1tpXS5vZmZz ZXQ7Cj4+ICAgCQl9Cj4+IEBAIC0yMDk0LDkgKzIxMzMsMTIgQEAgZHJtX2ludGVsX3VwZGF0ZV9i dWZmZXJfb2Zmc2V0czIgKGRybV9pbnRlbF9idWZtZ3JfZ2VtICpidWZtZ3JfZ2VtKQo+Pgo+PiAg IAkJLyogVXBkYXRlIHRoZSBidWZmZXIgb2Zmc2V0ICovCj4+ICAgCQlpZiAoYnVmbWdyX2dlbS0+ ZXhlYzJfb2JqZWN0c1tpXS5vZmZzZXQgIT0gYm8tPm9mZnNldDY0KSB7Cj4+IC0JCQlEQkcoIkJP ICVkICglcykgbWlncmF0ZWQ6IDB4JTA4bHggLT4gMHglMDhsbHhcbiIsCj4+IC0JCQkgICAgYm9f Z2VtLT5nZW1faGFuZGxlLCBib19nZW0tPm5hbWUsIGJvLT5vZmZzZXQ2NCwKPj4gLQkJCSAgICAo dW5zaWduZWQgbG9uZyBsb25nKWJ1Zm1ncl9nZW0tPmV4ZWMyX29iamVjdHNbaV0ub2Zmc2V0KTsK Pj4gKwkJCURCRygiQk8gJWQgKCVzKSBtaWdyYXRlZDogMHglMDh4ICUwOHggLT4gMHglMDh4ICUw OHhcbiIsCj4+ICsJCQkgICAgYm9fZ2VtLT5nZW1faGFuZGxlLCBib19nZW0tPm5hbWUsCj4+ICsJ CQkgICAgdXBwZXJfMzJfYml0cyhiby0+b2Zmc2V0NjQpLAo+PiArCQkJICAgIGxvd2VyXzMyX2Jp dHMoYm8tPm9mZnNldDY0KSwKPj4gKwkJCSAgICB1cHBlcl8zMl9iaXRzKGJ1Zm1ncl9nZW0tPmV4 ZWMyX29iamVjdHNbaV0ub2Zmc2V0KSwKPj4gKwkJCSAgICBsb3dlcl8zMl9iaXRzKGJ1Zm1ncl9n ZW0tPmV4ZWMyX29iamVjdHNbaV0ub2Zmc2V0KSk7Cj4+ICAgCQkJYm8tPm9mZnNldDY0ID0gYnVm bWdyX2dlbS0+ZXhlYzJfb2JqZWN0c1tpXS5vZmZzZXQ7Cj4+ICAgCQkJYm8tPm9mZnNldCA9IGJ1 Zm1ncl9nZW0tPmV4ZWMyX29iamVjdHNbaV0ub2Zmc2V0Owo+PiAgIAkJfQo+PiBAQCAtMjQ4MSw2 ICsyNTIzLDcgQEAgZHJtX2ludGVsX2JvX2dlbV9jcmVhdGVfZnJvbV9wcmltZShkcm1faW50ZWxf YnVmbWdyICpidWZtZ3IsIGludCBwcmltZV9mZCwgaW50IHMKPj4gICAJYm9fZ2VtLT51c2VkX2Fz X3JlbG9jX3RhcmdldCA9IGZhbHNlOwo+PiAgIAlib19nZW0tPmhhc19lcnJvciA9IGZhbHNlOwo+ PiAgIAlib19nZW0tPnJldXNhYmxlID0gZmFsc2U7Cj4+ICsJYm9fZ2VtLT51c2VfNDhiX2FkZHJl c3NfcmFuZ2UgPSBmYWxzZTsKPj4KPj4gICAJRFJNSU5JVExJU1RIRUFEKCZib19nZW0tPnZtYV9s aXN0KTsKPj4gICAJRFJNTElTVEFERFRBSUwoJmJvX2dlbS0+bmFtZV9saXN0LCAmYnVmbWdyX2dl bS0+bmFtZWQpOwo+PiBAQCAtMzI3OCw2ICszMzIxLDEzIEBAIGRybV9pbnRlbF9idWZtZ3JfZ2Vt X2luaXQoaW50IGZkLCBpbnQgYmF0Y2hfc2l6ZSkKPj4gICAJCX0KPj4gICAJfQo+Pgo+PiArCWlm IChidWZtZ3JfZ2VtLT5nZW4gPj0gOCkgewo+PiArCQlncC5wYXJhbSA9IEk5MTVfUEFSQU1fSEFT X0FMSUFTSU5HX1BQR1RUOwo+PiArCQlyZXQgPSBkcm1Jb2N0bChidWZtZ3JfZ2VtLT5mZCwgRFJN X0lPQ1RMX0k5MTVfR0VUUEFSQU0sICZncCk7Cj4+ICsJCWlmIChyZXQgPT0gMCAmJiAqZ3AudmFs dWUgPT0gMykKPj4gKwkJCWJ1Zm1ncl9nZW0tPmJ1Zm1nci5ib191c2VfNDhiX2FkZHJlc3NfcmFu Z2UgPSBkcm1faW50ZWxfZ2VtX2JvX3VzZV80OGJfYWRkcmVzc19yYW5nZTsKPj4gKwl9Cj4+ICsK Pj4gICAJLyogTGV0J3MgZ28gd2l0aCBvbmUgcmVsb2NhdGlvbiBwZXIgZXZlcnkgMiBkd29yZHMg KGJ1dCByb3VuZCBkb3duIGEgYml0Cj4+ICAgCSAqIHNpbmNlIGEgcG93ZXIgb2YgdHdvIHdpbGwg bWVhbiBhbiBleHRyYSBwYWdlIGFsbG9jYXRpb24gZm9yIHRoZSByZWxvYwo+PiAgIAkgKiBidWZm ZXIpLgo+PiBkaWZmIC0tZ2l0IGEvaW50ZWwvaW50ZWxfYnVmbWdyX3ByaXYuaCBiL2ludGVsL2lu dGVsX2J1Zm1ncl9wcml2LmgKPj4gaW5kZXggNTllYmQxOC4uNWMxN2ZmYiAxMDA2NDQKPj4gLS0t IGEvaW50ZWwvaW50ZWxfYnVmbWdyX3ByaXYuaAo+PiArKysgYi9pbnRlbC9pbnRlbF9idWZtZ3Jf cHJpdi5oCj4+IEBAIC0xNTIsNiArMTUyLDIwIEBAIHN0cnVjdCBfZHJtX2ludGVsX2J1Zm1nciB7 Cj4+ICAgCXZvaWQgKCpkZXN0cm95KSAoZHJtX2ludGVsX2J1Zm1nciAqYnVmbWdyKTsKPj4KPj4g ICAJLyoqCj4+ICsJICogSW5kaWNhdGUgaWYgdGhlIGJ1ZmZlciBjYW4gYmUgcGxhY2VkIGFueXdo ZXJlIGluIHRoZSBmdWxsIHBwZ3R0Cj4+ICsJICogYWRkcmVzcyByYW5nZSAoMl40OCkuCj4+ICsJ ICoKPj4gKwkgKiBBbnkgcmVzb3VyY2UgdXNlZCB3aXRoIGZsYXQvaGVhcGxlc3MgKDB4MDAwMDAw MDAtMHhmZmZmZjAwMCkKPj4gKwkgKiBHZW5lcmFsIFN0YXRlIEhlYXAgKEdTSCkgb3IgSW50cnVj dGlvbnMgU3RhdGUgSGVhcCAoSVNIKSBtdXN0Cj4+ICsJICogYmUgaW4gYSAzMi1iaXQgcmFuZ2Uu IDQ4LWJpdCByYW5nZSB3aWxsIG9ubHkgYmUgdXNlZCB3aGVuIGV4cGxpY2l0bHkKPj4gKwkgKiBy ZXF1ZXN0ZWQuCj4+ICsJICoKPj4gKwkgKiBccGFyYW0gYm8gQnVmZmVyIHRvIHNldCB0aGUgdXNl XzQ4Yl9hZGRyZXNzX3JhbmdlIGZsYWcuCj4+ICsJICogXHBhcmFtIGVuYWJsZSBUaGUgZmxhZyB2 YWx1ZS4KPj4gKwkgKi8KPj4gKwl2b2lkICgqYm9fdXNlXzQ4Yl9hZGRyZXNzX3JhbmdlKSAoZHJt X2ludGVsX2JvICpibywgdWludDMyX3QgZW5hYmxlKTsKPj4gKwo+PiArCS8qKgo+PiAgIAkgKiBB ZGQgcmVsb2NhdGlvbiBlbnRyeSBpbiByZWxvY19idWYsIHdoaWNoIHdpbGwgYmUgdXBkYXRlZCB3 aXRoIHRoZQo+PiAgIAkgKiB0YXJnZXQgYnVmZmVyJ3MgcmVhbCBvZmZzZXQgb24gb24gY29tbWFu ZCBzdWJtaXNzaW9uLgo+PiAgIAkgKgo+PiAtLQo+PiAyLjUuMAo+PgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRy aS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=