From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH v4 1/2] drm/i915/selftests: Verify context workarounds Date: Mon, 20 May 2019 15:25:46 +0100 Message-ID: <20190520142546.12493-1-tvrtko.ursulin@linux.intel.com> References: <20190520110442.403-1-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2817489110 for ; Mon, 20 May 2019 14:25:51 +0000 (UTC) In-Reply-To: <20190520110442.403-1-tvrtko.ursulin@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KClRlc3QgY29u dGV4dCB3b3JrYXJvdW5kcyBoYXZlIGJlZW4gY29ycmVjdGx5IGFwcGxpZWQgaW4gbmV3bHkgY3Jl YXRlZApjb250ZXh0cy4KClRvIGFjY29tcGxpc2ggdGhpcyB0aGUgZXhpc3RpbmcgZW5naW5lX3dh X2xpc3RfdmVyaWZ5IGhlbHBlciBpcyBleHRlbmRlZAp0byB0YWtlIGluIGEgY29udGV4dCBmcm9t IHdoaWNoIHJlYWRpbmcgb2YgdGhlIHdvcmthcm91bmQgbGlzdCB3aWxsIGJlCmRvbmUuCgpDb250 ZXh0IHdvcmthcm91bmQgdmVyaWZpY2F0aW9uIGlzIGRvbmUgZnJvbSB0aGUgZXhpc3Rpbmcgc3Vi dGVzdHMsIHdoaWNoCmhhdmUgYmVlbiByZW5hbWVkIHRvIHJlZmxlY3QgdGhleSBhcmUgbm8gbG9u Z2VyIG9ubHkgYWJvdXQgR1QgYW5kIGVuZ2luZQp3b3JrYXJvdW5kcy4KCnYyOgogKiBUZXN0IGFm dGVyIHJlc2V0cyBhbmQgcmVmYWN0b3IgdG8gdXNlIGludGVsX2NvbnRleHQgbW9yZS4gKENocmlz KQoKdjM6CiAqIFVzZSBjZS0+ZW5naW5lLT5pOTE1IGluc3RlYWQgb2YgY2UtPmdlbV9jb250ZXh0 LT5pOTE1LiAoQ2hyaXMpCiAqIGdlbV9lbmdpbmVfaXRlci5pZHggaXMgZW5naW5lLT5pZCArIDEu IChDaHJpcykKCnY0OgogKiBNYWtlIGxvY2FsIGZ1bmN0aW9uIHN0YXRpYy4KClNpZ25lZC1vZmYt Ynk6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+ClJldmlld2VkLWJ5 OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KLS0tCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9ndC9pbnRlbF93b3JrYXJvdW5kcy5jICAgfCAxMTIgKysrKysrKysrKy0tLS0t LS0tCiAuLi4vZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X3dvcmthcm91bmRzLmMgICAgfCAgNTQg KysrKysrLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDk4IGluc2VydGlvbnMoKyksIDY4IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3dvcmthcm91 bmRzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF93b3JrYXJvdW5kcy5jCmluZGV4 IDQzZTI5MDMwNjU1MS4uZDY5MmI4MzU4M2ZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC9pbnRlbF93b3JrYXJvdW5kcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0 L2ludGVsX3dvcmthcm91bmRzLmMKQEAgLTE5NiwxMCArMTk2LDkgQEAgaWdub3JlX3dhX3dyaXRl X29yKHN0cnVjdCBpOTE1X3dhX2xpc3QgKndhbCwgaTkxNV9yZWdfdCByZWcsIHUzMiBtYXNrLCB1 MzIgdmFsKQogI2RlZmluZSBXQV9TRVRfRklFTERfTUFTS0VEKGFkZHIsIG1hc2ssIHZhbHVlKSBc CiAJd2Ffd3JpdGVfbWFza2VkX29yKHdhbCwgKGFkZHIpLCAobWFzayksIF9NQVNLRURfRklFTEQo KG1hc2spLCAodmFsdWUpKSkKIAotc3RhdGljIHZvaWQgZ2VuOF9jdHhfd29ya2Fyb3VuZHNfaW5p dChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCitzdGF0aWMgdm9pZCBnZW44X2N0eF93 b3JrYXJvdW5kc19pbml0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKKwkJCQkgICAg ICBzdHJ1Y3QgaTkxNV93YV9saXN0ICp3YWwpCiB7Ci0Jc3RydWN0IGk5MTVfd2FfbGlzdCAqd2Fs ID0gJmVuZ2luZS0+Y3R4X3dhX2xpc3Q7Ci0KIAlXQV9TRVRfQklUX01BU0tFRChJTlNUUE0sIElO U1RQTV9GT1JDRV9PUkRFUklORyk7CiAKIAkvKiBXYURpc2FibGVBc3luY0ZsaXBQZXJmTW9kZTpi ZHcsY2h2ICovCkBAIC0yNDUsMTIgKzI0NCwxMiBAQCBzdGF0aWMgdm9pZCBnZW44X2N0eF93b3Jr YXJvdW5kc19pbml0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAkJCSAgICBHRU42 X1dJWl9IQVNISU5HXzE2eDQpOwogfQogCi1zdGF0aWMgdm9pZCBiZHdfY3R4X3dvcmthcm91bmRz X2luaXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQorc3RhdGljIHZvaWQgYmR3X2N0 eF93b3JrYXJvdW5kc19pbml0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKKwkJCQkg ICAgIHN0cnVjdCBpOTE1X3dhX2xpc3QgKndhbCkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqaTkxNSA9IGVuZ2luZS0+aTkxNTsKLQlzdHJ1Y3QgaTkxNV93YV9saXN0ICp3YWwgPSAmZW5n aW5lLT5jdHhfd2FfbGlzdDsKIAotCWdlbjhfY3R4X3dvcmthcm91bmRzX2luaXQoZW5naW5lKTsK KwlnZW44X2N0eF93b3JrYXJvdW5kc19pbml0KGVuZ2luZSwgd2FsKTsKIAogCS8qIFdhRGlzYWJs ZVRocmVhZFN0YWxsRG9wQ2xvY2tHYXRpbmc6YmR3IChwcmUtcHJvZHVjdGlvbikgKi8KIAlXQV9T RVRfQklUX01BU0tFRChHRU44X1JPV19DSElDS0VOLCBTVEFMTF9ET1BfR0FUSU5HX0RJU0FCTEUp OwpAQCAtMjczLDExICsyNzIsMTAgQEAgc3RhdGljIHZvaWQgYmR3X2N0eF93b3JrYXJvdW5kc19p bml0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAkJCSAgKElTX0JEV19HVDMoaTkx NSkgPyBIRENfRkVOQ0VfREVTVF9TTE1fRElTQUJMRSA6IDApKTsKIH0KIAotc3RhdGljIHZvaWQg Y2h2X2N0eF93b3JrYXJvdW5kc19pbml0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkK K3N0YXRpYyB2b2lkIGNodl9jdHhfd29ya2Fyb3VuZHNfaW5pdChzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUsCisJCQkJICAgICBzdHJ1Y3QgaTkxNV93YV9saXN0ICp3YWwpCiB7Ci0Jc3Ry dWN0IGk5MTVfd2FfbGlzdCAqd2FsID0gJmVuZ2luZS0+Y3R4X3dhX2xpc3Q7Ci0KLQlnZW44X2N0 eF93b3JrYXJvdW5kc19pbml0KGVuZ2luZSk7CisJZ2VuOF9jdHhfd29ya2Fyb3VuZHNfaW5pdChl bmdpbmUsIHdhbCk7CiAKIAkvKiBXYURpc2FibGVUaHJlYWRTdGFsbERvcENsb2NrR2F0aW5nOmNo diAqLwogCVdBX1NFVF9CSVRfTUFTS0VEKEdFTjhfUk9XX0NISUNLRU4sIFNUQUxMX0RPUF9HQVRJ TkdfRElTQUJMRSk7CkBAIC0yODYsMTAgKzI4NCwxMCBAQCBzdGF0aWMgdm9pZCBjaHZfY3R4X3dv cmthcm91bmRzX2luaXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCVdBX1NFVF9C SVRfTUFTS0VEKEhJWl9DSElDS0VOLCBDSFZfSFpfOFg4X01PREVfSU5fMVgpOwogfQogCi1zdGF0 aWMgdm9pZCBnZW45X2N0eF93b3JrYXJvdW5kc19pbml0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSkKK3N0YXRpYyB2b2lkIGdlbjlfY3R4X3dvcmthcm91bmRzX2luaXQoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lLAorCQkJCSAgICAgIHN0cnVjdCBpOTE1X3dhX2xpc3QgKndh bCkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGVuZ2luZS0+aTkxNTsKLQlz dHJ1Y3QgaTkxNV93YV9saXN0ICp3YWwgPSAmZW5naW5lLT5jdHhfd2FfbGlzdDsKIAogCWlmIChI QVNfTExDKGk5MTUpKSB7CiAJCS8qIFdhQ29tcHJlc3NlZFJlc291cmNlU2FtcGxlclBiZU1lZGlh TmV3SGFzaE1vZGU6c2tsLGtibApAQCAtMzg0LDEwICszODIsMTAgQEAgc3RhdGljIHZvaWQgZ2Vu OV9jdHhfd29ya2Fyb3VuZHNfaW5pdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJ CVdBX1NFVF9CSVRfTUFTS0VEKEdFTjlfV01fQ0hJQ0tFTjMsIEdFTjlfRkFDVE9SX0lOX0NMUl9W QUxfSElaKTsKIH0KIAotc3RhdGljIHZvaWQgc2tsX3R1bmVfaXpfaGFzaGluZyhzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUpCitzdGF0aWMgdm9pZCBza2xfdHVuZV9pel9oYXNoaW5nKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKKwkJCQlzdHJ1Y3QgaTkxNV93YV9saXN0ICp3 YWwpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBlbmdpbmUtPmk5MTU7Ci0J c3RydWN0IGk5MTVfd2FfbGlzdCAqd2FsID0gJmVuZ2luZS0+Y3R4X3dhX2xpc3Q7CiAJdTggdmFs c1szXSA9IHsgMCwgMCwgMCB9OwogCXVuc2lnbmVkIGludCBpOwogCkBAIC00MjQsMTcgKzQyMiwx NyBAQCBzdGF0aWMgdm9pZCBza2xfdHVuZV9pel9oYXNoaW5nKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZSkKIAkJCSAgICBHRU45X0laX0hBU0hJTkcoMCwgdmFsc1swXSkpOwogfQogCi1z dGF0aWMgdm9pZCBza2xfY3R4X3dvcmthcm91bmRzX2luaXQoc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lKQorc3RhdGljIHZvaWQgc2tsX2N0eF93b3JrYXJvdW5kc19pbml0KHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKKwkJCQkgICAgIHN0cnVjdCBpOTE1X3dhX2xpc3QgKndh bCkKIHsKLQlnZW45X2N0eF93b3JrYXJvdW5kc19pbml0KGVuZ2luZSk7Ci0Jc2tsX3R1bmVfaXpf aGFzaGluZyhlbmdpbmUpOworCWdlbjlfY3R4X3dvcmthcm91bmRzX2luaXQoZW5naW5lLCB3YWwp OworCXNrbF90dW5lX2l6X2hhc2hpbmcoZW5naW5lLCB3YWwpOwogfQogCi1zdGF0aWMgdm9pZCBi eHRfY3R4X3dvcmthcm91bmRzX2luaXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQor c3RhdGljIHZvaWQgYnh0X2N0eF93b3JrYXJvdW5kc19pbml0KHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZSwKKwkJCQkgICAgIHN0cnVjdCBpOTE1X3dhX2xpc3QgKndhbCkKIHsKLQlzdHJ1 Y3QgaTkxNV93YV9saXN0ICp3YWwgPSAmZW5naW5lLT5jdHhfd2FfbGlzdDsKLQotCWdlbjlfY3R4 X3dvcmthcm91bmRzX2luaXQoZW5naW5lKTsKKwlnZW45X2N0eF93b3JrYXJvdW5kc19pbml0KGVu Z2luZSwgd2FsKTsKIAogCS8qIFdhRGlzYWJsZVRocmVhZFN0YWxsRG9wQ2xvY2tHYXRpbmc6Ynh0 ICovCiAJV0FfU0VUX0JJVF9NQVNLRUQoR0VOOF9ST1dfQ0hJQ0tFTiwKQEAgLTQ0NSwxMiArNDQz LDEyIEBAIHN0YXRpYyB2b2lkIGJ4dF9jdHhfd29ya2Fyb3VuZHNfaW5pdChzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUpCiAJCQkgIEdFTjhfU0JFX0RJU0FCTEVfUkVQTEFZX0JVRl9PUFRJ TUlaQVRJT04pOwogfQogCi1zdGF0aWMgdm9pZCBrYmxfY3R4X3dvcmthcm91bmRzX2luaXQoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQorc3RhdGljIHZvaWQga2JsX2N0eF93b3JrYXJv dW5kc19pbml0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKKwkJCQkgICAgIHN0cnVj dCBpOTE1X3dhX2xpc3QgKndhbCkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9 IGVuZ2luZS0+aTkxNTsKLQlzdHJ1Y3QgaTkxNV93YV9saXN0ICp3YWwgPSAmZW5naW5lLT5jdHhf d2FfbGlzdDsKIAotCWdlbjlfY3R4X3dvcmthcm91bmRzX2luaXQoZW5naW5lKTsKKwlnZW45X2N0 eF93b3JrYXJvdW5kc19pbml0KGVuZ2luZSwgd2FsKTsKIAogCS8qIFdhVG9FbmFibGVId0ZpeEZv clB1c2hDb25zdEhXQnVnOmtibCAqLwogCWlmIChJU19LQkxfUkVWSUQoaTkxNSwgS0JMX1JFVklE X0MwLCBSRVZJRF9GT1JFVkVSKSkKQEAgLTQ2MiwyMiArNDYwLDIwIEBAIHN0YXRpYyB2b2lkIGti bF9jdHhfd29ya2Fyb3VuZHNfaW5pdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJ CQkgIEdFTjdfU0JFX1NTX0NBQ0hFX0RJU1BBVENIX1BPUlRfU0hBUklOR19ESVNBQkxFKTsKIH0K IAotc3RhdGljIHZvaWQgZ2xrX2N0eF93b3JrYXJvdW5kc19pbml0KHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZSkKK3N0YXRpYyB2b2lkIGdsa19jdHhfd29ya2Fyb3VuZHNfaW5pdChzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCisJCQkJICAgICBzdHJ1Y3QgaTkxNV93YV9saXN0 ICp3YWwpCiB7Ci0Jc3RydWN0IGk5MTVfd2FfbGlzdCAqd2FsID0gJmVuZ2luZS0+Y3R4X3dhX2xp c3Q7Ci0KLQlnZW45X2N0eF93b3JrYXJvdW5kc19pbml0KGVuZ2luZSk7CisJZ2VuOV9jdHhfd29y a2Fyb3VuZHNfaW5pdChlbmdpbmUsIHdhbCk7CiAKIAkvKiBXYVRvRW5hYmxlSHdGaXhGb3JQdXNo Q29uc3RIV0J1ZzpnbGsgKi8KIAlXQV9TRVRfQklUX01BU0tFRChDT01NT05fU0xJQ0VfQ0hJQ0tF TjIsCiAJCQkgIEdFTjhfU0JFX0RJU0FCTEVfUkVQTEFZX0JVRl9PUFRJTUlaQVRJT04pOwogfQog Ci1zdGF0aWMgdm9pZCBjZmxfY3R4X3dvcmthcm91bmRzX2luaXQoc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lKQorc3RhdGljIHZvaWQgY2ZsX2N0eF93b3JrYXJvdW5kc19pbml0KHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKKwkJCQkgICAgIHN0cnVjdCBpOTE1X3dhX2xpc3Qg KndhbCkKIHsKLQlzdHJ1Y3QgaTkxNV93YV9saXN0ICp3YWwgPSAmZW5naW5lLT5jdHhfd2FfbGlz dDsKLQotCWdlbjlfY3R4X3dvcmthcm91bmRzX2luaXQoZW5naW5lKTsKKwlnZW45X2N0eF93b3Jr YXJvdW5kc19pbml0KGVuZ2luZSwgd2FsKTsKIAogCS8qIFdhVG9FbmFibGVId0ZpeEZvclB1c2hD b25zdEhXQnVnOmNmbCAqLwogCVdBX1NFVF9CSVRfTUFTS0VEKENPTU1PTl9TTElDRV9DSElDS0VO MiwKQEAgLTQ4OCwxMCArNDg0LDEwIEBAIHN0YXRpYyB2b2lkIGNmbF9jdHhfd29ya2Fyb3VuZHNf aW5pdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJCQkgIEdFTjdfU0JFX1NTX0NB Q0hFX0RJU1BBVENIX1BPUlRfU0hBUklOR19ESVNBQkxFKTsKIH0KIAotc3RhdGljIHZvaWQgY25s X2N0eF93b3JrYXJvdW5kc19pbml0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKK3N0 YXRpYyB2b2lkIGNubF9jdHhfd29ya2Fyb3VuZHNfaW5pdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUsCisJCQkJICAgICBzdHJ1Y3QgaTkxNV93YV9saXN0ICp3YWwpCiB7CiAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBlbmdpbmUtPmk5MTU7Ci0Jc3RydWN0IGk5MTVfd2Ff bGlzdCAqd2FsID0gJmVuZ2luZS0+Y3R4X3dhX2xpc3Q7CiAKIAkvKiBXYUZvcmNlQ29udGV4dFNh dmVSZXN0b3JlTm9uQ29oZXJlbnQ6Y25sICovCiAJV0FfU0VUX0JJVF9NQVNLRUQoQ05MX0hEQ19D SElDS0VOMCwKQEAgLTUyOCwxMCArNTI0LDEwIEBAIHN0YXRpYyB2b2lkIGNubF9jdHhfd29ya2Fy b3VuZHNfaW5pdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJV0FfU0VUX0JJVF9N QVNLRUQoR0VOOF9ST1dfQ0hJQ0tFTiwgRElTQUJMRV9FQVJMWV9FT1QpOwogfQogCi1zdGF0aWMg dm9pZCBpY2xfY3R4X3dvcmthcm91bmRzX2luaXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lKQorc3RhdGljIHZvaWQgaWNsX2N0eF93b3JrYXJvdW5kc19pbml0KHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSwKKwkJCQkgICAgIHN0cnVjdCBpOTE1X3dhX2xpc3QgKndhbCkKIHsK IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGVuZ2luZS0+aTkxNTsKLQlzdHJ1Y3Qg aTkxNV93YV9saXN0ICp3YWwgPSAmZW5naW5lLT5jdHhfd2FfbGlzdDsKIAogCS8qIFdhXzE2MDQz NzA1ODU6aWNsIChwcmUtcHJvZCkKIAkgKiBGb3JtZXJseSBrbm93biBhcyBXYVB1c2hDb25zdGFu dERlcmVmZXJlbmNlSG9sZERpc2FibGUKQEAgLTU3MywzMSArNTY5LDM2IEBAIHN0YXRpYyB2b2lk IGljbF9jdHhfd29ya2Fyb3VuZHNfaW5pdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUp CiAJCQkgICAgR0VOOV9QUkVFTVBUX0dQR1BVX1RIUkVBRF9HUk9VUF9MRVZFTCk7CiB9CiAKLXZv aWQgaW50ZWxfZW5naW5lX2luaXRfY3R4X3dhKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSkKK3N0YXRpYyB2b2lkCitfX2ludGVsX2VuZ2luZV9pbml0X2N0eF93YShzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUsCisJCQkgICBzdHJ1Y3QgaTkxNV93YV9saXN0ICp3YWwsCisJCQkg ICBjb25zdCBjaGFyICpuYW1lKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0g ZW5naW5lLT5pOTE1OwotCXN0cnVjdCBpOTE1X3dhX2xpc3QgKndhbCA9ICZlbmdpbmUtPmN0eF93 YV9saXN0OwogCi0Jd2FfaW5pdF9zdGFydCh3YWwsICJjb250ZXh0Iik7CisJaWYgKGVuZ2luZS0+ Y2xhc3MgIT0gUkVOREVSX0NMQVNTKQorCQlyZXR1cm47CisKKwl3YV9pbml0X3N0YXJ0KHdhbCwg bmFtZSk7CiAKIAlpZiAoSVNfR0VOKGk5MTUsIDExKSkKLQkJaWNsX2N0eF93b3JrYXJvdW5kc19p bml0KGVuZ2luZSk7CisJCWljbF9jdHhfd29ya2Fyb3VuZHNfaW5pdChlbmdpbmUsIHdhbCk7CiAJ ZWxzZSBpZiAoSVNfQ0FOTk9OTEFLRShpOTE1KSkKLQkJY25sX2N0eF93b3JrYXJvdW5kc19pbml0 KGVuZ2luZSk7CisJCWNubF9jdHhfd29ya2Fyb3VuZHNfaW5pdChlbmdpbmUsIHdhbCk7CiAJZWxz ZSBpZiAoSVNfQ09GRkVFTEFLRShpOTE1KSkKLQkJY2ZsX2N0eF93b3JrYXJvdW5kc19pbml0KGVu Z2luZSk7CisJCWNmbF9jdHhfd29ya2Fyb3VuZHNfaW5pdChlbmdpbmUsIHdhbCk7CiAJZWxzZSBp ZiAoSVNfR0VNSU5JTEFLRShpOTE1KSkKLQkJZ2xrX2N0eF93b3JrYXJvdW5kc19pbml0KGVuZ2lu ZSk7CisJCWdsa19jdHhfd29ya2Fyb3VuZHNfaW5pdChlbmdpbmUsIHdhbCk7CiAJZWxzZSBpZiAo SVNfS0FCWUxBS0UoaTkxNSkpCi0JCWtibF9jdHhfd29ya2Fyb3VuZHNfaW5pdChlbmdpbmUpOwor CQlrYmxfY3R4X3dvcmthcm91bmRzX2luaXQoZW5naW5lLCB3YWwpOwogCWVsc2UgaWYgKElTX0JS T1hUT04oaTkxNSkpCi0JCWJ4dF9jdHhfd29ya2Fyb3VuZHNfaW5pdChlbmdpbmUpOworCQlieHRf Y3R4X3dvcmthcm91bmRzX2luaXQoZW5naW5lLCB3YWwpOwogCWVsc2UgaWYgKElTX1NLWUxBS0Uo aTkxNSkpCi0JCXNrbF9jdHhfd29ya2Fyb3VuZHNfaW5pdChlbmdpbmUpOworCQlza2xfY3R4X3dv cmthcm91bmRzX2luaXQoZW5naW5lLCB3YWwpOwogCWVsc2UgaWYgKElTX0NIRVJSWVZJRVcoaTkx NSkpCi0JCWNodl9jdHhfd29ya2Fyb3VuZHNfaW5pdChlbmdpbmUpOworCQljaHZfY3R4X3dvcmth cm91bmRzX2luaXQoZW5naW5lLCB3YWwpOwogCWVsc2UgaWYgKElTX0JST0FEV0VMTChpOTE1KSkK LQkJYmR3X2N0eF93b3JrYXJvdW5kc19pbml0KGVuZ2luZSk7CisJCWJkd19jdHhfd29ya2Fyb3Vu ZHNfaW5pdChlbmdpbmUsIHdhbCk7CiAJZWxzZSBpZiAoSU5URUxfR0VOKGk5MTUpIDwgOCkKIAkJ cmV0dXJuOwogCWVsc2UKQEAgLTYwNiw2ICs2MDcsMTEgQEAgdm9pZCBpbnRlbF9lbmdpbmVfaW5p dF9jdHhfd2Eoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCXdhX2luaXRfZmluaXNo KHdhbCk7CiB9CiAKK3ZvaWQgaW50ZWxfZW5naW5lX2luaXRfY3R4X3dhKHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSkKK3sKKwlfX2ludGVsX2VuZ2luZV9pbml0X2N0eF93YShlbmdpbmUs ICZlbmdpbmUtPmN0eF93YV9saXN0LCAiY29udGV4dCIpOworfQorCiBpbnQgaW50ZWxfZW5naW5l X2VtaXRfY3R4X3dhKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQogewogCXN0cnVjdCBpOTE1X3dh X2xpc3QgKndhbCA9ICZycS0+ZW5naW5lLT5jdHhfd2FfbGlzdDsKQEAgLTEzMzgsNyArMTM0NCw3 IEBAIHdhX2xpc3Rfc3JtKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLAogCXJldHVybiAwOwogfQog Ci1zdGF0aWMgaW50IGVuZ2luZV93YV9saXN0X3ZlcmlmeShzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUsCitzdGF0aWMgaW50IGVuZ2luZV93YV9saXN0X3ZlcmlmeShzdHJ1Y3QgaW50ZWxf Y29udGV4dCAqY2UsCiAJCQkJIGNvbnN0IHN0cnVjdCBpOTE1X3dhX2xpc3QgKiBjb25zdCB3YWws CiAJCQkJIGNvbnN0IGNoYXIgKmZyb20pCiB7CkBAIC0xMzUyLDExICsxMzU4LDExIEBAIHN0YXRp YyBpbnQgZW5naW5lX3dhX2xpc3RfdmVyaWZ5KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSwKIAlpZiAoIXdhbC0+Y291bnQpCiAJCXJldHVybiAwOwogCi0Jdm1hID0gY3JlYXRlX3NjcmF0 Y2goJmVuZ2luZS0+aTkxNS0+Z2d0dC52bSwgd2FsLT5jb3VudCk7CisJdm1hID0gY3JlYXRlX3Nj cmF0Y2goJmNlLT5lbmdpbmUtPmk5MTUtPmdndHQudm0sIHdhbC0+Y291bnQpOwogCWlmIChJU19F UlIodm1hKSkKIAkJcmV0dXJuIFBUUl9FUlIodm1hKTsKIAotCXJxID0gaTkxNV9yZXF1ZXN0X2Ny ZWF0ZShlbmdpbmUtPmtlcm5lbF9jb250ZXh0KTsKKwlycSA9IGludGVsX2NvbnRleHRfY3JlYXRl X3JlcXVlc3QoY2UpOwogCWlmIChJU19FUlIocnEpKSB7CiAJCWVyciA9IFBUUl9FUlIocnEpOwog CQlnb3RvIGVycl92bWE7CkBAIC0xMzk0LDcgKzE0MDAsOSBAQCBzdGF0aWMgaW50IGVuZ2luZV93 YV9saXN0X3ZlcmlmeShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiBpbnQgaW50ZWxf ZW5naW5lX3ZlcmlmeV93b3JrYXJvdW5kcyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUs CiAJCQkJICAgIGNvbnN0IGNoYXIgKmZyb20pCiB7Ci0JcmV0dXJuIGVuZ2luZV93YV9saXN0X3Zl cmlmeShlbmdpbmUsICZlbmdpbmUtPndhX2xpc3QsIGZyb20pOworCXJldHVybiBlbmdpbmVfd2Ff bGlzdF92ZXJpZnkoZW5naW5lLT5rZXJuZWxfY29udGV4dCwKKwkJCQkgICAgICZlbmdpbmUtPndh X2xpc3QsCisJCQkJICAgICBmcm9tKTsKIH0KIAogI2lmIElTX0VOQUJMRUQoQ09ORklHX0RSTV9J OTE1X1NFTEZURVNUKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRl c3Rfd29ya2Fyb3VuZHMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X3dvcmth cm91bmRzLmMKaW5kZXggOWY3NjgwYjk5ODRiLi5mOWM5ZTcyOTExODcgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X3dvcmthcm91bmRzLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3Rfd29ya2Fyb3VuZHMuYwpAQCAtMjIsMTIgKzIyLDEz IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgd29fcmVnaXN0ZXIgewogCXsgSU5URUxfR0VNSU5JTEFL RSwgMHg3MzFjIH0KIH07CiAKLSNkZWZpbmUgUkVGX05BTUVfTUFYIChJTlRFTF9FTkdJTkVfQ1Nf TUFYX05BTUUgKyA0KQorI2RlZmluZSBSRUZfTkFNRV9NQVggKElOVEVMX0VOR0lORV9DU19NQVhf TkFNRSArIDgpCiBzdHJ1Y3Qgd2FfbGlzdHMgewogCXN0cnVjdCBpOTE1X3dhX2xpc3QgZ3Rfd2Ff bGlzdDsKIAlzdHJ1Y3QgewogCQljaGFyIG5hbWVbUkVGX05BTUVfTUFYXTsKIAkJc3RydWN0IGk5 MTVfd2FfbGlzdCB3YV9saXN0OworCQlzdHJ1Y3QgaTkxNV93YV9saXN0IGN0eF93YV9saXN0Owog CX0gZW5naW5lW0k5MTVfTlVNX0VOR0lORVNdOwogfTsKIApAQCAtNTIsNiArNTMsMTIgQEAgcmVm ZXJlbmNlX2xpc3RzX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIHN0cnVjdCB3 YV9saXN0cyAqbGlzdHMpCiAJCXdhX2luaXRfc3RhcnQod2FsLCBuYW1lKTsKIAkJZW5naW5lX2lu aXRfd29ya2Fyb3VuZHMoZW5naW5lLCB3YWwpOwogCQl3YV9pbml0X2ZpbmlzaCh3YWwpOworCisJ CXNucHJpbnRmKG5hbWUsIFJFRl9OQU1FX01BWCwgIiVzX0NUWF9SRUYiLCBlbmdpbmUtPm5hbWUp OworCisJCV9faW50ZWxfZW5naW5lX2luaXRfY3R4X3dhKGVuZ2luZSwKKwkJCQkJICAgJmxpc3Rz LT5lbmdpbmVbaWRdLmN0eF93YV9saXN0LAorCQkJCQkgICBuYW1lKTsKIAl9CiB9CiAKQEAgLTEw MDMsMjggKzEwMTAsMzggQEAgc3RhdGljIGludCBsaXZlX2lzb2xhdGVkX3doaXRlbGlzdCh2b2lk ICphcmcpCiAJcmV0dXJuIGVycjsKIH0KIAotc3RhdGljIGJvb2wgdmVyaWZ5X2d0X2VuZ2luZV93 YShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKLQkJCQlzdHJ1Y3Qgd2FfbGlzdHMgKmxp c3RzLCBjb25zdCBjaGFyICpzdHIpCitzdGF0aWMgYm9vbAordmVyaWZ5X3dhX2xpc3RzKHN0cnVj dCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsIHN0cnVjdCB3YV9saXN0cyAqbGlzdHMsCisJCWNvbnN0 IGNoYXIgKnN0cikKIHsKLQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Ci0JZW51bSBp bnRlbF9lbmdpbmVfaWQgaWQ7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBjdHgt Pmk5MTU7CisJc3RydWN0IGk5MTVfZ2VtX2VuZ2luZXNfaXRlciBpdDsKKwlzdHJ1Y3QgaW50ZWxf Y29udGV4dCAqY2U7CiAJYm9vbCBvayA9IHRydWU7CiAKIAlvayAmPSB3YV9saXN0X3ZlcmlmeSgm aTkxNS0+dW5jb3JlLCAmbGlzdHMtPmd0X3dhX2xpc3QsIHN0cik7CiAKLQlmb3JfZWFjaF9lbmdp bmUoZW5naW5lLCBpOTE1LCBpZCkgewotCQlvayAmPSBlbmdpbmVfd2FfbGlzdF92ZXJpZnkoZW5n aW5lLAorCWZvcl9lYWNoX2dlbV9lbmdpbmUoY2UsIGk5MTVfZ2VtX2NvbnRleHRfbG9ja19lbmdp bmVzKGN0eCksIGl0KSB7CisJCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkID0gY2UtPmVuZ2luZS0+ aWQ7CisKKwkJb2sgJj0gZW5naW5lX3dhX2xpc3RfdmVyaWZ5KGNlLAogCQkJCQkgICAgJmxpc3Rz LT5lbmdpbmVbaWRdLndhX2xpc3QsCiAJCQkJCSAgICBzdHIpID09IDA7CisKKwkJb2sgJj0gZW5n aW5lX3dhX2xpc3RfdmVyaWZ5KGNlLAorCQkJCQkgICAgJmxpc3RzLT5lbmdpbmVbaWRdLmN0eF93 YV9saXN0LAorCQkJCQkgICAgc3RyKSA9PSAwOwogCX0KKwlpOTE1X2dlbV9jb250ZXh0X3VubG9j a19lbmdpbmVzKGN0eCk7CiAKIAlyZXR1cm4gb2s7CiB9CiAKIHN0YXRpYyBpbnQKLWxpdmVfZ3B1 X3Jlc2V0X2d0X2VuZ2luZV93b3JrYXJvdW5kcyh2b2lkICphcmcpCitsaXZlX2dwdV9yZXNldF93 b3JrYXJvdW5kcyh2b2lkICphcmcpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUg PSBhcmc7CisJc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eDsKIAlpbnRlbF93YWtlcmVmX3Qg d2FrZXJlZjsKIAlzdHJ1Y3Qgd2FfbGlzdHMgbGlzdHM7CiAJYm9vbCBvazsKQEAgLTEwMzIsNiAr MTA0OSwxMCBAQCBsaXZlX2dwdV9yZXNldF9ndF9lbmdpbmVfd29ya2Fyb3VuZHModm9pZCAqYXJn KQogCWlmICghaW50ZWxfaGFzX2dwdV9yZXNldChpOTE1KSkKIAkJcmV0dXJuIDA7CiAKKwljdHgg PSBrZXJuZWxfY29udGV4dChpOTE1KTsKKwlpZiAoSVNfRVJSKGN0eCkpCisJCXJldHVybiBQVFJf RVJSKGN0eCk7CisKIAlwcl9pbmZvKCJWZXJpZnlpbmcgYWZ0ZXIgR1BVIHJlc2V0Li4uXG4iKTsK IAogCWlndF9nbG9iYWxfcmVzZXRfbG9jayhpOTE1KTsKQEAgLTEwMzksMTUgKzEwNjAsMTYgQEAg bGl2ZV9ncHVfcmVzZXRfZ3RfZW5naW5lX3dvcmthcm91bmRzKHZvaWQgKmFyZykKIAogCXJlZmVy ZW5jZV9saXN0c19pbml0KGk5MTUsICZsaXN0cyk7CiAKLQlvayA9IHZlcmlmeV9ndF9lbmdpbmVf d2EoaTkxNSwgJmxpc3RzLCAiYmVmb3JlIHJlc2V0Iik7CisJb2sgPSB2ZXJpZnlfd2FfbGlzdHMo Y3R4LCAmbGlzdHMsICJiZWZvcmUgcmVzZXQiKTsKIAlpZiAoIW9rKQogCQlnb3RvIG91dDsKIAog CWk5MTVfcmVzZXQoaTkxNSwgQUxMX0VOR0lORVMsICJsaXZlX3dvcmthcm91bmRzIik7CiAKLQlv ayA9IHZlcmlmeV9ndF9lbmdpbmVfd2EoaTkxNSwgJmxpc3RzLCAiYWZ0ZXIgcmVzZXQiKTsKKwlv ayA9IHZlcmlmeV93YV9saXN0cyhjdHgsICZsaXN0cywgImFmdGVyIHJlc2V0Iik7CiAKIG91dDoK KwlrZXJuZWxfY29udGV4dF9jbG9zZShjdHgpOwogCXJlZmVyZW5jZV9saXN0c19maW5pKGk5MTUs ICZsaXN0cyk7CiAJaW50ZWxfcnVudGltZV9wbV9wdXQoaTkxNSwgd2FrZXJlZik7CiAJaWd0X2ds b2JhbF9yZXNldF91bmxvY2soaTkxNSk7CkBAIC0xMDU2LDcgKzEwNzgsNyBAQCBsaXZlX2dwdV9y ZXNldF9ndF9lbmdpbmVfd29ya2Fyb3VuZHModm9pZCAqYXJnKQogfQogCiBzdGF0aWMgaW50Ci1s aXZlX2VuZ2luZV9yZXNldF9ndF9lbmdpbmVfd29ya2Fyb3VuZHModm9pZCAqYXJnKQorbGl2ZV9l bmdpbmVfcmVzZXRfd29ya2Fyb3VuZHModm9pZCAqYXJnKQogewogCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICppOTE1ID0gYXJnOwogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKQEAg LTEwODUsNyArMTEwNyw3IEBAIGxpdmVfZW5naW5lX3Jlc2V0X2d0X2VuZ2luZV93b3JrYXJvdW5k cyh2b2lkICphcmcpCiAKIAkJcHJfaW5mbygiVmVyaWZ5aW5nIGFmdGVyICVzIHJlc2V0Li4uXG4i LCBlbmdpbmUtPm5hbWUpOwogCi0JCW9rID0gdmVyaWZ5X2d0X2VuZ2luZV93YShpOTE1LCAmbGlz dHMsICJiZWZvcmUgcmVzZXQiKTsKKwkJb2sgPSB2ZXJpZnlfd2FfbGlzdHMoY3R4LCAmbGlzdHMs ICJiZWZvcmUgcmVzZXQiKTsKIAkJaWYgKCFvaykgewogCQkJcmV0ID0gLUVTUkNIOwogCQkJZ290 byBlcnI7CkBAIC0xMDkzLDcgKzExMTUsNyBAQCBsaXZlX2VuZ2luZV9yZXNldF9ndF9lbmdpbmVf d29ya2Fyb3VuZHModm9pZCAqYXJnKQogCiAJCWk5MTVfcmVzZXRfZW5naW5lKGVuZ2luZSwgImxp dmVfd29ya2Fyb3VuZHMiKTsKIAotCQlvayA9IHZlcmlmeV9ndF9lbmdpbmVfd2EoaTkxNSwgJmxp c3RzLCAiYWZ0ZXIgaWRsZSByZXNldCIpOworCQlvayA9IHZlcmlmeV93YV9saXN0cyhjdHgsICZs aXN0cywgImFmdGVyIGlkbGUgcmVzZXQiKTsKIAkJaWYgKCFvaykgewogCQkJcmV0ID0gLUVTUkNI OwogCQkJZ290byBlcnI7CkBAIC0xMTI0LDcgKzExNDYsNyBAQCBsaXZlX2VuZ2luZV9yZXNldF9n dF9lbmdpbmVfd29ya2Fyb3VuZHModm9pZCAqYXJnKQogCQlpZ3Rfc3Bpbm5lcl9lbmQoJnNwaW4p OwogCQlpZ3Rfc3Bpbm5lcl9maW5pKCZzcGluKTsKIAotCQlvayA9IHZlcmlmeV9ndF9lbmdpbmVf d2EoaTkxNSwgJmxpc3RzLCAiYWZ0ZXIgYnVzeSByZXNldCIpOworCQlvayA9IHZlcmlmeV93YV9s aXN0cyhjdHgsICZsaXN0cywgImFmdGVyIGJ1c3kgcmVzZXQiKTsKIAkJaWYgKCFvaykgewogCQkJ cmV0ID0gLUVTUkNIOwogCQkJZ290byBlcnI7CkBAIC0xMTQ4LDggKzExNzAsOCBAQCBpbnQgaW50 ZWxfd29ya2Fyb3VuZHNfbGl2ZV9zZWxmdGVzdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUpCiAJCVNVQlRFU1QobGl2ZV9kaXJ0eV93aGl0ZWxpc3QpLAogCQlTVUJURVNUKGxpdmVfcmVz ZXRfd2hpdGVsaXN0KSwKIAkJU1VCVEVTVChsaXZlX2lzb2xhdGVkX3doaXRlbGlzdCksCi0JCVNV QlRFU1QobGl2ZV9ncHVfcmVzZXRfZ3RfZW5naW5lX3dvcmthcm91bmRzKSwKLQkJU1VCVEVTVChs aXZlX2VuZ2luZV9yZXNldF9ndF9lbmdpbmVfd29ya2Fyb3VuZHMpLAorCQlTVUJURVNUKGxpdmVf Z3B1X3Jlc2V0X3dvcmthcm91bmRzKSwKKwkJU1VCVEVTVChsaXZlX2VuZ2luZV9yZXNldF93b3Jr YXJvdW5kcyksCiAJfTsKIAlpbnQgZXJyOwogCi0tIAoyLjIwLjEKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==