From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id E201D6E866 for ; Thu, 10 Jun 2021 08:15:44 +0000 (UTC) Date: Thu, 10 Jun 2021 10:14:52 +0200 From: Zbigniew =?utf-8?Q?Kempczy=C5=84ski?= Message-ID: <20210610081452.GD3926@zkempczy-mobl2> References: <20210609173632.248880-1-jason@jlekstrand.net> <20210609173632.248880-24-jason@jlekstrand.net> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20210609173632.248880-24-jason@jlekstrand.net> Subject: Re: [igt-dev] [PATCH i-g-t 23/93] tests/i915/gem_exec_reloc: Convert to intel_ctx_t List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Jason Ekstrand Cc: igt-dev@lists.freedesktop.org List-ID: T24gV2VkLCBKdW4gMDksIDIwMjEgYXQgMTI6MzY6MDZQTSAtMDUwMCwgSmFzb24gRWtzdHJhbmQg d3JvdGU6Cj4gU2lnbmVkLW9mZi1ieTogSmFzb24gRWtzdHJhbmQgPGphc29uQGpsZWtzdHJhbmQu bmV0Pgo+IC0tLQo+ICB0ZXN0cy9pOTE1L2dlbV9leGVjX3JlbG9jLmMgfCAxMDIgKysrKysrKysr KysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCj4gIDEgZmlsZSBjaGFuZ2VkLCA2MiBpbnNlcnRp b25zKCspLCA0MCBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9nZW1f ZXhlY19yZWxvYy5jIGIvdGVzdHMvaTkxNS9nZW1fZXhlY19yZWxvYy5jCj4gaW5kZXggYzc5NDAw ZmIuLjgzMjA2ZjEwIDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfcmVsb2MuYwo+ ICsrKyBiL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfcmVsb2MuYwo+IEBAIC0yNjcsNyArMjY3LDcgQEAg c3RhdGljIHZvaWQgY2hlY2tfYm8oaW50IGZkLCB1aW50MzJfdCBoYW5kbGUpCj4gIAltdW5tYXAo bWFwLCA0MDk2KTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgYWN0aXZlKGludCBmZCwgdW5zaWdu ZWQgZW5naW5lKQo+ICtzdGF0aWMgdm9pZCBhY3RpdmUoaW50IGZkLCBjb25zdCBpbnRlbF9jdHhf dCAqY3R4LCB1bnNpZ25lZCBlbmdpbmUpCj4gIHsKPiAgCWNvbnN0IHVuc2lnbmVkIGludCBnZW4g PSBpbnRlbF9nZW4oaW50ZWxfZ2V0X2RybV9kZXZpZChmZCkpOwo+ICAJc3RydWN0IGRybV9pOTE1 X2dlbV9yZWxvY2F0aW9uX2VudHJ5IHJlbG9jOwo+IEBAIC0yODEsNyArMjgxLDcgQEAgc3RhdGlj IHZvaWQgYWN0aXZlKGludCBmZCwgdW5zaWduZWQgZW5naW5lKQo+ICAJaWYgKGVuZ2luZSA9PSBB TExfRU5HSU5FUykgewo+ICAJCWNvbnN0IHN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiAq ZTsKPiAgCj4gLQkJX19mb3JfZWFjaF9waHlzaWNhbF9lbmdpbmUoZmQsIGUpIHsKPiArCQlmb3Jf ZWFjaF9jdHhfZW5naW5lKGZkLCBjdHgsIGUpIHsKPiAgCQkJaWYgKGdlbV9jbGFzc19jYW5fc3Rv cmVfZHdvcmQoZmQsIGUtPmNsYXNzKSkKPiAgCQkJCWVuZ2luZXNbbmVuZ2luZSsrXSA9IGUtPmZs YWdzOwo+ICAJCX0KPiBAQCAtMzA5LDYgKzMwOSw3IEBAIHN0YXRpYyB2b2lkIGFjdGl2ZShpbnQg ZmQsIHVuc2lnbmVkIGVuZ2luZSkKPiAgCWV4ZWNidWYuYnVmZmVyX2NvdW50ID0gMjsKPiAgCWlm IChnZW4gPCA2KQo+ICAJCWV4ZWNidWYuZmxhZ3MgfD0gSTkxNV9FWEVDX1NFQ1VSRTsKPiArCWV4 ZWNidWYucnN2ZDEgPSBjdHgtPmlkOwo+ICAKPiAgCWZvciAocGFzcyA9IDA7IHBhc3MgPCAxMDI0 OyBwYXNzKyspIHsKPiAgCQl1aW50MzJfdCBiYXRjaFsxNl07Cj4gQEAgLTM2OCw3ICszNjksOCBA QCBzdGF0aWMgdWludDY0X3QgbWFueV9yZWxvY3ModW5zaWduZWQgbG9uZyBjb3VudCwgdW5zaWdu ZWQgbG9uZyAqb3V0KQo+ICAJcmV0dXJuIHRvX3VzZXJfcG9pbnRlcihyZWxvYyk7Cj4gIH0KPiAg Cj4gLXN0YXRpYyB2b2lkIF9fbWFueV9hY3RpdmUoaW50IGk5MTUsIHVuc2lnbmVkIGVuZ2luZSwg dW5zaWduZWQgbG9uZyBjb3VudCkKPiArc3RhdGljIHZvaWQgX19tYW55X2FjdGl2ZShpbnQgaTkx NSwgY29uc3QgaW50ZWxfY3R4X3QgKmN0eCwgdW5zaWduZWQgZW5naW5lLAo+ICsJCQkgIHVuc2ln bmVkIGxvbmcgY291bnQpCj4gIHsKPiAgCXVuc2lnbmVkIGxvbmcgcmVsb2Nfc3o7Cj4gIAlzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNfb2JqZWN0MiBvYmpbMl0gPSB7ewo+IEBAIC0zODAsMTAgKzM4 MiwxMiBAQCBzdGF0aWMgdm9pZCBfX21hbnlfYWN0aXZlKGludCBpOTE1LCB1bnNpZ25lZCBlbmdp bmUsIHVuc2lnbmVkIGxvbmcgY291bnQpCj4gIAkJLmJ1ZmZlcnNfcHRyID0gdG9fdXNlcl9wb2lu dGVyKG9iaiksCj4gIAkJLmJ1ZmZlcl9jb3VudCA9IEFSUkFZX1NJWkUob2JqKSwKPiAgCQkuZmxh Z3MgPSBlbmdpbmUgfCBJOTE1X0VYRUNfSEFORExFX0xVVCwKPiArCQkucnN2ZDEgPSBjdHgtPmlk LAo+ICAJfTsKPiAgCWlndF9zcGluX3QgKnNwaW47Cj4gIAo+ICAJc3BpbiA9IF9faWd0X3NwaW5f bmV3KGk5MTUsCj4gKwkJCSAgICAgIC5jdHggPSBjdHgsCj4gIAkJCSAgICAgIC5lbmdpbmUgPSBl bmdpbmUsCj4gIAkJCSAgICAgIC5kZXBlbmRlbmN5ID0gb2JqWzBdLmhhbmRsZSwKPiAgCQkJICAg ICAgLmZsYWdzID0gKElHVF9TUElOX0ZFTkNFX09VVCB8Cj4gQEAgLTQwNiw3ICs0MTAsNyBAQCBz dGF0aWMgdm9pZCBfX21hbnlfYWN0aXZlKGludCBpOTE1LCB1bnNpZ25lZCBlbmdpbmUsIHVuc2ln bmVkIGxvbmcgY291bnQpCj4gIAlnZW1fY2xvc2UoaTkxNSwgb2JqWzBdLmhhbmRsZSk7Cj4gIH0K PiAgCj4gLXN0YXRpYyB2b2lkIG1hbnlfYWN0aXZlKGludCBpOTE1LCB1bnNpZ25lZCBlbmdpbmUp Cj4gK3N0YXRpYyB2b2lkIG1hbnlfYWN0aXZlKGludCBpOTE1LCBjb25zdCBpbnRlbF9jdHhfdCAq Y3R4LCB1bnNpZ25lZCBlbmdpbmUpCj4gIHsKPiAgCWNvbnN0IHVpbnQ2NF90IG1heCA9IDIwNDg7 Cj4gIAl1bnNpZ25lZCBsb25nIGNvdW50ID0gMjU2Owo+IEBAIC00MTksNyArNDIzLDcgQEAgc3Rh dGljIHZvaWQgbWFueV9hY3RpdmUoaW50IGk5MTUsIHVuc2lnbmVkIGVuZ2luZSkKPiAgCQkJYnJl YWs7Cj4gIAo+ICAJCWlndF9kZWJ1ZygiVGVzdGluZyBjb3VudDolbHVcbiIsIGNvdW50KTsKPiAt CQlfX21hbnlfYWN0aXZlKGk5MTUsIGVuZ2luZSwgY291bnQpOwo+ICsJCV9fbWFueV9hY3RpdmUo aTkxNSwgY3R4LCBlbmdpbmUsIGNvdW50KTsKPiAgCj4gIAkJY291bnQgPDw9IDE7Cj4gIAkJaWYg KGNvdW50ID49IG1heCkKPiBAQCAtNDI3LDcgKzQzMSw4IEBAIHN0YXRpYyB2b2lkIG1hbnlfYWN0 aXZlKGludCBpOTE1LCB1bnNpZ25lZCBlbmdpbmUpCj4gIAl9Cj4gIH0KPiAgCj4gLXN0YXRpYyB2 b2lkIF9fd2lkZV9hY3RpdmUoaW50IGk5MTUsIHVuc2lnbmVkIGVuZ2luZSwgdW5zaWduZWQgbG9u ZyBjb3VudCkKPiArc3RhdGljIHZvaWQgX193aWRlX2FjdGl2ZShpbnQgaTkxNSwgY29uc3QgaW50 ZWxfY3R4X3QgKmN0eCwgdW5zaWduZWQgZW5naW5lLAo+ICsJCQkgIHVuc2lnbmVkIGxvbmcgY291 bnQpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVsb2NhdGlvbl9lbnRyeSAqcmVsb2Mg PQo+ICAJCWNhbGxvYyhjb3VudCwgc2l6ZW9mKCpyZWxvYykpOwo+IEBAIC00MzcsNiArNDQyLDcg QEAgc3RhdGljIHZvaWQgX193aWRlX2FjdGl2ZShpbnQgaTkxNSwgdW5zaWduZWQgZW5naW5lLCB1 bnNpZ25lZCBsb25nIGNvdW50KQo+ICAJCS5idWZmZXJzX3B0ciA9IHRvX3VzZXJfcG9pbnRlcihv YmopLAo+ICAJCS5idWZmZXJfY291bnQgPSBjb3VudCArIDEsCj4gIAkJLmZsYWdzID0gZW5naW5l IHwgSTkxNV9FWEVDX0hBTkRMRV9MVVQsCj4gKwkJLnJzdmQxID0gY3R4LT5pZCwKPiAgCX07Cj4g IAlpZ3Rfc3Bpbl90ICpzcGluOwo+ICAKPiBAQCAtNDQ3LDYgKzQ1Myw3IEBAIHN0YXRpYyB2b2lk IF9fd2lkZV9hY3RpdmUoaW50IGk5MTUsIHVuc2lnbmVkIGVuZ2luZSwgdW5zaWduZWQgbG9uZyBj b3VudCkKPiAgCX0KPiAgCj4gIAlzcGluID0gX19pZ3Rfc3Bpbl9uZXcoaTkxNSwKPiArCQkJICAg ICAgLmN0eCA9IGN0eCwKPiAgCQkJICAgICAgLmVuZ2luZSA9IGVuZ2luZSwKPiAgCQkJICAgICAg LmZsYWdzID0gKElHVF9TUElOX0ZFTkNFX09VVCB8Cj4gIAkJCQkJSUdUX1NQSU5fTk9fUFJFRU1Q VElPTikpOwo+IEBAIC00NzYsNyArNDgzLDcgQEAgc3RhdGljIHZvaWQgX193aWRlX2FjdGl2ZShp bnQgaTkxNSwgdW5zaWduZWQgZW5naW5lLCB1bnNpZ25lZCBsb25nIGNvdW50KQo+ICAJZnJlZShy ZWxvYyk7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIHdpZGVfYWN0aXZlKGludCBpOTE1LCB1bnNp Z25lZCBlbmdpbmUpCj4gK3N0YXRpYyB2b2lkIHdpZGVfYWN0aXZlKGludCBpOTE1LCBjb25zdCBp bnRlbF9jdHhfdCAqY3R4LCB1bnNpZ25lZCBlbmdpbmUpCj4gIHsKPiAgCWNvbnN0IHVpbnQ2NF90 IG1heCA9IGdlbV9hcGVydHVyZV9zaXplKGk5MTUpIC8gNDA5NiAvIDI7Cj4gIAl1bnNpZ25lZCBs b25nIGNvdW50ID0gMjU2Owo+IEBAIC00ODksNyArNDk2LDcgQEAgc3RhdGljIHZvaWQgd2lkZV9h Y3RpdmUoaW50IGk5MTUsIHVuc2lnbmVkIGVuZ2luZSkKPiAgCQkJYnJlYWs7Cj4gIAo+ICAJCWln dF9kZWJ1ZygiVGVzdGluZyBjb3VudDolbHVcbiIsIGNvdW50KTsKPiAtCQlfX3dpZGVfYWN0aXZl KGk5MTUsIGVuZ2luZSwgY291bnQpOwo+ICsJCV9fd2lkZV9hY3RpdmUoaTkxNSwgY3R4LCBlbmdp bmUsIGNvdW50KTsKPiAgCj4gIAkJY291bnQgPDw9IDE7Cj4gIAkJaWYgKGNvdW50ID49IG1heCkK PiBAQCAtNTAyLDcgKzUwOSw3IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgb2Zmc2V0X2luX3BhZ2Uo dm9pZCAqYWRkcikKPiAgCXJldHVybiAodWludHB0cl90KWFkZHIgJiA0MDk1Owo+ICB9Cj4gIAo+ IC1zdGF0aWMgdm9pZCBhY3RpdmVfc3BpbihpbnQgZmQsIHVuc2lnbmVkIGVuZ2luZSkKPiArc3Rh dGljIHZvaWQgYWN0aXZlX3NwaW4oaW50IGZkLCBjb25zdCBpbnRlbF9jdHhfdCAqY3R4LCB1bnNp Z25lZCBlbmdpbmUpCj4gIHsKPiAgCWNvbnN0IHVpbnQzMl90IGJiZSA9IE1JX0JBVENIX0JVRkZF Ul9FTkQ7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlbG9jYXRpb25fZW50cnkgcmVsb2M7Cj4g QEAgLTUxMSw2ICs1MTgsNyBAQCBzdGF0aWMgdm9pZCBhY3RpdmVfc3BpbihpbnQgZmQsIHVuc2ln bmVkIGVuZ2luZSkKPiAgCWlndF9zcGluX3QgKnNwaW47Cj4gIAo+ICAJc3BpbiA9IGlndF9zcGlu X25ldyhmZCwKPiArCQkJICAgIC5jdHggPSBjdHgsCj4gIAkJCSAgICAuZW5naW5lID0gZW5naW5l LAo+ICAJCQkgICAgLmZsYWdzID0gSUdUX1NQSU5fTk9fUFJFRU1QVElPTik7Cj4gIAo+IEBAIC01 MzAsNiArNTM4LDcgQEAgc3RhdGljIHZvaWQgYWN0aXZlX3NwaW4oaW50IGZkLCB1bnNpZ25lZCBl bmdpbmUpCj4gIAlleGVjYnVmLmJ1ZmZlcnNfcHRyID0gdG9fdXNlcl9wb2ludGVyKG9iaik7Cj4g IAlleGVjYnVmLmJ1ZmZlcl9jb3VudCA9IDI7Cj4gIAlleGVjYnVmLmZsYWdzID0gZW5naW5lOwo+ ICsJZXhlY2J1Zi5yc3ZkMSA9IGN0eC0+aWQ7Cj4gIAo+ICAJZ2VtX2V4ZWNidWYoZmQsICZleGVj YnVmKTsKPiAgCWdlbV9jbG9zZShmZCwgb2JqWzFdLmhhbmRsZSk7Cj4gQEAgLTU0Miw3ICs1NTEs NyBAQCBzdGF0aWMgdm9pZCBhY3RpdmVfc3BpbihpbnQgZmQsIHVuc2lnbmVkIGVuZ2luZSkKPiAg CWlndF9zcGluX2ZyZWUoZmQsIHNwaW4pOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBvdGhlcnNf c3BpbihpbnQgaTkxNSwgdW5zaWduZWQgZW5naW5lKQo+ICtzdGF0aWMgdm9pZCBvdGhlcnNfc3Bp bihpbnQgaTkxNSwgY29uc3QgaW50ZWxfY3R4X3QgKmN0eCwgdW5zaWduZWQgZW5naW5lKQo+ICB7 Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlbG9jYXRpb25fZW50cnkgcmVsb2MgPSB7fTsKPiAg CXN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY19vYmplY3QyIG9iaiA9IHsKPiBAQCAtNTUzLDE4ICs1 NjIsMjAgQEAgc3RhdGljIHZvaWQgb3RoZXJzX3NwaW4oaW50IGk5MTUsIHVuc2lnbmVkIGVuZ2lu ZSkKPiAgCQkuYnVmZmVyc19wdHIgPSB0b191c2VyX3BvaW50ZXIoJm9iaiksCj4gIAkJLmJ1ZmZl cl9jb3VudCA9IDEsCj4gIAkJLmZsYWdzID0gZW5naW5lLAo+ICsJCS5yc3ZkMSA9IGN0eC0+aWQs Cj4gIAl9Owo+ICAJY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICplOwo+ICAJ aWd0X3NwaW5fdCAqc3BpbiA9IE5VTEw7Cj4gIAl1aW50NjRfdCBhZGRyOwo+ICAJaW50IGZlbmNl Owo+ICAKPiAtCV9fZm9yX2VhY2hfcGh5c2ljYWxfZW5naW5lKGk5MTUsIGUpIHsKPiArCWZvcl9l YWNoX2N0eF9lbmdpbmUoaTkxNSwgY3R4LCBlKSB7Cj4gIAkJaWYgKGUtPmZsYWdzID09IGVuZ2lu ZSkKPiAgCQkJY29udGludWU7Cj4gIAo+ICAJCWlmICghc3Bpbikgewo+ICAJCQlzcGluID0gaWd0 X3NwaW5fbmV3KGk5MTUsCj4gKwkJCQkJICAgIC5jdHggPSBjdHgsCj4gIAkJCQkJICAgIC5lbmdp bmUgPSBlLT5mbGFncywKPiAgCQkJCQkgICAgLmZsYWdzID0gSUdUX1NQSU5fRkVOQ0VfT1VUKTsK PiAgCQkJZmVuY2UgPSBkdXAoc3Bpbi0+b3V0X2ZlbmNlKTsKPiBAQCAtOTg2LDEyICs5OTcsMTMg QEAgc3RhdGljIHZvaWQgc2lnaGFuZGxlcihpbnQgc2lnKQo+ICAJc3RvcCA9IDE7Cj4gIH0KPiAg Cj4gLXN0YXRpYyB2b2lkIHBhcmFsbGVsX2NoaWxkKGludCBpOTE1LAo+ICtzdGF0aWMgdm9pZCBw YXJhbGxlbF9jaGlsZChpbnQgaTkxNSwgY29uc3QgaW50ZWxfY3R4X3QgKmN0eCwKPiAgCQkJICAg Y29uc3Qgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICplbmdpbmUsCj4gIAkJCSAgIHN0 cnVjdCBkcm1faTkxNV9nZW1fcmVsb2NhdGlvbl9lbnRyeSAqcmVsb2MsCj4gIAkJCSAgIHVpbnQz Ml90IGNvbW1vbikKPiAgewo+IC0JaWd0X3NwaW5fdCAqc3BpbiA9IF9faWd0X3NwaW5fbmV3KGk5 MTUsIC5lbmdpbmUgPSBlbmdpbmUtPmZsYWdzKTsKPiArCWlndF9zcGluX3QgKnNwaW4gPSBfX2ln dF9zcGluX25ldyhpOTE1LCAuY3R4ID0gY3R4LAo+ICsJCQkJCSAgLmVuZ2luZSA9IGVuZ2luZS0+ ZmxhZ3MpOwo+ICAJc3RydWN0IGRybV9pOTE1X2dlbV9leGVjX29iamVjdDIgcmVsb2NfdGFyZ2V0 ID0gewo+ICAJCS5oYW5kbGUgPSBnZW1fY3JlYXRlKGk5MTUsIDMyICogMTAyNCAqIDgpLAo+ICAJ CS5yZWxvY2F0aW9uX2NvdW50ID0gMzIgKiAxMDI0LAo+IEBAIC0xMDA2LDYgKzEwMTgsNyBAQCBz dGF0aWMgdm9pZCBwYXJhbGxlbF9jaGlsZChpbnQgaTkxNSwKPiAgCQkuYnVmZmVyc19wdHIgPSB0 b191c2VyX3BvaW50ZXIob2JqKSwKPiAgCQkuYnVmZmVyX2NvdW50ID0gQVJSQVlfU0laRShvYmop LAo+ICAJCS5mbGFncyA9IGVuZ2luZS0+ZmxhZ3MgfCBJOTE1X0VYRUNfSEFORExFX0xVVCwKPiAr CQkucnN2ZDEgPSBjdHgtPmlkLAo+ICAJfTsKPiAgCXN0cnVjdCBzaWdhY3Rpb24gYWN0ID0gewo+ ICAJCS5zYV9oYW5kbGVyID0gc2lnaGFuZGxlciwKPiBAQCAtMTAzMyw3ICsxMDQ2LDcgQEAgc3Rh dGljIHZvaWQga2lsbF9jaGlsZHJlbihpbnQgc2lnKQo+ICAJc2lnbmFsKHNpZywgU0lHX0RGTCk7 Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIHBhcmFsbGVsKGludCBpOTE1KQo+ICtzdGF0aWMgdm9p ZCBwYXJhbGxlbChpbnQgaTkxNSwgY29uc3QgaW50ZWxfY3R4X3QgKmN0eCkKPiAgewo+ICAJY29u c3Qgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICplOwo+ICAJc3RydWN0IGRybV9pOTE1 X2dlbV9yZWxvY2F0aW9uX2VudHJ5ICpyZWxvYzsKPiBAQCAtMTA0NCwxNiArMTA1NywxNiBAQCBz dGF0aWMgdm9pZCBwYXJhbGxlbChpbnQgaTkxNSkKPiAgCXJlbG9jID0gcGFyYWxsZWxfcmVsb2Nz KDMyICogMTAyNCwgJnJlbG9jX3N6KTsKPiAgCj4gIAlzdG9wID0gMDsKPiAtCV9fZm9yX2VhY2hf cGh5c2ljYWxfZW5naW5lKGk5MTUsIGUpIHsKPiArCWZvcl9lYWNoX2N0eF9lbmdpbmUoaTkxNSwg Y3R4LCBlKSB7Cj4gIAkJaWd0X2ZvcmsoY2hpbGQsIDEpCj4gLQkJCXBhcmFsbGVsX2NoaWxkKGk5 MTUsIGUsIHJlbG9jLCBjb21tb24pOwo+ICsJCQlwYXJhbGxlbF9jaGlsZChpOTE1LCBjdHgsIGUs IHJlbG9jLCBjb21tb24pOwo+ICAJfQo+ICAJc2xlZXAoMik7Cj4gIAo+ICAJaWYgKGdlbV9zY2hl ZHVsZXJfaGFzX3ByZWVtcHRpb24oaTkxNSkpIHsKPiAtCQl1aW50MzJfdCBjdHggPSBnZW1fY29u dGV4dF9jbG9uZV93aXRoX2VuZ2luZXMoaTkxNSwgMCk7Cj4gKwkJY29uc3QgaW50ZWxfY3R4X3Qg KnRtcF9jdHggPSBpbnRlbF9jdHhfY3JlYXRlKGk5MTUsICZjdHgtPmNmZyk7Cj4gIAo+IC0JCV9f Zm9yX2VhY2hfcGh5c2ljYWxfZW5naW5lKGk5MTUsIGUpIHsKPiArCQlmb3JfZWFjaF9jdHhfZW5n aW5lKGk5MTUsIGN0eCwgZSkgewoKSSBrbm93IGl0IGRvZXNuJ3QgbWF0dGVyIGFuZCBjb25maWcg aXMgcmVhbGx5IHNhbWUgKGNvcHkpLCBidXQgdG8gYXZvaWQgCmNvbmZ1c2lvbiBvbiByZWFkZXIg SSB3b3VsZCB1c2UgdG1wX2N0eCBpbnN0ZWFkIGN0eC4KCj4gIAkJCXN0cnVjdCBkcm1faTkxNV9n ZW1fZXhlY19vYmplY3QyIG9ialsyXSA9IHsKPiAgCQkJCXsgLmhhbmRsZSA9IGNvbW1vbiB9LAo+ ICAJCQkJeyAuaGFuZGxlID0gYmF0Y2ggfSwKPiBAQCAtMTA2MiwxMiArMTA3NSwxMiBAQCBzdGF0 aWMgdm9pZCBwYXJhbGxlbChpbnQgaTkxNSkKPiAgCQkJCS5idWZmZXJzX3B0ciA9IHRvX3VzZXJf cG9pbnRlcihvYmopLAo+ICAJCQkJLmJ1ZmZlcl9jb3VudCA9IEFSUkFZX1NJWkUob2JqKSwKPiAg CQkJCS5mbGFncyA9IGUtPmZsYWdzLAo+IC0JCQkJLnJzdmQxID0gY3R4LAo+ICsJCQkJLnJzdmQx ID0gdG1wX2N0eC0+aWQsCj4gIAkJCX07Cj4gIAkJCWdlbV9leGVjYnVmKGk5MTUsICZleGVjYnVm KTsKPiAgCQl9Cj4gIAo+IC0JCWdlbV9jb250ZXh0X2Rlc3Ryb3koaTkxNSwgY3R4KTsKPiArCQlp bnRlbF9jdHhfZGVzdHJveShpOTE1LCB0bXBfY3R4KTsKPiAgCX0KPiAgCWdlbV9zeW5jKGk5MTUs IGJhdGNoKTsKPiAgCWdlbV9jbG9zZShpOTE1LCBiYXRjaCk7Cj4gQEAgLTExMjEsNyArMTEzNCw3 IEBAIHN0YXRpYyB2b2lkIHhjaGdfdTMyKHZvaWQgKmFycmF5LCB1bnNpZ25lZCBpLCB1bnNpZ25l ZCBqKQo+ICAJdTMyW2pdID0gdG1wOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBjb25jdXJyZW50 X2NoaWxkKGludCBpOTE1LAo+ICtzdGF0aWMgdm9pZCBjb25jdXJyZW50X2NoaWxkKGludCBpOTE1 LCBjb25zdCBpbnRlbF9jdHhfdCAqY3R4LAo+ICAJCQkgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9l eGVjdXRpb25fZW5naW5lMiAqZSwKPiAgCQkJICAgICB1aW50MzJfdCAqY29tbW9uLCBpbnQgbnVt X2NvbW1vbiwKPiAgCQkJICAgICBpbnQgaW4sIGludCBvdXQpCj4gQEAgLTExMzQsNiArMTE0Nyw3 IEBAIHN0YXRpYyB2b2lkIGNvbmN1cnJlbnRfY2hpbGQoaW50IGk5MTUsCj4gIAkJLmJ1ZmZlcnNf cHRyID0gdG9fdXNlcl9wb2ludGVyKG9iaiksCj4gIAkJLmJ1ZmZlcl9jb3VudCA9IEFSUkFZX1NJ WkUob2JqKSwKPiAgCQkuZmxhZ3MgPSBlLT5mbGFncyB8IEk5MTVfRVhFQ19IQU5ETEVfTFVUIHwg KGdlbiA8IDYgPyBJOTE1X0VYRUNfU0VDVVJFIDogMCksCj4gKwkJLnJzdmQxID0gY3R4LT5pZCwK PiAgCX07Cj4gIAl1aW50MzJfdCAqYmF0Y2ggPSAmb2JqW251bV9jb21tb24gKyAxXS5oYW5kbGU7 Cj4gIAl1bnNpZ25lZCBsb25nIGNvdW50ID0gMDsKPiBAQCAtMTIxNCw3ICsxMjI4LDcgQEAgc3Rh dGljIHVpbnQzMl90IGNyZWF0ZV9jb25jdXJyZW50X2JhdGNoKGludCBpOTE1LCB1bnNpZ25lZCBp bnQgY291bnQpCj4gIAlyZXR1cm4gaGFuZGxlOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBjb25j dXJyZW50KGludCBpOTE1LCBpbnQgbnVtX2NvbW1vbikKPiArc3RhdGljIHZvaWQgY29uY3VycmVu dChpbnQgaTkxNSwgY29uc3QgaW50ZWxfY3R4X3QgKmN0eCwgaW50IG51bV9jb21tb24pCj4gIHsK PiAgCWNvbnN0IHN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiAqZTsKPiAgCWludCBpblsy XSwgb3V0WzJdOwo+IEBAIC0xMjQwLDEyICsxMjU0LDEyIEBAIHN0YXRpYyB2b2lkIGNvbmN1cnJl bnQoaW50IGk5MTUsIGludCBudW1fY29tbW9uKQo+ICAJCWNvbW1vbltuXSA9IGdlbV9jcmVhdGUo aTkxNSwgNCAqIDQgKiBDT05DVVJSRU5UKTsKPiAgCj4gIAluY2hpbGQgPSAwOwo+IC0JX19mb3Jf ZWFjaF9waHlzaWNhbF9lbmdpbmUoaTkxNSwgZSkgewo+ICsJZm9yX2VhY2hfY3R4X2VuZ2luZShp OTE1LCBjdHgsIGUpIHsKPiAgCQlpZiAoIWdlbV9jbGFzc19jYW5fc3RvcmVfZHdvcmQoaTkxNSwg ZS0+Y2xhc3MpKQo+ICAJCQljb250aW51ZTsKPiAgCj4gIAkJaWd0X2ZvcmsoY2hpbGQsIDEpCj4g LQkJCWNvbmN1cnJlbnRfY2hpbGQoaTkxNSwgZSwKPiArCQkJY29uY3VycmVudF9jaGlsZChpOTE1 LCBjdHgsIGUsCj4gIAkJCQkJIGNvbW1vbiwgbnVtX2NvbW1vbiwKPiAgCQkJCQkgaW5bMF0sIG91 dFsxXSk7Cj4gIAo+IEBAIC0xMzA5LDYgKzEzMjMsNyBAQCBwaW5fc2Nhbm91dChpZ3RfZGlzcGxh eV90ICpkcHksIGlndF9vdXRwdXRfdCAqb3V0cHV0LCBzdHJ1Y3QgaWd0X2ZiICpmYikKPiAgCj4g IHN0YXRpYyB2b2lkIHNjYW5vdXQoaW50IGk5MTUsCj4gIAkJICAgIGlndF9kaXNwbGF5X3QgKmRw eSwKPiArCQkgICAgY29uc3QgaW50ZWxfY3R4X3QgKmN0eCwKPiAgCQkgICAgY29uc3Qgc3RydWN0 IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICplKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X3JlbG9jYXRpb25fZW50cnkgcmVsb2MgPSB7fTsKPiBAQCAtMTMxOSw2ICsxMzM0LDcgQEAgc3Rh dGljIHZvaWQgc2Nhbm91dChpbnQgaTkxNSwKPiAgCQkuYnVmZmVyc19wdHIgPSB0b191c2VyX3Bv aW50ZXIob2JqKSwKPiAgCQkuYnVmZmVyX2NvdW50ID0gMiwKPiAgCQkuZmxhZ3MgPSBlLT5mbGFn cywKPiArCQkucnN2ZDEgPSBjdHgtPmlkLAo+ICAJfTsKPiAgCWlndF9vdXRwdXRfdCAqb3V0cHV0 Owo+ICAJc3RydWN0IGlndF9mYiBmYjsKPiBAQCAtMTQzOCw2ICsxNDU0LDcgQEAgc3RhdGljIHZv aWQgaW52YWxpZF9kb21haW5zKGludCBmZCkKPiAgCj4gIGlndF9tYWluCj4gIHsKPiArCWNvbnN0 IGludGVsX2N0eF90ICpjdHggPSAwOwoKSW5pdGlhbGl6YXRpb24gbm90IG5lY2Vzc2FyeS4gQm90 aCBuaXRzIGNhbiBiZSBpZ25vcmVkOgoKUmV2aWV3ZWQtYnk6IFpiaWduaWV3IEtlbXBjennFhHNr aSA8emJpZ25pZXcua2VtcGN6eW5za2lAaW50ZWwuY29tPgoKLS0KWmJpZ25pZXcKCj4gIAljb25z dCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmU7Cj4gIAljb25zdCBzdHJ1Y3QgbW9k ZSB7Cj4gIAkJY29uc3QgY2hhciAqbmFtZTsKPiBAQCAtMTQ4MSw2ICsxNDk4LDExIEBAIGlndF9t YWluCj4gIAkJaWd0X3JlcXVpcmVfZ2VtKGZkKTsKPiAgCQkvKiBDaGVjayBpZiByZWxvY2F0aW9u cyBzdXBwb3J0ZWQgYnkgcGxhdGZvcm0gKi8KPiAgCQlpZ3RfcmVxdWlyZShnZW1faGFzX3JlbG9j YXRpb25zKGZkKSk7Cj4gKwo+ICsJCWlmIChnZW1faGFzX2NvbnRleHRzKGZkKSkKPiArCQkJY3R4 ID0gaW50ZWxfY3R4X2NyZWF0ZV9hbGxfcGh5c2ljYWwoZmQpOwo+ICsJCWVsc2UKPiArCQkJY3R4 ID0gaW50ZWxfY3R4XzAoZmQpOwo+ICAJfQo+ICAKPiAgCWZvciAoZiA9IGZsYWdzOyBmLT5uYW1l OyBmKyspIHsKPiBAQCAtMTU0Miw1MiArMTU2NCw1MiBAQCBpZ3RfbWFpbgo+ICAKPiAgCWlndF9z dWJ0ZXN0X3dpdGhfZHluYW1pYygiYmFzaWMtYWN0aXZlIikgewo+ICAJCWlndF9keW5hbWljKCJh bGwiKQo+IC0JCQlhY3RpdmUoZmQsIEFMTF9FTkdJTkVTKTsKPiArCQkJYWN0aXZlKGZkLCBjdHgs IEFMTF9FTkdJTkVTKTsKPiAgCj4gLQkJX19mb3JfZWFjaF9waHlzaWNhbF9lbmdpbmUoZmQsIGUp IHsKPiArCQlmb3JfZWFjaF9jdHhfZW5naW5lKGZkLCBjdHgsIGUpIHsKPiAgCQkJaWYgKCFnZW1f Y2xhc3NfY2FuX3N0b3JlX2R3b3JkKGZkLCBlLT5jbGFzcykpCj4gIAkJCQljb250aW51ZTsKPiAg Cj4gIAkJCWlndF9keW5hbWljX2YoIiVzIiwgZS0+bmFtZSkKPiAtCQkJCWFjdGl2ZShmZCwgZS0+ ZmxhZ3MpOwo+ICsJCQkJYWN0aXZlKGZkLCBjdHgsIGUtPmZsYWdzKTsKPiAgCQl9Cj4gIAl9Cj4g IAo+ICAJaWd0X3N1YnRlc3Rfd2l0aF9keW5hbWljKCJiYXNpYy1zcGluIikgewo+IC0JCV9fZm9y X2VhY2hfcGh5c2ljYWxfZW5naW5lKGZkLCBlKSB7Cj4gKwkJZm9yX2VhY2hfY3R4X2VuZ2luZShm ZCwgY3R4LCBlKSB7Cj4gIAkJCWlndF9keW5hbWljX2YoIiVzIiwgZS0+bmFtZSkKPiAtCQkJCWFj dGl2ZV9zcGluKGZkLCBlLT5mbGFncyk7Cj4gKwkJCQlhY3RpdmVfc3BpbihmZCwgY3R4LCBlLT5m bGFncyk7Cj4gIAkJfQo+ICAJfQo+ICAKPiAgCWlndF9zdWJ0ZXN0X3dpdGhfZHluYW1pYygiYmFz aWMtc3Bpbi1vdGhlcnMiKSB7Cj4gLQkJX19mb3JfZWFjaF9waHlzaWNhbF9lbmdpbmUoZmQsIGUp IHsKPiArCQlmb3JfZWFjaF9jdHhfZW5naW5lKGZkLCBjdHgsIGUpIHsKPiAgCQkJaWd0X2R5bmFt aWNfZigiJXMiLCBlLT5uYW1lKQo+IC0JCQkJb3RoZXJzX3NwaW4oZmQsIGUtPmZsYWdzKTsKPiAr CQkJCW90aGVyc19zcGluKGZkLCBjdHgsIGUtPmZsYWdzKTsKPiAgCQl9Cj4gIAl9Cj4gIAo+ICAJ aWd0X3N1YnRlc3Rfd2l0aF9keW5hbWljKCJiYXNpYy1tYW55LWFjdGl2ZSIpIHsKPiAtCQlfX2Zv cl9lYWNoX3BoeXNpY2FsX2VuZ2luZShmZCwgZSkgewo+ICsJCWZvcl9lYWNoX2N0eF9lbmdpbmUo ZmQsIGN0eCwgZSkgewo+ICAJCQlpZ3RfZHluYW1pY19mKCIlcyIsIGUtPm5hbWUpCj4gLQkJCQlt YW55X2FjdGl2ZShmZCwgZS0+ZmxhZ3MpOwo+ICsJCQkJbWFueV9hY3RpdmUoZmQsIGN0eCwgZS0+ ZmxhZ3MpOwo+ICAJCX0KPiAgCX0KPiAgCj4gIAlpZ3Rfc3VidGVzdF93aXRoX2R5bmFtaWMoImJh c2ljLXdpZGUtYWN0aXZlIikgewo+IC0JCV9fZm9yX2VhY2hfcGh5c2ljYWxfZW5naW5lKGZkLCBl KSB7Cj4gKwkJZm9yX2VhY2hfY3R4X2VuZ2luZShmZCwgY3R4LCBlKSB7Cj4gIAkJCWlndF9keW5h bWljX2YoIiVzIiwgZS0+bmFtZSkKPiAtCQkJCXdpZGVfYWN0aXZlKGZkLCBlLT5mbGFncyk7Cj4g KwkJCQl3aWRlX2FjdGl2ZShmZCwgY3R4LCBlLT5mbGFncyk7Cj4gIAkJfQo+ICAJfQo+ICAKPiAg CWlndF9zdWJ0ZXN0KCJiYXNpYy1wYXJhbGxlbCIpCj4gLQkJcGFyYWxsZWwoZmQpOwo+ICsJCXBh cmFsbGVsKGZkLCBjdHgpOwo+ICAKPiAgCWlndF9zdWJ0ZXN0KCJiYXNpYy1jb25jdXJyZW50MCIp Cj4gLQkJY29uY3VycmVudChmZCwgMCk7Cj4gKwkJY29uY3VycmVudChmZCwgY3R4LCAwKTsKPiAg CWlndF9zdWJ0ZXN0KCJiYXNpYy1jb25jdXJyZW50MTYiKQo+IC0JCWNvbmN1cnJlbnQoZmQsIDE2 KTsKPiArCQljb25jdXJyZW50KGZkLCBjdHgsIDE2KTsKPiAgCj4gIAlpZ3Rfc3VidGVzdCgiaW52 YWxpZC1kb21haW5zIikKPiAgCQlpbnZhbGlkX2RvbWFpbnMoZmQpOwo+IEBAIC0xNjA1LDkgKzE2 MjcsOSBAQCBpZ3RfbWFpbgo+ICAJCX0KPiAgCj4gIAkJaWd0X3N1YnRlc3Rfd2l0aF9keW5hbWlj KCJiYXNpYy1zY2Fub3V0Iikgewo+IC0JCQlfX2Zvcl9lYWNoX3BoeXNpY2FsX2VuZ2luZShmZCwg ZSkgewo+ICsJCQlmb3JfZWFjaF9jdHhfZW5naW5lKGZkLCBjdHgsIGUpIHsKPiAgCQkJCWlndF9k eW5hbWljX2YoIiVzIiwgZS0+bmFtZSkKPiAtCQkJCQlzY2Fub3V0KGZkLCAmZGlzcGxheSwgZSk7 Cj4gKwkJCQkJc2Nhbm91dChmZCwgJmRpc3BsYXksIGN0eCwgZSk7Cj4gIAkJCX0KPiAgCQl9Cj4g IAo+IC0tIAo+IDIuMzEuMQo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCj4gaWd0LWRldiBtYWlsaW5nIGxpc3QKPiBpZ3QtZGV2QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaWd0LWRldgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXYK