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: Wed, 17 Apr 2019 19:43:39 +0300 Message-ID: <20190417164339.23071-1-mika.kuoppala@linux.intel.com> References: <155551682159.25904.16357404801416606135@skylake-alporthouse-com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8C3366E079 for ; Wed, 17 Apr 2019 16:43:51 +0000 (UTC) In-Reply-To: <155551682159.25904.16357404801416606135@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 ZXN1bWVkIG9mZnNldCAoQ2hyaXMpCnYzOiBjbGVhbnVwIHRoZSByZWxvY3MgKENocmlzKQoKQ2M6 IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgpTaWduZWQtb2ZmLWJ5OiBN aWthIEt1b3BwYWxhIDxtaWthLmt1b3BwYWxhQGxpbnV4LmludGVsLmNvbT4KLS0tCiBsaWIvaWd0 X2R1bW15bG9hZC5jICAgICAgICAgICAgfCA2NiArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t LS0tLS0tCiBsaWIvaWd0X2R1bW15bG9hZC5oICAgICAgICAgICAgfCAxNyArKysrKysrLS0KIHRl c3RzL2k5MTUvZ2VtX2N0eF9leGVjLmMgICAgICB8ICA0ICstLQogdGVzdHMvaTkxNS9nZW1fY3R4 X2lzb2xhdGlvbi5jIHwgIDQgKy0tCiB0ZXN0cy9pOTE1L2dlbV9laW8uYyAgICAgICAgICAgfCAg NCArLS0KIHRlc3RzL2k5MTUvZ2VtX2V4ZWNfbGF0ZW5jeS5jICB8IDIyICsrKysrKy0tLS0tLQog dGVzdHMvaTkxNS9nZW1fZXhlY19zY2hlZHVsZS5jIHwgIDUgKystCiB0ZXN0cy9pOTE1L2dlbV9z eW5jLmMgICAgICAgICAgfCAyOCArKysrKysrLS0tLS0tLS0KIHRlc3RzL3BlcmZfcG11LmMgICAg ICAgICAgICAgICB8ICA0ICstLQogOSBmaWxlcyBjaGFuZ2VkLCA3OCBpbnNlcnRpb25zKCspLCA3 NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWIvaWd0X2R1bW15bG9hZC5jIGIvbGliL2ln dF9kdW1teWxvYWQuYwppbmRleCA0N2Y2YjkyYi4uYWIwNmI2MzIgMTAwNjQ0Ci0tLSBhL2xpYi9p Z3RfZHVtbXlsb2FkLmMKKysrIGIvbGliL2lndF9kdW1teWxvYWQuYwpAQCAtNjUsMTcgKzY1LDYg QEAgc3RhdGljIGNvbnN0IGludCBCQVRDSF9TSVpFID0gNDA5NjsKIHN0YXRpYyBJR1RfTElTVChz cGluX2xpc3QpOwogc3RhdGljIHB0aHJlYWRfbXV0ZXhfdCBsaXN0X2xvY2sgPSBQVEhSRUFEX01V VEVYX0lOSVRJQUxJWkVSOwogCi1zdGF0aWMgdm9pZAotZmlsbF9yZWxvYyhzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlbG9jYXRpb25fZW50cnkgKnJlbG9jLAotCSAgIHVpbnQzMl90IGdlbV9oYW5kbGUs IHVpbnQzMl90IG9mZnNldCwKLQkgICB1aW50MzJfdCByZWFkX2RvbWFpbnMsIHVpbnQzMl90IHdy aXRlX2RvbWFpbnMpCi17Ci0JcmVsb2MtPnRhcmdldF9oYW5kbGUgPSBnZW1faGFuZGxlOwotCXJl bG9jLT5vZmZzZXQgPSBvZmZzZXQgKiBzaXplb2YodWludDMyX3QpOwotCXJlbG9jLT5yZWFkX2Rv bWFpbnMgPSByZWFkX2RvbWFpbnM7Ci0JcmVsb2MtPndyaXRlX2RvbWFpbiA9IHdyaXRlX2RvbWFp bnM7Ci19Ci0KIHN0YXRpYyBpbnQKIGVtaXRfcmVjdXJzaXZlX2JhdGNoKGlndF9zcGluX3QgKnNw aW4sCiAJCSAgICAgaW50IGZkLCBjb25zdCBzdHJ1Y3QgaWd0X3NwaW5fZmFjdG9yeSAqb3B0cykK QEAgLTEyOCwxNSArMTE3LDIwIEBAIGVtaXRfcmVjdXJzaXZlX2JhdGNoKGlndF9zcGluX3QgKnNw aW4sCiAJaWYgKG9wdHMtPmRlcGVuZGVuY3kpIHsKIAkJaWd0X2Fzc2VydCghKG9wdHMtPmZsYWdz ICYgSUdUX1NQSU5fUE9MTF9SVU4pKTsKIAorCQlyID0gJnJlbG9jc1tvYmpbQkFUQ0hdLnJlbG9j YXRpb25fY291bnQrK107CisKIAkJLyogZHVtbXkgd3JpdGUgdG8gZGVwZW5kZW5jeSAqLwogCQlv YmpbU0NSQVRDSF0uaGFuZGxlID0gb3B0cy0+ZGVwZW5kZW5jeTsKLQkJZmlsbF9yZWxvYygmcmVs b2NzW29ialtCQVRDSF0ucmVsb2NhdGlvbl9jb3VudCsrXSwKLQkJCSAgIG9wdHMtPmRlcGVuZGVu Y3ksIDEwMjAsCi0JCQkgICBJOTE1X0dFTV9ET01BSU5fUkVOREVSLAotCQkJICAgSTkxNV9HRU1f RE9NQUlOX1JFTkRFUik7CisJCXItPnByZXN1bWVkX29mZnNldCA9IDA7CisJCXItPnRhcmdldF9o YW5kbGUgPSBvYmpbU0NSQVRDSF0uaGFuZGxlOworCQlyLT5vZmZzZXQgPSBzaXplb2YodWludDMy X3QpICogMTAyMDsKKwkJci0+ZGVsdGEgPSAwOworCQlyLT5yZWFkX2RvbWFpbnMgPSBJOTE1X0dF TV9ET01BSU5fUkVOREVSOworCQlyLT53cml0ZV9kb21haW4gPSBJOTE1X0dFTV9ET01BSU5fUkVO REVSOworCiAJCWV4ZWNidWYtPmJ1ZmZlcl9jb3VudCsrOwogCX0gZWxzZSBpZiAob3B0cy0+Zmxh Z3MgJiBJR1RfU1BJTl9QT0xMX1JVTikgewotCQl1bnNpZ25lZCBpbnQgb2Zmc2V0OworCQlyID0g JnJlbG9jc1tvYmpbQkFUQ0hdLnJlbG9jYXRpb25fY291bnQrK107CiAKIAkJaWd0X2Fzc2VydCgh b3B0cy0+ZGVwZW5kZW5jeSk7CiAKQEAgLTE0NiwzOSArMTQwLDQzIEBAIGVtaXRfcmVjdXJzaXZl X2JhdGNoKGlndF9zcGluX3QgKnNwaW4sCiAJCX0KIAogCQlzcGluLT5wb2xsX2hhbmRsZSA9IGdl bV9jcmVhdGUoZmQsIDQwOTYpOworCQlvYmpbU0NSQVRDSF0uaGFuZGxlID0gc3Bpbi0+cG9sbF9o YW5kbGU7CiAKIAkJaWYgKF9fZ2VtX3NldF9jYWNoaW5nKGZkLCBzcGluLT5wb2xsX2hhbmRsZSwK IAkJCQkgICAgICBJOTE1X0NBQ0hJTkdfQ0FDSEVEKSA9PSAwKQotCQkJc3Bpbi0+cnVubmluZyA9 IGdlbV9tbWFwX19jcHUoZmQsIHNwaW4tPnBvbGxfaGFuZGxlLAotCQkJCQkJICAgICAgMCwgNDA5 NiwKLQkJCQkJCSAgICAgIFBST1RfUkVBRCB8IFBST1RfV1JJVEUpOworCQkJc3Bpbi0+cG9sbCA9 IGdlbV9tbWFwX19jcHUoZmQsIHNwaW4tPnBvbGxfaGFuZGxlLAorCQkJCQkJICAgMCwgNDA5NiwK KwkJCQkJCSAgIFBST1RfUkVBRCB8IFBST1RfV1JJVEUpOwogCQllbHNlCi0JCQlzcGluLT5ydW5u aW5nID0gZ2VtX21tYXBfX3djKGZkLCBzcGluLT5wb2xsX2hhbmRsZSwKLQkJCQkJCSAgICAgMCwg NDA5NiwKLQkJCQkJCSAgICAgUFJPVF9SRUFEIHwgUFJPVF9XUklURSk7Ci0JCWlndF9hc3NlcnRf ZXEoKnNwaW4tPnJ1bm5pbmcsIDApOworCQkJc3Bpbi0+cG9sbCA9IGdlbV9tbWFwX193YyhmZCwg c3Bpbi0+cG9sbF9oYW5kbGUsCisJCQkJCQkgIDAsIDQwOTYsCisJCQkJCQkgIFBST1RfUkVBRCB8 IFBST1RfV1JJVEUpOworCisJCWlndF9hc3NlcnRfZXEoc3Bpbi0+cG9sbFtTUElOX1BPTExfU1RB UlRfSURYXSwgMCk7CisKKwkJci0+cHJlc3VtZWRfb2Zmc2V0ID0gMDsKKwkJci0+dGFyZ2V0X2hh bmRsZSA9IG9ialtTQ1JBVENIXS5oYW5kbGU7CisJCXItPm9mZnNldCA9IHNpemVvZih1aW50MzJf dCkgKiAxOworCQlyLT5kZWx0YSA9IHNpemVvZih1aW50MzJfdCkgKiBTUElOX1BPTExfU1RBUlRf SURYOworCQlyLT5yZWFkX2RvbWFpbnMgPSBJOTE1X0dFTV9ET01BSU5fSU5TVFJVQ1RJT047CisJ CXItPndyaXRlX2RvbWFpbiA9IEk5MTVfR0VNX0RPTUFJTl9JTlNUUlVDVElPTjsKIAogCQkqYmF0 Y2grKyA9IE1JX1NUT1JFX0RXT1JEX0lNTSB8IChnZW4gPCA2ID8gMSA8PCAyMiA6IDApOwogCiAJ CWlmIChnZW4gPj0gOCkgewotCQkJb2Zmc2V0ID0gMTsKLQkJCSpiYXRjaCsrID0gMDsKKwkJCSpi YXRjaCsrID0gci0+ZGVsdGE7CiAJCQkqYmF0Y2grKyA9IDA7CiAJCX0gZWxzZSBpZiAoZ2VuID49 IDQpIHsKLQkJCW9mZnNldCA9IDI7Ci0JCQkqYmF0Y2grKyA9IDA7CiAJCQkqYmF0Y2grKyA9IDA7 CisJCQkqYmF0Y2grKyA9IHItPmRlbHRhOworCQkJci0+b2Zmc2V0ICs9IHNpemVvZih1aW50MzJf dCk7CiAJCX0gZWxzZSB7Ci0JCQlvZmZzZXQgPSAxOwogCQkJYmF0Y2hbLTFdLS07Ci0JCQkqYmF0 Y2grKyA9IDA7CisJCQkqYmF0Y2grKyA9IHItPmRlbHRhOwogCQl9CiAKIAkJKmJhdGNoKysgPSAx OwogCi0JCW9ialtTQ1JBVENIXS5oYW5kbGUgPSBzcGluLT5wb2xsX2hhbmRsZTsKLQkJZmlsbF9y ZWxvYygmcmVsb2NzW29ialtCQVRDSF0ucmVsb2NhdGlvbl9jb3VudCsrXSwKLQkJCSAgIHNwaW4t PnBvbGxfaGFuZGxlLCBvZmZzZXQsIDAsIDApOwogCQlleGVjYnVmLT5idWZmZXJfY291bnQrKzsK IAl9CiAKQEAgLTQwOCw4ICs0MDYsOCBAQCB2b2lkIGlndF9zcGluX2JhdGNoX2ZyZWUoaW50IGZk LCBpZ3Rfc3Bpbl90ICpzcGluKQogCWdlbV9tdW5tYXAoKHZvaWQgKikoKHVuc2lnbmVkIGxvbmcp c3Bpbi0+YmF0Y2ggJiAofjQwOTVVTCkpLAogCQkgICBCQVRDSF9TSVpFKTsKIAotCWlmIChzcGlu LT5ydW5uaW5nKSB7Ci0JCWdlbV9tdW5tYXAoc3Bpbi0+cnVubmluZywgNDA5Nik7CisJaWYgKHNw aW4tPnBvbGwpIHsKKwkJZ2VtX211bm1hcChzcGluLT5wb2xsLCA0MDk2KTsKIAkJZ2VtX2Nsb3Nl KGZkLCBzcGluLT5wb2xsX2hhbmRsZSk7CiAJfQogCmRpZmYgLS1naXQgYS9saWIvaWd0X2R1bW15 bG9hZC5oIGIvbGliL2lndF9kdW1teWxvYWQuaAppbmRleCA3M2JkMDM1Yi4uMzc5M2JmN2YgMTAw NjQ0Ci0tLSBhL2xpYi9pZ3RfZHVtbXlsb2FkLmgKKysrIGIvbGliL2lndF9kdW1teWxvYWQuaApA QCAtNDEsNyArNDEsOCBAQCB0eXBlZGVmIHN0cnVjdCBpZ3Rfc3BpbiB7CiAJc3RydWN0IGRybV9p OTE1X2dlbV9leGVjX29iamVjdDIgb2JqWzJdOwogCXN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY2J1 ZmZlcjIgZXhlY2J1ZjsKIAl1aW50MzJfdCBwb2xsX2hhbmRsZTsKLQlib29sICpydW5uaW5nOwor CXVpbnQzMl90ICpwb2xsOworI2RlZmluZSBTUElOX1BPTExfU1RBUlRfSURYIDAKIH0gaWd0X3Nw aW5fdDsKIAogc3RydWN0IGlndF9zcGluX2ZhY3RvcnkgewpAQCAtNzAsOSArNzEsMTkgQEAgdm9p ZCBpZ3Rfc3Bpbl9iYXRjaF9zZXRfdGltZW91dChpZ3Rfc3Bpbl90ICpzcGluLCBpbnQ2NF90IG5z KTsKIHZvaWQgaWd0X3NwaW5fYmF0Y2hfZW5kKGlndF9zcGluX3QgKnNwaW4pOwogdm9pZCBpZ3Rf c3Bpbl9iYXRjaF9mcmVlKGludCBmZCwgaWd0X3NwaW5fdCAqc3Bpbik7CiAKLXN0YXRpYyBpbmxp bmUgdm9pZCBpZ3Rfc3Bpbl9idXN5d2FpdF91bnRpbF9ydW5uaW5nKGlndF9zcGluX3QgKnNwaW4p CitzdGF0aWMgaW5saW5lIGJvb2wgaWd0X3NwaW5faGFzX3BvbGwoY29uc3QgaWd0X3NwaW5fdCAq c3BpbikKIHsKLQl3aGlsZSAoIVJFQURfT05DRSgqc3Bpbi0+cnVubmluZykpCisJcmV0dXJuIHNw aW4tPnBvbGw7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBpZ3Rfc3Bpbl9oYXNfc3RhcnRlZChp Z3Rfc3Bpbl90ICpzcGluKQoreworCXJldHVybiBSRUFEX09OQ0Uoc3Bpbi0+cG9sbFtTUElOX1BP TExfU1RBUlRfSURYXSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBpZ3Rfc3Bpbl9idXN5d2Fp dF91bnRpbF9zdGFydGVkKGlndF9zcGluX3QgKnNwaW4pCit7CisJd2hpbGUgKCFpZ3Rfc3Bpbl9o YXNfc3RhcnRlZChzcGluKSkKIAkJOwogfQogCmRpZmYgLS1naXQgYS90ZXN0cy9pOTE1L2dlbV9j dHhfZXhlYy5jIGIvdGVzdHMvaTkxNS9nZW1fY3R4X2V4ZWMuYwppbmRleCBkNjdkMGVjMi4uZjM3 ZTZmMjggMTAwNjQ0Ci0tLSBhL3Rlc3RzL2k5MTUvZ2VtX2N0eF9leGVjLmMKKysrIGIvdGVzdHMv aTkxNS9nZW1fY3R4X2V4ZWMuYwpAQCAtMTgxLDEwICsxODEsOCBAQCBzdGF0aWMgdm9pZCBub3Jl Y292ZXJ5KGludCBpOTE1KQogCQlzcGluID0gX19pZ3Rfc3Bpbl9iYXRjaF9uZXcoaTkxNSwKIAkJ CQkJICAgIC5jdHggPSBwYXJhbS5jdHhfaWQsCiAJCQkJCSAgICAuZmxhZ3MgPSBJR1RfU1BJTl9Q T0xMX1JVTik7Ci0JCWlndF9hc3NlcnQoc3Bpbi0+cnVubmluZyk7CisJCWlndF9zcGluX2J1c3l3 YWl0X3VudGlsX3N0YXJ0ZWQoc3Bpbik7CiAKLQkJd2hpbGUgKCFSRUFEX09OQ0UoKnNwaW4tPnJ1 bm5pbmcpKQotCQkJOwogCQlpZ3RfZm9yY2VfZ3B1X3Jlc2V0KGk5MTUpOwogCiAJCWlndF9zcGlu X2JhdGNoX2VuZChzcGluKTsKZGlmZiAtLWdpdCBhL3Rlc3RzL2k5MTUvZ2VtX2N0eF9pc29sYXRp b24uYyBiL3Rlc3RzL2k5MTUvZ2VtX2N0eF9pc29sYXRpb24uYwppbmRleCBmMTAwMDQ1OC4uYmVk NzFjMmIgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2k5MTUvZ2VtX2N0eF9pc29sYXRpb24uYworKysgYi90 ZXN0cy9pOTE1L2dlbV9jdHhfaXNvbGF0aW9uLmMKQEAgLTcwNCw4ICs3MDQsOCBAQCBzdGF0aWMg dm9pZCBpbmplY3RfcmVzZXRfY29udGV4dChpbnQgZmQsIHVuc2lnbmVkIGludCBlbmdpbmUpCiAK IAlzcGluID0gX19pZ3Rfc3Bpbl9iYXRjaF9mYWN0b3J5KGZkLCAmb3B0cyk7CiAKLQlpZiAoc3Bp bi0+cnVubmluZykKLQkJaWd0X3NwaW5fYnVzeXdhaXRfdW50aWxfcnVubmluZyhzcGluKTsKKwlp ZiAoaWd0X3NwaW5faGFzX3BvbGwoc3BpbikpCisJCWlndF9zcGluX2J1c3l3YWl0X3VudGlsX3N0 YXJ0ZWQoc3Bpbik7CiAJZWxzZQogCQl1c2xlZXAoMTAwMCk7IC8qIGJldHRlciB0aGFuIG5vdGhp bmcgKi8KIApkaWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9nZW1fZWlvLmMgYi90ZXN0cy9pOTE1L2dl bV9laW8uYwppbmRleCAyOTI1MDg1Mi4uMDdiYmRlYjEgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2k5MTUv Z2VtX2Vpby5jCisrKyBiL3Rlc3RzL2k5MTUvZ2VtX2Vpby5jCkBAIC0xODYsOCArMTg2LDggQEAg c3RhdGljIGlndF9zcGluX3QgKiBfX3NwaW5fcG9sbChpbnQgZmQsIHVpbnQzMl90IGN0eCwgdW5z aWduZWQgbG9uZyBmbGFncykKIAogc3RhdGljIHZvaWQgX19zcGluX3dhaXQoaW50IGZkLCBpZ3Rf c3Bpbl90ICpzcGluKQogewotCWlmIChzcGluLT5ydW5uaW5nKSB7Ci0JCWlndF9zcGluX2J1c3l3 YWl0X3VudGlsX3J1bm5pbmcoc3Bpbik7CisJaWYgKGlndF9zcGluX2hhc19wb2xsKHNwaW4pKSB7 CisJCWlndF9zcGluX2J1c3l3YWl0X3VudGlsX3N0YXJ0ZWQoc3Bpbik7CiAJfSBlbHNlIHsKIAkJ aWd0X2RlYnVnKCJfX3NwaW5fd2FpdCAtIHVzbGVlcCBtb2RlXG4iKTsKIAkJdXNsZWVwKDUwMGUz KTsgLyogQmV0dGVyIHRoYW4gbm90aGluZyEgKi8KZGlmZiAtLWdpdCBhL3Rlc3RzL2k5MTUvZ2Vt X2V4ZWNfbGF0ZW5jeS5jIGIvdGVzdHMvaTkxNS9nZW1fZXhlY19sYXRlbmN5LmMKaW5kZXggMzlm NDQxZDIuLmZjMTA0MGMzIDEwMDY0NAotLS0gYS90ZXN0cy9pOTE1L2dlbV9leGVjX2xhdGVuY3ku YworKysgYi90ZXN0cy9pOTE1L2dlbV9leGVjX2xhdGVuY3kuYwpAQCAtNzksMjkgKzc5LDI5IEBA IHBvbGxfcmluZyhpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIGNvbnN0IGNoYXIgKm5hbWUpCiAJaWd0 X3JlcXVpcmUoZ2VtX2Nhbl9zdG9yZV9kd29yZChmZCwgcmluZykpOwogCiAJc3BpblswXSA9IF9f aWd0X3NwaW5fYmF0Y2hfZmFjdG9yeShmZCwgJm9wdHMpOwotCWlndF9hc3NlcnQoc3BpblswXS0+ cnVubmluZyk7CisJaWd0X2Fzc2VydChpZ3Rfc3Bpbl9oYXNfcG9sbChzcGluWzBdKSk7CiAJY21k ID0gKnNwaW5bMF0tPmJhdGNoOwogCiAJc3BpblsxXSA9IF9faWd0X3NwaW5fYmF0Y2hfZmFjdG9y eShmZCwgJm9wdHMpOwotCWlndF9hc3NlcnQoc3BpblsxXS0+cnVubmluZyk7CisJaWd0X2Fzc2Vy dChpZ3Rfc3Bpbl9oYXNfcG9sbChzcGluWzFdKSk7CisKIAlpZ3RfYXNzZXJ0KGNtZCA9PSAqc3Bp blsxXS0+YmF0Y2gpOwogCiAJaWd0X3NwaW5fYmF0Y2hfZW5kKHNwaW5bMF0pOwotCXdoaWxlICgh UkVBRF9PTkNFKCpzcGluWzFdLT5ydW5uaW5nKSkKLQkJOworCWlndF9zcGluX2J1c3l3YWl0X3Vu dGlsX3N0YXJ0ZWQoc3BpblsxXSk7CisKIAlpZ3RfYXNzZXJ0KCFnZW1fYm9fYnVzeShmZCwgc3Bp blswXS0+aGFuZGxlKSk7CiAKIAljeWNsZXMgPSAwOwogCXdoaWxlICgoZWxhcHNlZCA9IGlndF9u c2VjX2VsYXBzZWQoJnR2KSkgPCAydWxsIDw8IDMwKSB7Ci0JCXVuc2lnbmVkIGludCBpZHggPSBj eWNsZXMrKyAmIDE7CisJCWNvbnN0IHVuc2lnbmVkIGludCBpZHggPSBjeWNsZXMrKyAmIDE7CiAK IAkJKnNwaW5baWR4XS0+YmF0Y2ggPSBjbWQ7Ci0JCSpzcGluW2lkeF0tPnJ1bm5pbmcgPSAwOwor CQlzcGluW2lkeF0tPnBvbGxbU1BJTl9QT0xMX1NUQVJUX0lEWF0gPSAwOwogCQlnZW1fZXhlY2J1 ZihmZCwgJnNwaW5baWR4XS0+ZXhlY2J1Zik7CiAKIAkJaWd0X3NwaW5fYmF0Y2hfZW5kKHNwaW5b IWlkeF0pOwotCQl3aGlsZSAoIVJFQURfT05DRSgqc3BpbltpZHhdLT5ydW5uaW5nKSkKLQkJCTsK KwkJaWd0X3NwaW5fYnVzeXdhaXRfdW50aWxfc3RhcnRlZChzcGluW2lkeF0pOwogCX0KIAogCWln dF9pbmZvKCIlcyBjb21wbGV0ZWQgJWxkIGN5Y2xlczogJS4zZiB1c1xuIiwKQEAgLTQxOSw3ICs0 MTksNyBAQCBzdGF0aWMgdm9pZCBfX3JlYXJtX3NwaW5fYmF0Y2goaWd0X3NwaW5fdCAqc3BpbikK IAljb25zdCB1aW50MzJfdCBtaV9hcmJfY2hrID0gMHg1IDw8IDIzOwogCiAgICAgICAgKnNwaW4t PmJhdGNoID0gbWlfYXJiX2NoazsKLSAgICAgICAqc3Bpbi0+cnVubmluZyA9IDA7CisgICAgICAg c3Bpbi0+cG9sbFtTUElOX1BPTExfU1RBUlRfSURYXSA9IDA7CiAgICAgICAgX19zeW5jX3N5bmNo cm9uaXplKCk7CiB9CiAKQEAgLTQ0MSw3ICs0NDEsNyBAQCBzdHJ1Y3QgcnRfcGt0IHsKIAogc3Rh dGljIGJvb2wgX19zcGluX3dhaXQoaW50IGZkLCBpZ3Rfc3Bpbl90ICpzcGluKQogewotCXdoaWxl ICghUkVBRF9PTkNFKCpzcGluLT5ydW5uaW5nKSkgeworCXdoaWxlICghaWd0X3NwaW5faGFzX3N0 YXJ0ZWQoc3BpbikpIHsKIAkJaWYgKCFnZW1fYm9fYnVzeShmZCwgc3Bpbi0+aGFuZGxlKSkKIAkJ CXJldHVybiBmYWxzZTsKIAl9CkBAIC01MzcsNyArNTM3LDcgQEAgcnRob2dfbGF0ZW5jeV9vbl9y aW5nKGludCBmZCwgdW5zaWduZWQgaW50IGVuZ2luZSwgY29uc3QgY2hhciAqbmFtZSwgdW5zaWdu ZWQgaW4KIAkJCQkJIHBhc3NuYW1lW3Bhc3NdKTsKIAkJCQlicmVhazsKIAkJCX0KLQkJCWlndF9z cGluX2J1c3l3YWl0X3VudGlsX3J1bm5pbmcoc3Bpbik7CisJCQlpZ3Rfc3Bpbl9idXN5d2FpdF91 bnRpbF9zdGFydGVkKHNwaW4pOwogCiAJCQlpZ3RfdW50aWxfdGltZW91dChwYXNzID4gMCA/IDUg OiAyKSB7CiAJCQkJc3RydWN0IHRpbWVzcGVjIHRzID0geyB9OwpkaWZmIC0tZ2l0IGEvdGVzdHMv aTkxNS9nZW1fZXhlY19zY2hlZHVsZS5jIGIvdGVzdHMvaTkxNS9nZW1fZXhlY19zY2hlZHVsZS5j CmluZGV4IDZmM2Y1MmQyLi43MThhMTkzNSAxMDA2NDQKLS0tIGEvdGVzdHMvaTkxNS9nZW1fZXhl Y19zY2hlZHVsZS5jCisrKyBiL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfc2NoZWR1bGUuYwpAQCAtNDM2 LDcgKzQzNiw3IEBAIHN0YXRpYyB2b2lkIHNlbWFwaG9yZV9jb2RlcGVuZGVuY3koaW50IGk5MTUp CiAJCQkJCSAgICAgLmN0eCA9IGN0eCwKIAkJCQkJICAgICAuZW5naW5lID0gZW5naW5lLAogCQkJ CQkgICAgIC5mbGFncyA9IElHVF9TUElOX1BPTExfUlVOKTsKLQkJaWd0X3NwaW5fYnVzeXdhaXRf dW50aWxfcnVubmluZyh0YXNrW2ldLnhjcyk7CisJCWlndF9zcGluX2J1c3l3YWl0X3VudGlsX3N0 YXJ0ZWQodGFza1tpXS54Y3MpOwogCiAJCS8qIENvbW1vbiByY3MgdGFza3Mgd2lsbCBiZSBxdWV1 ZWQgaW4gRklGTyAqLwogCQl0YXNrW2ldLnJjcyA9CkBAIC0xMzYxLDggKzEzNjEsNyBAQCBzdGF0 aWMgdm9pZCBtZWFzdXJlX3NlbWFwaG9yZV9wb3dlcihpbnQgaTkxNSkKIAkJCQkJICAgIC5lbmdp bmUgPSBzaWduYWxlciwKIAkJCQkJICAgIC5mbGFncyA9IElHVF9TUElOX1BPTExfUlVOKTsKIAkJ Z2VtX3dhaXQoaTkxNSwgc3Bpbi0+aGFuZGxlLCAmamlmZmllKTsgLyogd2FpdGJvb3N0ICovCi0J CWlndF9hc3NlcnQoc3Bpbi0+cnVubmluZyk7Ci0JCWlndF9zcGluX2J1c3l3YWl0X3VudGlsX3J1 bm5pbmcoc3Bpbik7CisJCWlndF9zcGluX2J1c3l3YWl0X3VudGlsX3N0YXJ0ZWQoc3Bpbik7CiAK IAkJZ3B1X3Bvd2VyX3JlYWQoJnBvd2VyLCAmc19zcGluWzBdKTsKIAkJdXNsZWVwKDEwMCoxMDAw KTsKZGlmZiAtLWdpdCBhL3Rlc3RzL2k5MTUvZ2VtX3N5bmMuYyBiL3Rlc3RzL2k5MTUvZ2VtX3N5 bmMuYwppbmRleCAzZTRmZWZmMy4uMGEwZWQyYTEgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2k5MTUvZ2Vt X3N5bmMuYworKysgYi90ZXN0cy9pOTE1L2dlbV9zeW5jLmMKQEAgLTIyNSw3ICsyMjUsNyBAQCB3 YWtldXBfcmluZyhpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIGludCB0aW1lb3V0LCBpbnQgd2xlbikK IAkJCQkJICAgIC5lbmdpbmUgPSBleGVjYnVmLmZsYWdzLAogCQkJCQkgICAgLmZsYWdzID0gKElH VF9TUElOX1BPTExfUlVOIHwKIAkJCQkJCSAgICAgIElHVF9TUElOX0ZBU1QpKTsKLQkJaWd0X2Fz c2VydChzcGluLT5ydW5uaW5nKTsKKwkJaWd0X2Fzc2VydChpZ3Rfc3Bpbl9oYXNfcG9sbChzcGlu KSk7CiAJCWNtZCA9ICpzcGluLT5iYXRjaDsKIAogCQlnZW1fZXhlY2J1ZihmZCwgJmV4ZWNidWYp OwpAQCAtMjM5LDEwICsyMzksOSBAQCB3YWtldXBfcmluZyhpbnQgZmQsIHVuc2lnbmVkIHJpbmcs IGludCB0aW1lb3V0LCBpbnQgd2xlbikKIAkJCWN5Y2xlcyA9IDA7CiAJCQlkbyB7CiAJCQkJKnNw aW4tPmJhdGNoID0gY21kOwotCQkJCSpzcGluLT5ydW5uaW5nID0gMDsKKwkJCQlzcGluLT5wb2xs W1NQSU5fUE9MTF9TVEFSVF9JRFhdID0gMDsKIAkJCQlnZW1fZXhlY2J1ZihmZCwgJnNwaW4tPmV4 ZWNidWYpOwotCQkJCXdoaWxlICghUkVBRF9PTkNFKCpzcGluLT5ydW5uaW5nKSkKLQkJCQkJOwor CQkJCWlndF9zcGluX2J1c3l3YWl0X3VudGlsX3N0YXJ0ZWQoc3Bpbik7CiAKIAkJCQl0aGlzID0g Z2V0dGltZSgpOwogCQkJCWlndF9zcGluX2JhdGNoX2VuZChzcGluKTsKQEAgLTI2NCwxMCArMjYz LDkgQEAgd2FrZXVwX3JpbmcoaW50IGZkLCB1bnNpZ25lZCByaW5nLCBpbnQgdGltZW91dCwgaW50 IHdsZW4pCiAJCWN5Y2xlcyA9IDA7CiAJCWRvIHsKIAkJCSpzcGluLT5iYXRjaCA9IGNtZDsKLQkJ CSpzcGluLT5ydW5uaW5nID0gMDsKKwkJCXNwaW4tPnBvbGxbU1BJTl9QT0xMX1NUQVJUX0lEWF0g PSAwOwogCQkJZ2VtX2V4ZWNidWYoZmQsICZzcGluLT5leGVjYnVmKTsKLQkJCXdoaWxlICghUkVB RF9PTkNFKCpzcGluLT5ydW5uaW5nKSkKLQkJCQk7CisJCQlpZ3Rfc3Bpbl9idXN5d2FpdF91bnRp bF9zdGFydGVkKHNwaW4pOwogCiAJCQlmb3IgKGludCBuID0gMDsgbiA8IHdsZW47IG4rKykKIAkJ CQlnZW1fZXhlY2J1ZihmZCwgJmV4ZWNidWYpOwpAQCAtNDEwLDcgKzQwOCw3IEBAIGFjdGl2ZV93 YWtldXBfcmluZyhpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIGludCB0aW1lb3V0LCBpbnQgd2xlbikK IAkJCQkJICAgICAgIC5lbmdpbmUgPSBleGVjYnVmLmZsYWdzLAogCQkJCQkgICAgICAgLmZsYWdz ID0gKElHVF9TUElOX1BPTExfUlVOIHwKIAkJCQkJCQkgSUdUX1NQSU5fRkFTVCkpOwotCQlpZ3Rf YXNzZXJ0KHNwaW5bMF0tPnJ1bm5pbmcpOworCQlpZ3RfYXNzZXJ0KGlndF9zcGluX2hhc19wb2xs KHNwaW5bMF0pKTsKIAkJY21kID0gKnNwaW5bMF0tPmJhdGNoOwogCiAJCXNwaW5bMV0gPSBfX2ln dF9zcGluX2JhdGNoX25ldyhmZCwKQEAgLTQyNiwxOCArNDI0LDE3IEBAIGFjdGl2ZV93YWtldXBf cmluZyhpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIGludCB0aW1lb3V0LCBpbnQgd2xlbikKIAogCQlm b3IgKGludCB3YXJtdXAgPSAwOyB3YXJtdXAgPD0gMTsgd2FybXVwKyspIHsKIAkJCSpzcGluWzBd LT5iYXRjaCA9IGNtZDsKLQkJCSpzcGluWzBdLT5ydW5uaW5nID0gMDsKKwkJCXNwaW5bMF0tPnBv bGxbU1BJTl9QT0xMX1NUQVJUX0lEWF0gPSAwOwogCQkJZ2VtX2V4ZWNidWYoZmQsICZzcGluWzBd LT5leGVjYnVmKTsKIAogCQkJZW5kID0gZ2V0dGltZSgpICsgdGltZW91dC8xMC47CiAJCQllbGFw c2VkID0gMDsKIAkJCWN5Y2xlcyA9IDA7CiAJCQlkbyB7Ci0JCQkJd2hpbGUgKCFSRUFEX09OQ0Uo KnNwaW5bMF0tPnJ1bm5pbmcpKQotCQkJCQk7CisJCQkJaWd0X3NwaW5fYnVzeXdhaXRfdW50aWxf c3RhcnRlZChzcGluWzBdKTsKIAogCQkJCSpzcGluWzFdLT5iYXRjaCA9IGNtZDsKLQkJCQkqc3Bp blsxXS0+cnVubmluZyA9IDA7CisJCQkJc3BpblsxXS0+cG9sbFtTUElOX1BPTExfU1RBUlRfSURY XSA9IDA7CiAJCQkJZ2VtX2V4ZWNidWYoZmQsICZzcGluWzFdLT5leGVjYnVmKTsKIAogCQkJCXRo aXMgPSBnZXR0aW1lKCk7CkBAIC00NTgsMjEgKzQ1NSwyMCBAQCBhY3RpdmVfd2FrZXVwX3Jpbmco aW50IGZkLCB1bnNpZ25lZCByaW5nLCBpbnQgdGltZW91dCwgaW50IHdsZW4pCiAJCQkgY3ljbGVz LCBlbGFwc2VkKjFlNi9jeWNsZXMpOwogCiAJCSpzcGluWzBdLT5iYXRjaCA9IGNtZDsKLQkJKnNw aW5bMF0tPnJ1bm5pbmcgPSAwOworCQlzcGluWzBdLT5wb2xsW1NQSU5fUE9MTF9TVEFSVF9JRFhd ID0gMDsKIAkJZ2VtX2V4ZWNidWYoZmQsICZzcGluWzBdLT5leGVjYnVmKTsKIAogCQllbmQgPSBn ZXR0aW1lKCkgKyB0aW1lb3V0OwogCQllbGFwc2VkID0gMDsKIAkJY3ljbGVzID0gMDsKIAkJZG8g ewotCQkJd2hpbGUgKCFSRUFEX09OQ0UoKnNwaW5bMF0tPnJ1bm5pbmcpKQotCQkJCTsKKwkJCWln dF9zcGluX2J1c3l3YWl0X3VudGlsX3N0YXJ0ZWQoc3BpblswXSk7CiAKIAkJCWZvciAoaW50IG4g PSAwOyBuIDwgd2xlbjsgbisrKQogCQkJCWdlbV9leGVjYnVmKGZkLCAmZXhlY2J1Zik7CiAKIAkJ CSpzcGluWzFdLT5iYXRjaCA9IGNtZDsKLQkJCSpzcGluWzFdLT5ydW5uaW5nID0gMDsKKwkJCXNw aW5bMV0tPnBvbGxbU1BJTl9QT0xMX1NUQVJUX0lEWF0gPSAwOwogCQkJZ2VtX2V4ZWNidWYoZmQs ICZzcGluWzFdLT5leGVjYnVmKTsKIAogCQkJdGhpcyA9IGdldHRpbWUoKTsKZGlmZiAtLWdpdCBh L3Rlc3RzL3BlcmZfcG11LmMgYi90ZXN0cy9wZXJmX3BtdS5jCmluZGV4IDRmNTUyYmMyLi4yOGYy MzViMSAxMDA2NDQKLS0tIGEvdGVzdHMvcGVyZl9wbXUuYworKysgYi90ZXN0cy9wZXJmX3BtdS5j CkBAIC0xODksMTAgKzE4OSwxMCBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX3NwaW5fd2FpdChp bnQgZmQsIGlndF9zcGluX3QgKnNwaW4pCiAKIAlpZ3RfbnNlY19lbGFwc2VkKCZzdGFydCk7CiAK LQlpZiAoc3Bpbi0+cnVubmluZykgeworCWlmIChpZ3Rfc3Bpbl9oYXNfcG9sbChzcGluKSkgewog CQl1bnNpZ25lZCBsb25nIHRpbWVvdXQgPSAwOwogCi0JCXdoaWxlICghUkVBRF9PTkNFKCpzcGlu LT5ydW5uaW5nKSkgeworCQl3aGlsZSAoIWlndF9zcGluX2hhc19zdGFydGVkKHNwaW4pKSB7CiAJ CQl1bnNpZ25lZCBsb25nIHQgPSBpZ3RfbnNlY19lbGFwc2VkKCZzdGFydCk7CiAKIAkJCWlmICgo dCAtIHRpbWVvdXQpID4gMjUwZTYpIHsKLS0gCjIuMTcuMQoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4