From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [CI 07/21] drm/i915: Separate out reset flags from the reset counter Date: Fri, 9 Sep 2016 12:00:47 +0100 Message-ID: <20160909110101.31967-7-chris@chris-wilson.co.uk> References: <20160909110101.31967-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x243.google.com (mail-wm0-x243.google.com [IPv6:2a00:1450:400c:c09::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0DC036E783 for ; Fri, 9 Sep 2016 11:01:14 +0000 (UTC) Received: by mail-wm0-x243.google.com with SMTP id w12so2213460wmf.1 for ; Fri, 09 Sep 2016 04:01:13 -0700 (PDT) Received: from haswell.alporthouse.com ([78.156.65.138]) by smtp.gmail.com with ESMTPSA id kq2sm2786494wjc.41.2016.09.09.04.01.11 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Sep 2016 04:01:11 -0700 (PDT) In-Reply-To: <20160909110101.31967-1-chris@chris-wilson.co.uk> 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 SW4gcHJlcGFyYXRpb24gZm9yIGludHJvZHVjaW5nIGEgcGVyLWVuZ2luZSByZXNldCwgd2UgY2Fu IGZpcnN0IHNlcGFyYXRlCnRoZSBtaXhpbmcgb2YgdGhlIHJlc2V0IHN0YXRlIGZyb20gdGhlIGds b2JhbCByZXNldCBjb3VudGVyLgoKVGhlIGxvc3Mgb2YgYXRvbWljaXR5IGluIHVwZGF0aW5nIHRo ZSByZXNldCBzdGF0ZSBwb3NlcyBhIHNtYWxsIHByb2JsZW0KZm9yIGhhbmRsaW5nIHRoZSB3YWl0 ZXJzLiBGb3IgcmVxdWVzdHMsIHRoaXMgaXMgc29sdmVkIGJ5IGFkdmFuY2luZyB0aGUKc2Vxbm8g c28gdGhhdCBhIHdhaXRlciB3YWtpbmcgdXAgYWZ0ZXIgdGhlIHJlc2V0IGtub3dzIHRoZSByZXF1 ZXN0IGlzCmNvbXBsZXRlLiBGb3IgcGVuZGluZyBmbGlwcywgd2Ugc3RpbGwgcmVseSBvbiB0aGUg aW5jcmVtZW50IG9mIHRoZQpnbG9iYWwgcmVzZXQgZXBvY2ggKGFzIHdlbGwgYXMgdGhlIHJlc2V0 LWluLXByb2dyZXNzIGZsYWcpIHRvIHNpZ25pZnkKd2hlbiB0aGUgaGFyZHdhcmUgd2FzIHJlc2V0 LgoKVGhlIGFkdmFudGFnZSwgbm93IHRoYXQgd2UgZG8gbm90IGluc3BlY3QgdGhlIHJlc2V0IHN0 YXRlIGR1cmluZyByZXNldAppdHNlbGYgaS5lLiB3ZSBubyBsb25nZXIgZW1pdCByZXF1ZXN0cyBk dXJpbmcgcmVzZXQsIGlzIHRoYXQgd2UgY2FuIHVzZQp0aGUgYXRvbWljIHVwZGF0ZXMgb2YgdGhl IHN0YXRlIGZsYWdzIHRvIGVuc3VyZSB0aGF0IG9ubHkgb25lIHJlc2V0CndvcmtlciBpcyBhY3Rp dmUuCgp2MjogTWlrYSBzcG90dGVkIHRoYXQgSSB0cmFuc2Zvcm1lZCB0aGUgaTkxNV9nZW1fd2Fp dF9mb3JfZXJyb3IoKSB3YWtldXAKaW50byBhIHdhaXRlciB3YWtldXAuCgpTaWduZWQtb2ZmLWJ5 OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KQ2M6IEFydW4gU2lsdXZl cnkgPGFydW4uc2lsdXZlcnlAbGludXguaW50ZWwuY29tPgpDYzogTWlrYSBLdW9wcGFsYSA8bWlr YS5rdW9wcGFsYUBpbnRlbC5jb20+Ckxpbms6IGh0dHA6Ly9wYXRjaHdvcmsuZnJlZWRlc2t0b3Au b3JnL3BhdGNoL21zZ2lkLzE0NzA0MTQ2MDctMzI0NTMtNi1naXQtc2VuZC1lbWFpbC1hcnVuLnNp bHV2ZXJ5QGxpbnV4LmludGVsLmNvbQpSZXZpZXdlZC1ieTogTWlrYSBLdW9wcGFsYSA8bWlrYS5r dW9wcGFsYUBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2Zz LmMgICAgIHwgICA5ICsrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyAgICAgICAg IHwgIDE2ICsrLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgfCAg NDYgKysrKystLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAg ICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5jIHwgIDEz ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgICAgICAgICB8IDEwMyArKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jICAgIHwgIDI1ICsrKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaCAgICAgICAgfCAgIDQgKy0KIDggZmlsZXMgY2hhbmdlZCwgMTAxIGluc2VydGlvbnMoKyks IDExNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCmluZGV4IDk4 YWY1N2NkNTA5Ni4uMmE4MGNkMWM5MzUxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2RlYnVnZnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMu YwpAQCAtMTI4Nyw2ICsxMjg3LDE1IEBAIHN0YXRpYyBpbnQgaTkxNV9oYW5nY2hlY2tfaW5mbyhz dHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKIAllbnVtIGludGVsX2VuZ2luZV9pZCBp ZDsKIAlpbnQgajsKIAorCWlmICh0ZXN0X2JpdChJOTE1X1dFREdFRCwgJmRldl9wcml2LT5ncHVf ZXJyb3IuZmxhZ3MpKQorCQlzZXFfcHJpbnRmKG0sICJXZWRnZWRcbiIpOworCWlmICh0ZXN0X2Jp dChJOTE1X1JFU0VUX0lOX1BST0dSRVNTLCAmZGV2X3ByaXYtPmdwdV9lcnJvci5mbGFncykpCisJ CXNlcV9wcmludGYobSwgIlJlc2V0IGluIHByb2dyZXNzXG4iKTsKKwlpZiAod2FpdHF1ZXVlX2Fj dGl2ZSgmZGV2X3ByaXYtPmdwdV9lcnJvci53YWl0X3F1ZXVlKSkKKwkJc2VxX3ByaW50ZihtLCAi V2FpdGVyIGhvbGRpbmcgc3RydWN0IG11dGV4XG4iKTsKKwlpZiAod2FpdHF1ZXVlX2FjdGl2ZSgm ZGV2X3ByaXYtPmdwdV9lcnJvci5yZXNldF9xdWV1ZSkpCisJCXNlcV9wcmludGYobSwgInN0cnVj dF9tdXRleCBibG9ja2VkIGZvciByZXNldFxuIik7CisKIAlpZiAoIWk5MTUuZW5hYmxlX2hhbmdj aGVjaykgewogCQlzZXFfcHJpbnRmKG0sICJIYW5nY2hlY2sgZGlzYWJsZWRcbiIpOwogCQlyZXR1 cm4gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCmluZGV4IDAyYzM0ZDY5OTZlYS4uNDdhNjc2ZDg1 OWRiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKQEAgLTE1NzksNyArMTU3OSw3IEBAIHN0YXRp YyBpbnQgaTkxNV9kcm1fcmVzdW1lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJbXV0ZXhfbG9j aygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogCWlmIChpOTE1X2dlbV9pbml0X2h3KGRldikpIHsKIAkJ RFJNX0VSUk9SKCJmYWlsZWQgdG8gcmUtaW5pdGlhbGl6ZSBHUFUsIGRlY2xhcmluZyB3ZWRnZWQh XG4iKTsKLQkJYXRvbWljX29yKEk5MTVfV0VER0VELCAmZGV2X3ByaXYtPmdwdV9lcnJvci5yZXNl dF9jb3VudGVyKTsKKwkJc2V0X2JpdChJOTE1X1dFREdFRCwgJmRldl9wcml2LT5ncHVfZXJyb3Iu ZmxhZ3MpOwogCX0KIAltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKIApAQCAtMTc0 MSwyMCArMTc0MSwxMyBAQCBpbnQgaTkxNV9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9ICZkZXZfcHJpdi0+ZHJtOwog CXN0cnVjdCBpOTE1X2dwdV9lcnJvciAqZXJyb3IgPSAmZGV2X3ByaXYtPmdwdV9lcnJvcjsKLQl1 bnNpZ25lZCByZXNldF9jb3VudGVyOwogCWludCByZXQ7CiAKIAltdXRleF9sb2NrKCZkZXYtPnN0 cnVjdF9tdXRleCk7CiAKIAkvKiBDbGVhciBhbnkgcHJldmlvdXMgZmFpbGVkIGF0dGVtcHRzIGF0 IHJlY292ZXJ5LiBUaW1lIHRvIHRyeSBhZ2Fpbi4gKi8KLQlhdG9taWNfYW5kbm90KEk5MTVfV0VE R0VELCAmZXJyb3ItPnJlc2V0X2NvdW50ZXIpOwotCi0JLyogQ2xlYXIgdGhlIHJlc2V0LWluLXBy b2dyZXNzIGZsYWcgYW5kIGluY3JlbWVudCB0aGUgcmVzZXQgZXBvY2guICovCi0JcmVzZXRfY291 bnRlciA9IGF0b21pY19pbmNfcmV0dXJuKCZlcnJvci0+cmVzZXRfY291bnRlcik7Ci0JaWYgKFdB Uk5fT04oX19pOTE1X3Jlc2V0X2luX3Byb2dyZXNzKHJlc2V0X2NvdW50ZXIpKSkgewotCQlyZXQg PSAtRUlPOwotCQlnb3RvIGVycm9yOwotCX0KKwlfX2NsZWFyX2JpdChJOTE1X1dFREdFRCwgJmVy cm9yLT5mbGFncyk7CisJZXJyb3ItPnJlc2V0X2NvdW50Kys7CiAKIAlwcl9ub3RpY2UoImRybS9p OTE1OiBSZXNldHRpbmcgY2hpcCBhZnRlciBncHUgaGFuZ1xuIik7CiAKQEAgLTE3OTEsNiArMTc4 NCw3IEBAIGludCBpOTE1X3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK IAkJZ290byBlcnJvcjsKIAl9CiAKKwljbGVhcl9iaXQoSTkxNV9SRVNFVF9JTl9QUk9HUkVTUywg JmVycm9yLT5mbGFncyk7CiAJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CiAKIAkv KgpAQCAtMTgwNSw3ICsxNzk5LDcgQEAgaW50IGk5MTVfcmVzZXQoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQogCXJldHVybiAwOwogCiBlcnJvcjoKLQlhdG9taWNfb3IoSTkxNV9X RURHRUQsICZlcnJvci0+cmVzZXRfY291bnRlcik7CisJc2V0X2JpdChJOTE1X1dFREdFRCwgJmVy cm9yLT5mbGFncyk7CiAJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CiAJcmV0dXJu IHJldDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IGYzOWJlZGU3NjY0Yy4uZGNlZDdl NzJiNjI1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTE0MDUsOSArMTQwNSwxMCBAQCBz dHJ1Y3QgaTkxNV9ncHVfZXJyb3IgewogCSAqIFN0YXRlIHZhcmlhYmxlIGNvbnRyb2xsaW5nIHRo ZSByZXNldCBmbG93IGFuZCBjb3VudAogCSAqCiAJICogVGhpcyBpcyBhIGNvdW50ZXIgd2hpY2gg Z2V0cyBpbmNyZW1lbnRlZCB3aGVuIHJlc2V0IGlzIHRyaWdnZXJlZCwKLQkgKiBhbmQgYWdhaW4g d2hlbiByZXNldCBoYXMgYmVlbiBoYW5kbGVkLiBTbyBvZGQgdmFsdWVzIChsb3dlc3QgYml0IHNl dCkKLQkgKiBtZWFucyB0aGF0IHJlc2V0IGlzIGluIHByb2dyZXNzIGFuZCBldmVuIHZhbHVlcyB0 aGF0Ci0JICogKHJlc2V0X2NvdW50ZXIgPj4gMSk6dGggcmVzZXQgd2FzIHN1Y2Nlc3NmdWxseSBj b21wbGV0ZWQuCisJICoKKwkgKiBCZWZvcmUgdGhlIHJlc2V0IGNvbW1lbmNlcywgdGhlIEk5MTVf UkVTRVRfSU5fUFJPR1JFU1MgYml0IGlzIHNldAorCSAqIG1lYW5pbmcgdGhhdCBhbnkgd2FpdGVy cyBob2xkaW5nIG9udG8gdGhlIHN0cnVjdF9tdXRleCBzaG91bGQKKwkgKiByZWxpbnF1aXNoIHRo ZSBsb2NrIGltbWVkaWF0ZWx5IGluIG9yZGVyIGZvciB0aGUgcmVzZXQgdG8gc3RhcnQuCiAJICoK IAkgKiBJZiByZXNldCBpcyBub3QgY29tcGxldGVkIHN1Y2Nlc2Z1bGx5LCB0aGUgSTkxNV9XRURH RSBiaXQgaXMKIAkgKiBzZXQgbWVhbmluZyB0aGF0IGhhcmR3YXJlIGlzIHRlcm1pbmFsbHkgc291 ciBhbmQgdGhlcmUgaXMgbm8KQEAgLTE0MjIsMTAgKzE0MjMsMTEgQEAgc3RydWN0IGk5MTVfZ3B1 X2Vycm9yIHsKIAkgKiBuYXR1cmFsbHkgZW5mb3JjZXMgdGhlIGNvcnJlY3Qgb3JkZXJpbmcgYmV0 d2VlbiB0aGUgYmFpbC1vdXQgb2YgdGhlCiAJICogd2FpdGVyIGFuZCB0aGUgZ3B1IHJlc2V0IHdv cmsgY29kZS4KIAkgKi8KLQlhdG9taWNfdCByZXNldF9jb3VudGVyOworCXVuc2lnbmVkIGxvbmcg cmVzZXRfY291bnQ7CiAKLSNkZWZpbmUgSTkxNV9SRVNFVF9JTl9QUk9HUkVTU19GTEFHCTEKLSNk ZWZpbmUgSTkxNV9XRURHRUQJCQkoMSA8PCAzMSkKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworI2Rl ZmluZSBJOTE1X1JFU0VUX0lOX1BST0dSRVNTCTAKKyNkZWZpbmUgSTkxNV9XRURHRUQJCShCSVRT X1BFUl9MT05HIC0gMSkKIAogCS8qKgogCSAqIFdhaXRxdWV1ZSB0byBzaWduYWwgd2hlbiBhIGhh bmcgaXMgZGV0ZWN0ZWQuIFVzZWQgdG8gZm9yIHdhaXRlcnMKQEAgLTMyNDEsNDQgKzMyNDMsMjQg QEAgaTkxNV9nZW1fZmluZF9hY3RpdmVfcmVxdWVzdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUpOwogCiB2b2lkIGk5MTVfZ2VtX3JldGlyZV9yZXF1ZXN0cyhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpOwogCi1zdGF0aWMgaW5saW5lIHUzMiBpOTE1X3Jlc2V0X2NvdW50 ZXIoc3RydWN0IGk5MTVfZ3B1X2Vycm9yICplcnJvcikKLXsKLQlyZXR1cm4gYXRvbWljX3JlYWQo JmVycm9yLT5yZXNldF9jb3VudGVyKTsKLX0KLQotc3RhdGljIGlubGluZSBib29sIF9faTkxNV9y ZXNldF9pbl9wcm9ncmVzcyh1MzIgcmVzZXQpCi17Ci0JcmV0dXJuIHVubGlrZWx5KHJlc2V0ICYg STkxNV9SRVNFVF9JTl9QUk9HUkVTU19GTEFHKTsKLX0KLQotc3RhdGljIGlubGluZSBib29sIF9f aTkxNV9yZXNldF9pbl9wcm9ncmVzc19vcl93ZWRnZWQodTMyIHJlc2V0KQotewotCXJldHVybiB1 bmxpa2VseShyZXNldCAmIChJOTE1X1JFU0VUX0lOX1BST0dSRVNTX0ZMQUcgfCBJOTE1X1dFREdF RCkpOwotfQotCi1zdGF0aWMgaW5saW5lIGJvb2wgX19pOTE1X3Rlcm1pbmFsbHlfd2VkZ2VkKHUz MiByZXNldCkKLXsKLQlyZXR1cm4gdW5saWtlbHkocmVzZXQgJiBJOTE1X1dFREdFRCk7Ci19Ci0K IHN0YXRpYyBpbmxpbmUgYm9vbCBpOTE1X3Jlc2V0X2luX3Byb2dyZXNzKHN0cnVjdCBpOTE1X2dw dV9lcnJvciAqZXJyb3IpCiB7Ci0JcmV0dXJuIF9faTkxNV9yZXNldF9pbl9wcm9ncmVzcyhpOTE1 X3Jlc2V0X2NvdW50ZXIoZXJyb3IpKTsKKwlyZXR1cm4gdW5saWtlbHkodGVzdF9iaXQoSTkxNV9S RVNFVF9JTl9QUk9HUkVTUywgJmVycm9yLT5mbGFncykpOwogfQogCi1zdGF0aWMgaW5saW5lIGJv b2wgaTkxNV9yZXNldF9pbl9wcm9ncmVzc19vcl93ZWRnZWQoc3RydWN0IGk5MTVfZ3B1X2Vycm9y ICplcnJvcikKK3N0YXRpYyBpbmxpbmUgYm9vbCBpOTE1X3Rlcm1pbmFsbHlfd2VkZ2VkKHN0cnVj dCBpOTE1X2dwdV9lcnJvciAqZXJyb3IpCiB7Ci0JcmV0dXJuIF9faTkxNV9yZXNldF9pbl9wcm9n cmVzc19vcl93ZWRnZWQoaTkxNV9yZXNldF9jb3VudGVyKGVycm9yKSk7CisJcmV0dXJuIHVubGlr ZWx5KHRlc3RfYml0KEk5MTVfV0VER0VELCAmZXJyb3ItPmZsYWdzKSk7CiB9CiAKLXN0YXRpYyBp bmxpbmUgYm9vbCBpOTE1X3Rlcm1pbmFsbHlfd2VkZ2VkKHN0cnVjdCBpOTE1X2dwdV9lcnJvciAq ZXJyb3IpCitzdGF0aWMgaW5saW5lIGJvb2wgaTkxNV9yZXNldF9pbl9wcm9ncmVzc19vcl93ZWRn ZWQoc3RydWN0IGk5MTVfZ3B1X2Vycm9yICplcnJvcikKIHsKLQlyZXR1cm4gX19pOTE1X3Rlcm1p bmFsbHlfd2VkZ2VkKGk5MTVfcmVzZXRfY291bnRlcihlcnJvcikpOworCXJldHVybiBpOTE1X3Jl c2V0X2luX3Byb2dyZXNzKGVycm9yKSB8IGk5MTVfdGVybWluYWxseV93ZWRnZWQoZXJyb3IpOwog fQogCiBzdGF0aWMgaW5saW5lIHUzMiBpOTE1X3Jlc2V0X2NvdW50KHN0cnVjdCBpOTE1X2dwdV9l cnJvciAqZXJyb3IpCiB7Ci0JcmV0dXJuICgoaTkxNV9yZXNldF9jb3VudGVyKGVycm9yKSAmIH5J OTE1X1dFREdFRCkgKyAxKSAvIDI7CisJcmV0dXJuIFJFQURfT05DRShlcnJvci0+cmVzZXRfY291 bnQpOwogfQogCiB2b2lkIGk5MTVfZ2VtX3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtLmMKaW5kZXggYjAwZmI4NTQ4ZDUwLi44N2E0ZjM1NDNmMGIgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW0uYwpAQCAtNDUyNSw3ICs0NTI1LDcgQEAgaW50IGk5MTVfZ2Vt X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJICogZm9yIGFsbCBvdGhlciBmYWlsdXJl LCBzdWNoIGFzIGFuIGFsbG9jYXRpb24gZmFpbHVyZSwgYmFpbC4KIAkJICovCiAJCURSTV9FUlJP UigiRmFpbGVkIHRvIGluaXRpYWxpemUgR1BVLCBkZWNsYXJpbmcgaXQgd2VkZ2VkXG4iKTsKLQkJ YXRvbWljX29yKEk5MTVfV0VER0VELCAmZGV2X3ByaXYtPmdwdV9lcnJvci5yZXNldF9jb3VudGVy KTsKKwkJc2V0X2JpdChJOTE1X1dFREdFRCwgJmRldl9wcml2LT5ncHVfZXJyb3IuZmxhZ3MpOwog CQlyZXQgPSAwOwogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fcmVxdWVzdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5jCmlu ZGV4IGVjNjEzZmQ1ZTAxYy4uMjRlYjRiMWI3NTQwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fcmVxdWVzdC5jCkBAIC0yMzMsMTYgKzIzMywxOCBAQCB2b2lkIGk5MTVfZ2VtX3JlcXVl c3RfcmV0aXJlX3VwdG8oc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiAJfSB3aGls ZSAodG1wICE9IHJlcSk7CiB9CiAKLXN0YXRpYyBpbnQgaTkxNV9nZW1fY2hlY2tfd2VkZ2UodW5z aWduZWQgaW50IHJlc2V0X2NvdW50ZXIsIGJvb2wgaW50ZXJydXB0aWJsZSkKK3N0YXRpYyBpbnQg aTkxNV9nZW1fY2hlY2tfd2VkZ2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQog ewotCWlmIChfX2k5MTVfdGVybWluYWxseV93ZWRnZWQocmVzZXRfY291bnRlcikpCisJc3RydWN0 IGk5MTVfZ3B1X2Vycm9yICplcnJvciA9ICZkZXZfcHJpdi0+Z3B1X2Vycm9yOworCisJaWYgKGk5 MTVfdGVybWluYWxseV93ZWRnZWQoZXJyb3IpKQogCQlyZXR1cm4gLUVJTzsKIAotCWlmIChfX2k5 MTVfcmVzZXRfaW5fcHJvZ3Jlc3MocmVzZXRfY291bnRlcikpIHsKKwlpZiAoaTkxNV9yZXNldF9p bl9wcm9ncmVzcyhlcnJvcikpIHsKIAkJLyogTm9uLWludGVycnVwdGlibGUgY2FsbGVycyBjYW4n dCBoYW5kbGUgLUVBR0FJTiwgaGVuY2UgcmV0dXJuCiAJCSAqIC1FSU8gdW5jb25kaXRpb25hbGx5 IGZvciB0aGVzZS4KIAkJICovCi0JCWlmICghaW50ZXJydXB0aWJsZSkKKwkJaWYgKCFkZXZfcHJp di0+bW0uaW50ZXJydXB0aWJsZSkKIAkJCXJldHVybiAtRUlPOwogCiAJCXJldHVybiAtRUFHQUlO OwpAQCAtMzMxLDcgKzMzMyw2IEBAIGk5MTVfZ2VtX3JlcXVlc3RfYWxsb2Moc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lLAogCQkgICAgICAgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0 eCkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBlbmdpbmUtPmk5MTU7 Ci0JdW5zaWduZWQgaW50IHJlc2V0X2NvdW50ZXIgPSBpOTE1X3Jlc2V0X2NvdW50ZXIoJmRldl9w cml2LT5ncHVfZXJyb3IpOwogCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxOwogCXUz MiBzZXFubzsKIAlpbnQgcmV0OwpAQCAtMzQwLDcgKzM0MSw3IEBAIGk5MTVfZ2VtX3JlcXVlc3Rf YWxsb2Moc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCSAqIEVJTyBpZiB0aGUgR1BV IGlzIGFscmVhZHkgd2VkZ2VkLCBvciBFQUdBSU4gdG8gZHJvcCB0aGUgc3RydWN0X211dGV4CiAJ ICogYW5kIHJlc3RhcnQuCiAJICovCi0JcmV0ID0gaTkxNV9nZW1fY2hlY2tfd2VkZ2UocmVzZXRf Y291bnRlciwgZGV2X3ByaXYtPm1tLmludGVycnVwdGlibGUpOworCXJldCA9IGk5MTVfZ2VtX2No ZWNrX3dlZGdlKGRldl9wcml2KTsKIAlpZiAocmV0KQogCQlyZXR1cm4gRVJSX1BUUihyZXQpOwog CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9pcnEuYwppbmRleCA4MjM1OGQ0ZTBjYzIuLmVkMTcyZDdiZWVjYiAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCkBAIC0yNTAxLDUzICsyNTAxLDQxIEBAIHN0YXRpYyB2 b2lkIGk5MTVfcmVzZXRfYW5kX3dha2V1cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCiAKIAlrb2JqZWN0X3VldmVudF9lbnYoa29iaiwgS09CSl9DSEFOR0UsIGVycm9yX2V2ZW50 KTsKIAorCURSTV9ERUJVR19EUklWRVIoInJlc2V0dGluZyBjaGlwXG4iKTsKKwlrb2JqZWN0X3Vl dmVudF9lbnYoa29iaiwgS09CSl9DSEFOR0UsIHJlc2V0X2V2ZW50KTsKKwogCS8qCi0JICogTm90 ZSB0aGF0IHRoZXJlJ3Mgb25seSBvbmUgd29yayBpdGVtIHdoaWNoIGRvZXMgZ3B1IHJlc2V0cywg c28gd2UKLQkgKiBuZWVkIG5vdCB3b3JyeSBhYm91dCBjb25jdXJyZW50IGdwdSByZXNldHMgcG90 ZW50aWFsbHkgaW5jcmVtZW50aW5nCi0JICogZXJyb3ItPnJlc2V0X2NvdW50ZXIgdHdpY2UuIFdl IG9ubHkgbmVlZCB0byB0YWtlIGNhcmUgb2YgYW5vdGhlcgotCSAqIHJhY2luZyBpcnEvaGFuZ2No ZWNrIGRlY2xhcmluZyB0aGUgZ3B1IGRlYWQgZm9yIGEgc2Vjb25kIHRpbWUuIEEKLQkgKiBxdWlj ayBjaGVjayBmb3IgdGhhdCBpcyBnb29kIGVub3VnaDogc2NoZWR1bGVfd29yayBlbnN1cmVzIHRo ZQotCSAqIGNvcnJlY3Qgb3JkZXJpbmcgYmV0d2VlbiBoYW5nIGRldGVjdGlvbiBhbmQgdGhpcyB3 b3JrIGl0ZW0sIGFuZCBzaW5jZQotCSAqIHRoZSByZXNldCBpbi1wcm9ncmVzcyBiaXQgaXMgb25s eSBldmVyIHNldCBieSBjb2RlIG91dHNpZGUgb2YgdGhpcwotCSAqIHdvcmsgd2UgZG9uJ3QgbmVl ZCB0byB3b3JyeSBhYm91dCBhbnkgb3RoZXIgcmFjZXMuCisJICogSW4gbW9zdCBjYXNlcyBpdCdz IGd1YXJhbnRlZWQgdGhhdCB3ZSBnZXQgaGVyZSB3aXRoIGFuIFJQTQorCSAqIHJlZmVyZW5jZSBo ZWxkLCBmb3IgZXhhbXBsZSBiZWNhdXNlIHRoZXJlIGlzIGEgcGVuZGluZyBHUFUKKwkgKiByZXF1 ZXN0IHRoYXQgd29uJ3QgZmluaXNoIHVudGlsIHRoZSByZXNldCBpcyBkb25lLiBUaGlzCisJICog aXNuJ3QgdGhlIGNhc2UgYXQgbGVhc3Qgd2hlbiB3ZSBnZXQgaGVyZSBieSBkb2luZyBhCisJICog c2ltdWxhdGVkIHJlc2V0IHZpYSBkZWJ1Z3MsIHNvIGdldCBhbiBSUE0gcmVmZXJlbmNlLgogCSAq LwotCWlmIChpOTE1X3Jlc2V0X2luX3Byb2dyZXNzKCZkZXZfcHJpdi0+Z3B1X2Vycm9yKSkgewot CQlEUk1fREVCVUdfRFJJVkVSKCJyZXNldHRpbmcgY2hpcFxuIik7Ci0JCWtvYmplY3RfdWV2ZW50 X2Vudihrb2JqLCBLT0JKX0NIQU5HRSwgcmVzZXRfZXZlbnQpOwotCi0JCS8qCi0JCSAqIEluIG1v c3QgY2FzZXMgaXQncyBndWFyYW50ZWVkIHRoYXQgd2UgZ2V0IGhlcmUgd2l0aCBhbiBSUE0KLQkJ ICogcmVmZXJlbmNlIGhlbGQsIGZvciBleGFtcGxlIGJlY2F1c2UgdGhlcmUgaXMgYSBwZW5kaW5n IEdQVQotCQkgKiByZXF1ZXN0IHRoYXQgd29uJ3QgZmluaXNoIHVudGlsIHRoZSByZXNldCBpcyBk b25lLiBUaGlzCi0JCSAqIGlzbid0IHRoZSBjYXNlIGF0IGxlYXN0IHdoZW4gd2UgZ2V0IGhlcmUg YnkgZG9pbmcgYQotCQkgKiBzaW11bGF0ZWQgcmVzZXQgdmlhIGRlYnVncywgc28gZ2V0IGFuIFJQ TSByZWZlcmVuY2UuCi0JCSAqLwotCQlpbnRlbF9ydW50aW1lX3BtX2dldChkZXZfcHJpdik7CisJ aW50ZWxfcnVudGltZV9wbV9nZXQoZGV2X3ByaXYpOwogCi0JCWludGVsX3ByZXBhcmVfcmVzZXQo ZGV2X3ByaXYpOworCWludGVsX3ByZXBhcmVfcmVzZXQoZGV2X3ByaXYpOwogCi0JCS8qCi0JCSAq IEFsbCBzdGF0ZSByZXNldCBfbXVzdF8gYmUgY29tcGxldGVkIGJlZm9yZSB3ZSB1cGRhdGUgdGhl Ci0JCSAqIHJlc2V0IGNvdW50ZXIsIGZvciBvdGhlcndpc2Ugd2FpdGVycyBtaWdodCBtaXNzIHRo ZSByZXNldAotCQkgKiBwZW5kaW5nIHN0YXRlIGFuZCBub3QgcHJvcGVybHkgZHJvcCBsb2Nrcywg cmVzdWx0aW5nIGluCi0JCSAqIGRlYWRsb2NrcyB3aXRoIHRoZSByZXNldCB3b3JrLgotCQkgKi8K LQkJcmV0ID0gaTkxNV9yZXNldChkZXZfcHJpdik7CisJLyoKKwkgKiBBbGwgc3RhdGUgcmVzZXQg X211c3RfIGJlIGNvbXBsZXRlZCBiZWZvcmUgd2UgdXBkYXRlIHRoZQorCSAqIHJlc2V0IGNvdW50 ZXIsIGZvciBvdGhlcndpc2Ugd2FpdGVycyBtaWdodCBtaXNzIHRoZSByZXNldAorCSAqIHBlbmRp bmcgc3RhdGUgYW5kIG5vdCBwcm9wZXJseSBkcm9wIGxvY2tzLCByZXN1bHRpbmcgaW4KKwkgKiBk ZWFkbG9ja3Mgd2l0aCB0aGUgcmVzZXQgd29yay4KKwkgKi8KKwlyZXQgPSBpOTE1X3Jlc2V0KGRl dl9wcml2KTsKIAotCQlpbnRlbF9maW5pc2hfcmVzZXQoZGV2X3ByaXYpOworCWludGVsX2Zpbmlz aF9yZXNldChkZXZfcHJpdik7CiAKLQkJaW50ZWxfcnVudGltZV9wbV9wdXQoZGV2X3ByaXYpOwor CWludGVsX3J1bnRpbWVfcG1fcHV0KGRldl9wcml2KTsKIAotCQlpZiAocmV0ID09IDApCi0JCQlr b2JqZWN0X3VldmVudF9lbnYoa29iaiwKLQkJCQkJICAgS09CSl9DSEFOR0UsIHJlc2V0X2RvbmVf ZXZlbnQpOworCWlmIChyZXQgPT0gMCkKKwkJa29iamVjdF91ZXZlbnRfZW52KGtvYmosCisJCQkJ ICAgS09CSl9DSEFOR0UsIHJlc2V0X2RvbmVfZXZlbnQpOwogCi0JCS8qCi0JCSAqIE5vdGU6IFRo ZSB3YWtlX3VwIGFsc28gc2VydmVzIGFzIGEgbWVtb3J5IGJhcnJpZXIgc28gdGhhdAotCQkgKiB3 YWl0ZXJzIHNlZSB0aGUgdXBkYXRlIHZhbHVlIG9mIHRoZSByZXNldCBjb3VudGVyIGF0b21pY190 LgotCQkgKi8KLQkJd2FrZV91cF9hbGwoJmRldl9wcml2LT5ncHVfZXJyb3IucmVzZXRfcXVldWUp OwotCX0KKwkvKgorCSAqIE5vdGU6IFRoZSB3YWtlX3VwIGFsc28gc2VydmVzIGFzIGEgbWVtb3J5 IGJhcnJpZXIgc28gdGhhdAorCSAqIHdhaXRlcnMgc2VlIHRoZSB1cGRhdGVkIHZhbHVlIG9mIHRo ZSBkZXZfcHJpdi0+Z3B1X2Vycm9yLgorCSAqLworCXdha2VfdXBfYWxsKCZkZXZfcHJpdi0+Z3B1 X2Vycm9yLnJlc2V0X3F1ZXVlKTsKIH0KIAogc3RhdGljIHZvaWQgaTkxNV9yZXBvcnRfYW5kX2Ns ZWFyX2VpcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCkBAIC0yNjY2LDI1ICsy NjU0LDI2IEBAIHZvaWQgaTkxNV9oYW5kbGVfZXJyb3Ioc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAogCWk5MTVfY2FwdHVyZV9lcnJvcl9zdGF0ZShkZXZfcHJpdiwgZW5naW5lX21h c2ssIGVycm9yX21zZyk7CiAJaTkxNV9yZXBvcnRfYW5kX2NsZWFyX2VpcihkZXZfcHJpdik7CiAK LQlpZiAoZW5naW5lX21hc2spIHsKLQkJYXRvbWljX29yKEk5MTVfUkVTRVRfSU5fUFJPR1JFU1Nf RkxBRywKLQkJCQkmZGV2X3ByaXYtPmdwdV9lcnJvci5yZXNldF9jb3VudGVyKTsKKwlpZiAoIWVu Z2luZV9tYXNrKQorCQlyZXR1cm47CiAKLQkJLyoKLQkJICogV2FrZXVwIHdhaXRpbmcgcHJvY2Vz c2VzIHNvIHRoYXQgdGhlIHJlc2V0IGZ1bmN0aW9uCi0JCSAqIGk5MTVfcmVzZXRfYW5kX3dha2V1 cCBkb2Vzbid0IGRlYWRsb2NrIHRyeWluZyB0byBncmFiCi0JCSAqIHZhcmlvdXMgbG9ja3MuIEJ5 IGJ1bXBpbmcgdGhlIHJlc2V0IGNvdW50ZXIgZmlyc3QsIHRoZSB3b2tlbgotCQkgKiBwcm9jZXNz ZXMgd2lsbCBzZWUgYSByZXNldCBpbiBwcm9ncmVzcyBhbmQgYmFjayBvZmYsCi0JCSAqIHJlbGVh c2luZyB0aGVpciBsb2NrcyBhbmQgdGhlbiB3YWl0IGZvciB0aGUgcmVzZXQgY29tcGxldGlvbi4K LQkJICogV2UgbXVzdCBkbyB0aGlzIGZvciBfYWxsXyBncHUgd2FpdGVycyB0aGF0IG1pZ2h0IGhv bGQgbG9ja3MKLQkJICogdGhhdCB0aGUgcmVzZXQgd29yayBuZWVkcyB0byBhY3F1aXJlLgotCQkg KgotCQkgKiBOb3RlOiBUaGUgd2FrZV91cCBzZXJ2ZXMgYXMgdGhlIHJlcXVpcmVkIG1lbW9yeSBi YXJyaWVyIHRvCi0JCSAqIGVuc3VyZSB0aGF0IHRoZSB3YWl0ZXJzIHNlZSB0aGUgdXBkYXRlZCB2 YWx1ZSBvZiB0aGUgcmVzZXQKLQkJICogY291bnRlciBhdG9taWNfdC4KLQkJICovCi0JCWk5MTVf ZXJyb3Jfd2FrZV91cChkZXZfcHJpdik7Ci0JfQorCWlmICh0ZXN0X2FuZF9zZXRfYml0KEk5MTVf UkVTRVRfSU5fUFJPR1JFU1MsCisJCQkgICAgICZkZXZfcHJpdi0+Z3B1X2Vycm9yLmZsYWdzKSkK KwkJcmV0dXJuOworCisJLyoKKwkgKiBXYWtldXAgd2FpdGluZyBwcm9jZXNzZXMgc28gdGhhdCB0 aGUgcmVzZXQgZnVuY3Rpb24KKwkgKiBpOTE1X3Jlc2V0X2FuZF93YWtldXAgZG9lc24ndCBkZWFk bG9jayB0cnlpbmcgdG8gZ3JhYgorCSAqIHZhcmlvdXMgbG9ja3MuIEJ5IGJ1bXBpbmcgdGhlIHJl c2V0IGNvdW50ZXIgZmlyc3QsIHRoZSB3b2tlbgorCSAqIHByb2Nlc3NlcyB3aWxsIHNlZSBhIHJl c2V0IGluIHByb2dyZXNzIGFuZCBiYWNrIG9mZiwKKwkgKiByZWxlYXNpbmcgdGhlaXIgbG9ja3Mg YW5kIHRoZW4gd2FpdCBmb3IgdGhlIHJlc2V0IGNvbXBsZXRpb24uCisJICogV2UgbXVzdCBkbyB0 aGlzIGZvciBfYWxsXyBncHUgd2FpdGVycyB0aGF0IG1pZ2h0IGhvbGQgbG9ja3MKKwkgKiB0aGF0 IHRoZSByZXNldCB3b3JrIG5lZWRzIHRvIGFjcXVpcmUuCisJICoKKwkgKiBOb3RlOiBUaGUgd2Fr ZV91cCBhbHNvIHByb3ZpZGVzIGEgbWVtb3J5IGJhcnJpZXIgdG8gZW5zdXJlIHRoYXQgdGhlCisJ ICogd2FpdGVycyBzZWUgdGhlIHVwZGF0ZWQgdmFsdWUgb2YgdGhlIHJlc2V0IGZsYWdzLgorCSAq LworCWk5MTVfZXJyb3Jfd2FrZV91cChkZXZfcHJpdik7CiAKIAlpOTE1X3Jlc2V0X2FuZF93YWtl dXAoZGV2X3ByaXYpOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCmluZGV4IDBj NjUyMTI3ODFlNC4uY2I4OGUyOWQ4MjhkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jCkBAIC0zNjQ4LDE1ICszNjQ4LDI2IEBAIHZvaWQgaW50ZWxfZmluaXNoX3Jlc2V0KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAltdXRleF91bmxvY2soJmRldi0+bW9kZV9j b25maWcubXV0ZXgpOwogfQogCitzdGF0aWMgYm9vbCBhYm9ydF9mbGlwX29uX3Jlc2V0KHN0cnVj dCBpbnRlbF9jcnRjICpjcnRjKQoreworCXN0cnVjdCBpOTE1X2dwdV9lcnJvciAqZXJyb3IgPSAm dG9faTkxNShjcnRjLT5iYXNlLmRldiktPmdwdV9lcnJvcjsKKworCWlmIChpOTE1X3Jlc2V0X2lu X3Byb2dyZXNzKGVycm9yKSkKKwkJcmV0dXJuIHRydWU7CisKKwlpZiAoY3J0Yy0+cmVzZXRfY291 bnQgIT0gaTkxNV9yZXNldF9jb3VudChlcnJvcikpCisJCXJldHVybiB0cnVlOworCisJcmV0dXJu IGZhbHNlOworfQorCiBzdGF0aWMgYm9vbCBpbnRlbF9jcnRjX2hhc19wZW5kaW5nX2ZsaXAoc3Ry dWN0IGRybV9jcnRjICpjcnRjKQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5k ZXY7CiAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMp OwotCXVuc2lnbmVkIHJlc2V0X2NvdW50ZXI7CiAJYm9vbCBwZW5kaW5nOwogCi0JcmVzZXRfY291 bnRlciA9IGk5MTVfcmVzZXRfY291bnRlcigmdG9faTkxNShkZXYpLT5ncHVfZXJyb3IpOwotCWlm IChpbnRlbF9jcnRjLT5yZXNldF9jb3VudGVyICE9IHJlc2V0X2NvdW50ZXIpCisJaWYgKGFib3J0 X2ZsaXBfb25fcmVzZXQoaW50ZWxfY3J0YykpCiAJCXJldHVybiBmYWxzZTsKIAogCXNwaW5fbG9j a19pcnEoJmRldi0+ZXZlbnRfbG9jayk7CkBAIC0xMTUzNSwxMCArMTE1NDYsOCBAQCBzdGF0aWMg Ym9vbCBfX3BhZ2VmbGlwX2ZpbmlzaGVkX2NzKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogewog CXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Ci0JdW5zaWduZWQgcmVzZXRfY291 bnRlcjsKIAotCXJlc2V0X2NvdW50ZXIgPSBpOTE1X3Jlc2V0X2NvdW50ZXIoJmRldl9wcml2LT5n cHVfZXJyb3IpOwotCWlmIChjcnRjLT5yZXNldF9jb3VudGVyICE9IHJlc2V0X2NvdW50ZXIpCisJ aWYgKGFib3J0X2ZsaXBfb25fcmVzZXQoY3J0YykpCiAJCXJldHVybiB0cnVlOwogCiAJLyoKQEAg LTEyMjA0LDggKzEyMjEzLDggQEAgc3RhdGljIGludCBpbnRlbF9jcnRjX3BhZ2VfZmxpcChzdHJ1 Y3QgZHJtX2NydGMgKmNydGMsCiAJaWYgKHJldCkKIAkJZ290byBjbGVhbnVwOwogCi0JaW50ZWxf Y3J0Yy0+cmVzZXRfY291bnRlciA9IGk5MTVfcmVzZXRfY291bnRlcigmZGV2X3ByaXYtPmdwdV9l cnJvcik7Ci0JaWYgKF9faTkxNV9yZXNldF9pbl9wcm9ncmVzc19vcl93ZWRnZWQoaW50ZWxfY3J0 Yy0+cmVzZXRfY291bnRlcikpIHsKKwlpbnRlbF9jcnRjLT5yZXNldF9jb3VudCA9IGk5MTVfcmVz ZXRfY291bnQoJmRldl9wcml2LT5ncHVfZXJyb3IpOworCWlmIChpOTE1X3Jlc2V0X2luX3Byb2dy ZXNzX29yX3dlZGdlZCgmZGV2X3ByaXYtPmdwdV9lcnJvcikpIHsKIAkJcmV0ID0gLUVJTzsKIAkJ Z290byBjbGVhbnVwOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKaW5kZXggNzg2OGQ1Yzdm MzQ3Li5hM2IzZDM3ZjkyMjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCkBAIC03MDYsOCAr NzA2LDggQEAgc3RydWN0IGludGVsX2NydGMgewogCiAJc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNvbmZpZzsKIAotCS8qIHJlc2V0IGNvdW50ZXIgdmFsdWUgd2hlbiB0aGUgbGFzdCBmbGlwIHdh cyBzdWJtaXR0ZWQgKi8KLQl1bnNpZ25lZCBpbnQgcmVzZXRfY291bnRlcjsKKwkvKiBnbG9iYWwg cmVzZXQgY291bnQgd2hlbiB0aGUgbGFzdCBmbGlwIHdhcyBzdWJtaXR0ZWQgKi8KKwl1bnNpZ25l ZCBpbnQgcmVzZXRfY291bnQ7CiAKIAkvKiBBY2Nlc3MgdG8gdGhlc2Ugc2hvdWxkIGJlIHByb3Rl Y3RlZCBieSBkZXZfcHJpdi0+aXJxX2xvY2suICovCiAJYm9vbCBjcHVfZmlmb191bmRlcnJ1bl9k aXNhYmxlZDsKLS0gCjIuOS4zCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p bnRlbC1nZngK