From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lionel Landwerlin Subject: [PATCH i-g-t v4 01/12] tests/perf: make stream_fd a global variable Date: Tue, 29 Aug 2017 14:55:36 +0100 Message-ID: <20170829135547.18505-2-lionel.g.landwerlin@intel.com> References: <20170829135547.18505-1-lionel.g.landwerlin@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8B40C89BA5 for ; Tue, 29 Aug 2017 13:55:52 +0000 (UTC) In-Reply-To: <20170829135547.18505-1-lionel.g.landwerlin@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 V2hlbiBkZWJ1Z2dpbmcgdW5zdGFibGUgdGVzdHMgb24gbmV3IHBsYXRmb3JtcyB3ZSBjdXJyZW50 bHkgd2UgZG9uJ3QKY2xlYW51cCBldmVyeXRoaW5nIHdlbGwgaW4gYmV0d2VlbiBkaWZmZXJlbnQg dGVzdHMuIFNpbmNlIG9ubHkgYQpzaW5nbGUgT0Egc3RyZWFtIGZkIGNhbiBiZSBvcGVuZWQgYXQg YSB0aW1lLCBoYXZpbmcgdGhlIHN0cmVhbV9mZCBhcyBhCmdsb2JhbCB2YXJpYWJsZSBoZWxwcyB1 cyBjbGVhbnVwIHRoZSBzdGF0ZSBiZXR3ZWVuIHRlc3RzLgoKU2lnbmVkLW9mZi1ieTogTGlvbmVs IExhbmR3ZXJsaW4gPGxpb25lbC5nLmxhbmR3ZXJsaW5AaW50ZWwuY29tPgotLS0KIHRlc3RzL3Bl cmYuYyB8IDEyMSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDY1IGluc2VydGlvbnMoKyksIDU2IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rlc3RzL3BlcmYuYyBiL3Rlc3RzL3BlcmYuYwppbmRleCBk ZDIyNjNlZS4uY2E1YmZkYzUgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3BlcmYuYworKysgYi90ZXN0cy9w ZXJmLmMKQEAgLTI4NSw2ICsyODUsNyBAQCBzdGF0aWMgYm9vbCBoc3dfdW5kZWZpbmVkX2FfY291 bnRlcnNbNDVdID0gewogc3RhdGljIGJvb2wgZ2VuOF91bmRlZmluZWRfYV9jb3VudGVyc1s0NV07 CiAKIHN0YXRpYyBpbnQgZHJtX2ZkID0gLTE7CitzdGF0aWMgaW50IHN0cmVhbV9mZCA9IC0xOwog c3RhdGljIHVpbnQzMl90IGRldmlkOwogc3RhdGljIGludCBjYXJkID0gLTE7CiBzdGF0aWMgaW50 IG5fZXVzOwpAQCAtMzA2LDEwICszMDcsMjIgQEAgc3RhdGljIHVpbnQzMl90ICgqcmVhZF9yZXBv cnRfdGlja3MpKHVpbnQzMl90ICpyZXBvcnQsCiBzdGF0aWMgdm9pZCAoKnNhbml0eV9jaGVja19y ZXBvcnRzKSh1aW50MzJfdCAqb2FfcmVwb3J0MCwgdWludDMyX3QgKm9hX3JlcG9ydDEsCiAJCQkJ ICAgIGVudW0gZHJtX2k5MTVfb2FfZm9ybWF0IGZvcm1hdCk7CiAKK3N0YXRpYyB2b2lkCitfX3Bl cmZfY2xvc2UoaW50IGZkKQoreworCWNsb3NlKGZkKTsKKwlzdHJlYW1fZmQgPSAtMTsKK30KKwog c3RhdGljIGludAogX19wZXJmX29wZW4oaW50IGZkLCBzdHJ1Y3QgZHJtX2k5MTVfcGVyZl9vcGVu X3BhcmFtICpwYXJhbSkKIHsKLQlpbnQgcmV0ID0gaWd0X2lvY3RsKGZkLCBEUk1fSU9DVExfSTkx NV9QRVJGX09QRU4sIHBhcmFtKTsKKwlpbnQgcmV0OworCisJaWYgKHN0cmVhbV9mZCA+PSAwKQor CQlfX3BlcmZfY2xvc2Uoc3RyZWFtX2ZkKTsKKworCXJldCA9IGlndF9pb2N0bChmZCwgRFJNX0lP Q1RMX0k5MTVfUEVSRl9PUEVOLCBwYXJhbSk7CiAKIAlpZ3RfYXNzZXJ0KHJldCA+PSAwKTsKIAll cnJubyA9IDA7CkBAIC05NjAsMTQgKzk3MywxMiBAQCB0ZXN0X3N5c3RlbV93aWRlX3BhcmFub2lk KHZvaWQpCiAJCQkubnVtX3Byb3BlcnRpZXMgPSBzaXplb2YocHJvcGVydGllcykgLyAxNiwKIAkJ CS5wcm9wZXJ0aWVzX3B0ciA9IHRvX3VzZXJfcG9pbnRlcihwcm9wZXJ0aWVzKSwKIAkJfTsKLQkJ aW50IHN0cmVhbV9mZDsKLQogCQl3cml0ZV91NjRfZmlsZSgiL3Byb2Mvc3lzL2Rldi9pOTE1L3Bl cmZfc3RyZWFtX3BhcmFub2lkIiwgMCk7CiAKIAkJaWd0X2Ryb3Bfcm9vdCgpOwogCiAJCXN0cmVh bV9mZCA9IF9fcGVyZl9vcGVuKGRybV9mZCwgJnBhcmFtKTsKLQkJY2xvc2Uoc3RyZWFtX2ZkKTsK KwkJX19wZXJmX2Nsb3NlKHN0cmVhbV9mZCk7CiAJfQogCiAJaWd0X3dhaXRjaGlsZHJlbigpOwpA QCAtMTAxNSw3ICsxMDI2LDYgQEAgdGVzdF9pbnZhbGlkX29hX21ldHJpY19zZXRfaWQodm9pZCkK IAkJLm51bV9wcm9wZXJ0aWVzID0gc2l6ZW9mKHByb3BlcnRpZXMpIC8gMTYsCiAJCS5wcm9wZXJ0 aWVzX3B0ciA9IHRvX3VzZXJfcG9pbnRlcihwcm9wZXJ0aWVzKSwKIAl9OwotCWludCBzdHJlYW1f ZmQ7CiAKIAlkb19pb2N0bF9lcnIoZHJtX2ZkLCBEUk1fSU9DVExfSTkxNV9QRVJGX09QRU4sICZw YXJhbSwgRUlOVkFMKTsKIApAQCAtMTAyNSw3ICsxMDM1LDcgQEAgdGVzdF9pbnZhbGlkX29hX21l dHJpY19zZXRfaWQodm9pZCkKIAkvKiBDaGVjayB0aGF0IHdlIGFyZW4ndCBqdXN0IHNlZWluZyBm YWxzZSBwb3NpdGl2ZXMuLi4gKi8KIAlwcm9wZXJ0aWVzW0FSUkFZX1NJWkUocHJvcGVydGllcykg LSAxXSA9IHRlc3RfbWV0cmljX3NldF9pZDsKIAlzdHJlYW1fZmQgPSBfX3BlcmZfb3Blbihkcm1f ZmQsICZwYXJhbSk7Ci0JY2xvc2Uoc3RyZWFtX2ZkKTsKKwlfX3BlcmZfY2xvc2Uoc3RyZWFtX2Zk KTsKIAogCS8qIFRoZXJlJ3Mgbm8gdmFsaWQgZGVmYXVsdCBPQSBtZXRyaWMgc2V0IElELi4uICov CiAJcGFyYW0ubnVtX3Byb3BlcnRpZXMtLTsKQEAgLTEwNTAsNyArMTA2MCw2IEBAIHRlc3RfaW52 YWxpZF9vYV9mb3JtYXRfaWQodm9pZCkKIAkJLm51bV9wcm9wZXJ0aWVzID0gc2l6ZW9mKHByb3Bl cnRpZXMpIC8gMTYsCiAJCS5wcm9wZXJ0aWVzX3B0ciA9IHRvX3VzZXJfcG9pbnRlcihwcm9wZXJ0 aWVzKSwKIAl9OwotCWludCBzdHJlYW1fZmQ7CiAKIAlkb19pb2N0bF9lcnIoZHJtX2ZkLCBEUk1f SU9DVExfSTkxNV9QRVJGX09QRU4sICZwYXJhbSwgRUlOVkFMKTsKIApAQCAtMTA2MCw3ICsxMDY5 LDcgQEAgdGVzdF9pbnZhbGlkX29hX2Zvcm1hdF9pZCh2b2lkKQogCS8qIENoZWNrIHRoYXQgd2Ug YXJlbid0IGp1c3Qgc2VlaW5nIGZhbHNlIHBvc2l0aXZlcy4uLiAqLwogCXByb3BlcnRpZXNbQVJS QVlfU0laRShwcm9wZXJ0aWVzKSAtIDFdID0gdGVzdF9vYV9mb3JtYXQ7CiAJc3RyZWFtX2ZkID0g X19wZXJmX29wZW4oZHJtX2ZkLCAmcGFyYW0pOwotCWNsb3NlKHN0cmVhbV9mZCk7CisJX19wZXJm X2Nsb3NlKHN0cmVhbV9mZCk7CiAKIAkvKiBUaGVyZSdzIG5vIHZhbGlkIGRlZmF1bHQgT0EgZm9y bWF0Li4uICovCiAJcGFyYW0ubnVtX3Byb3BlcnRpZXMtLTsKQEAgLTEwODgsOCArMTA5Nyw3IEBA IHRlc3RfbWlzc2luZ19zYW1wbGVfZmxhZ3Modm9pZCkKIH0KIAogc3RhdGljIHZvaWQKLXJlYWRf Ml9vYV9yZXBvcnRzKGludCBzdHJlYW1fZmQsCi0JCSAgaW50IGZvcm1hdF9pZCwKK3JlYWRfMl9v YV9yZXBvcnRzKGludCBmb3JtYXRfaWQsCiAJCSAgaW50IGV4cG9uZW50LAogCQkgIHVpbnQzMl90 ICpvYV9yZXBvcnQwLAogCQkgIHVpbnQzMl90ICpvYV9yZXBvcnQxLApAQCAtMTIyMywxMiArMTIz MSwxMyBAQCBvcGVuX2FuZF9yZWFkXzJfb2FfcmVwb3J0cyhpbnQgZm9ybWF0X2lkLAogCQkubnVt X3Byb3BlcnRpZXMgPSBzaXplb2YocHJvcGVydGllcykgLyAxNiwKIAkJLnByb3BlcnRpZXNfcHRy ID0gdG9fdXNlcl9wb2ludGVyKHByb3BlcnRpZXMpLAogCX07Ci0JaW50IHN0cmVhbV9mZCA9IF9f cGVyZl9vcGVuKGRybV9mZCwgJnBhcmFtKTsKIAotCXJlYWRfMl9vYV9yZXBvcnRzKHN0cmVhbV9m ZCwgZm9ybWF0X2lkLCBleHBvbmVudCwKKwlzdHJlYW1fZmQgPSBfX3BlcmZfb3Blbihkcm1fZmQs ICZwYXJhbSk7CisKKwlyZWFkXzJfb2FfcmVwb3J0cyhmb3JtYXRfaWQsIGV4cG9uZW50LAogCQkJ ICBvYV9yZXBvcnQwLCBvYV9yZXBvcnQxLCB0aW1lcl9vbmx5KTsKIAotCWNsb3NlKHN0cmVhbV9m ZCk7CisJX19wZXJmX2Nsb3NlKHN0cmVhbV9mZCk7CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC0xNTI4 LDkgKzE1MzcsMTAgQEAgdGVzdF9pbnZhbGlkX29hX2V4cG9uZW50KHZvaWQpCiAJCS5udW1fcHJv cGVydGllcyA9IHNpemVvZihwcm9wZXJ0aWVzKSAvIDE2LAogCQkucHJvcGVydGllc19wdHIgPSB0 b191c2VyX3BvaW50ZXIocHJvcGVydGllcyksCiAJfTsKLQlpbnQgc3RyZWFtX2ZkID0gX19wZXJm X29wZW4oZHJtX2ZkLCAmcGFyYW0pOwogCi0JY2xvc2Uoc3RyZWFtX2ZkKTsKKwlzdHJlYW1fZmQg PSBfX3BlcmZfb3Blbihkcm1fZmQsICZwYXJhbSk7CisKKwlfX3BlcmZfY2xvc2Uoc3RyZWFtX2Zk KTsKIAogCWZvciAoaW50IGkgPSAzMjsgaSA8IDY1OyBpKyspIHsKIAkJcHJvcGVydGllc1s3XSA9 IGk7CkBAIC0xNTgwLDEyICsxNTkwLDEwIEBAIHRlc3RfbG93X29hX2V4cG9uZW50X3Blcm1pc3Np b25zKHZvaWQpCiAJcHJvcGVydGllc1s3XSA9IG9rX2V4cG9uZW50OwogCiAJaWd0X2ZvcmsoY2hp bGQsIDEpIHsKLQkJaW50IHN0cmVhbV9mZDsKLQogCQlpZ3RfZHJvcF9yb290KCk7CiAKIAkJc3Ry ZWFtX2ZkID0gX19wZXJmX29wZW4oZHJtX2ZkLCAmcGFyYW0pOwotCQljbG9zZShzdHJlYW1fZmQp OworCQlfX3BlcmZfY2xvc2Uoc3RyZWFtX2ZkKTsKIAl9CiAKIAlpZ3Rfd2FpdGNoaWxkcmVuKCk7 CkBAIC0xNjM0LDcgKzE2NDIsNiBAQCB0ZXN0X3Blcl9jb250ZXh0X21vZGVfdW5wcml2aWxlZ2Vk KHZvaWQpCiAJaWd0X2ZvcmsoY2hpbGQsIDEpIHsKIAkJZHJtX2ludGVsX2NvbnRleHQgKmNvbnRl eHQ7CiAJCWRybV9pbnRlbF9idWZtZ3IgKmJ1Zm1ncjsKLQkJaW50IHN0cmVhbV9mZDsKIAkJdWlu dDMyX3QgY3R4X2lkID0gMHhmZmZmZmZmZjsgLyogaW52YWxpZCBpZCAqLwogCQlpbnQgcmV0Owog CkBAIC0xNjUyLDcgKzE2NTksNyBAQCB0ZXN0X3Blcl9jb250ZXh0X21vZGVfdW5wcml2aWxlZ2Vk KHZvaWQpCiAJCXByb3BlcnRpZXNbMV0gPSBjdHhfaWQ7CiAKIAkJc3RyZWFtX2ZkID0gX19wZXJm X29wZW4oZHJtX2ZkLCAmcGFyYW0pOwotCQljbG9zZShzdHJlYW1fZmQpOworCQlfX3BlcmZfY2xv c2Uoc3RyZWFtX2ZkKTsKIAogCQlkcm1faW50ZWxfZ2VtX2NvbnRleHRfZGVzdHJveShjb250ZXh0 KTsKIAkJZHJtX2ludGVsX2J1Zm1ncl9kZXN0cm95KGJ1Zm1ncik7CkBAIC0xNzE1LDcgKzE3MjIs NiBAQCB0ZXN0X2Jsb2NraW5nKHZvaWQpCiAJCS5udW1fcHJvcGVydGllcyA9IHNpemVvZihwcm9w ZXJ0aWVzKSAvIDE2LAogCQkucHJvcGVydGllc19wdHIgPSB0b191c2VyX3BvaW50ZXIocHJvcGVy dGllcyksCiAJfTsKLQlpbnQgc3RyZWFtX2ZkID0gX19wZXJmX29wZW4oZHJtX2ZkLCAmcGFyYW0p OwogCXVpbnQ4X3QgYnVmWzEwMjQgKiAxMDI0XTsKIAlzdHJ1Y3QgdG1zIHN0YXJ0X3RpbWVzOwog CXN0cnVjdCB0bXMgZW5kX3RpbWVzOwpAQCAtMTc0MCw2ICsxNzQ2LDggQEAgdGVzdF9ibG9ja2lu Zyh2b2lkKQogCWludDY0X3Qgc3RhcnQ7CiAJaW50IG4gPSAwOwogCisJc3RyZWFtX2ZkID0gX19w ZXJmX29wZW4oZHJtX2ZkLCAmcGFyYW0pOworCiAJdGltZXMoJnN0YXJ0X3RpbWVzKTsKIAogCWln dF9kZWJ1ZygidGljayBsZW5ndGggPSAlZG5zLCB0ZXN0IGR1cmF0aW9uID0gJSJQUkl1NjQibnMs IG1pbiBpdGVyLiA9ICVkLCBtYXggaXRlci4gPSAlZFxuIiwKQEAgLTE4MzcsNyArMTg0NSw3IEBA IHRlc3RfYmxvY2tpbmcodm9pZCkKIAogCWlndF9hc3NlcnQoa2VybmVsX25zIDw9ICh0ZXN0X2R1 cmF0aW9uX25zIC8gMTAwdWxsKSk7CiAKLQljbG9zZShzdHJlYW1fZmQpOworCV9fcGVyZl9jbG9z ZShzdHJlYW1fZmQpOwogfQogCiBzdGF0aWMgdm9pZApAQCAtMTg2Niw3ICsxODc0LDYgQEAgdGVz dF9wb2xsaW5nKHZvaWQpCiAJCS5udW1fcHJvcGVydGllcyA9IHNpemVvZihwcm9wZXJ0aWVzKSAv IDE2LAogCQkucHJvcGVydGllc19wdHIgPSB0b191c2VyX3BvaW50ZXIocHJvcGVydGllcyksCiAJ fTsKLQlpbnQgc3RyZWFtX2ZkID0gX19wZXJmX29wZW4oZHJtX2ZkLCAmcGFyYW0pOwogCXVpbnQ4 X3QgYnVmWzEwMjQgKiAxMDI0XTsKIAlzdHJ1Y3QgdG1zIHN0YXJ0X3RpbWVzOwogCXN0cnVjdCB0 bXMgZW5kX3RpbWVzOwpAQCAtMTg5MCw2ICsxODk3LDggQEAgdGVzdF9wb2xsaW5nKHZvaWQpCiAJ aW50NjRfdCBzdGFydDsKIAlpbnQgbiA9IDA7CiAKKwlzdHJlYW1fZmQgPSBfX3BlcmZfb3Blbihk cm1fZmQsICZwYXJhbSk7CisKIAl0aW1lcygmc3RhcnRfdGltZXMpOwogCiAJaWd0X2RlYnVnKCJ0 aWNrIGxlbmd0aCA9ICVkbnMsIHRlc3QgZHVyYXRpb24gPSAlIlBSSXU2NCJucywgbWluIGl0ZXIu ID0gJWQsIG1heCBpdGVyLiA9ICVkXG4iLApAQCAtMjAxOCw3ICsyMDI3LDcgQEAgdGVzdF9wb2xs aW5nKHZvaWQpCiAKIAlpZ3RfYXNzZXJ0KGtlcm5lbF9ucyA8PSAodGVzdF9kdXJhdGlvbl9ucyAv IDEwMHVsbCkpOwogCi0JY2xvc2Uoc3RyZWFtX2ZkKTsKKwlfX3BlcmZfY2xvc2Uoc3RyZWFtX2Zk KTsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTIwNDEsNyArMjA1MCw2IEBAIHRlc3RfYnVmZmVyX2Zp bGwodm9pZCkKIAkJLm51bV9wcm9wZXJ0aWVzID0gc2l6ZW9mKHByb3BlcnRpZXMpIC8gMTYsCiAJ CS5wcm9wZXJ0aWVzX3B0ciA9IHRvX3VzZXJfcG9pbnRlcihwcm9wZXJ0aWVzKSwKIAl9OwotCWlu dCBzdHJlYW1fZmQgPSBfX3BlcmZfb3Blbihkcm1fZmQsICZwYXJhbSk7CiAJaW50IGJ1Zl9zaXpl ID0gNjU1MzYgKiAoMjU2ICsgc2l6ZW9mKHN0cnVjdCBkcm1faTkxNV9wZXJmX3JlY29yZF9oZWFk ZXIpKTsKIAl1aW50OF90ICpidWYgPSBtYWxsb2MoYnVmX3NpemUpOwogCXNpemVfdCBvYV9idWZf c2l6ZSA9IDE2ICogMTAyNCAqIDEwMjQ7CkBAIC0yMDUxLDYgKzIwNTksOCBAQCB0ZXN0X2J1ZmZl cl9maWxsKHZvaWQpCiAKIAlpZ3RfYXNzZXJ0KGZpbGxfZHVyYXRpb24gPCAxMDAwMDAwMDAwKTsK IAorCXN0cmVhbV9mZCA9IF9fcGVyZl9vcGVuKGRybV9mZCwgJnBhcmFtKTsKKwogCWZvciAoaW50 IGkgPSAwOyBpIDwgNTsgaSsrKSB7CiAJCXN0cnVjdCBkcm1faTkxNV9wZXJmX3JlY29yZF9oZWFk ZXIgKmhlYWRlcjsKIAkJYm9vbCBvdmVyZmxvd19zZWVuOwpAQCAtMjEwMSw3ICsyMTExLDcgQEAg dGVzdF9idWZmZXJfZmlsbCh2b2lkKQogCiAJZnJlZShidWYpOwogCi0JY2xvc2Uoc3RyZWFtX2Zk KTsKKwlfX3BlcmZfY2xvc2Uoc3RyZWFtX2ZkKTsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTIxMjUs NyArMjEzNSw2IEBAIHRlc3RfZW5hYmxlX2Rpc2FibGUodm9pZCkKIAkJLm51bV9wcm9wZXJ0aWVz ID0gc2l6ZW9mKHByb3BlcnRpZXMpIC8gMTYsCiAJCS5wcm9wZXJ0aWVzX3B0ciA9IHRvX3VzZXJf cG9pbnRlcihwcm9wZXJ0aWVzKSwKIAl9OwotCWludCBzdHJlYW1fZmQgPSBfX3BlcmZfb3Blbihk cm1fZmQsICZwYXJhbSk7CiAJaW50IGJ1Zl9zaXplID0gNjU1MzYgKiAoMjU2ICsgc2l6ZW9mKHN0 cnVjdCBkcm1faTkxNV9wZXJmX3JlY29yZF9oZWFkZXIpKTsKIAl1aW50OF90ICpidWYgPSBtYWxs b2MoYnVmX3NpemUpOwogCXNpemVfdCBvYV9idWZfc2l6ZSA9IDE2ICogMTAyNCAqIDEwMjQ7CkBA IC0yMTMzLDYgKzIxNDIsNyBAQCB0ZXN0X2VuYWJsZV9kaXNhYmxlKHZvaWQpCiAJaW50IG5fZnVs bF9vYV9yZXBvcnRzID0gb2FfYnVmX3NpemUgLyByZXBvcnRfc2l6ZTsKIAl1aW50NjRfdCBmaWxs X2R1cmF0aW9uID0gbl9mdWxsX29hX3JlcG9ydHMgKiBvYV9wZXJpb2Q7CiAKKwlzdHJlYW1fZmQg PSBfX3BlcmZfb3Blbihkcm1fZmQsICZwYXJhbSk7CiAKIAlmb3IgKGludCBpID0gMDsgaSA8IDU7 IGkrKykgewogCQlpbnQgbGVuOwpAQCAtMjE3OCw3ICsyMTg4LDcgQEAgdGVzdF9lbmFibGVfZGlz YWJsZSh2b2lkKQogCiAJZnJlZShidWYpOwogCi0JY2xvc2Uoc3RyZWFtX2ZkKTsKKwlfX3BlcmZf Y2xvc2Uoc3RyZWFtX2ZkKTsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTIyMDUsNyArMjIxNSw2IEBA IHRlc3Rfc2hvcnRfcmVhZHModm9pZCkKIAl1aW50OF90ICpwYWdlcyA9IG1tYXAoTlVMTCwgcGFn ZV9zaXplICogMiwKIAkJCSAgICAgIFBST1RfUkVBRHxQUk9UX1dSSVRFLCBNQVBfUFJJVkFURSwg emVyb19mZCwgMCk7CiAJc3RydWN0IGRybV9pOTE1X3BlcmZfcmVjb3JkX2hlYWRlciAqaGVhZGVy OwotCWludCBzdHJlYW1fZmQ7CiAJaW50IHJldDsKIAogCWlndF9hc3NlcnRfbmVxKHplcm9fZmQs IC0xKTsKQEAgLTIyNjIsNyArMjI3MSw3IEBAIHRlc3Rfc2hvcnRfcmVhZHModm9pZCkKIAlpZ3Rf YXNzZXJ0X2VxKHJldCwgLTEpOwogCWlndF9hc3NlcnRfZXEoZXJybm8sIEVOT1NQQyk7CiAKLQlj bG9zZShzdHJlYW1fZmQpOworCV9fcGVyZl9jbG9zZShzdHJlYW1fZmQpOwogCiAJbXVubWFwKHBh Z2VzLCBwYWdlX3NpemUgKiAyKTsKIH0KQEAgLTIyODcsMTQgKzIyOTYsMTYgQEAgdGVzdF9ub25f c2FtcGxpbmdfcmVhZF9lcnJvcih2b2lkKQogCQkubnVtX3Byb3BlcnRpZXMgPSBzaXplb2YocHJv cGVydGllcykgLyAxNiwKIAkJLnByb3BlcnRpZXNfcHRyID0gdG9fdXNlcl9wb2ludGVyKHByb3Bl cnRpZXMpLAogCX07Ci0JaW50IHN0cmVhbV9mZCA9IF9fcGVyZl9vcGVuKGRybV9mZCwgJnBhcmFt KTsKKwlpbnQgcmV0OwogCXVpbnQ4X3QgYnVmWzEwMjRdOwogCi0JaW50IHJldCA9IHJlYWQoc3Ry ZWFtX2ZkLCBidWYsIHNpemVvZihidWYpKTsKKwlzdHJlYW1fZmQgPSBfX3BlcmZfb3Blbihkcm1f ZmQsICZwYXJhbSk7CisKKwlyZXQgPSByZWFkKHN0cmVhbV9mZCwgYnVmLCBzaXplb2YoYnVmKSk7 CiAJaWd0X2Fzc2VydF9lcShyZXQsIC0xKTsKIAlpZ3RfYXNzZXJ0X2VxKGVycm5vLCBFSU8pOwog Ci0JY2xvc2Uoc3RyZWFtX2ZkKTsKKwlfX3BlcmZfY2xvc2Uoc3RyZWFtX2ZkKTsKIH0KIAogLyog Q2hlY2sgdGhhdCBhdHRlbXB0cyB0byByZWFkIGZyb20gYSBzdHJlYW0gd2hpbGUgaXQgaXMgZGlz YWJsZSB3aWxsIHJldHVybgpAQCAtMjMyMSwyNSArMjMzMiwyNCBAQCB0ZXN0X2Rpc2FibGVkX3Jl YWRfZXJyb3Iodm9pZCkKIAkJLm51bV9wcm9wZXJ0aWVzID0gc2l6ZW9mKHByb3BlcnRpZXMpIC8g MTYsCiAJCS5wcm9wZXJ0aWVzX3B0ciA9IHRvX3VzZXJfcG9pbnRlcihwcm9wZXJ0aWVzKSwKIAl9 OwotCWludCBzdHJlYW1fZmQgPSBfX3BlcmZfb3Blbihkcm1fZmQsICZwYXJhbSk7CiAJdWludDMy X3Qgb2FfcmVwb3J0MFs2NF07CiAJdWludDMyX3Qgb2FfcmVwb3J0MVs2NF07CiAJdWludDMyX3Qg YnVmWzEyOF0gPSB7IDAgfTsKIAlpbnQgcmV0OwogCisJc3RyZWFtX2ZkID0gX19wZXJmX29wZW4o ZHJtX2ZkLCAmcGFyYW0pOwogCiAJcmV0ID0gcmVhZChzdHJlYW1fZmQsIGJ1Ziwgc2l6ZW9mKGJ1 ZikpOwogCWlndF9hc3NlcnRfZXEocmV0LCAtMSk7CiAJaWd0X2Fzc2VydF9lcShlcnJubywgRUlP KTsKIAotCWNsb3NlKHN0cmVhbV9mZCk7CisJX19wZXJmX2Nsb3NlKHN0cmVhbV9mZCk7CiAKIAog CXBhcmFtLmZsYWdzICY9IH5JOTE1X1BFUkZfRkxBR19ESVNBQkxFRDsKIAlzdHJlYW1fZmQgPSBf X3BlcmZfb3Blbihkcm1fZmQsICZwYXJhbSk7CiAKLQlyZWFkXzJfb2FfcmVwb3J0cyhzdHJlYW1f ZmQsCi0JCQkgIHRlc3Rfb2FfZm9ybWF0LAorCXJlYWRfMl9vYV9yZXBvcnRzKHRlc3Rfb2FfZm9y bWF0LAogCQkJICBvYV9leHBvbmVudCwKIAkJCSAgb2FfcmVwb3J0MCwKIAkJCSAgb2FfcmVwb3J0 MSwKQEAgLTIzNTMsMTQgKzIzNjMsMTMgQEAgdGVzdF9kaXNhYmxlZF9yZWFkX2Vycm9yKHZvaWQp CiAKIAlkb19pb2N0bChzdHJlYW1fZmQsIEk5MTVfUEVSRl9JT0NUTF9FTkFCTEUsIDApOwogCi0J cmVhZF8yX29hX3JlcG9ydHMoc3RyZWFtX2ZkLAotCQkJICB0ZXN0X29hX2Zvcm1hdCwKKwlyZWFk XzJfb2FfcmVwb3J0cyh0ZXN0X29hX2Zvcm1hdCwKIAkJCSAgb2FfZXhwb25lbnQsCiAJCQkgIG9h X3JlcG9ydDAsCiAJCQkgIG9hX3JlcG9ydDEsCiAJCQkgIGZhbHNlKTsgLyogbm90IGp1c3QgdGlt ZXIgcmVwb3J0cyAqLwogCi0JY2xvc2Uoc3RyZWFtX2ZkKTsKKwlfX3BlcmZfY2xvc2Uoc3RyZWFt X2ZkKTsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTI0MDksNyArMjQxOCw2IEBAIHRlc3RfbWlfcnBj KHZvaWQpCiAJCS5udW1fcHJvcGVydGllcyA9IHNpemVvZihwcm9wZXJ0aWVzKSAvIDE2LAogCQku cHJvcGVydGllc19wdHIgPSB0b191c2VyX3BvaW50ZXIocHJvcGVydGllcyksCiAJfTsKLQlpbnQg c3RyZWFtX2ZkID0gX19wZXJmX29wZW4oZHJtX2ZkLCAmcGFyYW0pOwogCWRybV9pbnRlbF9idWZt Z3IgKmJ1Zm1nciA9IGRybV9pbnRlbF9idWZtZ3JfZ2VtX2luaXQoZHJtX2ZkLCA0MDk2KTsKIAlk cm1faW50ZWxfY29udGV4dCAqY29udGV4dDsKIAlzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIgKmJh dGNoOwpAQCAtMjQxNyw2ICsyNDI1LDggQEAgdGVzdF9taV9ycGModm9pZCkKIAl1aW50MzJfdCAq cmVwb3J0MzI7CiAJaW50IHJldDsKIAorCXN0cmVhbV9mZCA9IF9fcGVyZl9vcGVuKGRybV9mZCwg JnBhcmFtKTsKKwogCWRybV9pbnRlbF9idWZtZ3JfZ2VtX2VuYWJsZV9yZXVzZShidWZtZ3IpOwog CiAJY29udGV4dCA9IGRybV9pbnRlbF9nZW1fY29udGV4dF9jcmVhdGUoYnVmbWdyKTsKQEAgLTI0 NTQsNyArMjQ2NCw3IEBAIHRlc3RfbWlfcnBjKHZvaWQpCiAJaW50ZWxfYmF0Y2hidWZmZXJfZnJl ZShiYXRjaCk7CiAJZHJtX2ludGVsX2dlbV9jb250ZXh0X2Rlc3Ryb3koY29udGV4dCk7CiAJZHJt X2ludGVsX2J1Zm1ncl9kZXN0cm95KGJ1Zm1ncik7Ci0JY2xvc2Uoc3RyZWFtX2ZkKTsKKwlfX3Bl cmZfY2xvc2Uoc3RyZWFtX2ZkKTsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTI1NDUsNyArMjU1NSw2 IEBAIGhzd190ZXN0X3NpbmdsZV9jdHhfY291bnRlcnModm9pZCkKIAlpZ3RfZm9yayhjaGlsZCwg MSkgewogCQlkcm1faW50ZWxfYnVmbWdyICpidWZtZ3I7CiAJCWRybV9pbnRlbF9jb250ZXh0ICpj b250ZXh0MCwgKmNvbnRleHQxOwotCQlpbnQgc3RyZWFtX2ZkOwogCQlzdHJ1Y3QgaW50ZWxfYmF0 Y2hidWZmZXIgKmJhdGNoOwogCQlzdHJ1Y3QgaWd0X2J1ZiBzcmMsIGRzdDsKIAkJZHJtX2ludGVs X2JvICpibzsKQEAgLTI3MjQsNyArMjczMyw3IEBAIGhzd190ZXN0X3NpbmdsZV9jdHhfY291bnRl cnModm9pZCkKIAkJZHJtX2ludGVsX2dlbV9jb250ZXh0X2Rlc3Ryb3koY29udGV4dDApOwogCQlk cm1faW50ZWxfZ2VtX2NvbnRleHRfZGVzdHJveShjb250ZXh0MSk7CiAJCWRybV9pbnRlbF9idWZt Z3JfZGVzdHJveShidWZtZ3IpOwotCQljbG9zZShzdHJlYW1fZmQpOworCQlfX3BlcmZfY2xvc2Uo c3RyZWFtX2ZkKTsKIAl9CiAKIAlpZ3Rfd2FpdGNoaWxkcmVuKCk7CkBAIC0yNzQ3LDEwICsyNzU2 LDEyIEBAIHRlc3RfcmM2X2Rpc2FibGUodm9pZCkKIAkJLm51bV9wcm9wZXJ0aWVzID0gc2l6ZW9m KHByb3BlcnRpZXMpIC8gMTYsCiAJCS5wcm9wZXJ0aWVzX3B0ciA9IHRvX3VzZXJfcG9pbnRlcihw cm9wZXJ0aWVzKSwKIAl9OwotCWludCBzdHJlYW1fZmQgPSBfX3BlcmZfb3Blbihkcm1fZmQsICZw YXJhbSk7Ci0JdWludDY0X3Qgbl9ldmVudHNfc3RhcnQgPSByZWFkX2RlYnVnZnNfdTY0X3JlY29y ZChkcm1fZmQsICJpOTE1X2RycGNfaW5mbyIsCi0JCQkJCQkJICAiUkM2IHJlc2lkZW5jeSBzaW5j ZSBib290Iik7Ci0JdWludDY0X3Qgbl9ldmVudHNfZW5kOworCXVpbnQ2NF90IG5fZXZlbnRzX3N0 YXJ0LCBuX2V2ZW50c19lbmQ7CisKKwlzdHJlYW1fZmQgPSBfX3BlcmZfb3Blbihkcm1fZmQsICZw YXJhbSk7CisKKwluX2V2ZW50c19zdGFydCA9IHJlYWRfZGVidWdmc191NjRfcmVjb3JkKGRybV9m ZCwgImk5MTVfZHJwY19pbmZvIiwKKwkJCQkJCSAiUkM2IHJlc2lkZW5jeSBzaW5jZSBib290Iik7 CiAKIAluYW5vc2xlZXAoJihzdHJ1Y3QgdGltZXNwZWMpeyAudHZfc2VjID0gMCwgLnR2X25zZWMg PSA1MDAwMDAwMDAgfSwgTlVMTCk7CiAKQEAgLTI3NTksMTIgKzI3NzAsMTIgQEAgdGVzdF9yYzZf ZGlzYWJsZSh2b2lkKQogCiAJaWd0X2Fzc2VydF9lcShuX2V2ZW50c19lbmQgLSBuX2V2ZW50c19z dGFydCwgMCk7CiAKLQljbG9zZShzdHJlYW1fZmQpOworCV9fcGVyZl9jbG9zZShzdHJlYW1fZmQp OwogCiAJbl9ldmVudHNfc3RhcnQgPSByZWFkX2RlYnVnZnNfdTY0X3JlY29yZChkcm1fZmQsICJp OTE1X2RycGNfaW5mbyIsCiAJCQkJCQkgIlJDNiByZXNpZGVuY3kgc2luY2UgYm9vdCIpOwogCi0J bmFub3NsZWVwKCYoc3RydWN0IHRpbWVzcGVjKXsgLnR2X3NlYyA9IDAsIC50dl9uc2VjID0gNTAw MDAwMDAwIH0sIE5VTEwpOworCW5hbm9zbGVlcCgmKHN0cnVjdCB0aW1lc3BlYyl7IC50dl9zZWMg PSAxLCAudHZfbnNlYyA9IDAgfSwgTlVMTCk7CiAKIAluX2V2ZW50c19lbmQgPSByZWFkX2RlYnVn ZnNfdTY0X3JlY29yZChkcm1fZmQsICJpOTE1X2RycGNfaW5mbyIsCiAJCQkJCSAgICAgICAiUkM2 IHJlc2lkZW5jeSBzaW5jZSBib290Iik7CkBAIC0yOTAyLDcgKzI5MTMsNyBAQCB0ZXN0X2NyZWF0 ZV9kZXN0cm95X3VzZXJzcGFjZV9jb25maWcodm9pZCkKIAljb25zdCBjaGFyICp1dWlkID0gIjAx MjM0NTY3LTAxMjMtMDEyMy0wMTIzLTAxMjM0NTY3ODlhYiI7CiAJdWludDMyX3QgbXV4X3JlZ3Nb XSA9IHsgMHg5ODg4IC8qIE5PQV9XUklURSAqLywgMHgwIH07CiAJdWludDMyX3QgZmxleF9yZWdz WzEwMF07Ci0JaW50IGksIHN0cmVhbV9mZDsKKwlpbnQgaTsKIAl1aW50NjRfdCBjb25maWdfaWQ7 CiAJdWludDY0X3QgcHJvcGVydGllc1tdID0gewogCQlEUk1fSTkxNV9QRVJGX1BST1BfT0FfTUVU UklDU19TRVQsIDAsIC8qIEZpbGxlZCBsYXRlciAqLwpAQCAtMjk3MCw3ICsyOTgxLDcgQEAgdGVz dF9jcmVhdGVfZGVzdHJveV91c2Vyc3BhY2VfY29uZmlnKHZvaWQpCiAJLyogUmVhZCB0aGUgY29u ZmlnIHRvIHZlcmlmeSBzaG91bGRuJ3QgcmFpc2UgYW55IGlzc3VlLiAqLwogCWNvbmZpZ19pZCA9 IGk5MTVfcGVyZl9hZGRfY29uZmlnKGRybV9mZCwgJmNvbmZpZyk7CiAKLQljbG9zZShzdHJlYW1f ZmQpOworCV9fcGVyZl9jbG9zZShzdHJlYW1fZmQpOwogCiAJaTkxNV9wZXJmX3JlbW92ZV9jb25m aWcoZHJtX2ZkLCBjb25maWdfaWQpOwogfQpAQCAtMzE0Miw3ICszMTUzLDYgQEAgdGVzdF9pOTE1 X3JlZl9jb3VudCh2b2lkKQogCQkucHJvcGVydGllc19wdHIgPSB0b191c2VyX3BvaW50ZXIocHJv cGVydGllcyksCiAJfTsKIAl1bnNpZ25lZCBiYXNlbGluZSwgcmVmX2NvdW50MCwgcmVmX2NvdW50 MTsKLQlpbnQgc3RyZWFtX2ZkOwogCXVpbnQzMl90IG9hX3JlcG9ydDBbNjRdOwogCXVpbnQzMl90 IG9hX3JlcG9ydDFbNjRdOwogCkBAIC0zMTgyLDE0ICszMTkyLDEzIEBAIHRlc3RfaTkxNV9yZWZf Y291bnQodm9pZCkKIAogCWlndF9hc3NlcnQocmVmX2NvdW50MCA+IGJhc2VsaW5lKTsKIAotCXJl YWRfMl9vYV9yZXBvcnRzKHN0cmVhbV9mZCwKLQkJCSAgdGVzdF9vYV9mb3JtYXQsCisJcmVhZF8y X29hX3JlcG9ydHModGVzdF9vYV9mb3JtYXQsCiAJCQkgIG9hX2V4cF8xX21pbGxpc2VjLAogCQkJ ICBvYV9yZXBvcnQwLAogCQkJICBvYV9yZXBvcnQxLAogCQkJICBmYWxzZSk7IC8qIG5vdCBqdXN0 IHRpbWVyIHJlcG9ydHMgKi8KIAotCWNsb3NlKHN0cmVhbV9mZCk7CisJX19wZXJmX2Nsb3NlKHN0 cmVhbV9mZCk7CiAJcmVmX2NvdW50MCA9IHJlYWRfaTkxNV9tb2R1bGVfcmVmKCk7CiAJaWd0X2Rl YnVnKCJyZWYgY291bnQgYWZ0ZXIgY2xvc2luZyBpOTE1IHBlcmYgc3RyZWFtIGZkID0gJXVcbiIs IHJlZl9jb3VudDApOwogCWlndF9hc3NlcnRfZXEocmVmX2NvdW50MCwgYmFzZWxpbmUpOwotLSAK Mi4xNC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK