From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5674E6E862 for ; Fri, 21 Jun 2019 10:02:16 +0000 (UTC) From: Ramalingam C Date: Fri, 21 Jun 2019 15:33:43 +0530 Message-Id: <20190621100345.20019-42-ramalingam.c@intel.com> In-Reply-To: <20190621100345.20019-1-ramalingam.c@intel.com> References: <20190621100345.20019-1-ramalingam.c@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [RFC v2 41/43] tests/i915/gem_ctx_shared: use the gem_engine_topology library 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, tvrtko.ursulin@linux.intel.com, andi@etezian.org List-ID: UmVwbGFjZSB0aGUgbGVnYWN5IGZvcl9lYWNoX2VuZ2luZSogZGVmaW5lcyB3aXRoIHRoZSBvbmVz CmltcGxlbWVudGVkIGluIHRoZSBnZW1fZW5naW5lX3RvcG9sb2d5IGxpYnJhcnkuCgpTaWduZWQt b2ZmLWJ5OiBSYW1hbGluZ2FtIEMgPHJhbWFsaW5nYW0uY0BpbnRlbC5jb20+Ci0tLQogdGVzdHMv aTkxNS9nZW1fY3R4X3NoYXJlZC5jIHwgMTA1ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t LS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDUzIGluc2VydGlvbnMoKyksIDUyIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3Rlc3RzL2k5MTUvZ2VtX2N0eF9zaGFyZWQuYyBiL3Rlc3RzL2k5MTUv Z2VtX2N0eF9zaGFyZWQuYwppbmRleCA0YjEwMjBiOTZmZWQuLjMyNDk1OTkzOWZkNCAxMDA2NDQK LS0tIGEvdGVzdHMvaTkxNS9nZW1fY3R4X3NoYXJlZC5jCisrKyBiL3Rlc3RzL2k5MTUvZ2VtX2N0 eF9zaGFyZWQuYwpAQCAtMTgxLDcgKzE4MSw3IEBAIHN0YXRpYyB2b2lkIGV4aGF1c3Rfc2hhcmVk X2d0dChpbnQgaTkxNSwgdW5zaWduZWQgaW50IGZsYWdzKQogCWlndF93YWl0Y2hpbGRyZW4oKTsK IH0KIAotc3RhdGljIHZvaWQgZXhlY19zaGFyZWRfZ3R0KGludCBpOTE1LCB1bnNpZ25lZCBpbnQg cmluZykKK3N0YXRpYyB2b2lkIGV4ZWNfc2hhcmVkX2d0dChpbnQgaTkxNSwgY29uc3Qgc3RydWN0 IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICplKQogewogCWNvbnN0IGludCBnZW4gPSBpbnRlbF9n ZW4oaW50ZWxfZ2V0X2RybV9kZXZpZChpOTE1KSk7CiAJY29uc3QgdWludDMyX3QgYmJlID0gTUlf QkFUQ0hfQlVGRkVSX0VORDsKQEAgLTE4OSwxNCArMTg5LDEzIEBAIHN0YXRpYyB2b2lkIGV4ZWNf c2hhcmVkX2d0dChpbnQgaTkxNSwgdW5zaWduZWQgaW50IHJpbmcpCiAJc3RydWN0IGRybV9pOTE1 X2dlbV9leGVjYnVmZmVyMiBleGVjYnVmID0gewogCQkuYnVmZmVyc19wdHIgPSB0b191c2VyX3Bv aW50ZXIoJm9iaiksCiAJCS5idWZmZXJfY291bnQgPSAxLAotCQkuZmxhZ3MgPSByaW5nLAorCQku ZmxhZ3MgPSBlLT5mbGFncywKIAl9OwogCXVpbnQzMl90IHNjcmF0Y2gsICpzOwogCXVpbnQzMl90 IGJhdGNoWzE2XTsKIAlpbnQgaTsKIAotCWdlbV9yZXF1aXJlX3JpbmcoaTkxNSwgcmluZyk7Ci0J aWd0X3JlcXVpcmUoZ2VtX2Nhbl9zdG9yZV9kd29yZChpOTE1LCByaW5nKSk7CisJaWd0X3JlcXVp cmUoZ2VtX2NsYXNzX2Nhbl9zdG9yZV9kd29yZChpOTE1LCBlLT5jbGFzcykpOwogCiAJLyogRmlu ZCBhIGhvbGUgYmlnIGVub3VnaCBmb3IgYm90aCBvYmplY3RzIGxhdGVyICovCiAJc2NyYXRjaCA9 IGdlbV9jcmVhdGUoaTkxNSwgMTYzODQpOwpAQCAtMzEwLDcgKzMwOSw3IEBAIHN0YXRpYyB2b2lk IHNpbmdsZV90aW1lbGluZShpbnQgaTkxNSkKIAlzdHJ1Y3Qgc3luY19maWxlX2luZm8gc3luY19m aWxlX2luZm8gPSB7CiAJCS5udW1fZmVuY2VzID0gMSwKIAl9OwotCXVuc2lnbmVkIGludCBlbmdp bmU7CisJY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICplbmdpbmU7CiAJaW50 IG47CiAKIAlpZ3RfcmVxdWlyZShoYXNfc2luZ2xlX3RpbWVsaW5lKGk5MTUpKTsKQEAgLTMzMSw3 ICszMzAsNyBAQCBzdGF0aWMgdm9pZCBzaW5nbGVfdGltZWxpbmUoaW50IGk5MTUpCiAJCQkJICBJ OTE1X0NPTlRFWFRfQ1JFQVRFX0ZMQUdTX1NJTkdMRV9USU1FTElORSk7CiAJZXhlY2J1Zi5mbGFn cyA9IEk5MTVfRVhFQ19GRU5DRV9PVVQ7CiAJbiA9IDA7Ci0JZm9yX2VhY2hfZW5naW5lKGk5MTUs IGVuZ2luZSkgeworCWZvcl9lYWNoX2NvbnRleHRfZW5naW5lKGk5MTUsIDAsIGVuZ2luZSkgewog CQlnZW1fZXhlY2J1Zl93cihpOTE1LCAmZXhlY2J1Zik7CiAJCXN5bmNfZmlsZV9pbmZvLnN5bmNf ZmVuY2VfaW5mbyA9IHRvX3VzZXJfcG9pbnRlcigmcmluZ3Nbbl0pOwogCQlkb19pb2N0bChleGVj YnVmLnJzdmQyID4+IDMyLCBTWU5DX0lPQ19GSUxFX0lORk8sICZzeW5jX2ZpbGVfaW5mbyk7CkBA IC0zNTAsMTMgKzM0OSwxNCBAQCBzdGF0aWMgdm9pZCBzaW5nbGVfdGltZWxpbmUoaW50IGk5MTUp CiAJfQogfQogCi1zdGF0aWMgdm9pZCBleGVjX3NpbmdsZV90aW1lbGluZShpbnQgaTkxNSwgdW5z aWduZWQgaW50IGVuZ2luZSkKK3N0YXRpYyB2b2lkIGV4ZWNfc2luZ2xlX3RpbWVsaW5lKGludCBp OTE1LAorCQkJCSBjb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmVuZ2luZSkK IHsKLQl1bnNpZ25lZCBpbnQgb3RoZXI7CisJY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9l bmdpbmUyICpvdGhlcjsKIAlpZ3Rfc3Bpbl90ICpzcGluOwogCXVpbnQzMl90IGN0eDsKIAotCWln dF9yZXF1aXJlKGdlbV9yaW5nX2hhc19waHlzaWNhbF9lbmdpbmUoaTkxNSwgZW5naW5lKSk7CisJ aWd0X3JlcXVpcmUoZ2VtX3JpbmdfaGFzX3BoeXNpY2FsX2VuZ2luZShpOTE1LCBlbmdpbmUtPmZs YWdzKSk7CiAJaWd0X3JlcXVpcmUoaGFzX3NpbmdsZV90aW1lbGluZShpOTE1KSk7CiAKIAkvKgpA QCAtMzY1LDI0ICszNjUsMjQgQEAgc3RhdGljIHZvaWQgZXhlY19zaW5nbGVfdGltZWxpbmUoaW50 IGk5MTUsIHVuc2lnbmVkIGludCBlbmdpbmUpCiAJICovCiAJY3R4ID0gMDsKIAlzcGluID0gTlVM TDsKLQlmb3JfZWFjaF9waHlzaWNhbF9lbmdpbmUoaTkxNSwgb3RoZXIpIHsKKwlfX2Zvcl9lYWNo X3BoeXNpY2FsX2VuZ2luZShpOTE1LCBvdGhlcikgewogCQlpZiAob3RoZXIgPT0gZW5naW5lKQog CQkJY29udGludWU7CiAKIAkJaWYgKHNwaW4gPT0gTlVMTCkgewotCQkJc3BpbiA9IF9faWd0X3Nw aW5fbmV3KGk5MTUsIC5jdHggPSBjdHgsIC5lbmdpbmUgPSBvdGhlcik7CisJCQlzcGluID0gX19p Z3Rfc3Bpbl9uZXcoaTkxNSwgLmN0eCA9IGN0eCwgLmVuZ2luZSA9IG90aGVyLT5mbGFncyk7CiAJ CX0gZWxzZSB7CiAJCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIyIGV4ZWNidWYgPSB7 CiAJCQkJLmJ1ZmZlcnNfcHRyID0gc3Bpbi0+ZXhlY2J1Zi5idWZmZXJzX3B0ciwKIAkJCQkuYnVm ZmVyX2NvdW50ID0gc3Bpbi0+ZXhlY2J1Zi5idWZmZXJfY291bnQsCi0JCQkJLmZsYWdzID0gb3Ro ZXIsCisJCQkJLmZsYWdzID0gb3RoZXItPmZsYWdzLAogCQkJCS5yc3ZkMSA9IGN0eCwKIAkJCX07 CiAJCQlnZW1fZXhlY2J1ZihpOTE1LCAmZXhlY2J1Zik7CiAJCX0KIAl9CiAJaWd0X3JlcXVpcmUo c3Bpbik7Ci0JaWd0X2Fzc2VydF9lcShub3Bfc3luYyhpOTE1LCBjdHgsIGVuZ2luZSwgTlNFQ19Q RVJfU0VDKSwgMCk7CisJaWd0X2Fzc2VydF9lcShub3Bfc3luYyhpOTE1LCBjdHgsIGVuZ2luZS0+ ZmxhZ3MsIE5TRUNfUEVSX1NFQyksIDApOwogCWlndF9zcGluX2ZyZWUoaTkxNSwgc3Bpbik7CiAK IAkvKgpAQCAtMzkzLDI0ICszOTMsMjQgQEAgc3RhdGljIHZvaWQgZXhlY19zaW5nbGVfdGltZWxp bmUoaW50IGk5MTUsIHVuc2lnbmVkIGludCBlbmdpbmUpCiAJY3R4ID0gZ2VtX2NvbnRleHRfY2xv bmUoaTkxNSwgMCwgMCwKIAkJCQlJOTE1X0NPTlRFWFRfQ1JFQVRFX0ZMQUdTX1NJTkdMRV9USU1F TElORSk7CiAJc3BpbiA9IE5VTEw7Ci0JZm9yX2VhY2hfcGh5c2ljYWxfZW5naW5lKGk5MTUsIG90 aGVyKSB7CisJX19mb3JfZWFjaF9waHlzaWNhbF9lbmdpbmUoaTkxNSwgb3RoZXIpIHsKIAkJaWYg KG90aGVyID09IGVuZ2luZSkKIAkJCWNvbnRpbnVlOwogCiAJCWlmIChzcGluID09IE5VTEwpIHsK LQkJCXNwaW4gPSBfX2lndF9zcGluX25ldyhpOTE1LCAuY3R4ID0gY3R4LCAuZW5naW5lID0gb3Ro ZXIpOworCQkJc3BpbiA9IF9faWd0X3NwaW5fbmV3KGk5MTUsIC5jdHggPSBjdHgsIC5lbmdpbmUg PSBvdGhlci0+ZmxhZ3MpOwogCQl9IGVsc2UgewogCQkJc3RydWN0IGRybV9pOTE1X2dlbV9leGVj YnVmZmVyMiBleGVjYnVmID0gewogCQkJCS5idWZmZXJzX3B0ciA9IHNwaW4tPmV4ZWNidWYuYnVm ZmVyc19wdHIsCiAJCQkJLmJ1ZmZlcl9jb3VudCA9IHNwaW4tPmV4ZWNidWYuYnVmZmVyX2NvdW50 LAotCQkJCS5mbGFncyA9IG90aGVyLAorCQkJCS5mbGFncyA9IG90aGVyLT5mbGFncywKIAkJCQku cnN2ZDEgPSBjdHgsCiAJCQl9OwogCQkJZ2VtX2V4ZWNidWYoaTkxNSwgJmV4ZWNidWYpOwogCQl9 CiAJfQogCWlndF9hc3NlcnQoc3Bpbik7Ci0JaWd0X2Fzc2VydF9lcShub3Bfc3luYyhpOTE1LCBj dHgsIGVuZ2luZSwgTlNFQ19QRVJfU0VDKSwgLUVUSU1FKTsKKwlpZ3RfYXNzZXJ0X2VxKG5vcF9z eW5jKGk5MTUsIGN0eCwgZW5naW5lLT5mbGFncywgTlNFQ19QRVJfU0VDKSwgLUVUSU1FKTsKIAlp Z3Rfc3Bpbl9mcmVlKGk5MTUsIHNwaW4pOwogfQogCkBAIC01NDIsNyArNTQyLDggQEAgc3RhdGlj IHVpbnQzMl90IHN0b3JlX3RpbWVzdGFtcChpbnQgaTkxNSwKIAlyZXR1cm4gb2JqLmhhbmRsZTsK IH0KIAotc3RhdGljIHZvaWQgaW5kZXBlbmRlbnQoaW50IGk5MTUsIHVuc2lnbmVkIHJpbmcsIHVu c2lnbmVkIGZsYWdzKQorc3RhdGljIHZvaWQgaW5kZXBlbmRlbnQoaW50IGk5MTUsIGNvbnN0IHN0 cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiAqZSwKKwkJCXVuc2lnbmVkIGZsYWdzKQogewog CWNvbnN0IGludCBUSU1FU1RBTVAgPSAxMDIzOwogCXVpbnQzMl90IGhhbmRsZVtBUlJBWV9TSVpF KHByaW9yaXRpZXMpXTsKQEAgLTU1MCw3ICs1NTEsNyBAQCBzdGF0aWMgdm9pZCBpbmRlcGVuZGVu dChpbnQgaTkxNSwgdW5zaWduZWQgcmluZywgdW5zaWduZWQgZmxhZ3MpCiAJdW5zaWduZWQgaW50 IG1taW9fYmFzZTsKIAogCS8qIFhYWCBpOTE1X3F1ZXJ5KCkhICovCi0Jc3dpdGNoIChyaW5nKSB7 CisJc3dpdGNoIChlLT5mbGFncykgewogCWNhc2UgSTkxNV9FWEVDX0RFRkFVTFQ6CiAJY2FzZSBJ OTE1X0VYRUNfUkVOREVSOgogCQltbWlvX2Jhc2UgPSAweDIwMDA7CkBAIC01ODAsNyArNTgxLDcg QEAgc3RhdGljIHZvaWQgaW5kZXBlbmRlbnQoaW50IGk5MTUsIHVuc2lnbmVkIHJpbmcsIHVuc2ln bmVkIGZsYWdzKQogCWZvciAoaW50IG4gPSAwOyBuIDwgQVJSQVlfU0laRShzcGluKTsgbisrKSB7 CiAJCWNvbnN0IHN0cnVjdCBpZ3Rfc3Bpbl9mYWN0b3J5IG9wdHMgPSB7CiAJCQkuY3R4ID0gY3Jl YXRlX2hpZ2hlc3RfcHJpb3JpdHkoaTkxNSksCi0JCQkuZW5naW5lID0gcmluZywKKwkJCS5lbmdp bmUgPSBlLT5mbGFncywKIAkJfTsKIAkJc3BpbltuXSA9IF9faWd0X3NwaW5fZmFjdG9yeShpOTE1 LCAmb3B0cyk7CiAJCWdlbV9jb250ZXh0X2Rlc3Ryb3koaTkxNSwgb3B0cy5jdHgpOwpAQCAtNTg5 LDcgKzU5MCw3IEBAIHN0YXRpYyB2b2lkIGluZGVwZW5kZW50KGludCBpOTE1LCB1bnNpZ25lZCBy aW5nLCB1bnNpZ25lZCBmbGFncykKIAlmb3IgKGludCBpID0gMDsgaSA8IEFSUkFZX1NJWkUocHJp b3JpdGllcyk7IGkrKykgewogCQl1aW50MzJfdCBjdHggPSBnZW1fcXVldWVfY3JlYXRlKGk5MTUp OwogCQlnZW1fY29udGV4dF9zZXRfcHJpb3JpdHkoaTkxNSwgY3R4LCBwcmlvcml0aWVzW2ldKTsK LQkJaGFuZGxlW2ldID0gc3RvcmVfdGltZXN0YW1wKGk5MTUsIGN0eCwgcmluZywgbW1pb19iYXNl LCBUSU1FU1RBTVApOworCQloYW5kbGVbaV0gPSBzdG9yZV90aW1lc3RhbXAoaTkxNSwgY3R4LCBl LT5mbGFncywgbW1pb19iYXNlLCBUSU1FU1RBTVApOwogCQlnZW1fY29udGV4dF9kZXN0cm95KGk5 MTUsIGN0eCk7CiAJfQogCkBAIC02MTQsNyArNjE1LDggQEAgc3RhdGljIHZvaWQgaW5kZXBlbmRl bnQoaW50IGk5MTUsIHVuc2lnbmVkIHJpbmcsIHVuc2lnbmVkIGZsYWdzKQogCWlndF9hc3NlcnQo KGludDMyX3QpKGhhbmRsZVtISV0gLSBoYW5kbGVbTE9dKSA8IDApOwogfQogCi1zdGF0aWMgdm9p ZCByZW9yZGVyKGludCBpOTE1LCB1bnNpZ25lZCByaW5nLCB1bnNpZ25lZCBmbGFncykKK3N0YXRp YyB2b2lkIHJlb3JkZXIoaW50IGk5MTUsIGNvbnN0IHN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5n aW5lMiAqZSwKKwkJICAgIHVuc2lnbmVkIGZsYWdzKQogI2RlZmluZSBFUVVBTCAxCiB7CiAJSUdU X0NPUktfSEFORExFKGNvcmspOwpAQCAtNjM1LDEwICs2MzcsMTAgQEAgc3RhdGljIHZvaWQgcmVv cmRlcihpbnQgaTkxNSwgdW5zaWduZWQgcmluZywgdW5zaWduZWQgZmxhZ3MpCiAJLyogV2UgZXhw ZWN0IHRoZSBoaWdoIHByaW9yaXR5IGNvbnRleHQgdG8gYmUgZXhlY3V0ZWQgZmlyc3QsIGFuZAog CSAqIHNvIHRoZSBmaW5hbCByZXN1bHQgd2lsbCBiZSB2YWx1ZSBmcm9tIHRoZSBsb3cgcHJpb3Jp dHkgY29udGV4dC4KIAkgKi8KLQlzdG9yZV9kd29yZChpOTE1LCBjdHhbTE9dLCByaW5nLCBzY3Jh dGNoLCAwLCBjdHhbTE9dLCBwbHVnLCAwKTsKLQlzdG9yZV9kd29yZChpOTE1LCBjdHhbSEldLCBy aW5nLCBzY3JhdGNoLCAwLCBjdHhbSEldLCBwbHVnLCAwKTsKKwlzdG9yZV9kd29yZChpOTE1LCBj dHhbTE9dLCBlLT5mbGFncywgc2NyYXRjaCwgMCwgY3R4W0xPXSwgcGx1ZywgMCk7CisJc3RvcmVf ZHdvcmQoaTkxNSwgY3R4W0hJXSwgZS0+ZmxhZ3MsIHNjcmF0Y2gsIDAsIGN0eFtISV0sIHBsdWcs IDApOwogCi0JdW5wbHVnX3Nob3dfcXVldWUoaTkxNSwgJmNvcmssIHJpbmcpOworCXVucGx1Z19z aG93X3F1ZXVlKGk5MTUsICZjb3JrLCBlLT5mbGFncyk7CiAJZ2VtX2Nsb3NlKGk5MTUsIHBsdWcp OwogCiAJZ2VtX2NvbnRleHRfZGVzdHJveShpOTE1LCBjdHhbTE9dKTsKQEAgLTY1Niw3ICs2NTgs NyBAQCBzdGF0aWMgdm9pZCByZW9yZGVyKGludCBpOTE1LCB1bnNpZ25lZCByaW5nLCB1bnNpZ25l ZCBmbGFncykKIAltdW5tYXAocHRyLCA0MDk2KTsKIH0KIAotc3RhdGljIHZvaWQgcHJvbW90aW9u KGludCBpOTE1LCB1bnNpZ25lZCByaW5nKQorc3RhdGljIHZvaWQgcHJvbW90aW9uKGludCBpOTE1 LCBjb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUpCiB7CiAJSUdUX0NPUktf SEFORExFKGNvcmspOwogCXVpbnQzMl90IHJlc3VsdCwgZGVwOwpAQCAtNjgzLDE2ICs2ODUsMTYg QEAgc3RhdGljIHZvaWQgcHJvbW90aW9uKGludCBpOTE1LCB1bnNpZ25lZCByaW5nKQogCSAqIGZp Zm8gd291bGQgYmUgTk9JU0UsIExPLCBISS4KIAkgKiBzdHJpY3QgcHJpb3JpdHkgd291bGQgYmUg IEhJLCBOT0lTRSwgTE8KIAkgKi8KLQlzdG9yZV9kd29yZChpOTE1LCBjdHhbTk9JU0VdLCByaW5n LCByZXN1bHQsIDAsIGN0eFtOT0lTRV0sIHBsdWcsIDApOwotCXN0b3JlX2R3b3JkKGk5MTUsIGN0 eFtMT10sIHJpbmcsIHJlc3VsdCwgMCwgY3R4W0xPXSwgcGx1ZywgMCk7CisJc3RvcmVfZHdvcmQo aTkxNSwgY3R4W05PSVNFXSwgZS0+ZmxhZ3MsIHJlc3VsdCwgMCwgY3R4W05PSVNFXSwgcGx1Zywg MCk7CisJc3RvcmVfZHdvcmQoaTkxNSwgY3R4W0xPXSwgZS0+ZmxhZ3MsIHJlc3VsdCwgMCwgY3R4 W0xPXSwgcGx1ZywgMCk7CiAKIAkvKiBsaW5rIExPIDwtPiBISSB2aWEgYSBkZXBlbmRlbmN5IG9u IGFub3RoZXIgYnVmZmVyICovCi0Jc3RvcmVfZHdvcmQoaTkxNSwgY3R4W0xPXSwgcmluZywgZGVw LCAwLCBjdHhbTE9dLCAwLCBJOTE1X0dFTV9ET01BSU5fSU5TVFJVQ1RJT04pOwotCXN0b3JlX2R3 b3JkKGk5MTUsIGN0eFtISV0sIHJpbmcsIGRlcCwgMCwgY3R4W0hJXSwgMCwgMCk7CisJc3RvcmVf ZHdvcmQoaTkxNSwgY3R4W0xPXSwgZS0+ZmxhZ3MsIGRlcCwgMCwgY3R4W0xPXSwgMCwgSTkxNV9H RU1fRE9NQUlOX0lOU1RSVUNUSU9OKTsKKwlzdG9yZV9kd29yZChpOTE1LCBjdHhbSEldLCBlLT5m bGFncywgZGVwLCAwLCBjdHhbSEldLCAwLCAwKTsKIAotCXN0b3JlX2R3b3JkKGk5MTUsIGN0eFtI SV0sIHJpbmcsIHJlc3VsdCwgMCwgY3R4W0hJXSwgMCwgMCk7CisJc3RvcmVfZHdvcmQoaTkxNSwg Y3R4W0hJXSwgZS0+ZmxhZ3MsIHJlc3VsdCwgMCwgY3R4W0hJXSwgMCwgMCk7CiAKLQl1bnBsdWdf c2hvd19xdWV1ZShpOTE1LCAmY29yaywgcmluZyk7CisJdW5wbHVnX3Nob3dfcXVldWUoaTkxNSwg JmNvcmssIGUtPmZsYWdzKTsKIAlnZW1fY2xvc2UoaTkxNSwgcGx1Zyk7CiAKIAlnZW1fY29udGV4 dF9kZXN0cm95KGk5MTUsIGN0eFtOT0lTRV0pOwpAQCAtNzE2LDE4ICs3MTgsMTggQEAgc3RhdGlj IHZvaWQgcHJvbW90aW9uKGludCBpOTE1LCB1bnNpZ25lZCByaW5nKQogCW11bm1hcChwdHIsIDQw OTYpOwogfQogCi1zdGF0aWMgdm9pZCBzbW9rZXRlc3QoaW50IGk5MTUsIHVuc2lnbmVkIHJpbmcs IHVuc2lnbmVkIHRpbWVvdXQpCitzdGF0aWMgdm9pZCBzbW9rZXRlc3QoaW50IGk5MTUsIHVuc2ln bmVkIHRpbWVvdXQpCiB7CiAJY29uc3QgaW50IG5jcHVzID0gc3lzY29uZihfU0NfTlBST0NFU1NP UlNfT05MTik7CiAJdW5zaWduZWQgZW5naW5lc1sxNl07CiAJdW5zaWduZWQgbmVuZ2luZTsKLQl1 bnNpZ25lZCBlbmdpbmU7CisJY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICpl bmdpbmU7CiAJdWludDMyX3Qgc2NyYXRjaDsKIAl1aW50MzJfdCAqcHRyOwogCiAJbmVuZ2luZSA9 IDA7Ci0JZm9yX2VhY2hfcGh5c2ljYWxfZW5naW5lKGk5MTUsIGVuZ2luZSkKLQkJZW5naW5lc1tu ZW5naW5lKytdID0gZW5naW5lOworCV9fZm9yX2VhY2hfcGh5c2ljYWxfZW5naW5lKGk5MTUsIGVu Z2luZSkKKwkJZW5naW5lc1tuZW5naW5lKytdID0gZW5naW5lLT5mbGFnczsKIAlpZ3RfcmVxdWly ZShuZW5naW5lKTsKIAogCXNjcmF0Y2ggPSBnZW1fY3JlYXRlKGk5MTUsIDQwOTYpOwpAQCAtNzQw LDE2ICs3NDIsMTcgQEAgc3RhdGljIHZvaWQgc21va2V0ZXN0KGludCBpOTE1LCB1bnNpZ25lZCBy aW5nLCB1bnNpZ25lZCB0aW1lb3V0KQogCQljdHggPSBnZW1fcXVldWVfY3JlYXRlKGk5MTUpOwog CQlpZ3RfdW50aWxfdGltZW91dCh0aW1lb3V0KSB7CiAJCQlpbnQgcHJpbzsKKwkJCXVuc2lnbmVk IGZsYWdzOwogCiAJCQlwcmlvID0gaGFyc19wZXRydXNrYV9mNTRfMV9yYW5kb21fdW5zYWZlX21h eChNQVhfUFJJTyAtIE1JTl9QUklPKSArIE1JTl9QUklPOwogCQkJZ2VtX2NvbnRleHRfc2V0X3By aW9yaXR5KGk5MTUsIGN0eCwgcHJpbyk7CiAKLQkJCWVuZ2luZSA9IGVuZ2luZXNbaGFyc19wZXRy dXNrYV9mNTRfMV9yYW5kb21fdW5zYWZlX21heChuZW5naW5lKV07Ci0JCQlzdG9yZV9kd29yZChp OTE1LCBjdHgsIGVuZ2luZSwgc2NyYXRjaCwKKwkJCWZsYWdzID0gZW5naW5lc1toYXJzX3BldHJ1 c2thX2Y1NF8xX3JhbmRvbV91bnNhZmVfbWF4KG5lbmdpbmUpXTsKKwkJCXN0b3JlX2R3b3JkKGk5 MTUsIGN0eCwgZmxhZ3MsIHNjcmF0Y2gsCiAJCQkJICAgIDgqY2hpbGQgKyAwLCB+Y2hpbGQsCiAJ CQkJICAgIDAsIDApOwogCQkJZm9yICh1bnNpZ25lZCBpbnQgc3RlcCA9IDA7IHN0ZXAgPCA4OyBz dGVwKyspCi0JCQkJc3RvcmVfZHdvcmQoaTkxNSwgY3R4LCBlbmdpbmUsIHNjcmF0Y2gsCisJCQkJ c3RvcmVfZHdvcmQoaTkxNSwgY3R4LCBmbGFncywgc2NyYXRjaCwKIAkJCQkJICAgIDgqY2hpbGQg KyA0LCBjb3VudCsrLAogCQkJCQkgICAgMCwgMCk7CiAJCX0KQEAgLTc3Nyw3ICs3ODAsNyBAQCBz dGF0aWMgdm9pZCBzbW9rZXRlc3QoaW50IGk5MTUsIHVuc2lnbmVkIHJpbmcsIHVuc2lnbmVkIHRp bWVvdXQpCiAKIGlndF9tYWluCiB7Ci0JY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdp bmUgKmU7CisJY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICplOwogCWludCBp OTE1ID0gLTE7CiAKIAlpZ3RfZml4dHVyZSB7CkBAIC04MDksMTMgKzgxMiwxMiBAQCBpZ3RfbWFp bgogCQlpZ3Rfc3VidGVzdCgiZXhoYXVzdC1zaGFyZWQtZ3R0LWxyYyIpCiAJCQlleGhhdXN0X3No YXJlZF9ndHQoaTkxNSwgRVhIQVVTVF9MUkMpOwogCi0JCWZvciAoZSA9IGludGVsX2V4ZWN1dGlv bl9lbmdpbmVzOyBlLT5uYW1lOyBlKyspIHsKKwkJX19mb3JfZWFjaF9waHlzaWNhbF9lbmdpbmUo aTkxNSwgZSkgewogCQkJaWd0X3N1YnRlc3RfZigiZXhlYy1zaGFyZWQtZ3R0LSVzIiwgZS0+bmFt ZSkKLQkJCQlleGVjX3NoYXJlZF9ndHQoaTkxNSwgZS0+ZXhlY19pZCB8IGUtPmZsYWdzKTsKKwkJ CQlleGVjX3NoYXJlZF9ndHQoaTkxNSwgZSk7CiAKIAkJCWlndF9zdWJ0ZXN0X2YoImV4ZWMtc2lu Z2xlLXRpbWVsaW5lLSVzIiwgZS0+bmFtZSkKLQkJCQlleGVjX3NpbmdsZV90aW1lbGluZShpOTE1 LAotCQkJCQkJICAgICBlLT5leGVjX2lkIHwgZS0+ZmxhZ3MpOworCQkJCWV4ZWNfc2luZ2xlX3Rp bWVsaW5lKGk5MTUsIGUpOwogCiAJCQkvKgogCQkJICogQ2hlY2sgdGhhdCB0aGUgc2hhcmVkIGNv bnRleHRzIG9wZXJhdGUgaW5kZXBlbmRlbnRseSwKQEAgLTgyNiwzMyArODI4LDMyIEBAIGlndF9t YWluCiAJCQkgKi8KIAkJCWlndF9zdWJ0ZXN0X2dyb3VwIHsKIAkJCQlpZ3RfZml4dHVyZSB7Ci0J CQkJCWdlbV9yZXF1aXJlX3JpbmcoaTkxNSwgZS0+ZXhlY19pZCB8IGUtPmZsYWdzKTsKLQkJCQkJ aWd0X3JlcXVpcmUoZ2VtX2Nhbl9zdG9yZV9kd29yZChpOTE1LCBlLT5leGVjX2lkIHwgZS0+Zmxh Z3MpKTsKKwkJCQkJaWd0X3JlcXVpcmUoZ2VtX2NsYXNzX2Nhbl9zdG9yZV9kd29yZChpOTE1LCBl LT5jbGFzcykpOwogCQkJCQlpZ3RfcmVxdWlyZShnZW1fc2NoZWR1bGVyX2VuYWJsZWQoaTkxNSkp OwogCQkJCQlpZ3RfcmVxdWlyZShnZW1fc2NoZWR1bGVyX2hhc19jdHhfcHJpb3JpdHkoaTkxNSkp OwogCQkJCX0KIAogCQkJCWlndF9zdWJ0ZXN0X2YoIlEtaW5kZXBlbmRlbnQtJXMiLCBlLT5uYW1l KQotCQkJCQlpbmRlcGVuZGVudChpOTE1LCBlLT5leGVjX2lkIHwgZS0+ZmxhZ3MsIDApOworCQkJ CQlpbmRlcGVuZGVudChpOTE1LCBlLCAwKTsKIAogCQkJCWlndF9zdWJ0ZXN0X2YoIlEtaW4tb3Jk ZXItJXMiLCBlLT5uYW1lKQotCQkJCQlyZW9yZGVyKGk5MTUsIGUtPmV4ZWNfaWQgfCBlLT5mbGFn cywgRVFVQUwpOworCQkJCQlyZW9yZGVyKGk5MTUsIGUsIEVRVUFMKTsKIAogCQkJCWlndF9zdWJ0 ZXN0X2YoIlEtb3V0LW9yZGVyLSVzIiwgZS0+bmFtZSkKLQkJCQkJcmVvcmRlcihpOTE1LCBlLT5l eGVjX2lkIHwgZS0+ZmxhZ3MsIDApOworCQkJCQlyZW9yZGVyKGk5MTUsIGUsIDApOwogCiAJCQkJ aWd0X3N1YnRlc3RfZigiUS1wcm9tb3Rpb24tJXMiLCBlLT5uYW1lKQotCQkJCQlwcm9tb3Rpb24o aTkxNSwgZS0+ZXhlY19pZCB8IGUtPmZsYWdzKTsKKwkJCQkJcHJvbW90aW9uKGk5MTUsIGUpOwog CiAJCQkJaWd0X3N1YnRlc3RfZigiUS1zbW9rZXRlc3QtJXMiLCBlLT5uYW1lKQotCQkJCQlzbW9r ZXRlc3QoaTkxNSwgZS0+ZXhlY19pZCB8IGUtPmZsYWdzLCA1KTsKKwkJCQkJc21va2V0ZXN0KGk5 MTUsIDUpOwogCQkJfQogCQl9CiAKIAkJaWd0X3N1YnRlc3QoIlEtc21va2V0ZXN0LWFsbCIpIHsK IAkJCWlndF9yZXF1aXJlKGdlbV9zY2hlZHVsZXJfZW5hYmxlZChpOTE1KSk7CiAJCQlpZ3RfcmVx dWlyZShnZW1fc2NoZWR1bGVyX2hhc19jdHhfcHJpb3JpdHkoaTkxNSkpOwotCQkJc21va2V0ZXN0 KGk5MTUsIC0xLCAzMCk7CisJCQlzbW9rZXRlc3QoaTkxNSwgMzApOwogCQl9CiAKIAkJaWd0X2Zp eHR1cmUgewotLSAKMi4xOS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1k ZXY=