From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7C2266EC9B for ; Thu, 10 Jun 2021 08:50:29 +0000 (UTC) Date: Thu, 10 Jun 2021 10:50:13 +0200 From: Zbigniew =?utf-8?Q?Kempczy=C5=84ski?= Message-ID: <20210610085013.GF3926@zkempczy-mobl2> References: <20210609173632.248880-1-jason@jlekstrand.net> <20210609173632.248880-26-jason@jlekstrand.net> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20210609173632.248880-26-jason@jlekstrand.net> Subject: Re: [igt-dev] [PATCH i-g-t 25/93] tests/i915/gem_ctx_isolation: 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: T24gV2VkLCBKdW4gMDksIDIwMjEgYXQgMTI6MzY6MDhQTSAtMDUwMCwgSmFzb24gRWtzdHJhbmQg d3JvdGU6Cj4gU2lnbmVkLW9mZi1ieTogSmFzb24gRWtzdHJhbmQgPGphc29uQGpsZWtzdHJhbmQu bmV0Pgo+IC0tLQo+ICB0ZXN0cy9pOTE1L2dlbV9jdHhfaXNvbGF0aW9uLmMgfCAxMjYgKysrKysr KysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCj4gIDEgZmlsZSBjaGFuZ2VkLCA2NiBpbnNlcnRp b25zKCspLCA2MCBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9nZW1f Y3R4X2lzb2xhdGlvbi5jIGIvdGVzdHMvaTkxNS9nZW1fY3R4X2lzb2xhdGlvbi5jCj4gaW5kZXgg ZmY1ZDM3MTguLjcwYzE1YjYzIDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2k5MTUvZ2VtX2N0eF9pc29s YXRpb24uYwo+ICsrKyBiL3Rlc3RzL2k5MTUvZ2VtX2N0eF9pc29sYXRpb24uYwo+IEBAIC0yMzMs NyArMjMzLDcgQEAgc3RhdGljIGJvb2wgaWdub3JlX3JlZ2lzdGVyKHVpbnQzMl90IG9mZnNldCwg dWludDMyX3QgbW1pb19iYXNlKQo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZCB0bXBsX3JlZ3MoaW50 IGZkLAo+IC0JCSAgICAgIHVpbnQzMl90IGN0eCwKPiArCQkgICAgICBjb25zdCBpbnRlbF9jdHhf dCAqY3R4LAoKY3R4IGlzIG5vdCB1c2VkIGluIHRoaXMgZnVuY3Rpb24gYW5kIGNhbiBiZSBkZWxl dGVkLgoKPiAgCQkgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUs Cj4gIAkJICAgICAgdWludDMyX3QgaGFuZGxlLAo+ICAJCSAgICAgIHVpbnQzMl90IHZhbHVlKQo+ IEBAIC0yNzgsNyArMjc4LDcgQEAgc3RhdGljIHZvaWQgdG1wbF9yZWdzKGludCBmZCwKPiAgfQo+ ICAKPiAgc3RhdGljIHVpbnQzMl90IHJlYWRfcmVncyhpbnQgZmQsCj4gLQkJCSAgdWludDMyX3Qg Y3R4LAo+ICsJCQkgIGNvbnN0IGludGVsX2N0eF90ICpjdHgsCj4gIAkJCSAgY29uc3Qgc3RydWN0 IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICplLAo+ICAJCQkgIHVuc2lnbmVkIGludCBmbGFncykK PiAgewo+IEBAIC0zNTAsNyArMzUwLDcgQEAgc3RhdGljIHVpbnQzMl90IHJlYWRfcmVncyhpbnQg ZmQsCj4gIAlleGVjYnVmLmJ1ZmZlcnNfcHRyID0gdG9fdXNlcl9wb2ludGVyKG9iaik7Cj4gIAll eGVjYnVmLmJ1ZmZlcl9jb3VudCA9IDI7Cj4gIAlleGVjYnVmLmZsYWdzID0gZS0+ZmxhZ3M7Cj4g LQlleGVjYnVmLnJzdmQxID0gY3R4Owo+ICsJZXhlY2J1Zi5yc3ZkMSA9IGN0eC0+aWQ7Cj4gIAln ZW1fZXhlY2J1ZihmZCwgJmV4ZWNidWYpOwo+ICAJZ2VtX2Nsb3NlKGZkLCBvYmpbMV0uaGFuZGxl KTsKPiAgCWZyZWUocmVsb2MpOwo+IEBAIC0zNTksNyArMzU5LDcgQEAgc3RhdGljIHVpbnQzMl90 IHJlYWRfcmVncyhpbnQgZmQsCj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIHdyaXRlX3JlZ3MoaW50 IGZkLAo+IC0JCSAgICAgICB1aW50MzJfdCBjdHgsCj4gKwkJICAgICAgIGNvbnN0IGludGVsX2N0 eF90ICpjdHgsCj4gIAkJICAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5l MiAqZSwKPiAgCQkgICAgICAgdW5zaWduZWQgaW50IGZsYWdzLAo+ICAJCSAgICAgICB1aW50MzJf dCB2YWx1ZSkKPiBAQCAtNDE0LDEzICs0MTQsMTMgQEAgc3RhdGljIHZvaWQgd3JpdGVfcmVncyhp bnQgZmQsCj4gIAlleGVjYnVmLmJ1ZmZlcnNfcHRyID0gdG9fdXNlcl9wb2ludGVyKCZvYmopOwo+ ICAJZXhlY2J1Zi5idWZmZXJfY291bnQgPSAxOwo+ICAJZXhlY2J1Zi5mbGFncyA9IGUtPmZsYWdz Owo+IC0JZXhlY2J1Zi5yc3ZkMSA9IGN0eDsKPiArCWV4ZWNidWYucnN2ZDEgPSBjdHgtPmlkOwo+ ICAJZ2VtX2V4ZWNidWYoZmQsICZleGVjYnVmKTsKPiAgCWdlbV9jbG9zZShmZCwgb2JqLmhhbmRs ZSk7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIHJlc3RvcmVfcmVncyhpbnQgZmQsCj4gLQkJCSB1 aW50MzJfdCBjdHgsCj4gKwkJCSBjb25zdCBpbnRlbF9jdHhfdCAqY3R4LAo+ICAJCQkgY29uc3Qg c3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICplLAo+ICAJCQkgdW5zaWduZWQgaW50IGZs YWdzLAo+ICAJCQkgdWludDMyX3QgcmVncykKPiBAQCAtNDkyLDcgKzQ5Miw3IEBAIHN0YXRpYyB2 b2lkIHJlc3RvcmVfcmVncyhpbnQgZmQsCj4gIAlleGVjYnVmLmJ1ZmZlcnNfcHRyID0gdG9fdXNl cl9wb2ludGVyKG9iaik7Cj4gIAlleGVjYnVmLmJ1ZmZlcl9jb3VudCA9IDI7Cj4gIAlleGVjYnVm LmZsYWdzID0gZS0+ZmxhZ3M7Cj4gLQlleGVjYnVmLnJzdmQxID0gY3R4Owo+ICsJZXhlY2J1Zi5y c3ZkMSA9IGN0eC0+aWQ7Cj4gIAlnZW1fZXhlY2J1ZihmZCwgJmV4ZWNidWYpOwo+ICAJZ2VtX2Ns b3NlKGZkLCBvYmpbMV0uaGFuZGxlKTsKPiAgfQo+IEBAIC01OTYsNyArNTk2LDcgQEAgc3RhdGlj IHZvaWQgY29tcGFyZV9yZWdzKGludCBmZCwgY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9l bmdpbmUyICplLAo+ICAJCSAgICAgbnVtX2Vycm9ycywgd2hvKTsKPiAgfQo+ICAKPiAtc3RhdGlj IHZvaWQgbm9ucHJpdihpbnQgZmQsCj4gK3N0YXRpYyB2b2lkIG5vbnByaXYoaW50IGZkLCBjb25z dCBpbnRlbF9jdHhfY2ZnX3QgKmNmZywKPiAgCQkgICAgY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1 dGlvbl9lbmdpbmUyICplLAo+ICAJCSAgICB1bnNpZ25lZCBpbnQgZmxhZ3MpCj4gIHsKPiBAQCAt NjIxLDMzICs2MjEsMzQgQEAgc3RhdGljIHZvaWQgbm9ucHJpdihpbnQgZmQsCj4gIAo+ICAJZm9y IChpbnQgdiA9IDA7IHYgPCBudW1fdmFsdWVzOyB2KyspIHsKPiAgCQlpZ3Rfc3Bpbl90ICpzcGlu ID0gTlVMTDsKPiAtCQl1aW50MzJfdCBjdHgsIHJlZ3NbMl0sIHRtcGw7Cj4gKwkJY29uc3QgaW50 ZWxfY3R4X3QgKmN0eDsKPiArCQl1aW50MzJfdCByZWdzWzJdLCB0bXBsOwo+ICAKPiAtCQljdHgg PSBnZW1fY29udGV4dF9jbG9uZV93aXRoX2VuZ2luZXMoZmQsIDApOwo+ICsJCWN0eCA9IGludGVs X2N0eF9jcmVhdGUoZmQsIGNmZyk7Cj4gIAo+ICAJCXRtcGwgPSByZWFkX3JlZ3MoZmQsIGN0eCwg ZSwgZmxhZ3MpOwo+ICAJCXJlZ3NbMF0gPSByZWFkX3JlZ3MoZmQsIGN0eCwgZSwgZmxhZ3MpOwo+ ICAKPiAgCQl0bXBsX3JlZ3MoZmQsIGN0eCwgZSwgdG1wbCwgdmFsdWVzW3ZdKTsKPiAgCj4gLQkJ c3BpbiA9IGlndF9zcGluX25ldyhmZCwgLmN0eF9pZCA9IGN0eCwgLmVuZ2luZSA9IGUtPmZsYWdz KTsKPiArCQlzcGluID0gaWd0X3NwaW5fbmV3KGZkLCAuY3R4ID0gY3R4LCAuZW5naW5lID0gZS0+ ZmxhZ3MpOwo+ICAKPiAgCQlpZ3RfZGVidWcoIiVzWyVkXTogU2V0dGluZyBhbGwgcmVnaXN0ZXJz IHRvIDB4JTA4eFxuIiwKPiAgCQkJICBfX2Z1bmNfXywgdiwgdmFsdWVzW3ZdKTsKPiAgCQl3cml0 ZV9yZWdzKGZkLCBjdHgsIGUsIGZsYWdzLCB2YWx1ZXNbdl0pOwo+ICAKPiAgCQlpZiAoZmxhZ3Mg JiBESVJUWTIpIHsKPiAtCQkJdWludDMyX3Qgc3cgPSBnZW1fY29udGV4dF9jbG9uZV93aXRoX2Vu Z2luZXMoZmQsIDApOwo+ICsJCQljb25zdCBpbnRlbF9jdHhfdCAqc3cgPSBpbnRlbF9jdHhfY3Jl YXRlKGZkLCAmY3R4LT5jZmcpOwo+ICAJCQlpZ3Rfc3Bpbl90ICpzeW5jcHQsICpkaXJ0Owo+ICAK PiAgCQkJLyogRXhwbGljaXQgc3luYyB0byBrZWVwIHRoZSBzd2l0Y2ggYmV0d2VlbiB3cml0ZS9y ZWFkICovCj4gIAkJCXN5bmNwdCA9IGlndF9zcGluX25ldyhmZCwKPiAtCQkJCQkgICAgICAuY3R4 X2lkID0gY3R4LAo+ICsJCQkJCSAgICAgIC5jdHggPSBjdHgsCj4gIAkJCQkJICAgICAgLmVuZ2lu ZSA9IGUtPmZsYWdzLAo+ICAJCQkJCSAgICAgIC5mbGFncyA9IElHVF9TUElOX0ZFTkNFX09VVCk7 Cj4gIAo+ICAJCQlkaXJ0ID0gaWd0X3NwaW5fbmV3KGZkLAo+IC0JCQkJCSAgICAuY3R4X2lkID0g c3csCj4gKwkJCQkJICAgIC5jdHggPSBzdywKPiAgCQkJCQkgICAgLmVuZ2luZSA9IGUtPmZsYWdz LAo+ICAJCQkJCSAgICAuZmVuY2UgPSBzeW5jcHQtPm91dF9mZW5jZSwKPiAgCQkJCQkgICAgLmZs YWdzID0gKElHVF9TUElOX0ZFTkNFX0lOIHwKPiBAQCAtNjU1LDE0ICs2NTYsMTQgQEAgc3RhdGlj IHZvaWQgbm9ucHJpdihpbnQgZmQsCj4gIAkJCWlndF9zcGluX2ZyZWUoZmQsIHN5bmNwdCk7Cj4g IAo+ICAJCQlzeW5jcHQgPSBpZ3Rfc3Bpbl9uZXcoZmQsCj4gLQkJCQkJICAgICAgLmN0eF9pZCA9 IGN0eCwKPiArCQkJCQkgICAgICAuY3R4ID0gY3R4LAo+ICAJCQkJCSAgICAgIC5lbmdpbmUgPSBl LT5mbGFncywKPiAgCQkJCQkgICAgICAuZmVuY2UgPSBkaXJ0LT5vdXRfZmVuY2UsCj4gIAkJCQkJ ICAgICAgLmZsYWdzID0gSUdUX1NQSU5fRkVOQ0VfSU4pOwo+ICAJCQlpZ3Rfc3Bpbl9mcmVlKGZk LCBkaXJ0KTsKPiAgCj4gIAkJCWlndF9zcGluX2ZyZWUoZmQsIHN5bmNwdCk7Cj4gLQkJCWdlbV9j b250ZXh0X2Rlc3Ryb3koZmQsIHN3KTsKPiArCQkJaW50ZWxfY3R4X2Rlc3Ryb3koZmQsIHN3KTsK PiAgCQl9Cj4gIAo+ICAJCXJlZ3NbMV0gPSByZWFkX3JlZ3MoZmQsIGN0eCwgZSwgZmxhZ3MpOwo+ IEBAIC02NzksMTIgKzY4MCwxMiBAQCBzdGF0aWMgdm9pZCBub25wcml2KGludCBmZCwKPiAgCj4g IAkJZm9yIChpbnQgbiA9IDA7IG4gPCBBUlJBWV9TSVpFKHJlZ3MpOyBuKyspCj4gIAkJCWdlbV9j bG9zZShmZCwgcmVnc1tuXSk7Cj4gLQkJZ2VtX2NvbnRleHRfZGVzdHJveShmZCwgY3R4KTsKPiAr CQlpbnRlbF9jdHhfZGVzdHJveShmZCwgY3R4KTsKPiAgCQlnZW1fY2xvc2UoZmQsIHRtcGwpOwo+ ICAJfQo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBpc29sYXRpb24oaW50IGZkLAo+ICtzdGF0aWMg dm9pZCBpc29sYXRpb24oaW50IGZkLCBjb25zdCBpbnRlbF9jdHhfY2ZnX3QgKmNmZywKPiAgCQkg ICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUsCj4gIAkJICAgICAg dW5zaWduZWQgaW50IGZsYWdzKQo+ICB7Cj4gQEAgLTcwNCwxMiArNzA1LDEzIEBAIHN0YXRpYyB2 b2lkIGlzb2xhdGlvbihpbnQgZmQsCj4gIAo+ICAJZm9yIChpbnQgdiA9IDA7IHYgPCBudW1fdmFs dWVzOyB2KyspIHsKPiAgCQlpZ3Rfc3Bpbl90ICpzcGluID0gTlVMTDsKPiAtCQl1aW50MzJfdCBj dHhbMl0sIHJlZ3NbMl0sIHRtcDsKPiArCQljb25zdCBpbnRlbF9jdHhfdCAqY3R4WzJdOwo+ICsJ CXVpbnQzMl90IHJlZ3NbMl0sIHRtcDsKPiAgCj4gLQkJY3R4WzBdID0gZ2VtX2NvbnRleHRfY2xv bmVfd2l0aF9lbmdpbmVzKGZkLCAwKTsKPiArCQljdHhbMF0gPSBpbnRlbF9jdHhfY3JlYXRlKGZk LCBjZmcpOwo+ICAJCXJlZ3NbMF0gPSByZWFkX3JlZ3MoZmQsIGN0eFswXSwgZSwgZmxhZ3MpOwo+ ICAKPiAtCQlzcGluID0gaWd0X3NwaW5fbmV3KGZkLCAuY3R4X2lkID0gY3R4WzBdLCAuZW5naW5l ID0gZS0+ZmxhZ3MpOwo+ICsJCXNwaW4gPSBpZ3Rfc3Bpbl9uZXcoZmQsIC5jdHggPSBjdHhbMF0s IC5lbmdpbmUgPSBlLT5mbGFncyk7Cj4gIAo+ICAJCWlmIChmbGFncyAmIERJUlRZMSkgewo+ICAJ CQlpZ3RfZGVidWcoIiVzWyVkXTogU2V0dGluZyBhbGwgcmVnaXN0ZXJzIG9mIGN0eCAwIHRvIDB4 JTA4eFxuIiwKPiBAQCAtNzI1LDcgKzcyNyw3IEBAIHN0YXRpYyB2b2lkIGlzb2xhdGlvbihpbnQg ZmQsCj4gIAkJICogdGhlIGRlZmF1bHQgdmFsdWVzIGZyb20gdGhpcyBjb250ZXh0LCBidXQgaWYg Z29lcyBiYWRseSB3ZQo+ICAJCSAqIHNlZSB0aGUgY29ycnVwdGlvbiBmcm9tIHRoZSBwcmV2aW91 cyBjb250ZXh0IGluc3RlYWQhCj4gIAkJICovCj4gLQkJY3R4WzFdID0gZ2VtX2NvbnRleHRfY2xv bmVfd2l0aF9lbmdpbmVzKGZkLCAwKTsKPiArCQljdHhbMV0gPSBpbnRlbF9jdHhfY3JlYXRlKGZk LCBjZmcpOwo+ICAJCXJlZ3NbMV0gPSByZWFkX3JlZ3MoZmQsIGN0eFsxXSwgZSwgZmxhZ3MpOwo+ ICAKPiAgCQlpZiAoZmxhZ3MgJiBESVJUWTIpIHsKPiBAQCAtNzUwLDcgKzc1Miw3IEBAIHN0YXRp YyB2b2lkIGlzb2xhdGlvbihpbnQgZmQsCj4gIAo+ICAJCWZvciAoaW50IG4gPSAwOyBuIDwgQVJS QVlfU0laRShjdHgpOyBuKyspIHsKPiAgCQkJZ2VtX2Nsb3NlKGZkLCByZWdzW25dKTsKPiAtCQkJ Z2VtX2NvbnRleHRfZGVzdHJveShmZCwgY3R4W25dKTsKPiArCQkJaW50ZWxfY3R4X2Rlc3Ryb3ko ZmQsIGN0eFtuXSk7Cj4gIAkJfQo+ICAJCWdlbV9jbG9zZShmZCwgdG1wKTsKPiAgCX0KPiBAQCAt NzYzLDIxICs3NjUsMjUgQEAgc3RhdGljIHZvaWQgaXNvbGF0aW9uKGludCBmZCwKPiAgI2RlZmlu ZSBTNCAoNCA8PCA4KQo+ICAjZGVmaW5lIFNMRUVQX01BU0sgKDB4ZiA8PCA4KQo+ICAKPiAtc3Rh dGljIHVpbnQzMl90IGNyZWF0ZV9yZXNldF9jb250ZXh0KGludCBpOTE1KQo+ICtzdGF0aWMgY29u c3QgaW50ZWxfY3R4X3QgKgo+ICtjcmVhdGVfcmVzZXRfY29udGV4dChpbnQgaTkxNSwgY29uc3Qg aW50ZWxfY3R4X2NmZ190ICpjZmcpCj4gIHsKPiArCWNvbnN0IGludGVsX2N0eF90ICpjdHggPSBp bnRlbF9jdHhfY3JlYXRlKGk5MTUsIGNmZyk7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NvbnRl eHRfcGFyYW0gcGFyYW0gPSB7Cj4gLQkJLmN0eF9pZCA9IGdlbV9jb250ZXh0X2Nsb25lX3dpdGhf ZW5naW5lcyhpOTE1LCAwKSwKPiArCQkuY3R4X2lkID0gY3R4LT5pZCwKPiAgCQkucGFyYW0gPSBJ OTE1X0NPTlRFWFRfUEFSQU1fQkFOTkFCTEUsCj4gIAl9Owo+ICAKPiAgCWdlbV9jb250ZXh0X3Nl dF9wYXJhbShpOTE1LCAmcGFyYW0pOwo+IC0JcmV0dXJuIHBhcmFtLmN0eF9pZDsKPiArCXJldHVy biBjdHg7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGluamVjdF9yZXNldF9jb250ZXh0KGludCBm ZCwgY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICplKQo+ICtzdGF0aWMgdm9p ZCBpbmplY3RfcmVzZXRfY29udGV4dChpbnQgZmQsIGNvbnN0IGludGVsX2N0eF9jZmdfdCAqY2Zn LAo+ICsJCQkJIGNvbnN0IHN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiAqZSkKPiAgewo+ ICsJY29uc3QgaW50ZWxfY3R4X3QgKmN0eCA9IGNyZWF0ZV9yZXNldF9jb250ZXh0KGZkLCBjZmcp Owo+ICAJc3RydWN0IGlndF9zcGluX2ZhY3Rvcnkgb3B0cyA9IHsKPiAtCQkuY3R4X2lkID0gY3Jl YXRlX3Jlc2V0X2NvbnRleHQoZmQpLAo+ICsJCS5jdHggPSBjdHgsCj4gIAkJLmVuZ2luZSA9IGUt PmZsYWdzLAo+ICAJCS5mbGFncyA9IElHVF9TUElOX0ZBU1QsCj4gIAl9Owo+IEBAIC04MDIsMTAg KzgwOCwxMCBAQCBzdGF0aWMgdm9pZCBpbmplY3RfcmVzZXRfY29udGV4dChpbnQgZmQsIGNvbnN0 IHN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiAqZQo+ICAJaWd0X2ZvcmNlX2dwdV9yZXNl dChmZCk7Cj4gIAo+ICAJaWd0X3NwaW5fZnJlZShmZCwgc3Bpbik7Cj4gLQlnZW1fY29udGV4dF9k ZXN0cm95KGZkLCBvcHRzLmN0eF9pZCk7Cj4gKwlpbnRlbF9jdHhfZGVzdHJveShmZCwgY3R4KTsK PiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgcHJlc2VydmF0aW9uKGludCBmZCwKPiArc3RhdGljIHZv aWQgcHJlc2VydmF0aW9uKGludCBmZCwgY29uc3QgaW50ZWxfY3R4X2NmZ190ICpjZmcsCj4gIAkJ CSBjb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUsCj4gIAkJCSB1bnNpZ25l ZCBpbnQgZmxhZ3MpCj4gIHsKPiBAQCAtODE5LDE3ICs4MjUsMTcgQEAgc3RhdGljIHZvaWQgcHJl c2VydmF0aW9uKGludCBmZCwKPiAgCQkweGRlYWRiZWVmCj4gIAl9Owo+ICAJY29uc3QgdW5zaWdu ZWQgaW50IG51bV92YWx1ZXMgPSBBUlJBWV9TSVpFKHZhbHVlcyk7Cj4gLQl1aW50MzJfdCBjdHhb bnVtX3ZhbHVlcyArMSBdOwo+ICsJY29uc3QgaW50ZWxfY3R4X3QgKmN0eFtudW1fdmFsdWVzICsx IF07CgpJIHdvdWxkIGZpeCB0aGF0IHVubHVja3kgdHlwbyAoW251bV92YWx1ZXMgKzEgXSAtPiBb bnVtX3ZhbHVlcyArMV0pLgoKV2l0aCB0aG9zZSBuaXRzOgoKUmV2aWV3ZWQtYnk6IFpiaWduaWV3 IEtlbXBjennFhHNraSA8emJpZ25pZXcua2VtcGN6eW5za2lAaW50ZWwuY29tPgoKLS0KWmJpZ25p ZXcKCj4gIAl1aW50MzJfdCByZWdzW251bV92YWx1ZXMgKyAxXVsyXTsKPiAgCWlndF9zcGluX3Qg KnNwaW47Cj4gIAo+ICAJZ2VtX3F1aWVzY2VudF9ncHUoZmQpOwo+ICAKPiAtCWN0eFtudW1fdmFs dWVzXSA9IGdlbV9jb250ZXh0X2Nsb25lX3dpdGhfZW5naW5lcyhmZCwgMCk7Cj4gLQlzcGluID0g aWd0X3NwaW5fbmV3KGZkLCAuY3R4X2lkID0gY3R4W251bV92YWx1ZXNdLCAuZW5naW5lID0gZS0+ ZmxhZ3MpOwo+ICsJY3R4W251bV92YWx1ZXNdID0gaW50ZWxfY3R4X2NyZWF0ZShmZCwgY2ZnKTsK PiArCXNwaW4gPSBpZ3Rfc3Bpbl9uZXcoZmQsIC5jdHggPSBjdHhbbnVtX3ZhbHVlc10sIC5lbmdp bmUgPSBlLT5mbGFncyk7Cj4gIAlyZWdzW251bV92YWx1ZXNdWzBdID0gcmVhZF9yZWdzKGZkLCBj dHhbbnVtX3ZhbHVlc10sIGUsIGZsYWdzKTsKPiAgCWZvciAoaW50IHYgPSAwOyB2IDwgbnVtX3Zh bHVlczsgdisrKSB7Cj4gLQkJY3R4W3ZdID0gZ2VtX2NvbnRleHRfY2xvbmVfd2l0aF9lbmdpbmVz KGZkLCAwKTsKPiArCQljdHhbdl0gPSBpbnRlbF9jdHhfY3JlYXRlKGZkLCBjZmcpOwo+ICAJCXdy aXRlX3JlZ3MoZmQsIGN0eFt2XSwgZSwgZmxhZ3MsIHZhbHVlc1t2XSk7Cj4gIAo+ICAJCXJlZ3Nb dl1bMF0gPSByZWFkX3JlZ3MoZmQsIGN0eFt2XSwgZSwgZmxhZ3MpOwo+IEBAIC04MzksNyArODQ1 LDcgQEAgc3RhdGljIHZvaWQgcHJlc2VydmF0aW9uKGludCBmZCwKPiAgCWlndF9zcGluX2ZyZWUo ZmQsIHNwaW4pOwo+ICAKPiAgCWlmIChmbGFncyAmIFJFU0VUKQo+IC0JCWluamVjdF9yZXNldF9j b250ZXh0KGZkLCBlKTsKPiArCQlpbmplY3RfcmVzZXRfY29udGV4dChmZCwgY2ZnLCBlKTsKPiAg Cj4gIAlzd2l0Y2ggKGZsYWdzICYgU0xFRVBfTUFTSykgewo+ICAJY2FzZSBOT1NMRUVQOgo+IEBA IC04NjYsNyArODcyLDcgQEAgc3RhdGljIHZvaWQgcHJlc2VydmF0aW9uKGludCBmZCwKPiAgCQli cmVhazsKPiAgCX0KPiAgCj4gLQlzcGluID0gaWd0X3NwaW5fbmV3KGZkLCAuY3R4X2lkID0gY3R4 W251bV92YWx1ZXNdLCAuZW5naW5lID0gZS0+ZmxhZ3MpOwo+ICsJc3BpbiA9IGlndF9zcGluX25l dyhmZCwgLmN0eCA9IGN0eFtudW1fdmFsdWVzXSwgLmVuZ2luZSA9IGUtPmZsYWdzKTsKPiAgCWZv ciAoaW50IHYgPSAwOyB2IDwgbnVtX3ZhbHVlczsgdisrKQo+ICAJCXJlZ3Nbdl1bMV0gPSByZWFk X3JlZ3MoZmQsIGN0eFt2XSwgZSwgZmxhZ3MpOwo+ICAJcmVnc1tudW1fdmFsdWVzXVsxXSA9IHJl YWRfcmVncyhmZCwgY3R4W251bV92YWx1ZXNdLCBlLCBmbGFncyk7Cj4gQEAgLTg4MCwxMCArODg2 LDEwIEBAIHN0YXRpYyB2b2lkIHByZXNlcnZhdGlvbihpbnQgZmQsCj4gIAo+ICAJCWdlbV9jbG9z ZShmZCwgcmVnc1t2XVswXSk7Cj4gIAkJZ2VtX2Nsb3NlKGZkLCByZWdzW3ZdWzFdKTsKPiAtCQln ZW1fY29udGV4dF9kZXN0cm95KGZkLCBjdHhbdl0pOwo+ICsJCWludGVsX2N0eF9kZXN0cm95KGZk LCBjdHhbdl0pOwo+ICAJfQo+ICAJY29tcGFyZV9yZWdzKGZkLCBlLCByZWdzW251bV92YWx1ZXNd WzBdLCByZWdzW251bV92YWx1ZXNdWzFdLCAiY2xlYW4iKTsKPiAtCWdlbV9jb250ZXh0X2Rlc3Ry b3koZmQsIGN0eFtudW1fdmFsdWVzXSk7Cj4gKwlpbnRlbF9jdHhfZGVzdHJveShmZCwgY3R4W251 bV92YWx1ZXNdKTsKPiAgfQo+ICAKPiAgc3RhdGljIHVuc2lnbmVkIGludCBfX2hhc19jb250ZXh0 X2lzb2xhdGlvbihpbnQgZmQpCj4gQEAgLTkwMSw4ICs5MDcsOCBAQCBzdGF0aWMgdW5zaWduZWQg aW50IF9faGFzX2NvbnRleHRfaXNvbGF0aW9uKGludCBmZCkKPiAgCXJldHVybiB2YWx1ZTsKPiAg fQo+ICAKPiAtI2RlZmluZSB0ZXN0X2VhY2hfZW5naW5lKGUsIGk5MTUsIG1hc2spIFwKPiAtCV9f Zm9yX2VhY2hfcGh5c2ljYWxfZW5naW5lKGk5MTUsIGUpIFwKPiArI2RlZmluZSB0ZXN0X2VhY2hf ZW5naW5lKGUsIGk5MTUsIGNmZywgbWFzaykgXAo+ICsJZm9yX2VhY2hfY3R4X2NmZ19lbmdpbmUo aTkxNSwgY2ZnLCBlKSBcCj4gIAkJZm9yX2VhY2hfaWYobWFzayAmICgxIDw8IChlKS0+Y2xhc3Mp KSBcCj4gIAkJCWlndF9keW5hbWljX2YoIiVzIiwgKGUpLT5uYW1lKQo+ICAKPiBAQCAtOTEwLDYg KzkxNiw3IEBAIGlndF9tYWluCj4gIHsKPiAgCXVuc2lnbmVkIGludCBoYXNfY29udGV4dF9pc29s YXRpb24gPSAwOwo+ICAJY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICplOwo+ ICsJaW50ZWxfY3R4X2NmZ190IGNmZzsKPiAgCWludCBpOTE1ID0gLTE7Cj4gIAo+ICAJaWd0X2Zp eHR1cmUgewo+IEBAIC05MTgsNiArOTI1LDcgQEAgaWd0X21haW4KPiAgCQlpOTE1ID0gZHJtX29w ZW5fZHJpdmVyKERSSVZFUl9JTlRFTCk7Cj4gIAkJaWd0X3JlcXVpcmVfZ2VtKGk5MTUpOwo+ICAJ CWlndF9yZXF1aXJlKGdlbV9oYXNfY29udGV4dHMoaTkxNSkpOwo+ICsJCWNmZyA9IGludGVsX2N0 eF9jZmdfYWxsX3BoeXNpY2FsKGk5MTUpOwo+ICAKPiAgCQloYXNfY29udGV4dF9pc29sYXRpb24g PSBfX2hhc19jb250ZXh0X2lzb2xhdGlvbihpOTE1KTsKPiAgCQlpZ3RfcmVxdWlyZShoYXNfY29u dGV4dF9pc29sYXRpb24pOwo+IEBAIC05MjksNTAgKzkzNyw0OCBAQCBpZ3RfbWFpbgo+ICAJCWln dF9za2lwX29uKGdlbiA+IExBU1RfS05PV05fR0VOKTsKPiAgCX0KPiAgCj4gLQkvKiBfX2Zvcl9l YWNoX3BoeXNpY2FsX2VuZ2luZSBzd2l0Y2hlcyBjb250ZXh0IHRvIGFsbCBlbmdpbmVzLiAqLwo+ IC0KPiAgCWlndF9maXh0dXJlIHsKPiAgCQlpZ3RfZm9ya19oYW5nX2RldGVjdG9yKGk5MTUpOwo+ ICAJfQo+ICAKPiAgCWlndF9zdWJ0ZXN0X3dpdGhfZHluYW1pYygibm9ucHJpdiIpIHsKPiAtCQl0 ZXN0X2VhY2hfZW5naW5lKGUsIGk5MTUsIGhhc19jb250ZXh0X2lzb2xhdGlvbikKPiAtCQkJbm9u cHJpdihpOTE1LCBlLCAwKTsKPiArCQl0ZXN0X2VhY2hfZW5naW5lKGUsIGk5MTUsICZjZmcsIGhh c19jb250ZXh0X2lzb2xhdGlvbikKPiArCQkJbm9ucHJpdihpOTE1LCAmY2ZnLCBlLCAwKTsKPiAg CX0KPiAgCj4gIAlpZ3Rfc3VidGVzdF93aXRoX2R5bmFtaWMoIm5vbnByaXYtc3dpdGNoIikgewo+ IC0JCXRlc3RfZWFjaF9lbmdpbmUoZSwgaTkxNSwgaGFzX2NvbnRleHRfaXNvbGF0aW9uKQo+IC0J CQlub25wcml2KGk5MTUsIGUsIERJUlRZMik7Cj4gKwkJdGVzdF9lYWNoX2VuZ2luZShlLCBpOTE1 LCAmY2ZnLCBoYXNfY29udGV4dF9pc29sYXRpb24pCj4gKwkJCW5vbnByaXYoaTkxNSwgJmNmZywg ZSwgRElSVFkyKTsKPiAgCX0KPiAgCj4gIAlpZ3Rfc3VidGVzdF93aXRoX2R5bmFtaWMoImNsZWFu Iikgewo+IC0JCXRlc3RfZWFjaF9lbmdpbmUoZSwgaTkxNSwgaGFzX2NvbnRleHRfaXNvbGF0aW9u KQo+IC0JCQlpc29sYXRpb24oaTkxNSwgZSwgMCk7Cj4gKwkJdGVzdF9lYWNoX2VuZ2luZShlLCBp OTE1LCAmY2ZnLCBoYXNfY29udGV4dF9pc29sYXRpb24pCj4gKwkJCWlzb2xhdGlvbihpOTE1LCAm Y2ZnLCBlLCAwKTsKPiAgCX0KPiAgCj4gIAlpZ3Rfc3VidGVzdF93aXRoX2R5bmFtaWMoImRpcnR5 LWNyZWF0ZSIpIHsKPiAtCQl0ZXN0X2VhY2hfZW5naW5lKGUsIGk5MTUsIGhhc19jb250ZXh0X2lz b2xhdGlvbikKPiAtCQkJaXNvbGF0aW9uKGk5MTUsIGUsIERJUlRZMSk7Cj4gKwkJdGVzdF9lYWNo X2VuZ2luZShlLCBpOTE1LCAmY2ZnLCBoYXNfY29udGV4dF9pc29sYXRpb24pCj4gKwkJCWlzb2xh dGlvbihpOTE1LCAmY2ZnLCBlLCBESVJUWTEpOwo+ICAJfQo+ICAKPiAgCWlndF9zdWJ0ZXN0X3dp dGhfZHluYW1pYygiZGlydHktc3dpdGNoIikgewo+IC0JCXRlc3RfZWFjaF9lbmdpbmUoZSwgaTkx NSwgaGFzX2NvbnRleHRfaXNvbGF0aW9uKQo+IC0JCQlpc29sYXRpb24oaTkxNSwgZSwgRElSVFky KTsKPiArCQl0ZXN0X2VhY2hfZW5naW5lKGUsIGk5MTUsICZjZmcsIGhhc19jb250ZXh0X2lzb2xh dGlvbikKPiArCQkJaXNvbGF0aW9uKGk5MTUsICZjZmcsIGUsIERJUlRZMik7Cj4gIAl9Cj4gIAo+ ICAJaWd0X3N1YnRlc3Rfd2l0aF9keW5hbWljKCJwcmVzZXJ2YXRpb24iKSB7Cj4gLQkJdGVzdF9l YWNoX2VuZ2luZShlLCBpOTE1LCBoYXNfY29udGV4dF9pc29sYXRpb24pCj4gLQkJCXByZXNlcnZh dGlvbihpOTE1LCBlLCAwKTsKPiArCQl0ZXN0X2VhY2hfZW5naW5lKGUsIGk5MTUsICZjZmcsIGhh c19jb250ZXh0X2lzb2xhdGlvbikKPiArCQkJcHJlc2VydmF0aW9uKGk5MTUsICZjZmcsIGUsIDAp Owo+ICAJfQo+ICAKPiAgCWlndF9zdWJ0ZXN0X3dpdGhfZHluYW1pYygicHJlc2VydmF0aW9uLVMz Iikgewo+IC0JCXRlc3RfZWFjaF9lbmdpbmUoZSwgaTkxNSwgaGFzX2NvbnRleHRfaXNvbGF0aW9u KQo+IC0JCQlwcmVzZXJ2YXRpb24oaTkxNSwgZSwgUzMpOwo+ICsJCXRlc3RfZWFjaF9lbmdpbmUo ZSwgaTkxNSwgJmNmZywgaGFzX2NvbnRleHRfaXNvbGF0aW9uKQo+ICsJCQlwcmVzZXJ2YXRpb24o aTkxNSwgJmNmZywgZSwgUzMpOwo+ICAJfQo+ICAKPiAgCWlndF9zdWJ0ZXN0X3dpdGhfZHluYW1p YygicHJlc2VydmF0aW9uLVM0Iikgewo+IC0JCXRlc3RfZWFjaF9lbmdpbmUoZSwgaTkxNSwgaGFz X2NvbnRleHRfaXNvbGF0aW9uKQo+IC0JCQlwcmVzZXJ2YXRpb24oaTkxNSwgZSwgUzQpOwo+ICsJ CXRlc3RfZWFjaF9lbmdpbmUoZSwgaTkxNSwgJmNmZywgaGFzX2NvbnRleHRfaXNvbGF0aW9uKQo+ ICsJCQlwcmVzZXJ2YXRpb24oaTkxNSwgJmNmZywgZSwgUzQpOwo+ICAJfQo+ICAKPiAgCWlndF9m aXh0dXJlIHsKPiBAQCAtOTgyLDggKzk4OCw4IEBAIGlndF9tYWluCj4gIAlpZ3Rfc3VidGVzdF93 aXRoX2R5bmFtaWMoInByZXNlcnZhdGlvbi1yZXNldCIpIHsKPiAgCQlpZ3RfaGFuZ190IGhhbmcg PSBpZ3RfYWxsb3dfaGFuZyhpOTE1LCAwLCAwKTsKPiAgCj4gLQkJdGVzdF9lYWNoX2VuZ2luZShl LCBpOTE1LCBoYXNfY29udGV4dF9pc29sYXRpb24pCj4gLQkJCXByZXNlcnZhdGlvbihpOTE1LCBl LCBSRVNFVCk7Cj4gKwkJdGVzdF9lYWNoX2VuZ2luZShlLCBpOTE1LCAmY2ZnLCBoYXNfY29udGV4 dF9pc29sYXRpb24pCj4gKwkJCXByZXNlcnZhdGlvbihpOTE1LCAmY2ZnLCBlLCBSRVNFVCk7Cj4g IAo+ICAJCWlndF9kaXNhbGxvd19oYW5nKGk5MTUsIGhhbmcpOwo+ICAJfQo+IC0tIAo+IDIuMzEu MQo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4g aWd0LWRldiBtYWlsaW5nIGxpc3QKPiBpZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxp bmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXYK