From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tomas Elf Subject: [PATCH 13/20] drm/i915: Test infrastructure for context state inconsistency simulation Date: Fri, 23 Oct 2015 02:32:35 +0100 Message-ID: <1445563962-20753-14-git-send-email-tomas.elf@intel.com> References: <1445563962-20753-1-git-send-email-tomas.elf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id A48B36E81D for ; Thu, 22 Oct 2015 18:33:43 -0700 (PDT) In-Reply-To: <1445563962-20753-1-git-send-email-tomas.elf@intel.com> 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 List-Id: intel-gfx@lists.freedesktop.org QWRkZWQgZGVidWdmcyBmdW5jdGlvbnMgYW5kIGVtYmVkZGVkIHRlc3QgaW5mcmFzdHJ1Y3R1cmUg aW4gdGhlIGNvbnRleHQgZXZlbnQKaW50ZXJydXB0IGhhbmRsZXIgZm9yIHNpbXVsYXRpbmcgdGhl IGxvc3Mgb2YgY29udGV4dCBldmVudCBpbnRlcnJ1cHRzIHNvIHRoYXQgYQpjb250ZXh0IHN1Ym1p c3Npb24gc3RhdGUgaW5jb25zaXN0ZW5jeSBjYW4gYmUgaW5kdWNlZC4gVGhpcyBpcyB1c2VmdWwg Zm9yCnRlc3RpbmcgdGhlIGNvbnNpc3RlbmN5IGNoZWNrZXIgcHJlLXN0YWdlIHRvIHRoZSBlbmdp bmUgaGFuZyByZWNvdmVyeSBwYXRoCnNpbmNlIGluIG9yZGVyIHRvIHRlc3QgdGhhdCB0aGUgaW5j b25zaXN0ZW5jeSBkZXRlY3Rpb24gd29ya3Mgd2UgZmlyc3QgbmVlZCB0bwppbmR1Y2UgYSBzdGF0 ZSBpbmNvbnNpc3RlbmN5IHRoYXQgdGhlIGluY29uc2lzdGVuY3kgY2hlY2tlciBjYW4gZGV0ZWN0 IGFuZCBhY3QKdXBvbi4KClNpZ25lZC1vZmYtYnk6IFRvbWFzIEVsZiA8dG9tYXMuZWxmQGludGVs LmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyB8IDg4ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZG1hLmMgICAgIHwgIDIgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyAgICAg fCAgMyArKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgfCAxMiArKysrKwog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgfCA2OCArKysrKysrKysrKysrKysr KysrKysrKysrKysrCiA1IGZpbGVzIGNoYW5nZWQsIDE3MyBpbnNlcnRpb25zKCspCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2RlYnVnZnMuYwppbmRleCBlZGI3OWE3Li4yMzMwODhlIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2RlYnVnZnMuYwpAQCAtNDY2Nyw2ICs0NjY3LDkzIEBAIERFRklORV9TSU1Q TEVfQVRUUklCVVRFKGk5MTVfd2VkZ2VkX2ZvcHMsCiAJCQkiJWxsdVxuIik7CiAKIHN0YXRpYyBp bnQKK2k5MTVfZmFrZV9jdHhfc3VibWlzc2lvbl9pbmNvbnNpc3RlbmN5X2dldCh2b2lkICpkYXRh LCB1NjQgKnZhbCkKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZGF0YTsKKwlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCXN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKnJpbmc7CisJdW5zaWduZWQgaTsKKworCURSTV9JTkZPKCJGYWtlZCBp bmNvbnNpc3RlbnQgY29udGV4dCBzdWJtaXNzaW9uIHN0YXRlOiAleFxuIiwKKwkJZGV2X3ByaXYt PmdwdV9lcnJvci5mYWtlZF9sb3N0X2N0eF9ldmVudF9pcnEpOworCisJZm9yX2VhY2hfcmluZyhy aW5nLCBkZXZfcHJpdiwgaSkgeworCQl1MzIgZmFrZV9jbnQgPQorCQkJKGRldl9wcml2LT5ncHVf ZXJyb3IuZmFrZWRfbG9zdF9jdHhfZXZlbnRfaXJxID4+IChpPDwyKSkgJiAweGY7CisKKwkJRFJN X0lORk8oIiVzOiBGYWtpbmcgJXMgWyV1IElSUXMgbGVmdCB0byBkcm9wXVxuIiwKKwkJCXJpbmct Pm5hbWUsCisJCQlmYWtlX2NudD8iZW5hYmxlZCI6ImRpc2FibGVkIiwKKwkJCWZha2VfY250KTsK Kwl9CisKKwkqdmFsID0gKHU2NCkgZGV2X3ByaXYtPmdwdV9lcnJvci5mYWtlZF9sb3N0X2N0eF9l dmVudF9pcnE7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludAoraTkxNV9mYWtlX2N0eF9z dWJtaXNzaW9uX2luY29uc2lzdGVuY3lfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpCit7CisJc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IGRhdGE7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwl1MzIgZmFrZV9zdGF0dXM7CisKKwkvKgorCSAq IFNldCB1cCBhIHNpbXVsYXRlZC9mYWtlZCBsb3N0IGNvbnRleHQgZXZlbnQgaW50ZXJydXB0LiBU aGlzIGlzIHVzZWQKKwkgKiB0byBpbmR1Y2UgaW5jb25zaXN0ZW50IEhXL2RyaXZlciBzdGF0ZXMg dGhhdCB0aGUgY29udGV4dCBzdWJtaXNzaW9uCisJICogc3RhdHVzIGNvbnNpc3RlbmN5IGNoZWNr ZXIgKGludm9sdmVkIGFzIGEgcHJlLXN0YWdlIHRvIEdQVSBlbmdpbmUKKwkgKiBoYW5nIHJlY292 ZXJ5KSwgd2hpY2ggaXMgcmVxdWlyZWQgZm9yIHZhbGlkYXRpb24gcHVycG9zZXMuCisJICoKKwkg KiB2YWwgY29udGFpbnMgdGhlIG5ldyBmYWtlZF9sb3N0X2N0eF9ldmVudF9pcnEgd29yZCB0aGF0 IGlzIHRvIGJlCisJICogbWVyZ2VkIHdpdGggdGhlIGFscmVhZHkgc2V0IGZha2VkX2xvc3RfY3R4 X2V2ZW50X2lycSB3b3JkLgorCSAqCisJICogdmFsID09IDAgbWVhbnMgY2xlYXIgYWxsIHByZXZp b3VzbHkgc2V0IGZha2UgYml0cy4KKwkgKgorCSAqIEVhY2ggbmliYmxlIGNvbnRhaW5zIGEgbnVt YmVyIGJldHdlZW4gMC0xNSBkZW5vdGluZyB0aGUgbnVtYmVyIG9mCisJICogaW50ZXJydXB0cyBs ZWZ0IHRvIGxvc2Ugb24gdGhlIGVuZ2luZSB0aGF0IG5pYmJsZSBjb3JyZXNwb25kcyB0by4KKwkg KgorCSAqIFJDUzogZmFrZWRfbG9zdF9jdHhfZXZlbnRfaXJxWzM6MF0KKwkgKiBWQ1M6IGZha2Vk X2xvc3RfY3R4X2V2ZW50X2lycVs3OjRdCisJICogQkNTOiBmYWtlZF9sb3N0X2N0eF9ldmVudF9p cnFbMTE6OF0KKwkgKiBWRUNTOiBmYWtlZF9sb3N0X2N0eF9ldmVudF9pcnFbMTU6MTJdCisJICog ZXRjCisJICoKKwkgKiBUaGUgbnVtYmVyIGluIGVhY2ggbmliYmxlIGlzIGRlY3JlbWVudGVkIGJ5 IHRoZSBjb250ZXh0IGV2ZW50CisJICogaW50ZXJydXB0IGhhbmRsZXIgaW4gaW50ZWxfbHJjLmMg b25jZSB0aGUgZmFrZWQgaW50ZXJydXB0IGxvc3MgaXMKKwkgKiBleGVjdXRlZC4gSWYgYSB0YXJn ZXR0ZWQgaW50ZXJydXB0IGlzIHJlY2VpdmVkIHdoZW4gYml0CisJICogY29ycmVzcG9uZGluZyB0 byB0aGF0IGVuZ2luZSBpcyBzZXQgdGhhdCBpbnRlcnJ1cHQgd2lsbCBiZSBkcm9wcGVkCisJICog d2l0aG91dCBzaWRlLWVmZmVjdHMsIHRodXMgaW5kdWNpbmcgYW4gaW5jb25zaXN0ZW5jeSBzaW5j ZSB0aGUKKwkgKiBoYXJkd2FyZSBoYXMgZW50ZXJlZCBhIHN0YXRlIHdoZXJlIHJlbW92YWwgb2Yg YSBjb250ZXh0IGZyb20gdGhlCisJICogY29udGV4dCBxdWV1ZSBpcyByZXF1aXJlZCBidXQgdGhl IGRyaXZlciBpcyBub3QgaW5mb3JtZWQgb2YgdGhpcyBhbmQKKwkgKiBpcyB0aGVyZWZvcmUgc3R1 Y2sgaW4gdGhhdCBzdGF0ZSB1bnRpbCBpbmNvbnNpc3RlbmN5IHJlY3RpZmljYXRpb24KKwkgKiAo Zm9yY2VkIENTQiBjaGVja2luZykgb3IgcmVib290LgorCSAqLworCisJZmFrZV9zdGF0dXMgPQor CQlkZXZfcHJpdi0+Z3B1X2Vycm9yLmZha2VkX2xvc3RfY3R4X2V2ZW50X2lycTsKKworCURSTV9J TkZPKCJGYWtpbmcgbG9zdCBjb250ZXh0IGV2ZW50IElSUSAobmV3IHN0YXR1czogJXgsIG9sZCBz dGF0dXM6ICV4KVxuIiwKKwkJKHUzMikgdmFsLCBmYWtlX3N0YXR1cyk7CisKKwlpZiAodmFsKSB7 CisJCWRldl9wcml2LT5ncHVfZXJyb3IuZmFrZWRfbG9zdF9jdHhfZXZlbnRfaXJxIHw9ICgodTMy KSB2YWwpOworCX0gZWxzZSB7CisJCURSTV9JTkZPKCJDbGVhcmluZyBsb3N0IGNvbnRleHQgZXZl bnQgSVJRIG1hc2tcbiIpOworCisJCWRldl9wcml2LT5ncHVfZXJyb3IuZmFrZWRfbG9zdF9jdHhf ZXZlbnRfaXJxID0gMDsKKwl9CisKKworCXJldHVybiAwOworfQorCitERUZJTkVfU0lNUExFX0FU VFJJQlVURShpOTE1X2Zha2VfY3R4X3N1Ym1pc3Npb25faW5jb25zaXN0ZW5jeV9mb3BzLAorCQkJ aTkxNV9mYWtlX2N0eF9zdWJtaXNzaW9uX2luY29uc2lzdGVuY3lfZ2V0LAorCQkJaTkxNV9mYWtl X2N0eF9zdWJtaXNzaW9uX2luY29uc2lzdGVuY3lfc2V0LAorCQkJIiVsbHVcbiIpOworCitzdGF0 aWMgaW50CiBpOTE1X3Jpbmdfc3RvcF9nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpCiB7CiAJc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IGRhdGE7CkBAIC01MzIwLDYgKzU0MDcsNyBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IGk5MTVfZGVidWdmc19maWxlcyB7CiAJY29uc3Qgc3RydWN0IGZpbGVfb3Bl cmF0aW9ucyAqZm9wczsKIH0gaTkxNV9kZWJ1Z2ZzX2ZpbGVzW10gPSB7CiAJeyJpOTE1X3dlZGdl ZCIsICZpOTE1X3dlZGdlZF9mb3BzfSwKKwl7Imk5MTVfZmFrZV9jdHhfaW5jb25zaXN0ZW5jeSIs ICZpOTE1X2Zha2VfY3R4X3N1Ym1pc3Npb25faW5jb25zaXN0ZW5jeV9mb3BzfSwKIAl7Imk5MTVf bWF4X2ZyZXEiLCAmaTkxNV9tYXhfZnJlcV9mb3BzfSwKIAl7Imk5MTVfbWluX2ZyZXEiLCAmaTkx NV9taW5fZnJlcV9mb3BzfSwKIAl7Imk5MTVfY2FjaGVfc2hhcmluZyIsICZpOTE1X2NhY2hlX3No YXJpbmdfZm9wc30sCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYwppbmRleCAxZTIwM2U3ZC4uZTgxOTNj OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jCkBAIC04NDMsNiArODQzLDggQEAgaTkxNV9oYW5n Y2hlY2tfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCWludCBpOwogCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAKKwlkZXZfcHJpdi0+ Z3B1X2Vycm9yLmZha2VkX2xvc3RfY3R4X2V2ZW50X2lycSA9IDA7CisKIAlmb3IgKGkgPSAwOyBp IDwgSTkxNV9OVU1fUklOR1M7IGkrKykgewogCQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUgPSAmZGV2X3ByaXYtPnJpbmdbaV07CiAJCXN0cnVjdCBpbnRlbF9yaW5nX2hhbmdjaGVjayAq aGMgPSAmZW5naW5lLT5oYW5nY2hlY2s7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwppbmRleCBjMzYx YjE5Li5jMzJjNDc1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKQEAgLTkxNyw2ICs5MTcsOSBA QCBpbnQgaTkxNV9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQl9CiAJfQogCisJLyog Q2xlYXIgc2ltdWxhdGVkIGxvc3QgY29udGV4dCBldmVudCBpbnRlcnJ1cHRzICovCisJZGV2X3By aXYtPmdwdV9lcnJvci5mYWtlZF9sb3N0X2N0eF9ldmVudF9pcnEgPSAwOworCiAJaWYgKGk5MTVf c3RvcF9yaW5nX2FsbG93X3dhcm4oZGV2X3ByaXYpKQogCQlwcl9ub3RpY2UoImRybS9pOTE1OiBS ZXNldHRpbmcgY2hpcCBhZnRlciBncHUgaGFuZ1xuIik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o CmluZGV4IDkyMTk5MDQuLjdlYmY4MDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMTQw MCw2ICsxNDAwLDE4IEBAIHN0cnVjdCBpOTE1X2dwdV9lcnJvciB7CiAjZGVmaW5lIEk5MTVfU1RP UF9SSU5HX0FMTE9XX0JBTiAgICAgICAoMSA8PCAzMSkKICNkZWZpbmUgSTkxNV9TVE9QX1JJTkdf QUxMT1dfV0FSTiAgICAgICgxIDw8IDMwKQogCisJLyoKKwkgKiBCaXQgbWFzayBmb3Igc2ltdWxh dGlvbiBvZiBsb3N0IGNvbnRleHQgZXZlbnQgSVJRcyBvbiBlYWNoCisJICogcmVzcGVjdGl2ZSBl bmdpbmUuCisJICoKKwkgKiAgIEJpdHMgMDozOiAJIE51bWJlciBvZiBsb3N0IElSUXMgdG8gYmUg ZmFrZWQgb24gUkNTCisJICogICBCaXRzIDQ6NzoJIE51bWJlciBvZiBsb3N0IElSUXMgdG8gYmUg ZmFrZWQgb24gVkNTCisJICogICBCaXRzIDg6MTE6ICBOdW1iZXIgb2YgbG9zdCBJUlFzIHRvIGJl IGZha2VkIG9uIEJDUworCSAqICAgQml0cyAxMjoxNTogTnVtYmVyIG9mIGxvc3QgSVJRcyB0byBi ZSBmYWtlZCBvbiBWRUNTCisJICogICBCaXRzIDE2OjE5OiBOdW1iZXIgb2YgbG9zdCBJUlFzIHRv IGJlIGZha2VkIG9uIFZDUzIKKwkqLworCXUzMiBmYWtlZF9sb3N0X2N0eF9ldmVudF9pcnE7CisK IAkvKiBGb3IgbWlzc2VkIGlycS9zZXFubyBzaW11bGF0aW9uLiAqLwogCXVuc2lnbmVkIGludCB0 ZXN0X2lycV9yaW5nczsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf bHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwppbmRleCBiNDhmNzRjLi41 YmI3ZDZlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwpAQCAtNzAwLDYgKzcwMCw1MiBAQCBz dGF0aWMgYm9vbCBleGVjbGlzdHNfY2hlY2tfcmVtb3ZlX3JlcXVlc3Qoc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqcmluZywKIH0KIAogLyoqCisgKiBmYWtlX2xvc3RfY3R4X2V2ZW50X2lycSgpIC0g Q2hlY2tzIGZvciBwZW5kaW5nIGZha2VkIGxvc3QgY29udGV4dCBldmVudCBJUlFzLgorICogQGRl dl9wcml2OiAuLi4KKyAqIEByaW5nOiBFbmdpbmUgdG8gY2hlY2sgcGVuZGluZyBmYWtlZCBsb3N0 IElSUXMgZm9yLgorICoKKyAqIENoZWNrcyB0aGUgYml0cyBpbiBkZXZfcHJpdi0+Z3B1X2Vycm9y LmZha2VkX2xvc3RfY3R4X2V2ZW50X2lycSBjb3JyZXNwb25kaW5nCisgKiB0byB0aGUgc3BlY2lm aWVkIGVuZ2luZSBhbmQgdXBkYXRlcyB0aGUgYml0cyBhbmQgcmV0dXJucyBhIHZhbHVlIGFjY29y ZGluZ2x5LgorICoKKyAqIFJldHVybjoKKyAqIAl0cnVlOiBJZiB0aGUgY3VycmVudCBJUlEgaXMg dG8gYmUgbG9zdC4KKyAqIAlmYWxzZTogSWYgdGhlIGN1cnJlbnQgSVJRIGlzIHRvIGJlIHByb2Nl c3NlZCBhcyBub3JtYWwuCisgKi8KK3N0YXRpYyBpbmxpbmUgYm9vbCBmYWtlX2xvc3RfY3R4X2V2 ZW50X2lycShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkJICAgICAgICAg ICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQoreworCXUzMiAqZmFrZWRfbG9zdF9pcnFf bWFzayA9CisJCSZkZXZfcHJpdi0+Z3B1X2Vycm9yLmZha2VkX2xvc3RfY3R4X2V2ZW50X2lycTsK KworCS8qCisJICogUG9pbnQgb3V0IHRoZSBsZWFzdCBzaWduaWZpY2FudCBiaXQgaW4gdGhlIG5p YmJsZSBvZiB0aGUgZmFrZWQgbG9zdAorCSAqIGNvbnRleHQgZXZlbnQgSVJRIG1hc2sgdGhhdCBj b3JyZXNwb25kcyB0byB0aGUgZW5naW5lIGF0IGhhbmQuCisJICovCisJdTMyIGVuZ2luZV9uaWJi bGUgPSAocmluZy0+aWQgPDwgMik7CisKKwkvKiBDaGVjayBlbmdpbmUgbmliYmxlIGZvciBhbnkg cGVuZGluZyBJUlFzIHRvIGJlIHNpbXVsYXRlZCBhcyBsb3N0ICovCisJaWYgKCpmYWtlZF9sb3N0 X2lycV9tYXNrICYgKDB4ZiA8PCBlbmdpbmVfbmliYmxlKSkgeworCQlEUk1fSU5GTygiRmFrZWQg bG9zdCBpbnRlcnJ1cHQgb24gJXMhICgleClcbiIsCisJCQlyaW5nLT5uYW1lLAorCQkJKmZha2Vk X2xvc3RfaXJxX21hc2spOworCisJCS8qCisJCSAqIFN1YnRyYWN0IHRoZSBJUlEgdGhhdCBpcyB0 byBiZSBzaW11bGF0ZWQgYXMgbG9zdCBmcm9tIHRoZQorCQkgKiBlbmdpbmUgbmliYmxlLgorCQkg Ki8KKwkJKmZha2VkX2xvc3RfaXJxX21hc2sgLT0gKDB4MSA8PCBlbmdpbmVfbmliYmxlKTsKKwor CQlEUk1fSU5GTygiTmV3IGZha2UgbG9zdCBpcnEgbWFzazogJXhcbiIsCisJCQkqZmFrZWRfbG9z dF9pcnFfbWFzayk7CisKKwkJLyogVGVsbCB0aGUgSVJRIGhhbmRsZXIgdG8gc2ltdWxhdGUgbG9z dCBjb250ZXh0IGV2ZW50IElSUSAqLworCQlyZXR1cm4gdHJ1ZTsKKwl9CisKKwlyZXR1cm4gZmFs c2U7Cit9CisKKy8qKgogICogaW50ZWxfbHJjX2lycV9oYW5kbGVyKCkgLSBoYW5kbGUgQ29udGV4 dCBTd2l0Y2ggaW50ZXJydXB0cwogICogQHJpbmc6IEVuZ2luZSBDb21tYW5kIFN0cmVhbWVyIHRv IGhhbmRsZS4KICAqIEBkb19sb2NrOiBMb2NrIGV4ZWNsaXN0IHNwaW5sb2NrIChpZiBmYWxzZSB0 aGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciB0aGlzKQpAQCAtNzQwLDYgKzc4NiwyMyBAQCBp bnQgaW50ZWxfbHJjX2lycV9oYW5kbGVyKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsIGJv b2wgZG9fbG9jaykKIAogCQlpZiAoc3RhdHVzICYgR0VOOF9DVFhfU1RBVFVTX1BSRUVNUFRFRCkg ewogCQkJaWYgKHN0YXR1cyAmIEdFTjhfQ1RYX1NUQVRVU19MSVRFX1JFU1RPUkUpIHsKKwkJCQlp ZiAoZmFrZV9sb3N0X2N0eF9ldmVudF9pcnEoZGV2X3ByaXYsIHJpbmcpKSB7CisJCQkJICAgIC8q CisJCQkJICAgICAqIElmIHdlIHdhbnQgdG8gc2ltdWxhdGUgdGhlIGxvc3Mgb2YgYQorCQkJCSAg ICAgKiBjb250ZXh0IGV2ZW50IElSUSAob25seSBmb3Igc3VjaCBldmVudHMKKwkJCQkgICAgICog dGhhdCBjb3VsZCBhZmZlY3QgdGhlIGV4ZWNsaXN0IHF1ZXVlLAorCQkJCSAgICAgKiBzaW5jZSB0 aGlzIGlzIHNvbWV0aGluZyB0aGF0IGNvdWxkCisJCQkJICAgICAqIGFmZmVjdCB0aGUgY29udGV4 dCBzdWJtaXNzaW9uIHN0YXR1cworCQkJCSAgICAgKiBjb25zaXN0ZW5jeSBjaGVja2VyKSB0aGVu IGp1c3QgZXhpdCB0aGUKKwkJCQkgICAgICogSVJRIGhhbmRsZXIgZWFybHkgd2l0aCBubyBzaWRl LWVmZmVjdHMhCisJCQkJICAgICAqIFdlIHdhbnQgdG8gcHJldGVuZCBsaWtlIHRoaXMgSVJRIG5l dmVyCisJCQkJICAgICAqIGhhcHBlbmVkLiBUaGUgbmV4dCB0aW1lIHRoZSBJUlEgaGFuZGxlcgor CQkJCSAgICAgKiBpcyBlbnRlcmVkIGZvciB0aGlzIGVuZ2luZSB0aGUgQ1NCCisJCQkJICAgICAq IGV2ZW50cyBzaG91bGQgcmVtYWluIGluIHRoZSBDU0IsIHdhaXRpbmcKKwkJCQkgICAgICogdG8g YmUgcHJvY2Vzc2VkLgorCQkJCSAgICAgKi8KKwkJCQkgICAgZ290byBleGl0OworCQkJCX0KIAkJ CQlpZiAoZXhlY2xpc3RzX2NoZWNrX3JlbW92ZV9yZXF1ZXN0KHJpbmcsIHN0YXR1c19pZCkpCiAJ CQkJCVdBUk4oMSwgIkxpdGUgUmVzdG9yZWQgcmVxdWVzdCByZW1vdmVkIGZyb20gcXVldWVcbiIp OwogCQkJfSBlbHNlCkBAIC03NDgsNiArODExLDEwIEBAIGludCBpbnRlbF9scmNfaXJxX2hhbmRs ZXIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywgYm9vbCBkb19sb2NrKQogCiAJCSBpZiAo KHN0YXR1cyAmIEdFTjhfQ1RYX1NUQVRVU19BQ1RJVkVfSURMRSkgfHwKIAkJICAgICAoc3RhdHVz ICYgR0VOOF9DVFhfU1RBVFVTX0VMRU1FTlRfU1dJVENIKSkgeworCisJCQlpZiAoZmFrZV9sb3N0 X2N0eF9ldmVudF9pcnEoZGV2X3ByaXYsIHJpbmcpKQorCQkJICAgIGdvdG8gZXhpdDsKKwogCQkJ aWYgKGV4ZWNsaXN0c19jaGVja19yZW1vdmVfcmVxdWVzdChyaW5nLCBzdGF0dXNfaWQpKQogCQkJ CXN1Ym1pdF9jb250ZXh0cysrOwogCQl9CkBAIC03NzAsNiArODM3LDcgQEAgaW50IGludGVsX2xy Y19pcnFfaGFuZGxlcihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLCBib29sIGRvX2xvY2sp CiAJCQkJICgodTMyKXJpbmctPm5leHRfY29udGV4dF9zdGF0dXNfYnVmZmVyICYKIAkJCQkgIEdF TjhfQ1NCX1BUUl9NQVNLKSA8PCA4KSk7CiAKK2V4aXQ6CiAJaWYgKGRvX2xvY2spCiAJCXNwaW5f dW5sb2NrKCZyaW5nLT5leGVjbGlzdF9sb2NrKTsKIAotLSAKMS45LjEKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QK SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==