From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pj1-x1032.google.com (mail-pj1-x1032.google.com [IPv6:2607:f8b0:4864:20::1032]) by gabe.freedesktop.org (Postfix) with ESMTPS id 519076E985 for ; Thu, 17 Jun 2021 19:13:47 +0000 (UTC) Received: by mail-pj1-x1032.google.com with SMTP id m15-20020a17090a5a4fb029016f385ffad0so1615160pji.0 for ; Thu, 17 Jun 2021 12:13:47 -0700 (PDT) From: Jason Ekstrand Date: Thu, 17 Jun 2021 14:12:31 -0500 Message-Id: <20210617191256.577244-25-jason@jlekstrand.net> In-Reply-To: <20210617191256.577244-1-jason@jlekstrand.net> References: <20210617191256.577244-1-jason@jlekstrand.net> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 24/79] tests/i915/gem_sync: Convert to intel_ctx_t (v2) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org List-ID: djIgKFpiaWduaWV3IEtlbXBjennFhHNraSk6CiAtIERyb3Agc29tZSByZWR1bmRhbnQgY29kZQoK U2lnbmVkLW9mZi1ieTogSmFzb24gRWtzdHJhbmQgPGphc29uQGpsZWtzdHJhbmQubmV0PgpSZXZp ZXdlZC1ieTogWmJpZ25pZXcgS2VtcGN6ecWEc2tpIDx6Ymlnbmlldy5rZW1wY3p5bnNraUBpbnRl bC5jb20+Ci0tLQogdGVzdHMvaTkxNS9nZW1fc3luYy5jIHwgMTU4ICsrKysrKysrKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDg5IGluc2VydGlvbnMo KyksIDY5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rlc3RzL2k5MTUvZ2VtX3N5bmMuYyBi L3Rlc3RzL2k5MTUvZ2VtX3N5bmMuYwppbmRleCBhZTQxYjZiYjAuLjZjYjAwYzQwNiAxMDA2NDQK LS0tIGEvdGVzdHMvaTkxNS9nZW1fc3luYy5jCisrKyBiL3Rlc3RzL2k5MTUvZ2VtX3N5bmMuYwpA QCAtOTcsMzggKzk3LDMyIEBAIGZpbHRlcl9lbmdpbmVzX2Nhbl9zdG9yZV9kd29yZChpbnQgZmQs IHN0cnVjdCBpbnRlbF9lbmdpbmVfZGF0YSAqaWVkKQogCWllZC0+bmVuZ2luZXMgPSBjb3VudDsK IH0KIAotc3RhdGljIHN0cnVjdCBpbnRlbF9lbmdpbmVfZGF0YSBsaXN0X3N0b3JlX2VuZ2luZXMo aW50IGZkLCB1bnNpZ25lZCByaW5nKQorc3RhdGljIHN0cnVjdCBpbnRlbF9lbmdpbmVfZGF0YQor bGlzdF9lbmdpbmVzKGludCBmZCwgY29uc3QgaW50ZWxfY3R4X3QgKmN0eCwgdW5zaWduZWQgcmlu ZykKIHsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2RhdGEgaWVkID0geyB9OwogCiAJaWYgKHJpbmcg PT0gQUxMX0VOR0lORVMpIHsKLQkJaWVkID0gaW50ZWxfaW5pdF9lbmdpbmVfbGlzdChmZCwgMCk7 Ci0JCWZpbHRlcl9lbmdpbmVzX2Nhbl9zdG9yZV9kd29yZChmZCwgJmllZCk7CisJCWllZCA9IGlu dGVsX2VuZ2luZV9saXN0X2Zvcl9jdHhfY2ZnKGZkLCAmY3R4LT5jZmcpOwogCX0gZWxzZSB7Ci0J CWlmIChnZW1faGFzX3JpbmcoZmQsIHJpbmcpICYmIGdlbV9jYW5fc3RvcmVfZHdvcmQoZmQsIHJp bmcpKSB7Ci0JCQlpZWQuZW5naW5lc1tpZWQubmVuZ2luZXNdLmZsYWdzID0gcmluZzsKLQkJCXN0 cmNweShpZWQuZW5naW5lc1tpZWQubmVuZ2luZXNdLm5hbWUsICIgIik7Ci0JCQlpZWQubmVuZ2lu ZXMrKzsKLQkJfQorCQlpZiAoY3R4LT5jZmcubnVtX2VuZ2luZXMpCisJCQlpZ3RfYXNzZXJ0KHJp bmcgPCBjdHgtPmNmZy5udW1fZW5naW5lcyk7CisJCWVsc2UKKwkJCWlndF9hc3NlcnQoZ2VtX2hh c19yaW5nKGZkLCByaW5nKSk7CisKKwkJaWVkLmVuZ2luZXNbaWVkLm5lbmdpbmVzXS5mbGFncyA9 IHJpbmc7CisJCXN0cmNweShpZWQuZW5naW5lc1tpZWQubmVuZ2luZXNdLm5hbWUsICIgIik7CisJ CWllZC5uZW5naW5lcysrOwogCX0KIAogCXJldHVybiBpZWQ7CiB9CiAKLXN0YXRpYyBzdHJ1Y3Qg aW50ZWxfZW5naW5lX2RhdGEgbGlzdF9lbmdpbmVzKGludCBmZCwgdW5zaWduZWQgcmluZykKK3N0 YXRpYyBzdHJ1Y3QgaW50ZWxfZW5naW5lX2RhdGEKK2xpc3Rfc3RvcmVfZW5naW5lcyhpbnQgZmQs IGNvbnN0IGludGVsX2N0eF90ICpjdHgsIHVuc2lnbmVkIHJpbmcpCiB7Ci0Jc3RydWN0IGludGVs X2VuZ2luZV9kYXRhIGllZCA9IHsgfTsKLQotCWlmIChyaW5nID09IEFMTF9FTkdJTkVTKSB7Ci0J CWllZCA9IGludGVsX2luaXRfZW5naW5lX2xpc3QoZmQsIDApOwotCX0gZWxzZSB7Ci0JCWlmIChn ZW1faGFzX3JpbmcoZmQsIHJpbmcpKSB7Ci0JCQlpZWQuZW5naW5lc1tpZWQubmVuZ2luZXNdLmZs YWdzID0gcmluZzsKLQkJCXN0cmNweShpZWQuZW5naW5lc1tpZWQubmVuZ2luZXNdLm5hbWUsICIg Iik7Ci0JCQlpZWQubmVuZ2luZXMrKzsKLQkJfQotCX0KLQorCXN0cnVjdCBpbnRlbF9lbmdpbmVf ZGF0YSBpZWQgPSBsaXN0X2VuZ2luZXMoZmQsIGN0eCwgcmluZyk7CisJZmlsdGVyX2VuZ2luZXNf Y2FuX3N0b3JlX2R3b3JkKGZkLCAmaWVkKTsKIAlyZXR1cm4gaWVkOwogfQogCkBAIC0xNTAsMTEg KzE0NCwxMiBAQCBzdGF0aWMgdm9pZCB4Y2hnX2VuZ2luZSh2b2lkICphcnJheSwgdW5zaWduZWQg aSwgdW5zaWduZWQgaikKIH0KIAogc3RhdGljIHZvaWQKLXN5bmNfcmluZyhpbnQgZmQsIHVuc2ln bmVkIHJpbmcsIGludCBudW1fY2hpbGRyZW4sIGludCB0aW1lb3V0KQorc3luY19yaW5nKGludCBm ZCwgY29uc3QgaW50ZWxfY3R4X3QgKmN0eCwKKwkgIHVuc2lnbmVkIHJpbmcsIGludCBudW1fY2hp bGRyZW4sIGludCB0aW1lb3V0KQogewogCXN0cnVjdCBpbnRlbF9lbmdpbmVfZGF0YSBpZWQ7CiAK LQlpZWQgPSBsaXN0X2VuZ2luZXMoZmQsIHJpbmcpOworCWllZCA9IGxpc3RfZW5naW5lcyhmZCwg Y3R4LCByaW5nKTsKIAlpZ3RfcmVxdWlyZShpZWQubmVuZ2luZXMpOwogCW51bV9jaGlsZHJlbiAq PSBpZWQubmVuZ2luZXM7CiAKQEAgLTE3NCw2ICsxNjksNyBAQCBzeW5jX3JpbmcoaW50IGZkLCB1 bnNpZ25lZCByaW5nLCBpbnQgbnVtX2NoaWxkcmVuLCBpbnQgdGltZW91dCkKIAkJZXhlY2J1Zi5i dWZmZXJzX3B0ciA9IHRvX3VzZXJfcG9pbnRlcigmb2JqZWN0KTsKIAkJZXhlY2J1Zi5idWZmZXJf Y291bnQgPSAxOwogCQlleGVjYnVmLmZsYWdzID0gaWVkX2ZsYWdzKCZpZWQsIGNoaWxkKTsKKwkJ ZXhlY2J1Zi5yc3ZkMSA9IGN0eC0+aWQ7CiAJCWdlbV9leGVjYnVmKGZkLCAmZXhlY2J1Zik7CiAJ CWdlbV9zeW5jKGZkLCBvYmplY3QuaGFuZGxlKTsKIApAQCAtMTk2LDcgKzE5Miw4IEBAIHN5bmNf cmluZyhpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIGludCBudW1fY2hpbGRyZW4sIGludCB0aW1lb3V0 KQogfQogCiBzdGF0aWMgdm9pZAotaWRsZV9yaW5nKGludCBmZCwgdW5zaWduZWQgaW50IHJpbmcs IGludCBudW1fY2hpbGRyZW4sIGludCB0aW1lb3V0KQoraWRsZV9yaW5nKGludCBmZCwgY29uc3Qg aW50ZWxfY3R4X3QgKmN0eCwgdW5zaWduZWQgaW50IHJpbmcsCisJICBpbnQgbnVtX2NoaWxkcmVu LCBpbnQgdGltZW91dCkKIHsKIAljb25zdCB1aW50MzJfdCBiYmUgPSBNSV9CQVRDSF9CVUZGRVJf RU5EOwogCXN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY19vYmplY3QyIG9iamVjdDsKQEAgLTIxNCw2 ICsyMTEsNyBAQCBpZGxlX3JpbmcoaW50IGZkLCB1bnNpZ25lZCBpbnQgcmluZywgaW50IG51bV9j aGlsZHJlbiwgaW50IHRpbWVvdXQpCiAJZXhlY2J1Zi5idWZmZXJzX3B0ciA9IHRvX3VzZXJfcG9p bnRlcigmb2JqZWN0KTsKIAlleGVjYnVmLmJ1ZmZlcl9jb3VudCA9IDE7CiAJZXhlY2J1Zi5mbGFn cyA9IHJpbmc7CisJZXhlY2J1Zi5yc3ZkMSA9IGN0eC0+aWQ7CiAJZ2VtX2V4ZWNidWYoZmQsICZl eGVjYnVmKTsKIAlnZW1fc3luYyhmZCwgb2JqZWN0LmhhbmRsZSk7CiAKQEAgLTIzNSwxMSArMjMz LDEyIEBAIGlkbGVfcmluZyhpbnQgZmQsIHVuc2lnbmVkIGludCByaW5nLCBpbnQgbnVtX2NoaWxk cmVuLCBpbnQgdGltZW91dCkKIH0KIAogc3RhdGljIHZvaWQKLXdha2V1cF9yaW5nKGludCBmZCwg dW5zaWduZWQgcmluZywgaW50IHRpbWVvdXQsIGludCB3bGVuKQord2FrZXVwX3JpbmcoaW50IGZk LCBjb25zdCBpbnRlbF9jdHhfdCAqY3R4LCB1bnNpZ25lZCByaW5nLAorCSAgICBpbnQgdGltZW91 dCwgaW50IHdsZW4pCiB7CiAJc3RydWN0IGludGVsX2VuZ2luZV9kYXRhIGllZDsKIAotCWllZCA9 IGxpc3Rfc3RvcmVfZW5naW5lcyhmZCwgcmluZyk7CisJaWVkID0gbGlzdF9zdG9yZV9lbmdpbmVz KGZkLCBjdHgsIHJpbmcpOwogCWlndF9yZXF1aXJlKGllZC5uZW5naW5lcyk7CiAKIAlpbnRlbF9k ZXRlY3RfYW5kX2NsZWFyX21pc3NlZF9pbnRlcnJ1cHRzKGZkKTsKQEAgLTI1OSw4ICsyNTgsMTAg QEAgd2FrZXVwX3JpbmcoaW50IGZkLCB1bnNpZ25lZCByaW5nLCBpbnQgdGltZW91dCwgaW50IHds ZW4pCiAJCWV4ZWNidWYuYnVmZmVyc19wdHIgPSB0b191c2VyX3BvaW50ZXIoJm9iamVjdCk7CiAJ CWV4ZWNidWYuYnVmZmVyX2NvdW50ID0gMTsKIAkJZXhlY2J1Zi5mbGFncyA9IGllZF9mbGFncygm aWVkLCBjaGlsZCk7CisJCWV4ZWNidWYucnN2ZDEgPSBjdHgtPmlkOwogCiAJCXNwaW4gPSBfX2ln dF9zcGluX25ldyhmZCwKKwkJCQkgICAgICAuY3R4ID0gY3R4LAogCQkJCSAgICAgIC5lbmdpbmUg PSBleGVjYnVmLmZsYWdzLAogCQkJCSAgICAgIC5mbGFncyA9IChJR1RfU1BJTl9QT0xMX1JVTiB8 CiAJCQkJCQlJR1RfU1BJTl9GQVNUKSk7CkBAIC0zMjcsMTIgKzMyOCwxMiBAQCB3YWtldXBfcmlu ZyhpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIGludCB0aW1lb3V0LCBpbnQgd2xlbikKIAlpZ3RfYXNz ZXJ0X2VxKGludGVsX2RldGVjdF9hbmRfY2xlYXJfbWlzc2VkX2ludGVycnVwdHMoZmQpLCAwKTsK IH0KIAotc3RhdGljIHZvaWQgYWN0aXZlX3JpbmcoaW50IGZkLCB1bnNpZ25lZCBpbnQgcmluZywK K3N0YXRpYyB2b2lkIGFjdGl2ZV9yaW5nKGludCBmZCwgY29uc3QgaW50ZWxfY3R4X3QgKmN0eCwg dW5zaWduZWQgaW50IHJpbmcsCiAJCQlpbnQgbnVtX2NoaWxkcmVuLCBpbnQgdGltZW91dCkKIHsK IAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2RhdGEgaWVkOwogCi0JaWVkID0gbGlzdF9zdG9yZV9lbmdp bmVzKGZkLCByaW5nKTsKKwlpZWQgPSBsaXN0X3N0b3JlX2VuZ2luZXMoZmQsIGN0eCwgcmluZyk7 CiAJaWd0X3JlcXVpcmUoaWVkLm5lbmdpbmVzKTsKIAogCWludGVsX2RldGVjdF9hbmRfY2xlYXJf bWlzc2VkX2ludGVycnVwdHMoZmQpOwpAQCAtMzQyLDEwICszNDMsMTIgQEAgc3RhdGljIHZvaWQg YWN0aXZlX3JpbmcoaW50IGZkLCB1bnNpZ25lZCBpbnQgcmluZywKIAkJaWd0X3NwaW5fdCAqc3Bp blsyXTsKIAogCQlzcGluWzBdID0gX19pZ3Rfc3Bpbl9uZXcoZmQsCisJCQkJCSAuY3R4ID0gY3R4 LAogCQkJCQkgLmVuZ2luZSA9IGllZF9mbGFncygmaWVkLCBjaGlsZCksCiAJCQkJCSAuZmxhZ3Mg PSBJR1RfU1BJTl9GQVNUKTsKIAogCQlzcGluWzFdID0gX19pZ3Rfc3Bpbl9uZXcoZmQsCisJCQkJ CSAuY3R4ID0gY3R4LAogCQkJCQkgLmVuZ2luZSA9IGllZF9mbGFncygmaWVkLCBjaGlsZCksCiAJ CQkJCSAuZmxhZ3MgPSBJR1RfU1BJTl9GQVNUKTsKIApAQCAtMzc3LDExICszODAsMTIgQEAgc3Rh dGljIHZvaWQgYWN0aXZlX3JpbmcoaW50IGZkLCB1bnNpZ25lZCBpbnQgcmluZywKIH0KIAogc3Rh dGljIHZvaWQKLWFjdGl2ZV93YWtldXBfcmluZyhpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIGludCB0 aW1lb3V0LCBpbnQgd2xlbikKK2FjdGl2ZV93YWtldXBfcmluZyhpbnQgZmQsIGNvbnN0IGludGVs X2N0eF90ICpjdHgsIHVuc2lnbmVkIHJpbmcsCisJCSAgIGludCB0aW1lb3V0LCBpbnQgd2xlbikK IHsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2RhdGEgaWVkOwogCi0JaWVkID0gbGlzdF9zdG9yZV9l bmdpbmVzKGZkLCByaW5nKTsKKwlpZWQgPSBsaXN0X3N0b3JlX2VuZ2luZXMoZmQsIGN0eCwgcmlu Zyk7CiAJaWd0X3JlcXVpcmUoaWVkLm5lbmdpbmVzKTsKIAogCWludGVsX2RldGVjdF9hbmRfY2xl YXJfbWlzc2VkX2ludGVycnVwdHMoZmQpOwpAQCAtNDAxLDYgKzQwNSw3IEBAIGFjdGl2ZV93YWtl dXBfcmluZyhpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIGludCB0aW1lb3V0LCBpbnQgd2xlbikKIAkJ ZXhlY2J1Zi5idWZmZXJzX3B0ciA9IHRvX3VzZXJfcG9pbnRlcigmb2JqZWN0KTsKIAkJZXhlY2J1 Zi5idWZmZXJfY291bnQgPSAxOwogCQlleGVjYnVmLmZsYWdzID0gaWVkX2ZsYWdzKCZpZWQsIGNo aWxkKTsKKwkJZXhlY2J1Zi5yc3ZkMSA9IGN0eC0+aWQ7CiAKIAkJc3BpblswXSA9IF9faWd0X3Nw aW5fbmV3KGZkLAogCQkJCQkgLmVuZ2luZSA9IGV4ZWNidWYuZmxhZ3MsCkBAIC00OTEsMTIgKzQ5 NiwxMyBAQCBhY3RpdmVfd2FrZXVwX3JpbmcoaW50IGZkLCB1bnNpZ25lZCByaW5nLCBpbnQgdGlt ZW91dCwgaW50IHdsZW4pCiB9CiAKIHN0YXRpYyB2b2lkCi1zdG9yZV9yaW5nKGludCBmZCwgdW5z aWduZWQgcmluZywgaW50IG51bV9jaGlsZHJlbiwgaW50IHRpbWVvdXQpCitzdG9yZV9yaW5nKGlu dCBmZCwgY29uc3QgaW50ZWxfY3R4X3QgKmN0eCwgdW5zaWduZWQgcmluZywKKwkgICBpbnQgbnVt X2NoaWxkcmVuLCBpbnQgdGltZW91dCkKIHsKIAljb25zdCB1bnNpZ25lZCBpbnQgZ2VuID0gaW50 ZWxfZ2VuKGludGVsX2dldF9kcm1fZGV2aWQoZmQpKTsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2Rh dGEgaWVkOwogCi0JaWVkID0gbGlzdF9zdG9yZV9lbmdpbmVzKGZkLCByaW5nKTsKKwlpZWQgPSBs aXN0X3N0b3JlX2VuZ2luZXMoZmQsIGN0eCwgcmluZyk7CiAJaWd0X3JlcXVpcmUoaWVkLm5lbmdp bmVzKTsKIAludW1fY2hpbGRyZW4gKj0gaWVkLm5lbmdpbmVzOwogCkBAIC01MTcsNiArNTIzLDcg QEAgc3RvcmVfcmluZyhpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIGludCBudW1fY2hpbGRyZW4sIGlu dCB0aW1lb3V0KQogCQlleGVjYnVmLmZsYWdzIHw9IEk5MTVfRVhFQ19IQU5ETEVfTFVUOwogCQlp ZiAoZ2VuIDwgNikKIAkJCWV4ZWNidWYuZmxhZ3MgfD0gSTkxNV9FWEVDX1NFQ1VSRTsKKwkJZXhl Y2J1Zi5yc3ZkMSA9IGN0eC0+aWQ7CiAKIAkJbWVtc2V0KG9iamVjdCwgMCwgc2l6ZW9mKG9iamVj dCkpOwogCQlvYmplY3RbMF0uaGFuZGxlID0gZ2VtX2NyZWF0ZShmZCwgNDA5Nik7CkBAIC01ODcs MTQgKzU5NCwxNSBAQCBzdG9yZV9yaW5nKGludCBmZCwgdW5zaWduZWQgcmluZywgaW50IG51bV9j aGlsZHJlbiwgaW50IHRpbWVvdXQpCiB9CiAKIHN0YXRpYyB2b2lkCi1zd2l0Y2hfcmluZyhpbnQg ZmQsIHVuc2lnbmVkIHJpbmcsIGludCBudW1fY2hpbGRyZW4sIGludCB0aW1lb3V0KQorc3dpdGNo X3JpbmcoaW50IGZkLCBjb25zdCBpbnRlbF9jdHhfdCAqY3R4LCB1bnNpZ25lZCByaW5nLAorCSAg ICBpbnQgbnVtX2NoaWxkcmVuLCBpbnQgdGltZW91dCkKIHsKIAljb25zdCB1bnNpZ25lZCBpbnQg Z2VuID0gaW50ZWxfZ2VuKGludGVsX2dldF9kcm1fZGV2aWQoZmQpKTsKIAlzdHJ1Y3QgaW50ZWxf ZW5naW5lX2RhdGEgaWVkOwogCiAJZ2VtX3JlcXVpcmVfY29udGV4dHMoZmQpOwogCi0JaWVkID0g bGlzdF9zdG9yZV9lbmdpbmVzKGZkLCByaW5nKTsKKwlpZWQgPSBsaXN0X3N0b3JlX2VuZ2luZXMo ZmQsIGN0eCwgcmluZyk7CiAJaWd0X3JlcXVpcmUoaWVkLm5lbmdpbmVzKTsKIAludW1fY2hpbGRy ZW4gKj0gaWVkLm5lbmdpbmVzOwogCkBAIC02MDQsNiArNjEyLDcgQEAgc3dpdGNoX3JpbmcoaW50 IGZkLCB1bnNpZ25lZCByaW5nLCBpbnQgbnVtX2NoaWxkcmVuLCBpbnQgdGltZW91dCkKIAkJCXN0 cnVjdCBkcm1faTkxNV9nZW1fZXhlY19vYmplY3QyIG9iamVjdFsyXTsKIAkJCXN0cnVjdCBkcm1f aTkxNV9nZW1fcmVsb2NhdGlvbl9lbnRyeSByZWxvY1sxMDI0XTsKIAkJCXN0cnVjdCBkcm1faTkx NV9nZW1fZXhlY2J1ZmZlcjIgZXhlY2J1ZjsKKwkJCWNvbnN0IGludGVsX2N0eF90ICpjdHg7CiAJ CX0gY29udGV4dHNbMl07CiAJCWRvdWJsZSBlbGFwc2VkLCBiYXNlbGluZTsKIAkJdW5zaWduZWQg bG9uZyBjeWNsZXM7CkBAIC02MjEsNyArNjMwLDkgQEAgc3dpdGNoX3JpbmcoaW50IGZkLCB1bnNp Z25lZCByaW5nLCBpbnQgbnVtX2NoaWxkcmVuLCBpbnQgdGltZW91dCkKIAkJCWMtPmV4ZWNidWYu ZmxhZ3MgfD0gSTkxNV9FWEVDX0hBTkRMRV9MVVQ7CiAJCQlpZiAoZ2VuIDwgNikKIAkJCQljLT5l eGVjYnVmLmZsYWdzIHw9IEk5MTVfRVhFQ19TRUNVUkU7Ci0JCQljLT5leGVjYnVmLnJzdmQxID0g Z2VtX2NvbnRleHRfY3JlYXRlKGZkKTsKKworCQkJYy0+Y3R4ID0gaW50ZWxfY3R4X2NyZWF0ZShm ZCwgJmN0eC0+Y2ZnKTsKKwkJCWMtPmV4ZWNidWYucnN2ZDEgPSBjLT5jdHgtPmlkOwogCiAJCQlt ZW1zZXQoYy0+b2JqZWN0LCAwLCBzaXplb2YoYy0+b2JqZWN0KSk7CiAJCQljLT5vYmplY3RbMF0u aGFuZGxlID0gZ2VtX2NyZWF0ZShmZCwgNDA5Nik7CkBAIC03MTcsNyArNzI4LDcgQEAgc3dpdGNo X3JpbmcoaW50IGZkLCB1bnNpZ25lZCByaW5nLCBpbnQgbnVtX2NoaWxkcmVuLCBpbnQgdGltZW91 dCkKIAkJZm9yIChpbnQgaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGNvbnRleHRzKTsgaSsrKSB7CiAJ CQlnZW1fY2xvc2UoZmQsIGNvbnRleHRzW2ldLm9iamVjdFsxXS5oYW5kbGUpOwogCQkJZ2VtX2Ns b3NlKGZkLCBjb250ZXh0c1tpXS5vYmplY3RbMF0uaGFuZGxlKTsKLQkJCWdlbV9jb250ZXh0X2Rl c3Ryb3koZmQsIGNvbnRleHRzW2ldLmV4ZWNidWYucnN2ZDEpOworCQkJaW50ZWxfY3R4X2Rlc3Ry b3koZmQsIGNvbnRleHRzW2ldLmN0eCk7CiAJCX0KIAl9CiAJaWd0X3dhaXRjaGlsZHJlbl90aW1l b3V0KHRpbWVvdXQrMTAsIE5VTEwpOwpAQCAtNzY2LDcgKzc3Nyw4IEBAIHN0YXRpYyB2b2lkICp3 YWl0ZXIodm9pZCAqYXJnKQogfQogCiBzdGF0aWMgdm9pZAotX19zdG9yZV9tYW55KGludCBmZCwg dW5zaWduZWQgcmluZywgaW50IHRpbWVvdXQsIHVuc2lnbmVkIGxvbmcgKmN5Y2xlcykKK19fc3Rv cmVfbWFueShpbnQgZmQsIGNvbnN0IGludGVsX2N0eF90ICpjdHgsIHVuc2lnbmVkIHJpbmcsCisJ ICAgICBpbnQgdGltZW91dCwgdW5zaWduZWQgbG9uZyAqY3ljbGVzKQogewogCWNvbnN0IHVuc2ln bmVkIGludCBnZW4gPSBpbnRlbF9nZW4oaW50ZWxfZ2V0X2RybV9kZXZpZChmZCkpOwogCWNvbnN0 IHVpbnQzMl90IGJiZSA9IE1JX0JBVENIX0JVRkZFUl9FTkQ7CkBAIC03ODUsNiArNzk3LDcgQEAg X19zdG9yZV9tYW55KGludCBmZCwgdW5zaWduZWQgcmluZywgaW50IHRpbWVvdXQsIHVuc2lnbmVk IGxvbmcgKmN5Y2xlcykKIAlleGVjYnVmLmZsYWdzIHw9IEk5MTVfRVhFQ19IQU5ETEVfTFVUOwog CWlmIChnZW4gPCA2KQogCQlleGVjYnVmLmZsYWdzIHw9IEk5MTVfRVhFQ19TRUNVUkU7CisJZXhl Y2J1Zi5yc3ZkMSA9IGN0eC0+aWQ7CiAKIAltZW1zZXQob2JqZWN0LCAwLCBzaXplb2Yob2JqZWN0 KSk7CiAJb2JqZWN0WzBdLmhhbmRsZSA9IGdlbV9jcmVhdGUoZmQsIDQwOTYpOwpAQCAtODk0LDcg KzkwNyw4IEBAIF9fc3RvcmVfbWFueShpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIGludCB0aW1lb3V0 LCB1bnNpZ25lZCBsb25nICpjeWNsZXMpCiB9CiAKIHN0YXRpYyB2b2lkCi1zdG9yZV9tYW55KGlu dCBmZCwgdW5zaWduZWQgaW50IHJpbmcsIGludCBudW1fY2hpbGRyZW4sIGludCB0aW1lb3V0KQor c3RvcmVfbWFueShpbnQgZmQsIGNvbnN0IGludGVsX2N0eF90ICpjdHgsIHVuc2lnbmVkIGludCBy aW5nLAorCSAgIGludCBudW1fY2hpbGRyZW4sIGludCB0aW1lb3V0KQogewogCXN0cnVjdCBpbnRl bF9lbmdpbmVfZGF0YSBpZWQ7CiAJdW5zaWduZWQgbG9uZyAqc2hhcmVkOwpAQCAtOTAyLDE0ICs5 MTYsMTQgQEAgc3RvcmVfbWFueShpbnQgZmQsIHVuc2lnbmVkIGludCByaW5nLCBpbnQgbnVtX2No aWxkcmVuLCBpbnQgdGltZW91dCkKIAlzaGFyZWQgPSBtbWFwKE5VTEwsIDQwOTYsIFBST1RfV1JJ VEUsIE1BUF9TSEFSRUQgfCBNQVBfQU5PTiwgLTEsIDApOwogCWlndF9hc3NlcnQoc2hhcmVkICE9 IE1BUF9GQUlMRUQpOwogCi0JaWVkID0gbGlzdF9zdG9yZV9lbmdpbmVzKGZkLCByaW5nKTsKKwlp ZWQgPSBsaXN0X3N0b3JlX2VuZ2luZXMoZmQsIGN0eCwgcmluZyk7CiAJaWd0X3JlcXVpcmUoaWVk Lm5lbmdpbmVzKTsKIAogCWludGVsX2RldGVjdF9hbmRfY2xlYXJfbWlzc2VkX2ludGVycnVwdHMo ZmQpOwogCiAJZm9yIChpbnQgbiA9IDA7IG4gPCBpZWQubmVuZ2luZXM7IG4rKykgewogCQlpZ3Rf Zm9yayhjaGlsZCwgMSkKLQkJCV9fc3RvcmVfbWFueShmZCwKKwkJCV9fc3RvcmVfbWFueShmZCwg Y3R4LAogCQkJCSAgICAgaWVkX2ZsYWdzKCZpZWQsIG4pLAogCQkJCSAgICAgdGltZW91dCwKIAkJ CQkgICAgICZzaGFyZWRbbl0pOwpAQCAtOTI1LDExICs5MzksMTEgQEAgc3RvcmVfbWFueShpbnQg ZmQsIHVuc2lnbmVkIGludCByaW5nLCBpbnQgbnVtX2NoaWxkcmVuLCBpbnQgdGltZW91dCkKIH0K IAogc3RhdGljIHZvaWQKLXN5bmNfYWxsKGludCBmZCwgaW50IG51bV9jaGlsZHJlbiwgaW50IHRp bWVvdXQpCitzeW5jX2FsbChpbnQgZmQsIGNvbnN0IGludGVsX2N0eF90ICpjdHgsIGludCBudW1f Y2hpbGRyZW4sIGludCB0aW1lb3V0KQogewogCXN0cnVjdCBpbnRlbF9lbmdpbmVfZGF0YSBpZWQ7 CiAKLQlpZWQgPSBsaXN0X2VuZ2luZXMoZmQsIEFMTF9FTkdJTkVTKTsKKwlpZWQgPSBsaXN0X2Vu Z2luZXMoZmQsIGN0eCwgQUxMX0VOR0lORVMpOwogCWlndF9yZXF1aXJlKGllZC5uZW5naW5lcyk7 CiAKIAlpbnRlbF9kZXRlY3RfYW5kX2NsZWFyX21pc3NlZF9pbnRlcnJ1cHRzKGZkKTsKQEAgLTk0 Nyw2ICs5NjEsNyBAQCBzeW5jX2FsbChpbnQgZmQsIGludCBudW1fY2hpbGRyZW4sIGludCB0aW1l b3V0KQogCQltZW1zZXQoJmV4ZWNidWYsIDAsIHNpemVvZihleGVjYnVmKSk7CiAJCWV4ZWNidWYu YnVmZmVyc19wdHIgPSB0b191c2VyX3BvaW50ZXIoJm9iamVjdCk7CiAJCWV4ZWNidWYuYnVmZmVy X2NvdW50ID0gMTsKKwkJZXhlY2J1Zi5yc3ZkMSA9IGN0eC0+aWQ7CiAJCWdlbV9leGVjYnVmKGZk LCAmZXhlY2J1Zik7CiAJCWdlbV9zeW5jKGZkLCBvYmplY3QuaGFuZGxlKTsKIApAQCAtOTcxLDEy ICs5ODYsMTIgQEAgc3luY19hbGwoaW50IGZkLCBpbnQgbnVtX2NoaWxkcmVuLCBpbnQgdGltZW91 dCkKIH0KIAogc3RhdGljIHZvaWQKLXN0b3JlX2FsbChpbnQgZmQsIGludCBudW1fY2hpbGRyZW4s IGludCB0aW1lb3V0KQorc3RvcmVfYWxsKGludCBmZCwgY29uc3QgaW50ZWxfY3R4X3QgKmN0eCwg aW50IG51bV9jaGlsZHJlbiwgaW50IHRpbWVvdXQpCiB7CiAJY29uc3QgdW5zaWduZWQgaW50IGdl biA9IGludGVsX2dlbihpbnRlbF9nZXRfZHJtX2RldmlkKGZkKSk7CiAJc3RydWN0IGludGVsX2Vu Z2luZV9kYXRhIGllZDsKIAotCWllZCA9IGxpc3Rfc3RvcmVfZW5naW5lcyhmZCwgQUxMX0VOR0lO RVMpOworCWllZCA9IGxpc3Rfc3RvcmVfZW5naW5lcyhmZCwgY3R4LCBBTExfRU5HSU5FUyk7CiAJ aWd0X3JlcXVpcmUoaWVkLm5lbmdpbmVzKTsKIAogCWludGVsX2RldGVjdF9hbmRfY2xlYXJfbWlz c2VkX2ludGVycnVwdHMoZmQpOwpAQCAtOTk1LDYgKzEwMTAsNyBAQCBzdG9yZV9hbGwoaW50IGZk LCBpbnQgbnVtX2NoaWxkcmVuLCBpbnQgdGltZW91dCkKIAkJZXhlY2J1Zi5mbGFncyB8PSBJOTE1 X0VYRUNfSEFORExFX0xVVDsKIAkJaWYgKGdlbiA8IDYpCiAJCQlleGVjYnVmLmZsYWdzIHw9IEk5 MTVfRVhFQ19TRUNVUkU7CisJCWV4ZWNidWYucnN2ZDEgPSBjdHgtPmlkOwogCiAJCW1lbXNldChv YmplY3QsIDAsIHNpemVvZihvYmplY3QpKTsKIAkJb2JqZWN0WzBdLmhhbmRsZSA9IGdlbV9jcmVh dGUoZmQsIDQwOTYpOwpAQCAtMTA3MCwyMCArMTA4NiwyMSBAQCBzdG9yZV9hbGwoaW50IGZkLCBp bnQgbnVtX2NoaWxkcmVuLCBpbnQgdGltZW91dCkKIH0KIAogc3RhdGljIHZvaWQKLXByZWVtcHQo aW50IGZkLCB1bnNpZ25lZCByaW5nLCBpbnQgbnVtX2NoaWxkcmVuLCBpbnQgdGltZW91dCkKK3By ZWVtcHQoaW50IGZkLCBjb25zdCBpbnRlbF9jdHhfdCAqY3R4LCB1bnNpZ25lZCByaW5nLAorCWlu dCBudW1fY2hpbGRyZW4sIGludCB0aW1lb3V0KQogewogCXN0cnVjdCBpbnRlbF9lbmdpbmVfZGF0 YSBpZWQ7Ci0JdWludDMyX3QgY3R4WzJdOworCWNvbnN0IGludGVsX2N0eF90ICp0bXBfY3R4WzJd OwogCi0JaWVkID0gbGlzdF9lbmdpbmVzKGZkLCBBTExfRU5HSU5FUyk7CisJaWVkID0gbGlzdF9l bmdpbmVzKGZkLCBjdHgsIEFMTF9FTkdJTkVTKTsKIAlpZ3RfcmVxdWlyZShpZWQubmVuZ2luZXMp OwogCW51bV9jaGlsZHJlbiAqPSBpZWQubmVuZ2luZXM7CiAKLQljdHhbMF0gPSBnZW1fY29udGV4 dF9jcmVhdGUoZmQpOwotCWdlbV9jb250ZXh0X3NldF9wcmlvcml0eShmZCwgY3R4WzBdLCBNSU5f UFJJTyk7CisJdG1wX2N0eFswXSA9IGludGVsX2N0eF9jcmVhdGUoZmQsICZjdHgtPmNmZyk7CisJ Z2VtX2NvbnRleHRfc2V0X3ByaW9yaXR5KGZkLCB0bXBfY3R4WzBdLT5pZCwgTUlOX1BSSU8pOwog Ci0JY3R4WzFdID0gZ2VtX2NvbnRleHRfY3JlYXRlKGZkKTsKLQlnZW1fY29udGV4dF9zZXRfcHJp b3JpdHkoZmQsIGN0eFsxXSwgTUFYX1BSSU8pOworCXRtcF9jdHhbMV0gPSBpbnRlbF9jdHhfY3Jl YXRlKGZkLCAmY3R4LT5jZmcpOworCWdlbV9jb250ZXh0X3NldF9wcmlvcml0eShmZCwgdG1wX2N0 eFsxXS0+aWQsIE1BWF9QUklPKTsKIAogCWludGVsX2RldGVjdF9hbmRfY2xlYXJfbWlzc2VkX2lu dGVycnVwdHMoZmQpOwogCWlndF9mb3JrKGNoaWxkLCBudW1fY2hpbGRyZW4pIHsKQEAgLTExMDEs NyArMTExOCw3IEBAIHByZWVtcHQoaW50IGZkLCB1bnNpZ25lZCByaW5nLCBpbnQgbnVtX2NoaWxk cmVuLCBpbnQgdGltZW91dCkKIAkJZXhlY2J1Zi5idWZmZXJzX3B0ciA9IHRvX3VzZXJfcG9pbnRl cigmb2JqZWN0KTsKIAkJZXhlY2J1Zi5idWZmZXJfY291bnQgPSAxOwogCQlleGVjYnVmLmZsYWdz ID0gaWVkX2ZsYWdzKCZpZWQsIGNoaWxkKTsKLQkJZXhlY2J1Zi5yc3ZkMSA9IGN0eFsxXTsKKwkJ ZXhlY2J1Zi5yc3ZkMSA9IHRtcF9jdHhbMV0tPmlkOwogCQlnZW1fZXhlY2J1ZihmZCwgJmV4ZWNi dWYpOwogCQlnZW1fc3luYyhmZCwgb2JqZWN0LmhhbmRsZSk7CiAKQEAgLTExMTAsNyArMTEyNyw3 IEBAIHByZWVtcHQoaW50IGZkLCB1bnNpZ25lZCByaW5nLCBpbnQgbnVtX2NoaWxkcmVuLCBpbnQg dGltZW91dCkKIAkJZG8gewogCQkJaWd0X3NwaW5fdCAqc3BpbiA9CiAJCQkJX19pZ3Rfc3Bpbl9u ZXcoZmQsCi0JCQkJCSAgICAgICAuY3R4X2lkID0gY3R4WzBdLAorCQkJCQkgICAgICAgLmN0eCA9 IHRtcF9jdHhbMF0sCiAJCQkJCSAgICAgICAuZW5naW5lID0gZXhlY2J1Zi5mbGFncyk7CiAKIAkJ CWRvIHsKQEAgLTExMjksOCArMTE0Niw4IEBAIHByZWVtcHQoaW50IGZkLCB1bnNpZ25lZCByaW5n LCBpbnQgbnVtX2NoaWxkcmVuLCBpbnQgdGltZW91dCkKIAlpZ3Rfd2FpdGNoaWxkcmVuX3RpbWVv dXQodGltZW91dCsxMCwgTlVMTCk7CiAJaWd0X2Fzc2VydF9lcShpbnRlbF9kZXRlY3RfYW5kX2Ns ZWFyX21pc3NlZF9pbnRlcnJ1cHRzKGZkKSwgMCk7CiAKLQlnZW1fY29udGV4dF9kZXN0cm95KGZk LCBjdHhbMV0pOwotCWdlbV9jb250ZXh0X2Rlc3Ryb3koZmQsIGN0eFswXSk7CisJaW50ZWxfY3R4 X2Rlc3Ryb3koZmQsIHRtcF9jdHhbMV0pOworCWludGVsX2N0eF9kZXN0cm95KGZkLCB0bXBfY3R4 WzBdKTsKIH0KIAogaWd0X21haW4KQEAgLTExMzgsNyArMTE1NSw3IEBAIGlndF9tYWluCiAJY29u c3QgaW50IG5jcHVzID0gc3lzY29uZihfU0NfTlBST0NFU1NPUlNfT05MTik7CiAJY29uc3Qgc3Ry dWN0IHsKIAkJY29uc3QgY2hhciAqbmFtZTsKLQkJdm9pZCAoKmZ1bmMpKGludCBmZCwgdW5zaWdu ZWQgaW50IGVuZ2luZSwKKwkJdm9pZCAoKmZ1bmMpKGludCBmZCwgY29uc3QgaW50ZWxfY3R4X3Qg KmN0eCwgdW5zaWduZWQgaW50IGVuZ2luZSwKIAkJCSAgICAgaW50IG51bV9jaGlsZHJlbiwgaW50 IHRpbWVvdXQpOwogCQlpbnQgbnVtX2NoaWxkcmVuOwogCQlpbnQgdGltZW91dDsKQEAgLTExNzMs NiArMTE5MCw3IEBAIGlndF9tYWluCiAjZGVmaW5lIGZvcl9lYWNoX3Rlc3QodCwgVCkgZm9yKHR5 cGVvZigqVCkgKnQgPSBUOyB0LT5uYW1lOyB0KyspCiAKIAljb25zdCBzdHJ1Y3QgaW50ZWxfZXhl Y3V0aW9uX2VuZ2luZTIgKmU7CisJY29uc3QgaW50ZWxfY3R4X3QgKmN0eDsKIAlpbnQgZmQgPSAt MTsKIAogCWlndF9maXh0dXJlIHsKQEAgLTExODAsNiArMTE5OCw3IEBAIGlndF9tYWluCiAJCWln dF9yZXF1aXJlX2dlbShmZCk7CiAJCWdlbV9zdWJtaXNzaW9uX3ByaW50X21ldGhvZChmZCk7CiAJ CWdlbV9zY2hlZHVsZXJfcHJpbnRfY2FwYWJpbGl0eShmZCk7CisJCWN0eCA9IGludGVsX2N0eF9j cmVhdGVfYWxsX3BoeXNpY2FsKGZkKTsKIAogCQlpZ3RfZm9ya19oYW5nX2RldGVjdG9yKGZkKTsK IAl9CkBAIC0xMTg5LDcgKzEyMDgsNyBAQCBpZ3RfbWFpbgogCQlpZ3Rfc3VidGVzdF93aXRoX2R5 bmFtaWNfZigiJXMiLCB0LT5uYW1lKSB7CiAJCQlmb3IgKGNvbnN0IHN0cnVjdCBpbnRlbF9leGVj dXRpb25fcmluZyAqbCA9IGludGVsX2V4ZWN1dGlvbl9yaW5nczsgbC0+bmFtZTsgbCsrKSB7CiAJ CQkJaWd0X2R5bmFtaWNfZigiJXMiLCBsLT5uYW1lKSB7Ci0JCQkJCXQtPmZ1bmMoZmQsIGViX3Jp bmcobCksCisJCQkJCXQtPmZ1bmMoZmQsIGludGVsX2N0eF8wKGZkKSwgZWJfcmluZyhsKSwKIAkJ CQkJCXQtPm51bV9jaGlsZHJlbiwgdC0+dGltZW91dCk7CiAJCQkJfQogCQkJfQpAQCAtMTE5Nywz MCArMTIxNiwzMCBAQCBpZ3RfbWFpbgogCX0KIAogCWlndF9zdWJ0ZXN0KCJiYXNpYy1hbGwiKQot CQlzeW5jX2FsbChmZCwgMSwgMik7CisJCXN5bmNfYWxsKGZkLCBjdHgsIDEsIDIpOwogCWlndF9z dWJ0ZXN0KCJiYXNpYy1zdG9yZS1hbGwiKQotCQlzdG9yZV9hbGwoZmQsIDEsIDIpOworCQlzdG9y ZV9hbGwoZmQsIGN0eCwgMSwgMik7CiAKIAlpZ3Rfc3VidGVzdCgiYWxsIikKLQkJc3luY19hbGwo ZmQsIDEsIDIwKTsKKwkJc3luY19hbGwoZmQsIGN0eCwgMSwgMjApOwogCWlndF9zdWJ0ZXN0KCJz dG9yZS1hbGwiKQotCQlzdG9yZV9hbGwoZmQsIDEsIDIwKTsKKwkJc3RvcmVfYWxsKGZkLCBjdHgs IDEsIDIwKTsKIAlpZ3Rfc3VidGVzdCgiZm9ya2VkLWFsbCIpCi0JCXN5bmNfYWxsKGZkLCBuY3B1 cywgMjApOworCQlzeW5jX2FsbChmZCwgY3R4LCBuY3B1cywgMjApOwogCWlndF9zdWJ0ZXN0KCJm b3JrZWQtc3RvcmUtYWxsIikKLQkJc3RvcmVfYWxsKGZkLCBuY3B1cywgMjApOworCQlzdG9yZV9h bGwoZmQsIGN0eCwgbmNwdXMsIDIwKTsKIAogCWZvcl9lYWNoX3Rlc3QodCwgYWxsKSB7CiAJCWln dF9zdWJ0ZXN0X2YoIiVzIiwgdC0+bmFtZSkKLQkJCXQtPmZ1bmMoZmQsIEFMTF9FTkdJTkVTLCB0 LT5udW1fY2hpbGRyZW4sIHQtPnRpbWVvdXQpOworCQkJdC0+ZnVuYyhmZCwgY3R4LCBBTExfRU5H SU5FUywgdC0+bnVtX2NoaWxkcmVuLCB0LT50aW1lb3V0KTsKIAl9CiAKIAkvKiBOZXcgd2F5IG9m IHNlbGVjdGluZyBlbmdpbmVzLiAqLwogCWZvcl9lYWNoX3Rlc3QodCwgaW5kaXZpZHVhbCkgewog CQlpZ3Rfc3VidGVzdF93aXRoX2R5bmFtaWNfZigiJXMiLCB0LT5uYW1lKSB7Ci0JCQlfX2Zvcl9l YWNoX3BoeXNpY2FsX2VuZ2luZShmZCwgZSkgeworCQkJZm9yX2VhY2hfY3R4X2VuZ2luZShmZCwg Y3R4LCBlKSB7CiAJCQkJaWd0X2R5bmFtaWNfZigiJXMiLCBlLT5uYW1lKSB7Ci0JCQkJCXQtPmZ1 bmMoZmQsIGUtPmZsYWdzLAorCQkJCQl0LT5mdW5jKGZkLCBjdHgsIGUtPmZsYWdzLAogCQkJCQkJ dC0+bnVtX2NoaWxkcmVuLCB0LT50aW1lb3V0KTsKIAkJCQl9CiAJCQl9CkBAIC0xMjM1LDE3ICsx MjU0LDE4IEBAIGlndF9tYWluCiAJCX0KIAogCQlpZ3Rfc3VidGVzdCgicHJlZW1wdC1hbGwiKQot CQkJcHJlZW1wdChmZCwgQUxMX0VOR0lORVMsIDEsIDIwKTsKKwkJCXByZWVtcHQoZmQsIGN0eCwg QUxMX0VOR0lORVMsIDEsIDIwKTsKIAkJaWd0X3N1YnRlc3Rfd2l0aF9keW5hbWljKCJwcmVlbXB0 IikgewotCQkJX19mb3JfZWFjaF9waHlzaWNhbF9lbmdpbmUoZmQsIGUpIHsKKwkJCWZvcl9lYWNo X2N0eF9lbmdpbmUoZmQsIGN0eCwgZSkgewogCQkJCWlndF9keW5hbWljX2YoIiVzIiwgZS0+bmFt ZSkKLQkJCQkJcHJlZW1wdChmZCwgZS0+ZmxhZ3MsIG5jcHVzLCAyMCk7CisJCQkJCXByZWVtcHQo ZmQsIGN0eCwgZS0+ZmxhZ3MsIG5jcHVzLCAyMCk7CiAJCQl9CiAJCX0KIAl9CiAKIAlpZ3RfZml4 dHVyZSB7CiAJCWlndF9zdG9wX2hhbmdfZGV0ZWN0b3IoKTsKKwkJaW50ZWxfY3R4X2Rlc3Ryb3ko ZmQsIGN0eCk7CiAJCWNsb3NlKGZkKTsKIAl9CiB9Ci0tIAoyLjMxLjEKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0Cmln dC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaWd0LWRldgo=