From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michel Thierry Subject: [PATCH 4/9] drm/i915/tdr: Add support for per engine reset recovery Date: Fri, 16 Dec 2016 12:20:05 -0800 Message-ID: <20161216202010.7983-5-michel.thierry@intel.com> References: <20161216202010.7983-1-michel.thierry@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id CBE8E6ED30 for ; Fri, 16 Dec 2016 20:20:11 +0000 (UTC) In-Reply-To: <20161216202010.7983-1-michel.thierry@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 RnJvbTogQXJ1biBTaWx1dmVyeSA8YXJ1bi5zaWx1dmVyeUBsaW51eC5pbnRlbC5jb20+CgpUaGlz IGNoYW5nZSBpbXBsZW1lbnRzIHN1cHBvcnQgZm9yIHBlci1lbmdpbmUgcmVzZXQgYXMgYW4gaW5p dGlhbCwgbGVzcwppbnRydXNpdmUgaGFuZyByZWNvdmVyeSBvcHRpb24gdG8gYmUgYXR0ZW1wdGVk IGJlZm9yZSBmYWxsaW5nIGJhY2sgdG8gdGhlCmxlZ2FjeSBmdWxsIEdQVSByZXNldCByZWNvdmVy eSBtb2RlIGlmIG5lY2Vzc2FyeS4gVGhpcyBpcyBvbmx5IHN1cHBvcnRlZApmcm9tIEdlbjggb253 YXJkcy4KCkhhbmdjaGVja2VyIGRldGVybWluZXMgd2hpY2ggZW5naW5lcyBhcmUgaHVuZyBhbmQg aW52b2tlcyBlcnJvciBoYW5kbGVyIHRvCnJlY292ZXIgZnJvbSBpdC4gRXJyb3IgaGFuZGxlciBz Y2hlZHVsZXMgcmVjb3ZlcnkgZm9yIGVhY2ggb2YgdGhvc2UgZW5naW5lcwp0aGF0IGFyZSBodW5n LiBUaGUgcmVjb3ZlcnkgcHJvY2VkdXJlIGlzIGFzIGZvbGxvd3MsCiAtIGlkZW50aWZpZXMgdGhl IHJlcXVlc3QgdGhhdCBjYXVzZWQgdGhlIGhhbmcgYW5kIGl0IGlzIGRyb3BwZWQKIC0gZm9yY2Ug ZW5naW5lIHRvIGlkbGU6IHRoaXMgaXMgZG9uZSBieSBpc3N1aW5nIGEgcmVzZXQgcmVxdWVzdAog LSByZXNldCBhbmQgcmUtaW5pdCBlbmdpbmUKIC0gcmVzdGFydCBzdWJtaXNzaW9ucyB0byB0aGUg ZW5naW5lCgpJZiBlbmdpbmUgcmVzZXQgZmFpbHMgdGhlbiB3ZSBmYWxsIGJhY2sgdG8gaGVhdnkg d2VpZ2h0IGZ1bGwgZ3B1IHJlc2V0CndoaWNoIHJlc2V0cyBhbGwgZW5naW5lcyBhbmQgcmVpbml0 aWF6ZXMgY29tcGxldGUgc3RhdGUgb2YgSFcgYW5kIFNXLgoKdjI6IFJlYmFzZS4KCkNjOiBDaHJp cyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KQ2M6IE1pa2EgS3VvcHBhbGEgPG1p a2Eua3VvcHBhbGFAbGludXguaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBUb21hcyBFbGYgPHRv bWFzLmVsZkBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IEFydW4gU2lsdXZlcnkgPGFydW4uc2ls dXZlcnlAbGludXguaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBNaWNoZWwgVGhpZXJyeSA8bWlj aGVsLnRoaWVycnlAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmMgICAgIHwgNTYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgfCAgMyArKwogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW0uYyAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJj LmMgICAgfCAxMiArKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmggICAg fCAgMSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYyB8IDQxICsrKysrKysr KysrKysrKysrKysrKysrKy0tLQogNiBmaWxlcyBjaGFuZ2VkLCAxMDggaW5zZXJ0aW9ucygrKSwg NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwppbmRleCBlNTY4OGVkZDYyY2Qu LmEwMzQ3OTNiYzI0NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCkBAIC0xODMwLDE4ICsxODMw LDcwIEBAIHZvaWQgaTkxNV9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp CiAgKgogICogUmVzZXQgYSBzcGVjaWZpYyBHUFUgZW5naW5lLiBVc2VmdWwgaWYgYSBoYW5nIGlz IGRldGVjdGVkLgogICogUmV0dXJucyB6ZXJvIG9uIHN1Y2Nlc3NmdWwgcmVzZXQgb3Igb3RoZXJ3 aXNlIGFuIGVycm9yIGNvZGUuCisgKgorICogUHJvY2VkdXJlIGlzIGZhaXJseSBzaW1wbGU6Cisg KiAgLSBpZGVudGlmaWVzIHRoZSByZXF1ZXN0IHRoYXQgY2F1c2VkIHRoZSBoYW5nIGFuZCBpdCBp cyBkcm9wcGVkCisgKiAgLSBmb3JjZSBlbmdpbmUgdG8gaWRsZTogdGhpcyBpcyBkb25lIGJ5IGlz c3VpbmcgYSByZXNldCByZXF1ZXN0CisgKiAgLSByZXNldCBlbmdpbmUKKyAqICAtIHJlc3RhcnQg c3VibWlzc2lvbnMgdG8gdGhlIGVuZ2luZQogICovCiBpbnQgaTkxNV9yZXNldF9lbmdpbmUoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewogCWludCByZXQ7CiAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZW5naW5lLT5pOTE1OwogCi0JLyogRklYTUU6IHJlcGxh Y2UgbWUgd2l0aCBlbmdpbmUgcmVzZXQgc2VxdWVuY2UgKi8KLQlyZXQgPSAtRU5PREVWOworCS8q CisJICogV2UgbmVlZCB0byBmaXJzdCBpZGxlIHRoZSBlbmdpbmUgYnkgaXNzdWluZyBhIHJlc2V0 IHJlcXVlc3QsCisJICogdGhlbiBwZXJmb3JtIHNvZnQgcmVzZXQgYW5kIHJlLWluaXRpYWxpemUg aHcgc3RhdGUsIGZvciBhbGwgb2YKKwkgKiB0aGlzIEdUIHBvd2VyIG5lZWQgdG8gYmUgYXdha2Ug c28gZW5zdXJlIGl0IGRvZXMgdGhyb3VnaG91dCB0aGUKKwkgKiBwcm9jZXNzCisJICovCisJaW50 ZWxfdW5jb3JlX2ZvcmNld2FrZV9nZXQoZGV2X3ByaXYsIEZPUkNFV0FLRV9BTEwpOworCisJLyoK KwkgKiB0aGUgcmVxdWVzdCB0aGF0IGNhdXNlZCB0aGUgaGFuZyBpcyBzdHVjayBvbiBlbHNwLCBp ZGVudGlmeSB0aGUKKwkgKiBhY3RpdmUgcmVxdWVzdCBhbmQgZHJvcCBpdCwgYWRqdXN0IGhlYWQg dG8gc2tpcCB0aGUgb2ZmZW5kaW5nCisJICogcmVxdWVzdCB0byByZXN1bWUgZXhlY3V0aW5nIHJl bWFpbmluZyByZXF1ZXN0cyBpbiB0aGUgcXVldWUuCisJICovCisJaTkxNV9nZW1fcmVzZXRfZW5n aW5lKGVuZ2luZSk7CisKKwlyZXQgPSBpbnRlbF9lbmdpbmVfcmVzZXRfYmVnaW4oZW5naW5lKTsK KwlpZiAocmV0KSB7CisJCURSTV9FUlJPUigiRmFpbGVkIHRvIGRpc2FibGUgJXNcbiIsIGVuZ2lu ZS0+bmFtZSk7CisJCWdvdG8gZXJyb3I7CisJfQorCisJcmV0ID0gaW50ZWxfZ3B1X3Jlc2V0KGRl dl9wcml2LCBpbnRlbF9lbmdpbmVfZmxhZyhlbmdpbmUpKTsKKwlpZiAocmV0KSB7CisJCURSTV9F UlJPUigiRmFpbGVkIHRvIHJlc2V0ICVzLCByZXQ9JWRcbiIsIGVuZ2luZS0+bmFtZSwgcmV0KTsK KwkJaW50ZWxfZW5naW5lX3Jlc2V0X2NhbmNlbChlbmdpbmUpOworCQlnb3RvIGVycm9yOworCX0K KworCXJldCA9IGVuZ2luZS0+aW5pdF9odyhlbmdpbmUpOworCWlmIChyZXQpCisJCWdvdG8gZXJy b3I7CiAKKwlpbnRlbF9lbmdpbmVfcmVzZXRfY2FuY2VsKGVuZ2luZSk7CisJaW50ZWxfZXhlY2xp c3RzX3Jlc3RhcnRfc3VibWlzc2lvbihlbmdpbmUpOworCisJaW50ZWxfdW5jb3JlX2ZvcmNld2Fr ZV9wdXQoZGV2X3ByaXYsIEZPUkNFV0FLRV9BTEwpOworCXJldHVybiAwOworCitlcnJvcjoKIAkv KiB1c2UgZnVsbCBncHUgcmVzZXQgdG8gcmVjb3ZlciBvbiBlcnJvciAqLwogCXNldF9iaXQoSTkx NV9SRVNFVF9JTl9QUk9HUkVTUywgJmRldl9wcml2LT5ncHVfZXJyb3IuZmxhZ3MpOwogCisJLyog RW5naW5lIHJlc2V0IGlzIHBlcmZvcm1lZCB3aXRob3V0IHRha2luZyBzdHJ1Y3RfbXV0ZXgsIHNp bmNlIGl0CisJICogZmFpbGVkIHdlIG5vdyBmYWxsYmFjayB0byBmdWxsIGdwdSByZXNldC4gV2Fr ZXVwIGFueSB3YWl0ZXJzCisJICogd2hpY2ggc2hvdWxkIG5vdyBzZWUgdGhlIHJlc2V0X2luX3By b2dyZXNzIGFuZCByZWxlYXNlCisJICogc3RydWN0X211dGV4IGZvciB1cyB0byBjb250aW51ZSBy ZWNvdmVyeS4KKwkgKi8KKwlyY3VfcmVhZF9sb2NrKCk7CisJaW50ZWxfZW5naW5lX3dha2V1cChl bmdpbmUpOworCXJjdV9yZWFkX3VubG9jaygpOworCisJaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9w dXQoZGV2X3ByaXYsIEZPUkNFV0FLRV9BTEwpOwogCXJldHVybiByZXQ7CiB9CiAKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oCmluZGV4IDZiNGU4ZWUxOTkwNS4uYTk3Y2M4ZjUwYWRlIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmgKQEAgLTMwMDksNiArMzAwOSw4IEBAIGV4dGVybiBpbnQgaW50ZWxfZ3B1 X3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIGVuZ2luZV9tYXNr KTsKIGV4dGVybiBib29sIGludGVsX2hhc19ncHVfcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KTsKIGV4dGVybiB2b2lkIGk5MTVfcmVzZXQoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KTsKIGV4dGVybiBib29sIGludGVsX2hhc19lbmdpbmVfcmVzZXQoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKK2V4dGVybiBpbnQgaW50ZWxfZW5naW5l X3Jlc2V0X2JlZ2luKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7CitleHRlcm4gaW50 IGludGVsX2VuZ2luZV9yZXNldF9jYW5jZWwoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l KTsKIGV4dGVybiBpbnQgaTkxNV9yZXNldF9lbmdpbmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lKTsKIGV4dGVybiBpbnQgaW50ZWxfZ3VjX3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdik7CiBleHRlcm4gdm9pZCBpbnRlbF9lbmdpbmVfaW5pdF9oYW5nY2hlY2so c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKQEAgLTMzOTcsNiArMzM5OSw3IEBAIHN0 YXRpYyBpbmxpbmUgdTMyIGk5MTVfcmVzZXRfY291bnQoc3RydWN0IGk5MTVfZ3B1X2Vycm9yICpl cnJvcikKIAogdm9pZCBpOTE1X2dlbV9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpOwogdm9pZCBpOTE1X2dlbV9zZXRfd2VkZ2VkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdik7Cit2b2lkIGk5MTVfZ2VtX3Jlc2V0X2VuZ2luZShzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUpOwogdm9pZCBpOTE1X2dlbV9jbGZsdXNoX29iamVjdChzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqb2JqLCBib29sIGZvcmNlKTsKIGludCBfX211c3RfY2hlY2sgaTkx NV9nZW1faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogaW50IF9fbXVz dF9jaGVjayBpOTE1X2dlbV9pbml0X2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwppbmRleCBmODZhNzFkOWZlMzcuLmQyZTlkMzBiZjc1 NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCkBAIC0yNzE4LDcgKzI3MTgsNyBAQCBzdGF0aWMg dm9pZCByZXNldF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCkK IAltZW1zZXQodmFkZHIgKyBoZWFkLCAwLCByZXF1ZXN0LT5wb3N0Zml4IC0gaGVhZCk7CiB9CiAK LXN0YXRpYyB2b2lkIGk5MTVfZ2VtX3Jlc2V0X2VuZ2luZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUpCit2b2lkIGk5MTVfZ2VtX3Jlc2V0X2VuZ2luZShzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUpCiB7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0Owog CXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICppbmNvbXBsZXRlX2N0eDsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbHJjLmMKaW5kZXggYmM2YWVjNjE5YTlkLi4yNjZhZDc3MDM4NjIgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2xyYy5jCkBAIC02NzYsNiArNjc2LDE4IEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19z dWJtaXRfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCiAJc3Bp bl91bmxvY2tfaXJxcmVzdG9yZSgmZW5naW5lLT50aW1lbGluZS0+bG9jaywgZmxhZ3MpOwogfQog Cit2b2lkIGludGVsX2V4ZWNsaXN0c19yZXN0YXJ0X3N1Ym1pc3Npb24oc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lKQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlzcGluX2xvY2tf aXJxc2F2ZSgmZW5naW5lLT50aW1lbGluZS0+bG9jaywgZmxhZ3MpOworCisJaWYgKGV4ZWNsaXN0 c19lbHNwX2lkbGUoZW5naW5lKSkKKwkJdGFza2xldF9oaV9zY2hlZHVsZSgmZW5naW5lLT5pcnFf dGFza2xldCk7CisKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZlbmdpbmUtPnRpbWVsaW5lLT5s b2NrLCBmbGFncyk7Cit9CisKIHN0YXRpYyBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICoKIHB0X2xv Y2tfZW5naW5lKHN0cnVjdCBpOTE1X3ByaW90cmVlICpwdCwgc3RydWN0IGludGVsX2VuZ2luZV9j cyAqbG9ja2VkKQogewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJj LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaAppbmRleCA4ZGY5N2E5N2YxOGQu LmRhMWExNjllNWJiNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJj LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmgKQEAgLTk2LDYgKzk2LDcg QEAgaW50IGludGVsX2xyX3Jjc19jb250ZXh0X3NldHVwX3RydHQoc3RydWN0IGk5MTVfZ2VtX2Nv bnRleHQgKmN0eCk7CiBpbnQgaW50ZWxfc2FuaXRpemVfZW5hYmxlX2V4ZWNsaXN0cyhzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJICAgIGludCBlbmFibGVfZXhlY2xpc3Rz KTsKIHZvaWQgaW50ZWxfZXhlY2xpc3RzX2VuYWJsZV9zdWJtaXNzaW9uKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdik7Cit2b2lkIGludGVsX2V4ZWNsaXN0c19yZXN0YXJ0X3N1Ym1p c3Npb24oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKIGJvb2wgaW50ZWxfZXhlY2xp c3RzX2lkbGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIAogI2VuZGlmIC8q IF9JTlRFTF9MUkNfSF8gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3VuY29yZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMKaW5kZXggOTdj ZTMyNDU3MGFkLi45MTA1YzE2NmE2ZDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3VuY29yZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5j CkBAIC0xNzU4LDcgKzE3NTgsNyBAQCBpbnQgaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBp bnQgZ2VuOF9yZXF1ZXN0X2VuZ2luZV9yZXNldChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUpCitzdGF0aWMgaW50IGdlbjhfZW5naW5lX3Jlc2V0X2JlZ2luKHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBl bmdpbmUtPmk5MTU7CiAJaW50IHJldDsKQEAgLTE3NzcsNyArMTc3Nyw3IEBAIHN0YXRpYyBpbnQg Z2VuOF9yZXF1ZXN0X2VuZ2luZV9yZXNldChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUp CiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIHZvaWQgZ2VuOF91bnJlcXVlc3RfZW5naW5lX3Jl c2V0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKK3N0YXRpYyB2b2lkIGdlbjhfZW5n aW5lX3Jlc2V0X2NhbmNlbChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiB7CiAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZW5naW5lLT5pOTE1OwogCkBAIC0xNzky LDE0ICsxNzkyLDE0IEBAIHN0YXRpYyBpbnQgZ2VuOF9yZXNldF9lbmdpbmVzKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAl1bnNpZ25lZCBpbnQgdG1wOwogCiAJZm9yX2VhY2hf ZW5naW5lX21hc2tlZChlbmdpbmUsIGRldl9wcml2LCBlbmdpbmVfbWFzaywgdG1wKQotCQlpZiAo Z2VuOF9yZXF1ZXN0X2VuZ2luZV9yZXNldChlbmdpbmUpKQorCQlpZiAoZ2VuOF9lbmdpbmVfcmVz ZXRfYmVnaW4oZW5naW5lKSkKIAkJCWdvdG8gbm90X3JlYWR5OwogCiAJcmV0dXJuIGdlbjZfcmVz ZXRfZW5naW5lcyhkZXZfcHJpdiwgZW5naW5lX21hc2spOwogCiBub3RfcmVhZHk6CiAJZm9yX2Vh Y2hfZW5naW5lX21hc2tlZChlbmdpbmUsIGRldl9wcml2LCBlbmdpbmVfbWFzaywgdG1wKQotCQln ZW44X3VucmVxdWVzdF9lbmdpbmVfcmVzZXQoZW5naW5lKTsKKwkJZ2VuOF9lbmdpbmVfcmVzZXRf Y2FuY2VsKGVuZ2luZSk7CiAKIAlyZXR1cm4gLUVJTzsKIH0KQEAgLTE4ODEsNiArMTg4MSwzOSBA QCBpbnQgaW50ZWxfZ3VjX3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK IAlyZXR1cm4gcmV0OwogfQogCisvKgorICogT24gZ2VuOCsgYSByZXNldCByZXF1ZXN0IGhhcyB0 byBiZSBpc3N1ZWQgdmlhIHRoZSByZXNldCBjb250cm9sIHJlZ2lzdGVyCisgKiBiZWZvcmUgYSBH UFUgZW5naW5lIGNhbiBiZSByZXNldCBpbiBvcmRlciB0byBzdG9wIHRoZSBjb21tYW5kIHN0cmVh bWVyCisgKiBhbmQgaWRsZSB0aGUgZW5naW5lLiBUaGlzIHJlcGxhY2VzIHRoZSBsZWdhY3kgd2F5 IG9mIHN0b3BwaW5nIGFuIGVuZ2luZQorICogYnkgd3JpdGluZyB0byB0aGUgc3RvcCByaW5nIGJp dCBpbiB0aGUgTUlfTU9ERSByZWdpc3Rlci4KKyAqLworaW50IGludGVsX2VuZ2luZV9yZXNldF9i ZWdpbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCit7CisJaWYgKCFpbnRlbF9oYXNf ZW5naW5lX3Jlc2V0KGVuZ2luZS0+aTkxNSkpIHsKKwkJRFJNX0VSUk9SKCJFbmdpbmUgUmVzZXQg bm90IHN1cHBvcnRlZCBvbiBHZW4lZFxuIiwKKwkJCSAgSU5URUxfSU5GTyhlbmdpbmUtPmk5MTUp LT5nZW4pOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlyZXR1cm4gZ2VuOF9lbmdpbmVfcmVz ZXRfYmVnaW4oZW5naW5lKTsKK30KKworLyoKKyAqIEl0IGlzIHBvc3NpYmxlIHRvIGJhY2sgb2Zm IGZyb20gYSBwcmV2aW91c2x5IGlzc3VlZCByZXNldCByZXF1ZXN0IGJ5IHNpbXBseQorICogY2xl YXJpbmcgdGhlIHJlc2V0IHJlcXVlc3QgYml0IGluIHRoZSByZXNldCBjb250cm9sIHJlZ2lzdGVy LgorICovCitpbnQgaW50ZWxfZW5naW5lX3Jlc2V0X2NhbmNlbChzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUpCit7CisJaWYgKCFpbnRlbF9oYXNfZW5naW5lX3Jlc2V0KGVuZ2luZS0+aTkx NSkpIHsKKwkJRFJNX0VSUk9SKCJSZXF1ZXN0IHRvIGNsZWFyIHJlc2V0IG5vdCBzdXBwb3J0ZWQg b24gR2VuJWRcbiIsCisJCQkgIElOVEVMX0lORk8oZW5naW5lLT5pOTE1KS0+Z2VuKTsKKwkJcmV0 dXJuIC1FSU5WQUw7CisJfQorCisJZ2VuOF9lbmdpbmVfcmVzZXRfY2FuY2VsKGVuZ2luZSk7CisJ cmV0dXJuIDA7Cit9CisKIGJvb2wgaW50ZWxfdW5jb3JlX3VuY2xhaW1lZF9tbWlvKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKIAlyZXR1cm4gY2hlY2tfZm9yX3VuY2xhaW1l ZF9tbWlvKGRldl9wcml2KTsKLS0gCjIuMTEuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaW50ZWwtZ2Z4Cg==