From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pl1-x62c.google.com (mail-pl1-x62c.google.com [IPv6:2607:f8b0:4864:20::62c]) by gabe.freedesktop.org (Postfix) with ESMTPS id E17A089F6F for ; Mon, 14 Jun 2021 16:37:28 +0000 (UTC) Received: by mail-pl1-x62c.google.com with SMTP id x19so6873665pln.2 for ; Mon, 14 Jun 2021 09:37:28 -0700 (PDT) From: Jason Ekstrand Date: Mon, 14 Jun 2021 11:36:23 -0500 Message-Id: <20210614163704.365989-9-jason@jlekstrand.net> In-Reply-To: <20210614163704.365989-1-jason@jlekstrand.net> References: <20210614163704.365989-1-jason@jlekstrand.net> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 08/77] tests/i915/gem_ctx_isolation: 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: djIgKFpiaWduaWV3IEtlbXBjennFhHNraSk6CiAtIERyb3AgY3R4IGZyb20gdG1wbF9yZWdzCiAt IEZpeCBhIHdoaXRlc3BhY2UgdHlwbwoKU2lnbmVkLW9mZi1ieTogSmFzb24gRWtzdHJhbmQgPGph c29uQGpsZWtzdHJhbmQubmV0PgpSZXZpZXdlZC1ieTogWmJpZ25pZXcgS2VtcGN6ecWEc2tpIDx6 Ymlnbmlldy5rZW1wY3p5bnNraUBpbnRlbC5jb20+Ci0tLQogdGVzdHMvaTkxNS9nZW1fY3R4X2lz b2xhdGlvbi5jIHwgMTI3ICsrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxl IGNoYW5nZWQsIDY2IGluc2VydGlvbnMoKyksIDYxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3Rlc3RzL2k5MTUvZ2VtX2N0eF9pc29sYXRpb24uYyBiL3Rlc3RzL2k5MTUvZ2VtX2N0eF9pc29s YXRpb24uYwppbmRleCBmZjVkMzcxOGYuLjI0ZGRkZTBiYyAxMDA2NDQKLS0tIGEvdGVzdHMvaTkx NS9nZW1fY3R4X2lzb2xhdGlvbi5jCisrKyBiL3Rlc3RzL2k5MTUvZ2VtX2N0eF9pc29sYXRpb24u YwpAQCAtMjMzLDcgKzIzMyw2IEBAIHN0YXRpYyBib29sIGlnbm9yZV9yZWdpc3Rlcih1aW50MzJf dCBvZmZzZXQsIHVpbnQzMl90IG1taW9fYmFzZSkKIH0KIAogc3RhdGljIHZvaWQgdG1wbF9yZWdz KGludCBmZCwKLQkJICAgICAgdWludDMyX3QgY3R4LAogCQkgICAgICBjb25zdCBzdHJ1Y3QgaW50 ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUsCiAJCSAgICAgIHVpbnQzMl90IGhhbmRsZSwKIAkJICAg ICAgdWludDMyX3QgdmFsdWUpCkBAIC0yNzgsNyArMjc3LDcgQEAgc3RhdGljIHZvaWQgdG1wbF9y ZWdzKGludCBmZCwKIH0KIAogc3RhdGljIHVpbnQzMl90IHJlYWRfcmVncyhpbnQgZmQsCi0JCQkg IHVpbnQzMl90IGN0eCwKKwkJCSAgY29uc3QgaW50ZWxfY3R4X3QgKmN0eCwKIAkJCSAgY29uc3Qg c3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICplLAogCQkJICB1bnNpZ25lZCBpbnQgZmxh Z3MpCiB7CkBAIC0zNTAsNyArMzQ5LDcgQEAgc3RhdGljIHVpbnQzMl90IHJlYWRfcmVncyhpbnQg ZmQsCiAJZXhlY2J1Zi5idWZmZXJzX3B0ciA9IHRvX3VzZXJfcG9pbnRlcihvYmopOwogCWV4ZWNi dWYuYnVmZmVyX2NvdW50ID0gMjsKIAlleGVjYnVmLmZsYWdzID0gZS0+ZmxhZ3M7Ci0JZXhlY2J1 Zi5yc3ZkMSA9IGN0eDsKKwlleGVjYnVmLnJzdmQxID0gY3R4LT5pZDsKIAlnZW1fZXhlY2J1Zihm ZCwgJmV4ZWNidWYpOwogCWdlbV9jbG9zZShmZCwgb2JqWzFdLmhhbmRsZSk7CiAJZnJlZShyZWxv Yyk7CkBAIC0zNTksNyArMzU4LDcgQEAgc3RhdGljIHVpbnQzMl90IHJlYWRfcmVncyhpbnQgZmQs CiB9CiAKIHN0YXRpYyB2b2lkIHdyaXRlX3JlZ3MoaW50IGZkLAotCQkgICAgICAgdWludDMyX3Qg Y3R4LAorCQkgICAgICAgY29uc3QgaW50ZWxfY3R4X3QgKmN0eCwKIAkJICAgICAgIGNvbnN0IHN0 cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiAqZSwKIAkJICAgICAgIHVuc2lnbmVkIGludCBm bGFncywKIAkJICAgICAgIHVpbnQzMl90IHZhbHVlKQpAQCAtNDE0LDEzICs0MTMsMTMgQEAgc3Rh dGljIHZvaWQgd3JpdGVfcmVncyhpbnQgZmQsCiAJZXhlY2J1Zi5idWZmZXJzX3B0ciA9IHRvX3Vz ZXJfcG9pbnRlcigmb2JqKTsKIAlleGVjYnVmLmJ1ZmZlcl9jb3VudCA9IDE7CiAJZXhlY2J1Zi5m bGFncyA9IGUtPmZsYWdzOwotCWV4ZWNidWYucnN2ZDEgPSBjdHg7CisJZXhlY2J1Zi5yc3ZkMSA9 IGN0eC0+aWQ7CiAJZ2VtX2V4ZWNidWYoZmQsICZleGVjYnVmKTsKIAlnZW1fY2xvc2UoZmQsIG9i ai5oYW5kbGUpOwogfQogCiBzdGF0aWMgdm9pZCByZXN0b3JlX3JlZ3MoaW50IGZkLAotCQkJIHVp bnQzMl90IGN0eCwKKwkJCSBjb25zdCBpbnRlbF9jdHhfdCAqY3R4LAogCQkJIGNvbnN0IHN0cnVj dCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiAqZSwKIAkJCSB1bnNpZ25lZCBpbnQgZmxhZ3MsCiAJ CQkgdWludDMyX3QgcmVncykKQEAgLTQ5Miw3ICs0OTEsNyBAQCBzdGF0aWMgdm9pZCByZXN0b3Jl X3JlZ3MoaW50IGZkLAogCWV4ZWNidWYuYnVmZmVyc19wdHIgPSB0b191c2VyX3BvaW50ZXIob2Jq KTsKIAlleGVjYnVmLmJ1ZmZlcl9jb3VudCA9IDI7CiAJZXhlY2J1Zi5mbGFncyA9IGUtPmZsYWdz OwotCWV4ZWNidWYucnN2ZDEgPSBjdHg7CisJZXhlY2J1Zi5yc3ZkMSA9IGN0eC0+aWQ7CiAJZ2Vt X2V4ZWNidWYoZmQsICZleGVjYnVmKTsKIAlnZW1fY2xvc2UoZmQsIG9ialsxXS5oYW5kbGUpOwog fQpAQCAtNTk2LDcgKzU5NSw3IEBAIHN0YXRpYyB2b2lkIGNvbXBhcmVfcmVncyhpbnQgZmQsIGNv bnN0IHN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiAqZSwKIAkJICAgICBudW1fZXJyb3Jz LCB3aG8pOwogfQogCi1zdGF0aWMgdm9pZCBub25wcml2KGludCBmZCwKK3N0YXRpYyB2b2lkIG5v bnByaXYoaW50IGZkLCBjb25zdCBpbnRlbF9jdHhfY2ZnX3QgKmNmZywKIAkJICAgIGNvbnN0IHN0 cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiAqZSwKIAkJICAgIHVuc2lnbmVkIGludCBmbGFn cykKIHsKQEAgLTYyMSwzMyArNjIwLDM0IEBAIHN0YXRpYyB2b2lkIG5vbnByaXYoaW50IGZkLAog CiAJZm9yIChpbnQgdiA9IDA7IHYgPCBudW1fdmFsdWVzOyB2KyspIHsKIAkJaWd0X3NwaW5fdCAq c3BpbiA9IE5VTEw7Ci0JCXVpbnQzMl90IGN0eCwgcmVnc1syXSwgdG1wbDsKKwkJY29uc3QgaW50 ZWxfY3R4X3QgKmN0eDsKKwkJdWludDMyX3QgcmVnc1syXSwgdG1wbDsKIAotCQljdHggPSBnZW1f Y29udGV4dF9jbG9uZV93aXRoX2VuZ2luZXMoZmQsIDApOworCQljdHggPSBpbnRlbF9jdHhfY3Jl YXRlKGZkLCBjZmcpOwogCiAJCXRtcGwgPSByZWFkX3JlZ3MoZmQsIGN0eCwgZSwgZmxhZ3MpOwog CQlyZWdzWzBdID0gcmVhZF9yZWdzKGZkLCBjdHgsIGUsIGZsYWdzKTsKIAotCQl0bXBsX3JlZ3Mo ZmQsIGN0eCwgZSwgdG1wbCwgdmFsdWVzW3ZdKTsKKwkJdG1wbF9yZWdzKGZkLCBlLCB0bXBsLCB2 YWx1ZXNbdl0pOwogCi0JCXNwaW4gPSBpZ3Rfc3Bpbl9uZXcoZmQsIC5jdHhfaWQgPSBjdHgsIC5l bmdpbmUgPSBlLT5mbGFncyk7CisJCXNwaW4gPSBpZ3Rfc3Bpbl9uZXcoZmQsIC5jdHggPSBjdHgs IC5lbmdpbmUgPSBlLT5mbGFncyk7CiAKIAkJaWd0X2RlYnVnKCIlc1slZF06IFNldHRpbmcgYWxs IHJlZ2lzdGVycyB0byAweCUwOHhcbiIsCiAJCQkgIF9fZnVuY19fLCB2LCB2YWx1ZXNbdl0pOwog CQl3cml0ZV9yZWdzKGZkLCBjdHgsIGUsIGZsYWdzLCB2YWx1ZXNbdl0pOwogCiAJCWlmIChmbGFn cyAmIERJUlRZMikgewotCQkJdWludDMyX3Qgc3cgPSBnZW1fY29udGV4dF9jbG9uZV93aXRoX2Vu Z2luZXMoZmQsIDApOworCQkJY29uc3QgaW50ZWxfY3R4X3QgKnN3ID0gaW50ZWxfY3R4X2NyZWF0 ZShmZCwgJmN0eC0+Y2ZnKTsKIAkJCWlndF9zcGluX3QgKnN5bmNwdCwgKmRpcnQ7CiAKIAkJCS8q IEV4cGxpY2l0IHN5bmMgdG8ga2VlcCB0aGUgc3dpdGNoIGJldHdlZW4gd3JpdGUvcmVhZCAqLwog CQkJc3luY3B0ID0gaWd0X3NwaW5fbmV3KGZkLAotCQkJCQkgICAgICAuY3R4X2lkID0gY3R4LAor CQkJCQkgICAgICAuY3R4ID0gY3R4LAogCQkJCQkgICAgICAuZW5naW5lID0gZS0+ZmxhZ3MsCiAJ CQkJCSAgICAgIC5mbGFncyA9IElHVF9TUElOX0ZFTkNFX09VVCk7CiAKIAkJCWRpcnQgPSBpZ3Rf c3Bpbl9uZXcoZmQsCi0JCQkJCSAgICAuY3R4X2lkID0gc3csCisJCQkJCSAgICAuY3R4ID0gc3cs CiAJCQkJCSAgICAuZW5naW5lID0gZS0+ZmxhZ3MsCiAJCQkJCSAgICAuZmVuY2UgPSBzeW5jcHQt Pm91dF9mZW5jZSwKIAkJCQkJICAgIC5mbGFncyA9IChJR1RfU1BJTl9GRU5DRV9JTiB8CkBAIC02 NTUsMTQgKzY1NSwxNCBAQCBzdGF0aWMgdm9pZCBub25wcml2KGludCBmZCwKIAkJCWlndF9zcGlu X2ZyZWUoZmQsIHN5bmNwdCk7CiAKIAkJCXN5bmNwdCA9IGlndF9zcGluX25ldyhmZCwKLQkJCQkJ ICAgICAgLmN0eF9pZCA9IGN0eCwKKwkJCQkJICAgICAgLmN0eCA9IGN0eCwKIAkJCQkJICAgICAg LmVuZ2luZSA9IGUtPmZsYWdzLAogCQkJCQkgICAgICAuZmVuY2UgPSBkaXJ0LT5vdXRfZmVuY2Us CiAJCQkJCSAgICAgIC5mbGFncyA9IElHVF9TUElOX0ZFTkNFX0lOKTsKIAkJCWlndF9zcGluX2Zy ZWUoZmQsIGRpcnQpOwogCiAJCQlpZ3Rfc3Bpbl9mcmVlKGZkLCBzeW5jcHQpOwotCQkJZ2VtX2Nv bnRleHRfZGVzdHJveShmZCwgc3cpOworCQkJaW50ZWxfY3R4X2Rlc3Ryb3koZmQsIHN3KTsKIAkJ fQogCiAJCXJlZ3NbMV0gPSByZWFkX3JlZ3MoZmQsIGN0eCwgZSwgZmxhZ3MpOwpAQCAtNjc5LDEy ICs2NzksMTIgQEAgc3RhdGljIHZvaWQgbm9ucHJpdihpbnQgZmQsCiAKIAkJZm9yIChpbnQgbiA9 IDA7IG4gPCBBUlJBWV9TSVpFKHJlZ3MpOyBuKyspCiAJCQlnZW1fY2xvc2UoZmQsIHJlZ3Nbbl0p OwotCQlnZW1fY29udGV4dF9kZXN0cm95KGZkLCBjdHgpOworCQlpbnRlbF9jdHhfZGVzdHJveShm ZCwgY3R4KTsKIAkJZ2VtX2Nsb3NlKGZkLCB0bXBsKTsKIAl9CiB9CiAKLXN0YXRpYyB2b2lkIGlz b2xhdGlvbihpbnQgZmQsCitzdGF0aWMgdm9pZCBpc29sYXRpb24oaW50IGZkLCBjb25zdCBpbnRl bF9jdHhfY2ZnX3QgKmNmZywKIAkJICAgICAgY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9l bmdpbmUyICplLAogCQkgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MpCiB7CkBAIC03MDQsMTIgKzcw NCwxMyBAQCBzdGF0aWMgdm9pZCBpc29sYXRpb24oaW50IGZkLAogCiAJZm9yIChpbnQgdiA9IDA7 IHYgPCBudW1fdmFsdWVzOyB2KyspIHsKIAkJaWd0X3NwaW5fdCAqc3BpbiA9IE5VTEw7Ci0JCXVp bnQzMl90IGN0eFsyXSwgcmVnc1syXSwgdG1wOworCQljb25zdCBpbnRlbF9jdHhfdCAqY3R4WzJd OworCQl1aW50MzJfdCByZWdzWzJdLCB0bXA7CiAKLQkJY3R4WzBdID0gZ2VtX2NvbnRleHRfY2xv bmVfd2l0aF9lbmdpbmVzKGZkLCAwKTsKKwkJY3R4WzBdID0gaW50ZWxfY3R4X2NyZWF0ZShmZCwg Y2ZnKTsKIAkJcmVnc1swXSA9IHJlYWRfcmVncyhmZCwgY3R4WzBdLCBlLCBmbGFncyk7CiAKLQkJ c3BpbiA9IGlndF9zcGluX25ldyhmZCwgLmN0eF9pZCA9IGN0eFswXSwgLmVuZ2luZSA9IGUtPmZs YWdzKTsKKwkJc3BpbiA9IGlndF9zcGluX25ldyhmZCwgLmN0eCA9IGN0eFswXSwgLmVuZ2luZSA9 IGUtPmZsYWdzKTsKIAogCQlpZiAoZmxhZ3MgJiBESVJUWTEpIHsKIAkJCWlndF9kZWJ1ZygiJXNb JWRdOiBTZXR0aW5nIGFsbCByZWdpc3RlcnMgb2YgY3R4IDAgdG8gMHglMDh4XG4iLApAQCAtNzI1 LDcgKzcyNiw3IEBAIHN0YXRpYyB2b2lkIGlzb2xhdGlvbihpbnQgZmQsCiAJCSAqIHRoZSBkZWZh dWx0IHZhbHVlcyBmcm9tIHRoaXMgY29udGV4dCwgYnV0IGlmIGdvZXMgYmFkbHkgd2UKIAkJICog c2VlIHRoZSBjb3JydXB0aW9uIGZyb20gdGhlIHByZXZpb3VzIGNvbnRleHQgaW5zdGVhZCEKIAkJ ICovCi0JCWN0eFsxXSA9IGdlbV9jb250ZXh0X2Nsb25lX3dpdGhfZW5naW5lcyhmZCwgMCk7CisJ CWN0eFsxXSA9IGludGVsX2N0eF9jcmVhdGUoZmQsIGNmZyk7CiAJCXJlZ3NbMV0gPSByZWFkX3Jl Z3MoZmQsIGN0eFsxXSwgZSwgZmxhZ3MpOwogCiAJCWlmIChmbGFncyAmIERJUlRZMikgewpAQCAt NzUwLDcgKzc1MSw3IEBAIHN0YXRpYyB2b2lkIGlzb2xhdGlvbihpbnQgZmQsCiAKIAkJZm9yIChp bnQgbiA9IDA7IG4gPCBBUlJBWV9TSVpFKGN0eCk7IG4rKykgewogCQkJZ2VtX2Nsb3NlKGZkLCBy ZWdzW25dKTsKLQkJCWdlbV9jb250ZXh0X2Rlc3Ryb3koZmQsIGN0eFtuXSk7CisJCQlpbnRlbF9j dHhfZGVzdHJveShmZCwgY3R4W25dKTsKIAkJfQogCQlnZW1fY2xvc2UoZmQsIHRtcCk7CiAJfQpA QCAtNzYzLDIxICs3NjQsMjUgQEAgc3RhdGljIHZvaWQgaXNvbGF0aW9uKGludCBmZCwKICNkZWZp bmUgUzQgKDQgPDwgOCkKICNkZWZpbmUgU0xFRVBfTUFTSyAoMHhmIDw8IDgpCiAKLXN0YXRpYyB1 aW50MzJfdCBjcmVhdGVfcmVzZXRfY29udGV4dChpbnQgaTkxNSkKK3N0YXRpYyBjb25zdCBpbnRl bF9jdHhfdCAqCitjcmVhdGVfcmVzZXRfY29udGV4dChpbnQgaTkxNSwgY29uc3QgaW50ZWxfY3R4 X2NmZ190ICpjZmcpCiB7CisJY29uc3QgaW50ZWxfY3R4X3QgKmN0eCA9IGludGVsX2N0eF9jcmVh dGUoaTkxNSwgY2ZnKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NvbnRleHRfcGFyYW0gcGFyYW0g PSB7Ci0JCS5jdHhfaWQgPSBnZW1fY29udGV4dF9jbG9uZV93aXRoX2VuZ2luZXMoaTkxNSwgMCks CisJCS5jdHhfaWQgPSBjdHgtPmlkLAogCQkucGFyYW0gPSBJOTE1X0NPTlRFWFRfUEFSQU1fQkFO TkFCTEUsCiAJfTsKIAogCWdlbV9jb250ZXh0X3NldF9wYXJhbShpOTE1LCAmcGFyYW0pOwotCXJl dHVybiBwYXJhbS5jdHhfaWQ7CisJcmV0dXJuIGN0eDsKIH0KIAotc3RhdGljIHZvaWQgaW5qZWN0 X3Jlc2V0X2NvbnRleHQoaW50IGZkLCBjb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2lu ZTIgKmUpCitzdGF0aWMgdm9pZCBpbmplY3RfcmVzZXRfY29udGV4dChpbnQgZmQsIGNvbnN0IGlu dGVsX2N0eF9jZmdfdCAqY2ZnLAorCQkJCSBjb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2Vu Z2luZTIgKmUpCiB7CisJY29uc3QgaW50ZWxfY3R4X3QgKmN0eCA9IGNyZWF0ZV9yZXNldF9jb250 ZXh0KGZkLCBjZmcpOwogCXN0cnVjdCBpZ3Rfc3Bpbl9mYWN0b3J5IG9wdHMgPSB7Ci0JCS5jdHhf aWQgPSBjcmVhdGVfcmVzZXRfY29udGV4dChmZCksCisJCS5jdHggPSBjdHgsCiAJCS5lbmdpbmUg PSBlLT5mbGFncywKIAkJLmZsYWdzID0gSUdUX1NQSU5fRkFTVCwKIAl9OwpAQCAtODAyLDEwICs4 MDcsMTAgQEAgc3RhdGljIHZvaWQgaW5qZWN0X3Jlc2V0X2NvbnRleHQoaW50IGZkLCBjb25zdCBz dHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUKIAlpZ3RfZm9yY2VfZ3B1X3Jlc2V0KGZk KTsKIAogCWlndF9zcGluX2ZyZWUoZmQsIHNwaW4pOwotCWdlbV9jb250ZXh0X2Rlc3Ryb3koZmQs IG9wdHMuY3R4X2lkKTsKKwlpbnRlbF9jdHhfZGVzdHJveShmZCwgY3R4KTsKIH0KIAotc3RhdGlj IHZvaWQgcHJlc2VydmF0aW9uKGludCBmZCwKK3N0YXRpYyB2b2lkIHByZXNlcnZhdGlvbihpbnQg ZmQsIGNvbnN0IGludGVsX2N0eF9jZmdfdCAqY2ZnLAogCQkJIGNvbnN0IHN0cnVjdCBpbnRlbF9l eGVjdXRpb25fZW5naW5lMiAqZSwKIAkJCSB1bnNpZ25lZCBpbnQgZmxhZ3MpCiB7CkBAIC04MTks MTcgKzgyNCwxNyBAQCBzdGF0aWMgdm9pZCBwcmVzZXJ2YXRpb24oaW50IGZkLAogCQkweGRlYWRi ZWVmCiAJfTsKIAljb25zdCB1bnNpZ25lZCBpbnQgbnVtX3ZhbHVlcyA9IEFSUkFZX1NJWkUodmFs dWVzKTsKLQl1aW50MzJfdCBjdHhbbnVtX3ZhbHVlcyArMSBdOworCWNvbnN0IGludGVsX2N0eF90 ICpjdHhbbnVtX3ZhbHVlcyArIDFdOwogCXVpbnQzMl90IHJlZ3NbbnVtX3ZhbHVlcyArIDFdWzJd OwogCWlndF9zcGluX3QgKnNwaW47CiAKIAlnZW1fcXVpZXNjZW50X2dwdShmZCk7CiAKLQljdHhb bnVtX3ZhbHVlc10gPSBnZW1fY29udGV4dF9jbG9uZV93aXRoX2VuZ2luZXMoZmQsIDApOwotCXNw aW4gPSBpZ3Rfc3Bpbl9uZXcoZmQsIC5jdHhfaWQgPSBjdHhbbnVtX3ZhbHVlc10sIC5lbmdpbmUg PSBlLT5mbGFncyk7CisJY3R4W251bV92YWx1ZXNdID0gaW50ZWxfY3R4X2NyZWF0ZShmZCwgY2Zn KTsKKwlzcGluID0gaWd0X3NwaW5fbmV3KGZkLCAuY3R4ID0gY3R4W251bV92YWx1ZXNdLCAuZW5n aW5lID0gZS0+ZmxhZ3MpOwogCXJlZ3NbbnVtX3ZhbHVlc11bMF0gPSByZWFkX3JlZ3MoZmQsIGN0 eFtudW1fdmFsdWVzXSwgZSwgZmxhZ3MpOwogCWZvciAoaW50IHYgPSAwOyB2IDwgbnVtX3ZhbHVl czsgdisrKSB7Ci0JCWN0eFt2XSA9IGdlbV9jb250ZXh0X2Nsb25lX3dpdGhfZW5naW5lcyhmZCwg MCk7CisJCWN0eFt2XSA9IGludGVsX2N0eF9jcmVhdGUoZmQsIGNmZyk7CiAJCXdyaXRlX3JlZ3Mo ZmQsIGN0eFt2XSwgZSwgZmxhZ3MsIHZhbHVlc1t2XSk7CiAKIAkJcmVnc1t2XVswXSA9IHJlYWRf cmVncyhmZCwgY3R4W3ZdLCBlLCBmbGFncyk7CkBAIC04MzksNyArODQ0LDcgQEAgc3RhdGljIHZv aWQgcHJlc2VydmF0aW9uKGludCBmZCwKIAlpZ3Rfc3Bpbl9mcmVlKGZkLCBzcGluKTsKIAogCWlm IChmbGFncyAmIFJFU0VUKQotCQlpbmplY3RfcmVzZXRfY29udGV4dChmZCwgZSk7CisJCWluamVj dF9yZXNldF9jb250ZXh0KGZkLCBjZmcsIGUpOwogCiAJc3dpdGNoIChmbGFncyAmIFNMRUVQX01B U0spIHsKIAljYXNlIE5PU0xFRVA6CkBAIC04NjYsNyArODcxLDcgQEAgc3RhdGljIHZvaWQgcHJl c2VydmF0aW9uKGludCBmZCwKIAkJYnJlYWs7CiAJfQogCi0Jc3BpbiA9IGlndF9zcGluX25ldyhm ZCwgLmN0eF9pZCA9IGN0eFtudW1fdmFsdWVzXSwgLmVuZ2luZSA9IGUtPmZsYWdzKTsKKwlzcGlu ID0gaWd0X3NwaW5fbmV3KGZkLCAuY3R4ID0gY3R4W251bV92YWx1ZXNdLCAuZW5naW5lID0gZS0+ ZmxhZ3MpOwogCWZvciAoaW50IHYgPSAwOyB2IDwgbnVtX3ZhbHVlczsgdisrKQogCQlyZWdzW3Zd WzFdID0gcmVhZF9yZWdzKGZkLCBjdHhbdl0sIGUsIGZsYWdzKTsKIAlyZWdzW251bV92YWx1ZXNd WzFdID0gcmVhZF9yZWdzKGZkLCBjdHhbbnVtX3ZhbHVlc10sIGUsIGZsYWdzKTsKQEAgLTg4MCwx MCArODg1LDEwIEBAIHN0YXRpYyB2b2lkIHByZXNlcnZhdGlvbihpbnQgZmQsCiAKIAkJZ2VtX2Ns b3NlKGZkLCByZWdzW3ZdWzBdKTsKIAkJZ2VtX2Nsb3NlKGZkLCByZWdzW3ZdWzFdKTsKLQkJZ2Vt X2NvbnRleHRfZGVzdHJveShmZCwgY3R4W3ZdKTsKKwkJaW50ZWxfY3R4X2Rlc3Ryb3koZmQsIGN0 eFt2XSk7CiAJfQogCWNvbXBhcmVfcmVncyhmZCwgZSwgcmVnc1tudW1fdmFsdWVzXVswXSwgcmVn c1tudW1fdmFsdWVzXVsxXSwgImNsZWFuIik7Ci0JZ2VtX2NvbnRleHRfZGVzdHJveShmZCwgY3R4 W251bV92YWx1ZXNdKTsKKwlpbnRlbF9jdHhfZGVzdHJveShmZCwgY3R4W251bV92YWx1ZXNdKTsK IH0KIAogc3RhdGljIHVuc2lnbmVkIGludCBfX2hhc19jb250ZXh0X2lzb2xhdGlvbihpbnQgZmQp CkBAIC05MDEsOCArOTA2LDggQEAgc3RhdGljIHVuc2lnbmVkIGludCBfX2hhc19jb250ZXh0X2lz b2xhdGlvbihpbnQgZmQpCiAJcmV0dXJuIHZhbHVlOwogfQogCi0jZGVmaW5lIHRlc3RfZWFjaF9l bmdpbmUoZSwgaTkxNSwgbWFzaykgXAotCV9fZm9yX2VhY2hfcGh5c2ljYWxfZW5naW5lKGk5MTUs IGUpIFwKKyNkZWZpbmUgdGVzdF9lYWNoX2VuZ2luZShlLCBpOTE1LCBjZmcsIG1hc2spIFwKKwlm b3JfZWFjaF9jdHhfY2ZnX2VuZ2luZShpOTE1LCBjZmcsIGUpIFwKIAkJZm9yX2VhY2hfaWYobWFz ayAmICgxIDw8IChlKS0+Y2xhc3MpKSBcCiAJCQlpZ3RfZHluYW1pY19mKCIlcyIsIChlKS0+bmFt ZSkKIApAQCAtOTEwLDYgKzkxNSw3IEBAIGlndF9tYWluCiB7CiAJdW5zaWduZWQgaW50IGhhc19j b250ZXh0X2lzb2xhdGlvbiA9IDA7CiAJY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdp bmUyICplOworCWludGVsX2N0eF9jZmdfdCBjZmc7CiAJaW50IGk5MTUgPSAtMTsKIAogCWlndF9m aXh0dXJlIHsKQEAgLTkxOCw2ICs5MjQsNyBAQCBpZ3RfbWFpbgogCQlpOTE1ID0gZHJtX29wZW5f ZHJpdmVyKERSSVZFUl9JTlRFTCk7CiAJCWlndF9yZXF1aXJlX2dlbShpOTE1KTsKIAkJaWd0X3Jl cXVpcmUoZ2VtX2hhc19jb250ZXh0cyhpOTE1KSk7CisJCWNmZyA9IGludGVsX2N0eF9jZmdfYWxs X3BoeXNpY2FsKGk5MTUpOwogCiAJCWhhc19jb250ZXh0X2lzb2xhdGlvbiA9IF9faGFzX2NvbnRl eHRfaXNvbGF0aW9uKGk5MTUpOwogCQlpZ3RfcmVxdWlyZShoYXNfY29udGV4dF9pc29sYXRpb24p OwpAQCAtOTI5LDUwICs5MzYsNDggQEAgaWd0X21haW4KIAkJaWd0X3NraXBfb24oZ2VuID4gTEFT VF9LTk9XTl9HRU4pOwogCX0KIAotCS8qIF9fZm9yX2VhY2hfcGh5c2ljYWxfZW5naW5lIHN3aXRj aGVzIGNvbnRleHQgdG8gYWxsIGVuZ2luZXMuICovCi0KIAlpZ3RfZml4dHVyZSB7CiAJCWlndF9m b3JrX2hhbmdfZGV0ZWN0b3IoaTkxNSk7CiAJfQogCiAJaWd0X3N1YnRlc3Rfd2l0aF9keW5hbWlj KCJub25wcml2IikgewotCQl0ZXN0X2VhY2hfZW5naW5lKGUsIGk5MTUsIGhhc19jb250ZXh0X2lz b2xhdGlvbikKLQkJCW5vbnByaXYoaTkxNSwgZSwgMCk7CisJCXRlc3RfZWFjaF9lbmdpbmUoZSwg aTkxNSwgJmNmZywgaGFzX2NvbnRleHRfaXNvbGF0aW9uKQorCQkJbm9ucHJpdihpOTE1LCAmY2Zn LCBlLCAwKTsKIAl9CiAKIAlpZ3Rfc3VidGVzdF93aXRoX2R5bmFtaWMoIm5vbnByaXYtc3dpdGNo IikgewotCQl0ZXN0X2VhY2hfZW5naW5lKGUsIGk5MTUsIGhhc19jb250ZXh0X2lzb2xhdGlvbikK LQkJCW5vbnByaXYoaTkxNSwgZSwgRElSVFkyKTsKKwkJdGVzdF9lYWNoX2VuZ2luZShlLCBpOTE1 LCAmY2ZnLCBoYXNfY29udGV4dF9pc29sYXRpb24pCisJCQlub25wcml2KGk5MTUsICZjZmcsIGUs IERJUlRZMik7CiAJfQogCiAJaWd0X3N1YnRlc3Rfd2l0aF9keW5hbWljKCJjbGVhbiIpIHsKLQkJ dGVzdF9lYWNoX2VuZ2luZShlLCBpOTE1LCBoYXNfY29udGV4dF9pc29sYXRpb24pCi0JCQlpc29s YXRpb24oaTkxNSwgZSwgMCk7CisJCXRlc3RfZWFjaF9lbmdpbmUoZSwgaTkxNSwgJmNmZywgaGFz X2NvbnRleHRfaXNvbGF0aW9uKQorCQkJaXNvbGF0aW9uKGk5MTUsICZjZmcsIGUsIDApOwogCX0K IAogCWlndF9zdWJ0ZXN0X3dpdGhfZHluYW1pYygiZGlydHktY3JlYXRlIikgewotCQl0ZXN0X2Vh Y2hfZW5naW5lKGUsIGk5MTUsIGhhc19jb250ZXh0X2lzb2xhdGlvbikKLQkJCWlzb2xhdGlvbihp OTE1LCBlLCBESVJUWTEpOworCQl0ZXN0X2VhY2hfZW5naW5lKGUsIGk5MTUsICZjZmcsIGhhc19j b250ZXh0X2lzb2xhdGlvbikKKwkJCWlzb2xhdGlvbihpOTE1LCAmY2ZnLCBlLCBESVJUWTEpOwog CX0KIAogCWlndF9zdWJ0ZXN0X3dpdGhfZHluYW1pYygiZGlydHktc3dpdGNoIikgewotCQl0ZXN0 X2VhY2hfZW5naW5lKGUsIGk5MTUsIGhhc19jb250ZXh0X2lzb2xhdGlvbikKLQkJCWlzb2xhdGlv bihpOTE1LCBlLCBESVJUWTIpOworCQl0ZXN0X2VhY2hfZW5naW5lKGUsIGk5MTUsICZjZmcsIGhh c19jb250ZXh0X2lzb2xhdGlvbikKKwkJCWlzb2xhdGlvbihpOTE1LCAmY2ZnLCBlLCBESVJUWTIp OwogCX0KIAogCWlndF9zdWJ0ZXN0X3dpdGhfZHluYW1pYygicHJlc2VydmF0aW9uIikgewotCQl0 ZXN0X2VhY2hfZW5naW5lKGUsIGk5MTUsIGhhc19jb250ZXh0X2lzb2xhdGlvbikKLQkJCXByZXNl cnZhdGlvbihpOTE1LCBlLCAwKTsKKwkJdGVzdF9lYWNoX2VuZ2luZShlLCBpOTE1LCAmY2ZnLCBo YXNfY29udGV4dF9pc29sYXRpb24pCisJCQlwcmVzZXJ2YXRpb24oaTkxNSwgJmNmZywgZSwgMCk7 CiAJfQogCiAJaWd0X3N1YnRlc3Rfd2l0aF9keW5hbWljKCJwcmVzZXJ2YXRpb24tUzMiKSB7Ci0J CXRlc3RfZWFjaF9lbmdpbmUoZSwgaTkxNSwgaGFzX2NvbnRleHRfaXNvbGF0aW9uKQotCQkJcHJl c2VydmF0aW9uKGk5MTUsIGUsIFMzKTsKKwkJdGVzdF9lYWNoX2VuZ2luZShlLCBpOTE1LCAmY2Zn LCBoYXNfY29udGV4dF9pc29sYXRpb24pCisJCQlwcmVzZXJ2YXRpb24oaTkxNSwgJmNmZywgZSwg UzMpOwogCX0KIAogCWlndF9zdWJ0ZXN0X3dpdGhfZHluYW1pYygicHJlc2VydmF0aW9uLVM0Iikg ewotCQl0ZXN0X2VhY2hfZW5naW5lKGUsIGk5MTUsIGhhc19jb250ZXh0X2lzb2xhdGlvbikKLQkJ CXByZXNlcnZhdGlvbihpOTE1LCBlLCBTNCk7CisJCXRlc3RfZWFjaF9lbmdpbmUoZSwgaTkxNSwg JmNmZywgaGFzX2NvbnRleHRfaXNvbGF0aW9uKQorCQkJcHJlc2VydmF0aW9uKGk5MTUsICZjZmcs IGUsIFM0KTsKIAl9CiAKIAlpZ3RfZml4dHVyZSB7CkBAIC05ODIsOCArOTg3LDggQEAgaWd0X21h aW4KIAlpZ3Rfc3VidGVzdF93aXRoX2R5bmFtaWMoInByZXNlcnZhdGlvbi1yZXNldCIpIHsKIAkJ aWd0X2hhbmdfdCBoYW5nID0gaWd0X2FsbG93X2hhbmcoaTkxNSwgMCwgMCk7CiAKLQkJdGVzdF9l YWNoX2VuZ2luZShlLCBpOTE1LCBoYXNfY29udGV4dF9pc29sYXRpb24pCi0JCQlwcmVzZXJ2YXRp b24oaTkxNSwgZSwgUkVTRVQpOworCQl0ZXN0X2VhY2hfZW5naW5lKGUsIGk5MTUsICZjZmcsIGhh c19jb250ZXh0X2lzb2xhdGlvbikKKwkJCXByZXNlcnZhdGlvbihpOTE1LCAmY2ZnLCBlLCBSRVNF VCk7CiAKIAkJaWd0X2Rpc2FsbG93X2hhbmcoaTkxNSwgaGFuZyk7CiAJfQotLSAKMi4zMS4xCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1h aWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXYK