From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: [PATCH i-g-t 1/3] lib/igt_dummyload: libify checks for spin batch activation Date: Thu, 18 Apr 2019 11:54:27 +0300 Message-ID: <20190418085427.5444-1-mika.kuoppala@linux.intel.com> References: <155553144425.25904.5916456118578438172@skylake-alporthouse-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 589346E0E6 for ; Thu, 18 Apr 2019 08:54:32 +0000 (UTC) In-Reply-To: <155553144425.25904.5916456118578438172@skylake-alporthouse-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 SW5zdGVhZCBvZiBvcGVuY29kaW5nIHRoZSBwb2xsIGludG8gdGhlIHNwaW5uZXIsIHVzZQphIGhl bHBlciB0byBjaGVjayBpZiBzcGlubmVyIGhhcyBzdGFydGVkLgoKdjI6IHVzZSB6ZXJvIGFzIHBy ZXN1bWVkIG9mZnNldCAoQ2hyaXMpCnYzOiBjbGVhbnVwIHRoZSByZWxvY3MgKENocmlzKQp2NDog bGVhdmUgdGhlIGRvbWFpbnMgdG8gemVybywgYXZvaWQgcmVsb2NhdGlvbiAoQ2hyaXMpCgpDYzog Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+ClNpZ25lZC1vZmYtYnk6IE1p a2EgS3VvcHBhbGEgPG1pa2Eua3VvcHBhbGFAbGludXguaW50ZWwuY29tPgpSZXZpZXdlZC1ieTog Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Ci0tLQogbGliL2lndF9kdW1t eWxvYWQuYyAgICAgICAgICAgIHwgNjUgKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0t LQogbGliL2lndF9kdW1teWxvYWQuaCAgICAgICAgICAgIHwgMTcgKysrKysrKy0tCiB0ZXN0cy9p OTE1L2dlbV9jdHhfZXhlYy5jICAgICAgfCAgNCArLS0KIHRlc3RzL2k5MTUvZ2VtX2N0eF9pc29s YXRpb24uYyB8ICA0ICstLQogdGVzdHMvaTkxNS9nZW1fZWlvLmMgICAgICAgICAgIHwgIDQgKy0t CiB0ZXN0cy9pOTE1L2dlbV9leGVjX2xhdGVuY3kuYyAgfCAyMiArKysrKystLS0tLS0KIHRlc3Rz L2k5MTUvZ2VtX2V4ZWNfc2NoZWR1bGUuYyB8ICA1ICsrLQogdGVzdHMvaTkxNS9nZW1fc3luYy5j ICAgICAgICAgIHwgMjggKysrKysrKy0tLS0tLS0tCiB0ZXN0cy9wZXJmX3BtdS5jICAgICAgICAg ICAgICAgfCAgNCArLS0KIDkgZmlsZXMgY2hhbmdlZCwgNzcgaW5zZXJ0aW9ucygrKSwgNzYgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliL2lndF9kdW1teWxvYWQuYyBiL2xpYi9pZ3RfZHVt bXlsb2FkLmMKaW5kZXggNDdmNmI5MmIuLjQ2ZmU2MzhmIDEwMDY0NAotLS0gYS9saWIvaWd0X2R1 bW15bG9hZC5jCisrKyBiL2xpYi9pZ3RfZHVtbXlsb2FkLmMKQEAgLTY1LDE3ICs2NSw2IEBAIHN0 YXRpYyBjb25zdCBpbnQgQkFUQ0hfU0laRSA9IDQwOTY7CiBzdGF0aWMgSUdUX0xJU1Qoc3Bpbl9s aXN0KTsKIHN0YXRpYyBwdGhyZWFkX211dGV4X3QgbGlzdF9sb2NrID0gUFRIUkVBRF9NVVRFWF9J TklUSUFMSVpFUjsKIAotc3RhdGljIHZvaWQKLWZpbGxfcmVsb2Moc3RydWN0IGRybV9pOTE1X2dl bV9yZWxvY2F0aW9uX2VudHJ5ICpyZWxvYywKLQkgICB1aW50MzJfdCBnZW1faGFuZGxlLCB1aW50 MzJfdCBvZmZzZXQsCi0JICAgdWludDMyX3QgcmVhZF9kb21haW5zLCB1aW50MzJfdCB3cml0ZV9k b21haW5zKQotewotCXJlbG9jLT50YXJnZXRfaGFuZGxlID0gZ2VtX2hhbmRsZTsKLQlyZWxvYy0+ b2Zmc2V0ID0gb2Zmc2V0ICogc2l6ZW9mKHVpbnQzMl90KTsKLQlyZWxvYy0+cmVhZF9kb21haW5z ID0gcmVhZF9kb21haW5zOwotCXJlbG9jLT53cml0ZV9kb21haW4gPSB3cml0ZV9kb21haW5zOwot fQotCiBzdGF0aWMgaW50CiBlbWl0X3JlY3Vyc2l2ZV9iYXRjaChpZ3Rfc3Bpbl90ICpzcGluLAog CQkgICAgIGludCBmZCwgY29uc3Qgc3RydWN0IGlndF9zcGluX2ZhY3RvcnkgKm9wdHMpCkBAIC0x MjgsMTUgKzExNywyMCBAQCBlbWl0X3JlY3Vyc2l2ZV9iYXRjaChpZ3Rfc3Bpbl90ICpzcGluLAog CWlmIChvcHRzLT5kZXBlbmRlbmN5KSB7CiAJCWlndF9hc3NlcnQoIShvcHRzLT5mbGFncyAmIElH VF9TUElOX1BPTExfUlVOKSk7CiAKKwkJciA9ICZyZWxvY3Nbb2JqW0JBVENIXS5yZWxvY2F0aW9u X2NvdW50KytdOworCiAJCS8qIGR1bW15IHdyaXRlIHRvIGRlcGVuZGVuY3kgKi8KIAkJb2JqW1ND UkFUQ0hdLmhhbmRsZSA9IG9wdHMtPmRlcGVuZGVuY3k7Ci0JCWZpbGxfcmVsb2MoJnJlbG9jc1tv YmpbQkFUQ0hdLnJlbG9jYXRpb25fY291bnQrK10sCi0JCQkgICBvcHRzLT5kZXBlbmRlbmN5LCAx MDIwLAotCQkJICAgSTkxNV9HRU1fRE9NQUlOX1JFTkRFUiwKLQkJCSAgIEk5MTVfR0VNX0RPTUFJ Tl9SRU5ERVIpOworCQlyLT5wcmVzdW1lZF9vZmZzZXQgPSAwOworCQlyLT50YXJnZXRfaGFuZGxl ID0gb2JqW1NDUkFUQ0hdLmhhbmRsZTsKKwkJci0+b2Zmc2V0ID0gc2l6ZW9mKHVpbnQzMl90KSAq IDEwMjA7CisJCXItPmRlbHRhID0gMDsKKwkJci0+cmVhZF9kb21haW5zID0gSTkxNV9HRU1fRE9N QUlOX1JFTkRFUjsKKwkJci0+d3JpdGVfZG9tYWluID0gSTkxNV9HRU1fRE9NQUlOX1JFTkRFUjsK KwogCQlleGVjYnVmLT5idWZmZXJfY291bnQrKzsKIAl9IGVsc2UgaWYgKG9wdHMtPmZsYWdzICYg SUdUX1NQSU5fUE9MTF9SVU4pIHsKLQkJdW5zaWduZWQgaW50IG9mZnNldDsKKwkJciA9ICZyZWxv Y3Nbb2JqW0JBVENIXS5yZWxvY2F0aW9uX2NvdW50KytdOwogCiAJCWlndF9hc3NlcnQoIW9wdHMt PmRlcGVuZGVuY3kpOwogCkBAIC0xNDYsMzkgKzE0MCw0MiBAQCBlbWl0X3JlY3Vyc2l2ZV9iYXRj aChpZ3Rfc3Bpbl90ICpzcGluLAogCQl9CiAKIAkJc3Bpbi0+cG9sbF9oYW5kbGUgPSBnZW1fY3Jl YXRlKGZkLCA0MDk2KTsKKwkJb2JqW1NDUkFUQ0hdLmhhbmRsZSA9IHNwaW4tPnBvbGxfaGFuZGxl OwogCiAJCWlmIChfX2dlbV9zZXRfY2FjaGluZyhmZCwgc3Bpbi0+cG9sbF9oYW5kbGUsCiAJCQkJ ICAgICAgSTkxNV9DQUNISU5HX0NBQ0hFRCkgPT0gMCkKLQkJCXNwaW4tPnJ1bm5pbmcgPSBnZW1f bW1hcF9fY3B1KGZkLCBzcGluLT5wb2xsX2hhbmRsZSwKLQkJCQkJCSAgICAgIDAsIDQwOTYsCi0J CQkJCQkgICAgICBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFKTsKKwkJCXNwaW4tPnBvbGwgPSBnZW1f bW1hcF9fY3B1KGZkLCBzcGluLT5wb2xsX2hhbmRsZSwKKwkJCQkJCSAgIDAsIDQwOTYsCisJCQkJ CQkgICBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFKTsKIAkJZWxzZQotCQkJc3Bpbi0+cnVubmluZyA9 IGdlbV9tbWFwX193YyhmZCwgc3Bpbi0+cG9sbF9oYW5kbGUsCi0JCQkJCQkgICAgIDAsIDQwOTYs Ci0JCQkJCQkgICAgIFBST1RfUkVBRCB8IFBST1RfV1JJVEUpOwotCQlpZ3RfYXNzZXJ0X2VxKCpz cGluLT5ydW5uaW5nLCAwKTsKKwkJCXNwaW4tPnBvbGwgPSBnZW1fbW1hcF9fd2MoZmQsIHNwaW4t PnBvbGxfaGFuZGxlLAorCQkJCQkJICAwLCA0MDk2LAorCQkJCQkJICBQUk9UX1JFQUQgfCBQUk9U X1dSSVRFKTsKKworCQlpZ3RfYXNzZXJ0X2VxKHNwaW4tPnBvbGxbU1BJTl9QT0xMX1NUQVJUX0lE WF0sIDApOworCisJCS8qIGJhdGNoIGlzIGZpcnN0ICovCisJCXItPnByZXN1bWVkX29mZnNldCA9 IDQwOTY7CisJCXItPnRhcmdldF9oYW5kbGUgPSBvYmpbU0NSQVRDSF0uaGFuZGxlOworCQlyLT5v ZmZzZXQgPSBzaXplb2YodWludDMyX3QpICogMTsKKwkJci0+ZGVsdGEgPSBzaXplb2YodWludDMy X3QpICogU1BJTl9QT0xMX1NUQVJUX0lEWDsKIAogCQkqYmF0Y2grKyA9IE1JX1NUT1JFX0RXT1JE X0lNTSB8IChnZW4gPCA2ID8gMSA8PCAyMiA6IDApOwogCiAJCWlmIChnZW4gPj0gOCkgewotCQkJ b2Zmc2V0ID0gMTsKLQkJCSpiYXRjaCsrID0gMDsKKwkJCSpiYXRjaCsrID0gci0+cHJlc3VtZWRf b2Zmc2V0ICsgci0+ZGVsdGE7CiAJCQkqYmF0Y2grKyA9IDA7CiAJCX0gZWxzZSBpZiAoZ2VuID49 IDQpIHsKLQkJCW9mZnNldCA9IDI7Ci0JCQkqYmF0Y2grKyA9IDA7CiAJCQkqYmF0Y2grKyA9IDA7 CisJCQkqYmF0Y2grKyA9IHItPnByZXN1bWVkX29mZnNldCArIHItPmRlbHRhOworCQkJci0+b2Zm c2V0ICs9IHNpemVvZih1aW50MzJfdCk7CiAJCX0gZWxzZSB7Ci0JCQlvZmZzZXQgPSAxOwogCQkJ YmF0Y2hbLTFdLS07Ci0JCQkqYmF0Y2grKyA9IDA7CisJCQkqYmF0Y2grKyA9IHItPnByZXN1bWVk X29mZnNldCArIHItPmRlbHRhOwogCQl9CiAKIAkJKmJhdGNoKysgPSAxOwogCi0JCW9ialtTQ1JB VENIXS5oYW5kbGUgPSBzcGluLT5wb2xsX2hhbmRsZTsKLQkJZmlsbF9yZWxvYygmcmVsb2NzW29i altCQVRDSF0ucmVsb2NhdGlvbl9jb3VudCsrXSwKLQkJCSAgIHNwaW4tPnBvbGxfaGFuZGxlLCBv ZmZzZXQsIDAsIDApOwogCQlleGVjYnVmLT5idWZmZXJfY291bnQrKzsKIAl9CiAKQEAgLTQwOCw4 ICs0MDUsOCBAQCB2b2lkIGlndF9zcGluX2JhdGNoX2ZyZWUoaW50IGZkLCBpZ3Rfc3Bpbl90ICpz cGluKQogCWdlbV9tdW5tYXAoKHZvaWQgKikoKHVuc2lnbmVkIGxvbmcpc3Bpbi0+YmF0Y2ggJiAo fjQwOTVVTCkpLAogCQkgICBCQVRDSF9TSVpFKTsKIAotCWlmIChzcGluLT5ydW5uaW5nKSB7Ci0J CWdlbV9tdW5tYXAoc3Bpbi0+cnVubmluZywgNDA5Nik7CisJaWYgKHNwaW4tPnBvbGwpIHsKKwkJ Z2VtX211bm1hcChzcGluLT5wb2xsLCA0MDk2KTsKIAkJZ2VtX2Nsb3NlKGZkLCBzcGluLT5wb2xs X2hhbmRsZSk7CiAJfQogCmRpZmYgLS1naXQgYS9saWIvaWd0X2R1bW15bG9hZC5oIGIvbGliL2ln dF9kdW1teWxvYWQuaAppbmRleCA3M2JkMDM1Yi4uMzc5M2JmN2YgMTAwNjQ0Ci0tLSBhL2xpYi9p Z3RfZHVtbXlsb2FkLmgKKysrIGIvbGliL2lndF9kdW1teWxvYWQuaApAQCAtNDEsNyArNDEsOCBA QCB0eXBlZGVmIHN0cnVjdCBpZ3Rfc3BpbiB7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9leGVjX29i amVjdDIgb2JqWzJdOwogCXN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY2J1ZmZlcjIgZXhlY2J1ZjsK IAl1aW50MzJfdCBwb2xsX2hhbmRsZTsKLQlib29sICpydW5uaW5nOworCXVpbnQzMl90ICpwb2xs OworI2RlZmluZSBTUElOX1BPTExfU1RBUlRfSURYIDAKIH0gaWd0X3NwaW5fdDsKIAogc3RydWN0 IGlndF9zcGluX2ZhY3RvcnkgewpAQCAtNzAsOSArNzEsMTkgQEAgdm9pZCBpZ3Rfc3Bpbl9iYXRj aF9zZXRfdGltZW91dChpZ3Rfc3Bpbl90ICpzcGluLCBpbnQ2NF90IG5zKTsKIHZvaWQgaWd0X3Nw aW5fYmF0Y2hfZW5kKGlndF9zcGluX3QgKnNwaW4pOwogdm9pZCBpZ3Rfc3Bpbl9iYXRjaF9mcmVl KGludCBmZCwgaWd0X3NwaW5fdCAqc3Bpbik7CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBpZ3Rfc3Bp bl9idXN5d2FpdF91bnRpbF9ydW5uaW5nKGlndF9zcGluX3QgKnNwaW4pCitzdGF0aWMgaW5saW5l IGJvb2wgaWd0X3NwaW5faGFzX3BvbGwoY29uc3QgaWd0X3NwaW5fdCAqc3BpbikKIHsKLQl3aGls ZSAoIVJFQURfT05DRSgqc3Bpbi0+cnVubmluZykpCisJcmV0dXJuIHNwaW4tPnBvbGw7Cit9CisK K3N0YXRpYyBpbmxpbmUgYm9vbCBpZ3Rfc3Bpbl9oYXNfc3RhcnRlZChpZ3Rfc3Bpbl90ICpzcGlu KQoreworCXJldHVybiBSRUFEX09OQ0Uoc3Bpbi0+cG9sbFtTUElOX1BPTExfU1RBUlRfSURYXSk7 Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBpZ3Rfc3Bpbl9idXN5d2FpdF91bnRpbF9zdGFydGVk KGlndF9zcGluX3QgKnNwaW4pCit7CisJd2hpbGUgKCFpZ3Rfc3Bpbl9oYXNfc3RhcnRlZChzcGlu KSkKIAkJOwogfQogCmRpZmYgLS1naXQgYS90ZXN0cy9pOTE1L2dlbV9jdHhfZXhlYy5jIGIvdGVz dHMvaTkxNS9nZW1fY3R4X2V4ZWMuYwppbmRleCBkNjdkMGVjMi4uZjM3ZTZmMjggMTAwNjQ0Ci0t LSBhL3Rlc3RzL2k5MTUvZ2VtX2N0eF9leGVjLmMKKysrIGIvdGVzdHMvaTkxNS9nZW1fY3R4X2V4 ZWMuYwpAQCAtMTgxLDEwICsxODEsOCBAQCBzdGF0aWMgdm9pZCBub3JlY292ZXJ5KGludCBpOTE1 KQogCQlzcGluID0gX19pZ3Rfc3Bpbl9iYXRjaF9uZXcoaTkxNSwKIAkJCQkJICAgIC5jdHggPSBw YXJhbS5jdHhfaWQsCiAJCQkJCSAgICAuZmxhZ3MgPSBJR1RfU1BJTl9QT0xMX1JVTik7Ci0JCWln dF9hc3NlcnQoc3Bpbi0+cnVubmluZyk7CisJCWlndF9zcGluX2J1c3l3YWl0X3VudGlsX3N0YXJ0 ZWQoc3Bpbik7CiAKLQkJd2hpbGUgKCFSRUFEX09OQ0UoKnNwaW4tPnJ1bm5pbmcpKQotCQkJOwog CQlpZ3RfZm9yY2VfZ3B1X3Jlc2V0KGk5MTUpOwogCiAJCWlndF9zcGluX2JhdGNoX2VuZChzcGlu KTsKZGlmZiAtLWdpdCBhL3Rlc3RzL2k5MTUvZ2VtX2N0eF9pc29sYXRpb24uYyBiL3Rlc3RzL2k5 MTUvZ2VtX2N0eF9pc29sYXRpb24uYwppbmRleCBmMTAwMDQ1OC4uYmVkNzFjMmIgMTAwNjQ0Ci0t LSBhL3Rlc3RzL2k5MTUvZ2VtX2N0eF9pc29sYXRpb24uYworKysgYi90ZXN0cy9pOTE1L2dlbV9j dHhfaXNvbGF0aW9uLmMKQEAgLTcwNCw4ICs3MDQsOCBAQCBzdGF0aWMgdm9pZCBpbmplY3RfcmVz ZXRfY29udGV4dChpbnQgZmQsIHVuc2lnbmVkIGludCBlbmdpbmUpCiAKIAlzcGluID0gX19pZ3Rf c3Bpbl9iYXRjaF9mYWN0b3J5KGZkLCAmb3B0cyk7CiAKLQlpZiAoc3Bpbi0+cnVubmluZykKLQkJ aWd0X3NwaW5fYnVzeXdhaXRfdW50aWxfcnVubmluZyhzcGluKTsKKwlpZiAoaWd0X3NwaW5faGFz X3BvbGwoc3BpbikpCisJCWlndF9zcGluX2J1c3l3YWl0X3VudGlsX3N0YXJ0ZWQoc3Bpbik7CiAJ ZWxzZQogCQl1c2xlZXAoMTAwMCk7IC8qIGJldHRlciB0aGFuIG5vdGhpbmcgKi8KIApkaWZmIC0t Z2l0IGEvdGVzdHMvaTkxNS9nZW1fZWlvLmMgYi90ZXN0cy9pOTE1L2dlbV9laW8uYwppbmRleCAy OTI1MDg1Mi4uMDdiYmRlYjEgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2k5MTUvZ2VtX2Vpby5jCisrKyBi L3Rlc3RzL2k5MTUvZ2VtX2Vpby5jCkBAIC0xODYsOCArMTg2LDggQEAgc3RhdGljIGlndF9zcGlu X3QgKiBfX3NwaW5fcG9sbChpbnQgZmQsIHVpbnQzMl90IGN0eCwgdW5zaWduZWQgbG9uZyBmbGFn cykKIAogc3RhdGljIHZvaWQgX19zcGluX3dhaXQoaW50IGZkLCBpZ3Rfc3Bpbl90ICpzcGluKQog ewotCWlmIChzcGluLT5ydW5uaW5nKSB7Ci0JCWlndF9zcGluX2J1c3l3YWl0X3VudGlsX3J1bm5p bmcoc3Bpbik7CisJaWYgKGlndF9zcGluX2hhc19wb2xsKHNwaW4pKSB7CisJCWlndF9zcGluX2J1 c3l3YWl0X3VudGlsX3N0YXJ0ZWQoc3Bpbik7CiAJfSBlbHNlIHsKIAkJaWd0X2RlYnVnKCJfX3Nw aW5fd2FpdCAtIHVzbGVlcCBtb2RlXG4iKTsKIAkJdXNsZWVwKDUwMGUzKTsgLyogQmV0dGVyIHRo YW4gbm90aGluZyEgKi8KZGlmZiAtLWdpdCBhL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfbGF0ZW5jeS5j IGIvdGVzdHMvaTkxNS9nZW1fZXhlY19sYXRlbmN5LmMKaW5kZXggMzlmNDQxZDIuLmZjMTA0MGMz IDEwMDY0NAotLS0gYS90ZXN0cy9pOTE1L2dlbV9leGVjX2xhdGVuY3kuYworKysgYi90ZXN0cy9p OTE1L2dlbV9leGVjX2xhdGVuY3kuYwpAQCAtNzksMjkgKzc5LDI5IEBAIHBvbGxfcmluZyhpbnQg ZmQsIHVuc2lnbmVkIHJpbmcsIGNvbnN0IGNoYXIgKm5hbWUpCiAJaWd0X3JlcXVpcmUoZ2VtX2Nh bl9zdG9yZV9kd29yZChmZCwgcmluZykpOwogCiAJc3BpblswXSA9IF9faWd0X3NwaW5fYmF0Y2hf ZmFjdG9yeShmZCwgJm9wdHMpOwotCWlndF9hc3NlcnQoc3BpblswXS0+cnVubmluZyk7CisJaWd0 X2Fzc2VydChpZ3Rfc3Bpbl9oYXNfcG9sbChzcGluWzBdKSk7CiAJY21kID0gKnNwaW5bMF0tPmJh dGNoOwogCiAJc3BpblsxXSA9IF9faWd0X3NwaW5fYmF0Y2hfZmFjdG9yeShmZCwgJm9wdHMpOwot CWlndF9hc3NlcnQoc3BpblsxXS0+cnVubmluZyk7CisJaWd0X2Fzc2VydChpZ3Rfc3Bpbl9oYXNf cG9sbChzcGluWzFdKSk7CisKIAlpZ3RfYXNzZXJ0KGNtZCA9PSAqc3BpblsxXS0+YmF0Y2gpOwog CiAJaWd0X3NwaW5fYmF0Y2hfZW5kKHNwaW5bMF0pOwotCXdoaWxlICghUkVBRF9PTkNFKCpzcGlu WzFdLT5ydW5uaW5nKSkKLQkJOworCWlndF9zcGluX2J1c3l3YWl0X3VudGlsX3N0YXJ0ZWQoc3Bp blsxXSk7CisKIAlpZ3RfYXNzZXJ0KCFnZW1fYm9fYnVzeShmZCwgc3BpblswXS0+aGFuZGxlKSk7 CiAKIAljeWNsZXMgPSAwOwogCXdoaWxlICgoZWxhcHNlZCA9IGlndF9uc2VjX2VsYXBzZWQoJnR2 KSkgPCAydWxsIDw8IDMwKSB7Ci0JCXVuc2lnbmVkIGludCBpZHggPSBjeWNsZXMrKyAmIDE7CisJ CWNvbnN0IHVuc2lnbmVkIGludCBpZHggPSBjeWNsZXMrKyAmIDE7CiAKIAkJKnNwaW5baWR4XS0+ YmF0Y2ggPSBjbWQ7Ci0JCSpzcGluW2lkeF0tPnJ1bm5pbmcgPSAwOworCQlzcGluW2lkeF0tPnBv bGxbU1BJTl9QT0xMX1NUQVJUX0lEWF0gPSAwOwogCQlnZW1fZXhlY2J1ZihmZCwgJnNwaW5baWR4 XS0+ZXhlY2J1Zik7CiAKIAkJaWd0X3NwaW5fYmF0Y2hfZW5kKHNwaW5bIWlkeF0pOwotCQl3aGls ZSAoIVJFQURfT05DRSgqc3BpbltpZHhdLT5ydW5uaW5nKSkKLQkJCTsKKwkJaWd0X3NwaW5fYnVz eXdhaXRfdW50aWxfc3RhcnRlZChzcGluW2lkeF0pOwogCX0KIAogCWlndF9pbmZvKCIlcyBjb21w bGV0ZWQgJWxkIGN5Y2xlczogJS4zZiB1c1xuIiwKQEAgLTQxOSw3ICs0MTksNyBAQCBzdGF0aWMg dm9pZCBfX3JlYXJtX3NwaW5fYmF0Y2goaWd0X3NwaW5fdCAqc3BpbikKIAljb25zdCB1aW50MzJf dCBtaV9hcmJfY2hrID0gMHg1IDw8IDIzOwogCiAgICAgICAgKnNwaW4tPmJhdGNoID0gbWlfYXJi X2NoazsKLSAgICAgICAqc3Bpbi0+cnVubmluZyA9IDA7CisgICAgICAgc3Bpbi0+cG9sbFtTUElO X1BPTExfU1RBUlRfSURYXSA9IDA7CiAgICAgICAgX19zeW5jX3N5bmNocm9uaXplKCk7CiB9CiAK QEAgLTQ0MSw3ICs0NDEsNyBAQCBzdHJ1Y3QgcnRfcGt0IHsKIAogc3RhdGljIGJvb2wgX19zcGlu X3dhaXQoaW50IGZkLCBpZ3Rfc3Bpbl90ICpzcGluKQogewotCXdoaWxlICghUkVBRF9PTkNFKCpz cGluLT5ydW5uaW5nKSkgeworCXdoaWxlICghaWd0X3NwaW5faGFzX3N0YXJ0ZWQoc3BpbikpIHsK IAkJaWYgKCFnZW1fYm9fYnVzeShmZCwgc3Bpbi0+aGFuZGxlKSkKIAkJCXJldHVybiBmYWxzZTsK IAl9CkBAIC01MzcsNyArNTM3LDcgQEAgcnRob2dfbGF0ZW5jeV9vbl9yaW5nKGludCBmZCwgdW5z aWduZWQgaW50IGVuZ2luZSwgY29uc3QgY2hhciAqbmFtZSwgdW5zaWduZWQgaW4KIAkJCQkJIHBh c3NuYW1lW3Bhc3NdKTsKIAkJCQlicmVhazsKIAkJCX0KLQkJCWlndF9zcGluX2J1c3l3YWl0X3Vu dGlsX3J1bm5pbmcoc3Bpbik7CisJCQlpZ3Rfc3Bpbl9idXN5d2FpdF91bnRpbF9zdGFydGVkKHNw aW4pOwogCiAJCQlpZ3RfdW50aWxfdGltZW91dChwYXNzID4gMCA/IDUgOiAyKSB7CiAJCQkJc3Ry dWN0IHRpbWVzcGVjIHRzID0geyB9OwpkaWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9nZW1fZXhlY19z Y2hlZHVsZS5jIGIvdGVzdHMvaTkxNS9nZW1fZXhlY19zY2hlZHVsZS5jCmluZGV4IDZmM2Y1MmQy Li43MThhMTkzNSAxMDA2NDQKLS0tIGEvdGVzdHMvaTkxNS9nZW1fZXhlY19zY2hlZHVsZS5jCisr KyBiL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfc2NoZWR1bGUuYwpAQCAtNDM2LDcgKzQzNiw3IEBAIHN0 YXRpYyB2b2lkIHNlbWFwaG9yZV9jb2RlcGVuZGVuY3koaW50IGk5MTUpCiAJCQkJCSAgICAgLmN0 eCA9IGN0eCwKIAkJCQkJICAgICAuZW5naW5lID0gZW5naW5lLAogCQkJCQkgICAgIC5mbGFncyA9 IElHVF9TUElOX1BPTExfUlVOKTsKLQkJaWd0X3NwaW5fYnVzeXdhaXRfdW50aWxfcnVubmluZyh0 YXNrW2ldLnhjcyk7CisJCWlndF9zcGluX2J1c3l3YWl0X3VudGlsX3N0YXJ0ZWQodGFza1tpXS54 Y3MpOwogCiAJCS8qIENvbW1vbiByY3MgdGFza3Mgd2lsbCBiZSBxdWV1ZWQgaW4gRklGTyAqLwog CQl0YXNrW2ldLnJjcyA9CkBAIC0xMzYxLDggKzEzNjEsNyBAQCBzdGF0aWMgdm9pZCBtZWFzdXJl X3NlbWFwaG9yZV9wb3dlcihpbnQgaTkxNSkKIAkJCQkJICAgIC5lbmdpbmUgPSBzaWduYWxlciwK IAkJCQkJICAgIC5mbGFncyA9IElHVF9TUElOX1BPTExfUlVOKTsKIAkJZ2VtX3dhaXQoaTkxNSwg c3Bpbi0+aGFuZGxlLCAmamlmZmllKTsgLyogd2FpdGJvb3N0ICovCi0JCWlndF9hc3NlcnQoc3Bp bi0+cnVubmluZyk7Ci0JCWlndF9zcGluX2J1c3l3YWl0X3VudGlsX3J1bm5pbmcoc3Bpbik7CisJ CWlndF9zcGluX2J1c3l3YWl0X3VudGlsX3N0YXJ0ZWQoc3Bpbik7CiAKIAkJZ3B1X3Bvd2VyX3Jl YWQoJnBvd2VyLCAmc19zcGluWzBdKTsKIAkJdXNsZWVwKDEwMCoxMDAwKTsKZGlmZiAtLWdpdCBh L3Rlc3RzL2k5MTUvZ2VtX3N5bmMuYyBiL3Rlc3RzL2k5MTUvZ2VtX3N5bmMuYwppbmRleCAzZTRm ZWZmMy4uMGEwZWQyYTEgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2k5MTUvZ2VtX3N5bmMuYworKysgYi90 ZXN0cy9pOTE1L2dlbV9zeW5jLmMKQEAgLTIyNSw3ICsyMjUsNyBAQCB3YWtldXBfcmluZyhpbnQg ZmQsIHVuc2lnbmVkIHJpbmcsIGludCB0aW1lb3V0LCBpbnQgd2xlbikKIAkJCQkJICAgIC5lbmdp bmUgPSBleGVjYnVmLmZsYWdzLAogCQkJCQkgICAgLmZsYWdzID0gKElHVF9TUElOX1BPTExfUlVO IHwKIAkJCQkJCSAgICAgIElHVF9TUElOX0ZBU1QpKTsKLQkJaWd0X2Fzc2VydChzcGluLT5ydW5u aW5nKTsKKwkJaWd0X2Fzc2VydChpZ3Rfc3Bpbl9oYXNfcG9sbChzcGluKSk7CiAJCWNtZCA9ICpz cGluLT5iYXRjaDsKIAogCQlnZW1fZXhlY2J1ZihmZCwgJmV4ZWNidWYpOwpAQCAtMjM5LDEwICsy MzksOSBAQCB3YWtldXBfcmluZyhpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIGludCB0aW1lb3V0LCBp bnQgd2xlbikKIAkJCWN5Y2xlcyA9IDA7CiAJCQlkbyB7CiAJCQkJKnNwaW4tPmJhdGNoID0gY21k OwotCQkJCSpzcGluLT5ydW5uaW5nID0gMDsKKwkJCQlzcGluLT5wb2xsW1NQSU5fUE9MTF9TVEFS VF9JRFhdID0gMDsKIAkJCQlnZW1fZXhlY2J1ZihmZCwgJnNwaW4tPmV4ZWNidWYpOwotCQkJCXdo aWxlICghUkVBRF9PTkNFKCpzcGluLT5ydW5uaW5nKSkKLQkJCQkJOworCQkJCWlndF9zcGluX2J1 c3l3YWl0X3VudGlsX3N0YXJ0ZWQoc3Bpbik7CiAKIAkJCQl0aGlzID0gZ2V0dGltZSgpOwogCQkJ CWlndF9zcGluX2JhdGNoX2VuZChzcGluKTsKQEAgLTI2NCwxMCArMjYzLDkgQEAgd2FrZXVwX3Jp bmcoaW50IGZkLCB1bnNpZ25lZCByaW5nLCBpbnQgdGltZW91dCwgaW50IHdsZW4pCiAJCWN5Y2xl cyA9IDA7CiAJCWRvIHsKIAkJCSpzcGluLT5iYXRjaCA9IGNtZDsKLQkJCSpzcGluLT5ydW5uaW5n ID0gMDsKKwkJCXNwaW4tPnBvbGxbU1BJTl9QT0xMX1NUQVJUX0lEWF0gPSAwOwogCQkJZ2VtX2V4 ZWNidWYoZmQsICZzcGluLT5leGVjYnVmKTsKLQkJCXdoaWxlICghUkVBRF9PTkNFKCpzcGluLT5y dW5uaW5nKSkKLQkJCQk7CisJCQlpZ3Rfc3Bpbl9idXN5d2FpdF91bnRpbF9zdGFydGVkKHNwaW4p OwogCiAJCQlmb3IgKGludCBuID0gMDsgbiA8IHdsZW47IG4rKykKIAkJCQlnZW1fZXhlY2J1Zihm ZCwgJmV4ZWNidWYpOwpAQCAtNDEwLDcgKzQwOCw3IEBAIGFjdGl2ZV93YWtldXBfcmluZyhpbnQg ZmQsIHVuc2lnbmVkIHJpbmcsIGludCB0aW1lb3V0LCBpbnQgd2xlbikKIAkJCQkJICAgICAgIC5l bmdpbmUgPSBleGVjYnVmLmZsYWdzLAogCQkJCQkgICAgICAgLmZsYWdzID0gKElHVF9TUElOX1BP TExfUlVOIHwKIAkJCQkJCQkgSUdUX1NQSU5fRkFTVCkpOwotCQlpZ3RfYXNzZXJ0KHNwaW5bMF0t PnJ1bm5pbmcpOworCQlpZ3RfYXNzZXJ0KGlndF9zcGluX2hhc19wb2xsKHNwaW5bMF0pKTsKIAkJ Y21kID0gKnNwaW5bMF0tPmJhdGNoOwogCiAJCXNwaW5bMV0gPSBfX2lndF9zcGluX2JhdGNoX25l dyhmZCwKQEAgLTQyNiwxOCArNDI0LDE3IEBAIGFjdGl2ZV93YWtldXBfcmluZyhpbnQgZmQsIHVu c2lnbmVkIHJpbmcsIGludCB0aW1lb3V0LCBpbnQgd2xlbikKIAogCQlmb3IgKGludCB3YXJtdXAg PSAwOyB3YXJtdXAgPD0gMTsgd2FybXVwKyspIHsKIAkJCSpzcGluWzBdLT5iYXRjaCA9IGNtZDsK LQkJCSpzcGluWzBdLT5ydW5uaW5nID0gMDsKKwkJCXNwaW5bMF0tPnBvbGxbU1BJTl9QT0xMX1NU QVJUX0lEWF0gPSAwOwogCQkJZ2VtX2V4ZWNidWYoZmQsICZzcGluWzBdLT5leGVjYnVmKTsKIAog CQkJZW5kID0gZ2V0dGltZSgpICsgdGltZW91dC8xMC47CiAJCQllbGFwc2VkID0gMDsKIAkJCWN5 Y2xlcyA9IDA7CiAJCQlkbyB7Ci0JCQkJd2hpbGUgKCFSRUFEX09OQ0UoKnNwaW5bMF0tPnJ1bm5p bmcpKQotCQkJCQk7CisJCQkJaWd0X3NwaW5fYnVzeXdhaXRfdW50aWxfc3RhcnRlZChzcGluWzBd KTsKIAogCQkJCSpzcGluWzFdLT5iYXRjaCA9IGNtZDsKLQkJCQkqc3BpblsxXS0+cnVubmluZyA9 IDA7CisJCQkJc3BpblsxXS0+cG9sbFtTUElOX1BPTExfU1RBUlRfSURYXSA9IDA7CiAJCQkJZ2Vt X2V4ZWNidWYoZmQsICZzcGluWzFdLT5leGVjYnVmKTsKIAogCQkJCXRoaXMgPSBnZXR0aW1lKCk7 CkBAIC00NTgsMjEgKzQ1NSwyMCBAQCBhY3RpdmVfd2FrZXVwX3JpbmcoaW50IGZkLCB1bnNpZ25l ZCByaW5nLCBpbnQgdGltZW91dCwgaW50IHdsZW4pCiAJCQkgY3ljbGVzLCBlbGFwc2VkKjFlNi9j eWNsZXMpOwogCiAJCSpzcGluWzBdLT5iYXRjaCA9IGNtZDsKLQkJKnNwaW5bMF0tPnJ1bm5pbmcg PSAwOworCQlzcGluWzBdLT5wb2xsW1NQSU5fUE9MTF9TVEFSVF9JRFhdID0gMDsKIAkJZ2VtX2V4 ZWNidWYoZmQsICZzcGluWzBdLT5leGVjYnVmKTsKIAogCQllbmQgPSBnZXR0aW1lKCkgKyB0aW1l b3V0OwogCQllbGFwc2VkID0gMDsKIAkJY3ljbGVzID0gMDsKIAkJZG8gewotCQkJd2hpbGUgKCFS RUFEX09OQ0UoKnNwaW5bMF0tPnJ1bm5pbmcpKQotCQkJCTsKKwkJCWlndF9zcGluX2J1c3l3YWl0 X3VudGlsX3N0YXJ0ZWQoc3BpblswXSk7CiAKIAkJCWZvciAoaW50IG4gPSAwOyBuIDwgd2xlbjsg bisrKQogCQkJCWdlbV9leGVjYnVmKGZkLCAmZXhlY2J1Zik7CiAKIAkJCSpzcGluWzFdLT5iYXRj aCA9IGNtZDsKLQkJCSpzcGluWzFdLT5ydW5uaW5nID0gMDsKKwkJCXNwaW5bMV0tPnBvbGxbU1BJ Tl9QT0xMX1NUQVJUX0lEWF0gPSAwOwogCQkJZ2VtX2V4ZWNidWYoZmQsICZzcGluWzFdLT5leGVj YnVmKTsKIAogCQkJdGhpcyA9IGdldHRpbWUoKTsKZGlmZiAtLWdpdCBhL3Rlc3RzL3BlcmZfcG11 LmMgYi90ZXN0cy9wZXJmX3BtdS5jCmluZGV4IDRmNTUyYmMyLi4yOGYyMzViMSAxMDA2NDQKLS0t IGEvdGVzdHMvcGVyZl9wbXUuYworKysgYi90ZXN0cy9wZXJmX3BtdS5jCkBAIC0xODksMTAgKzE4 OSwxMCBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX3NwaW5fd2FpdChpbnQgZmQsIGlndF9zcGlu X3QgKnNwaW4pCiAKIAlpZ3RfbnNlY19lbGFwc2VkKCZzdGFydCk7CiAKLQlpZiAoc3Bpbi0+cnVu bmluZykgeworCWlmIChpZ3Rfc3Bpbl9oYXNfcG9sbChzcGluKSkgewogCQl1bnNpZ25lZCBsb25n IHRpbWVvdXQgPSAwOwogCi0JCXdoaWxlICghUkVBRF9PTkNFKCpzcGluLT5ydW5uaW5nKSkgewor CQl3aGlsZSAoIWlndF9zcGluX2hhc19zdGFydGVkKHNwaW4pKSB7CiAJCQl1bnNpZ25lZCBsb25n IHQgPSBpZ3RfbnNlY19lbGFwc2VkKCZzdGFydCk7CiAKIAkJCWlmICgodCAtIHRpbWVvdXQpID4g MjUwZTYpIHsKLS0gCjIuMTcuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4