From: Maarten Lankhorst Subject: [PATCH i-g-t] tests: Add kms_atomic_interruptible test, v4. Date: Tue, 12 Sep 2017 13:27:30 +0200 Message-ID: <20170912112730.32090-1-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mblankhorst.nl (mblankhorst.nl [141.105.120.124]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2889289831 for ; Tue, 12 Sep 2017 11:27:36 +0000 (UTC) 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 Cc: Daniel Stone List-Id: intel-gfx@lists.freedesktop.org VGhpcyB0ZXN0cyB0aGUgdmFyaW91cyBwYXJ0cyBvZiBhdG9taWMgdGhhdCBJIHdhbnQgdG8gbWFr ZQppbnRlcnJ1cHRpYmxlLiBSdW5uaW5nIHdpdGggLS1kZWJ1ZyBzaG93cyB0aGUgc3RhdHMgZnJv bQpfX2lndF9zaWdpdGVyX2NvbnRpbnVlLCB3aGljaCBjYW4gYmUgdXNlZCB0byBtYWtlIHN1cmUg dGhhdAp3ZSBkb24ndCBmYWxsIG92ZXIuCgpUaGUgZGVmYXVsdCBpZ3Qga21zIGhlbHBlcnMgdXNl IGRybUlvY3RsLCB3aGljaCBpcyBub3QgaW50ZXJjZXB0ZWQKYnkgaWd0X3doaWxlX2ludGVycnVw dGlibGUuIE9ubHkgaWd0X2lvY3RsIGlzLiBUaGlzIG1lYW5zIHdlIGhhdmUKdG8gY2FsbCB0aGUg aW9jdGxzIG1hbnVhbGx5IGhlcmUuCgpDaGFuZ2VzIHNpbmNlIHYxOgotIEltcGxlbWVudCBpbnRl cnJ1cHRpYmxlIERQTVMgY2hlY2tpbmcgdG9vLgotIFVzZSBpZ3RfaW9jdGwgKyBpZ3Rfd2hpbGVf aW50ZXJydXB0aWJsZSwgaW5zdGVhZCBvZiB0aGUgc2lnbmFsIGhlbHBlcgogIHNob3RndW4uCkNo YW5nZXMgc2luY2UgdjI6Ci0gQnVtcCB3aGl0ZXNwYWNlIHRvIGdldCByaWQgb2YgdGhlIHdlaXJk IGRvdWJsZSB9IGF0IHNhbWUgaW5kZW50LgotIFVzZSBtb3JlIG5ld2xpbmVzIGluIHRoZSBjYWxs IHRvIHRoZSBhdG9taWMgaW9jdGwuCkNoYW5nZXMgc2luY2UgdjM6Ci0gRml4IGNvcHlyaWdodCBv biB5ZWFyLiAoQWRyaW5hZWwpCi0gVXNlIGRvX2lvY3RsIGluc3RlYWQgb2YgZG9fb3JfZGllKGln dF9pb2N0bCkgKGlja2xlKS4KLSBBZGQgdGVzdCBkZXNjcmlwdGlvbi4gKEFkcmluYWVsKQoKU2ln bmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4Lmlu dGVsLmNvbT4KQ2M6IERhbmllbCBTdG9uZSA8ZGFuaWVsc0Bjb2xsYWJvcmEuY29tPgpBY2tlZC1i eTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KLS0tCiBsaWIvaWd0X2tt cy5jICAgICAgICAgICAgICAgICAgICB8ICAgMyArLQogbGliL2lndF9rbXMuaCAgICAgICAgICAg ICAgICAgICAgfCAgIDEgKwogdGVzdHMvTWFrZWZpbGUuc291cmNlcyAgICAgICAgICAgfCAgIDEg KwogdGVzdHMva21zX2F0b21pY19pbnRlcnJ1cHRpYmxlLmMgfCAzMjUgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDMyOSBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMva21zX2F0b21pY19p bnRlcnJ1cHRpYmxlLmMKCmRpZmYgLS1naXQgYS9saWIvaWd0X2ttcy5jIGIvbGliL2lndF9rbXMu YwppbmRleCA3MmZkZTc5MmJhODkuLjdiY2FmYzA3MmY3MCAxMDA2NDQKLS0tIGEvbGliL2lndF9r bXMuYworKysgYi9saWIvaWd0X2ttcy5jCkBAIC0xODYsNyArMTg2LDggQEAgY29uc3QgY2hhciAq aWd0X2NydGNfcHJvcF9uYW1lc1tJR1RfTlVNX0NSVENfUFJPUFNdID0gewogCiBjb25zdCBjaGFy ICppZ3RfY29ubmVjdG9yX3Byb3BfbmFtZXNbSUdUX05VTV9DT05ORUNUT1JfUFJPUFNdID0gewog CSJzY2FsaW5nIG1vZGUiLAotCSJDUlRDX0lEIgorCSJDUlRDX0lEIiwKKwkiRFBNUyIKIH07CiAK IC8qCmRpZmYgLS1naXQgYS9saWIvaWd0X2ttcy5oIGIvbGliL2lndF9rbXMuaAppbmRleCBlNWRj MzI5YjE2MWUuLjNkMTA2MWZhMDhjOCAxMDA2NDQKLS0tIGEvbGliL2lndF9rbXMuaAorKysgYi9s aWIvaWd0X2ttcy5oCkBAIC0xMTQsNiArMTE0LDcgQEAgZXh0ZXJuIGNvbnN0IGNoYXIgKmlndF9j cnRjX3Byb3BfbmFtZXNbXTsKIGVudW0gaWd0X2F0b21pY19jb25uZWN0b3JfcHJvcGVydGllcyB7 CiAgICAgICAgSUdUX0NPTk5FQ1RPUl9TQ0FMSU5HX01PREUgPSAwLAogICAgICAgIElHVF9DT05O RUNUT1JfQ1JUQ19JRCwKKyAgICAgICBJR1RfQ09OTkVDVE9SX0RQTVMsCiAgICAgICAgSUdUX05V TV9DT05ORUNUT1JfUFJPUFMKIH07CiAKZGlmZiAtLWdpdCBhL3Rlc3RzL01ha2VmaWxlLnNvdXJj ZXMgYi90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzCmluZGV4IDBmNGUzOWFmMTBhMS4uY2Y1NDJkZjE4 MWE4IDEwMDY0NAotLS0gYS90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzCisrKyBiL3Rlc3RzL01ha2Vm aWxlLnNvdXJjZXMKQEAgLTE3Miw2ICsxNzIsNyBAQCBURVNUU19wcm9ncyA9IFwKIAlrbXNfM2Qg XAogCWttc19hZGRmYl9iYXNpYyBcCiAJa21zX2F0b21pYyBcCisJa21zX2F0b21pY19pbnRlcnJ1 cHRpYmxlIFwKIAlrbXNfYXRvbWljX3RyYW5zaXRpb24gXAogCWttc19idXN5IFwKIAlrbXNfY2Nz IFwKZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc19hdG9taWNfaW50ZXJydXB0aWJsZS5jIGIvdGVzdHMv a21zX2F0b21pY19pbnRlcnJ1cHRpYmxlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwLi40ZTM5MDE5YzcyZGUKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9rbXNfYXRv bWljX2ludGVycnVwdGlibGUuYwpAQCAtMCwwICsxLDMyNSBAQAorLyoKKyAqIENvcHlyaWdodCDC qSAyMDE3IEludGVsIENvcnBvcmF0aW9uCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3Jh bnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkg b2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUg IlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0 aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwg Y29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAq IGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29u cyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0 IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0 IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0Cisg KiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRp YWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMg UFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBP UgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElF UyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBBVVRIT1JT IE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9S IE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBU T1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJ T04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUworICogSU4g VEhFIFNPRlRXQVJFLgorICovCisKKyNpbmNsdWRlICJpZ3QuaCIKKyNpbmNsdWRlICJkcm10ZXN0 LmgiCisjaW5jbHVkZSAic3dfc3luYy5oIgorCitJR1RfVEVTVF9ERVNDUklQVElPTigiVGVzdHMg dGhhdCBpbnRlcnJ1cHQgdmFyaW91cyBhdG9taWMgaW9jdGxzLiIpOworCitlbnVtIHBsYW5lX3Rl c3RfdHlwZQoreworCXRlc3RfbGVnYWN5X21vZGVzZXQsCisJdGVzdF9hdG9taWNfbW9kZXNldCwK Kwl0ZXN0X2xlZ2FjeV9kcG1zLAorCXRlc3Rfc2V0cGxhbmUsCisJdGVzdF9zZXRjdXJzb3IsCisJ dGVzdF9wYWdlZmxpcAorfTsKKworc3RhdGljIGludCBibG9ja19wbGFuZShpZ3RfZGlzcGxheV90 ICpkaXNwbGF5LCBpZ3Rfb3V0cHV0X3QgKm91dHB1dCwgZW51bSBwbGFuZV90ZXN0X3R5cGUgdGVz dF90eXBlLCBpZ3RfcGxhbmVfdCAqcGxhbmUpCit7CisJaW50IHRpbWVsaW5lID0gc3dfc3luY190 aW1lbGluZV9jcmVhdGUoKTsKKworCWlndF9mb3JrKGNoaWxkLCAxKSB7CisJCS8qIElnbm9yZSB0 aGUgc2lnbmFsIGhlbHBlciwgd2UgbmVlZCB0byBibG9jayBpbmRlZmluaXRlbHkgb24gdGhlIGZl bmNlLiAqLworCQlzaWduYWwoU0lHQ09OVCwgU0lHX0lHTik7CisKKwkJaWYgKHRlc3RfdHlwZSA9 PSB0ZXN0X2xlZ2FjeV9tb2Rlc2V0IHx8IHRlc3RfdHlwZSA9PSB0ZXN0X2F0b21pY19tb2Rlc2V0 KSB7CisJCQlpZ3Rfb3V0cHV0X3NldF9waXBlKG91dHB1dCwgUElQRV9OT05FKTsKKwkJCWlndF9w bGFuZV9zZXRfZmIocGxhbmUsIE5VTEwpOworCQl9CisJCWlndF9wbGFuZV9zZXRfZmVuY2VfZmQo cGxhbmUsIHN3X3N5bmNfdGltZWxpbmVfY3JlYXRlX2ZlbmNlKHRpbWVsaW5lLCAxKSk7CisKKwkJ aWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBDT01NSVRfQVRPTUlDKTsKKwl9CisKKwlyZXR1 cm4gdGltZWxpbmU7Cit9CisKK3N0YXRpYyB2b2lkIHVuYmxvY2soaW50IGJsb2NrKQoreworCXN3 X3N5bmNfdGltZWxpbmVfaW5jKGJsb2NrLCAxKTsKKwljbG9zZShibG9jayk7Cit9CisKK3N0YXRp YyB2b2lkIGV2X3BhZ2VfZmxpcChpbnQgZmQsIHVuc2lnbmVkIHNlcSwgdW5zaWduZWQgdHZfc2Vj LCB1bnNpZ25lZCB0dl91c2VjLCB2b2lkICp1c2VyX2RhdGEpCit7CisJaWd0X2RlYnVnKCJSZXRy aWV2ZWQgdmJsYW5rIHNlcTogJXUgb24gdW5rXG4iLCBzZXEpOworfQorCitzdGF0aWMgZHJtRXZl bnRDb250ZXh0IGRybV9ldmVudHMgPSB7CisJLnZlcnNpb24gPSAyLAorCS5wYWdlX2ZsaXBfaGFu ZGxlciA9IGV2X3BhZ2VfZmxpcAorfTsKKworc3RhdGljIHZvaWQgcnVuX3BsYW5lX3Rlc3QoaWd0 X2Rpc3BsYXlfdCAqZGlzcGxheSwgZW51bSBwaXBlIHBpcGUsIGlndF9vdXRwdXRfdCAqb3V0cHV0 LAorCQkJICAgZW51bSBwbGFuZV90ZXN0X3R5cGUgdGVzdF90eXBlLCB1bnNpZ25lZCBwbGFuZV90 eXBlKQoreworCWRybU1vZGVNb2RlSW5mbyAqbW9kZTsKKwlpZ3RfZmJfdCBmYiwgZmIyOworCWln dF9wbGFuZV90ICpwcmltYXJ5LCAqcGxhbmU7CisJaW50IGJsb2NrOworCisJLyoKKwkgKiBNYWtl IHN1cmUgd2Ugc3RhcnQgd2l0aCBldmVyeXRoaW5nIGRpc2FibGVkIHRvIGZvcmNlIGEgcmVhbCBt b2Rlc2V0LgorCSAqIGlndF9kaXNwbGF5X2luaXQgb25seSBzZXRzIHN3IHN0YXRlLCBhbmQgYXNz dW1lcyB0aGUgZmlyc3QgdGVzdCBkb2Vzbid0IGNhcmUKKwkgKiBhYm91dCBodyBzdGF0ZS4KKwkg Ki8KKwlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIENPTU1JVF9BVE9NSUMpOworCisJaWd0 X291dHB1dF9zZXRfcGlwZShvdXRwdXQsIHBpcGUpOworCisJcHJpbWFyeSA9IGlndF9vdXRwdXRf Z2V0X3BsYW5lX3R5cGUob3V0cHV0LCBEUk1fUExBTkVfVFlQRV9QUklNQVJZKTsKKwlwbGFuZSA9 IGlndF9vdXRwdXRfZ2V0X3BsYW5lX3R5cGUob3V0cHV0LCBwbGFuZV90eXBlKTsKKwltb2RlID0g aWd0X291dHB1dF9nZXRfbW9kZShvdXRwdXQpOworCisJaWd0X2NyZWF0ZV9mYihkaXNwbGF5LT5k cm1fZmQsIG1vZGUtPmhkaXNwbGF5LCBtb2RlLT52ZGlzcGxheSwKKwkJICAgICAgRFJNX0ZPUk1B VF9YUkdCODg4OCwgTE9DQUxfRFJNX0ZPUk1BVF9NT0RfTk9ORSwgJmZiKTsKKworCXN3aXRjaCAo cGxhbmVfdHlwZSkgeworCWNhc2UgRFJNX1BMQU5FX1RZUEVfUFJJTUFSWToKKwkJaWd0X2NyZWF0 ZV9mYihkaXNwbGF5LT5kcm1fZmQsIG1vZGUtPmhkaXNwbGF5LCBtb2RlLT52ZGlzcGxheSwKKwkJ CSAgICAgIERSTV9GT1JNQVRfWFJHQjg4ODgsIExPQ0FMX0RSTV9GT1JNQVRfTU9EX05PTkUsICZm YjIpOworCQlicmVhazsKKwljYXNlIERSTV9QTEFORV9UWVBFX0NVUlNPUjoKKwkJaWd0X2NyZWF0 ZV9mYihkaXNwbGF5LT5kcm1fZmQsIDY0LCA2NCwKKwkJICAgICAgRFJNX0ZPUk1BVF9BUkdCODg4 OCwgTE9DQUxfRFJNX0ZPUk1BVF9NT0RfTk9ORSwgJmZiMik7CisJCWJyZWFrOworCX0KKworCWlm ICh0ZXN0X3R5cGUgIT0gdGVzdF9sZWdhY3lfbW9kZXNldCAmJiB0ZXN0X3R5cGUgIT0gdGVzdF9h dG9taWNfbW9kZXNldCkgeworCQlpZ3RfcGxhbmVfc2V0X2ZiKHByaW1hcnksICZmYik7CisJCWln dF9kaXNwbGF5X2NvbW1pdDIoZGlzcGxheSwgQ09NTUlUX0FUT01JQyk7CisJfQorCisJaWd0X3Bs YW5lX3NldF9mYihwbGFuZSwgJmZiMik7CisKKwlibG9jayA9IGJsb2NrX3BsYW5lKGRpc3BsYXks IG91dHB1dCwgdGVzdF90eXBlLCBwbGFuZSk7CisJc2xlZXAoMSk7CisKKwlpZ3RfZm9yayhjaGls ZCwgMSkgeworCQlzaWduYWwoU0lHQ09OVCwgU0lHX0lHTik7CisJCWlndF9hc3NlcnQoc2xlZXAo NSkgPT0gMCk7CisKKwkJdW5ibG9jayhibG9jayk7CisJfQorCisJLyogcnVuIHRoZSB0ZXN0ICov CisJaWd0X3doaWxlX2ludGVycnVwdGlibGUodHJ1ZSkgeworCQlzd2l0Y2ggKHRlc3RfdHlwZSkg eworCQkJY2FzZSB0ZXN0X2xlZ2FjeV9tb2Rlc2V0OiB7CisJCQkJc3RydWN0IGRybV9tb2RlX2Ny dGMgY3J0YyA9IHsKKwkJCQkJLnNldF9jb25uZWN0b3JzX3B0ciA9ICh1aW50NjRfdCkodWludHB0 cl90KSZvdXRwdXQtPmlkLAorCQkJCQkuY291bnRfY29ubmVjdG9ycyA9IDEsCisJCQkJCS5jcnRj X2lkID0gcHJpbWFyeS0+cGlwZS0+Y3J0Y19pZCwKKwkJCQkJLmZiX2lkID0gZmIyLmZiX2lkLAor CQkJCQkubW9kZV92YWxpZCA9IDEsCisJCQkJCS5tb2RlID0gKihzdHJ1Y3QgZHJtX21vZGVfbW9k ZWluZm8qKW1vZGUsCisJCQkJfTsKKworCQkJCWRvX2lvY3RsKGRpc3BsYXktPmRybV9mZCwgRFJN X0lPQ1RMX01PREVfU0VUQ1JUQywgJmNydGMpOworCQkJCWJyZWFrOworCQkJfQorCQkJY2FzZSB0 ZXN0X2F0b21pY19tb2Rlc2V0OiB7CisJCQkJdWludDMyX3Qgb2Jqc1szXSA9IHsKKwkJCQkJcGxh bmUtPnBpcGUtPmNydGNfaWQsCisJCQkJCW91dHB1dC0+aWQsCisJCQkJCXBsYW5lLT5kcm1fcGxh bmUtPnBsYW5lX2lkCisJCQkJfTsKKwkJCQl1aW50MzJfdCBjb3VudF9wcm9wc1szXSA9IHsgMiwg MSwgNiB9OworCQkJCXVpbnQzMl90IHByb3BzW10gPSB7CisJCQkJCS8qIGNydGM6IDIgcHJvcHMg Ki8KKwkJCQkJcGxhbmUtPnBpcGUtPmF0b21pY19wcm9wc19jcnRjW0lHVF9DUlRDX01PREVfSURd LAorCQkJCQlwbGFuZS0+cGlwZS0+YXRvbWljX3Byb3BzX2NydGNbSUdUX0NSVENfQUNUSVZFXSwK KwkJCQkJLyogY29ubmVjdG9yOiAxIHByb3AgKi8KKwkJCQkJb3V0cHV0LT5jb25maWcuYXRvbWlj X3Byb3BzX2Nvbm5lY3RvcltJR1RfQ09OTkVDVE9SX0NSVENfSURdLAorCQkJCQkvKiBwbGFuZTog cmVtYWluZGVyIHByb3BzICovCisJCQkJCXBsYW5lLT5hdG9taWNfcHJvcHNfcGxhbmVbSUdUX1BM QU5FX0NSVENfSURdLAorCQkJCQlwbGFuZS0+YXRvbWljX3Byb3BzX3BsYW5lW0lHVF9QTEFORV9G Ql9JRF0sCisJCQkJCXBsYW5lLT5hdG9taWNfcHJvcHNfcGxhbmVbSUdUX1BMQU5FX1NSQ19XXSwK KwkJCQkJcGxhbmUtPmF0b21pY19wcm9wc19wbGFuZVtJR1RfUExBTkVfU1JDX0hdLAorCQkJCQlw bGFuZS0+YXRvbWljX3Byb3BzX3BsYW5lW0lHVF9QTEFORV9DUlRDX1ddLAorCQkJCQlwbGFuZS0+ YXRvbWljX3Byb3BzX3BsYW5lW0lHVF9QTEFORV9DUlRDX0hdCisJCQkJfTsKKwkJCQl1aW50NjRf dCBwcm9wX3ZhbHNbXSA9IHsKKwkJCQkJLyogY3J0YyAqLworCQkJCQkwLCAvKiBtb2RlX2lkLCBm aWxsZWQgaW4gYmVsb3cgKi8KKwkJCQkJdHJ1ZSwKKwkJCQkJLyogY29ubmVjdG9yICovCisJCQkJ CXBsYW5lLT5waXBlLT5jcnRjX2lkLAorCQkJCQkvKiBwbGFuZSAqLworCQkJCQlwbGFuZS0+cGlw ZS0+Y3J0Y19pZCwKKwkJCQkJZmIyLmZiX2lkLAorCQkJCQlJR1RfRklYRUQoZmIyLndpZHRoLCAw KSwKKwkJCQkJSUdUX0ZJWEVEKGZiMi5oZWlnaHQsIDApLAorCQkJCQlmYjIud2lkdGgsCisJCQkJ CWZiMi5oZWlnaHQKKwkJCQl9OworCQkJCXVpbnQzMl90IG1vZGVfYmxvYjsKKworCQkJCXN0cnVj dCBkcm1fbW9kZV9hdG9taWMgYXRtID0geworCQkJCQkuZmxhZ3MgPSBEUk1fTU9ERV9BVE9NSUNf QUxMT1dfTU9ERVNFVCwKKwkJCQkJLmNvdW50X29ianMgPSAzLCAvKiBjcnRjLCBjb25uZWN0b3Is IHBsYW5lICovCisJCQkJCS5vYmpzX3B0ciA9ICh1aW50NjRfdCkodWludHB0cl90KSZvYmpzLAor CQkJCQkuY291bnRfcHJvcHNfcHRyID0gKHVpbnQ2NF90KSh1aW50cHRyX3QpJmNvdW50X3Byb3Bz LAorCQkJCQkucHJvcHNfcHRyID0gKHVpbnQ2NF90KSh1aW50cHRyX3QpJnByb3BzLAorCQkJCQku cHJvcF92YWx1ZXNfcHRyID0gKHVpbnQ2NF90KSh1aW50cHRyX3QpJnByb3BfdmFscywKKwkJCQl9 OworCisJCQkJZG9fb3JfZGllKGRybU1vZGVDcmVhdGVQcm9wZXJ0eUJsb2IoZGlzcGxheS0+ZHJt X2ZkLCBtb2RlLCBzaXplb2YoKm1vZGUpLCAmbW9kZV9ibG9iKSk7CisJCQkJcHJvcF92YWxzWzBd ID0gbW9kZV9ibG9iOworCisJCQkJZG9faW9jdGwoZGlzcGxheS0+ZHJtX2ZkLCBEUk1fSU9DVExf TU9ERV9BVE9NSUMsICZhdG0pOworCisJCQkJZG9fb3JfZGllKGRybU1vZGVEZXN0cm95UHJvcGVy dHlCbG9iKGRpc3BsYXktPmRybV9mZCwgbW9kZV9ibG9iKSk7CisJCQkJYnJlYWs7CisJCQl9CisJ CQljYXNlIHRlc3RfbGVnYWN5X2RwbXM6IHsKKwkJCQlzdHJ1Y3QgZHJtX21vZGVfY29ubmVjdG9y X3NldF9wcm9wZXJ0eSBwcm9wID0geworCQkJCQkudmFsdWUgPSBEUk1fTU9ERV9EUE1TX09GRiwK KwkJCQkJLnByb3BfaWQgPSBvdXRwdXQtPmNvbmZpZy5hdG9taWNfcHJvcHNfY29ubmVjdG9yW0lH VF9DT05ORUNUT1JfRFBNU10sCisJCQkJCS5jb25uZWN0b3JfaWQgPSBvdXRwdXQtPmlkLAorCQkJ CX07CisKKwkJCQlkb19pb2N0bChkaXNwbGF5LT5kcm1fZmQsIERSTV9JT0NUTF9NT0RFX1NFVFBS T1BFUlRZLCAmcHJvcCk7CisJCQkJYnJlYWs7CisJCQl9CisJCQljYXNlIHRlc3Rfc2V0Y3Vyc29y OiB7CisJCQkJc3RydWN0IGRybV9tb2RlX2N1cnNvciBjdXIgPSB7CisJCQkJCS5mbGFncyA9IERS TV9NT0RFX0NVUlNPUl9CTywKKwkJCQkJLmNydGNfaWQgPSBwbGFuZS0+cGlwZS0+Y3J0Y19pZCwK KwkJCQkJLndpZHRoID0gZmIyLndpZHRoLAorCQkJCQkuaGVpZ2h0ID0gZmIyLmhlaWdodCwKKwkJ CQkJLmhhbmRsZSA9IGZiMi5nZW1faGFuZGxlLAorCQkJCX07CisJCQkJZG9faW9jdGwoZGlzcGxh eS0+ZHJtX2ZkLCBEUk1fSU9DVExfTU9ERV9DVVJTT1IsICZjdXIpOworCQkJCWJyZWFrOworCQkJ fQorCQkJY2FzZSB0ZXN0X3NldHBsYW5lOiB7CisJCQkJc3RydWN0IGRybV9tb2RlX3NldF9wbGFu ZSBzZXRwbGFuZSA9IHsKKwkJCQkJLnBsYW5lX2lkID0gcGxhbmUtPmRybV9wbGFuZS0+cGxhbmVf aWQsCisJCQkJCS5jcnRjX2lkID0gcGxhbmUtPnBpcGUtPmNydGNfaWQsCisJCQkJCS5mYl9pZCA9 IGZiMi5mYl9pZCwKKwkJCQkJLmNydGNfdyA9IGZiMi53aWR0aCwKKwkJCQkJLmNydGNfaCA9IGZi Mi5oZWlnaHQsCisJCQkJCS5zcmNfdyA9IElHVF9GSVhFRChmYjIud2lkdGgsIDApLAorCQkJCQku c3JjX2ggPSBJR1RfRklYRUQoZmIyLmhlaWdodCwgMCksCisJCQkJfTsKKworCQkJCWRvX2lvY3Rs KGRpc3BsYXktPmRybV9mZCwgRFJNX0lPQ1RMX01PREVfU0VUUExBTkUsICZzZXRwbGFuZSk7CisJ CQkJYnJlYWs7CisJCQl9CisJCQljYXNlIHRlc3RfcGFnZWZsaXA6IHsKKwkJCQlzdHJ1Y3QgZHJt X21vZGVfY3J0Y19wYWdlX2ZsaXAgcGFnZWZsaXAgPSB7CisJCQkJCS5jcnRjX2lkID0gcGxhbmUt PnBpcGUtPmNydGNfaWQsCisJCQkJCS5mYl9pZCA9IGZiMi5mYl9pZCwKKwkJCQkJLmZsYWdzID0g RFJNX01PREVfUEFHRV9GTElQX0VWRU5ULAorCQkJCX07CisKKwkJCQlkb19pb2N0bChkaXNwbGF5 LT5kcm1fZmQsIERSTV9JT0NUTF9NT0RFX1BBR0VfRkxJUCwgJnBhZ2VmbGlwKTsKKworCQkJCWRy bUhhbmRsZUV2ZW50KGRpc3BsYXktPmRybV9mZCwgJmRybV9ldmVudHMpOworCQkJCWJyZWFrOwor CQkJfQorCQl9CisJfQorCisJaWd0X3dhaXRjaGlsZHJlbigpOworCisJaWd0X3BsYW5lX3NldF9m YihwbGFuZSwgTlVMTCk7CisJaWd0X3BsYW5lX3NldF9mYihwcmltYXJ5LCBOVUxMKTsKKwlpZ3Rf b3V0cHV0X3NldF9waXBlKG91dHB1dCwgUElQRV9OT05FKTsKKwlpZ3RfZGlzcGxheV9jb21taXQy KGRpc3BsYXksIENPTU1JVF9BVE9NSUMpOworCWlndF9yZW1vdmVfZmIoZGlzcGxheS0+ZHJtX2Zk LCAmZmIpOworfQorCitpZ3RfbWFpbgoreworCWlndF9kaXNwbGF5X3QgZGlzcGxheTsKKwlpZ3Rf b3V0cHV0X3QgKm91dHB1dDsKKwllbnVtIHBpcGUgcGlwZTsKKworCWlndF9za2lwX29uX3NpbXVs YXRpb24oKTsKKworCWlndF9maXh0dXJlIHsKKwkJZGlzcGxheS5kcm1fZmQgPSBkcm1fb3Blbl9k cml2ZXJfbWFzdGVyKERSSVZFUl9BTlkpOworCisJCWttc3Rlc3Rfc2V0X3Z0X2dyYXBoaWNzX21v ZGUoKTsKKworCQlpZ3RfZGlzcGxheV9pbml0KCZkaXNwbGF5LCBkaXNwbGF5LmRybV9mZCk7CisK KwkJaWd0X3JlcXVpcmUoZGlzcGxheS5pc19hdG9taWMpOworCisJCWlndF9kaXNwbGF5X3JlcXVp cmVfb3V0cHV0KCZkaXNwbGF5KTsKKworCQlpZ3RfcmVxdWlyZV9zd19zeW5jKCk7CisJfQorCisJ aWd0X3N1YnRlc3QoImxlZ2FjeS1zZXRtb2RlIikKKwkJZm9yX2VhY2hfcGlwZV93aXRoX3ZhbGlk X291dHB1dCgmZGlzcGxheSwgcGlwZSwgb3V0cHV0KSB7CisJCQlydW5fcGxhbmVfdGVzdCgmZGlz cGxheSwgcGlwZSwgb3V0cHV0LCB0ZXN0X2xlZ2FjeV9tb2Rlc2V0LCBEUk1fUExBTkVfVFlQRV9Q UklNQVJZKTsKKwkJCWJyZWFrOworCQl9CisKKwlpZ3Rfc3VidGVzdCgiYXRvbWljLXNldG1vZGUi KQorCQlmb3JfZWFjaF9waXBlX3dpdGhfdmFsaWRfb3V0cHV0KCZkaXNwbGF5LCBwaXBlLCBvdXRw dXQpIHsKKwkJCXJ1bl9wbGFuZV90ZXN0KCZkaXNwbGF5LCBwaXBlLCBvdXRwdXQsIHRlc3RfYXRv bWljX21vZGVzZXQsIERSTV9QTEFORV9UWVBFX1BSSU1BUlkpOworCQkJYnJlYWs7CisJCX0KKwor CWlndF9zdWJ0ZXN0KCJsZWdhY3ktZHBtcyIpCisJCWZvcl9lYWNoX3BpcGVfd2l0aF92YWxpZF9v dXRwdXQoJmRpc3BsYXksIHBpcGUsIG91dHB1dCkgeworCQkJcnVuX3BsYW5lX3Rlc3QoJmRpc3Bs YXksIHBpcGUsIG91dHB1dCwgdGVzdF9sZWdhY3lfZHBtcywgRFJNX1BMQU5FX1RZUEVfUFJJTUFS WSk7CisJCQlicmVhazsKKwkJfQorCisJaWd0X3N1YnRlc3QoImxlZ2FjeS1wYWdlZmxpcCIpCisJ CWZvcl9lYWNoX3BpcGVfd2l0aF92YWxpZF9vdXRwdXQoJmRpc3BsYXksIHBpcGUsIG91dHB1dCkg eworCQkJcnVuX3BsYW5lX3Rlc3QoJmRpc3BsYXksIHBpcGUsIG91dHB1dCwgdGVzdF9wYWdlZmxp cCwgRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSk7CisJCQlicmVhazsKKwkJfQorCisJaWd0X3N1YnRl c3QoImxlZ2FjeS1jdXJzb3IiKQorCQlmb3JfZWFjaF9waXBlX3dpdGhfdmFsaWRfb3V0cHV0KCZk aXNwbGF5LCBwaXBlLCBvdXRwdXQpIHsKKwkJCXJ1bl9wbGFuZV90ZXN0KCZkaXNwbGF5LCBwaXBl LCBvdXRwdXQsIHRlc3Rfc2V0Y3Vyc29yLCBEUk1fUExBTkVfVFlQRV9DVVJTT1IpOworCQkJYnJl YWs7CisJCX0KKworCWlndF9zdWJ0ZXN0KCJ1bml2ZXJzYWwtc2V0cGxhbmUtcHJpbWFyeSIpCisJ CWZvcl9lYWNoX3BpcGVfd2l0aF92YWxpZF9vdXRwdXQoJmRpc3BsYXksIHBpcGUsIG91dHB1dCkg eworCQkJcnVuX3BsYW5lX3Rlc3QoJmRpc3BsYXksIHBpcGUsIG91dHB1dCwgdGVzdF9zZXRwbGFu ZSwgRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSk7CisJCQlicmVhazsKKwkJfQorCisJaWd0X3N1YnRl c3QoInVuaXZlcnNhbC1zZXRwbGFuZS1jdXJzb3IiKQorCQlmb3JfZWFjaF9waXBlX3dpdGhfdmFs aWRfb3V0cHV0KCZkaXNwbGF5LCBwaXBlLCBvdXRwdXQpIHsKKwkJCXJ1bl9wbGFuZV90ZXN0KCZk aXNwbGF5LCBwaXBlLCBvdXRwdXQsIHRlc3Rfc2V0cGxhbmUsIERSTV9QTEFORV9UWVBFX0NVUlNP Uik7CisJCQlicmVhazsKKwkJfQorCisJLyogVE9ETzogbGVnYWN5IGdhbW1hX3NldC9nZXQsIG9i amVjdCBzZXQvZ2V0cHJvcCwgZ2V0Y3J0YywgZ2V0Y29ubmVjdG9yICovCisJaWd0X2ZpeHR1cmUg eworCQlpZ3RfZGlzcGxheV9maW5pKCZkaXNwbGF5KTsKKwl9Cit9Ci0tIAoyLjE0LjEKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=