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: Mon, 3 Dec 2018 12:50:11 +0000 Message-ID: <20181203125014.3219-5-tvrtko.ursulin@linux.intel.com> References: <20181203125014.3219-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 mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8A4BE89CBE for ; Mon, 3 Dec 2018 12:50:25 +0000 (UTC) In-Reply-To: <20181203125014.3219-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 IFdpbHNvbikKCnYzOgogKiBpbnRlbF9lbmdpbmVfdmVyaWZ5X3dvcmthcm91bmRzIGNhbiBiZSBz dGF0aWMuCiAqIEFQSSByZW5hbWUuIChDaHJpcyBXaWxzb24pCiAqIE1vdmUgZ2xvYmFsIHJlc2V0 IGxvY2sgb3V0IG9mIHRoZSBsb29wLiAoQ2hyaXMgV2lsc29uKQoKdjQ6CiAqIEFkZCBtaXNzaW5n IHJwbSBwdXRzLiAoQ2hyaXMgV2lsc29uKQoKU2lnbmVkLW9mZi1ieTogVHZydGtvIFVyc3VsaW4g PHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IENocmlzIFdpbHNvbiA8Y2hy aXNAY2hyaXMtd2lsc29uLmNvLnVrPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxl ICAgICAgICAgICAgICAgICB8ICAgMSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF93b3Jr YXJvdW5kcy5jICAgICAgfCAgIDYgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ln dF9yZXNldC5jICAgIHwgIDQ0ICsrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3Rz L2lndF9yZXNldC5oICAgIHwgIDE1ICsrCiAuLi4vZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRl bF9oYW5nY2hlY2suYyAgfCAgNTEgKystLS0tLQogLi4uL2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRl bF93b3JrYXJvdW5kcy5jICAgIHwgMTQ0ICsrKysrKysrKysrKysrKysrLQogNiBmaWxlcyBjaGFu Z2VkLCAyMTQgaW5zZXJ0aW9ucygrKSwgNDcgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2 NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2lndF9yZXNldC5jCiBjcmVhdGUgbW9k ZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2lndF9yZXNldC5oCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9NYWtlZmlsZQppbmRleCA1MGE4ZmE4ZmNlNjQuLjE5YjVmZTUwMTZiZiAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvTWFrZWZpbGUKQEAgLTE2Niw2ICsxNjYsNyBAQCBpOTE1LSQoQ09ORklHX0RSTV9JOTE1X1NF TEZURVNUKSArPSBcCiAJc2VsZnRlc3RzL2k5MTVfcmFuZG9tLm8gXAogCXNlbGZ0ZXN0cy9pOTE1 X3NlbGZ0ZXN0Lm8gXAogCXNlbGZ0ZXN0cy9pZ3RfZmx1c2hfdGVzdC5vIFwKKwlzZWxmdGVzdHMv aWd0X3Jlc2V0Lm8gXAogCXNlbGZ0ZXN0cy9pZ3Rfc3Bpbm5lci5vCiAKICMgdmlydHVhbCBncHUg Y29kZQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfd29ya2Fyb3VuZHMu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3dvcmthcm91bmRzLmMKaW5kZXggMWZjNDk2 NDUyOGE3Li5iYjQ5YTU1MDRjOWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3dvcmthcm91bmRzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfd29ya2Fy b3VuZHMuYwpAQCAtMTMwNCw1ICsxMzA0LDExIEBAIHZvaWQgaW50ZWxfZW5naW5lX2FwcGx5X3dv cmthcm91bmRzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIH0KIAogI2lmIElTX0VO QUJMRUQoQ09ORklHX0RSTV9JOTE1X1NFTEZURVNUKQorc3RhdGljIGJvb2wgaW50ZWxfZW5naW5l X3ZlcmlmeV93b3JrYXJvdW5kcyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCisJCQkJ CSAgICBjb25zdCBjaGFyICpmcm9tKQoreworCXJldHVybiB3YV9saXN0X3ZlcmlmeShlbmdpbmUt Pmk5MTUsICZlbmdpbmUtPndhX2xpc3QsIGZyb20pOworfQorCiAjaW5jbHVkZSAic2VsZnRlc3Rz L2ludGVsX3dvcmthcm91bmRzLmMiCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L3NlbGZ0ZXN0cy9pZ3RfcmVzZXQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0 ZXN0cy9pZ3RfcmVzZXQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAu LjIwOGE5NjZkYThjYQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3Nl bGZ0ZXN0cy9pZ3RfcmVzZXQuYwpAQCAtMCwwICsxLDQ0IEBACisvKgorICogU1BEWC1MaWNlbnNl LUlkZW50aWZpZXI6IE1JVAorICoKKyAqIENvcHlyaWdodCDCqSAyMDE4IEludGVsIENvcnBvcmF0 aW9uCisgKi8KKworI2luY2x1ZGUgImlndF9yZXNldC5oIgorCisjaW5jbHVkZSAiLi4vaTkxNV9k cnYuaCIKKyNpbmNsdWRlICIuLi9pbnRlbF9yaW5nYnVmZmVyLmgiCisKK3ZvaWQgaWd0X2dsb2Jh bF9yZXNldF9sb2NrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQoreworCXN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKKwllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKKworCXBy X2RlYnVnKCIlczogY3VycmVudCBncHVfZXJyb3I9JTA4bHhcbiIsCisJCSBfX2Z1bmNfXywgaTkx NS0+Z3B1X2Vycm9yLmZsYWdzKTsKKworCXdoaWxlICh0ZXN0X2FuZF9zZXRfYml0KEk5MTVfUkVT RVRfQkFDS09GRiwgJmk5MTUtPmdwdV9lcnJvci5mbGFncykpCisJCXdhaXRfZXZlbnQoaTkxNS0+ Z3B1X2Vycm9yLnJlc2V0X3F1ZXVlLAorCQkJICAgIXRlc3RfYml0KEk5MTVfUkVTRVRfQkFDS09G RiwKKwkJCQkgICAgICZpOTE1LT5ncHVfZXJyb3IuZmxhZ3MpKTsKKworCWZvcl9lYWNoX2VuZ2lu ZShlbmdpbmUsIGk5MTUsIGlkKSB7CisJCXdoaWxlICh0ZXN0X2FuZF9zZXRfYml0KEk5MTVfUkVT RVRfRU5HSU5FICsgaWQsCisJCQkJCSZpOTE1LT5ncHVfZXJyb3IuZmxhZ3MpKQorCQkJd2FpdF9v bl9iaXQoJmk5MTUtPmdwdV9lcnJvci5mbGFncywKKwkJCQkgICAgSTkxNV9SRVNFVF9FTkdJTkUg KyBpZCwKKwkJCQkgICAgVEFTS19VTklOVEVSUlVQVElCTEUpOworCX0KK30KKwordm9pZCBpZ3Rf Z2xvYmFsX3Jlc2V0X3VubG9jayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3sKKwlz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CisJZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7 CisKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBpOTE1LCBpZCkKKwkJY2xlYXJfYml0KEk5MTVf UkVTRVRfRU5HSU5FICsgaWQsICZpOTE1LT5ncHVfZXJyb3IuZmxhZ3MpOworCisJY2xlYXJfYml0 KEk5MTVfUkVTRVRfQkFDS09GRiwgJmk5MTUtPmdwdV9lcnJvci5mbGFncyk7CisJd2FrZV91cF9h bGwoJmk5MTUtPmdwdV9lcnJvci5yZXNldF9xdWV1ZSk7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaWd0X3Jlc2V0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9zZWxmdGVzdHMvaWd0X3Jlc2V0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwLi41ZjAyMzRkMDQ1ZDUKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9zZWxmdGVzdHMvaWd0X3Jlc2V0LmgKQEAgLTAsMCArMSwxNSBAQAorLyoKKyAqIFNQRFgt TGljZW5zZS1JZGVudGlmaWVyOiBNSVQKKyAqCisgKiBDb3B5cmlnaHQgwqkgMjAxOCBJbnRlbCBD b3Jwb3JhdGlvbgorICovCisKKyNpZm5kZWYgX19JOTE1X1NFTEZURVNUU19JR1RfUkVTRVRfSF9f CisjZGVmaW5lIF9fSTkxNV9TRUxGVEVTVFNfSUdUX1JFU0VUX0hfXworCisjaW5jbHVkZSAiLi4v aTkxNV9kcnYuaCIKKwordm9pZCBpZ3RfZ2xvYmFsX3Jlc2V0X2xvY2soc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmk5MTUpOwordm9pZCBpZ3RfZ2xvYmFsX3Jlc2V0X3VubG9jayhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqaTkxNSk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX2hhbmdjaGVjay5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvc2VsZnRlc3RzL2ludGVsX2hhbmdjaGVjay5jCmluZGV4IGRlZmU2NzExMzBhYi4uM2FjNTM0 OTYxMjdiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxf aGFuZ2NoZWNrLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX2hh bmdjaGVjay5jCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiLi4vaTkxNV9zZWxmdGVzdC5o IgogI2luY2x1ZGUgImk5MTVfcmFuZG9tLmgiCiAjaW5jbHVkZSAiaWd0X2ZsdXNoX3Rlc3QuaCIK KyNpbmNsdWRlICJpZ3RfcmVzZXQuaCIKICNpbmNsdWRlICJpZ3Rfd2VkZ2VfbWUuaCIKIAogI2lu Y2x1ZGUgIm1vY2tfY29udGV4dC5oIgpAQCAtMzQ4LDQwICszNDksNiBAQCBzdGF0aWMgaW50IGln dF9oYW5nX3Nhbml0eWNoZWNrKHZvaWQgKmFyZykKIAlyZXR1cm4gZXJyOwogfQogCi1zdGF0aWMg dm9pZCBnbG9iYWxfcmVzZXRfbG9jayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKLXsK LQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Ci0JZW51bSBpbnRlbF9lbmdpbmVfaWQg aWQ7Ci0KLQlwcl9kZWJ1ZygiJXM6IGN1cnJlbnQgZ3B1X2Vycm9yPSUwOGx4XG4iLAotCQkgX19m dW5jX18sIGk5MTUtPmdwdV9lcnJvci5mbGFncyk7Ci0KLQl3aGlsZSAodGVzdF9hbmRfc2V0X2Jp dChJOTE1X1JFU0VUX0JBQ0tPRkYsICZpOTE1LT5ncHVfZXJyb3IuZmxhZ3MpKQotCQl3YWl0X2V2 ZW50KGk5MTUtPmdwdV9lcnJvci5yZXNldF9xdWV1ZSwKLQkJCSAgICF0ZXN0X2JpdChJOTE1X1JF U0VUX0JBQ0tPRkYsCi0JCQkJICAgICAmaTkxNS0+Z3B1X2Vycm9yLmZsYWdzKSk7Ci0KLQlmb3Jf ZWFjaF9lbmdpbmUoZW5naW5lLCBpOTE1LCBpZCkgewotCQl3aGlsZSAodGVzdF9hbmRfc2V0X2Jp dChJOTE1X1JFU0VUX0VOR0lORSArIGlkLAotCQkJCQkmaTkxNS0+Z3B1X2Vycm9yLmZsYWdzKSkK LQkJCXdhaXRfb25fYml0KCZpOTE1LT5ncHVfZXJyb3IuZmxhZ3MsCi0JCQkJICAgIEk5MTVfUkVT RVRfRU5HSU5FICsgaWQsCi0JCQkJICAgIFRBU0tfVU5JTlRFUlJVUFRJQkxFKTsKLQl9Ci19Ci0K LXN0YXRpYyB2b2lkIGdsb2JhbF9yZXNldF91bmxvY2soc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg Kmk5MTUpCi17Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwotCWVudW0gaW50ZWxf ZW5naW5lX2lkIGlkOwotCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgaTkxNSwgaWQpCi0JCWNs ZWFyX2JpdChJOTE1X1JFU0VUX0VOR0lORSArIGlkLCAmaTkxNS0+Z3B1X2Vycm9yLmZsYWdzKTsK LQotCWNsZWFyX2JpdChJOTE1X1JFU0VUX0JBQ0tPRkYsICZpOTE1LT5ncHVfZXJyb3IuZmxhZ3Mp OwotCXdha2VfdXBfYWxsKCZpOTE1LT5ncHVfZXJyb3IucmVzZXRfcXVldWUpOwotfQotCiBzdGF0 aWMgaW50IGlndF9nbG9iYWxfcmVzZXQodm9pZCAqYXJnKQogewogCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICppOTE1ID0gYXJnOwpAQCAtMzkwLDcgKzM1Nyw3IEBAIHN0YXRpYyBpbnQgaWd0X2ds b2JhbF9yZXNldCh2b2lkICphcmcpCiAKIAkvKiBDaGVjayB0aGF0IHdlIGNhbiBpc3N1ZSBhIGds b2JhbCBHUFUgcmVzZXQgKi8KIAotCWdsb2JhbF9yZXNldF9sb2NrKGk5MTUpOworCWlndF9nbG9i YWxfcmVzZXRfbG9jayhpOTE1KTsKIAlzZXRfYml0KEk5MTVfUkVTRVRfSEFORE9GRiwgJmk5MTUt PmdwdV9lcnJvci5mbGFncyk7CiAKIAltdXRleF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4 KTsKQEAgLTQwNSw3ICszNzIsNyBAQCBzdGF0aWMgaW50IGlndF9nbG9iYWxfcmVzZXQodm9pZCAq YXJnKQogCW11dGV4X3VubG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAKIAlHRU1fQlVH X09OKHRlc3RfYml0KEk5MTVfUkVTRVRfSEFORE9GRiwgJmk5MTUtPmdwdV9lcnJvci5mbGFncykp OwotCWdsb2JhbF9yZXNldF91bmxvY2soaTkxNSk7CisJaWd0X2dsb2JhbF9yZXNldF91bmxvY2so aTkxNSk7CiAKIAlpZiAoaTkxNV90ZXJtaW5hbGx5X3dlZGdlZCgmaTkxNS0+Z3B1X2Vycm9yKSkK IAkJZXJyID0gLUVJTzsKQEAgLTkzNiw3ICs5MDMsNyBAQCBzdGF0aWMgaW50IGlndF9yZXNldF93 YWl0KHZvaWQgKmFyZykKIAogCS8qIENoZWNrIHRoYXQgd2UgZGV0ZWN0IGEgc3R1Y2sgd2FpdGVy IGFuZCBpc3N1ZSBhIHJlc2V0ICovCiAKLQlnbG9iYWxfcmVzZXRfbG9jayhpOTE1KTsKKwlpZ3Rf Z2xvYmFsX3Jlc2V0X2xvY2soaTkxNSk7CiAKIAltdXRleF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0 X211dGV4KTsKIAllcnIgPSBoYW5nX2luaXQoJmgsIGk5MTUpOwpAQCAtOTg4LDcgKzk1NSw3IEBA IHN0YXRpYyBpbnQgaWd0X3Jlc2V0X3dhaXQodm9pZCAqYXJnKQogCWhhbmdfZmluaSgmaCk7CiB1 bmxvY2s6CiAJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKLQlnbG9iYWxf cmVzZXRfdW5sb2NrKGk5MTUpOworCWlndF9nbG9iYWxfcmVzZXRfdW5sb2NrKGk5MTUpOwogCiAJ aWYgKGk5MTVfdGVybWluYWxseV93ZWRnZWQoJmk5MTUtPmdwdV9lcnJvcikpCiAJCXJldHVybiAt RUlPOwpAQCAtMTA2Niw3ICsxMDMzLDcgQEAgc3RhdGljIGludCBfX2lndF9yZXNldF9ldmljdF92 bWEoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAKIAkvKiBDaGVjayB0aGF0IHdlIGNh biByZWNvdmVyIGFuIHVuYmluZCBzdHVjayBvbiBhIGhhbmdpbmcgcmVxdWVzdCAqLwogCi0JZ2xv YmFsX3Jlc2V0X2xvY2soaTkxNSk7CisJaWd0X2dsb2JhbF9yZXNldF9sb2NrKGk5MTUpOwogCiAJ bXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAJZXJyID0gaGFuZ19pbml0KCZo LCBpOTE1KTsKQEAgLTExODYsNyArMTE1Myw3IEBAIHN0YXRpYyBpbnQgX19pZ3RfcmVzZXRfZXZp Y3Rfdm1hKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCWhhbmdfZmluaSgmaCk7CiB1 bmxvY2s6CiAJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKLQlnbG9iYWxf cmVzZXRfdW5sb2NrKGk5MTUpOworCWlndF9nbG9iYWxfcmVzZXRfdW5sb2NrKGk5MTUpOwogCiAJ aWYgKGk5MTVfdGVybWluYWxseV93ZWRnZWQoJmk5MTUtPmdwdV9lcnJvcikpCiAJCXJldHVybiAt RUlPOwpAQCAtMTI2Niw3ICsxMjMzLDcgQEAgc3RhdGljIGludCBpZ3RfcmVzZXRfcXVldWUodm9p ZCAqYXJnKQogCiAJLyogQ2hlY2sgdGhhdCB3ZSByZXBsYXkgcGVuZGluZyByZXF1ZXN0cyBmb2xs b3dpbmcgYSBoYW5nICovCiAKLQlnbG9iYWxfcmVzZXRfbG9jayhpOTE1KTsKKwlpZ3RfZ2xvYmFs X3Jlc2V0X2xvY2soaTkxNSk7CiAKIAltdXRleF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4 KTsKIAllcnIgPSBoYW5nX2luaXQoJmgsIGk5MTUpOwpAQCAtMTM5Nyw3ICsxMzY0LDcgQEAgc3Rh dGljIGludCBpZ3RfcmVzZXRfcXVldWUodm9pZCAqYXJnKQogCWhhbmdfZmluaSgmaCk7CiB1bmxv Y2s6CiAJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKLQlnbG9iYWxfcmVz ZXRfdW5sb2NrKGk5MTUpOworCWlndF9nbG9iYWxfcmVzZXRfdW5sb2NrKGk5MTUpOwogCiAJaWYg KGk5MTVfdGVybWluYWxseV93ZWRnZWQoJmk5MTUtPmdwdV9lcnJvcikpCiAJCXJldHVybiAtRUlP OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX3dvcmth cm91bmRzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfd29ya2Fyb3Vu ZHMuYwppbmRleCA4MDM5NmIzNTkyZjUuLmQ3NmEwNDhjMzk1NCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX3dvcmthcm91bmRzLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX3dvcmthcm91bmRzLmMKQEAgLTYsNiArNiw4 IEBACiAKICNpbmNsdWRlICIuLi9pOTE1X3NlbGZ0ZXN0LmgiCiAKKyNpbmNsdWRlICJpZ3RfZmx1 c2hfdGVzdC5oIgorI2luY2x1ZGUgImlndF9yZXNldC5oIgogI2luY2x1ZGUgImlndF9zcGlubmVy LmgiCiAjaW5jbHVkZSAiaWd0X3dlZGdlX21lLmgiCiAjaW5jbHVkZSAibW9ja19jb250ZXh0Lmgi CkBAIC0yOTAsNyArMjkyLDYgQEAgc3RhdGljIGludCBsaXZlX3Jlc2V0X3doaXRlbGlzdCh2b2lk ICphcmcpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBhcmc7CiAJc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gaTkxNS0+ZW5naW5lW1JDU107Ci0Jc3RydWN0IGk5 MTVfZ3B1X2Vycm9yICplcnJvciA9ICZpOTE1LT5ncHVfZXJyb3I7CiAJc3RydWN0IHdoaXRlbGlz dCB3OwogCWludCBlcnIgPSAwOwogCkBAIC0zMDIsOCArMzAzLDcgQEAgc3RhdGljIGludCBsaXZl X3Jlc2V0X3doaXRlbGlzdCh2b2lkICphcmcpCiAJaWYgKCF3aGl0ZWxpc3RfYnVpbGQoZW5naW5l LCAmdykpCiAJCXJldHVybiAwOwogCi0Jc2V0X2JpdChJOTE1X1JFU0VUX0JBQ0tPRkYsICZlcnJv ci0+ZmxhZ3MpOwotCXNldF9iaXQoSTkxNV9SRVNFVF9FTkdJTkUgKyBlbmdpbmUtPmlkLCAmZXJy b3ItPmZsYWdzKTsKKwlpZ3RfZ2xvYmFsX3Jlc2V0X2xvY2soaTkxNSk7CiAKIAlpZiAoaW50ZWxf aGFzX3Jlc2V0X2VuZ2luZShpOTE1KSkgewogCQllcnIgPSBjaGVja193aGl0ZWxpc3RfYWNyb3Nz X3Jlc2V0KGVuZ2luZSwKQEAgLTMyMiwxNSArMzIyLDE0OSBAQCBzdGF0aWMgaW50IGxpdmVfcmVz ZXRfd2hpdGVsaXN0KHZvaWQgKmFyZykKIAl9CiAKIG91dDoKLQljbGVhcl9iaXQoSTkxNV9SRVNF VF9FTkdJTkUgKyBlbmdpbmUtPmlkLCAmZXJyb3ItPmZsYWdzKTsKLQljbGVhcl9iaXQoSTkxNV9S RVNFVF9CQUNLT0ZGLCAmZXJyb3ItPmZsYWdzKTsKKwlpZ3RfZ2xvYmFsX3Jlc2V0X3VubG9jayhp OTE1KTsKIAlyZXR1cm4gZXJyOwogfQogCitzdGF0aWMgYm9vbCB2ZXJpZnlfZ3RfZW5naW5lX3dh KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LCBjb25zdCBjaGFyICpzdHIpCit7CisJc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOworCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOwor CWJvb2wgb2sgPSB0cnVlOworCisJb2sgJj0gaW50ZWxfZ3RfdmVyaWZ5X3dvcmthcm91bmRzKGk5 MTUsIHN0cik7CisKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBpOTE1LCBpZCkKKwkJb2sgJj0g aW50ZWxfZW5naW5lX3ZlcmlmeV93b3JrYXJvdW5kcyhlbmdpbmUsIHN0cik7CisKKwlyZXR1cm4g b2s7Cit9CisKK3N0YXRpYyBpbnQKK2xpdmVfZ3B1X3Jlc2V0X2d0X2VuZ2luZV93b3JrYXJvdW5k cyh2b2lkICphcmcpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBhcmc7CisJ c3RydWN0IGk5MTVfZ3B1X2Vycm9yICplcnJvciA9ICZpOTE1LT5ncHVfZXJyb3I7CisJYm9vbCBv azsKKworCWlmICghaW50ZWxfaGFzX2dwdV9yZXNldChpOTE1KSkKKwkJcmV0dXJuIDA7CisKKwlw cl9pbmZvKCJWZXJpZnlpbmcgYWZ0ZXIgR1BVIHJlc2V0Li4uXG4iKTsKKworCWlndF9nbG9iYWxf cmVzZXRfbG9jayhpOTE1KTsKKworCW9rID0gdmVyaWZ5X2d0X2VuZ2luZV93YShpOTE1LCAiYmVm b3JlIHJlc2V0Iik7CisJaWYgKCFvaykKKwkJZ290byBvdXQ7CisKKwlpbnRlbF9ydW50aW1lX3Bt X2dldChpOTE1KTsKKwlzZXRfYml0KEk5MTVfUkVTRVRfSEFORE9GRiwgJmVycm9yLT5mbGFncyk7 CisJaTkxNV9yZXNldChpOTE1LCBBTExfRU5HSU5FUywgImxpdmVfd29ya2Fyb3VuZHMiKTsKKwlp bnRlbF9ydW50aW1lX3BtX3B1dChpOTE1KTsKKworCW9rID0gdmVyaWZ5X2d0X2VuZ2luZV93YShp OTE1LCAiYWZ0ZXIgcmVzZXQiKTsKKworb3V0OgorCWlndF9nbG9iYWxfcmVzZXRfdW5sb2NrKGk5 MTUpOworCisJcmV0dXJuIG9rID8gMCA6IC1FU1JDSDsKK30KKworc3RhdGljIGludAorbGl2ZV9l bmdpbmVfcmVzZXRfZ3RfZW5naW5lX3dvcmthcm91bmRzKHZvaWQgKmFyZykKK3sKKwlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGFyZzsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmU7CisJc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eDsKKwlzdHJ1Y3QgaWd0X3NwaW5u ZXIgc3BpbjsKKwllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKKwlzdHJ1Y3QgaTkxNV9yZXF1ZXN0 ICpycTsKKwlpbnQgcmV0ID0gMDsKKworCWlmICghaW50ZWxfaGFzX3Jlc2V0X2VuZ2luZShpOTE1 KSkKKwkJcmV0dXJuIDA7CisKKwljdHggPSBrZXJuZWxfY29udGV4dChpOTE1KTsKKwlpZiAoSVNf RVJSKGN0eCkpCisJCXJldHVybiBQVFJfRVJSKGN0eCk7CisKKwlpZ3RfZ2xvYmFsX3Jlc2V0X2xv Y2soaTkxNSk7CisKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBpOTE1LCBpZCkgeworCQlib29s IG9rOworCisJCXByX2luZm8oIlZlcmlmeWluZyBhZnRlciAlcyByZXNldC4uLlxuIiwgZW5naW5l LT5uYW1lKTsKKworCQlvayA9IHZlcmlmeV9ndF9lbmdpbmVfd2EoaTkxNSwgImJlZm9yZSByZXNl dCIpOworCQlpZiAoIW9rKSB7CisJCQlyZXQgPSAtRVNSQ0g7CisJCQlnb3RvIGVycjsKKwkJfQor CisJCWludGVsX3J1bnRpbWVfcG1fZ2V0KGk5MTUpOworCQlpOTE1X3Jlc2V0X2VuZ2luZShlbmdp bmUsICJsaXZlX3dvcmthcm91bmRzIik7CisJCWludGVsX3J1bnRpbWVfcG1fcHV0KGk5MTUpOwor CisJCW9rID0gdmVyaWZ5X2d0X2VuZ2luZV93YShpOTE1LCAiYWZ0ZXIgaWRsZSByZXNldCIpOwor CQlpZiAoIW9rKSB7CisJCQlyZXQgPSAtRVNSQ0g7CisJCQlnb3RvIGVycjsKKwkJfQorCisJCXJl dCA9IGlndF9zcGlubmVyX2luaXQoJnNwaW4sIGk5MTUpOworCQlpZiAocmV0KQorCQkJZ290byBl cnI7CisKKwkJaW50ZWxfcnVudGltZV9wbV9nZXQoaTkxNSk7CisKKwkJcnEgPSBpZ3Rfc3Bpbm5l cl9jcmVhdGVfcmVxdWVzdCgmc3BpbiwgY3R4LCBlbmdpbmUsIE1JX05PT1ApOworCQlpZiAoSVNf RVJSKHJxKSkgeworCQkJcmV0ID0gUFRSX0VSUihycSk7CisJCQlpZ3Rfc3Bpbm5lcl9maW5pKCZz cGluKTsKKwkJCWludGVsX3J1bnRpbWVfcG1fcHV0KGk5MTUpOworCQkJZ290byBlcnI7CisJCX0K KworCQlpOTE1X3JlcXVlc3RfYWRkKHJxKTsKKworCQlpZiAoIWlndF93YWl0X2Zvcl9zcGlubmVy KCZzcGluLCBycSkpIHsKKwkJCXByX2VycigiU3Bpbm5lciBmYWlsZWQgdG8gc3RhcnRcbiIpOwor CQkJaWd0X3NwaW5uZXJfZmluaSgmc3Bpbik7CisJCQlpbnRlbF9ydW50aW1lX3BtX3B1dChpOTE1 KTsKKwkJCXJldCA9IC1FVElNRURPVVQ7CisJCQlnb3RvIGVycjsKKwkJfQorCisJCWk5MTVfcmVz ZXRfZW5naW5lKGVuZ2luZSwgImxpdmVfd29ya2Fyb3VuZHMiKTsKKworCQlpbnRlbF9ydW50aW1l X3BtX3B1dChpOTE1KTsKKworCQlpZ3Rfc3Bpbm5lcl9lbmQoJnNwaW4pOworCQlpZ3Rfc3Bpbm5l cl9maW5pKCZzcGluKTsKKworCQlvayA9IHZlcmlmeV9ndF9lbmdpbmVfd2EoaTkxNSwgImFmdGVy IGJ1c3kgcmVzZXQiKTsKKwkJaWYgKCFvaykgeworCQkJcmV0ID0gLUVTUkNIOworCQkJZ290byBl cnI7CisJCX0KKwl9CisKK2VycjoKKwlpZ3RfZ2xvYmFsX3Jlc2V0X3VubG9jayhpOTE1KTsKKwlr ZXJuZWxfY29udGV4dF9jbG9zZShjdHgpOworCisJaWd0X2ZsdXNoX3Rlc3QoaTkxNSwgSTkxNV9X QUlUX0xPQ0tFRCk7CisKKwlyZXR1cm4gcmV0OworfQorCiBpbnQgaW50ZWxfd29ya2Fyb3VuZHNf bGl2ZV9zZWxmdGVzdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiB7CiAJc3RhdGlj IGNvbnN0IHN0cnVjdCBpOTE1X3N1YnRlc3QgdGVzdHNbXSA9IHsKIAkJU1VCVEVTVChsaXZlX3Jl c2V0X3doaXRlbGlzdCksCisJCVNVQlRFU1QobGl2ZV9ncHVfcmVzZXRfZ3RfZW5naW5lX3dvcmth cm91bmRzKSwKKwkJU1VCVEVTVChsaXZlX2VuZ2luZV9yZXNldF9ndF9lbmdpbmVfd29ya2Fyb3Vu ZHMpLAogCX07CiAJaW50IGVycjsKIAotLSAKMi4xOS4xCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZngK