From mboxrd@z Thu Jan 1 00:00:00 1970 From: Arun Siluvery Subject: [PATCH 13/20] drm/i915: Test infrastructure for context state inconsistency simulation Date: Wed, 13 Jan 2016 17:28:25 +0000 Message-ID: <1452706112-8617-14-git-send-email-arun.siluvery@linux.intel.com> References: <1452706112-8617-1-git-send-email-arun.siluvery@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 0EC7E7A076 for ; Wed, 13 Jan 2016 09:29:04 -0800 (PST) In-Reply-To: <1452706112-8617-1-git-send-email-arun.siluvery@linux.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 Cc: Tomas Elf List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVG9tYXMgRWxmIDx0b21hcy5lbGZAaW50ZWwuY29tPgoKQWRkZWQgZGVidWdmcyBmdW5j dGlvbnMgYW5kIGVtYmVkZGVkIHRlc3QgaW5mcmFzdHJ1Y3R1cmUgaW4gdGhlIGNvbnRleHQgZXZl bnQKaW50ZXJydXB0IGhhbmRsZXIgZm9yIHNpbXVsYXRpbmcgdGhlIGxvc3Mgb2YgY29udGV4dCBl dmVudCBpbnRlcnJ1cHRzIHNvIHRoYXQgYQpjb250ZXh0IHN1Ym1pc3Npb24gc3RhdGUgaW5jb25z aXN0ZW5jeSBjYW4gYmUgaW5kdWNlZC4gVGhpcyBpcyB1c2VmdWwgZm9yCnRlc3RpbmcgdGhlIGNv bnNpc3RlbmN5IGNoZWNrZXIgcHJlLXN0YWdlIHRvIHRoZSBlbmdpbmUgaGFuZyByZWNvdmVyeSBw YXRoCnNpbmNlIGluIG9yZGVyIHRvIHRlc3QgdGhhdCB0aGUgaW5jb25zaXN0ZW5jeSBkZXRlY3Rp b24gd29ya3Mgd2UgZmlyc3QgbmVlZCB0bwppbmR1Y2UgYSBzdGF0ZSBpbmNvbnNpc3RlbmN5IHRo YXQgdGhlIGluY29uc2lzdGVuY3kgY2hlY2tlciBjYW4gZGV0ZWN0IGFuZCBhY3QKdXBvbi4KClNp Z25lZC1vZmYtYnk6IFRvbWFzIEVsZiA8dG9tYXMuZWxmQGludGVsLmNvbT4KLS0tCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyB8IDg4ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1hLmMgICAgIHwgIDIg KwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyAgICAgfCAgMyArKwogZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgfCAxMiArKysrKwogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfbHJjLmMgICAgfCA2OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrCiA1IGZp bGVzIGNoYW5nZWQsIDE3MyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVn ZnMuYwppbmRleCA2MmM5YTQxLi43MTQ4YTY1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2RlYnVnZnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVn ZnMuYwpAQCAtNDgwMCw2ICs0ODAwLDkzIEBAIERFRklORV9TSU1QTEVfQVRUUklCVVRFKGk5MTVf d2VkZ2VkX2ZvcHMsCiAJCQkiJWxsdVxuIik7CiAKIHN0YXRpYyBpbnQKK2k5MTVfZmFrZV9jdHhf c3VibWlzc2lvbl9pbmNvbnNpc3RlbmN5X2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbCkKK3sKKwlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZGF0YTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJp bmc7CisJdW5zaWduZWQgaTsKKworCURSTV9JTkZPKCJGYWtlZCBpbmNvbnNpc3RlbnQgY29udGV4 dCBzdWJtaXNzaW9uIHN0YXRlOiAleFxuIiwKKwkJZGV2X3ByaXYtPmdwdV9lcnJvci5mYWtlZF9s b3N0X2N0eF9ldmVudF9pcnEpOworCisJZm9yX2VhY2hfcmluZyhyaW5nLCBkZXZfcHJpdiwgaSkg eworCQl1MzIgZmFrZV9jbnQgPQorCQkJKGRldl9wcml2LT5ncHVfZXJyb3IuZmFrZWRfbG9zdF9j dHhfZXZlbnRfaXJxID4+IChpPDwyKSkgJiAweGY7CisKKwkJRFJNX0lORk8oIiVzOiBGYWtpbmcg JXMgWyV1IElSUXMgbGVmdCB0byBkcm9wXVxuIiwKKwkJCXJpbmctPm5hbWUsCisJCQlmYWtlX2Nu dD8iZW5hYmxlZCI6ImRpc2FibGVkIiwKKwkJCWZha2VfY250KTsKKwl9CisKKwkqdmFsID0gKHU2 NCkgZGV2X3ByaXYtPmdwdV9lcnJvci5mYWtlZF9sb3N0X2N0eF9ldmVudF9pcnE7CisKKwlyZXR1 cm4gMDsKK30KKworc3RhdGljIGludAoraTkxNV9mYWtlX2N0eF9zdWJtaXNzaW9uX2luY29uc2lz dGVuY3lfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpCit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRl diA9IGRhdGE7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZf cHJpdmF0ZTsKKwl1MzIgZmFrZV9zdGF0dXM7CisKKwkvKgorCSAqIFNldCB1cCBhIHNpbXVsYXRl ZC9mYWtlZCBsb3N0IGNvbnRleHQgZXZlbnQgaW50ZXJydXB0LiBUaGlzIGlzIHVzZWQKKwkgKiB0 byBpbmR1Y2UgaW5jb25zaXN0ZW50IEhXL2RyaXZlciBzdGF0ZXMgdGhhdCB0aGUgY29udGV4dCBz dWJtaXNzaW9uCisJICogc3RhdHVzIGNvbnNpc3RlbmN5IGNoZWNrZXIgKGludm9sdmVkIGFzIGEg cHJlLXN0YWdlIHRvIEdQVSBlbmdpbmUKKwkgKiBoYW5nIHJlY292ZXJ5KSwgd2hpY2ggaXMgcmVx dWlyZWQgZm9yIHZhbGlkYXRpb24gcHVycG9zZXMuCisJICoKKwkgKiB2YWwgY29udGFpbnMgdGhl IG5ldyBmYWtlZF9sb3N0X2N0eF9ldmVudF9pcnEgd29yZCB0aGF0IGlzIHRvIGJlCisJICogbWVy Z2VkIHdpdGggdGhlIGFscmVhZHkgc2V0IGZha2VkX2xvc3RfY3R4X2V2ZW50X2lycSB3b3JkLgor CSAqCisJICogdmFsID09IDAgbWVhbnMgY2xlYXIgYWxsIHByZXZpb3VzbHkgc2V0IGZha2UgYml0 cy4KKwkgKgorCSAqIEVhY2ggbmliYmxlIGNvbnRhaW5zIGEgbnVtYmVyIGJldHdlZW4gMC0xNSBk ZW5vdGluZyB0aGUgbnVtYmVyIG9mCisJICogaW50ZXJydXB0cyBsZWZ0IHRvIGxvc2Ugb24gdGhl IGVuZ2luZSB0aGF0IG5pYmJsZSBjb3JyZXNwb25kcyB0by4KKwkgKgorCSAqIFJDUzogZmFrZWRf bG9zdF9jdHhfZXZlbnRfaXJxWzM6MF0KKwkgKiBWQ1M6IGZha2VkX2xvc3RfY3R4X2V2ZW50X2ly cVs3OjRdCisJICogQkNTOiBmYWtlZF9sb3N0X2N0eF9ldmVudF9pcnFbMTE6OF0KKwkgKiBWRUNT OiBmYWtlZF9sb3N0X2N0eF9ldmVudF9pcnFbMTU6MTJdCisJICogZXRjCisJICoKKwkgKiBUaGUg bnVtYmVyIGluIGVhY2ggbmliYmxlIGlzIGRlY3JlbWVudGVkIGJ5IHRoZSBjb250ZXh0IGV2ZW50 CisJICogaW50ZXJydXB0IGhhbmRsZXIgaW4gaW50ZWxfbHJjLmMgb25jZSB0aGUgZmFrZWQgaW50 ZXJydXB0IGxvc3MgaXMKKwkgKiBleGVjdXRlZC4gSWYgYSB0YXJnZXR0ZWQgaW50ZXJydXB0IGlz IHJlY2VpdmVkIHdoZW4gYml0CisJICogY29ycmVzcG9uZGluZyB0byB0aGF0IGVuZ2luZSBpcyBz ZXQgdGhhdCBpbnRlcnJ1cHQgd2lsbCBiZSBkcm9wcGVkCisJICogd2l0aG91dCBzaWRlLWVmZmVj dHMsIHRodXMgaW5kdWNpbmcgYW4gaW5jb25zaXN0ZW5jeSBzaW5jZSB0aGUKKwkgKiBoYXJkd2Fy ZSBoYXMgZW50ZXJlZCBhIHN0YXRlIHdoZXJlIHJlbW92YWwgb2YgYSBjb250ZXh0IGZyb20gdGhl CisJICogY29udGV4dCBxdWV1ZSBpcyByZXF1aXJlZCBidXQgdGhlIGRyaXZlciBpcyBub3QgaW5m b3JtZWQgb2YgdGhpcyBhbmQKKwkgKiBpcyB0aGVyZWZvcmUgc3R1Y2sgaW4gdGhhdCBzdGF0ZSB1 bnRpbCBpbmNvbnNpc3RlbmN5IHJlY3RpZmljYXRpb24KKwkgKiAoZm9yY2VkIENTQiBjaGVja2lu Zykgb3IgcmVib290LgorCSAqLworCisJZmFrZV9zdGF0dXMgPQorCQlkZXZfcHJpdi0+Z3B1X2Vy cm9yLmZha2VkX2xvc3RfY3R4X2V2ZW50X2lycTsKKworCURSTV9JTkZPKCJGYWtpbmcgbG9zdCBj b250ZXh0IGV2ZW50IElSUSAobmV3IHN0YXR1czogJXgsIG9sZCBzdGF0dXM6ICV4KVxuIiwKKwkJ KHUzMikgdmFsLCBmYWtlX3N0YXR1cyk7CisKKwlpZiAodmFsKSB7CisJCWRldl9wcml2LT5ncHVf ZXJyb3IuZmFrZWRfbG9zdF9jdHhfZXZlbnRfaXJxIHw9ICgodTMyKSB2YWwpOworCX0gZWxzZSB7 CisJCURSTV9JTkZPKCJDbGVhcmluZyBsb3N0IGNvbnRleHQgZXZlbnQgSVJRIG1hc2tcbiIpOwor CisJCWRldl9wcml2LT5ncHVfZXJyb3IuZmFrZWRfbG9zdF9jdHhfZXZlbnRfaXJxID0gMDsKKwl9 CisKKworCXJldHVybiAwOworfQorCitERUZJTkVfU0lNUExFX0FUVFJJQlVURShpOTE1X2Zha2Vf Y3R4X3N1Ym1pc3Npb25faW5jb25zaXN0ZW5jeV9mb3BzLAorCQkJaTkxNV9mYWtlX2N0eF9zdWJt aXNzaW9uX2luY29uc2lzdGVuY3lfZ2V0LAorCQkJaTkxNV9mYWtlX2N0eF9zdWJtaXNzaW9uX2lu Y29uc2lzdGVuY3lfc2V0LAorCQkJIiVsbHVcbiIpOworCitzdGF0aWMgaW50CiBpOTE1X3Jpbmdf c3RvcF9nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRl diA9IGRhdGE7CkBAIC01NDU1LDYgKzU1NDIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVf ZGVidWdmc19maWxlcyB7CiAJY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyAqZm9wczsKIH0g aTkxNV9kZWJ1Z2ZzX2ZpbGVzW10gPSB7CiAJeyJpOTE1X3dlZGdlZCIsICZpOTE1X3dlZGdlZF9m b3BzfSwKKwl7Imk5MTVfZmFrZV9jdHhfaW5jb25zaXN0ZW5jeSIsICZpOTE1X2Zha2VfY3R4X3N1 Ym1pc3Npb25faW5jb25zaXN0ZW5jeV9mb3BzfSwKIAl7Imk5MTVfbWF4X2ZyZXEiLCAmaTkxNV9t YXhfZnJlcV9mb3BzfSwKIAl7Imk5MTVfbWluX2ZyZXEiLCAmaTkxNV9taW5fZnJlcV9mb3BzfSwK IAl7Imk5MTVfY2FjaGVfc2hhcmluZyIsICZpOTE1X2NhY2hlX3NoYXJpbmdfZm9wc30sCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kbWEuYwppbmRleCBlYjEyODEwLi41NzQ4OTEyIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZG1hLmMKQEAgLTg0Myw2ICs4NDMsOCBAQCBpOTE1X2hhbmdjaGVja19pbml0KHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpCiAJaW50IGk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAorCWRldl9wcml2LT5ncHVfZXJyb3IuZmFrZWRfbG9z dF9jdHhfZXZlbnRfaXJxID0gMDsKKwogCWZvciAoaSA9IDA7IGkgPCBJOTE1X05VTV9SSU5HUzsg aSsrKSB7CiAJCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9ICZkZXZfcHJpdi0+cmlu Z1tpXTsKIAkJc3RydWN0IGludGVsX3JpbmdfaGFuZ2NoZWNrICpoYyA9ICZlbmdpbmUtPmhhbmdj aGVjazsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCmluZGV4IDZmYWY5MDguLmM1OTdkY2MgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuYwpAQCAtOTA5LDYgKzkwOSw5IEBAIGludCBpOTE1X3Jlc2V0KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCX0KIAl9CiAKKwkvKiBDbGVhciBzaW11bGF0ZWQgbG9z dCBjb250ZXh0IGV2ZW50IGludGVycnVwdHMgKi8KKwlkZXZfcHJpdi0+Z3B1X2Vycm9yLmZha2Vk X2xvc3RfY3R4X2V2ZW50X2lycSA9IDA7CisKIAlpZiAoaTkxNV9zdG9wX3JpbmdfYWxsb3dfd2Fy bihkZXZfcHJpdikpCiAJCXByX25vdGljZSgiZHJtL2k5MTU6IFJlc2V0dGluZyBjaGlwIGFmdGVy IGdwdSBoYW5nXG4iKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggMjQ3ODdlZC4uMGEy MjNiMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0xMzgwLDYgKzEzODAsMTggQEAgc3Ry dWN0IGk5MTVfZ3B1X2Vycm9yIHsKICNkZWZpbmUgSTkxNV9TVE9QX1JJTkdfQUxMT1dfQkFOICAg ICAgICgxIDw8IDMxKQogI2RlZmluZSBJOTE1X1NUT1BfUklOR19BTExPV19XQVJOICAgICAgKDEg PDwgMzApCiAKKwkvKgorCSAqIEJpdCBtYXNrIGZvciBzaW11bGF0aW9uIG9mIGxvc3QgY29udGV4 dCBldmVudCBJUlFzIG9uIGVhY2gKKwkgKiByZXNwZWN0aXZlIGVuZ2luZS4KKwkgKgorCSAqICAg Qml0cyAwOjM6IAkgTnVtYmVyIG9mIGxvc3QgSVJRcyB0byBiZSBmYWtlZCBvbiBSQ1MKKwkgKiAg IEJpdHMgNDo3OgkgTnVtYmVyIG9mIGxvc3QgSVJRcyB0byBiZSBmYWtlZCBvbiBWQ1MKKwkgKiAg IEJpdHMgODoxMTogIE51bWJlciBvZiBsb3N0IElSUXMgdG8gYmUgZmFrZWQgb24gQkNTCisJICog ICBCaXRzIDEyOjE1OiBOdW1iZXIgb2YgbG9zdCBJUlFzIHRvIGJlIGZha2VkIG9uIFZFQ1MKKwkg KiAgIEJpdHMgMTY6MTk6IE51bWJlciBvZiBsb3N0IElSUXMgdG8gYmUgZmFrZWQgb24gVkNTMgor CSovCisJdTMyIGZha2VkX2xvc3RfY3R4X2V2ZW50X2lycTsKKwogCS8qIEZvciBtaXNzZWQgaXJx L3NlcW5vIHNpbXVsYXRpb24uICovCiAJdW5zaWduZWQgaW50IHRlc3RfaXJxX3JpbmdzOwogCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2xyYy5jCmluZGV4IGI2MDY5ZDMuLjkxM2ZkYmIgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2xyYy5jCkBAIC03MjQsNiArNzI0LDUyIEBAIHN0YXRpYyB2b2lkIGdldF9jb250 ZXh0X3N0YXR1cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAogfQogCiAvKioKKyAqIGZh a2VfbG9zdF9jdHhfZXZlbnRfaXJxKCkgLSBDaGVja3MgZm9yIHBlbmRpbmcgZmFrZWQgbG9zdCBj b250ZXh0IGV2ZW50IElSUXMuCisgKiBAZGV2X3ByaXY6IC4uLgorICogQHJpbmc6IEVuZ2luZSB0 byBjaGVjayBwZW5kaW5nIGZha2VkIGxvc3QgSVJRcyBmb3IuCisgKgorICogQ2hlY2tzIHRoZSBi aXRzIGluIGRldl9wcml2LT5ncHVfZXJyb3IuZmFrZWRfbG9zdF9jdHhfZXZlbnRfaXJxIGNvcnJl c3BvbmRpbmcKKyAqIHRvIHRoZSBzcGVjaWZpZWQgZW5naW5lIGFuZCB1cGRhdGVzIHRoZSBiaXRz IGFuZCByZXR1cm5zIGEgdmFsdWUgYWNjb3JkaW5nbHkuCisgKgorICogUmV0dXJuOgorICogCXRy dWU6IElmIHRoZSBjdXJyZW50IElSUSBpcyB0byBiZSBsb3N0LgorICogCWZhbHNlOiBJZiB0aGUg Y3VycmVudCBJUlEgaXMgdG8gYmUgcHJvY2Vzc2VkIGFzIG5vcm1hbC4KKyAqLworc3RhdGljIGlu bGluZSBib29sIGZha2VfbG9zdF9jdHhfZXZlbnRfaXJxKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKKwkJCQkgICAgICAgICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcp Cit7CisJdTMyICpmYWtlZF9sb3N0X2lycV9tYXNrID0KKwkJJmRldl9wcml2LT5ncHVfZXJyb3Iu ZmFrZWRfbG9zdF9jdHhfZXZlbnRfaXJxOworCisJLyoKKwkgKiBQb2ludCBvdXQgdGhlIGxlYXN0 IHNpZ25pZmljYW50IGJpdCBpbiB0aGUgbmliYmxlIG9mIHRoZSBmYWtlZCBsb3N0CisJICogY29u dGV4dCBldmVudCBJUlEgbWFzayB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSBlbmdpbmUgYXQgaGFu ZC4KKwkgKi8KKwl1MzIgZW5naW5lX25pYmJsZSA9IChyaW5nLT5pZCA8PCAyKTsKKworCS8qIENo ZWNrIGVuZ2luZSBuaWJibGUgZm9yIGFueSBwZW5kaW5nIElSUXMgdG8gYmUgc2ltdWxhdGVkIGFz IGxvc3QgKi8KKwlpZiAoKmZha2VkX2xvc3RfaXJxX21hc2sgJiAoMHhmIDw8IGVuZ2luZV9uaWJi bGUpKSB7CisJCURSTV9JTkZPKCJGYWtlZCBsb3N0IGludGVycnVwdCBvbiAlcyEgKCV4KVxuIiwK KwkJCXJpbmctPm5hbWUsCisJCQkqZmFrZWRfbG9zdF9pcnFfbWFzayk7CisKKwkJLyoKKwkJICog U3VidHJhY3QgdGhlIElSUSB0aGF0IGlzIHRvIGJlIHNpbXVsYXRlZCBhcyBsb3N0IGZyb20gdGhl CisJCSAqIGVuZ2luZSBuaWJibGUuCisJCSAqLworCQkqZmFrZWRfbG9zdF9pcnFfbWFzayAtPSAo MHgxIDw8IGVuZ2luZV9uaWJibGUpOworCisJCURSTV9JTkZPKCJOZXcgZmFrZSBsb3N0IGlycSBt YXNrOiAleFxuIiwKKwkJCSpmYWtlZF9sb3N0X2lycV9tYXNrKTsKKworCQkvKiBUZWxsIHRoZSBJ UlEgaGFuZGxlciB0byBzaW11bGF0ZSBsb3N0IGNvbnRleHQgZXZlbnQgSVJRICovCisJCXJldHVy biB0cnVlOworCX0KKworCXJldHVybiBmYWxzZTsKK30KKworLyoqCiAgKiBpbnRlbF9scmNfaXJx X2hhbmRsZXIoKSAtIGhhbmRsZSBDb250ZXh0IFN3aXRjaCBpbnRlcnJ1cHRzCiAgKiBAcmluZzog RW5naW5lIENvbW1hbmQgU3RyZWFtZXIgdG8gaGFuZGxlLgogICogQGRvX2xvY2s6IExvY2sgZXhl Y2xpc3Qgc3BpbmxvY2sgKGlmIGZhbHNlIHRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIHRo aXMpCkBAIC03NjQsNiArODEwLDIzIEBAIGludCBpbnRlbF9scmNfaXJxX2hhbmRsZXIoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqcmluZywgYm9vbCBkb19sb2NrKQogCiAJCWlmIChzdGF0dXMgJiBH RU44X0NUWF9TVEFUVVNfUFJFRU1QVEVEKSB7CiAJCQlpZiAoc3RhdHVzICYgR0VOOF9DVFhfU1RB VFVTX0xJVEVfUkVTVE9SRSkgeworCQkJCWlmIChmYWtlX2xvc3RfY3R4X2V2ZW50X2lycShkZXZf cHJpdiwgcmluZykpIHsKKwkJCQkgICAgLyoKKwkJCQkgICAgICogSWYgd2Ugd2FudCB0byBzaW11 bGF0ZSB0aGUgbG9zcyBvZiBhCisJCQkJICAgICAqIGNvbnRleHQgZXZlbnQgSVJRIChvbmx5IGZv ciBzdWNoIGV2ZW50cworCQkJCSAgICAgKiB0aGF0IGNvdWxkIGFmZmVjdCB0aGUgZXhlY2xpc3Qg cXVldWUsCisJCQkJICAgICAqIHNpbmNlIHRoaXMgaXMgc29tZXRoaW5nIHRoYXQgY291bGQKKwkJ CQkgICAgICogYWZmZWN0IHRoZSBjb250ZXh0IHN1Ym1pc3Npb24gc3RhdHVzCisJCQkJICAgICAq IGNvbnNpc3RlbmN5IGNoZWNrZXIpIHRoZW4ganVzdCBleGl0IHRoZQorCQkJCSAgICAgKiBJUlEg aGFuZGxlciBlYXJseSB3aXRoIG5vIHNpZGUtZWZmZWN0cyEKKwkJCQkgICAgICogV2Ugd2FudCB0 byBwcmV0ZW5kIGxpa2UgdGhpcyBJUlEgbmV2ZXIKKwkJCQkgICAgICogaGFwcGVuZWQuIFRoZSBu ZXh0IHRpbWUgdGhlIElSUSBoYW5kbGVyCisJCQkJICAgICAqIGlzIGVudGVyZWQgZm9yIHRoaXMg ZW5naW5lIHRoZSBDU0IKKwkJCQkgICAgICogZXZlbnRzIHNob3VsZCByZW1haW4gaW4gdGhlIENT Qiwgd2FpdGluZworCQkJCSAgICAgKiB0byBiZSBwcm9jZXNzZWQuCisJCQkJICAgICAqLworCQkJ CSAgICBnb3RvIGV4aXQ7CisJCQkJfQogCQkJCWlmIChleGVjbGlzdHNfY2hlY2tfcmVtb3ZlX3Jl cXVlc3QocmluZywgc3RhdHVzX2lkKSkKIAkJCQkJV0FSTigxLCAiTGl0ZSBSZXN0b3JlZCByZXF1 ZXN0IHJlbW92ZWQgZnJvbSBxdWV1ZVxuIik7CiAJCQl9IGVsc2UKQEAgLTc3Miw2ICs4MzUsMTAg QEAgaW50IGludGVsX2xyY19pcnFfaGFuZGxlcihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5n LCBib29sIGRvX2xvY2spCiAKIAkJaWYgKChzdGF0dXMgJiBHRU44X0NUWF9TVEFUVVNfQUNUSVZF X0lETEUpIHx8CiAJCSAgICAoc3RhdHVzICYgR0VOOF9DVFhfU1RBVFVTX0VMRU1FTlRfU1dJVENI KSkgeworCisJCQlpZiAoZmFrZV9sb3N0X2N0eF9ldmVudF9pcnEoZGV2X3ByaXYsIHJpbmcpKQor CQkJICAgIGdvdG8gZXhpdDsKKwogCQkJaWYgKGV4ZWNsaXN0c19jaGVja19yZW1vdmVfcmVxdWVz dChyaW5nLCBzdGF0dXNfaWQpKQogCQkJCXN1Ym1pdF9jb250ZXh0cysrOwogCQl9CkBAIC03OTcs NiArODY0LDcgQEAgaW50IGludGVsX2xyY19pcnFfaGFuZGxlcihzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICpyaW5nLCBib29sIGRvX2xvY2spCiAJCSAgIF9NQVNLRURfRklFTEQoR0VOOF9DU0JfUkVB RF9QVFJfTUFTSywKIAkJCQkgcmluZy0+bmV4dF9jb250ZXh0X3N0YXR1c19idWZmZXIgPDwgOCkp OwogCitleGl0OgogCWlmIChkb19sb2NrKQogCQlzcGluX3VubG9jaygmcmluZy0+ZXhlY2xpc3Rf bG9jayk7CiAKLS0gCjEuOS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeAo=