From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH v3 1/2] drm/i915/selftests: Verify context workarounds Date: Mon, 20 May 2019 12:04:41 +0100 Message-ID: <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 mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id CD30689203 for ; Mon, 20 May 2019 11:04:46 +0000 (UTC) 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 IChDaHJpcykKClNpZ25lZC1vZmYtYnk6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBp bnRlbC5jb20+ClJldmlld2VkLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5j by51az4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF93b3JrYXJvdW5kcy5jICAg fCAxMTEgKysrKysrKysrKy0tLS0tLS0tCiAuLi4vZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X3dv cmthcm91bmRzLmMgICAgfCAgNTQgKysrKysrLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDk3IGluc2Vy dGlvbnMoKyksIDY4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2d0L2ludGVsX3dvcmthcm91bmRzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRl bF93b3JrYXJvdW5kcy5jCmluZGV4IDQzZTI5MDMwNjU1MS4uYTZhNjQ3N2NmNzIyIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF93b3JrYXJvdW5kcy5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3dvcmthcm91bmRzLmMKQEAgLTE5NiwxMCArMTk2 LDkgQEAgaWdub3JlX3dhX3dyaXRlX29yKHN0cnVjdCBpOTE1X3dhX2xpc3QgKndhbCwgaTkxNV9y ZWdfdCByZWcsIHUzMiBtYXNrLCB1MzIgdmFsKQogI2RlZmluZSBXQV9TRVRfRklFTERfTUFTS0VE KGFkZHIsIG1hc2ssIHZhbHVlKSBcCiAJd2Ffd3JpdGVfbWFza2VkX29yKHdhbCwgKGFkZHIpLCAo bWFzayksIF9NQVNLRURfRklFTEQoKG1hc2spLCAodmFsdWUpKSkKIAotc3RhdGljIHZvaWQgZ2Vu OF9jdHhfd29ya2Fyb3VuZHNfaW5pdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCitz dGF0aWMgdm9pZCBnZW44X2N0eF93b3JrYXJvdW5kc19pbml0KHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZSwKKwkJCQkgICAgICBzdHJ1Y3QgaTkxNV93YV9saXN0ICp3YWwpCiB7Ci0Jc3Ry dWN0IGk5MTVfd2FfbGlzdCAqd2FsID0gJmVuZ2luZS0+Y3R4X3dhX2xpc3Q7Ci0KIAlXQV9TRVRf QklUX01BU0tFRChJTlNUUE0sIElOU1RQTV9GT1JDRV9PUkRFUklORyk7CiAKIAkvKiBXYURpc2Fi bGVBc3luY0ZsaXBQZXJmTW9kZTpiZHcsY2h2ICovCkBAIC0yNDUsMTIgKzI0NCwxMiBAQCBzdGF0 aWMgdm9pZCBnZW44X2N0eF93b3JrYXJvdW5kc19pbml0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSkKIAkJCSAgICBHRU42X1dJWl9IQVNISU5HXzE2eDQpOwogfQogCi1zdGF0aWMgdm9p ZCBiZHdfY3R4X3dvcmthcm91bmRzX2luaXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l KQorc3RhdGljIHZvaWQgYmR3X2N0eF93b3JrYXJvdW5kc19pbml0KHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZSwKKwkJCQkgICAgIHN0cnVjdCBpOTE1X3dhX2xpc3QgKndhbCkKIHsKIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGVuZ2luZS0+aTkxNTsKLQlzdHJ1Y3QgaTkx NV93YV9saXN0ICp3YWwgPSAmZW5naW5lLT5jdHhfd2FfbGlzdDsKIAotCWdlbjhfY3R4X3dvcmth cm91bmRzX2luaXQoZW5naW5lKTsKKwlnZW44X2N0eF93b3JrYXJvdW5kc19pbml0KGVuZ2luZSwg d2FsKTsKIAogCS8qIFdhRGlzYWJsZVRocmVhZFN0YWxsRG9wQ2xvY2tHYXRpbmc6YmR3IChwcmUt cHJvZHVjdGlvbikgKi8KIAlXQV9TRVRfQklUX01BU0tFRChHRU44X1JPV19DSElDS0VOLCBTVEFM TF9ET1BfR0FUSU5HX0RJU0FCTEUpOwpAQCAtMjczLDExICsyNzIsMTAgQEAgc3RhdGljIHZvaWQg YmR3X2N0eF93b3JrYXJvdW5kc19pbml0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkK IAkJCSAgKElTX0JEV19HVDMoaTkxNSkgPyBIRENfRkVOQ0VfREVTVF9TTE1fRElTQUJMRSA6IDAp KTsKIH0KIAotc3RhdGljIHZvaWQgY2h2X2N0eF93b3JrYXJvdW5kc19pbml0KHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZSkKK3N0YXRpYyB2b2lkIGNodl9jdHhfd29ya2Fyb3VuZHNfaW5p dChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCisJCQkJICAgICBzdHJ1Y3QgaTkxNV93 YV9saXN0ICp3YWwpCiB7Ci0Jc3RydWN0IGk5MTVfd2FfbGlzdCAqd2FsID0gJmVuZ2luZS0+Y3R4 X3dhX2xpc3Q7Ci0KLQlnZW44X2N0eF93b3JrYXJvdW5kc19pbml0KGVuZ2luZSk7CisJZ2VuOF9j dHhfd29ya2Fyb3VuZHNfaW5pdChlbmdpbmUsIHdhbCk7CiAKIAkvKiBXYURpc2FibGVUaHJlYWRT dGFsbERvcENsb2NrR2F0aW5nOmNodiAqLwogCVdBX1NFVF9CSVRfTUFTS0VEKEdFTjhfUk9XX0NI SUNLRU4sIFNUQUxMX0RPUF9HQVRJTkdfRElTQUJMRSk7CkBAIC0yODYsMTAgKzI4NCwxMCBAQCBz dGF0aWMgdm9pZCBjaHZfY3R4X3dvcmthcm91bmRzX2luaXQoc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lKQogCVdBX1NFVF9CSVRfTUFTS0VEKEhJWl9DSElDS0VOLCBDSFZfSFpfOFg4X01P REVfSU5fMVgpOwogfQogCi1zdGF0aWMgdm9pZCBnZW45X2N0eF93b3JrYXJvdW5kc19pbml0KHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKK3N0YXRpYyB2b2lkIGdlbjlfY3R4X3dvcmth cm91bmRzX2luaXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAorCQkJCSAgICAgIHN0 cnVjdCBpOTE1X3dhX2xpc3QgKndhbCkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkx NSA9IGVuZ2luZS0+aTkxNTsKLQlzdHJ1Y3QgaTkxNV93YV9saXN0ICp3YWwgPSAmZW5naW5lLT5j dHhfd2FfbGlzdDsKIAogCWlmIChIQVNfTExDKGk5MTUpKSB7CiAJCS8qIFdhQ29tcHJlc3NlZFJl c291cmNlU2FtcGxlclBiZU1lZGlhTmV3SGFzaE1vZGU6c2tsLGtibApAQCAtMzg0LDEwICszODIs MTAgQEAgc3RhdGljIHZvaWQgZ2VuOV9jdHhfd29ya2Fyb3VuZHNfaW5pdChzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUpCiAJCVdBX1NFVF9CSVRfTUFTS0VEKEdFTjlfV01fQ0hJQ0tFTjMs IEdFTjlfRkFDVE9SX0lOX0NMUl9WQUxfSElaKTsKIH0KIAotc3RhdGljIHZvaWQgc2tsX3R1bmVf aXpfaGFzaGluZyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCitzdGF0aWMgdm9pZCBz a2xfdHVuZV9pel9oYXNoaW5nKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKKwkJCQlz dHJ1Y3QgaTkxNV93YV9saXN0ICp3YWwpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUgPSBlbmdpbmUtPmk5MTU7Ci0Jc3RydWN0IGk5MTVfd2FfbGlzdCAqd2FsID0gJmVuZ2luZS0+ Y3R4X3dhX2xpc3Q7CiAJdTggdmFsc1szXSA9IHsgMCwgMCwgMCB9OwogCXVuc2lnbmVkIGludCBp OwogCkBAIC00MjQsMTcgKzQyMiwxNyBAQCBzdGF0aWMgdm9pZCBza2xfdHVuZV9pel9oYXNoaW5n KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAkJCSAgICBHRU45X0laX0hBU0hJTkco MCwgdmFsc1swXSkpOwogfQogCi1zdGF0aWMgdm9pZCBza2xfY3R4X3dvcmthcm91bmRzX2luaXQo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQorc3RhdGljIHZvaWQgc2tsX2N0eF93b3Jr YXJvdW5kc19pbml0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKKwkJCQkgICAgIHN0 cnVjdCBpOTE1X3dhX2xpc3QgKndhbCkKIHsKLQlnZW45X2N0eF93b3JrYXJvdW5kc19pbml0KGVu Z2luZSk7Ci0Jc2tsX3R1bmVfaXpfaGFzaGluZyhlbmdpbmUpOworCWdlbjlfY3R4X3dvcmthcm91 bmRzX2luaXQoZW5naW5lLCB3YWwpOworCXNrbF90dW5lX2l6X2hhc2hpbmcoZW5naW5lLCB3YWwp OwogfQogCi1zdGF0aWMgdm9pZCBieHRfY3R4X3dvcmthcm91bmRzX2luaXQoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lKQorc3RhdGljIHZvaWQgYnh0X2N0eF93b3JrYXJvdW5kc19pbml0 KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKKwkJCQkgICAgIHN0cnVjdCBpOTE1X3dh X2xpc3QgKndhbCkKIHsKLQlzdHJ1Y3QgaTkxNV93YV9saXN0ICp3YWwgPSAmZW5naW5lLT5jdHhf d2FfbGlzdDsKLQotCWdlbjlfY3R4X3dvcmthcm91bmRzX2luaXQoZW5naW5lKTsKKwlnZW45X2N0 eF93b3JrYXJvdW5kc19pbml0KGVuZ2luZSwgd2FsKTsKIAogCS8qIFdhRGlzYWJsZVRocmVhZFN0 YWxsRG9wQ2xvY2tHYXRpbmc6Ynh0ICovCiAJV0FfU0VUX0JJVF9NQVNLRUQoR0VOOF9ST1dfQ0hJ Q0tFTiwKQEAgLTQ0NSwxMiArNDQzLDEyIEBAIHN0YXRpYyB2b2lkIGJ4dF9jdHhfd29ya2Fyb3Vu ZHNfaW5pdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJCQkgIEdFTjhfU0JFX0RJ U0FCTEVfUkVQTEFZX0JVRl9PUFRJTUlaQVRJT04pOwogfQogCi1zdGF0aWMgdm9pZCBrYmxfY3R4 X3dvcmthcm91bmRzX2luaXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQorc3RhdGlj IHZvaWQga2JsX2N0eF93b3JrYXJvdW5kc19pbml0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSwKKwkJCQkgICAgIHN0cnVjdCBpOTE1X3dhX2xpc3QgKndhbCkKIHsKIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGVuZ2luZS0+aTkxNTsKLQlzdHJ1Y3QgaTkxNV93YV9saXN0 ICp3YWwgPSAmZW5naW5lLT5jdHhfd2FfbGlzdDsKIAotCWdlbjlfY3R4X3dvcmthcm91bmRzX2lu aXQoZW5naW5lKTsKKwlnZW45X2N0eF93b3JrYXJvdW5kc19pbml0KGVuZ2luZSwgd2FsKTsKIAog CS8qIFdhVG9FbmFibGVId0ZpeEZvclB1c2hDb25zdEhXQnVnOmtibCAqLwogCWlmIChJU19LQkxf UkVWSUQoaTkxNSwgS0JMX1JFVklEX0MwLCBSRVZJRF9GT1JFVkVSKSkKQEAgLTQ2MiwyMiArNDYw LDIwIEBAIHN0YXRpYyB2b2lkIGtibF9jdHhfd29ya2Fyb3VuZHNfaW5pdChzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUpCiAJCQkgIEdFTjdfU0JFX1NTX0NBQ0hFX0RJU1BBVENIX1BPUlRf U0hBUklOR19ESVNBQkxFKTsKIH0KIAotc3RhdGljIHZvaWQgZ2xrX2N0eF93b3JrYXJvdW5kc19p bml0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKK3N0YXRpYyB2b2lkIGdsa19jdHhf d29ya2Fyb3VuZHNfaW5pdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCisJCQkJICAg ICBzdHJ1Y3QgaTkxNV93YV9saXN0ICp3YWwpCiB7Ci0Jc3RydWN0IGk5MTVfd2FfbGlzdCAqd2Fs ID0gJmVuZ2luZS0+Y3R4X3dhX2xpc3Q7Ci0KLQlnZW45X2N0eF93b3JrYXJvdW5kc19pbml0KGVu Z2luZSk7CisJZ2VuOV9jdHhfd29ya2Fyb3VuZHNfaW5pdChlbmdpbmUsIHdhbCk7CiAKIAkvKiBX YVRvRW5hYmxlSHdGaXhGb3JQdXNoQ29uc3RIV0J1ZzpnbGsgKi8KIAlXQV9TRVRfQklUX01BU0tF RChDT01NT05fU0xJQ0VfQ0hJQ0tFTjIsCiAJCQkgIEdFTjhfU0JFX0RJU0FCTEVfUkVQTEFZX0JV Rl9PUFRJTUlaQVRJT04pOwogfQogCi1zdGF0aWMgdm9pZCBjZmxfY3R4X3dvcmthcm91bmRzX2lu aXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQorc3RhdGljIHZvaWQgY2ZsX2N0eF93 b3JrYXJvdW5kc19pbml0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKKwkJCQkgICAg IHN0cnVjdCBpOTE1X3dhX2xpc3QgKndhbCkKIHsKLQlzdHJ1Y3QgaTkxNV93YV9saXN0ICp3YWwg PSAmZW5naW5lLT5jdHhfd2FfbGlzdDsKLQotCWdlbjlfY3R4X3dvcmthcm91bmRzX2luaXQoZW5n aW5lKTsKKwlnZW45X2N0eF93b3JrYXJvdW5kc19pbml0KGVuZ2luZSwgd2FsKTsKIAogCS8qIFdh VG9FbmFibGVId0ZpeEZvclB1c2hDb25zdEhXQnVnOmNmbCAqLwogCVdBX1NFVF9CSVRfTUFTS0VE KENPTU1PTl9TTElDRV9DSElDS0VOMiwKQEAgLTQ4OCwxMCArNDg0LDEwIEBAIHN0YXRpYyB2b2lk IGNmbF9jdHhfd29ya2Fyb3VuZHNfaW5pdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUp CiAJCQkgIEdFTjdfU0JFX1NTX0NBQ0hFX0RJU1BBVENIX1BPUlRfU0hBUklOR19ESVNBQkxFKTsK IH0KIAotc3RhdGljIHZvaWQgY25sX2N0eF93b3JrYXJvdW5kc19pbml0KHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSkKK3N0YXRpYyB2b2lkIGNubF9jdHhfd29ya2Fyb3VuZHNfaW5pdChz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCisJCQkJICAgICBzdHJ1Y3QgaTkxNV93YV9s aXN0ICp3YWwpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBlbmdpbmUtPmk5 MTU7Ci0Jc3RydWN0IGk5MTVfd2FfbGlzdCAqd2FsID0gJmVuZ2luZS0+Y3R4X3dhX2xpc3Q7CiAK IAkvKiBXYUZvcmNlQ29udGV4dFNhdmVSZXN0b3JlTm9uQ29oZXJlbnQ6Y25sICovCiAJV0FfU0VU X0JJVF9NQVNLRUQoQ05MX0hEQ19DSElDS0VOMCwKQEAgLTUyOCwxMCArNTI0LDEwIEBAIHN0YXRp YyB2b2lkIGNubF9jdHhfd29ya2Fyb3VuZHNfaW5pdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUpCiAJV0FfU0VUX0JJVF9NQVNLRUQoR0VOOF9ST1dfQ0hJQ0tFTiwgRElTQUJMRV9FQVJM WV9FT1QpOwogfQogCi1zdGF0aWMgdm9pZCBpY2xfY3R4X3dvcmthcm91bmRzX2luaXQoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQorc3RhdGljIHZvaWQgaWNsX2N0eF93b3JrYXJvdW5k c19pbml0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKKwkJCQkgICAgIHN0cnVjdCBp OTE1X3dhX2xpc3QgKndhbCkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGVu Z2luZS0+aTkxNTsKLQlzdHJ1Y3QgaTkxNV93YV9saXN0ICp3YWwgPSAmZW5naW5lLT5jdHhfd2Ff bGlzdDsKIAogCS8qIFdhXzE2MDQzNzA1ODU6aWNsIChwcmUtcHJvZCkKIAkgKiBGb3JtZXJseSBr bm93biBhcyBXYVB1c2hDb25zdGFudERlcmVmZXJlbmNlSG9sZERpc2FibGUKQEAgLTU3MywzMSAr NTY5LDM1IEBAIHN0YXRpYyB2b2lkIGljbF9jdHhfd29ya2Fyb3VuZHNfaW5pdChzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJCQkgICAgR0VOOV9QUkVFTVBUX0dQR1BVX1RIUkVBRF9H Uk9VUF9MRVZFTCk7CiB9CiAKLXZvaWQgaW50ZWxfZW5naW5lX2luaXRfY3R4X3dhKHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKK3ZvaWQgX19pbnRlbF9lbmdpbmVfaW5pdF9jdHhfd2Eo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAorCQkJCXN0cnVjdCBpOTE1X3dhX2xpc3Qg KndhbCwKKwkJCQljb25zdCBjaGFyICpuYW1lKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICppOTE1ID0gZW5naW5lLT5pOTE1OwotCXN0cnVjdCBpOTE1X3dhX2xpc3QgKndhbCA9ICZlbmdp bmUtPmN0eF93YV9saXN0OwogCi0Jd2FfaW5pdF9zdGFydCh3YWwsICJjb250ZXh0Iik7CisJaWYg KGVuZ2luZS0+Y2xhc3MgIT0gUkVOREVSX0NMQVNTKQorCQlyZXR1cm47CisKKwl3YV9pbml0X3N0 YXJ0KHdhbCwgbmFtZSk7CiAKIAlpZiAoSVNfR0VOKGk5MTUsIDExKSkKLQkJaWNsX2N0eF93b3Jr YXJvdW5kc19pbml0KGVuZ2luZSk7CisJCWljbF9jdHhfd29ya2Fyb3VuZHNfaW5pdChlbmdpbmUs IHdhbCk7CiAJZWxzZSBpZiAoSVNfQ0FOTk9OTEFLRShpOTE1KSkKLQkJY25sX2N0eF93b3JrYXJv dW5kc19pbml0KGVuZ2luZSk7CisJCWNubF9jdHhfd29ya2Fyb3VuZHNfaW5pdChlbmdpbmUsIHdh bCk7CiAJZWxzZSBpZiAoSVNfQ09GRkVFTEFLRShpOTE1KSkKLQkJY2ZsX2N0eF93b3JrYXJvdW5k c19pbml0KGVuZ2luZSk7CisJCWNmbF9jdHhfd29ya2Fyb3VuZHNfaW5pdChlbmdpbmUsIHdhbCk7 CiAJZWxzZSBpZiAoSVNfR0VNSU5JTEFLRShpOTE1KSkKLQkJZ2xrX2N0eF93b3JrYXJvdW5kc19p bml0KGVuZ2luZSk7CisJCWdsa19jdHhfd29ya2Fyb3VuZHNfaW5pdChlbmdpbmUsIHdhbCk7CiAJ ZWxzZSBpZiAoSVNfS0FCWUxBS0UoaTkxNSkpCi0JCWtibF9jdHhfd29ya2Fyb3VuZHNfaW5pdChl bmdpbmUpOworCQlrYmxfY3R4X3dvcmthcm91bmRzX2luaXQoZW5naW5lLCB3YWwpOwogCWVsc2Ug aWYgKElTX0JST1hUT04oaTkxNSkpCi0JCWJ4dF9jdHhfd29ya2Fyb3VuZHNfaW5pdChlbmdpbmUp OworCQlieHRfY3R4X3dvcmthcm91bmRzX2luaXQoZW5naW5lLCB3YWwpOwogCWVsc2UgaWYgKElT X1NLWUxBS0UoaTkxNSkpCi0JCXNrbF9jdHhfd29ya2Fyb3VuZHNfaW5pdChlbmdpbmUpOworCQlz a2xfY3R4X3dvcmthcm91bmRzX2luaXQoZW5naW5lLCB3YWwpOwogCWVsc2UgaWYgKElTX0NIRVJS WVZJRVcoaTkxNSkpCi0JCWNodl9jdHhfd29ya2Fyb3VuZHNfaW5pdChlbmdpbmUpOworCQljaHZf Y3R4X3dvcmthcm91bmRzX2luaXQoZW5naW5lLCB3YWwpOwogCWVsc2UgaWYgKElTX0JST0FEV0VM TChpOTE1KSkKLQkJYmR3X2N0eF93b3JrYXJvdW5kc19pbml0KGVuZ2luZSk7CisJCWJkd19jdHhf d29ya2Fyb3VuZHNfaW5pdChlbmdpbmUsIHdhbCk7CiAJZWxzZSBpZiAoSU5URUxfR0VOKGk5MTUp IDwgOCkKIAkJcmV0dXJuOwogCWVsc2UKQEAgLTYwNiw2ICs2MDYsMTEgQEAgdm9pZCBpbnRlbF9l bmdpbmVfaW5pdF9jdHhfd2Eoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCXdhX2lu aXRfZmluaXNoKHdhbCk7CiB9CiAKK3ZvaWQgaW50ZWxfZW5naW5lX2luaXRfY3R4X3dhKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKK3sKKwlfX2ludGVsX2VuZ2luZV9pbml0X2N0eF93 YShlbmdpbmUsICZlbmdpbmUtPmN0eF93YV9saXN0LCAiY29udGV4dCIpOworfQorCiBpbnQgaW50 ZWxfZW5naW5lX2VtaXRfY3R4X3dhKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQogewogCXN0cnVj dCBpOTE1X3dhX2xpc3QgKndhbCA9ICZycS0+ZW5naW5lLT5jdHhfd2FfbGlzdDsKQEAgLTEzMzgs NyArMTM0Myw3IEBAIHdhX2xpc3Rfc3JtKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLAogCXJldHVy biAwOwogfQogCi1zdGF0aWMgaW50IGVuZ2luZV93YV9saXN0X3ZlcmlmeShzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUsCitzdGF0aWMgaW50IGVuZ2luZV93YV9saXN0X3ZlcmlmeShzdHJ1 Y3QgaW50ZWxfY29udGV4dCAqY2UsCiAJCQkJIGNvbnN0IHN0cnVjdCBpOTE1X3dhX2xpc3QgKiBj b25zdCB3YWwsCiAJCQkJIGNvbnN0IGNoYXIgKmZyb20pCiB7CkBAIC0xMzUyLDExICsxMzU3LDEx IEBAIHN0YXRpYyBpbnQgZW5naW5lX3dhX2xpc3RfdmVyaWZ5KHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZSwKIAlpZiAoIXdhbC0+Y291bnQpCiAJCXJldHVybiAwOwogCi0Jdm1hID0gY3Jl YXRlX3NjcmF0Y2goJmVuZ2luZS0+aTkxNS0+Z2d0dC52bSwgd2FsLT5jb3VudCk7CisJdm1hID0g Y3JlYXRlX3NjcmF0Y2goJmNlLT5lbmdpbmUtPmk5MTUtPmdndHQudm0sIHdhbC0+Y291bnQpOwog CWlmIChJU19FUlIodm1hKSkKIAkJcmV0dXJuIFBUUl9FUlIodm1hKTsKIAotCXJxID0gaTkxNV9y ZXF1ZXN0X2NyZWF0ZShlbmdpbmUtPmtlcm5lbF9jb250ZXh0KTsKKwlycSA9IGludGVsX2NvbnRl eHRfY3JlYXRlX3JlcXVlc3QoY2UpOwogCWlmIChJU19FUlIocnEpKSB7CiAJCWVyciA9IFBUUl9F UlIocnEpOwogCQlnb3RvIGVycl92bWE7CkBAIC0xMzk0LDcgKzEzOTksOSBAQCBzdGF0aWMgaW50 IGVuZ2luZV93YV9saXN0X3ZlcmlmeShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiBp bnQgaW50ZWxfZW5naW5lX3ZlcmlmeV93b3JrYXJvdW5kcyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUsCiAJCQkJICAgIGNvbnN0IGNoYXIgKmZyb20pCiB7Ci0JcmV0dXJuIGVuZ2luZV93 YV9saXN0X3ZlcmlmeShlbmdpbmUsICZlbmdpbmUtPndhX2xpc3QsIGZyb20pOworCXJldHVybiBl bmdpbmVfd2FfbGlzdF92ZXJpZnkoZW5naW5lLT5rZXJuZWxfY29udGV4dCwKKwkJCQkgICAgICZl bmdpbmUtPndhX2xpc3QsCisJCQkJICAgICBmcm9tKTsKIH0KIAogI2lmIElTX0VOQUJMRUQoQ09O RklHX0RSTV9JOTE1X1NFTEZURVNUKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3Qvc2VsZnRlc3Rfd29ya2Fyb3VuZHMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0 ZXN0X3dvcmthcm91bmRzLmMKaW5kZXggOWY3NjgwYjk5ODRiLi5mOWM5ZTcyOTExODcgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X3dvcmthcm91bmRzLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3Rfd29ya2Fyb3VuZHMuYwpAQCAtMjIs MTIgKzIyLDEzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgd29fcmVnaXN0ZXIgewogCXsgSU5URUxf R0VNSU5JTEFLRSwgMHg3MzFjIH0KIH07CiAKLSNkZWZpbmUgUkVGX05BTUVfTUFYIChJTlRFTF9F TkdJTkVfQ1NfTUFYX05BTUUgKyA0KQorI2RlZmluZSBSRUZfTkFNRV9NQVggKElOVEVMX0VOR0lO RV9DU19NQVhfTkFNRSArIDgpCiBzdHJ1Y3Qgd2FfbGlzdHMgewogCXN0cnVjdCBpOTE1X3dhX2xp c3QgZ3Rfd2FfbGlzdDsKIAlzdHJ1Y3QgewogCQljaGFyIG5hbWVbUkVGX05BTUVfTUFYXTsKIAkJ c3RydWN0IGk5MTVfd2FfbGlzdCB3YV9saXN0OworCQlzdHJ1Y3QgaTkxNV93YV9saXN0IGN0eF93 YV9saXN0OwogCX0gZW5naW5lW0k5MTVfTlVNX0VOR0lORVNdOwogfTsKIApAQCAtNTIsNiArNTMs MTIgQEAgcmVmZXJlbmNlX2xpc3RzX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUs IHN0cnVjdCB3YV9saXN0cyAqbGlzdHMpCiAJCXdhX2luaXRfc3RhcnQod2FsLCBuYW1lKTsKIAkJ ZW5naW5lX2luaXRfd29ya2Fyb3VuZHMoZW5naW5lLCB3YWwpOwogCQl3YV9pbml0X2ZpbmlzaCh3 YWwpOworCisJCXNucHJpbnRmKG5hbWUsIFJFRl9OQU1FX01BWCwgIiVzX0NUWF9SRUYiLCBlbmdp bmUtPm5hbWUpOworCisJCV9faW50ZWxfZW5naW5lX2luaXRfY3R4X3dhKGVuZ2luZSwKKwkJCQkJ ICAgJmxpc3RzLT5lbmdpbmVbaWRdLmN0eF93YV9saXN0LAorCQkJCQkgICBuYW1lKTsKIAl9CiB9 CiAKQEAgLTEwMDMsMjggKzEwMTAsMzggQEAgc3RhdGljIGludCBsaXZlX2lzb2xhdGVkX3doaXRl bGlzdCh2b2lkICphcmcpCiAJcmV0dXJuIGVycjsKIH0KIAotc3RhdGljIGJvb2wgdmVyaWZ5X2d0 X2VuZ2luZV93YShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKLQkJCQlzdHJ1Y3Qgd2Ff bGlzdHMgKmxpc3RzLCBjb25zdCBjaGFyICpzdHIpCitzdGF0aWMgYm9vbAordmVyaWZ5X3dhX2xp c3RzKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsIHN0cnVjdCB3YV9saXN0cyAqbGlzdHMs CisJCWNvbnN0IGNoYXIgKnN0cikKIHsKLQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7 Ci0JZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUgPSBjdHgtPmk5MTU7CisJc3RydWN0IGk5MTVfZ2VtX2VuZ2luZXNfaXRlciBpdDsKKwlzdHJ1 Y3QgaW50ZWxfY29udGV4dCAqY2U7CiAJYm9vbCBvayA9IHRydWU7CiAKIAlvayAmPSB3YV9saXN0 X3ZlcmlmeSgmaTkxNS0+dW5jb3JlLCAmbGlzdHMtPmd0X3dhX2xpc3QsIHN0cik7CiAKLQlmb3Jf ZWFjaF9lbmdpbmUoZW5naW5lLCBpOTE1LCBpZCkgewotCQlvayAmPSBlbmdpbmVfd2FfbGlzdF92 ZXJpZnkoZW5naW5lLAorCWZvcl9lYWNoX2dlbV9lbmdpbmUoY2UsIGk5MTVfZ2VtX2NvbnRleHRf bG9ja19lbmdpbmVzKGN0eCksIGl0KSB7CisJCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkID0gY2Ut PmVuZ2luZS0+aWQ7CisKKwkJb2sgJj0gZW5naW5lX3dhX2xpc3RfdmVyaWZ5KGNlLAogCQkJCQkg ICAgJmxpc3RzLT5lbmdpbmVbaWRdLndhX2xpc3QsCiAJCQkJCSAgICBzdHIpID09IDA7CisKKwkJ b2sgJj0gZW5naW5lX3dhX2xpc3RfdmVyaWZ5KGNlLAorCQkJCQkgICAgJmxpc3RzLT5lbmdpbmVb aWRdLmN0eF93YV9saXN0LAorCQkJCQkgICAgc3RyKSA9PSAwOwogCX0KKwlpOTE1X2dlbV9jb250 ZXh0X3VubG9ja19lbmdpbmVzKGN0eCk7CiAKIAlyZXR1cm4gb2s7CiB9CiAKIHN0YXRpYyBpbnQK LWxpdmVfZ3B1X3Jlc2V0X2d0X2VuZ2luZV93b3JrYXJvdW5kcyh2b2lkICphcmcpCitsaXZlX2dw dV9yZXNldF93b3JrYXJvdW5kcyh2b2lkICphcmcpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmk5MTUgPSBhcmc7CisJc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eDsKIAlpbnRlbF93 YWtlcmVmX3Qgd2FrZXJlZjsKIAlzdHJ1Y3Qgd2FfbGlzdHMgbGlzdHM7CiAJYm9vbCBvazsKQEAg LTEwMzIsNiArMTA0OSwxMCBAQCBsaXZlX2dwdV9yZXNldF9ndF9lbmdpbmVfd29ya2Fyb3VuZHMo dm9pZCAqYXJnKQogCWlmICghaW50ZWxfaGFzX2dwdV9yZXNldChpOTE1KSkKIAkJcmV0dXJuIDA7 CiAKKwljdHggPSBrZXJuZWxfY29udGV4dChpOTE1KTsKKwlpZiAoSVNfRVJSKGN0eCkpCisJCXJl dHVybiBQVFJfRVJSKGN0eCk7CisKIAlwcl9pbmZvKCJWZXJpZnlpbmcgYWZ0ZXIgR1BVIHJlc2V0 Li4uXG4iKTsKIAogCWlndF9nbG9iYWxfcmVzZXRfbG9jayhpOTE1KTsKQEAgLTEwMzksMTUgKzEw NjAsMTYgQEAgbGl2ZV9ncHVfcmVzZXRfZ3RfZW5naW5lX3dvcmthcm91bmRzKHZvaWQgKmFyZykK IAogCXJlZmVyZW5jZV9saXN0c19pbml0KGk5MTUsICZsaXN0cyk7CiAKLQlvayA9IHZlcmlmeV9n dF9lbmdpbmVfd2EoaTkxNSwgJmxpc3RzLCAiYmVmb3JlIHJlc2V0Iik7CisJb2sgPSB2ZXJpZnlf d2FfbGlzdHMoY3R4LCAmbGlzdHMsICJiZWZvcmUgcmVzZXQiKTsKIAlpZiAoIW9rKQogCQlnb3Rv IG91dDsKIAogCWk5MTVfcmVzZXQoaTkxNSwgQUxMX0VOR0lORVMsICJsaXZlX3dvcmthcm91bmRz Iik7CiAKLQlvayA9IHZlcmlmeV9ndF9lbmdpbmVfd2EoaTkxNSwgJmxpc3RzLCAiYWZ0ZXIgcmVz ZXQiKTsKKwlvayA9IHZlcmlmeV93YV9saXN0cyhjdHgsICZsaXN0cywgImFmdGVyIHJlc2V0Iik7 CiAKIG91dDoKKwlrZXJuZWxfY29udGV4dF9jbG9zZShjdHgpOwogCXJlZmVyZW5jZV9saXN0c19m aW5pKGk5MTUsICZsaXN0cyk7CiAJaW50ZWxfcnVudGltZV9wbV9wdXQoaTkxNSwgd2FrZXJlZik7 CiAJaWd0X2dsb2JhbF9yZXNldF91bmxvY2soaTkxNSk7CkBAIC0xMDU2LDcgKzEwNzgsNyBAQCBs aXZlX2dwdV9yZXNldF9ndF9lbmdpbmVfd29ya2Fyb3VuZHModm9pZCAqYXJnKQogfQogCiBzdGF0 aWMgaW50Ci1saXZlX2VuZ2luZV9yZXNldF9ndF9lbmdpbmVfd29ya2Fyb3VuZHModm9pZCAqYXJn KQorbGl2ZV9lbmdpbmVfcmVzZXRfd29ya2Fyb3VuZHModm9pZCAqYXJnKQogewogCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICppOTE1ID0gYXJnOwogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZTsKQEAgLTEwODUsNyArMTEwNyw3IEBAIGxpdmVfZW5naW5lX3Jlc2V0X2d0X2VuZ2luZV93 b3JrYXJvdW5kcyh2b2lkICphcmcpCiAKIAkJcHJfaW5mbygiVmVyaWZ5aW5nIGFmdGVyICVzIHJl c2V0Li4uXG4iLCBlbmdpbmUtPm5hbWUpOwogCi0JCW9rID0gdmVyaWZ5X2d0X2VuZ2luZV93YShp OTE1LCAmbGlzdHMsICJiZWZvcmUgcmVzZXQiKTsKKwkJb2sgPSB2ZXJpZnlfd2FfbGlzdHMoY3R4 LCAmbGlzdHMsICJiZWZvcmUgcmVzZXQiKTsKIAkJaWYgKCFvaykgewogCQkJcmV0ID0gLUVTUkNI OwogCQkJZ290byBlcnI7CkBAIC0xMDkzLDcgKzExMTUsNyBAQCBsaXZlX2VuZ2luZV9yZXNldF9n dF9lbmdpbmVfd29ya2Fyb3VuZHModm9pZCAqYXJnKQogCiAJCWk5MTVfcmVzZXRfZW5naW5lKGVu Z2luZSwgImxpdmVfd29ya2Fyb3VuZHMiKTsKIAotCQlvayA9IHZlcmlmeV9ndF9lbmdpbmVfd2Eo aTkxNSwgJmxpc3RzLCAiYWZ0ZXIgaWRsZSByZXNldCIpOworCQlvayA9IHZlcmlmeV93YV9saXN0 cyhjdHgsICZsaXN0cywgImFmdGVyIGlkbGUgcmVzZXQiKTsKIAkJaWYgKCFvaykgewogCQkJcmV0 ID0gLUVTUkNIOwogCQkJZ290byBlcnI7CkBAIC0xMTI0LDcgKzExNDYsNyBAQCBsaXZlX2VuZ2lu ZV9yZXNldF9ndF9lbmdpbmVfd29ya2Fyb3VuZHModm9pZCAqYXJnKQogCQlpZ3Rfc3Bpbm5lcl9l bmQoJnNwaW4pOwogCQlpZ3Rfc3Bpbm5lcl9maW5pKCZzcGluKTsKIAotCQlvayA9IHZlcmlmeV9n dF9lbmdpbmVfd2EoaTkxNSwgJmxpc3RzLCAiYWZ0ZXIgYnVzeSByZXNldCIpOworCQlvayA9IHZl cmlmeV93YV9saXN0cyhjdHgsICZsaXN0cywgImFmdGVyIGJ1c3kgcmVzZXQiKTsKIAkJaWYgKCFv aykgewogCQkJcmV0ID0gLUVTUkNIOwogCQkJZ290byBlcnI7CkBAIC0xMTQ4LDggKzExNzAsOCBA QCBpbnQgaW50ZWxfd29ya2Fyb3VuZHNfbGl2ZV9zZWxmdGVzdHMoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmk5MTUpCiAJCVNVQlRFU1QobGl2ZV9kaXJ0eV93aGl0ZWxpc3QpLAogCQlTVUJURVNU KGxpdmVfcmVzZXRfd2hpdGVsaXN0KSwKIAkJU1VCVEVTVChsaXZlX2lzb2xhdGVkX3doaXRlbGlz dCksCi0JCVNVQlRFU1QobGl2ZV9ncHVfcmVzZXRfZ3RfZW5naW5lX3dvcmthcm91bmRzKSwKLQkJ U1VCVEVTVChsaXZlX2VuZ2luZV9yZXNldF9ndF9lbmdpbmVfd29ya2Fyb3VuZHMpLAorCQlTVUJU RVNUKGxpdmVfZ3B1X3Jlc2V0X3dvcmthcm91bmRzKSwKKwkJU1VCVEVTVChsaXZlX2VuZ2luZV9y ZXNldF93b3JrYXJvdW5kcyksCiAJfTsKIAlpbnQgZXJyOwogCi0tIAoyLjIwLjEKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5n IGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==