From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michel Thierry Subject: Re: [PATCH libdrm v3 1/2] intel: Add EXEC_OBJECT_SUPPORTS_48B_ADDRESS flag Date: Fri, 7 Aug 2015 12:36:03 +0100 Message-ID: <55C49823.9030509@intel.com> References: <1438940723-23084-1-git-send-email-michel.thierry@intel.com> <1438940723-23084-2-git-send-email-michel.thierry@intel.com> <20150807105638.GA7319@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: <20150807105638.GA7319@mwiniars-desk1.igk.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: =?UTF-8?Q?Micha=c5=82_Winiarski?= Cc: mesa-dev@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, Ben Widawsky , dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gOC83LzIwMTUgMTE6NTYgQU0sIE1pY2hhxYIgV2luaWFyc2tpIHdyb3RlOgo+IE9uIEZyaSwg QXVnIDA3LCAyMDE1IGF0IDEwOjQ1OjIxQU0gKzAxMDAsIE1pY2hlbCBUaGllcnJ5IHdyb3RlOgo+ PiBHZW44KyBzdXBwb3J0cyA0OC1iaXQgdmlydHVhbCBhZGRyZXNzZXMsIGJ1dCBzb21lIG9iamVj dHMgbXVzdCBhbHdheXMgYmUKPj4gYWxsb2NhdGVkIGluc2lkZSB0aGUgMzItYml0IGFkZHJlc3Mg cmFuZ2UuCj4+Cj4+IEluIHNwZWNpZmljLCBhbnkgcmVzb3VyY2UgdXNlZCB3aXRoIGZsYXQvaGVh cGxlc3MgKDB4MDAwMDAwMDAtMHhmZmZmZjAwMCkKPj4gR2VuZXJhbCBTdGF0ZSBIZWFwIChHU0gp IG9yIEluc3RydWN0aW9uIFN0YXRlIEhlYXAgKElTSCkgbXVzdCBiZSBpbiBhCj4+IDMyLWJpdCBy YW5nZSwgYmVjYXVzZSB0aGUgR2VuZXJhbCBTdGF0ZSBPZmZzZXQgYW5kIEluc3RydWN0aW9uIFN0 YXRlIE9mZnNldAo+PiBhcmUgbGltaXRlZCB0byAzMi1iaXRzLgo+Pgo+PiBUaGUgaTkxNSBkcml2 ZXIgaGFzIGJlZW4gbW9kaWZpZWQgdG8gcHJvdmlkZSBhIGZsYWcgdG8gc2V0IHdoZW4gdGhlIDRH Qgo+PiBsaW1pdCBpcyBub3QgbmVjZXNzYXJ5IGluIGEgZ2l2ZW4gYm8gKEVYRUNfT0JKRUNUX1NV UFBPUlRTXzQ4Ql9BRERSRVNTKS4KPj4gNDgtYml0IHJhbmdlIHdpbGwgb25seSBiZSB1c2VkIHdo ZW4gZXhwbGljaXRseSByZXF1ZXN0ZWQuCj4+Cj4+IENhbGxzIHRvIHRoZSBuZXcgZHJtX2ludGVs X2JvX2VtaXRfcmVsb2NfNDhiaXQgZnVuY3Rpb24gd2lsbCBoYXZlIHRoaXMgZmxhZwo+PiBzZXQg YXV0b21hdGljYWxseSwgd2hpbGUgY2FsbHMgdG8gZHJtX2ludGVsX2JvX2VtaXRfcmVsb2Mgd2ls bCBjbGVhciBpdC4KPj4KPj4gdjI6IE1ha2Ugc2V0L2NsZWFyIGZ1bmN0aW9ucyBub3BzIG9uIHBy ZS1nZW44IHBsYXRmb3JtcywgYW5kIHVzZSB0aGVtCj4+ICAgICAgaW50ZXJuYWxseSBpbiBlbWl0 X3JlbG9jIGZ1bmN0aW9ucyAoQmVuKQo+PiAgICAgIHMvNDhCQUREUkVTUy80OEJfQUREUkVTUy8g KERhdmUpCj4+IHYzOiBLZWVwIHNldC9jbGVhciBmdW5jdGlvbnMgaW50ZXJuYWwsIG5vLW9uZSBu ZWVkcyB0byB1c2UgdGhlbSBkaXJlY3RseS4KPj4KPj4gUmVmZXJlbmNlczogaHR0cDovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9hcmNoaXZlcy9pbnRlbC1nZngvMjAxNS1KdWx5LzA3MjYxMi5odG1s Cj4+IENjOiBCZW4gV2lkYXdza3kgPGJlbkBid2lkYXdzay5uZXQ+Cj4+IENjOiBEYXZlIEdvcmRv biA8ZGF2aWQucy5nb3Jkb25AaW50ZWwuY29tPgo+PiBTaWduZWQtb2ZmLWJ5OiBNaWNoZWwgVGhp ZXJyeSA8bWljaGVsLnRoaWVycnlAaW50ZWwuY29tPgo+PiAtLS0KPj4gICBpbmNsdWRlL2RybS9p OTE1X2RybS5oICAgIHwgIDMgKystCj4+ICAgaW50ZWwvaW50ZWxfYnVmbWdyLmMgICAgICB8IDE2 ICsrKysrKysrKysrKysrCj4+ICAgaW50ZWwvaW50ZWxfYnVmbWdyLmggICAgICB8ICA2ICsrKysr LQo+PiAgIGludGVsL2ludGVsX2J1Zm1ncl9nZW0uYyAgfCA1NCArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrLS0tLQo+PiAgIGludGVsL2ludGVsX2J1Zm1ncl9wcml2 LmggfCAxMSArKysrKysrKysrCj4+ICAgNSBmaWxlcyBjaGFuZ2VkLCA4NCBpbnNlcnRpb25zKCsp LCA2IGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vaTkxNV9kcm0u aCBiL2luY2x1ZGUvZHJtL2k5MTVfZHJtLmgKPj4gaW5kZXggZGVkNDNiMS4uNDI2YjI1YyAxMDA2 NDQKPj4gLS0tIGEvaW5jbHVkZS9kcm0vaTkxNV9kcm0uaAo+PiArKysgYi9pbmNsdWRlL2RybS9p OTE1X2RybS5oCj4+IEBAIC02ODAsNyArNjgwLDggQEAgc3RydWN0IGRybV9pOTE1X2dlbV9leGVj X29iamVjdDIgewo+PiAgICNkZWZpbmUgRVhFQ19PQkpFQ1RfTkVFRFNfRkVOQ0UgKDE8PDApCj4+ ICAgI2RlZmluZSBFWEVDX09CSkVDVF9ORUVEU19HVFQJKDE8PDEpCj4+ICAgI2RlZmluZSBFWEVD X09CSkVDVF9XUklURQkoMTw8MikKPj4gLSNkZWZpbmUgX19FWEVDX09CSkVDVF9VTktOT1dOX0ZM QUdTIC0oRVhFQ19PQkpFQ1RfV1JJVEU8PDEpCj4+ICsjZGVmaW5lIEVYRUNfT0JKRUNUX1NVUFBP UlRTXzQ4Ql9BRERSRVNTICgxPDwzKQo+PiArI2RlZmluZSBfX0VYRUNfT0JKRUNUX1VOS05PV05f RkxBR1MgLShFWEVDX09CSkVDVF9TVVBQT1JUU180OEJfQUREUkVTUzw8MSkKPj4gICAJX191NjQg ZmxhZ3M7Cj4+Cj4+ICAgCV9fdTY0IHJzdmQxOwo+PiBkaWZmIC0tZ2l0IGEvaW50ZWwvaW50ZWxf YnVmbWdyLmMgYi9pbnRlbC9pbnRlbF9idWZtZ3IuYwo+PiBpbmRleCAxNGVhOWY5Li4wYmQ1MTkx IDEwMDY0NAo+PiAtLS0gYS9pbnRlbC9pbnRlbF9idWZtZ3IuYwo+PiArKysgYi9pbnRlbC9pbnRl bF9idWZtZ3IuYwo+PiBAQCAtMjAyLDYgKzIwMiwyMiBAQCBkcm1faW50ZWxfYm9fZW1pdF9yZWxv Yyhkcm1faW50ZWxfYm8gKmJvLCB1aW50MzJfdCBvZmZzZXQsCj4+ICAgCQkJZHJtX2ludGVsX2Jv ICp0YXJnZXRfYm8sIHVpbnQzMl90IHRhcmdldF9vZmZzZXQsCj4+ICAgCQkJdWludDMyX3QgcmVh ZF9kb21haW5zLCB1aW50MzJfdCB3cml0ZV9kb21haW4pCj4+ICAgewo+PiArCWlmIChiby0+YnVm bWdyLT5ib19jbGVhcl9zdXBwb3J0c180OGJfYWRkcmVzcykKPj4gKwkJYm8tPmJ1Zm1nci0+Ym9f Y2xlYXJfc3VwcG9ydHNfNDhiX2FkZHJlc3ModGFyZ2V0X2JvKTsKPgo+IFRoaXMgaXMgYWx3YXlz IHRydWUgLSB5b3UgYXNzaWduIGZ1bmMgdG8gdGhpcyBmdW5jIHBvaW50ZXIgdW5jb25kaXRpb25h bGx5Lgo+IEFsc28gLSB3aHkgbm90IHJldHVybiBzb21lIG1lYW5pbmdmdWwgdmFsdWUgaWYgdGhl IHVzZXIgZG9lcyBub3QgaGF2ZQo+IGVuYWJsZV9wcGd0dD0zIHNldD8gWW91IGNhbiBnZXQgdGhh dCBmcm9tIEk5MTVfUEFSQU1fSEFTX0FMSUFTSU5HX1BQR1RUIHJpZ2h0Cj4gbm93LiBDaGVjayBm b3IgZ2VuID49IDggc2VlbXMgcmF0aGVyIGluYWRlcXVhdGUsIGFuZCBldmVuIHRoZW4geW91J3Jl IG5vdAo+IHJldHVybmluZyBhbnl0aGluZyB1c2VmdWwgdG8gdGhlIGNhbGxlci4KPgo+PiArCj4+ ICsJcmV0dXJuIGJvLT5idWZtZ3ItPmJvX2VtaXRfcmVsb2MoYm8sIG9mZnNldCwKPj4gKwkJCQkJ IHRhcmdldF9ibywgdGFyZ2V0X29mZnNldCwKPj4gKwkJCQkJIHJlYWRfZG9tYWlucywgd3JpdGVf ZG9tYWluKTsKPj4gK30KPj4gKwo+Cj4gVXNpbmcgZW1pdF9yZWxvYyB0byBzZXQgYSBCTyBmbGFn IHNlZW1zIGNvbmZ1c2luZyBhbmQgY2FuIGJlIGVycm9yIHByb25lLAo+IGVtaXRfcmVsb2MgY2Fu IGJlIGNhbGxlZCBtYW55IHRpbWVzIGFuZCBjYWxsZXIgbmVlZHMgdG8gYmUgY2FyZWZ1bCBhbmQg Y2FsbCB0aGUKPiByaWdodCBmdW5jdGlvbiBmb3IgZWFjaCByZWxvYy4KPgo+PiAraW50Cj4+ICtk cm1faW50ZWxfYm9fZW1pdF9yZWxvY180OGJpdChkcm1faW50ZWxfYm8gKmJvLCB1aW50MzJfdCBv ZmZzZXQsCj4+ICsJCQlkcm1faW50ZWxfYm8gKnRhcmdldF9ibywgdWludDMyX3QgdGFyZ2V0X29m ZnNldCwKPj4gKwkJCXVpbnQzMl90IHJlYWRfZG9tYWlucywgdWludDMyX3Qgd3JpdGVfZG9tYWlu KQo+PiArewo+PiArCWlmIChiby0+YnVmbWdyLT5ib19zZXRfc3VwcG9ydHNfNDhiX2FkZHJlc3Mp Cj4+ICsJCWJvLT5idWZtZ3ItPmJvX3NldF9zdXBwb3J0c180OGJfYWRkcmVzcyh0YXJnZXRfYm8p Owo+Cj4gU2FtZSBzaXR1YXRpb24gYXMgd2l0aCBjbGVhcl9zdXBwb3J0c180OGJfYWRkcmVzcy4K Pgo+PiArCj4+ICAgCXJldHVybiBiby0+YnVmbWdyLT5ib19lbWl0X3JlbG9jKGJvLCBvZmZzZXQs Cj4+ICAgCQkJCQkgdGFyZ2V0X2JvLCB0YXJnZXRfb2Zmc2V0LAo+PiAgIAkJCQkJIHJlYWRfZG9t YWlucywgd3JpdGVfZG9tYWluKTsKPj4gZGlmZiAtLWdpdCBhL2ludGVsL2ludGVsX2J1Zm1nci5o IGIvaW50ZWwvaW50ZWxfYnVmbWdyLmgKPj4gaW5kZXggMjg1OTE5ZS4uOGY5MWZmZSAxMDA2NDQK Pj4gLS0tIGEvaW50ZWwvaW50ZWxfYnVmbWdyLmgKPj4gKysrIGIvaW50ZWwvaW50ZWxfYnVmbWdy LmgKPj4gQEAgLTg3LDcgKzg3LDggQEAgc3RydWN0IF9kcm1faW50ZWxfYm8gewo+PiAgIAkvKioK Pj4gICAJICogTGFzdCBzZWVuIGNhcmQgdmlydHVhbCBhZGRyZXNzIChvZmZzZXQgZnJvbSB0aGUg YmVnaW5uaW5nIG9mIHRoZQo+PiAgIAkgKiBhcGVydHVyZSkgZm9yIHRoZSBvYmplY3QuICBUaGlz IHNob3VsZCBiZSB1c2VkIHRvIGZpbGwgcmVsb2NhdGlvbgo+PiAtCSAqIGVudHJpZXMgd2hlbiBj YWxsaW5nIGRybV9pbnRlbF9ib19lbWl0X3JlbG9jKCkKPj4gKwkgKiBlbnRyaWVzIHdoZW4gY2Fs bGluZyBkcm1faW50ZWxfYm9fZW1pdF9yZWxvYygpIG9yCj4+ICsJICogZHJtX2ludGVsX2JvX2Vt aXRfcmVsb2NfNDhiaXQoKQo+PiAgIAkgKi8KPj4gICAJdWludDY0X3Qgb2Zmc2V0NjQ7Cj4+ICAg fTsKPj4gQEAgLTE0Nyw2ICsxNDgsOSBAQCBpbnQgZHJtX2ludGVsX2J1Zm1ncl9jaGVja19hcGVy dHVyZV9zcGFjZShkcm1faW50ZWxfYm8gKiogYm9fYXJyYXksIGludCBjb3VudCk7Cj4+ICAgaW50 IGRybV9pbnRlbF9ib19lbWl0X3JlbG9jKGRybV9pbnRlbF9ibyAqYm8sIHVpbnQzMl90IG9mZnNl dCwKPj4gICAJCQkgICAgZHJtX2ludGVsX2JvICp0YXJnZXRfYm8sIHVpbnQzMl90IHRhcmdldF9v ZmZzZXQsCj4+ICAgCQkJICAgIHVpbnQzMl90IHJlYWRfZG9tYWlucywgdWludDMyX3Qgd3JpdGVf ZG9tYWluKTsKPj4gK2ludCBkcm1faW50ZWxfYm9fZW1pdF9yZWxvY180OGJpdChkcm1faW50ZWxf Ym8gKmJvLCB1aW50MzJfdCBvZmZzZXQsCj4+ICsJCQkJICBkcm1faW50ZWxfYm8gKnRhcmdldF9i bywgdWludDMyX3QgdGFyZ2V0X29mZnNldCwKPj4gKwkJCQkgIHVpbnQzMl90IHJlYWRfZG9tYWlu cywgdWludDMyX3Qgd3JpdGVfZG9tYWluKTsKPj4gICBpbnQgZHJtX2ludGVsX2JvX2VtaXRfcmVs b2NfZmVuY2UoZHJtX2ludGVsX2JvICpibywgdWludDMyX3Qgb2Zmc2V0LAo+PiAgIAkJCQkgIGRy bV9pbnRlbF9ibyAqdGFyZ2V0X2JvLAo+PiAgIAkJCQkgIHVpbnQzMl90IHRhcmdldF9vZmZzZXQs Cj4+IGRpZmYgLS1naXQgYS9pbnRlbC9pbnRlbF9idWZtZ3JfZ2VtLmMgYi9pbnRlbC9pbnRlbF9i dWZtZ3JfZ2VtLmMKPj4gaW5kZXggNDFkZTM5Ni4uNzEzZWQ0ZSAxMDA2NDQKPj4gLS0tIGEvaW50 ZWwvaW50ZWxfYnVmbWdyX2dlbS5jCj4+ICsrKyBiL2ludGVsL2ludGVsX2J1Zm1ncl9nZW0uYwo+ PiBAQCAtMTQwLDYgKzE0MCw3IEBAIHR5cGVkZWYgc3RydWN0IF9kcm1faW50ZWxfYnVmbWdyX2dl bSB7Cj4+ICAgfSBkcm1faW50ZWxfYnVmbWdyX2dlbTsKPj4KPj4gICAjZGVmaW5lIERSTV9JTlRF TF9SRUxPQ19GRU5DRSAoMTw8MCkKPj4gKyNkZWZpbmUgRFJNX0lOVEVMX1JFTE9DX1NVUFBPUlRT XzQ4Ql9BRERSRVNTICgyPDwwKQo+Cj4gV2h5IGFyZSB5b3UgZHVwbGljYXRpbmcgaW5mb3JtYXRp b24gYWJvdXQgc3VwcG9ydCBmb3IgNDhCIGluIGJvdGggZW1pdCByZWxvYwo+IGZ1bmN0aW9uIGFy Z3VtZW50IGFuZCBzdHJ1Y3QgYm9fZ2VtPwo+Cj4+ICAgdHlwZWRlZiBzdHJ1Y3QgX2RybV9pbnRl bF9yZWxvY190YXJnZXRfaW5mbyB7Cj4+ICAgCWRybV9pbnRlbF9ibyAqYm87Cj4+IEBAIC0yMzcs NiArMjM4LDE0IEBAIHN0cnVjdCBfZHJtX2ludGVsX2JvX2dlbSB7Cj4+ICAgCWJvb2wgaXNfdXNl cnB0cjsKPj4KPj4gICAJLyoqCj4+ICsJICogQm9vbGVhbiBvZiB3aGV0aGVyIHRoaXMgYnVmZmVy IGNhbiBiZSBpbiB0aGUgd2hvbGUgNDgtYml0IGFkZHJlc3MuCj4+ICsJICoKPj4gKwkgKiBCeSBk ZWZhdWx0LCBidWZmZXJzIHdpbGwgYmUga2VlcCBpbiBhIDMyLWJpdCByYW5nZSwgdW5sZXNzIHRo aXMKPj4gKwkgKiBmbGFnIGlzIGV4cGxpY2l0bHkgc2V0Lgo+PiArCSAqLwo+PiArCWJvb2wgc3Vw cG9ydHNfNDhiX2FkZHJlc3M7Cj4+ICsKPj4gKwkvKioKPj4gICAJICogU2l6ZSBpbiBieXRlcyBv ZiB0aGlzIGJ1ZmZlciBhbmQgaXRzIHJlbG9jYXRpb24gZGVzY2VuZGVudHMuCj4+ICAgCSAqCj4+ ICAgCSAqIFVzZWQgdG8gYXZvaWQgY29zdGx5IHRyZWUgd2Fsa2luZyBpbgo+PiBAQCAtNDYzLDEz ICs0NzIsMTggQEAgZHJtX2ludGVsX2FkZF92YWxpZGF0ZV9idWZmZXIoZHJtX2ludGVsX2JvICpi bykKPj4gICB9Cj4+Cj4+ICAgc3RhdGljIHZvaWQKPj4gLWRybV9pbnRlbF9hZGRfdmFsaWRhdGVf YnVmZmVyMihkcm1faW50ZWxfYm8gKmJvLCBpbnQgbmVlZF9mZW5jZSkKPj4gK2RybV9pbnRlbF9h ZGRfdmFsaWRhdGVfYnVmZmVyMihkcm1faW50ZWxfYm8gKmJvLCBpbnQgbmVlZF9mZW5jZSwKPj4g KwkJCSAgICAgICBpbnQgc3VwcG9ydHNfNDhiX2FkZHJlc3MpCj4+ICAgewo+PiAgIAlkcm1faW50 ZWxfYnVmbWdyX2dlbSAqYnVmbWdyX2dlbSA9IChkcm1faW50ZWxfYnVmbWdyX2dlbSAqKWJvLT5i dWZtZ3I7Cj4+ICAgCWRybV9pbnRlbF9ib19nZW0gKmJvX2dlbSA9IChkcm1faW50ZWxfYm9fZ2Vt ICopYm87Cj4+ICAgCWludCBpbmRleDsKPj4KPj4gICAJaWYgKGJvX2dlbS0+dmFsaWRhdGVfaW5k ZXggIT0gLTEpIHsKPj4gKwkJaWYgKHN1cHBvcnRzXzQ4Yl9hZGRyZXNzKSB7Cj4+ICsJCQlidWZt Z3JfZ2VtLT5leGVjMl9vYmplY3RzW2JvX2dlbS0+dmFsaWRhdGVfaW5kZXhdLmZsYWdzIHw9Cj4+ ICsJCQkJRVhFQ19PQkpFQ1RfU1VQUE9SVFNfNDhCX0FERFJFU1M7Cj4+ICsJCX0KPj4gICAJCWlm IChuZWVkX2ZlbmNlKQo+PiAgIAkJCWJ1Zm1ncl9nZW0tPmV4ZWMyX29iamVjdHNbYm9fZ2VtLT52 YWxpZGF0ZV9pbmRleF0uZmxhZ3MgfD0KPj4gICAJCQkJRVhFQ19PQkpFQ1RfTkVFRFNfRkVOQ0U7 Cj4+IEBAIC01MDgsNiArNTIyLDEwIEBAIGRybV9pbnRlbF9hZGRfdmFsaWRhdGVfYnVmZmVyMihk cm1faW50ZWxfYm8gKmJvLCBpbnQgbmVlZF9mZW5jZSkKPj4gICAJCWJ1Zm1ncl9nZW0tPmV4ZWMy X29iamVjdHNbaW5kZXhdLmZsYWdzIHw9Cj4+ICAgCQkJRVhFQ19PQkpFQ1RfTkVFRFNfRkVOQ0U7 Cj4+ICAgCX0KPj4gKwlpZiAoc3VwcG9ydHNfNDhiX2FkZHJlc3MpIHsKPj4gKwkJYnVmbWdyX2dl bS0+ZXhlYzJfb2JqZWN0c1tpbmRleF0uZmxhZ3MgfD0KPj4gKwkJCUVYRUNfT0JKRUNUX1NVUFBP UlRTXzQ4Ql9BRERSRVNTOwo+PiArCX0KPj4gICAJYnVmbWdyX2dlbS0+ZXhlY19jb3VudCsrOwo+ PiAgIH0KPj4KPj4gQEAgLTE5MjUsMTEgKzE5NDMsMzMgQEAgZG9fYm9fZW1pdF9yZWxvYyhkcm1f aW50ZWxfYm8gKmJvLCB1aW50MzJfdCBvZmZzZXQsCj4+ICAgCWVsc2UKPj4gICAJCWJvX2dlbS0+ cmVsb2NfdGFyZ2V0X2luZm9bYm9fZ2VtLT5yZWxvY19jb3VudF0uZmxhZ3MgPSAwOwo+Pgo+PiAr CWlmICh0YXJnZXRfYm9fZ2VtLT5zdXBwb3J0c180OGJfYWRkcmVzcykKPj4gKwkJYm9fZ2VtLT5y ZWxvY190YXJnZXRfaW5mb1tib19nZW0tPnJlbG9jX2NvdW50XS5mbGFncyB8PQo+PiArCQkJRFJN X0lOVEVMX1JFTE9DX1NVUFBPUlRTXzQ4Ql9BRERSRVNTOwo+PiArCj4+ICAgCWJvX2dlbS0+cmVs b2NfY291bnQrKzsKPj4KPj4gICAJcmV0dXJuIDA7Cj4+ICAgfQo+Pgo+PiArc3RhdGljIHZvaWQg ZHJtX2ludGVsX2dlbV9ib19zZXRfc3VwcG9ydHNfNDhiX2FkZHJlc3MoZHJtX2ludGVsX2JvICpi bykKPj4gK3sKPj4gKwlkcm1faW50ZWxfYnVmbWdyX2dlbSAqYnVmbWdyX2dlbSA9IChkcm1faW50 ZWxfYnVmbWdyX2dlbSAqKSBiby0+YnVmbWdyOwo+PiArCWRybV9pbnRlbF9ib19nZW0gKmJvX2dl bSA9IChkcm1faW50ZWxfYm9fZ2VtICopIGJvOwo+PiArCj4+ICsJaWYgKGJ1Zm1ncl9nZW0tPmdl biA+PSA4KQo+PiArCQlib19nZW0tPnN1cHBvcnRzXzQ4Yl9hZGRyZXNzID0gMTsKPj4gK30KPj4g Kwo+PiArc3RhdGljIHZvaWQgZHJtX2ludGVsX2dlbV9ib19jbGVhcl9zdXBwb3J0c180OGJfYWRk cmVzcyhkcm1faW50ZWxfYm8gKmJvKQo+PiArewo+PiArCWRybV9pbnRlbF9idWZtZ3JfZ2VtICpi dWZtZ3JfZ2VtID0gKGRybV9pbnRlbF9idWZtZ3JfZ2VtICopIGJvLT5idWZtZ3I7Cj4+ICsJZHJt X2ludGVsX2JvX2dlbSAqYm9fZ2VtID0gKGRybV9pbnRlbF9ib19nZW0gKikgYm87Cj4+ICsKPj4g KwlpZiAoYnVmbWdyX2dlbS0+Z2VuID49IDgpCj4+ICsJCWJvX2dlbS0+c3VwcG9ydHNfNDhiX2Fk ZHJlc3MgPSAwOwo+PiArfQo+PiArCj4+ICAgc3RhdGljIGludAo+PiAgIGRybV9pbnRlbF9nZW1f Ym9fZW1pdF9yZWxvYyhkcm1faW50ZWxfYm8gKmJvLCB1aW50MzJfdCBvZmZzZXQsCj4+ICAgCQkJ ICAgIGRybV9pbnRlbF9ibyAqdGFyZ2V0X2JvLCB1aW50MzJfdCB0YXJnZXRfb2Zmc2V0LAo+PiBA QCAtMjA0Myw3ICsyMDgzLDcgQEAgZHJtX2ludGVsX2dlbV9ib19wcm9jZXNzX3JlbG9jMihkcm1f aW50ZWxfYm8gKmJvKQo+Pgo+PiAgIAlmb3IgKGkgPSAwOyBpIDwgYm9fZ2VtLT5yZWxvY19jb3Vu dDsgaSsrKSB7Cj4+ICAgCQlkcm1faW50ZWxfYm8gKnRhcmdldF9ibyA9IGJvX2dlbS0+cmVsb2Nf dGFyZ2V0X2luZm9baV0uYm87Cj4+IC0JCWludCBuZWVkX2ZlbmNlOwo+PiArCQlpbnQgbmVlZF9m ZW5jZSwgc3VwcG9ydHNfNDhiX2FkZHI7Cj4+Cj4+ICAgCQlpZiAodGFyZ2V0X2JvID09IGJvKQo+ PiAgIAkJCWNvbnRpbnVlOwo+PiBAQCAtMjA1Niw4ICsyMDk2LDEyIEBAIGRybV9pbnRlbF9nZW1f Ym9fcHJvY2Vzc19yZWxvYzIoZHJtX2ludGVsX2JvICpibykKPj4gICAJCW5lZWRfZmVuY2UgPSAo Ym9fZ2VtLT5yZWxvY190YXJnZXRfaW5mb1tpXS5mbGFncyAmCj4+ICAgCQkJICAgICAgRFJNX0lO VEVMX1JFTE9DX0ZFTkNFKTsKPj4KPj4gKwkJc3VwcG9ydHNfNDhiX2FkZHIgPSAoYm9fZ2VtLT5y ZWxvY190YXJnZXRfaW5mb1tpXS5mbGFncyAmCj4+ICsJCQkJICAgIERSTV9JTlRFTF9SRUxPQ19T VVBQT1JUU180OEJfQUREUkVTUyk7Cj4+ICsKPj4gICAJCS8qIEFkZCB0aGUgdGFyZ2V0IHRvIHRo ZSB2YWxpZGF0ZSBsaXN0ICovCj4+IC0JCWRybV9pbnRlbF9hZGRfdmFsaWRhdGVfYnVmZmVyMih0 YXJnZXRfYm8sIG5lZWRfZmVuY2UpOwo+PiArCQlkcm1faW50ZWxfYWRkX3ZhbGlkYXRlX2J1ZmZl cjIodGFyZ2V0X2JvLCBuZWVkX2ZlbmNlLAo+PiArCQkJCQkgICAgICAgc3VwcG9ydHNfNDhiX2Fk ZHIpOwo+PiAgIAl9Cj4+ICAgfQo+Pgo+PiBAQCAtMjIxNyw3ICsyMjYxLDcgQEAgZG9fZXhlYzIo ZHJtX2ludGVsX2JvICpibywgaW50IHVzZWQsIGRybV9pbnRlbF9jb250ZXh0ICpjdHgsCj4+ICAg CS8qIEFkZCB0aGUgYmF0Y2ggYnVmZmVyIHRvIHRoZSB2YWxpZGF0aW9uIGxpc3QuICBUaGVyZSBh cmUgbm8gcmVsb2NhdGlvbnMKPj4gICAJICogcG9pbnRpbmcgdG8gaXQuCj4+ICAgCSAqLwo+PiAt CWRybV9pbnRlbF9hZGRfdmFsaWRhdGVfYnVmZmVyMihibywgMCk7Cj4+ICsJZHJtX2ludGVsX2Fk ZF92YWxpZGF0ZV9idWZmZXIyKGJvLCAwLCAwKTsKPj4KPj4gICAJbWVtY2xlYXIoZXhlY2J1Zik7 Cj4+ICAgCWV4ZWNidWYuYnVmZmVyc19wdHIgPSAodWludHB0cl90KWJ1Zm1ncl9nZW0tPmV4ZWMy X29iamVjdHM7Cj4+IEBAIC0zMjk5LDYgKzMzNDMsOCBAQCBkcm1faW50ZWxfYnVmbWdyX2dlbV9p bml0KGludCBmZCwgaW50IGJhdGNoX3NpemUpCj4+ICAgCWJ1Zm1ncl9nZW0tPmJ1Zm1nci5ib193 YWl0X3JlbmRlcmluZyA9IGRybV9pbnRlbF9nZW1fYm9fd2FpdF9yZW5kZXJpbmc7Cj4+ICAgCWJ1 Zm1ncl9nZW0tPmJ1Zm1nci5ib19lbWl0X3JlbG9jID0gZHJtX2ludGVsX2dlbV9ib19lbWl0X3Jl bG9jOwo+PiAgIAlidWZtZ3JfZ2VtLT5idWZtZ3IuYm9fZW1pdF9yZWxvY19mZW5jZSA9IGRybV9p bnRlbF9nZW1fYm9fZW1pdF9yZWxvY19mZW5jZTsKPj4gKwlidWZtZ3JfZ2VtLT5idWZtZ3IuYm9f c2V0X3N1cHBvcnRzXzQ4Yl9hZGRyZXNzID0gZHJtX2ludGVsX2dlbV9ib19zZXRfc3VwcG9ydHNf NDhiX2FkZHJlc3M7Cj4+ICsJYnVmbWdyX2dlbS0+YnVmbWdyLmJvX2NsZWFyX3N1cHBvcnRzXzQ4 Yl9hZGRyZXNzID0gZHJtX2ludGVsX2dlbV9ib19jbGVhcl9zdXBwb3J0c180OGJfYWRkcmVzczsK Pj4gICAJYnVmbWdyX2dlbS0+YnVmbWdyLmJvX3BpbiA9IGRybV9pbnRlbF9nZW1fYm9fcGluOwo+ PiAgIAlidWZtZ3JfZ2VtLT5idWZtZ3IuYm9fdW5waW4gPSBkcm1faW50ZWxfZ2VtX2JvX3VucGlu Owo+PiAgIAlidWZtZ3JfZ2VtLT5idWZtZ3IuYm9fZ2V0X3RpbGluZyA9IGRybV9pbnRlbF9nZW1f Ym9fZ2V0X3RpbGluZzsKPj4gZGlmZiAtLWdpdCBhL2ludGVsL2ludGVsX2J1Zm1ncl9wcml2Lmgg Yi9pbnRlbC9pbnRlbF9idWZtZ3JfcHJpdi5oCj4+IGluZGV4IDU5ZWJkMTguLjc3NGZhMDIgMTAw NjQ0Cj4+IC0tLSBhL2ludGVsL2ludGVsX2J1Zm1ncl9wcml2LmgKPj4gKysrIGIvaW50ZWwvaW50 ZWxfYnVmbWdyX3ByaXYuaAo+PiBAQCAtMTUyLDYgKzE1MiwxNyBAQCBzdHJ1Y3QgX2RybV9pbnRl bF9idWZtZ3Igewo+PiAgIAl2b2lkICgqZGVzdHJveSkgKGRybV9pbnRlbF9idWZtZ3IgKmJ1Zm1n cik7Cj4+Cj4+ICAgCS8qKgo+PiArCSAqIFNldC9DbGVhciA0OC1iaXQgYWRkcmVzcyBzdXBwb3J0 IGZsYWcgaW4gYSBnaXZlbiBiby4KPj4gKwkgKgo+PiArCSAqIEFueSByZXNvdXJjZSB1c2VkIHdp dGggZmxhdC9oZWFwbGVzcyAoMHgwMDAwMDAwMC0weGZmZmZmMDAwKQo+PiArCSAqIEdlbmVyYWwg U3RhdGUgSGVhcCAoR1NIKSBvciBJbnRydWN0aW9ucyBTdGF0ZSBIZWFwIChJU0gpIG11c3QKPj4g KwkgKiBiZSBpbiBhIDMyLWJpdCByYW5nZS4gNDgtYml0IHJhbmdlIHdpbGwgb25seSBiZSB1c2Vk IHdoZW4gZXhwbGljaXRseQo+PiArCSAqIHJlcXVlc3RlZC4KPj4gKwkgKi8KPj4gKwl2b2lkICgq Ym9fc2V0X3N1cHBvcnRzXzQ4Yl9hZGRyZXNzKSAoZHJtX2ludGVsX2JvICpibyk7Cj4+ICsJdm9p ZCAoKmJvX2NsZWFyX3N1cHBvcnRzXzQ4Yl9hZGRyZXNzKSAoZHJtX2ludGVsX2JvICpibyk7Cj4+ ICsKPj4gKwkvKioKPj4gICAJICogQWRkIHJlbG9jYXRpb24gZW50cnkgaW4gcmVsb2NfYnVmLCB3 aGljaCB3aWxsIGJlIHVwZGF0ZWQgd2l0aCB0aGUKPj4gICAJICogdGFyZ2V0IGJ1ZmZlcidzIHJl YWwgb2Zmc2V0IG9uIG9uIGNvbW1hbmQgc3VibWlzc2lvbi4KPj4gICAJICoKPj4gLS0KPj4gMi41 LjAKPgo+IFlvdSBhbHNvIGhhdmVuJ3QgdXBkYXRlZCB0aGUgZHVtcF92YWxpZGF0aW9uX2xpc3Qg d2l0aCBwcm9wZXIgZm9ybWF0IHNwZWNpZmllcgo+IChhZGRyZXNzZXMgYXJlIHRydW5jYXRlZCBv dGhlcndpc2UpLgo+Cj4gSSByZWFsbHkgZG9uJ3QgbGlrZSBoaWRpbmcgc2V0X3N1cHBvcnRzXzQ4 Yl9hZGRyZXNzL2NsZWFyX3N1cHBvcnRzXzQ4Yl9hZGRyZXNzCj4gaW4gZW1pdCByZWxvYyAtIG1h a2luZyB0aGlzIGV4cGxpY2l0IHdvdWxkIGJlIGEgYmV0dGVyIGFwcHJvYWNoLgo+IE9mIGNvdXJz ZSB0aGlzIGlzIGp1c3QgbXkgb3BpbmlvbiwgYnV0IGxldCBtZSBwb3N0IGEgYml0IGRpZmZlcmVu dCB2ZXJzaW9uIG9mCj4gdGhpcyBBUEkgLSBqdXN0IGFzIGFuIFJGQyBzbyB5b3UgY2FuIHNlZSBo b3cgaXQgd291bGQgbG9vayB3aXRoIGV4cGxpY2l0IHNldCBvbgo+IGJvIGFuZCB3aXRob3V0IGFk ZGluZyBhbm90aGVyIGVtaXRfcmVsb2MgdmFyaWFudC4KPgoKSGkgTWljaGHFgiwKCkJlbiBzdWdn ZXN0ZWQgaGF2aW5nIHRoZSBzZXQvY2xlYXIgaW4gZW1pdCByZWxvYyBhcyB0aGlzIGlzIHRoZSBv bmx5IApwbGFjZSBtZXNhIGNhcmVzIGFib3V0IHRoZXNlIHdhLgoKQnV0IEkgc2VlIHlvdXIgcG9p bnQsIHRoaXMgd2lsbCBiZSB1c2VkIG5vdCBvbmx5IGJ5IG1lc2EsIHNvIHdlIHNob3VsZCAKaGF2 ZSBzb21ldGhpbmcgdGhhdCBpcyBnb29kIGZvciBhbGwgdGhlIG90aGVyIHByb2plY3RzLgoKLU1p Y2hlbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=