From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?utf-8?Q?Micha=C5=82?= Winiarski Subject: Re: [PATCH v4 1/2] intel: 48b ppgtt support (EXEC_OBJECT_SUPPORTS_48B_ADDRESS flag) Date: Mon, 14 Sep 2015 15:54:04 +0200 Message-ID: <20150914135403.GA8219@mwiniars-desk1.igk.intel.com> References: <1441290239-31462-1-git-send-email-michel.thierry@intel.com> <1441290239-31462-2-git-send-email-michel.thierry@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1441290239-31462-2-git-send-email-michel.thierry@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Michel Thierry Cc: intel-gfx@lists.freedesktop.org, Ben Widawsky , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBTZXAgMDMsIDIwMTUgYXQgMDM6MjM6NThQTSArMDEwMCwgTWljaGVsIFRoaWVycnkg d3JvdGU6Cj4gR2VuOCsgc3VwcG9ydHMgNDgtYml0IHZpcnR1YWwgYWRkcmVzc2VzLCBidXQgc29t ZSBvYmplY3RzIG11c3QgYWx3YXlzIGJlCj4gYWxsb2NhdGVkIGluc2lkZSB0aGUgMzItYml0IGFk ZHJlc3MgcmFuZ2UuCj4gCj4gSW4gc3BlY2lmaWMsIGFueSByZXNvdXJjZSB1c2VkIHdpdGggZmxh dC9oZWFwbGVzcyAoMHgwMDAwMDAwMC0weGZmZmZmMDAwKQo+IEdlbmVyYWwgU3RhdGUgSGVhcCAo R1NIKSBvciBJbnN0cnVjdGlvbiBTdGF0ZSBIZWFwIChJU0gpIG11c3QgYmUgaW4gYQo+IDMyLWJp dCByYW5nZSwgYmVjYXVzZSB0aGUgR2VuZXJhbCBTdGF0ZSBPZmZzZXQgYW5kIEluc3RydWN0aW9u IFN0YXRlIE9mZnNldAo+IGFyZSBsaW1pdGVkIHRvIDMyLWJpdHMuCj4gCj4gVGhlIGk5MTUgZHJp dmVyIGhhcyBiZWVuIG1vZGlmaWVkIHRvIHByb3ZpZGUgYSBmbGFnIHRvIHNldCB3aGVuIHRoZSA0 R0IKPiBsaW1pdCBpcyBub3QgbmVjZXNzYXJ5IGluIGEgZ2l2ZW4gYm8gKEVYRUNfT0JKRUNUX1NV UFBPUlRTXzQ4Ql9BRERSRVNTKS4KPiA0OC1iaXQgcmFuZ2Ugd2lsbCBvbmx5IGJlIHVzZWQgd2hl biBleHBsaWNpdGx5IHJlcXVlc3RlZC4KPiAKPiBDYWxsZXJzIHRvIHRoZSBleGlzdGluZyBkcm1f aW50ZWxfYm9fZW1pdF9yZWxvYyBmdW5jdGlvbiBzaG91bGQgc2V0IHRoZQo+IHVzZV80OGJfYWRk cmVzc19yYW5nZSBmbGFnIGJlZm9yZWhhbmQsIGluIG9yZGVyIHRvIHVzZSBmdWxsIHBwZ3R0IHJh bmdlLgo+IAo+IHYyOiBNYWtlIHNldC9jbGVhciBmdW5jdGlvbnMgbm9wcyBvbiBwcmUtZ2VuOCBw bGF0Zm9ybXMsIGFuZCB1c2UgdGhlbQo+ICAgICBpbnRlcm5hbGx5IGluIGVtaXRfcmVsb2MgZnVu Y3Rpb25zIChCZW4pCj4gICAgIHMvNDhCQUREUkVTUy80OEJfQUREUkVTUy8gKERhdmUpCj4gdjM6 IEtlZXAgc2V0L2NsZWFyIGZ1bmN0aW9ucyBpbnRlcm5hbCwgbm8tb25lIG5lZWRzIHRvIHVzZSB0 aGVtIGRpcmVjdGx5Lgo+IHY0OiBEb24ndCBzZXQgNDhiaXQtc3VwcG9ydCBmbGFnIGluIGVtaXQg cmVsb2MsIGNoZWNrIGZvciBwcGd0dCB0eXBlCj4gICAgIGJlZm9yZSBlbmFibGluZyBzZXQvY2xl YXIgZnVuY3Rpb24sIHByaW50IGZ1bGwgb2Zmc2V0cyBpbiBkZWJ1Zwo+ICAgICBzdGF0ZW1lbnRz LCB1c2luZyBwb3J0IG9mIGxvd2VyXzMyX2JpdHMgYW5kIHVwcGVyXzMyX2JpdHMgZnJvbSBsaW51 eAo+ICAgICBrZXJuZWwgKE1pY2hhxYIpCj4gCj4gUmVmZXJlbmNlczogaHR0cDovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9hcmNoaXZlcy9pbnRlbC1nZngvMjAxNS1KdWx5LzA3MjYxMi5odG1sCj4g Q2M6IEJlbiBXaWRhd3NreSA8YmVuQGJ3aWRhd3NrLm5ldD4KPiBDYzogTWljaGHFgiBXaW5pYXJz a2kgPG1pY2hhbC53aW5pYXJza2lAaW50ZWwuY29tPgoKK0tyaXN0aWFuCgpMR1RNLgpBY2tlZC1i eTogTWljaGHFgiBXaW5pYXJza2kgPG1pY2hhbC53aW5pYXJza2lAaW50ZWwuY29tPgoKPiBTaWdu ZWQtb2ZmLWJ5OiBNaWNoZWwgVGhpZXJyeSA8bWljaGVsLnRoaWVycnlAaW50ZWwuY29tPgo+IC0t LQo+ICBpbmNsdWRlL2RybS9pOTE1X2RybS5oICAgIHwgIDMgKy0KPiAgaW50ZWwvaW50ZWxfYnVm bWdyLmMgICAgICB8IDExICsrKysrKwo+ICBpbnRlbC9pbnRlbF9idWZtZ3IuaCAgICAgIHwgIDEg Kwo+ICBpbnRlbC9pbnRlbF9idWZtZ3JfZ2VtLmMgIHwgODggKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KPiAgaW50ZWwvaW50ZWxfYnVmbWdyX3ByaXYuaCB8 IDE0ICsrKysrKysrCj4gIDUgZmlsZXMgY2hhbmdlZCwgOTcgaW5zZXJ0aW9ucygrKSwgMjAgZGVs ZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2k5MTVfZHJtLmggYi9pbmNs dWRlL2RybS9pOTE1X2RybS5oCj4gaW5kZXggZGVkNDNiMS4uNDI2YjI1YyAxMDA2NDQKPiAtLS0g YS9pbmNsdWRlL2RybS9pOTE1X2RybS5oCj4gKysrIGIvaW5jbHVkZS9kcm0vaTkxNV9kcm0uaAo+ IEBAIC02ODAsNyArNjgwLDggQEAgc3RydWN0IGRybV9pOTE1X2dlbV9leGVjX29iamVjdDIgewo+ ICAjZGVmaW5lIEVYRUNfT0JKRUNUX05FRURTX0ZFTkNFICgxPDwwKQo+ICAjZGVmaW5lIEVYRUNf T0JKRUNUX05FRURTX0dUVAkoMTw8MSkKPiAgI2RlZmluZSBFWEVDX09CSkVDVF9XUklURQkoMTw8 MikKPiAtI2RlZmluZSBfX0VYRUNfT0JKRUNUX1VOS05PV05fRkxBR1MgLShFWEVDX09CSkVDVF9X UklURTw8MSkKPiArI2RlZmluZSBFWEVDX09CSkVDVF9TVVBQT1JUU180OEJfQUREUkVTUyAoMTw8 MykKPiArI2RlZmluZSBfX0VYRUNfT0JKRUNUX1VOS05PV05fRkxBR1MgLShFWEVDX09CSkVDVF9T VVBQT1JUU180OEJfQUREUkVTUzw8MSkKPiAgCV9fdTY0IGZsYWdzOwo+ICAKPiAgCV9fdTY0IHJz dmQxOwo+IGRpZmYgLS1naXQgYS9pbnRlbC9pbnRlbF9idWZtZ3IuYyBiL2ludGVsL2ludGVsX2J1 Zm1nci5jCj4gaW5kZXggMTRlYTlmOS4uMDg1NmU2MCAxMDA2NDQKPiAtLS0gYS9pbnRlbC9pbnRl bF9idWZtZ3IuYwo+ICsrKyBiL2ludGVsL2ludGVsX2J1Zm1nci5jCj4gQEAgLTI5Myw2ICsyOTMs MTcgQEAgZHJtX2ludGVsX2JvX21hZHZpc2UoZHJtX2ludGVsX2JvICpibywgaW50IG1hZHYpCj4g IH0KPiAgCj4gIGludAo+ICtkcm1faW50ZWxfYm9fdXNlXzQ4Yl9hZGRyZXNzX3JhbmdlKGRybV9p bnRlbF9ibyAqYm8sIHVpbnQzMl90IGVuYWJsZSkKPiArewo+ICsJaWYgKGJvLT5idWZtZ3ItPmJv X3VzZV80OGJfYWRkcmVzc19yYW5nZSkgewo+ICsJCWJvLT5idWZtZ3ItPmJvX3VzZV80OGJfYWRk cmVzc19yYW5nZShibywgZW5hYmxlKTsKPiArCQlyZXR1cm4gMDsKPiArCX0KPiArCj4gKwlyZXR1 cm4gLUVOT0RFVjsKPiArfQo+ICsKPiAraW50Cj4gIGRybV9pbnRlbF9ib19yZWZlcmVuY2VzKGRy bV9pbnRlbF9ibyAqYm8sIGRybV9pbnRlbF9ibyAqdGFyZ2V0X2JvKQo+ICB7Cj4gIAlyZXR1cm4g Ym8tPmJ1Zm1nci0+Ym9fcmVmZXJlbmNlcyhibywgdGFyZ2V0X2JvKTsKPiBkaWZmIC0tZ2l0IGEv aW50ZWwvaW50ZWxfYnVmbWdyLmggYi9pbnRlbC9pbnRlbF9idWZtZ3IuaAo+IGluZGV4IDk1ZWVj YjguLmExNGM3OGYgMTAwNjQ0Cj4gLS0tIGEvaW50ZWwvaW50ZWxfYnVmbWdyLmgKPiArKysgYi9p bnRlbC9pbnRlbF9idWZtZ3IuaAo+IEBAIC0xNjQsNiArMTY0LDcgQEAgaW50IGRybV9pbnRlbF9i b19nZXRfdGlsaW5nKGRybV9pbnRlbF9ibyAqYm8sIHVpbnQzMl90ICogdGlsaW5nX21vZGUsCj4g IGludCBkcm1faW50ZWxfYm9fZmxpbmsoZHJtX2ludGVsX2JvICpibywgdWludDMyX3QgKiBuYW1l KTsKPiAgaW50IGRybV9pbnRlbF9ib19idXN5KGRybV9pbnRlbF9ibyAqYm8pOwo+ICBpbnQgZHJt X2ludGVsX2JvX21hZHZpc2UoZHJtX2ludGVsX2JvICpibywgaW50IG1hZHYpOwo+ICtpbnQgZHJt X2ludGVsX2JvX3VzZV80OGJfYWRkcmVzc19yYW5nZShkcm1faW50ZWxfYm8gKmJvLCB1aW50MzJf dCBlbmFibGUpOwo+ICAKPiAgaW50IGRybV9pbnRlbF9ib19kaXNhYmxlX3JldXNlKGRybV9pbnRl bF9ibyAqYm8pOwo+ICBpbnQgZHJtX2ludGVsX2JvX2lzX3JldXNhYmxlKGRybV9pbnRlbF9ibyAq Ym8pOwo+IGRpZmYgLS1naXQgYS9pbnRlbC9pbnRlbF9idWZtZ3JfZ2VtLmMgYi9pbnRlbC9pbnRl bF9idWZtZ3JfZ2VtLmMKPiBpbmRleCAyNzIzZTIxLi4wOWQ4MmQyIDEwMDY0NAo+IC0tLSBhL2lu dGVsL2ludGVsX2J1Zm1ncl9nZW0uYwo+ICsrKyBiL2ludGVsL2ludGVsX2J1Zm1ncl9nZW0uYwo+ IEBAIC04Myw2ICs4MywyMiBAQAo+ICAjZGVmaW5lIEFSUkFZX1NJWkUoeCkgKHNpemVvZih4KSAv IHNpemVvZigoeClbMF0pKQo+ICAjZGVmaW5lIE1BWDIoQSwgQikgKChBKSA+IChCKSA/IChBKSA6 IChCKSkKPiAgCj4gKy8qKgo+ICsgKiB1cHBlcl8zMl9iaXRzIC0gcmV0dXJuIGJpdHMgMzItNjMg b2YgYSBudW1iZXIKPiArICogQG46IHRoZSBudW1iZXIgd2UncmUgYWNjZXNzaW5nCj4gKyAqCj4g KyAqIEEgYmFzaWMgc2hpZnQtcmlnaHQgb2YgYSA2NC0gb3IgMzItYml0IHF1YW50aXR5LiAgVXNl IHRoaXMgdG8gc3VwcHJlc3MKPiArICogdGhlICJyaWdodCBzaGlmdCBjb3VudCA+PSB3aWR0aCBv ZiB0eXBlIiB3YXJuaW5nIHdoZW4gdGhhdCBxdWFudGl0eSBpcwo+ICsgKiAzMi1iaXRzLgo+ICsg Ki8KPiArI2RlZmluZSB1cHBlcl8zMl9iaXRzKG4pICgoX191MzIpKCgobikgPj4gMTYpID4+IDE2 KSkKPiArCj4gKy8qKgo+ICsgKiBsb3dlcl8zMl9iaXRzIC0gcmV0dXJuIGJpdHMgMC0zMSBvZiBh IG51bWJlcgo+ICsgKiBAbjogdGhlIG51bWJlciB3ZSdyZSBhY2Nlc3NpbmcKPiArICovCj4gKyNk ZWZpbmUgbG93ZXJfMzJfYml0cyhuKSAoKF9fdTMyKShuKSkKPiArCj4gIHR5cGVkZWYgc3RydWN0 IF9kcm1faW50ZWxfYm9fZ2VtIGRybV9pbnRlbF9ib19nZW07Cj4gIAo+ICBzdHJ1Y3QgZHJtX2lu dGVsX2dlbV9ib19idWNrZXQgewo+IEBAIC0yMzcsNiArMjUzLDE1IEBAIHN0cnVjdCBfZHJtX2lu dGVsX2JvX2dlbSB7Cj4gIAlib29sIGlzX3VzZXJwdHI7Cj4gIAo+ICAJLyoqCj4gKwkgKiBCb29s ZWFuIG9mIHdoZXRoZXIgdGhpcyBidWZmZXIgY2FuIGJlIHBsYWNlZCBpbiB0aGUgZnVsbCA0OC1i aXQKPiArCSAqIGFkZHJlc3MgcmFuZ2Ugb24gZ2VuOCsuCj4gKwkgKgo+ICsJICogQnkgZGVmYXVs dCwgYnVmZmVycyB3aWxsIGJlIGtlZXAgaW4gYSAzMi1iaXQgcmFuZ2UsIHVubGVzcyB0aGlzCj4g KwkgKiBmbGFnIGlzIGV4cGxpY2l0bHkgc2V0Lgo+ICsJICovCj4gKwlib29sIHVzZV80OGJfYWRk cmVzc19yYW5nZTsKPiArCj4gKwkvKioKPiAgCSAqIFNpemUgaW4gYnl0ZXMgb2YgdGhpcyBidWZm ZXIgYW5kIGl0cyByZWxvY2F0aW9uIGRlc2NlbmRlbnRzLgo+ICAJICoKPiAgCSAqIFVzZWQgdG8g YXZvaWQgY29zdGx5IHRyZWUgd2Fsa2luZyBpbgo+IEBAIC0zOTUsMTQgKzQyMCwxNiBAQCBkcm1f aW50ZWxfZ2VtX2R1bXBfdmFsaWRhdGlvbl9saXN0KGRybV9pbnRlbF9idWZtZ3JfZ2VtICpidWZt Z3JfZ2VtKQo+ICAJCQlkcm1faW50ZWxfYm9fZ2VtICp0YXJnZXRfZ2VtID0KPiAgCQkJICAgIChk cm1faW50ZWxfYm9fZ2VtICopIHRhcmdldF9ibzsKPiAgCj4gLQkJCURCRygiJTJkOiAlZCAoJXMp QDB4JTA4bGx4IC0+ICIKPiAtCQkJICAgICIlZCAoJXMpQDB4JTA4bHggKyAweCUwOHhcbiIsCj4g KwkJCURCRygiJTJkOiAlZCAoJXMpQDB4JTA4eCAlMDh4IC0+ICIKPiArCQkJICAgICIlZCAoJXMp QDB4JTA4eCAlMDh4ICsgMHglMDh4XG4iLAo+ICAJCQkgICAgaSwKPiAgCQkJICAgIGJvX2dlbS0+ Z2VtX2hhbmRsZSwgYm9fZ2VtLT5uYW1lLAo+IC0JCQkgICAgKHVuc2lnbmVkIGxvbmcgbG9uZyli b19nZW0tPnJlbG9jc1tqXS5vZmZzZXQsCj4gKwkJCSAgICB1cHBlcl8zMl9iaXRzKGJvX2dlbS0+ cmVsb2NzW2pdLm9mZnNldCksCj4gKwkJCSAgICBsb3dlcl8zMl9iaXRzKGJvX2dlbS0+cmVsb2Nz W2pdLm9mZnNldCksCj4gIAkJCSAgICB0YXJnZXRfZ2VtLT5nZW1faGFuZGxlLAo+ICAJCQkgICAg dGFyZ2V0X2dlbS0+bmFtZSwKPiAtCQkJICAgIHRhcmdldF9iby0+b2Zmc2V0NjQsCj4gKwkJCSAg ICB1cHBlcl8zMl9iaXRzKHRhcmdldF9iby0+b2Zmc2V0NjQpLAo+ICsJCQkgICAgbG93ZXJfMzJf Yml0cyh0YXJnZXRfYm8tPm9mZnNldDY0KSwKPiAgCQkJICAgIGJvX2dlbS0+cmVsb2NzW2pdLmRl bHRhKTsKPiAgCQl9Cj4gIAl9Cj4gQEAgLTQ2OCwxMSArNDk1LDE1IEBAIGRybV9pbnRlbF9hZGRf dmFsaWRhdGVfYnVmZmVyMihkcm1faW50ZWxfYm8gKmJvLCBpbnQgbmVlZF9mZW5jZSkKPiAgCWRy bV9pbnRlbF9idWZtZ3JfZ2VtICpidWZtZ3JfZ2VtID0gKGRybV9pbnRlbF9idWZtZ3JfZ2VtICop Ym8tPmJ1Zm1ncjsKPiAgCWRybV9pbnRlbF9ib19nZW0gKmJvX2dlbSA9IChkcm1faW50ZWxfYm9f Z2VtICopYm87Cj4gIAlpbnQgaW5kZXg7Cj4gKwlpbnQgZmxhZ3MgPSAwOwo+ICsKPiArCWlmIChu ZWVkX2ZlbmNlKQo+ICsJCWZsYWdzIHw9IEVYRUNfT0JKRUNUX05FRURTX0ZFTkNFOwo+ICsJaWYg KGJvX2dlbS0+dXNlXzQ4Yl9hZGRyZXNzX3JhbmdlKQo+ICsJCWZsYWdzIHw9IEVYRUNfT0JKRUNU X1NVUFBPUlRTXzQ4Ql9BRERSRVNTOwo+ICAKPiAgCWlmIChib19nZW0tPnZhbGlkYXRlX2luZGV4 ICE9IC0xKSB7Cj4gLQkJaWYgKG5lZWRfZmVuY2UpCj4gLQkJCWJ1Zm1ncl9nZW0tPmV4ZWMyX29i amVjdHNbYm9fZ2VtLT52YWxpZGF0ZV9pbmRleF0uZmxhZ3MgfD0KPiAtCQkJCUVYRUNfT0JKRUNU X05FRURTX0ZFTkNFOwo+ICsJCWJ1Zm1ncl9nZW0tPmV4ZWMyX29iamVjdHNbYm9fZ2VtLT52YWxp ZGF0ZV9pbmRleF0uZmxhZ3MgfD0gZmxhZ3M7Cj4gIAkJcmV0dXJuOwo+ICAJfQo+ICAKPiBAQCAt NTAxLDEzICs1MzIsOSBAQCBkcm1faW50ZWxfYWRkX3ZhbGlkYXRlX2J1ZmZlcjIoZHJtX2ludGVs X2JvICpibywgaW50IG5lZWRfZmVuY2UpCj4gIAlidWZtZ3JfZ2VtLT5leGVjMl9vYmplY3RzW2lu ZGV4XS5hbGlnbm1lbnQgPSBiby0+YWxpZ247Cj4gIAlidWZtZ3JfZ2VtLT5leGVjMl9vYmplY3Rz W2luZGV4XS5vZmZzZXQgPSAwOwo+ICAJYnVmbWdyX2dlbS0+ZXhlY19ib3NbaW5kZXhdID0gYm87 Cj4gLQlidWZtZ3JfZ2VtLT5leGVjMl9vYmplY3RzW2luZGV4XS5mbGFncyA9IDA7Cj4gKwlidWZt Z3JfZ2VtLT5leGVjMl9vYmplY3RzW2luZGV4XS5mbGFncyA9IGZsYWdzOwo+ICAJYnVmbWdyX2dl bS0+ZXhlYzJfb2JqZWN0c1tpbmRleF0ucnN2ZDEgPSAwOwo+ICAJYnVmbWdyX2dlbS0+ZXhlYzJf b2JqZWN0c1tpbmRleF0ucnN2ZDIgPSAwOwo+IC0JaWYgKG5lZWRfZmVuY2UpIHsKPiAtCQlidWZt Z3JfZ2VtLT5leGVjMl9vYmplY3RzW2luZGV4XS5mbGFncyB8PQo+IC0JCQlFWEVDX09CSkVDVF9O RUVEU19GRU5DRTsKPiAtCX0KPiAgCWJ1Zm1ncl9nZW0tPmV4ZWNfY291bnQrKzsKPiAgfQo+ICAK PiBAQCAtNzgwLDYgKzgwNyw3IEBAIHJldHJ5Ogo+ICAJYm9fZ2VtLT51c2VkX2FzX3JlbG9jX3Rh cmdldCA9IGZhbHNlOwo+ICAJYm9fZ2VtLT5oYXNfZXJyb3IgPSBmYWxzZTsKPiAgCWJvX2dlbS0+ cmV1c2FibGUgPSB0cnVlOwo+ICsJYm9fZ2VtLT51c2VfNDhiX2FkZHJlc3NfcmFuZ2UgPSBmYWxz ZTsKPiAgCj4gIAlkcm1faW50ZWxfYm9fZ2VtX3NldF9pbl9hcGVydHVyZV9zaXplKGJ1Zm1ncl9n ZW0sIGJvX2dlbSwgYWxpZ25tZW50KTsKPiAgCj4gQEAgLTkyNiw2ICs5NTQsNyBAQCBkcm1faW50 ZWxfZ2VtX2JvX2FsbG9jX3VzZXJwdHIoZHJtX2ludGVsX2J1Zm1nciAqYnVmbWdyLAo+ICAJYm9f Z2VtLT51c2VkX2FzX3JlbG9jX3RhcmdldCA9IGZhbHNlOwo+ICAJYm9fZ2VtLT5oYXNfZXJyb3Ig PSBmYWxzZTsKPiAgCWJvX2dlbS0+cmV1c2FibGUgPSBmYWxzZTsKPiArCWJvX2dlbS0+dXNlXzQ4 Yl9hZGRyZXNzX3JhbmdlID0gZmFsc2U7Cj4gIAo+ICAJZHJtX2ludGVsX2JvX2dlbV9zZXRfaW5f YXBlcnR1cmVfc2l6ZShidWZtZ3JfZ2VtLCBib19nZW0sIDApOwo+ICAKPiBAQCAtMTA4MSw2ICsx MTEwLDcgQEAgZHJtX2ludGVsX2JvX2dlbV9jcmVhdGVfZnJvbV9uYW1lKGRybV9pbnRlbF9idWZt Z3IgKmJ1Zm1nciwKPiAgCWJvX2dlbS0+Ym8uaGFuZGxlID0gb3Blbl9hcmcuaGFuZGxlOwo+ICAJ Ym9fZ2VtLT5nbG9iYWxfbmFtZSA9IGhhbmRsZTsKPiAgCWJvX2dlbS0+cmV1c2FibGUgPSBmYWxz ZTsKPiArCWJvX2dlbS0+dXNlXzQ4Yl9hZGRyZXNzX3JhbmdlID0gZmFsc2U7Cj4gIAo+ICAJbWVt Y2xlYXIoZ2V0X3RpbGluZyk7Cj4gIAlnZXRfdGlsaW5nLmhhbmRsZSA9IGJvX2dlbS0+Z2VtX2hh bmRsZTsKPiBAQCAtMTkzMCw2ICsxOTYwLDEzIEBAIGRvX2JvX2VtaXRfcmVsb2MoZHJtX2ludGVs X2JvICpibywgdWludDMyX3Qgb2Zmc2V0LAo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gK3N0YXRp YyB2b2lkCj4gK2RybV9pbnRlbF9nZW1fYm9fdXNlXzQ4Yl9hZGRyZXNzX3JhbmdlKGRybV9pbnRl bF9ibyAqYm8sIHVpbnQzMl90IGVuYWJsZSkKPiArewo+ICsJZHJtX2ludGVsX2JvX2dlbSAqYm9f Z2VtID0gKGRybV9pbnRlbF9ib19nZW0gKikgYm87Cj4gKwlib19nZW0tPnVzZV80OGJfYWRkcmVz c19yYW5nZSA9IGVuYWJsZTsKPiArfQo+ICsKPiAgc3RhdGljIGludAo+ICBkcm1faW50ZWxfZ2Vt X2JvX2VtaXRfcmVsb2MoZHJtX2ludGVsX2JvICpibywgdWludDMyX3Qgb2Zmc2V0LAo+ICAJCQkg ICAgZHJtX2ludGVsX2JvICp0YXJnZXRfYm8sIHVpbnQzMl90IHRhcmdldF9vZmZzZXQsCj4gQEAg LTIwNzMsMTAgKzIxMTAsMTIgQEAgZHJtX2ludGVsX3VwZGF0ZV9idWZmZXJfb2Zmc2V0cyhkcm1f aW50ZWxfYnVmbWdyX2dlbSAqYnVmbWdyX2dlbSkKPiAgCj4gIAkJLyogVXBkYXRlIHRoZSBidWZm ZXIgb2Zmc2V0ICovCj4gIAkJaWYgKGJ1Zm1ncl9nZW0tPmV4ZWNfb2JqZWN0c1tpXS5vZmZzZXQg IT0gYm8tPm9mZnNldDY0KSB7Cj4gLQkJCURCRygiQk8gJWQgKCVzKSBtaWdyYXRlZDogMHglMDhs eCAtPiAweCUwOGxseFxuIiwKPiAtCQkJICAgIGJvX2dlbS0+Z2VtX2hhbmRsZSwgYm9fZ2VtLT5u YW1lLCBiby0+b2Zmc2V0NjQsCj4gLQkJCSAgICAodW5zaWduZWQgbG9uZyBsb25nKWJ1Zm1ncl9n ZW0tPmV4ZWNfb2JqZWN0c1tpXS4KPiAtCQkJICAgIG9mZnNldCk7Cj4gKwkJCURCRygiQk8gJWQg KCVzKSBtaWdyYXRlZDogMHglMDh4ICUwOHggLT4gMHglMDh4ICUwOHhcbiIsCj4gKwkJCSAgICBi b19nZW0tPmdlbV9oYW5kbGUsIGJvX2dlbS0+bmFtZSwKPiArCQkJICAgIHVwcGVyXzMyX2JpdHMo Ym8tPm9mZnNldDY0KSwKPiArCQkJICAgIGxvd2VyXzMyX2JpdHMoYm8tPm9mZnNldDY0KSwKPiAr CQkJICAgIHVwcGVyXzMyX2JpdHMoYnVmbWdyX2dlbS0+ZXhlY19vYmplY3RzW2ldLm9mZnNldCks Cj4gKwkJCSAgICBsb3dlcl8zMl9iaXRzKGJ1Zm1ncl9nZW0tPmV4ZWNfb2JqZWN0c1tpXS5vZmZz ZXQpKTsKPiAgCQkJYm8tPm9mZnNldDY0ID0gYnVmbWdyX2dlbS0+ZXhlY19vYmplY3RzW2ldLm9m ZnNldDsKPiAgCQkJYm8tPm9mZnNldCA9IGJ1Zm1ncl9nZW0tPmV4ZWNfb2JqZWN0c1tpXS5vZmZz ZXQ7Cj4gIAkJfQo+IEBAIC0yMDk0LDkgKzIxMzMsMTIgQEAgZHJtX2ludGVsX3VwZGF0ZV9idWZm ZXJfb2Zmc2V0czIgKGRybV9pbnRlbF9idWZtZ3JfZ2VtICpidWZtZ3JfZ2VtKQo+ICAKPiAgCQkv KiBVcGRhdGUgdGhlIGJ1ZmZlciBvZmZzZXQgKi8KPiAgCQlpZiAoYnVmbWdyX2dlbS0+ZXhlYzJf b2JqZWN0c1tpXS5vZmZzZXQgIT0gYm8tPm9mZnNldDY0KSB7Cj4gLQkJCURCRygiQk8gJWQgKCVz KSBtaWdyYXRlZDogMHglMDhseCAtPiAweCUwOGxseFxuIiwKPiAtCQkJICAgIGJvX2dlbS0+Z2Vt X2hhbmRsZSwgYm9fZ2VtLT5uYW1lLCBiby0+b2Zmc2V0NjQsCj4gLQkJCSAgICAodW5zaWduZWQg bG9uZyBsb25nKWJ1Zm1ncl9nZW0tPmV4ZWMyX29iamVjdHNbaV0ub2Zmc2V0KTsKPiArCQkJREJH KCJCTyAlZCAoJXMpIG1pZ3JhdGVkOiAweCUwOHggJTA4eCAtPiAweCUwOHggJTA4eFxuIiwKPiAr CQkJICAgIGJvX2dlbS0+Z2VtX2hhbmRsZSwgYm9fZ2VtLT5uYW1lLAo+ICsJCQkgICAgdXBwZXJf MzJfYml0cyhiby0+b2Zmc2V0NjQpLAo+ICsJCQkgICAgbG93ZXJfMzJfYml0cyhiby0+b2Zmc2V0 NjQpLAo+ICsJCQkgICAgdXBwZXJfMzJfYml0cyhidWZtZ3JfZ2VtLT5leGVjMl9vYmplY3RzW2ld Lm9mZnNldCksCj4gKwkJCSAgICBsb3dlcl8zMl9iaXRzKGJ1Zm1ncl9nZW0tPmV4ZWMyX29iamVj dHNbaV0ub2Zmc2V0KSk7Cj4gIAkJCWJvLT5vZmZzZXQ2NCA9IGJ1Zm1ncl9nZW0tPmV4ZWMyX29i amVjdHNbaV0ub2Zmc2V0Owo+ICAJCQliby0+b2Zmc2V0ID0gYnVmbWdyX2dlbS0+ZXhlYzJfb2Jq ZWN0c1tpXS5vZmZzZXQ7Cj4gIAkJfQo+IEBAIC0yNDgxLDYgKzI1MjMsNyBAQCBkcm1faW50ZWxf Ym9fZ2VtX2NyZWF0ZV9mcm9tX3ByaW1lKGRybV9pbnRlbF9idWZtZ3IgKmJ1Zm1nciwgaW50IHBy aW1lX2ZkLCBpbnQgcwo+ICAJYm9fZ2VtLT51c2VkX2FzX3JlbG9jX3RhcmdldCA9IGZhbHNlOwo+ ICAJYm9fZ2VtLT5oYXNfZXJyb3IgPSBmYWxzZTsKPiAgCWJvX2dlbS0+cmV1c2FibGUgPSBmYWxz ZTsKPiArCWJvX2dlbS0+dXNlXzQ4Yl9hZGRyZXNzX3JhbmdlID0gZmFsc2U7Cj4gIAo+ICAJRFJN SU5JVExJU1RIRUFEKCZib19nZW0tPnZtYV9saXN0KTsKPiAgCURSTUxJU1RBRERUQUlMKCZib19n ZW0tPm5hbWVfbGlzdCwgJmJ1Zm1ncl9nZW0tPm5hbWVkKTsKPiBAQCAtMzI3OCw2ICszMzIxLDEz IEBAIGRybV9pbnRlbF9idWZtZ3JfZ2VtX2luaXQoaW50IGZkLCBpbnQgYmF0Y2hfc2l6ZSkKPiAg CQl9Cj4gIAl9Cj4gIAo+ICsJaWYgKGJ1Zm1ncl9nZW0tPmdlbiA+PSA4KSB7Cj4gKwkJZ3AucGFy YW0gPSBJOTE1X1BBUkFNX0hBU19BTElBU0lOR19QUEdUVDsKPiArCQlyZXQgPSBkcm1Jb2N0bChi dWZtZ3JfZ2VtLT5mZCwgRFJNX0lPQ1RMX0k5MTVfR0VUUEFSQU0sICZncCk7Cj4gKwkJaWYgKHJl dCA9PSAwICYmICpncC52YWx1ZSA9PSAzKQo+ICsJCQlidWZtZ3JfZ2VtLT5idWZtZ3IuYm9fdXNl XzQ4Yl9hZGRyZXNzX3JhbmdlID0gZHJtX2ludGVsX2dlbV9ib191c2VfNDhiX2FkZHJlc3NfcmFu Z2U7Cj4gKwl9Cj4gKwo+ICAJLyogTGV0J3MgZ28gd2l0aCBvbmUgcmVsb2NhdGlvbiBwZXIgZXZl cnkgMiBkd29yZHMgKGJ1dCByb3VuZCBkb3duIGEgYml0Cj4gIAkgKiBzaW5jZSBhIHBvd2VyIG9m IHR3byB3aWxsIG1lYW4gYW4gZXh0cmEgcGFnZSBhbGxvY2F0aW9uIGZvciB0aGUgcmVsb2MKPiAg CSAqIGJ1ZmZlcikuCj4gZGlmZiAtLWdpdCBhL2ludGVsL2ludGVsX2J1Zm1ncl9wcml2LmggYi9p bnRlbC9pbnRlbF9idWZtZ3JfcHJpdi5oCj4gaW5kZXggNTllYmQxOC4uNWMxN2ZmYiAxMDA2NDQK PiAtLS0gYS9pbnRlbC9pbnRlbF9idWZtZ3JfcHJpdi5oCj4gKysrIGIvaW50ZWwvaW50ZWxfYnVm bWdyX3ByaXYuaAo+IEBAIC0xNTIsNiArMTUyLDIwIEBAIHN0cnVjdCBfZHJtX2ludGVsX2J1Zm1n ciB7Cj4gIAl2b2lkICgqZGVzdHJveSkgKGRybV9pbnRlbF9idWZtZ3IgKmJ1Zm1ncik7Cj4gIAo+ ICAJLyoqCj4gKwkgKiBJbmRpY2F0ZSBpZiB0aGUgYnVmZmVyIGNhbiBiZSBwbGFjZWQgYW55d2hl cmUgaW4gdGhlIGZ1bGwgcHBndHQKPiArCSAqIGFkZHJlc3MgcmFuZ2UgKDJeNDgpLgo+ICsJICoK PiArCSAqIEFueSByZXNvdXJjZSB1c2VkIHdpdGggZmxhdC9oZWFwbGVzcyAoMHgwMDAwMDAwMC0w eGZmZmZmMDAwKQo+ICsJICogR2VuZXJhbCBTdGF0ZSBIZWFwIChHU0gpIG9yIEludHJ1Y3Rpb25z IFN0YXRlIEhlYXAgKElTSCkgbXVzdAo+ICsJICogYmUgaW4gYSAzMi1iaXQgcmFuZ2UuIDQ4LWJp dCByYW5nZSB3aWxsIG9ubHkgYmUgdXNlZCB3aGVuIGV4cGxpY2l0bHkKPiArCSAqIHJlcXVlc3Rl ZC4KPiArCSAqCj4gKwkgKiBccGFyYW0gYm8gQnVmZmVyIHRvIHNldCB0aGUgdXNlXzQ4Yl9hZGRy ZXNzX3JhbmdlIGZsYWcuCj4gKwkgKiBccGFyYW0gZW5hYmxlIFRoZSBmbGFnIHZhbHVlLgo+ICsJ ICovCj4gKwl2b2lkICgqYm9fdXNlXzQ4Yl9hZGRyZXNzX3JhbmdlKSAoZHJtX2ludGVsX2JvICpi bywgdWludDMyX3QgZW5hYmxlKTsKPiArCj4gKwkvKioKPiAgCSAqIEFkZCByZWxvY2F0aW9uIGVu dHJ5IGluIHJlbG9jX2J1Ziwgd2hpY2ggd2lsbCBiZSB1cGRhdGVkIHdpdGggdGhlCj4gIAkgKiB0 YXJnZXQgYnVmZmVyJ3MgcmVhbCBvZmZzZXQgb24gb24gY29tbWFuZCBzdWJtaXNzaW9uLgo+ICAJ ICoKPiAtLSAKPiAyLjUuMAo+IApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Ry aS1kZXZlbAo=