From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8F7CC6EB4F for ; Thu, 22 Jul 2021 08:33:12 +0000 (UTC) From: =?UTF-8?q?Zbigniew=20Kempczy=C5=84ski?= Date: Thu, 22 Jul 2021 10:32:03 +0200 Message-Id: <20210722083240.33453-14-zbigniew.kempczynski@intel.com> In-Reply-To: <20210722083240.33453-1-zbigniew.kempczynski@intel.com> References: <20210722083240.33453-1-zbigniew.kempczynski@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 13/50] tests/gem_ctx_isolation: Adopt to use allocator 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 Cc: Petri Latvala List-ID: Rm9yIG5ld2VyIGdlbnMgd2UncmUgbm90IGFibGUgdG8gcmVseSBvbiByZWxvY2F0aW9ucy4gQWRv cHQgdG8gdXNlCm9mZnNldHMgYWNxdWlyZWQgZnJvbSB0aGUgYWxsb2NhdG9yLgoKU2lnbmVkLW9m Zi1ieTogWmJpZ25pZXcgS2VtcGN6ecWEc2tpIDx6Ymlnbmlldy5rZW1wY3p5bnNraUBpbnRlbC5j b20+CkNjOiBQZXRyaSBMYXR2YWxhIDxwZXRyaS5sYXR2YWxhQGludGVsLmNvbT4KQ2M6IEFzaHV0 b3NoIERpeGl0IDxhc2h1dG9zaC5kaXhpdEBpbnRlbC5jb20+Ci0tLQogdGVzdHMvaTkxNS9nZW1f Y3R4X2lzb2xhdGlvbi5jIHwgOTcgKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDczIGluc2VydGlvbnMoKyksIDI0IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3Rlc3RzL2k5MTUvZ2VtX2N0eF9pc29sYXRpb24uYyBiL3Rlc3RzL2k5MTUvZ2VtX2N0 eF9pc29sYXRpb24uYwppbmRleCAyNGRkZGUwYmMuLmM1N2UwNTA3OSAxMDA2NDQKLS0tIGEvdGVz dHMvaTkxNS9nZW1fY3R4X2lzb2xhdGlvbi5jCisrKyBiL3Rlc3RzL2k5MTUvZ2VtX2N0eF9pc29s YXRpb24uYwpAQCAtMjc3LDYgKzI3Nyw3IEBAIHN0YXRpYyB2b2lkIHRtcGxfcmVncyhpbnQgZmQs CiB9CiAKIHN0YXRpYyB1aW50MzJfdCByZWFkX3JlZ3MoaW50IGZkLAorCQkJICB1aW50NjRfdCBh aG5kLAogCQkJICBjb25zdCBpbnRlbF9jdHhfdCAqY3R4LAogCQkJICBjb25zdCBzdHJ1Y3QgaW50 ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUsCiAJCQkgIHVuc2lnbmVkIGludCBmbGFncykKQEAgLTMw NSw2ICszMDYsMTIgQEAgc3RhdGljIHVpbnQzMl90IHJlYWRfcmVncyhpbnQgZmQsCiAJb2JqWzBd LmhhbmRsZSA9IGdlbV9jcmVhdGUoZmQsIHJlZ3Nfc2l6ZSk7CiAJb2JqWzFdLmhhbmRsZSA9IGdl bV9jcmVhdGUoZmQsIGJhdGNoX3NpemUpOwogCW9ialsxXS5yZWxvY3NfcHRyID0gdG9fdXNlcl9w b2ludGVyKHJlbG9jKTsKKwlpZiAoYWhuZCkgeworCQlvYmpbMF0ub2Zmc2V0ID0gZ2V0X29mZnNl dChhaG5kLCBvYmpbMF0uaGFuZGxlLCByZWdzX3NpemUsIDApOworCQlvYmpbMF0uZmxhZ3MgfD0g RVhFQ19PQkpFQ1RfUElOTkVEIHwgRVhFQ19PQkpFQ1RfV1JJVEU7CisJCW9ialsxXS5vZmZzZXQg PSBnZXRfb2Zmc2V0KGFobmQsIG9ialsxXS5oYW5kbGUsIGJhdGNoX3NpemUsIDApOworCQlvYmpb MV0uZmxhZ3MgfD0gRVhFQ19PQkpFQ1RfUElOTkVEOworCX0KIAogCWIgPSBiYXRjaCA9IGdlbV9t bWFwX19jcHUoZmQsIG9ialsxXS5oYW5kbGUsIDAsIGJhdGNoX3NpemUsIFBST1RfV1JJVEUpOwog CWdlbV9zZXRfZG9tYWluKGZkLCBvYmpbMV0uaGFuZGxlLApAQCAtMzM0LDE0ICszNDEsMTQgQEAg c3RhdGljIHVpbnQzMl90IHJlYWRfcmVncyhpbnQgZmQsCiAJCQlyZWxvY1tuXS5kZWx0YSA9IG9m ZnNldDsKIAkJCXJlbG9jW25dLnJlYWRfZG9tYWlucyA9IEk5MTVfR0VNX0RPTUFJTl9SRU5ERVI7 CiAJCQlyZWxvY1tuXS53cml0ZV9kb21haW4gPSBJOTE1X0dFTV9ET01BSU5fUkVOREVSOwotCQkJ KmIrKyA9IG9mZnNldDsKKwkJCSpiKysgPSBvYmpbMF0ub2Zmc2V0ICsgb2Zmc2V0OwogCQkJaWYg KHI2NGIpCi0JCQkJKmIrKyA9IDA7CisJCQkJKmIrKyA9IChvYmpbMF0ub2Zmc2V0ICsgb2Zmc2V0 KSA+PiAzMjsKIAkJCW4rKzsKIAkJfQogCX0KIAotCW9ialsxXS5yZWxvY2F0aW9uX2NvdW50ID0g bjsKKwlvYmpbMV0ucmVsb2NhdGlvbl9jb3VudCA9ICFhaG5kID8gbiA6IDA7CiAJKmIrKyA9IE1J X0JBVENIX0JVRkZFUl9FTkQ7CiAJbXVubWFwKGJhdGNoLCBiYXRjaF9zaXplKTsKIApAQCAtMzUz LDYgKzM2MCw3IEBAIHN0YXRpYyB1aW50MzJfdCByZWFkX3JlZ3MoaW50IGZkLAogCWdlbV9leGVj YnVmKGZkLCAmZXhlY2J1Zik7CiAJZ2VtX2Nsb3NlKGZkLCBvYmpbMV0uaGFuZGxlKTsKIAlmcmVl KHJlbG9jKTsKKwlwdXRfb2Zmc2V0KGFobmQsIG9ialsxXS5oYW5kbGUpOwogCiAJcmV0dXJuIG9i alswXS5oYW5kbGU7CiB9CkBAIC00MTksNiArNDI3LDcgQEAgc3RhdGljIHZvaWQgd3JpdGVfcmVn cyhpbnQgZmQsCiB9CiAKIHN0YXRpYyB2b2lkIHJlc3RvcmVfcmVncyhpbnQgZmQsCisJCQkgdWlu dDY0X3QgYWhuZCwKIAkJCSBjb25zdCBpbnRlbF9jdHhfdCAqY3R4LAogCQkJIGNvbnN0IHN0cnVj dCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiAqZSwKIAkJCSB1bnNpZ25lZCBpbnQgZmxhZ3MsCkBA IC00MzQsNiArNDQzLDcgQEAgc3RhdGljIHZvaWQgcmVzdG9yZV9yZWdzKGludCBmZCwKIAlzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX3JlbG9jYXRpb25fZW50cnkgKnJlbG9jOwogCXVuc2lnbmVkIGludCBi YXRjaF9zaXplLCBuOwogCXVpbnQzMl90ICpiYXRjaCwgKmI7CisJdWludDMyX3QgcmVnc19zaXpl ID0gTlVNX1JFR1MgKiBzaXplb2YodWludDMyX3QpOwogCiAJaWYgKGdlbiA8IDcpIC8qIG5vIExS TSAqLwogCQlyZXR1cm47CkBAIC00NDgsNiArNDU4LDEyIEBAIHN0YXRpYyB2b2lkIHJlc3RvcmVf cmVncyhpbnQgZmQsCiAJb2JqWzBdLmhhbmRsZSA9IHJlZ3M7CiAJb2JqWzFdLmhhbmRsZSA9IGdl bV9jcmVhdGUoZmQsIGJhdGNoX3NpemUpOwogCW9ialsxXS5yZWxvY3NfcHRyID0gdG9fdXNlcl9w b2ludGVyKHJlbG9jKTsKKwlpZiAoYWhuZCkgeworCQlvYmpbMF0ub2Zmc2V0ID0gZ2V0X29mZnNl dChhaG5kLCBvYmpbMF0uaGFuZGxlLCByZWdzX3NpemUsIDApOworCQlvYmpbMF0uZmxhZ3MgfD0g RVhFQ19PQkpFQ1RfUElOTkVEIHwgRVhFQ19PQkpFQ1RfV1JJVEU7CisJCW9ialsxXS5vZmZzZXQg PSBnZXRfb2Zmc2V0KGFobmQsIG9ialsxXS5oYW5kbGUsIGJhdGNoX3NpemUsIDApOworCQlvYmpb MV0uZmxhZ3MgfD0gRVhFQ19PQkpFQ1RfUElOTkVEOworCX0KIAogCWIgPSBiYXRjaCA9IGdlbV9t bWFwX19jcHUoZmQsIG9ialsxXS5oYW5kbGUsIDAsIGJhdGNoX3NpemUsIFBST1RfV1JJVEUpOwog CWdlbV9zZXRfZG9tYWluKGZkLCBvYmpbMV0uaGFuZGxlLApAQCAtNDc3LDEzICs0OTMsMTMgQEAg c3RhdGljIHZvaWQgcmVzdG9yZV9yZWdzKGludCBmZCwKIAkJCXJlbG9jW25dLmRlbHRhID0gb2Zm c2V0OwogCQkJcmVsb2Nbbl0ucmVhZF9kb21haW5zID0gSTkxNV9HRU1fRE9NQUlOX1JFTkRFUjsK IAkJCXJlbG9jW25dLndyaXRlX2RvbWFpbiA9IDA7Ci0JCQkqYisrID0gb2Zmc2V0OworCQkJKmIr KyA9IG9ialswXS5vZmZzZXQgKyBvZmZzZXQ7CiAJCQlpZiAocjY0YikKLQkJCQkqYisrID0gMDsK KwkJCQkqYisrID0gKG9ialswXS5vZmZzZXQgKyBvZmZzZXQpID4+IDMyOwogCQkJbisrOwogCQl9 CiAJfQotCW9ialsxXS5yZWxvY2F0aW9uX2NvdW50ID0gbjsKKwlvYmpbMV0ucmVsb2NhdGlvbl9j b3VudCA9ICFhaG5kID8gbiA6IDA7CiAJKmIrKyA9IE1JX0JBVENIX0JVRkZFUl9FTkQ7CiAJbXVu bWFwKGJhdGNoLCBiYXRjaF9zaXplKTsKIApAQCAtNDk0LDYgKzUxMCw3IEBAIHN0YXRpYyB2b2lk IHJlc3RvcmVfcmVncyhpbnQgZmQsCiAJZXhlY2J1Zi5yc3ZkMSA9IGN0eC0+aWQ7CiAJZ2VtX2V4 ZWNidWYoZmQsICZleGVjYnVmKTsKIAlnZW1fY2xvc2UoZmQsIG9ialsxXS5oYW5kbGUpOworCXB1 dF9vZmZzZXQoYWhuZCwgb2JqWzFdLm9mZnNldCk7CiB9CiAKIF9fYXR0cmlidXRlX18oKHVudXNl ZCkpCkBAIC02MjIsMTUgKzYzOSwyMCBAQCBzdGF0aWMgdm9pZCBub25wcml2KGludCBmZCwgY29u c3QgaW50ZWxfY3R4X2NmZ190ICpjZmcsCiAJCWlndF9zcGluX3QgKnNwaW4gPSBOVUxMOwogCQlj b25zdCBpbnRlbF9jdHhfdCAqY3R4OwogCQl1aW50MzJfdCByZWdzWzJdLCB0bXBsOworCQl1aW50 NjRfdCBhaG5kOwogCiAJCWN0eCA9IGludGVsX2N0eF9jcmVhdGUoZmQsIGNmZyk7CisJCWFobmQg PSBnZXRfcmVsb2NfYWhuZChmZCwgY3R4LT5pZCk7CiAKLQkJdG1wbCA9IHJlYWRfcmVncyhmZCwg Y3R4LCBlLCBmbGFncyk7Ci0JCXJlZ3NbMF0gPSByZWFkX3JlZ3MoZmQsIGN0eCwgZSwgZmxhZ3Mp OworCQl0bXBsID0gcmVhZF9yZWdzKGZkLCBhaG5kLCBjdHgsIGUsIGZsYWdzKTsKKwkJcmVnc1sw XSA9IHJlYWRfcmVncyhmZCwgYWhuZCwgY3R4LCBlLCBmbGFncyk7CiAKIAkJdG1wbF9yZWdzKGZk LCBlLCB0bXBsLCB2YWx1ZXNbdl0pOwogCi0JCXNwaW4gPSBpZ3Rfc3Bpbl9uZXcoZmQsIC5jdHgg PSBjdHgsIC5lbmdpbmUgPSBlLT5mbGFncyk7CisJCXNwaW4gPSBpZ3Rfc3Bpbl9uZXcoZmQsCisJ CQkJICAgIC5haG5kID0gYWhuZCwKKwkJCQkgICAgLmN0eCA9IGN0eCwKKwkJCQkgICAgLmVuZ2lu ZSA9IGUtPmZsYWdzKTsKIAogCQlpZ3RfZGVidWcoIiVzWyVkXTogU2V0dGluZyBhbGwgcmVnaXN0 ZXJzIHRvIDB4JTA4eFxuIiwKIAkJCSAgX19mdW5jX18sIHYsIHZhbHVlc1t2XSk7CkBAIC02Mzgs MTUgKzY2MCwxOCBAQCBzdGF0aWMgdm9pZCBub25wcml2KGludCBmZCwgY29uc3QgaW50ZWxfY3R4 X2NmZ190ICpjZmcsCiAKIAkJaWYgKGZsYWdzICYgRElSVFkyKSB7CiAJCQljb25zdCBpbnRlbF9j dHhfdCAqc3cgPSBpbnRlbF9jdHhfY3JlYXRlKGZkLCAmY3R4LT5jZmcpOworCQkJdWludDY0X3Qg YWhuZF9zdyA9IGdldF9yZWxvY19haG5kKGZkLCBzdy0+aWQpOwogCQkJaWd0X3NwaW5fdCAqc3lu Y3B0LCAqZGlydDsKIAogCQkJLyogRXhwbGljaXQgc3luYyB0byBrZWVwIHRoZSBzd2l0Y2ggYmV0 d2VlbiB3cml0ZS9yZWFkICovCiAJCQlzeW5jcHQgPSBpZ3Rfc3Bpbl9uZXcoZmQsCisJCQkJCSAg ICAgIC5haG5kID0gYWhuZCwKIAkJCQkJICAgICAgLmN0eCA9IGN0eCwKIAkJCQkJICAgICAgLmVu Z2luZSA9IGUtPmZsYWdzLAogCQkJCQkgICAgICAuZmxhZ3MgPSBJR1RfU1BJTl9GRU5DRV9PVVQp OwogCiAJCQlkaXJ0ID0gaWd0X3NwaW5fbmV3KGZkLAorCQkJCQkgICAgLmFobmQgPSBhaG5kX3N3 LAogCQkJCQkgICAgLmN0eCA9IHN3LAogCQkJCQkgICAgLmVuZ2luZSA9IGUtPmZsYWdzLAogCQkJ CQkgICAgLmZlbmNlID0gc3luY3B0LT5vdXRfZmVuY2UsCkBAIC02NTUsNiArNjgwLDcgQEAgc3Rh dGljIHZvaWQgbm9ucHJpdihpbnQgZmQsIGNvbnN0IGludGVsX2N0eF9jZmdfdCAqY2ZnLAogCQkJ aWd0X3NwaW5fZnJlZShmZCwgc3luY3B0KTsKIAogCQkJc3luY3B0ID0gaWd0X3NwaW5fbmV3KGZk LAorCQkJCQkgICAgICAuYWhuZCA9IGFobmQsCiAJCQkJCSAgICAgIC5jdHggPSBjdHgsCiAJCQkJ CSAgICAgIC5lbmdpbmUgPSBlLT5mbGFncywKIAkJCQkJICAgICAgLmZlbmNlID0gZGlydC0+b3V0 X2ZlbmNlLApAQCAtNjYzLDE1ICs2ODksMTYgQEAgc3RhdGljIHZvaWQgbm9ucHJpdihpbnQgZmQs IGNvbnN0IGludGVsX2N0eF9jZmdfdCAqY2ZnLAogCiAJCQlpZ3Rfc3Bpbl9mcmVlKGZkLCBzeW5j cHQpOwogCQkJaW50ZWxfY3R4X2Rlc3Ryb3koZmQsIHN3KTsKKwkJCXB1dF9haG5kKGFobmRfc3cp OwogCQl9CiAKLQkJcmVnc1sxXSA9IHJlYWRfcmVncyhmZCwgY3R4LCBlLCBmbGFncyk7CisJCXJl Z3NbMV0gPSByZWFkX3JlZ3MoZmQsIGFobmQsIGN0eCwgZSwgZmxhZ3MpOwogCiAJCS8qCiAJCSAq IFJlc3RvcmUgdGhlIG9yaWdpbmFsIHJlZ2lzdGVyIHZhbHVlcyBiZWZvcmUgdGhlIEhXIGlkbGVz LgogCQkgKiBPciBlbHNlIGl0IG1heSBuZXZlciByZXN0YXJ0IQogCQkgKi8KLQkJcmVzdG9yZV9y ZWdzKGZkLCBjdHgsIGUsIGZsYWdzLCByZWdzWzBdKTsKKwkJcmVzdG9yZV9yZWdzKGZkLCBhaG5k LCBjdHgsIGUsIGZsYWdzLCByZWdzWzBdKTsKIAogCQlpZ3Rfc3Bpbl9mcmVlKGZkLCBzcGluKTsK IApAQCAtNjgxLDYgKzcwOCw3IEBAIHN0YXRpYyB2b2lkIG5vbnByaXYoaW50IGZkLCBjb25zdCBp bnRlbF9jdHhfY2ZnX3QgKmNmZywKIAkJCWdlbV9jbG9zZShmZCwgcmVnc1tuXSk7CiAJCWludGVs X2N0eF9kZXN0cm95KGZkLCBjdHgpOwogCQlnZW1fY2xvc2UoZmQsIHRtcGwpOworCQlwdXRfYWhu ZChhaG5kKTsKIAl9CiB9CiAKQEAgLTcwNiwxMSArNzM0LDE2IEBAIHN0YXRpYyB2b2lkIGlzb2xh dGlvbihpbnQgZmQsIGNvbnN0IGludGVsX2N0eF9jZmdfdCAqY2ZnLAogCQlpZ3Rfc3Bpbl90ICpz cGluID0gTlVMTDsKIAkJY29uc3QgaW50ZWxfY3R4X3QgKmN0eFsyXTsKIAkJdWludDMyX3QgcmVn c1syXSwgdG1wOworCQl1aW50NjRfdCBhaG5kWzJdOwogCiAJCWN0eFswXSA9IGludGVsX2N0eF9j cmVhdGUoZmQsIGNmZyk7Ci0JCXJlZ3NbMF0gPSByZWFkX3JlZ3MoZmQsIGN0eFswXSwgZSwgZmxh Z3MpOworCQlhaG5kWzBdID0gZ2V0X3JlbG9jX2FobmQoZmQsIGN0eFswXS0+aWQpOworCQlyZWdz WzBdID0gcmVhZF9yZWdzKGZkLCBhaG5kWzBdLCBjdHhbMF0sIGUsIGZsYWdzKTsKIAotCQlzcGlu ID0gaWd0X3NwaW5fbmV3KGZkLCAuY3R4ID0gY3R4WzBdLCAuZW5naW5lID0gZS0+ZmxhZ3MpOwor CQlzcGluID0gaWd0X3NwaW5fbmV3KGZkLAorCQkJCSAgICAuYWhuZCA9IGFobmRbMF0sCisJCQkJ ICAgIC5jdHggPSBjdHhbMF0sCisJCQkJICAgIC5lbmdpbmUgPSBlLT5mbGFncyk7CiAKIAkJaWYg KGZsYWdzICYgRElSVFkxKSB7CiAJCQlpZ3RfZGVidWcoIiVzWyVkXTogU2V0dGluZyBhbGwgcmVn aXN0ZXJzIG9mIGN0eCAwIHRvIDB4JTA4eFxuIiwKQEAgLTcyNyw3ICs3NjAsOCBAQCBzdGF0aWMg dm9pZCBpc29sYXRpb24oaW50IGZkLCBjb25zdCBpbnRlbF9jdHhfY2ZnX3QgKmNmZywKIAkJICog c2VlIHRoZSBjb3JydXB0aW9uIGZyb20gdGhlIHByZXZpb3VzIGNvbnRleHQgaW5zdGVhZCEKIAkJ ICovCiAJCWN0eFsxXSA9IGludGVsX2N0eF9jcmVhdGUoZmQsIGNmZyk7Ci0JCXJlZ3NbMV0gPSBy ZWFkX3JlZ3MoZmQsIGN0eFsxXSwgZSwgZmxhZ3MpOworCQlhaG5kWzFdID0gZ2V0X3JlbG9jX2Fo bmQoZmQsIGN0eFsxXS0+aWQpOworCQlyZWdzWzFdID0gcmVhZF9yZWdzKGZkLCBhaG5kWzFdLCBj dHhbMV0sIGUsIGZsYWdzKTsKIAogCQlpZiAoZmxhZ3MgJiBESVJUWTIpIHsKIAkJCWlndF9kZWJ1 ZygiJXNbJWRdOiBTZXR0aW5nIGFsbCByZWdpc3RlcnMgb2YgY3R4IDEgdG8gMHglMDh4XG4iLApA QCAtNzM5LDggKzc3Myw4IEBAIHN0YXRpYyB2b2lkIGlzb2xhdGlvbihpbnQgZmQsIGNvbnN0IGlu dGVsX2N0eF9jZmdfdCAqY2ZnLAogCQkgKiBSZXN0b3JlIHRoZSBvcmlnaW5hbCByZWdpc3RlciB2 YWx1ZXMgYmVmb3JlIHRoZSBIVyBpZGxlcy4KIAkJICogT3IgZWxzZSBpdCBtYXkgbmV2ZXIgcmVz dGFydCEKIAkJICovCi0JCXRtcCA9IHJlYWRfcmVncyhmZCwgY3R4WzBdLCBlLCBmbGFncyk7Ci0J CXJlc3RvcmVfcmVncyhmZCwgY3R4WzBdLCBlLCBmbGFncywgcmVnc1swXSk7CisJCXRtcCA9IHJl YWRfcmVncyhmZCwgYWhuZFswXSwgY3R4WzBdLCBlLCBmbGFncyk7CisJCXJlc3RvcmVfcmVncyhm ZCwgYWhuZFswXSwgY3R4WzBdLCBlLCBmbGFncywgcmVnc1swXSk7CiAKIAkJaWd0X3NwaW5fZnJl ZShmZCwgc3Bpbik7CiAKQEAgLTc1Miw2ICs3ODYsNyBAQCBzdGF0aWMgdm9pZCBpc29sYXRpb24o aW50IGZkLCBjb25zdCBpbnRlbF9jdHhfY2ZnX3QgKmNmZywKIAkJZm9yIChpbnQgbiA9IDA7IG4g PCBBUlJBWV9TSVpFKGN0eCk7IG4rKykgewogCQkJZ2VtX2Nsb3NlKGZkLCByZWdzW25dKTsKIAkJ CWludGVsX2N0eF9kZXN0cm95KGZkLCBjdHhbbl0pOworCQkJcHV0X2FobmQoYWhuZFtuXSk7CiAJ CX0KIAkJZ2VtX2Nsb3NlKGZkLCB0bXApOwogCX0KQEAgLTc4MSw3ICs4MTYsOSBAQCBzdGF0aWMg dm9pZCBpbmplY3RfcmVzZXRfY29udGV4dChpbnQgZmQsIGNvbnN0IGludGVsX2N0eF9jZmdfdCAq Y2ZnLAogCQkJCSBjb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUpCiB7CiAJ Y29uc3QgaW50ZWxfY3R4X3QgKmN0eCA9IGNyZWF0ZV9yZXNldF9jb250ZXh0KGZkLCBjZmcpOwor CXVpbnQ2NF90IGFobmQgPSBnZXRfcmVsb2NfYWhuZChmZCwgY3R4LT5pZCk7CiAJc3RydWN0IGln dF9zcGluX2ZhY3Rvcnkgb3B0cyA9IHsKKwkJLmFobmQgPSBhaG5kLAogCQkuY3R4ID0gY3R4LAog CQkuZW5naW5lID0gZS0+ZmxhZ3MsCiAJCS5mbGFncyA9IElHVF9TUElOX0ZBU1QsCkBAIC04MjYs MjEgKzg2MywyNyBAQCBzdGF0aWMgdm9pZCBwcmVzZXJ2YXRpb24oaW50IGZkLCBjb25zdCBpbnRl bF9jdHhfY2ZnX3QgKmNmZywKIAljb25zdCB1bnNpZ25lZCBpbnQgbnVtX3ZhbHVlcyA9IEFSUkFZ X1NJWkUodmFsdWVzKTsKIAljb25zdCBpbnRlbF9jdHhfdCAqY3R4W251bV92YWx1ZXMgKyAxXTsK IAl1aW50MzJfdCByZWdzW251bV92YWx1ZXMgKyAxXVsyXTsKKwl1aW50NjRfdCBhaG5kW251bV92 YWx1ZXMgKyAxXTsKIAlpZ3Rfc3Bpbl90ICpzcGluOwogCiAJZ2VtX3F1aWVzY2VudF9ncHUoZmQp OwogCiAJY3R4W251bV92YWx1ZXNdID0gaW50ZWxfY3R4X2NyZWF0ZShmZCwgY2ZnKTsKLQlzcGlu ID0gaWd0X3NwaW5fbmV3KGZkLCAuY3R4ID0gY3R4W251bV92YWx1ZXNdLCAuZW5naW5lID0gZS0+ ZmxhZ3MpOwotCXJlZ3NbbnVtX3ZhbHVlc11bMF0gPSByZWFkX3JlZ3MoZmQsIGN0eFtudW1fdmFs dWVzXSwgZSwgZmxhZ3MpOworCWFobmRbbnVtX3ZhbHVlc10gPSBnZXRfcmVsb2NfYWhuZChmZCwg Y3R4W251bV92YWx1ZXNdLT5pZCk7CisJc3BpbiA9IGlndF9zcGluX25ldyhmZCwKKwkJCSAgICAu YWhuZCA9IGFobmRbbnVtX3ZhbHVlc10sCisJCQkgICAgLmN0eCA9IGN0eFtudW1fdmFsdWVzXSwK KwkJCSAgICAuZW5naW5lID0gZS0+ZmxhZ3MpOworCXJlZ3NbbnVtX3ZhbHVlc11bMF0gPSByZWFk X3JlZ3MoZmQsIGFobmRbbnVtX3ZhbHVlc10sIGN0eFtudW1fdmFsdWVzXSwKKwkJCQkJZSwgZmxh Z3MpOwogCWZvciAoaW50IHYgPSAwOyB2IDwgbnVtX3ZhbHVlczsgdisrKSB7CiAJCWN0eFt2XSA9 IGludGVsX2N0eF9jcmVhdGUoZmQsIGNmZyk7CisJCWFobmRbdl0gPSBnZXRfcmVsb2NfYWhuZChm ZCwgY3R4W3ZdLT5pZCk7CiAJCXdyaXRlX3JlZ3MoZmQsIGN0eFt2XSwgZSwgZmxhZ3MsIHZhbHVl c1t2XSk7CiAKLQkJcmVnc1t2XVswXSA9IHJlYWRfcmVncyhmZCwgY3R4W3ZdLCBlLCBmbGFncyk7 Ci0KKwkJcmVnc1t2XVswXSA9IHJlYWRfcmVncyhmZCwgYWhuZFt2XSwgY3R4W3ZdLCBlLCBmbGFn cyk7CiAJfQotCWdlbV9jbG9zZShmZCwgcmVhZF9yZWdzKGZkLCBjdHhbbnVtX3ZhbHVlc10sIGUs IGZsYWdzKSk7CisJZ2VtX2Nsb3NlKGZkLCByZWFkX3JlZ3MoZmQsIGFobmRbbnVtX3ZhbHVlc10s IGN0eFtudW1fdmFsdWVzXSwgZSwgZmxhZ3MpKTsKIAlpZ3Rfc3Bpbl9mcmVlKGZkLCBzcGluKTsK IAogCWlmIChmbGFncyAmIFJFU0VUKQpAQCAtODcxLDEwICs5MTQsMTQgQEAgc3RhdGljIHZvaWQg cHJlc2VydmF0aW9uKGludCBmZCwgY29uc3QgaW50ZWxfY3R4X2NmZ190ICpjZmcsCiAJCWJyZWFr OwogCX0KIAotCXNwaW4gPSBpZ3Rfc3Bpbl9uZXcoZmQsIC5jdHggPSBjdHhbbnVtX3ZhbHVlc10s IC5lbmdpbmUgPSBlLT5mbGFncyk7CisJc3BpbiA9IGlndF9zcGluX25ldyhmZCwKKwkJCSAgICAu YWhuZCA9IGFobmRbbnVtX3ZhbHVlc10sCisJCQkgICAgLmN0eCA9IGN0eFtudW1fdmFsdWVzXSwK KwkJCSAgICAuZW5naW5lID0gZS0+ZmxhZ3MpOwogCWZvciAoaW50IHYgPSAwOyB2IDwgbnVtX3Zh bHVlczsgdisrKQotCQlyZWdzW3ZdWzFdID0gcmVhZF9yZWdzKGZkLCBjdHhbdl0sIGUsIGZsYWdz KTsKLQlyZWdzW251bV92YWx1ZXNdWzFdID0gcmVhZF9yZWdzKGZkLCBjdHhbbnVtX3ZhbHVlc10s IGUsIGZsYWdzKTsKKwkJcmVnc1t2XVsxXSA9IHJlYWRfcmVncyhmZCwgYWhuZFt2XSwgY3R4W3Zd LCBlLCBmbGFncyk7CisJcmVnc1tudW1fdmFsdWVzXVsxXSA9IHJlYWRfcmVncyhmZCwgYWhuZFtu dW1fdmFsdWVzXSwgY3R4W251bV92YWx1ZXNdLAorCQkJCQllLCBmbGFncyk7CiAJaWd0X3NwaW5f ZnJlZShmZCwgc3Bpbik7CiAKIAlmb3IgKGludCB2ID0gMDsgdiA8IG51bV92YWx1ZXM7IHYrKykg ewpAQCAtODg2LDkgKzkzMywxMSBAQCBzdGF0aWMgdm9pZCBwcmVzZXJ2YXRpb24oaW50IGZkLCBj b25zdCBpbnRlbF9jdHhfY2ZnX3QgKmNmZywKIAkJZ2VtX2Nsb3NlKGZkLCByZWdzW3ZdWzBdKTsK IAkJZ2VtX2Nsb3NlKGZkLCByZWdzW3ZdWzFdKTsKIAkJaW50ZWxfY3R4X2Rlc3Ryb3koZmQsIGN0 eFt2XSk7CisJCXB1dF9haG5kKGFobmRbdl0pOwogCX0KIAljb21wYXJlX3JlZ3MoZmQsIGUsIHJl Z3NbbnVtX3ZhbHVlc11bMF0sIHJlZ3NbbnVtX3ZhbHVlc11bMV0sICJjbGVhbiIpOwogCWludGVs X2N0eF9kZXN0cm95KGZkLCBjdHhbbnVtX3ZhbHVlc10pOworCXB1dF9haG5kKGFobmRbbnVtX3Zh bHVlc10pOwogfQogCiBzdGF0aWMgdW5zaWduZWQgaW50IF9faGFzX2NvbnRleHRfaXNvbGF0aW9u KGludCBmZCkKLS0gCjIuMjYuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3Qt ZGV2Cg==