From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michel Thierry Subject: [PATCH v9 05/21] drm/i915: Add support for per engine reset recovery Date: Thu, 15 Jun 2017 13:18:12 -0700 Message-ID: <20170615201828.23144-6-michel.thierry@intel.com> References: <20170615201828.23144-1-michel.thierry@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 637C96E80F for ; Thu, 15 Jun 2017 20:18:31 +0000 (UTC) In-Reply-To: <20170615201828.23144-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 VGhpcyBjaGFuZ2UgaW1wbGVtZW50cyBzdXBwb3J0IGZvciBwZXItZW5naW5lIHJlc2V0IGFzIGFu IGluaXRpYWwsIGxlc3MKaW50cnVzaXZlIGhhbmcgcmVjb3Zlcnkgb3B0aW9uIHRvIGJlIGF0dGVt cHRlZCBiZWZvcmUgZmFsbGluZyBiYWNrIHRvIHRoZQpsZWdhY3kgZnVsbCBHUFUgcmVzZXQgcmVj b3ZlcnkgbW9kZSBpZiBuZWNlc3NhcnkuIFRoaXMgaXMgb25seSBzdXBwb3J0ZWQKZnJvbSBHZW44 IG9ud2FyZHMuCgpIYW5nY2hlY2tlciBkZXRlcm1pbmVzIHdoaWNoIGVuZ2luZXMgYXJlIGh1bmcg YW5kIGludm9rZXMgZXJyb3IgaGFuZGxlciB0bwpyZWNvdmVyIGZyb20gaXQuIEVycm9yIGhhbmRs ZXIgc2NoZWR1bGVzIHJlY292ZXJ5IGZvciBlYWNoIG9mIHRob3NlIGVuZ2luZXMKdGhhdCBhcmUg aHVuZy4gVGhlIHJlY292ZXJ5IHByb2NlZHVyZSBpcyBhcyBmb2xsb3dzLAogLSBpZGVudGlmaWVz IHRoZSByZXF1ZXN0IHRoYXQgY2F1c2VkIHRoZSBoYW5nIGFuZCBpdCBpcyBkcm9wcGVkCiAtIGZv cmNlIGVuZ2luZSB0byBpZGxlOiB0aGlzIGlzIGRvbmUgYnkgaXNzdWluZyBhIHJlc2V0IHJlcXVl c3QKIC0gcmVzZXQgdGhlIGVuZ2luZQogLSByZS1pbml0IHRoZSBlbmdpbmUgdG8gcmVzdW1lIHN1 Ym1pc3Npb25zLgoKSWYgZW5naW5lIHJlc2V0IGZhaWxzIHRoZW4gd2UgZmFsbCBiYWNrIHRvIGhl YXZ5IHdlaWdodCBmdWxsIGdwdSByZXNldAp3aGljaCByZXNldHMgYWxsIGVuZ2luZXMgYW5kIHJl aW5pdGlhemVzIGNvbXBsZXRlIHN0YXRlIG9mIEhXIGFuZCBTVy4KCnYyOiBSZWJhc2UuCnYzOiBz LyplbmdpbmVfcmVzZXQqLypyZXNldF9lbmdpbmUqLzsgZnJlZXplIGVuZ2luZSBhbmQgaXJxcyBi ZWZvcmUKY2FsbGluZyBpOTE1X2dlbV9yZXNldF9lbmdpbmUgKENocmlzKS4KdjQ6IFJlYmFzZSwg bW9kaWZ5IGk5MTVfZ2VtX3Jlc2V0X3ByZXBhcmUgdG8gdXNlIGEgcmluZyBtYXNrIGFuZApyZXVz ZSB0aGUgZnVuY3Rpb24gZm9yIHJlc2V0X2VuZ2luZS4KdjU6IGludGVsX3Jlc2V0X2VuZ2luZV9z dGFydC9jYW5jZWwgaW5zdGVhZCBvZiByZXF1ZXN0L3VucmVxdWVzdF9yZXNldC4KdjY6IENsZWFu IHVwIHJlc2V0X2VuZ2luZSBmdW5jdGlvbiB0byBub3QgcmVxdWlyZSBtdXRleCwgaS5lLiBubyBu ZWVkIHRvIGNhbGwKcmV2b2tlL3Jlc3RvcmVfZmVuY2VzIGFuZCBfcmV0aXJlX3JlcXVlc3RzIChD aHJpcykuCnY3OiBSZW1vdmUgbGVmdG92ZXJzIGZyb20gdjUsIGkuZS4gbm8gbmVlZCB0byBkaXNh YmxlIGlycSwgaG9sZApmb3JjZXdha2Ugb3Igd2FrZXVwIHRoZSBoYW5kb2ZmIGJpdCAoQ2hyaXMp Lgp2ODogZW5naW5lX3JldGlyZV9yZXF1ZXN0cyBzaG91bGQgYmUgKGFuZCBpdCB3YXMpIHN0YXRp YzsgZXhwbGFpbiB0aGF0CndlIGhhdmUgdG8gcmUtaW5pdCB0aGUgZW5naW5lIGFmdGVyIHJlc2V0 LCB3aGljaCBpcyB3aHkgdGhlIGluaXRfaHcgY2FsbAppcyBuZWVkZWQ7IGNoZWNrIHJlc2V0LWlu LXByb2dyZXNzIGZsYWcgKENocmlzKS4Kdjk6IFJlYmFzZSwgaW5jbHVkZSBjb2RlIHRvIHBhc3Mg dGhlIGFjdGl2ZSByZXF1ZXN0IHRvIGdlbV9yZXNldF9lbmdpbmUKKGFzIGl0IGlzIGFscmVhZHkg ZG9uZSBpbiBmdWxsIHJlc2V0KS4gUmVtb3ZlIHVubmVjZXNzYXJ5CmludGVsX3Jlc2V0X2VuZ2lu ZV9zdGFydC9jYW5jZWwsIHRoZXNlIGFyZSBleGVjdXRlZCBhcyBwYXJ0IG9mIHRoZQpyZXNldC4K djEwOiBSZWJhc2UsIHVzZSB0aGUgcmlnaHQgSTkxNV9SRVNFVF9FTkdJTkUgZmxhZy4KCkNjOiBD aHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KQ2M6IE1pa2EgS3VvcHBhbGEg PG1pa2Eua3VvcHBhbGFAbGludXguaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBUb21hcyBFbGYg PHRvbWFzLmVsZkBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IEFydW4gU2lsdXZlcnkgPGFydW4u c2lsdXZlcnlAbGludXguaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBNaWNoZWwgVGhpZXJyeSA8 bWljaGVsLnRoaWVycnlAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmMgfCA0OCArKysrKysrKysrKysrKysrKysrKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmggfCAgNSArKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgfCA5NiAr KysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQogMyBmaWxlcyBjaGFuZ2Vk LCAxMDkgaW5zZXJ0aW9ucygrKSwgNDAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmMKaW5kZXggZTRjNGJjNDFjMzc4Li5lOGNiNDYxN2VjYzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuYwpAQCAtMTkwOSwxMSArMTkwOSw1NSBAQCB2b2lkIGk5MTVfcmVzZXQoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQogICoKICAqIFJlc2V0IGEgc3BlY2lmaWMgR1BVIGVuZ2lu ZS4gVXNlZnVsIGlmIGEgaGFuZyBpcyBkZXRlY3RlZC4KICAqIFJldHVybnMgemVybyBvbiBzdWNj ZXNzZnVsIHJlc2V0IG9yIG90aGVyd2lzZSBhbiBlcnJvciBjb2RlLgorICoKKyAqIFByb2NlZHVy ZSBpczoKKyAqICAtIGlkZW50aWZpZXMgdGhlIHJlcXVlc3QgdGhhdCBjYXVzZWQgdGhlIGhhbmcg YW5kIGl0IGlzIGRyb3BwZWQKKyAqICAtIHJlc2V0IGVuZ2luZSAod2hpY2ggd2lsbCBmb3JjZSB0 aGUgZW5naW5lIHRvIGlkbGUpCisgKiAgLSByZS1pbml0L2NvbmZpZ3VyZSBlbmdpbmUKICAqLwog aW50IGk5MTVfcmVzZXRfZW5naW5lKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIHsK LQkvKiBGSVhNRTogcmVwbGFjZSBtZSB3aXRoIGVuZ2luZSByZXNldCBzZXF1ZW5jZSAqLwotCXJl dHVybiAtRU5PREVWOworCWludCByZXQ7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gZW5naW5lLT5pOTE1OworCXN0cnVjdCBpOTE1X2dwdV9lcnJvciAqZXJyb3IgPSAmZGV2 X3ByaXYtPmdwdV9lcnJvcjsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKmFjdGl2ZV9y ZXF1ZXN0OworCisJR0VNX0JVR19PTighdGVzdF9iaXQoSTkxNV9SRVNFVF9FTkdJTkUgKyBlbmdp bmUtPmlkLCAmZXJyb3ItPmZsYWdzKSk7CisKKwlEUk1fREVCVUdfRFJJVkVSKCJyZXNldHRpbmcg JXNcbiIsIGVuZ2luZS0+bmFtZSk7CisKKwlhY3RpdmVfcmVxdWVzdCA9IGk5MTVfZ2VtX3Jlc2V0 X3ByZXBhcmVfZW5naW5lKGVuZ2luZSk7CisJaWYgKElTX0VSUihhY3RpdmVfcmVxdWVzdCkpIHsK KwkJRFJNX0RFQlVHX0RSSVZFUigiUHJldmlvdXMgcmVzZXQgZmFpbGVkLCBwcm9tb3RlIHRvIGZ1 bGwgcmVzZXRcbiIpOworCQlyZXQgPSBQVFJfRVJSKGFjdGl2ZV9yZXF1ZXN0KTsKKwkJZ290byBv dXQ7CisJfQorCisJLyoKKwkgKiB0aGUgcmVxdWVzdCB0aGF0IGNhdXNlZCB0aGUgaGFuZyBpcyBz dHVjayBvbiBlbHNwLCB3ZSBrbm93IHRoZQorCSAqIGFjdGl2ZSByZXF1ZXN0IGFuZCBjYW4gZHJv cCBpdCwgYWRqdXN0IGhlYWQgdG8gc2tpcCB0aGUgb2ZmZW5kaW5nCisJICogcmVxdWVzdCB0byBy ZXN1bWUgZXhlY3V0aW5nIHJlbWFpbmluZyByZXF1ZXN0cyBpbiB0aGUgcXVldWUuCisJICovCisJ aTkxNV9nZW1fcmVzZXRfZW5naW5lKGVuZ2luZSwgYWN0aXZlX3JlcXVlc3QpOworCisJLyogZmlu YWxseSwgcmVzZXQgZW5naW5lICovCisJcmV0ID0gaW50ZWxfZ3B1X3Jlc2V0KGRldl9wcml2LCBp bnRlbF9lbmdpbmVfZmxhZyhlbmdpbmUpKTsKKwlpZiAocmV0KSB7CisJCURSTV9FUlJPUigiRmFp bGVkIHRvIHJlc2V0ICVzLCByZXQ9JWRcbiIsIGVuZ2luZS0+bmFtZSwgcmV0KTsKKwkJZ290byBv dXQ7CisJfQorCisJaTkxNV9nZW1fcmVzZXRfZmluaXNoX2VuZ2luZShlbmdpbmUpOworCisJLyoK KwkgKiBUaGUgZW5naW5lIGFuZCBpdHMgcmVnaXN0ZXJzIChhbmQgd29ya2Fyb3VuZHMgaW4gY2Fz ZSBvZiByZW5kZXIpCisJICogaGF2ZSBiZWVuIHJlc2V0IHRvIHRoZWlyIGRlZmF1bHQgdmFsdWVz LiBGb2xsb3cgdGhlIGluaXRfcmluZworCSAqIHByb2Nlc3MgdG8gcHJvZ3JhbSBSSU5HX01PREUs IEhXU1AgYW5kIHJlLWVuYWJsZSBzdWJtaXNzaW9uLgorCSAqLworCXJldCA9IGVuZ2luZS0+aW5p dF9odyhlbmdpbmUpOworCitvdXQ6CisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIGludCBpOTE1 X3BtX3N1c3BlbmQoc3RydWN0IGRldmljZSAqa2RldikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmlu ZGV4IDYxMDFlNzZjYzVhYy4uMTYxMmY0ZDk3NDYzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgK QEAgLTM0NjgsMTEgKzM0NjgsMTYgQEAgc3RhdGljIGlubGluZSB1MzIgaTkxNV9yZXNldF9jb3Vu dChzdHJ1Y3QgaTkxNV9ncHVfZXJyb3IgKmVycm9yKQogCXJldHVybiBSRUFEX09OQ0UoZXJyb3It PnJlc2V0X2NvdW50KTsKIH0KIAorc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICoKK2k5MTVf Z2VtX3Jlc2V0X3ByZXBhcmVfZW5naW5lKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7 CiBpbnQgaTkxNV9nZW1fcmVzZXRfcHJlcGFyZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpOwogdm9pZCBpOTE1X2dlbV9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpOwordm9pZCBpOTE1X2dlbV9yZXNldF9maW5pc2hfZW5naW5lKHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSk7CiB2b2lkIGk5MTVfZ2VtX3Jlc2V0X2ZpbmlzaChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogdm9pZCBpOTE1X2dlbV9zZXRfd2VkZ2VkKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiBib29sIGk5MTVfZ2VtX3Vuc2V0X3dlZGdl ZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwordm9pZCBpOTE1X2dlbV9yZXNl dF9lbmdpbmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAorCQkJICAgc3RydWN0IGRy bV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KTsKIAogdm9pZCBpOTE1X2dlbV9pbml0X21taW8o c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOwogaW50IF9fbXVzdF9jaGVjayBpOTE1X2dl bV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW0uYwppbmRleCA0NzIyY2QzNTY3YTUuLmM0Njk4ZWE5NWUzNCAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbS5jCkBAIC0yODEyLDQ1ICsyODEyLDYxIEBAIHN0YXRpYyBib29sIGVuZ2luZV9zdGFs bGVkKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAlyZXR1cm4gdHJ1ZTsKIH0KIAor LyoKKyAqIEVuc3VyZSBpcnEgaGFuZGxlciBmaW5pc2hlcywgYW5kIG5vdCBydW4gYWdhaW4uCisg KiBBbHNvIHJldHVybiB0aGUgYWN0aXZlIHJlcXVlc3Qgc28gdGhhdCB3ZSBvbmx5IHNlYXJjaCBm b3IgaXQgb25jZS4KKyAqLworc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICoKK2k5MTVfZ2Vt X3Jlc2V0X3ByZXBhcmVfZW5naW5lKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKK3sK KwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QgPSBOVUxMOworCisJLyogUHJl dmVudCB0aGUgc2lnbmFsZXIgdGhyZWFkIGZyb20gdXBkYXRpbmcgdGhlIHJlcXVlc3QKKwkgKiBz dGF0ZSAoYnkgY2FsbGluZyBkbWFfZmVuY2Vfc2lnbmFsKSBhcyB3ZSBhcmUgcHJvY2Vzc2luZwor CSAqIHRoZSByZXNldC4gVGhlIHdyaXRlIGZyb20gdGhlIEdQVSBvZiB0aGUgc2Vxbm8gaXMKKwkg KiBhc3luY2hyb25vdXMgYW5kIHRoZSBzaWduYWxlciB0aHJlYWQgbWF5IHNlZSBhIGRpZmZlcmVu dAorCSAqIHZhbHVlIHRvIHVzIGFuZCBkZWNsYXJlIHRoZSByZXF1ZXN0IGNvbXBsZXRlLCBldmVu IHRob3VnaAorCSAqIHRoZSByZXNldCByb3V0aW5lIGhhdmUgcGlja2VkIHRoYXQgcmVxdWVzdCBh cyB0aGUgYWN0aXZlCisJICogKGluY29tcGxldGUpIHJlcXVlc3QuIFRoaXMgY29uZmxpY3QgaXMg bm90IGhhbmRsZWQKKwkgKiBncmFjZWZ1bGx5IQorCSAqLworCWt0aHJlYWRfcGFyayhlbmdpbmUt PmJyZWFkY3J1bWJzLnNpZ25hbGVyKTsKKworCS8qIFByZXZlbnQgcmVxdWVzdCBzdWJtaXNzaW9u IHRvIHRoZSBoYXJkd2FyZSB1bnRpbCB3ZSBoYXZlCisJICogY29tcGxldGVkIHRoZSByZXNldCBp biBpOTE1X2dlbV9yZXNldF9maW5pc2goKS4gSWYgYSByZXF1ZXN0CisJICogaXMgY29tcGxldGVk IGJ5IG9uZSBlbmdpbmUsIGl0IG1heSB0aGVuIHF1ZXVlIGEgcmVxdWVzdAorCSAqIHRvIGEgc2Vj b25kIHZpYSBpdHMgZW5naW5lLT5pcnFfdGFza2xldCAqanVzdCogYXMgd2UgYXJlCisJICogY2Fs bGluZyBlbmdpbmUtPmluaXRfaHcoKSBhbmQgYWxzbyB3cml0aW5nIHRoZSBFTFNQLgorCSAqIFR1 cm5pbmcgb2ZmIHRoZSBlbmdpbmUtPmlycV90YXNrbGV0IHVudGlsIHRoZSByZXNldCBpcyBvdmVy CisJICogcHJldmVudHMgdGhlIHJhY2UuCisJICovCisJdGFza2xldF9raWxsKCZlbmdpbmUtPmly cV90YXNrbGV0KTsKKwl0YXNrbGV0X2Rpc2FibGUoJmVuZ2luZS0+aXJxX3Rhc2tsZXQpOworCisJ aWYgKGVuZ2luZS0+aXJxX3NlcW5vX2JhcnJpZXIpCisJCWVuZ2luZS0+aXJxX3NlcW5vX2JhcnJp ZXIoZW5naW5lKTsKKworCWlmIChlbmdpbmVfc3RhbGxlZChlbmdpbmUpKSB7CisJCXJlcXVlc3Qg PSBpOTE1X2dlbV9maW5kX2FjdGl2ZV9yZXF1ZXN0KGVuZ2luZSk7CisJCWlmIChyZXF1ZXN0ICYm IHJlcXVlc3QtPmZlbmNlLmVycm9yID09IC1FSU8pCisJCQlyZXF1ZXN0ID0gRVJSX1BUUigtRUlP KTsgLyogUHJldmlvdXMgcmVzZXQgZmFpbGVkISAqLworCX0KKworCXJldHVybiByZXF1ZXN0Owor fQorCiBpbnQgaTkxNV9nZW1fcmVzZXRfcHJlcGFyZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCiB7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOworCXN0cnVjdCBk cm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdDsKIAllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsK IAlpbnQgZXJyID0gMDsKIAotCS8qIEVuc3VyZSBpcnEgaGFuZGxlciBmaW5pc2hlcywgYW5kIG5v dCBydW4gYWdhaW4uICovCiAJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGlkKSB7 Ci0JCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCA9IE5VTEw7Ci0KLQkJLyog UHJldmVudCB0aGUgc2lnbmFsZXIgdGhyZWFkIGZyb20gdXBkYXRpbmcgdGhlIHJlcXVlc3QKLQkJ ICogc3RhdGUgKGJ5IGNhbGxpbmcgZG1hX2ZlbmNlX3NpZ25hbCkgYXMgd2UgYXJlIHByb2Nlc3Np bmcKLQkJICogdGhlIHJlc2V0LiBUaGUgd3JpdGUgZnJvbSB0aGUgR1BVIG9mIHRoZSBzZXFubyBp cwotCQkgKiBhc3luY2hyb25vdXMgYW5kIHRoZSBzaWduYWxlciB0aHJlYWQgbWF5IHNlZSBhIGRp ZmZlcmVudAotCQkgKiB2YWx1ZSB0byB1cyBhbmQgZGVjbGFyZSB0aGUgcmVxdWVzdCBjb21wbGV0 ZSwgZXZlbiB0aG91Z2gKLQkJICogdGhlIHJlc2V0IHJvdXRpbmUgaGF2ZSBwaWNrZWQgdGhhdCBy ZXF1ZXN0IGFzIHRoZSBhY3RpdmUKLQkJICogKGluY29tcGxldGUpIHJlcXVlc3QuIFRoaXMgY29u ZmxpY3QgaXMgbm90IGhhbmRsZWQKLQkJICogZ3JhY2VmdWxseSEKLQkJICovCi0JCWt0aHJlYWRf cGFyayhlbmdpbmUtPmJyZWFkY3J1bWJzLnNpZ25hbGVyKTsKLQotCQkvKiBQcmV2ZW50IHJlcXVl c3Qgc3VibWlzc2lvbiB0byB0aGUgaGFyZHdhcmUgdW50aWwgd2UgaGF2ZQotCQkgKiBjb21wbGV0 ZWQgdGhlIHJlc2V0IGluIGk5MTVfZ2VtX3Jlc2V0X2ZpbmlzaCgpLiBJZiBhIHJlcXVlc3QKLQkJ ICogaXMgY29tcGxldGVkIGJ5IG9uZSBlbmdpbmUsIGl0IG1heSB0aGVuIHF1ZXVlIGEgcmVxdWVz dAotCQkgKiB0byBhIHNlY29uZCB2aWEgaXRzIGVuZ2luZS0+aXJxX3Rhc2tsZXQgKmp1c3QqIGFz IHdlIGFyZQotCQkgKiBjYWxsaW5nIGVuZ2luZS0+aW5pdF9odygpIGFuZCBhbHNvIHdyaXRpbmcg dGhlIEVMU1AuCi0JCSAqIFR1cm5pbmcgb2ZmIHRoZSBlbmdpbmUtPmlycV90YXNrbGV0IHVudGls IHRoZSByZXNldCBpcyBvdmVyCi0JCSAqIHByZXZlbnRzIHRoZSByYWNlLgotCQkgKi8KLQkJdGFz a2xldF9raWxsKCZlbmdpbmUtPmlycV90YXNrbGV0KTsKLQkJdGFza2xldF9kaXNhYmxlKCZlbmdp bmUtPmlycV90YXNrbGV0KTsKLQotCQlpZiAoZW5naW5lLT5pcnFfc2Vxbm9fYmFycmllcikKLQkJ CWVuZ2luZS0+aXJxX3NlcW5vX2JhcnJpZXIoZW5naW5lKTsKLQotCQlpZiAoZW5naW5lX3N0YWxs ZWQoZW5naW5lKSkgewotCQkJcmVxdWVzdCA9IGk5MTVfZ2VtX2ZpbmRfYWN0aXZlX3JlcXVlc3Qo ZW5naW5lKTsKLQkJCWlmIChyZXF1ZXN0ICYmIHJlcXVlc3QtPmZlbmNlLmVycm9yID09IC1FSU8p Ci0JCQkJZXJyID0gLUVJTzsgLyogUHJldmlvdXMgcmVzZXQgZmFpbGVkISAqLworCQlyZXF1ZXN0 ID0gaTkxNV9nZW1fcmVzZXRfcHJlcGFyZV9lbmdpbmUoZW5naW5lKTsKKwkJaWYgKElTX0VSUihy ZXF1ZXN0KSkgeworCQkJZXJyID0gUFRSX0VSUihyZXF1ZXN0KTsKKwkJCWJyZWFrOwogCQl9CiAK IAkJZW5naW5lLT5oYW5nY2hlY2suYWN0aXZlX3JlcXVlc3QgPSByZXF1ZXN0OwpAQCAtMjk0MSw4 ICsyOTU3LDggQEAgc3RhdGljIGJvb2wgaTkxNV9nZW1fcmVzZXRfcmVxdWVzdChzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCiAJcmV0dXJuIGd1aWx0eTsKIH0KIAotc3RhdGlj IHZvaWQgaTkxNV9nZW1fcmVzZXRfZW5naW5lKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSwKLQkJCQkgIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCkKK3ZvaWQgaTkx NV9nZW1fcmVzZXRfZW5naW5lKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKKwkJCSAg IHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCkKIHsKIAlpZiAocmVxdWVzdCAm JiBpOTE1X2dlbV9yZXNldF9yZXF1ZXN0KHJlcXVlc3QpKSB7CiAJCURSTV9ERUJVR19EUklWRVIo InJlc2V0dGluZyAlcyB0byByZXN0YXJ0IGZyb20gdGFpbCBvZiByZXF1ZXN0IDB4JXhcbiIsCkBA IC0yOTg1LDYgKzMwMDEsMTIgQEAgdm9pZCBpOTE1X2dlbV9yZXNldChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCiAJfQogfQogCit2b2lkIGk5MTVfZ2VtX3Jlc2V0X2ZpbmlzaF9l bmdpbmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQoreworCXRhc2tsZXRfZW5hYmxl KCZlbmdpbmUtPmlycV90YXNrbGV0KTsKKwlrdGhyZWFkX3VucGFyayhlbmdpbmUtPmJyZWFkY3J1 bWJzLnNpZ25hbGVyKTsKK30KKwogdm9pZCBpOTE1X2dlbV9yZXNldF9maW5pc2goc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZTsKQEAgLTI5OTIsMTAgKzMwMTQsOCBAQCB2b2lkIGk5MTVfZ2VtX3Jlc2V0X2ZpbmlzaChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAKIAlsb2NrZGVwX2Fzc2VydF9oZWxk KCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7CiAKLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5l LCBkZXZfcHJpdiwgaWQpIHsKLQkJdGFza2xldF9lbmFibGUoJmVuZ2luZS0+aXJxX3Rhc2tsZXQp OwotCQlrdGhyZWFkX3VucGFyayhlbmdpbmUtPmJyZWFkY3J1bWJzLnNpZ25hbGVyKTsKLQl9CisJ Zm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGlkKQorCQlpOTE1X2dlbV9yZXNldF9m aW5pc2hfZW5naW5lKGVuZ2luZSk7CiB9CiAKIHN0YXRpYyB2b2lkIG5vcF9zdWJtaXRfcmVxdWVz dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCi0tIAoyLjExLjAKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=