From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH 4/7] drm/i915/selftests: Add tests for GT and engine workaround verification Date: Fri, 30 Nov 2018 17:44:09 +0000 Message-ID: <20181130174412.15767-5-tvrtko.ursulin@linux.intel.com> References: <20181130174412.15767-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 mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id BC4B86E64F for ; Fri, 30 Nov 2018 17:44:23 +0000 (UTC) In-Reply-To: <20181130174412.15767-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 RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KClR3byBzaW1w bGUgc2VsZnRlc3RzIHdoaWNoIHRlc3QgdGhhdCBib3RoIEdUIGFuZCBlbmdpbmUgd29ya2Fyb3Vu ZHMgYXJlCm5vdCBsb3N0IGFmdGVyIGVpdGhlciBhIGZ1bGwgR1BVIHJlc2V0LCBvciBhZnRlciB0 aGUgcGVyLWVuZ2luZSBvbmVzLgoKKEluY2x1ZGluZyBjaGVja3MgdGhhdCBvbmUgZW5naW5lIHJl c2V0IGlzIG5vdCBhZmZlY3Rpbmcgd29ya2Fyb3VuZHMgbm90CmJlbG9uZ2luZyB0byBpdHNlbGYu KQoKdjI6CiAqIFJlYmFzZSBmb3Igc2VyaWVzIHJlZmFjdG9yaW5nLgogKiBBZGQgc3Bpbm5lciBm b3IgYWN0dWFsIGVuZ2luZSByZXNldCEKICogQWRkIGlkbGUgcmVzZXQgdGVzdCBhcyB3ZWxsLiAo Q2hyaXMgV2lsc29uKQogKiBTaGFyZSBleGlzdGluZyBnbG9iYWxfcmVzZXRfbG9jay4gKENocmlz IFdpbHNvbikKClNpZ25lZC1vZmYtYnk6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBp bnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgICAgICAgICAgICAg ICAgIHwgICAxICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3dvcmthcm91bmRzLmMgICAg ICB8ICAgNiArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaWd0X2NvbW1vbi5jICAg fCAgNDQgKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaWd0X2NvbW1vbi5o ICAgfCAgMTUgKysKIC4uLi9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX2hhbmdjaGVjay5j ICB8ICA1MSArKy0tLS0KIC4uLi9kcm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfd29ya2Fyb3VuZHMu YyAgICB8IDE0NyArKysrKysrKysrKysrKysrKy0KIDYgZmlsZXMgY2hhbmdlZCwgMjE3IGluc2Vy dGlvbnMoKyksIDQ3IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1 L2RybS9pOTE1L3NlbGZ0ZXN0cy9pZ3RfY29tbW9uLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaWd0X2NvbW1vbi5oCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmls ZQppbmRleCA1MGE4ZmE4ZmNlNjQuLmNlZWIyMWY4YWEwYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUK QEAgLTE2Niw2ICsxNjYsNyBAQCBpOTE1LSQoQ09ORklHX0RSTV9JOTE1X1NFTEZURVNUKSArPSBc CiAJc2VsZnRlc3RzL2k5MTVfcmFuZG9tLm8gXAogCXNlbGZ0ZXN0cy9pOTE1X3NlbGZ0ZXN0Lm8g XAogCXNlbGZ0ZXN0cy9pZ3RfZmx1c2hfdGVzdC5vIFwKKwlzZWxmdGVzdHMvaWd0X2NvbW1vbi5v IFwKIAlzZWxmdGVzdHMvaWd0X3NwaW5uZXIubwogCiAjIHZpcnR1YWwgZ3B1IGNvZGUKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3dvcmthcm91bmRzLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF93b3JrYXJvdW5kcy5jCmluZGV4IGQ4MGVhODE3MjIyMi4uNWE0 ZDcwZTAyYjYzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF93b3JrYXJv dW5kcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3dvcmthcm91bmRzLmMKQEAg LTEzMDMsNCArMTMwMywxMCBAQCB2b2lkIGludGVsX2VuZ2luZV93b3JrYXJvdW5kc19hcHBseShz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAKICNpZiBJU19FTkFCTEVEKENPTkZJR19E Uk1fSTkxNV9TRUxGVEVTVCkKICNpbmNsdWRlICJzZWxmdGVzdHMvaW50ZWxfd29ya2Fyb3VuZHMu YyIKKworYm9vbCBpbnRlbF9lbmdpbmVfd29ya2Fyb3VuZHNfdmVyaWZ5KHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSwKKwkJCQkgICAgIGNvbnN0IGNoYXIgKmZyb20pCit7CisJcmV0dXJu IHdhX2xpc3RfdmVyaWZ5KGVuZ2luZS0+aTkxNSwgJmVuZ2luZS0+d2FfbGlzdCwgZnJvbSk7Cit9 CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pZ3Rf Y29tbW9uLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaWd0X2NvbW1vbi5jCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYWQwMGZkZjg5NWJlCi0tLSAv ZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2lndF9jb21tb24u YwpAQCAtMCwwICsxLDQ0IEBACisvKgorICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAor ICoKKyAqIENvcHlyaWdodCDCqSAyMDE4IEludGVsIENvcnBvcmF0aW9uCisgKi8KKworI2luY2x1 ZGUgImlndF9jb21tb24uaCIKKworI2luY2x1ZGUgIi4uL2k5MTVfZHJ2LmgiCisjaW5jbHVkZSAi Li4vaW50ZWxfcmluZ2J1ZmZlci5oIgorCit2b2lkIGlndF9nbG9iYWxfcmVzZXRfbG9jayhzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3sKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmU7CisJZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7CisKKwlwcl9kZWJ1ZygiJXM6IGN1cnJl bnQgZ3B1X2Vycm9yPSUwOGx4XG4iLAorCQkgX19mdW5jX18sIGk5MTUtPmdwdV9lcnJvci5mbGFn cyk7CisKKwl3aGlsZSAodGVzdF9hbmRfc2V0X2JpdChJOTE1X1JFU0VUX0JBQ0tPRkYsICZpOTE1 LT5ncHVfZXJyb3IuZmxhZ3MpKQorCQl3YWl0X2V2ZW50KGk5MTUtPmdwdV9lcnJvci5yZXNldF9x dWV1ZSwKKwkJCSAgICF0ZXN0X2JpdChJOTE1X1JFU0VUX0JBQ0tPRkYsCisJCQkJICAgICAmaTkx NS0+Z3B1X2Vycm9yLmZsYWdzKSk7CisKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBpOTE1LCBp ZCkgeworCQl3aGlsZSAodGVzdF9hbmRfc2V0X2JpdChJOTE1X1JFU0VUX0VOR0lORSArIGlkLAor CQkJCQkmaTkxNS0+Z3B1X2Vycm9yLmZsYWdzKSkKKwkJCXdhaXRfb25fYml0KCZpOTE1LT5ncHVf ZXJyb3IuZmxhZ3MsCisJCQkJICAgIEk5MTVfUkVTRVRfRU5HSU5FICsgaWQsCisJCQkJICAgIFRB U0tfVU5JTlRFUlJVUFRJQkxFKTsKKwl9Cit9CisKK3ZvaWQgaWd0X2dsb2JhbF9yZXNldF91bmxv Y2soc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCit7CisJc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lOworCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOworCisJZm9yX2VhY2hfZW5n aW5lKGVuZ2luZSwgaTkxNSwgaWQpCisJCWNsZWFyX2JpdChJOTE1X1JFU0VUX0VOR0lORSArIGlk LCAmaTkxNS0+Z3B1X2Vycm9yLmZsYWdzKTsKKworCWNsZWFyX2JpdChJOTE1X1JFU0VUX0JBQ0tP RkYsICZpOTE1LT5ncHVfZXJyb3IuZmxhZ3MpOworCXdha2VfdXBfYWxsKCZpOTE1LT5ncHVfZXJy b3IucmVzZXRfcXVldWUpOworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2Vs ZnRlc3RzL2lndF9jb21tb24uaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pZ3Rf Y29tbW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4zZGYxMmVk MTAyMDAKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMv aWd0X2NvbW1vbi5oCkBAIC0wLDAgKzEsMTUgQEAKKy8qCisgKiBTUERYLUxpY2Vuc2UtSWRlbnRp ZmllcjogTUlUCisgKgorICogQ29weXJpZ2h0IMKpIDIwMTggSW50ZWwgQ29ycG9yYXRpb24KKyAq LworCisjaWZuZGVmIF9fSTkxNV9TRUxGVEVTVFNfSUdUX0NPTU1PTl9IX18KKyNkZWZpbmUgX19J OTE1X1NFTEZURVNUU19JR1RfQ09NTU9OX0hfXworCisjaW5jbHVkZSAiLi4vaTkxNV9kcnYuaCIK Kwordm9pZCBpZ3RfZ2xvYmFsX3Jlc2V0X2xvY2soc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUpOwordm9pZCBpZ3RfZ2xvYmFsX3Jlc2V0X3VubG9jayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqaTkxNSk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2Vs ZnRlc3RzL2ludGVsX2hhbmdjaGVjay5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3Rz L2ludGVsX2hhbmdjaGVjay5jCmluZGV4IGRlZmU2NzExMzBhYi4uYWYzMWU0YTQ5NzlkIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfaGFuZ2NoZWNrLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX2hhbmdjaGVjay5jCkBA IC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSA8bGludXgva3RocmVhZC5oPgogCiAjaW5jbHVkZSAi Li4vaTkxNV9zZWxmdGVzdC5oIgorI2luY2x1ZGUgImlndF9jb21tb24uaCIKICNpbmNsdWRlICJp OTE1X3JhbmRvbS5oIgogI2luY2x1ZGUgImlndF9mbHVzaF90ZXN0LmgiCiAjaW5jbHVkZSAiaWd0 X3dlZGdlX21lLmgiCkBAIC0zNDgsNDAgKzM0OSw2IEBAIHN0YXRpYyBpbnQgaWd0X2hhbmdfc2Fu aXR5Y2hlY2sodm9pZCAqYXJnKQogCXJldHVybiBlcnI7CiB9CiAKLXN0YXRpYyB2b2lkIGdsb2Jh bF9yZXNldF9sb2NrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQotewotCXN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKLQllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKLQotCXBy X2RlYnVnKCIlczogY3VycmVudCBncHVfZXJyb3I9JTA4bHhcbiIsCi0JCSBfX2Z1bmNfXywgaTkx NS0+Z3B1X2Vycm9yLmZsYWdzKTsKLQotCXdoaWxlICh0ZXN0X2FuZF9zZXRfYml0KEk5MTVfUkVT RVRfQkFDS09GRiwgJmk5MTUtPmdwdV9lcnJvci5mbGFncykpCi0JCXdhaXRfZXZlbnQoaTkxNS0+ Z3B1X2Vycm9yLnJlc2V0X3F1ZXVlLAotCQkJICAgIXRlc3RfYml0KEk5MTVfUkVTRVRfQkFDS09G RiwKLQkJCQkgICAgICZpOTE1LT5ncHVfZXJyb3IuZmxhZ3MpKTsKLQotCWZvcl9lYWNoX2VuZ2lu ZShlbmdpbmUsIGk5MTUsIGlkKSB7Ci0JCXdoaWxlICh0ZXN0X2FuZF9zZXRfYml0KEk5MTVfUkVT RVRfRU5HSU5FICsgaWQsCi0JCQkJCSZpOTE1LT5ncHVfZXJyb3IuZmxhZ3MpKQotCQkJd2FpdF9v bl9iaXQoJmk5MTUtPmdwdV9lcnJvci5mbGFncywKLQkJCQkgICAgSTkxNV9SRVNFVF9FTkdJTkUg KyBpZCwKLQkJCQkgICAgVEFTS19VTklOVEVSUlVQVElCTEUpOwotCX0KLX0KLQotc3RhdGljIHZv aWQgZ2xvYmFsX3Jlc2V0X3VubG9jayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKLXsK LQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Ci0JZW51bSBpbnRlbF9lbmdpbmVfaWQg aWQ7Ci0KLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBpOTE1LCBpZCkKLQkJY2xlYXJfYml0KEk5 MTVfUkVTRVRfRU5HSU5FICsgaWQsICZpOTE1LT5ncHVfZXJyb3IuZmxhZ3MpOwotCi0JY2xlYXJf Yml0KEk5MTVfUkVTRVRfQkFDS09GRiwgJmk5MTUtPmdwdV9lcnJvci5mbGFncyk7Ci0Jd2FrZV91 cF9hbGwoJmk5MTUtPmdwdV9lcnJvci5yZXNldF9xdWV1ZSk7Ci19Ci0KIHN0YXRpYyBpbnQgaWd0 X2dsb2JhbF9yZXNldCh2b2lkICphcmcpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUgPSBhcmc7CkBAIC0zOTAsNyArMzU3LDcgQEAgc3RhdGljIGludCBpZ3RfZ2xvYmFsX3Jlc2V0 KHZvaWQgKmFyZykKIAogCS8qIENoZWNrIHRoYXQgd2UgY2FuIGlzc3VlIGEgZ2xvYmFsIEdQVSBy ZXNldCAqLwogCi0JZ2xvYmFsX3Jlc2V0X2xvY2soaTkxNSk7CisJaWd0X2dsb2JhbF9yZXNldF9s b2NrKGk5MTUpOwogCXNldF9iaXQoSTkxNV9SRVNFVF9IQU5ET0ZGLCAmaTkxNS0+Z3B1X2Vycm9y LmZsYWdzKTsKIAogCW11dGV4X2xvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwpAQCAtNDA1 LDcgKzM3Miw3IEBAIHN0YXRpYyBpbnQgaWd0X2dsb2JhbF9yZXNldCh2b2lkICphcmcpCiAJbXV0 ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKIAogCUdFTV9CVUdfT04odGVzdF9i aXQoSTkxNV9SRVNFVF9IQU5ET0ZGLCAmaTkxNS0+Z3B1X2Vycm9yLmZsYWdzKSk7Ci0JZ2xvYmFs X3Jlc2V0X3VubG9jayhpOTE1KTsKKwlpZ3RfZ2xvYmFsX3Jlc2V0X3VubG9jayhpOTE1KTsKIAog CWlmIChpOTE1X3Rlcm1pbmFsbHlfd2VkZ2VkKCZpOTE1LT5ncHVfZXJyb3IpKQogCQllcnIgPSAt RUlPOwpAQCAtOTM2LDcgKzkwMyw3IEBAIHN0YXRpYyBpbnQgaWd0X3Jlc2V0X3dhaXQodm9pZCAq YXJnKQogCiAJLyogQ2hlY2sgdGhhdCB3ZSBkZXRlY3QgYSBzdHVjayB3YWl0ZXIgYW5kIGlzc3Vl IGEgcmVzZXQgKi8KIAotCWdsb2JhbF9yZXNldF9sb2NrKGk5MTUpOworCWlndF9nbG9iYWxfcmVz ZXRfbG9jayhpOTE1KTsKIAogCW11dGV4X2xvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwog CWVyciA9IGhhbmdfaW5pdCgmaCwgaTkxNSk7CkBAIC05ODgsNyArOTU1LDcgQEAgc3RhdGljIGlu dCBpZ3RfcmVzZXRfd2FpdCh2b2lkICphcmcpCiAJaGFuZ19maW5pKCZoKTsKIHVubG9jazoKIAlt dXRleF91bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwotCWdsb2JhbF9yZXNldF91bmxv Y2soaTkxNSk7CisJaWd0X2dsb2JhbF9yZXNldF91bmxvY2soaTkxNSk7CiAKIAlpZiAoaTkxNV90 ZXJtaW5hbGx5X3dlZGdlZCgmaTkxNS0+Z3B1X2Vycm9yKSkKIAkJcmV0dXJuIC1FSU87CkBAIC0x MDY2LDcgKzEwMzMsNyBAQCBzdGF0aWMgaW50IF9faWd0X3Jlc2V0X2V2aWN0X3ZtYShzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAogCS8qIENoZWNrIHRoYXQgd2UgY2FuIHJlY292ZXIg YW4gdW5iaW5kIHN0dWNrIG9uIGEgaGFuZ2luZyByZXF1ZXN0ICovCiAKLQlnbG9iYWxfcmVzZXRf bG9jayhpOTE1KTsKKwlpZ3RfZ2xvYmFsX3Jlc2V0X2xvY2soaTkxNSk7CiAKIAltdXRleF9sb2Nr KCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKIAllcnIgPSBoYW5nX2luaXQoJmgsIGk5MTUpOwpA QCAtMTE4Niw3ICsxMTUzLDcgQEAgc3RhdGljIGludCBfX2lndF9yZXNldF9ldmljdF92bWEoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJaGFuZ19maW5pKCZoKTsKIHVubG9jazoKIAlt dXRleF91bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwotCWdsb2JhbF9yZXNldF91bmxv Y2soaTkxNSk7CisJaWd0X2dsb2JhbF9yZXNldF91bmxvY2soaTkxNSk7CiAKIAlpZiAoaTkxNV90 ZXJtaW5hbGx5X3dlZGdlZCgmaTkxNS0+Z3B1X2Vycm9yKSkKIAkJcmV0dXJuIC1FSU87CkBAIC0x MjY2LDcgKzEyMzMsNyBAQCBzdGF0aWMgaW50IGlndF9yZXNldF9xdWV1ZSh2b2lkICphcmcpCiAK IAkvKiBDaGVjayB0aGF0IHdlIHJlcGxheSBwZW5kaW5nIHJlcXVlc3RzIGZvbGxvd2luZyBhIGhh bmcgKi8KIAotCWdsb2JhbF9yZXNldF9sb2NrKGk5MTUpOworCWlndF9nbG9iYWxfcmVzZXRfbG9j ayhpOTE1KTsKIAogCW11dGV4X2xvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCWVyciA9 IGhhbmdfaW5pdCgmaCwgaTkxNSk7CkBAIC0xMzk3LDcgKzEzNjQsNyBAQCBzdGF0aWMgaW50IGln dF9yZXNldF9xdWV1ZSh2b2lkICphcmcpCiAJaGFuZ19maW5pKCZoKTsKIHVubG9jazoKIAltdXRl eF91bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwotCWdsb2JhbF9yZXNldF91bmxvY2so aTkxNSk7CisJaWd0X2dsb2JhbF9yZXNldF91bmxvY2soaTkxNSk7CiAKIAlpZiAoaTkxNV90ZXJt aW5hbGx5X3dlZGdlZCgmaTkxNS0+Z3B1X2Vycm9yKSkKIAkJcmV0dXJuIC1FSU87CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfd29ya2Fyb3VuZHMuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF93b3JrYXJvdW5kcy5jCmluZGV4 IDgwMzk2YjM1OTJmNS4uMTk0YTNjMzA1NTRkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9zZWxmdGVzdHMvaW50ZWxfd29ya2Fyb3VuZHMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9zZWxmdGVzdHMvaW50ZWxfd29ya2Fyb3VuZHMuYwpAQCAtNiw2ICs2LDggQEAKIAogI2lu Y2x1ZGUgIi4uL2k5MTVfc2VsZnRlc3QuaCIKIAorI2luY2x1ZGUgImlndF9jb21tb24uaCIKKyNp bmNsdWRlICJpZ3RfZmx1c2hfdGVzdC5oIgogI2luY2x1ZGUgImlndF9zcGlubmVyLmgiCiAjaW5j bHVkZSAiaWd0X3dlZGdlX21lLmgiCiAjaW5jbHVkZSAibW9ja19jb250ZXh0LmgiCkBAIC0yOTAs NyArMjkyLDYgQEAgc3RhdGljIGludCBsaXZlX3Jlc2V0X3doaXRlbGlzdCh2b2lkICphcmcpCiB7 CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBhcmc7CiAJc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lID0gaTkxNS0+ZW5naW5lW1JDU107Ci0Jc3RydWN0IGk5MTVfZ3B1X2Vy cm9yICplcnJvciA9ICZpOTE1LT5ncHVfZXJyb3I7CiAJc3RydWN0IHdoaXRlbGlzdCB3OwogCWlu dCBlcnIgPSAwOwogCkBAIC0zMDIsOCArMzAzLDcgQEAgc3RhdGljIGludCBsaXZlX3Jlc2V0X3do aXRlbGlzdCh2b2lkICphcmcpCiAJaWYgKCF3aGl0ZWxpc3RfYnVpbGQoZW5naW5lLCAmdykpCiAJ CXJldHVybiAwOwogCi0Jc2V0X2JpdChJOTE1X1JFU0VUX0JBQ0tPRkYsICZlcnJvci0+ZmxhZ3Mp OwotCXNldF9iaXQoSTkxNV9SRVNFVF9FTkdJTkUgKyBlbmdpbmUtPmlkLCAmZXJyb3ItPmZsYWdz KTsKKwlpZ3RfZ2xvYmFsX3Jlc2V0X2xvY2soaTkxNSk7CiAKIAlpZiAoaW50ZWxfaGFzX3Jlc2V0 X2VuZ2luZShpOTE1KSkgewogCQllcnIgPSBjaGVja193aGl0ZWxpc3RfYWNyb3NzX3Jlc2V0KGVu Z2luZSwKQEAgLTMyMiwxNSArMzIyLDE1MiBAQCBzdGF0aWMgaW50IGxpdmVfcmVzZXRfd2hpdGVs aXN0KHZvaWQgKmFyZykKIAl9CiAKIG91dDoKLQljbGVhcl9iaXQoSTkxNV9SRVNFVF9FTkdJTkUg KyBlbmdpbmUtPmlkLCAmZXJyb3ItPmZsYWdzKTsKLQljbGVhcl9iaXQoSTkxNV9SRVNFVF9CQUNL T0ZGLCAmZXJyb3ItPmZsYWdzKTsKKwlpZ3RfZ2xvYmFsX3Jlc2V0X3VubG9jayhpOTE1KTsKIAly ZXR1cm4gZXJyOwogfQogCitib29sIGludGVsX2VuZ2luZV93b3JrYXJvdW5kc192ZXJpZnkoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAorCQkJCSAgICAgY29uc3QgY2hhciAqZnJvbSk7 CisKK3N0YXRpYyBib29sIHZlcmlmeV9ndF9lbmdpbmVfd2Eoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmk5MTUsIGNvbnN0IGNoYXIgKnN0cikKK3sKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmU7CisJZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7CisJYm9vbCBvayA9IHRydWU7CisKKwlv ayAmPSBpbnRlbF9ndF93b3JrYXJvdW5kc192ZXJpZnkoaTkxNSwgc3RyKTsKKworCWZvcl9lYWNo X2VuZ2luZShlbmdpbmUsIGk5MTUsIGlkKQorCQlvayAmPSBpbnRlbF9lbmdpbmVfd29ya2Fyb3Vu ZHNfdmVyaWZ5KGVuZ2luZSwgc3RyKTsKKworCXJldHVybiBvazsKK30KKworc3RhdGljIGludAor bGl2ZV9ncHVfcmVzZXRfZ3RfZW5naW5lX3dvcmthcm91bmRzKHZvaWQgKmFyZykKK3sKKwlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGFyZzsKKwlzdHJ1Y3QgaTkxNV9ncHVfZXJyb3Ig KmVycm9yID0gJmk5MTUtPmdwdV9lcnJvcjsKKwlib29sIG9rOworCisJaWYgKCFpbnRlbF9oYXNf Z3B1X3Jlc2V0KGk5MTUpKQorCQlyZXR1cm4gMDsKKworCXByX2luZm8oIlZlcmlmeWluZyBhZnRl ciBHUFUgcmVzZXQuLi5cbiIpOworCisJaWd0X2dsb2JhbF9yZXNldF9sb2NrKGk5MTUpOworCisJ b2sgPSB2ZXJpZnlfZ3RfZW5naW5lX3dhKGk5MTUsICJiZWZvcmUgcmVzZXQiKTsKKwlpZiAoIW9r KQorCQlnb3RvIG91dDsKKworCWludGVsX3J1bnRpbWVfcG1fZ2V0KGk5MTUpOworCXNldF9iaXQo STkxNV9SRVNFVF9IQU5ET0ZGLCAmZXJyb3ItPmZsYWdzKTsKKwlpOTE1X3Jlc2V0KGk5MTUsIEFM TF9FTkdJTkVTLCAibGl2ZV93b3JrYXJvdW5kcyIpOworCWludGVsX3J1bnRpbWVfcG1fcHV0KGk5 MTUpOworCisJb2sgPSB2ZXJpZnlfZ3RfZW5naW5lX3dhKGk5MTUsICJhZnRlciByZXNldCIpOwor CitvdXQ6CisJaWd0X2dsb2JhbF9yZXNldF91bmxvY2soaTkxNSk7CisKKwlyZXR1cm4gb2sgPyAw IDogLUVTUkNIOworfQorCitzdGF0aWMgaW50CitsaXZlX2VuZ2luZV9yZXNldF9ndF9lbmdpbmVf d29ya2Fyb3VuZHModm9pZCAqYXJnKQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1 ID0gYXJnOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKKwlzdHJ1Y3QgaTkxNV9n ZW1fY29udGV4dCAqY3R4OworCXN0cnVjdCBpZ3Rfc3Bpbm5lciBzcGluOworCWVudW0gaW50ZWxf ZW5naW5lX2lkIGlkOworCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxOworCWludCByZXQgPSAwOwor CisJaWYgKCFpbnRlbF9oYXNfcmVzZXRfZW5naW5lKGk5MTUpKQorCQlyZXR1cm4gMDsKKworCWN0 eCA9IGtlcm5lbF9jb250ZXh0KGk5MTUpOworCWlmIChJU19FUlIoY3R4KSkKKwkJcmV0dXJuIFBU Ul9FUlIoY3R4KTsKKworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGk5MTUsIGlkKSB7CisJCWJv b2wgb2s7CisKKwkJcHJfaW5mbygiVmVyaWZ5aW5nIGFmdGVyICVzIHJlc2V0Li4uXG4iLCBlbmdp bmUtPm5hbWUpOworCisJCWlndF9nbG9iYWxfcmVzZXRfbG9jayhpOTE1KTsKKworCQlvayA9IHZl cmlmeV9ndF9lbmdpbmVfd2EoaTkxNSwgImJlZm9yZSByZXNldCIpOworCQlpZiAoIW9rKSB7CisJ CQlyZXQgPSAtRVNSQ0g7CisJCQlnb3RvIGVycjsKKwkJfQorCisJCWludGVsX3J1bnRpbWVfcG1f Z2V0KGk5MTUpOworCQlpOTE1X3Jlc2V0X2VuZ2luZShlbmdpbmUsICJsaXZlX3dvcmthcm91bmRz Iik7CisJCWludGVsX3J1bnRpbWVfcG1fcHV0KGk5MTUpOworCisJCW9rID0gdmVyaWZ5X2d0X2Vu Z2luZV93YShpOTE1LCAiYWZ0ZXIgaWRsZSByZXNldCIpOworCQlpZiAoIW9rKSB7CisJCQlyZXQg PSAtRVNSQ0g7CisJCQlnb3RvIGVycjsKKwkJfQorCisJCXJldCA9IGlndF9zcGlubmVyX2luaXQo JnNwaW4sIGk5MTUpOworCQlpZiAocmV0KQorCQkJZ290byBlcnI7CisKKwkJaW50ZWxfcnVudGlt ZV9wbV9nZXQoaTkxNSk7CisKKwkJcnEgPSBpZ3Rfc3Bpbm5lcl9jcmVhdGVfcmVxdWVzdCgmc3Bp biwgY3R4LCBlbmdpbmUsIE1JX05PT1ApOworCQlpZiAoSVNfRVJSKHJxKSkgeworCQkJcmV0ID0g UFRSX0VSUihycSk7CisJCQlpZ3Rfc3Bpbm5lcl9maW5pKCZzcGluKTsKKwkJCWdvdG8gZXJyOwor CQl9CisKKwkJaTkxNV9yZXF1ZXN0X2FkZChycSk7CisKKwkJaWYgKCFpZ3Rfd2FpdF9mb3Jfc3Bp bm5lcigmc3BpbiwgcnEpKSB7CisJCQlwcl9lcnIoIlNwaW5uZXIgZmFpbGVkIHRvIHN0YXJ0XG4i KTsKKwkJCWlndF9zcGlubmVyX2ZpbmkoJnNwaW4pOworCQkJcmV0ID0gLUVUSU1FRE9VVDsKKwkJ CWdvdG8gZXJyOworCQl9CisKKwkJaTkxNV9yZXNldF9lbmdpbmUoZW5naW5lLCAibGl2ZV93b3Jr YXJvdW5kcyIpOworCisJCWludGVsX3J1bnRpbWVfcG1fcHV0KGk5MTUpOworCisJCWlndF9zcGlu bmVyX2VuZCgmc3Bpbik7CisJCWlndF9zcGlubmVyX2ZpbmkoJnNwaW4pOworCisJCW9rID0gdmVy aWZ5X2d0X2VuZ2luZV93YShpOTE1LCAiYWZ0ZXIgYnVzeSByZXNldCIpOworCQlpZiAoIW9rKSB7 CisJCQlyZXQgPSAtRVNSQ0g7CisJCQlnb3RvIGVycjsKKwkJfQorCisJCWlndF9nbG9iYWxfcmVz ZXRfdW5sb2NrKGk5MTUpOworCX0KKworZXJyOgorCWlndF9nbG9iYWxfcmVzZXRfdW5sb2NrKGk5 MTUpOworCWtlcm5lbF9jb250ZXh0X2Nsb3NlKGN0eCk7CisKKwlpZ3RfZmx1c2hfdGVzdChpOTE1 LCBJOTE1X1dBSVRfTE9DS0VEKTsKKworCXJldHVybiByZXQ7Cit9CisKIGludCBpbnRlbF93b3Jr YXJvdW5kc19saXZlX3NlbGZ0ZXN0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIHsK IAlzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfc3VidGVzdCB0ZXN0c1tdID0gewogCQlTVUJURVNU KGxpdmVfcmVzZXRfd2hpdGVsaXN0KSwKKwkJU1VCVEVTVChsaXZlX2dwdV9yZXNldF9ndF9lbmdp bmVfd29ya2Fyb3VuZHMpLAorCQlTVUJURVNUKGxpdmVfZW5naW5lX3Jlc2V0X2d0X2VuZ2luZV93 b3JrYXJvdW5kcyksCiAJfTsKIAlpbnQgZXJyOwogCi0tIAoyLjE5LjEKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QK SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=