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 11:46:14 +0000 Message-ID: <20181203114617.6938-5-tvrtko.ursulin@linux.intel.com> References: <20181203114617.6938-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 mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1704C89DEA for ; Mon, 3 Dec 2018 11:46:27 +0000 (UTC) In-Reply-To: <20181203114617.6938-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 IGxvY2sgb3V0IG9mIHRoZSBsb29wLiAoQ2hyaXMgV2lsc29uKQoKU2lnbmVkLW9mZi1ieTogVHZy dGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IENocmlz IFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L01ha2VmaWxlICAgICAgICAgICAgICAgICB8ICAgMSArCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF93b3JrYXJvdW5kcy5jICAgICAgfCAgIDYgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUv c2VsZnRlc3RzL2lndF9yZXNldC5jICAgIHwgIDQ0ICsrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5 MTUvc2VsZnRlc3RzL2lndF9yZXNldC5oICAgIHwgIDE1ICsrCiAuLi4vZ3B1L2RybS9pOTE1L3Nl bGZ0ZXN0cy9pbnRlbF9oYW5nY2hlY2suYyAgfCAgNTEgKystLS0tLQogLi4uL2RybS9pOTE1L3Nl bGZ0ZXN0cy9pbnRlbF93b3JrYXJvdW5kcy5jICAgIHwgMTQyICsrKysrKysrKysrKysrKysrLQog NiBmaWxlcyBjaGFuZ2VkLCAyMTIgaW5zZXJ0aW9ucygrKSwgNDcgZGVsZXRpb25zKC0pCiBjcmVh dGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2lndF9yZXNldC5j CiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2lndF9y ZXNldC5oCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQppbmRleCA1MGE4ZmE4ZmNlNjQuLjE5YjVmZTUwMTZi ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKQEAgLTE2Niw2ICsxNjYsNyBAQCBpOTE1LSQoQ09ORklH X0RSTV9JOTE1X1NFTEZURVNUKSArPSBcCiAJc2VsZnRlc3RzL2k5MTVfcmFuZG9tLm8gXAogCXNl bGZ0ZXN0cy9pOTE1X3NlbGZ0ZXN0Lm8gXAogCXNlbGZ0ZXN0cy9pZ3RfZmx1c2hfdGVzdC5vIFwK KwlzZWxmdGVzdHMvaWd0X3Jlc2V0Lm8gXAogCXNlbGZ0ZXN0cy9pZ3Rfc3Bpbm5lci5vCiAKICMg dmlydHVhbCBncHUgY29kZQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf d29ya2Fyb3VuZHMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3dvcmthcm91bmRzLmMK aW5kZXggMTYxYWM2MTA1OGE4Li5lN2IwYzZiOThkOTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3dvcmthcm91bmRzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfd29ya2Fyb3VuZHMuYwpAQCAtMTMwMiw1ICsxMzAyLDExIEBAIHZvaWQgaW50ZWxfZW5n aW5lX2FwcGx5X3dvcmthcm91bmRzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIH0K IAogI2lmIElTX0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1X1NFTEZURVNUKQorc3RhdGljIGJvb2wg aW50ZWxfZW5naW5lX3ZlcmlmeV93b3JrYXJvdW5kcyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUsCisJCQkJCSAgICBjb25zdCBjaGFyICpmcm9tKQoreworCXJldHVybiB3YV9saXN0X3Zl cmlmeShlbmdpbmUtPmk5MTUsICZlbmdpbmUtPndhX2xpc3QsIGZyb20pOworfQorCiAjaW5jbHVk ZSAic2VsZnRlc3RzL2ludGVsX3dvcmthcm91bmRzLmMiCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pZ3RfcmVzZXQuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L3NlbGZ0ZXN0cy9pZ3RfcmVzZXQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAuLjIwOGE5NjZkYThjYQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L3NlbGZ0ZXN0cy9pZ3RfcmVzZXQuYwpAQCAtMCwwICsxLDQ0IEBACisvKgorICog U1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAorICoKKyAqIENvcHlyaWdodCDCqSAyMDE4IElu dGVsIENvcnBvcmF0aW9uCisgKi8KKworI2luY2x1ZGUgImlndF9yZXNldC5oIgorCisjaW5jbHVk ZSAiLi4vaTkxNV9kcnYuaCIKKyNpbmNsdWRlICIuLi9pbnRlbF9yaW5nYnVmZmVyLmgiCisKK3Zv aWQgaWd0X2dsb2JhbF9yZXNldF9sb2NrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQor eworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKKwllbnVtIGludGVsX2VuZ2luZV9p ZCBpZDsKKworCXByX2RlYnVnKCIlczogY3VycmVudCBncHVfZXJyb3I9JTA4bHhcbiIsCisJCSBf X2Z1bmNfXywgaTkxNS0+Z3B1X2Vycm9yLmZsYWdzKTsKKworCXdoaWxlICh0ZXN0X2FuZF9zZXRf Yml0KEk5MTVfUkVTRVRfQkFDS09GRiwgJmk5MTUtPmdwdV9lcnJvci5mbGFncykpCisJCXdhaXRf ZXZlbnQoaTkxNS0+Z3B1X2Vycm9yLnJlc2V0X3F1ZXVlLAorCQkJICAgIXRlc3RfYml0KEk5MTVf UkVTRVRfQkFDS09GRiwKKwkJCQkgICAgICZpOTE1LT5ncHVfZXJyb3IuZmxhZ3MpKTsKKworCWZv cl9lYWNoX2VuZ2luZShlbmdpbmUsIGk5MTUsIGlkKSB7CisJCXdoaWxlICh0ZXN0X2FuZF9zZXRf Yml0KEk5MTVfUkVTRVRfRU5HSU5FICsgaWQsCisJCQkJCSZpOTE1LT5ncHVfZXJyb3IuZmxhZ3Mp KQorCQkJd2FpdF9vbl9iaXQoJmk5MTUtPmdwdV9lcnJvci5mbGFncywKKwkJCQkgICAgSTkxNV9S RVNFVF9FTkdJTkUgKyBpZCwKKwkJCQkgICAgVEFTS19VTklOVEVSUlVQVElCTEUpOworCX0KK30K Kwordm9pZCBpZ3RfZ2xvYmFsX3Jlc2V0X3VubG9jayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq aTkxNSkKK3sKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CisJZW51bSBpbnRlbF9l bmdpbmVfaWQgaWQ7CisKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBpOTE1LCBpZCkKKwkJY2xl YXJfYml0KEk5MTVfUkVTRVRfRU5HSU5FICsgaWQsICZpOTE1LT5ncHVfZXJyb3IuZmxhZ3MpOwor CisJY2xlYXJfYml0KEk5MTVfUkVTRVRfQkFDS09GRiwgJmk5MTUtPmdwdV9lcnJvci5mbGFncyk7 CisJd2FrZV91cF9hbGwoJmk5MTUtPmdwdV9lcnJvci5yZXNldF9xdWV1ZSk7Cit9CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaWd0X3Jlc2V0LmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaWd0X3Jlc2V0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwLi41ZjAyMzRkMDQ1ZDUKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaWd0X3Jlc2V0LmgKQEAgLTAsMCArMSwxNSBAQAor LyoKKyAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKKyAqCisgKiBDb3B5cmlnaHQgwqkg MjAxOCBJbnRlbCBDb3Jwb3JhdGlvbgorICovCisKKyNpZm5kZWYgX19JOTE1X1NFTEZURVNUU19J R1RfUkVTRVRfSF9fCisjZGVmaW5lIF9fSTkxNV9TRUxGVEVTVFNfSUdUX1JFU0VUX0hfXworCisj aW5jbHVkZSAiLi4vaTkxNV9kcnYuaCIKKwordm9pZCBpZ3RfZ2xvYmFsX3Jlc2V0X2xvY2soc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOwordm9pZCBpZ3RfZ2xvYmFsX3Jlc2V0X3VubG9j ayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX2hhbmdjaGVjay5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX2hhbmdjaGVjay5jCmluZGV4IGRlZmU2NzEx MzBhYi4uM2FjNTM0OTYxMjdiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxm dGVzdHMvaW50ZWxfaGFuZ2NoZWNrLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRl c3RzL2ludGVsX2hhbmdjaGVjay5jCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiLi4vaTkx NV9zZWxmdGVzdC5oIgogI2luY2x1ZGUgImk5MTVfcmFuZG9tLmgiCiAjaW5jbHVkZSAiaWd0X2Zs dXNoX3Rlc3QuaCIKKyNpbmNsdWRlICJpZ3RfcmVzZXQuaCIKICNpbmNsdWRlICJpZ3Rfd2VkZ2Vf bWUuaCIKIAogI2luY2x1ZGUgIm1vY2tfY29udGV4dC5oIgpAQCAtMzQ4LDQwICszNDksNiBAQCBz dGF0aWMgaW50IGlndF9oYW5nX3Nhbml0eWNoZWNrKHZvaWQgKmFyZykKIAlyZXR1cm4gZXJyOwog fQogCi1zdGF0aWMgdm9pZCBnbG9iYWxfcmVzZXRfbG9jayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqaTkxNSkKLXsKLQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Ci0JZW51bSBpbnRl bF9lbmdpbmVfaWQgaWQ7Ci0KLQlwcl9kZWJ1ZygiJXM6IGN1cnJlbnQgZ3B1X2Vycm9yPSUwOGx4 XG4iLAotCQkgX19mdW5jX18sIGk5MTUtPmdwdV9lcnJvci5mbGFncyk7Ci0KLQl3aGlsZSAodGVz dF9hbmRfc2V0X2JpdChJOTE1X1JFU0VUX0JBQ0tPRkYsICZpOTE1LT5ncHVfZXJyb3IuZmxhZ3Mp KQotCQl3YWl0X2V2ZW50KGk5MTUtPmdwdV9lcnJvci5yZXNldF9xdWV1ZSwKLQkJCSAgICF0ZXN0 X2JpdChJOTE1X1JFU0VUX0JBQ0tPRkYsCi0JCQkJICAgICAmaTkxNS0+Z3B1X2Vycm9yLmZsYWdz KSk7Ci0KLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBpOTE1LCBpZCkgewotCQl3aGlsZSAodGVz dF9hbmRfc2V0X2JpdChJOTE1X1JFU0VUX0VOR0lORSArIGlkLAotCQkJCQkmaTkxNS0+Z3B1X2Vy cm9yLmZsYWdzKSkKLQkJCXdhaXRfb25fYml0KCZpOTE1LT5ncHVfZXJyb3IuZmxhZ3MsCi0JCQkJ ICAgIEk5MTVfUkVTRVRfRU5HSU5FICsgaWQsCi0JCQkJICAgIFRBU0tfVU5JTlRFUlJVUFRJQkxF KTsKLQl9Ci19Ci0KLXN0YXRpYyB2b2lkIGdsb2JhbF9yZXNldF91bmxvY2soc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmk5MTUpCi17Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwot CWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOwotCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgaTkx NSwgaWQpCi0JCWNsZWFyX2JpdChJOTE1X1JFU0VUX0VOR0lORSArIGlkLCAmaTkxNS0+Z3B1X2Vy cm9yLmZsYWdzKTsKLQotCWNsZWFyX2JpdChJOTE1X1JFU0VUX0JBQ0tPRkYsICZpOTE1LT5ncHVf ZXJyb3IuZmxhZ3MpOwotCXdha2VfdXBfYWxsKCZpOTE1LT5ncHVfZXJyb3IucmVzZXRfcXVldWUp OwotfQotCiBzdGF0aWMgaW50IGlndF9nbG9iYWxfcmVzZXQodm9pZCAqYXJnKQogewogCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gYXJnOwpAQCAtMzkwLDcgKzM1Nyw3IEBAIHN0YXRp YyBpbnQgaWd0X2dsb2JhbF9yZXNldCh2b2lkICphcmcpCiAKIAkvKiBDaGVjayB0aGF0IHdlIGNh biBpc3N1ZSBhIGdsb2JhbCBHUFUgcmVzZXQgKi8KIAotCWdsb2JhbF9yZXNldF9sb2NrKGk5MTUp OworCWlndF9nbG9iYWxfcmVzZXRfbG9jayhpOTE1KTsKIAlzZXRfYml0KEk5MTVfUkVTRVRfSEFO RE9GRiwgJmk5MTUtPmdwdV9lcnJvci5mbGFncyk7CiAKIAltdXRleF9sb2NrKCZpOTE1LT5kcm0u c3RydWN0X211dGV4KTsKQEAgLTQwNSw3ICszNzIsNyBAQCBzdGF0aWMgaW50IGlndF9nbG9iYWxf cmVzZXQodm9pZCAqYXJnKQogCW11dGV4X3VubG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7 CiAKIAlHRU1fQlVHX09OKHRlc3RfYml0KEk5MTVfUkVTRVRfSEFORE9GRiwgJmk5MTUtPmdwdV9l cnJvci5mbGFncykpOwotCWdsb2JhbF9yZXNldF91bmxvY2soaTkxNSk7CisJaWd0X2dsb2JhbF9y ZXNldF91bmxvY2soaTkxNSk7CiAKIAlpZiAoaTkxNV90ZXJtaW5hbGx5X3dlZGdlZCgmaTkxNS0+ Z3B1X2Vycm9yKSkKIAkJZXJyID0gLUVJTzsKQEAgLTkzNiw3ICs5MDMsNyBAQCBzdGF0aWMgaW50 IGlndF9yZXNldF93YWl0KHZvaWQgKmFyZykKIAogCS8qIENoZWNrIHRoYXQgd2UgZGV0ZWN0IGEg c3R1Y2sgd2FpdGVyIGFuZCBpc3N1ZSBhIHJlc2V0ICovCiAKLQlnbG9iYWxfcmVzZXRfbG9jayhp OTE1KTsKKwlpZ3RfZ2xvYmFsX3Jlc2V0X2xvY2soaTkxNSk7CiAKIAltdXRleF9sb2NrKCZpOTE1 LT5kcm0uc3RydWN0X211dGV4KTsKIAllcnIgPSBoYW5nX2luaXQoJmgsIGk5MTUpOwpAQCAtOTg4 LDcgKzk1NSw3IEBAIHN0YXRpYyBpbnQgaWd0X3Jlc2V0X3dhaXQodm9pZCAqYXJnKQogCWhhbmdf ZmluaSgmaCk7CiB1bmxvY2s6CiAJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4 KTsKLQlnbG9iYWxfcmVzZXRfdW5sb2NrKGk5MTUpOworCWlndF9nbG9iYWxfcmVzZXRfdW5sb2Nr KGk5MTUpOwogCiAJaWYgKGk5MTVfdGVybWluYWxseV93ZWRnZWQoJmk5MTUtPmdwdV9lcnJvcikp CiAJCXJldHVybiAtRUlPOwpAQCAtMTA2Niw3ICsxMDMzLDcgQEAgc3RhdGljIGludCBfX2lndF9y ZXNldF9ldmljdF92bWEoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAKIAkvKiBDaGVj ayB0aGF0IHdlIGNhbiByZWNvdmVyIGFuIHVuYmluZCBzdHVjayBvbiBhIGhhbmdpbmcgcmVxdWVz dCAqLwogCi0JZ2xvYmFsX3Jlc2V0X2xvY2soaTkxNSk7CisJaWd0X2dsb2JhbF9yZXNldF9sb2Nr KGk5MTUpOwogCiAJbXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAJZXJyID0g aGFuZ19pbml0KCZoLCBpOTE1KTsKQEAgLTExODYsNyArMTE1Myw3IEBAIHN0YXRpYyBpbnQgX19p Z3RfcmVzZXRfZXZpY3Rfdm1hKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCWhhbmdf ZmluaSgmaCk7CiB1bmxvY2s6CiAJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4 KTsKLQlnbG9iYWxfcmVzZXRfdW5sb2NrKGk5MTUpOworCWlndF9nbG9iYWxfcmVzZXRfdW5sb2Nr KGk5MTUpOwogCiAJaWYgKGk5MTVfdGVybWluYWxseV93ZWRnZWQoJmk5MTUtPmdwdV9lcnJvcikp CiAJCXJldHVybiAtRUlPOwpAQCAtMTI2Niw3ICsxMjMzLDcgQEAgc3RhdGljIGludCBpZ3RfcmVz ZXRfcXVldWUodm9pZCAqYXJnKQogCiAJLyogQ2hlY2sgdGhhdCB3ZSByZXBsYXkgcGVuZGluZyBy ZXF1ZXN0cyBmb2xsb3dpbmcgYSBoYW5nICovCiAKLQlnbG9iYWxfcmVzZXRfbG9jayhpOTE1KTsK KwlpZ3RfZ2xvYmFsX3Jlc2V0X2xvY2soaTkxNSk7CiAKIAltdXRleF9sb2NrKCZpOTE1LT5kcm0u c3RydWN0X211dGV4KTsKIAllcnIgPSBoYW5nX2luaXQoJmgsIGk5MTUpOwpAQCAtMTM5Nyw3ICsx MzY0LDcgQEAgc3RhdGljIGludCBpZ3RfcmVzZXRfcXVldWUodm9pZCAqYXJnKQogCWhhbmdfZmlu aSgmaCk7CiB1bmxvY2s6CiAJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsK LQlnbG9iYWxfcmVzZXRfdW5sb2NrKGk5MTUpOworCWlndF9nbG9iYWxfcmVzZXRfdW5sb2NrKGk5 MTUpOwogCiAJaWYgKGk5MTVfdGVybWluYWxseV93ZWRnZWQoJmk5MTUtPmdwdV9lcnJvcikpCiAJ CXJldHVybiAtRUlPOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3Rz L2ludGVsX3dvcmthcm91bmRzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaW50 ZWxfd29ya2Fyb3VuZHMuYwppbmRleCA4MDM5NmIzNTkyZjUuLjBjMTE4ZDE4ZjgyNSAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX3dvcmthcm91bmRzLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX3dvcmthcm91bmRzLmMK QEAgLTYsNiArNiw4IEBACiAKICNpbmNsdWRlICIuLi9pOTE1X3NlbGZ0ZXN0LmgiCiAKKyNpbmNs dWRlICJpZ3RfZmx1c2hfdGVzdC5oIgorI2luY2x1ZGUgImlndF9yZXNldC5oIgogI2luY2x1ZGUg ImlndF9zcGlubmVyLmgiCiAjaW5jbHVkZSAiaWd0X3dlZGdlX21lLmgiCiAjaW5jbHVkZSAibW9j a19jb250ZXh0LmgiCkBAIC0yOTAsNyArMjkyLDYgQEAgc3RhdGljIGludCBsaXZlX3Jlc2V0X3do aXRlbGlzdCh2b2lkICphcmcpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBh cmc7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gaTkxNS0+ZW5naW5lW1JDU107 Ci0Jc3RydWN0IGk5MTVfZ3B1X2Vycm9yICplcnJvciA9ICZpOTE1LT5ncHVfZXJyb3I7CiAJc3Ry dWN0IHdoaXRlbGlzdCB3OwogCWludCBlcnIgPSAwOwogCkBAIC0zMDIsOCArMzAzLDcgQEAgc3Rh dGljIGludCBsaXZlX3Jlc2V0X3doaXRlbGlzdCh2b2lkICphcmcpCiAJaWYgKCF3aGl0ZWxpc3Rf YnVpbGQoZW5naW5lLCAmdykpCiAJCXJldHVybiAwOwogCi0Jc2V0X2JpdChJOTE1X1JFU0VUX0JB Q0tPRkYsICZlcnJvci0+ZmxhZ3MpOwotCXNldF9iaXQoSTkxNV9SRVNFVF9FTkdJTkUgKyBlbmdp bmUtPmlkLCAmZXJyb3ItPmZsYWdzKTsKKwlpZ3RfZ2xvYmFsX3Jlc2V0X2xvY2soaTkxNSk7CiAK IAlpZiAoaW50ZWxfaGFzX3Jlc2V0X2VuZ2luZShpOTE1KSkgewogCQllcnIgPSBjaGVja193aGl0 ZWxpc3RfYWNyb3NzX3Jlc2V0KGVuZ2luZSwKQEAgLTMyMiwxNSArMzIyLDE0NyBAQCBzdGF0aWMg aW50IGxpdmVfcmVzZXRfd2hpdGVsaXN0KHZvaWQgKmFyZykKIAl9CiAKIG91dDoKLQljbGVhcl9i aXQoSTkxNV9SRVNFVF9FTkdJTkUgKyBlbmdpbmUtPmlkLCAmZXJyb3ItPmZsYWdzKTsKLQljbGVh cl9iaXQoSTkxNV9SRVNFVF9CQUNLT0ZGLCAmZXJyb3ItPmZsYWdzKTsKKwlpZ3RfZ2xvYmFsX3Jl c2V0X3VubG9jayhpOTE1KTsKIAlyZXR1cm4gZXJyOwogfQogCitzdGF0aWMgYm9vbCB2ZXJpZnlf Z3RfZW5naW5lX3dhKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LCBjb25zdCBjaGFyICpz dHIpCit7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOworCWVudW0gaW50ZWxfZW5n aW5lX2lkIGlkOworCWJvb2wgb2sgPSB0cnVlOworCisJb2sgJj0gaW50ZWxfZ3RfdmVyaWZ5X3dv cmthcm91bmRzKGk5MTUsIHN0cik7CisKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBpOTE1LCBp ZCkKKwkJb2sgJj0gaW50ZWxfZW5naW5lX3ZlcmlmeV93b3JrYXJvdW5kcyhlbmdpbmUsIHN0cik7 CisKKwlyZXR1cm4gb2s7Cit9CisKK3N0YXRpYyBpbnQKK2xpdmVfZ3B1X3Jlc2V0X2d0X2VuZ2lu ZV93b3JrYXJvdW5kcyh2b2lkICphcmcpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUgPSBhcmc7CisJc3RydWN0IGk5MTVfZ3B1X2Vycm9yICplcnJvciA9ICZpOTE1LT5ncHVfZXJy b3I7CisJYm9vbCBvazsKKworCWlmICghaW50ZWxfaGFzX2dwdV9yZXNldChpOTE1KSkKKwkJcmV0 dXJuIDA7CisKKwlwcl9pbmZvKCJWZXJpZnlpbmcgYWZ0ZXIgR1BVIHJlc2V0Li4uXG4iKTsKKwor CWlndF9nbG9iYWxfcmVzZXRfbG9jayhpOTE1KTsKKworCW9rID0gdmVyaWZ5X2d0X2VuZ2luZV93 YShpOTE1LCAiYmVmb3JlIHJlc2V0Iik7CisJaWYgKCFvaykKKwkJZ290byBvdXQ7CisKKwlpbnRl bF9ydW50aW1lX3BtX2dldChpOTE1KTsKKwlzZXRfYml0KEk5MTVfUkVTRVRfSEFORE9GRiwgJmVy cm9yLT5mbGFncyk7CisJaTkxNV9yZXNldChpOTE1LCBBTExfRU5HSU5FUywgImxpdmVfd29ya2Fy b3VuZHMiKTsKKwlpbnRlbF9ydW50aW1lX3BtX3B1dChpOTE1KTsKKworCW9rID0gdmVyaWZ5X2d0 X2VuZ2luZV93YShpOTE1LCAiYWZ0ZXIgcmVzZXQiKTsKKworb3V0OgorCWlndF9nbG9iYWxfcmVz ZXRfdW5sb2NrKGk5MTUpOworCisJcmV0dXJuIG9rID8gMCA6IC1FU1JDSDsKK30KKworc3RhdGlj IGludAorbGl2ZV9lbmdpbmVfcmVzZXRfZ3RfZW5naW5lX3dvcmthcm91bmRzKHZvaWQgKmFyZykK K3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGFyZzsKKwlzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmU7CisJc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eDsKKwlzdHJ1 Y3QgaWd0X3NwaW5uZXIgc3BpbjsKKwllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKKwlzdHJ1Y3Qg aTkxNV9yZXF1ZXN0ICpycTsKKwlpbnQgcmV0ID0gMDsKKworCWlmICghaW50ZWxfaGFzX3Jlc2V0 X2VuZ2luZShpOTE1KSkKKwkJcmV0dXJuIDA7CisKKwljdHggPSBrZXJuZWxfY29udGV4dChpOTE1 KTsKKwlpZiAoSVNfRVJSKGN0eCkpCisJCXJldHVybiBQVFJfRVJSKGN0eCk7CisKKwlpZ3RfZ2xv YmFsX3Jlc2V0X2xvY2soaTkxNSk7CisKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBpOTE1LCBp ZCkgeworCQlib29sIG9rOworCisJCXByX2luZm8oIlZlcmlmeWluZyBhZnRlciAlcyByZXNldC4u LlxuIiwgZW5naW5lLT5uYW1lKTsKKworCQlvayA9IHZlcmlmeV9ndF9lbmdpbmVfd2EoaTkxNSwg ImJlZm9yZSByZXNldCIpOworCQlpZiAoIW9rKSB7CisJCQlyZXQgPSAtRVNSQ0g7CisJCQlnb3Rv IGVycjsKKwkJfQorCisJCWludGVsX3J1bnRpbWVfcG1fZ2V0KGk5MTUpOworCQlpOTE1X3Jlc2V0 X2VuZ2luZShlbmdpbmUsICJsaXZlX3dvcmthcm91bmRzIik7CisJCWludGVsX3J1bnRpbWVfcG1f cHV0KGk5MTUpOworCisJCW9rID0gdmVyaWZ5X2d0X2VuZ2luZV93YShpOTE1LCAiYWZ0ZXIgaWRs ZSByZXNldCIpOworCQlpZiAoIW9rKSB7CisJCQlyZXQgPSAtRVNSQ0g7CisJCQlnb3RvIGVycjsK KwkJfQorCisJCXJldCA9IGlndF9zcGlubmVyX2luaXQoJnNwaW4sIGk5MTUpOworCQlpZiAocmV0 KQorCQkJZ290byBlcnI7CisKKwkJaW50ZWxfcnVudGltZV9wbV9nZXQoaTkxNSk7CisKKwkJcnEg PSBpZ3Rfc3Bpbm5lcl9jcmVhdGVfcmVxdWVzdCgmc3BpbiwgY3R4LCBlbmdpbmUsIE1JX05PT1Ap OworCQlpZiAoSVNfRVJSKHJxKSkgeworCQkJcmV0ID0gUFRSX0VSUihycSk7CisJCQlpZ3Rfc3Bp bm5lcl9maW5pKCZzcGluKTsKKwkJCWdvdG8gZXJyOworCQl9CisKKwkJaTkxNV9yZXF1ZXN0X2Fk ZChycSk7CisKKwkJaWYgKCFpZ3Rfd2FpdF9mb3Jfc3Bpbm5lcigmc3BpbiwgcnEpKSB7CisJCQlw cl9lcnIoIlNwaW5uZXIgZmFpbGVkIHRvIHN0YXJ0XG4iKTsKKwkJCWlndF9zcGlubmVyX2Zpbmko JnNwaW4pOworCQkJcmV0ID0gLUVUSU1FRE9VVDsKKwkJCWdvdG8gZXJyOworCQl9CisKKwkJaTkx NV9yZXNldF9lbmdpbmUoZW5naW5lLCAibGl2ZV93b3JrYXJvdW5kcyIpOworCisJCWludGVsX3J1 bnRpbWVfcG1fcHV0KGk5MTUpOworCisJCWlndF9zcGlubmVyX2VuZCgmc3Bpbik7CisJCWlndF9z cGlubmVyX2ZpbmkoJnNwaW4pOworCisJCW9rID0gdmVyaWZ5X2d0X2VuZ2luZV93YShpOTE1LCAi YWZ0ZXIgYnVzeSByZXNldCIpOworCQlpZiAoIW9rKSB7CisJCQlyZXQgPSAtRVNSQ0g7CisJCQln b3RvIGVycjsKKwkJfQorCX0KKworZXJyOgorCWlndF9nbG9iYWxfcmVzZXRfdW5sb2NrKGk5MTUp OworCWtlcm5lbF9jb250ZXh0X2Nsb3NlKGN0eCk7CisKKwlpZ3RfZmx1c2hfdGVzdChpOTE1LCBJ OTE1X1dBSVRfTE9DS0VEKTsKKworCXJldHVybiByZXQ7Cit9CisKIGludCBpbnRlbF93b3JrYXJv dW5kc19saXZlX3NlbGZ0ZXN0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIHsKIAlz dGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfc3VidGVzdCB0ZXN0c1tdID0gewogCQlTVUJURVNUKGxp dmVfcmVzZXRfd2hpdGVsaXN0KSwKKwkJU1VCVEVTVChsaXZlX2dwdV9yZXNldF9ndF9lbmdpbmVf d29ya2Fyb3VuZHMpLAorCQlTVUJURVNUKGxpdmVfZW5naW5lX3Jlc2V0X2d0X2VuZ2luZV93b3Jr YXJvdW5kcyksCiAJfTsKIAlpbnQgZXJyOwogCi0tIAoyLjE5LjEKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=