From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH] drm/i915: Separate out reset flags from the reset counter Date: Tue, 5 Jul 2016 16:22:57 +0100 Message-ID: <1467732177-5145-1-git-send-email-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-x244.google.com (mail-wm0-x244.google.com [IPv6:2a00:1450:400c:c09::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3FCB76E14A for ; Tue, 5 Jul 2016 15:23:07 +0000 (UTC) Received: by mail-wm0-x244.google.com with SMTP id 187so29520534wmz.1 for ; Tue, 05 Jul 2016 08:23:07 -0700 (PDT) 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: Mika Kuoppala List-Id: intel-gfx@lists.freedesktop.org SW4gcHJlcGFyYXRpb24gZm9yIGludHJvZHVjaW5nIGEgcGVyLWVuZ2luZSByZXNldCwgd2UgY2Fu IGZpcnN0IHNlcGFyYXRlCnRoZSBtaXhpbmcgb2YgdGhlIHJlc2V0IHN0YXRlIGZyb20gdGhlIGds b2JhbCByZXNldCBjb3VudGVyLgoKVGhlIGxvc3Mgb2YgYXRvbWljaXR5IGluIHVwZGF0aW5nIHRo ZSByZXNldCBzdGF0ZSBwb3NlcyBhIHNtYWxsIHByb2JsZW0KZm9yIGhhbmRsaW5nIHRoZSB3YWl0 ZXJzLiBGb3IgcmVxdWVzdHMsIHRoaXMgaXMgc29sdmVkIGJ5IGFkdmFuY2luZyB0aGUKc2Vxbm8g c28gdGhhdCBhIHdhaXRlciB3YWtpbmcgdXAgYWZ0ZXIgdGhlIHJlc2V0IGtub3dzIHRoZSByZXF1 ZXN0IGlzCmNvbXBsZXRlLiBGb3IgcGVuZGluZyBmbGlwcywgd2Ugc3RpbGwgcmVseSBvbiB0aGUg aW5jcmVtZW50IG9mIHRoZQpnbG9iYWwgcmVzZXQgZXBvY2ggKGFzIHdlbGwgYXMgdGhlIHJlc2V0 LWluLXByb2dyZXNzIGZsYWcpIHRvIHNpZ25pZnkKd2hlbiB0aGUgaGFyZHdhcmUgd2FzIHJlc2V0 LgoKVGhlIGFkdmFudGFnZSwgbm93IHRoYXQgd2UgZG8gbm90IGluc3BlY3QgdGhlIHJlc2V0IHN0 YXRlIGR1cmluZyByZXNldAppdHNlbGYgaS5lLiB3ZSBubyBsb25nZXIgZW1pdCByZXF1ZXN0cyBk dXJpbmcgcmVzZXQsIGlzIHRoYXQgd2UgY2FuIHVzZQp0aGUgYXRvbWljIHVwZGF0ZXMgb2YgdGhl IHN0YXRlIGZsYWdzIHRvIGVuc3VyZSB0aGF0IG9ubHkgb25lIHJlc2V0CndvcmtlciBpcyBhY3Rp dmUuCgpTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51 az4KQ2M6IEFydW4gU2lsdXZlcnkgPGFydW4uc2lsdXZlcnlAbGludXguaW50ZWwuY29tPgpDYzog TWlrYSBLdW9wcGFsYSA8bWlrYS5rdW9wcGFsYUBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuYyAgICAgIHwgIDE2ICsrLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaCAgICAgIHwgIDQ2ICsrKysrLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtLmMgICAgICB8ICAxNSArKy0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9pcnEuYyAgICAgIHwgMTA0ICsrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0t CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAgMjUgKysrKysrLS0tCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgIDQgKy0KIDYgZmlsZXMgY2hh bmdlZCwgOTMgaW5zZXJ0aW9ucygrKSwgMTE3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5jCmluZGV4IDY5NGVkYWMyYzcwMy4uOThjNmY0YWJiODViIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmMKQEAgLTE2MTEsNyArMTYxMSw3IEBAIHN0YXRpYyBpbnQgaTkxNV9kcm1fcmVzdW1l KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgp OwogCWlmIChpOTE1X2dlbV9pbml0X2h3KGRldikpIHsKIAkJRFJNX0VSUk9SKCJmYWlsZWQgdG8g cmUtaW5pdGlhbGl6ZSBHUFUsIGRlY2xhcmluZyB3ZWRnZWQhXG4iKTsKLQkJYXRvbWljX29yKEk5 MTVfV0VER0VELCAmZGV2X3ByaXYtPmdwdV9lcnJvci5yZXNldF9jb3VudGVyKTsKKwkJc2V0X2Jp dChJOTE1X1dFREdFRCwgJmRldl9wcml2LT5ncHVfZXJyb3IuZmxhZ3MpOwogCX0KIAltdXRleF91 bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKIApAQCAtMTc3MSw3ICsxNzcxLDYgQEAgaW50IGk5 MTVfcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewogCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSAmZGV2X3ByaXYtPmRybTsKIAlzdHJ1Y3QgaTkxNV9ncHVfZXJyb3Ig KmVycm9yID0gJmRldl9wcml2LT5ncHVfZXJyb3I7Ci0JdW5zaWduZWQgcmVzZXRfY291bnRlcjsK IAlpbnQgcmV0OwogCiAJaW50ZWxfcmVzZXRfZ3RfcG93ZXJzYXZlKGRldl9wcml2KTsKQEAgLTE3 NzksMTQgKzE3NzgsOCBAQCBpbnQgaTkxNV9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCiAJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogCiAJLyogQ2xlYXIg YW55IHByZXZpb3VzIGZhaWxlZCBhdHRlbXB0cyBhdCByZWNvdmVyeS4gVGltZSB0byB0cnkgYWdh aW4uICovCi0JYXRvbWljX2FuZG5vdChJOTE1X1dFREdFRCwgJmVycm9yLT5yZXNldF9jb3VudGVy KTsKLQotCS8qIENsZWFyIHRoZSByZXNldC1pbi1wcm9ncmVzcyBmbGFnIGFuZCBpbmNyZW1lbnQg dGhlIHJlc2V0IGVwb2NoLiAqLwotCXJlc2V0X2NvdW50ZXIgPSBhdG9taWNfaW5jX3JldHVybigm ZXJyb3ItPnJlc2V0X2NvdW50ZXIpOwotCWlmIChXQVJOX09OKF9faTkxNV9yZXNldF9pbl9wcm9n cmVzcyhyZXNldF9jb3VudGVyKSkpIHsKLQkJcmV0ID0gLUVJTzsKLQkJZ290byBlcnJvcjsKLQl9 CisJX19jbGVhcl9iaXQoSTkxNV9XRURHRUQsICZlcnJvci0+ZmxhZ3MpOworCWVycm9yLT5yZXNl dF9jb3VudCsrOwogCiAJcHJfbm90aWNlKCJkcm0vaTkxNTogUmVzZXR0aW5nIGNoaXAgYWZ0ZXIg Z3B1IGhhbmdcbiIpOwogCkBAIC0xODIzLDYgKzE4MTYsNyBAQCBpbnQgaTkxNV9yZXNldChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCWdvdG8gZXJyb3I7CiAJfQogCisJY2xl YXJfYml0KEk5MTVfUkVTRVRfSU5fUFJPR1JFU1MsICZlcnJvci0+ZmxhZ3MpOwogCW11dGV4X3Vu bG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogCiAJLyoKQEAgLTE4MzcsNyArMTgzMSw3IEBAIGlu dCBpOTE1X3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlyZXR1cm4g MDsKIAogZXJyb3I6Ci0JYXRvbWljX29yKEk5MTVfV0VER0VELCAmZXJyb3ItPnJlc2V0X2NvdW50 ZXIpOworCXNldF9iaXQoSTkxNV9XRURHRUQsICZlcnJvci0+ZmxhZ3MpOwogCW11dGV4X3VubG9j aygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogCXJldHVybiByZXQ7CiB9CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaAppbmRleCAzM2RmMjk2ODBhNTQuLjEzZjhmZjAyY2Y2ZSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oCkBAIC0xMzc1LDkgKzEzNzUsMTAgQEAgc3RydWN0IGk5MTVfZ3B1X2Vycm9yIHsKIAkg KiBTdGF0ZSB2YXJpYWJsZSBjb250cm9sbGluZyB0aGUgcmVzZXQgZmxvdyBhbmQgY291bnQKIAkg KgogCSAqIFRoaXMgaXMgYSBjb3VudGVyIHdoaWNoIGdldHMgaW5jcmVtZW50ZWQgd2hlbiByZXNl dCBpcyB0cmlnZ2VyZWQsCi0JICogYW5kIGFnYWluIHdoZW4gcmVzZXQgaGFzIGJlZW4gaGFuZGxl ZC4gU28gb2RkIHZhbHVlcyAobG93ZXN0IGJpdCBzZXQpCi0JICogbWVhbnMgdGhhdCByZXNldCBp cyBpbiBwcm9ncmVzcyBhbmQgZXZlbiB2YWx1ZXMgdGhhdAotCSAqIChyZXNldF9jb3VudGVyID4+ IDEpOnRoIHJlc2V0IHdhcyBzdWNjZXNzZnVsbHkgY29tcGxldGVkLgorCSAqCisJICogQmVmb3Jl IHRoZSByZXNldCBjb21tZW5jZXMsIHRoZSBJOTE1X1JFU0VUX0lOX1BST0dSRVNTIGJpdCBpcyBz ZXQKKwkgKiBtZWFuaW5nIHRoYXQgYW55IHdhaXRlcnMgaG9sZGluZyBvbnRvIHRoZSBzdHJ1Y3Rf bXV0ZXggc2hvdWxkCisJICogcmVsaW5xdWlzaCB0aGUgbG9jayBpbW1lZGlhdGVseSBpbiBvcmRl ciBmb3IgdGhlIHJlc2V0IHRvIHN0YXJ0LgogCSAqCiAJICogSWYgcmVzZXQgaXMgbm90IGNvbXBs ZXRlZCBzdWNjZXNmdWxseSwgdGhlIEk5MTVfV0VER0UgYml0IGlzCiAJICogc2V0IG1lYW5pbmcg dGhhdCBoYXJkd2FyZSBpcyB0ZXJtaW5hbGx5IHNvdXIgYW5kIHRoZXJlIGlzIG5vCkBAIC0xMzky LDEwICsxMzkzLDExIEBAIHN0cnVjdCBpOTE1X2dwdV9lcnJvciB7CiAJICogbmF0dXJhbGx5IGVu Zm9yY2VzIHRoZSBjb3JyZWN0IG9yZGVyaW5nIGJldHdlZW4gdGhlIGJhaWwtb3V0IG9mIHRoZQog CSAqIHdhaXRlciBhbmQgdGhlIGdwdSByZXNldCB3b3JrIGNvZGUuCiAJICovCi0JYXRvbWljX3Qg cmVzZXRfY291bnRlcjsKKwl1bnNpZ25lZCBsb25nIHJlc2V0X2NvdW50OwogCi0jZGVmaW5lIEk5 MTVfUkVTRVRfSU5fUFJPR1JFU1NfRkxBRwkxCi0jZGVmaW5lIEk5MTVfV0VER0VECQkJKDEgPDwg MzEpCisJdW5zaWduZWQgbG9uZyBmbGFnczsKKyNkZWZpbmUgSTkxNV9SRVNFVF9JTl9QUk9HUkVT UwkwCisjZGVmaW5lIEk5MTVfV0VER0VECQkoQklUU19QRVJfTE9ORy0xKQogCiAJLyoqCiAJICog V2FpdHF1ZXVlIHRvIHNpZ25hbCB3aGVuIGEgaGFuZyBpcyBkZXRlY3RlZC4gVXNlZCB0byBmb3Ig d2FpdGVycwpAQCAtMzMxOSw0NCArMzMyMSwyNCBAQCBpOTE1X2dlbV9maW5kX2FjdGl2ZV9yZXF1 ZXN0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7CiB2b2lkIGk5MTVfZ2VtX3JldGly ZV9yZXF1ZXN0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogdm9pZCBpOTE1 X2dlbV9yZXRpcmVfcmVxdWVzdHNfcmluZyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUp OwogCi1zdGF0aWMgaW5saW5lIHUzMiBpOTE1X3Jlc2V0X2NvdW50ZXIoc3RydWN0IGk5MTVfZ3B1 X2Vycm9yICplcnJvcikKLXsKLQlyZXR1cm4gYXRvbWljX3JlYWQoJmVycm9yLT5yZXNldF9jb3Vu dGVyKTsKLX0KLQotc3RhdGljIGlubGluZSBib29sIF9faTkxNV9yZXNldF9pbl9wcm9ncmVzcyh1 MzIgcmVzZXQpCi17Ci0JcmV0dXJuIHVubGlrZWx5KHJlc2V0ICYgSTkxNV9SRVNFVF9JTl9QUk9H UkVTU19GTEFHKTsKLX0KLQotc3RhdGljIGlubGluZSBib29sIF9faTkxNV9yZXNldF9pbl9wcm9n cmVzc19vcl93ZWRnZWQodTMyIHJlc2V0KQotewotCXJldHVybiB1bmxpa2VseShyZXNldCAmIChJ OTE1X1JFU0VUX0lOX1BST0dSRVNTX0ZMQUcgfCBJOTE1X1dFREdFRCkpOwotfQotCi1zdGF0aWMg aW5saW5lIGJvb2wgX19pOTE1X3Rlcm1pbmFsbHlfd2VkZ2VkKHUzMiByZXNldCkKLXsKLQlyZXR1 cm4gdW5saWtlbHkocmVzZXQgJiBJOTE1X1dFREdFRCk7Ci19Ci0KIHN0YXRpYyBpbmxpbmUgYm9v bCBpOTE1X3Jlc2V0X2luX3Byb2dyZXNzKHN0cnVjdCBpOTE1X2dwdV9lcnJvciAqZXJyb3IpCiB7 Ci0JcmV0dXJuIF9faTkxNV9yZXNldF9pbl9wcm9ncmVzcyhpOTE1X3Jlc2V0X2NvdW50ZXIoZXJy b3IpKTsKKwlyZXR1cm4gdGVzdF9iaXQoSTkxNV9SRVNFVF9JTl9QUk9HUkVTUywgJmVycm9yLT5m bGFncyk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBpOTE1X3Jlc2V0X2luX3Byb2dyZXNzX29y X3dlZGdlZChzdHJ1Y3QgaTkxNV9ncHVfZXJyb3IgKmVycm9yKQorc3RhdGljIGlubGluZSBib29s IGk5MTVfdGVybWluYWxseV93ZWRnZWQoc3RydWN0IGk5MTVfZ3B1X2Vycm9yICplcnJvcikKIHsK LQlyZXR1cm4gX19pOTE1X3Jlc2V0X2luX3Byb2dyZXNzX29yX3dlZGdlZChpOTE1X3Jlc2V0X2Nv dW50ZXIoZXJyb3IpKTsKKwlyZXR1cm4gdGVzdF9iaXQoSTkxNV9XRURHRUQsICZlcnJvci0+Zmxh Z3MpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgaTkxNV90ZXJtaW5hbGx5X3dlZGdlZChzdHJ1 Y3QgaTkxNV9ncHVfZXJyb3IgKmVycm9yKQorc3RhdGljIGlubGluZSBib29sIGk5MTVfcmVzZXRf aW5fcHJvZ3Jlc3Nfb3Jfd2VkZ2VkKHN0cnVjdCBpOTE1X2dwdV9lcnJvciAqZXJyb3IpCiB7Ci0J cmV0dXJuIF9faTkxNV90ZXJtaW5hbGx5X3dlZGdlZChpOTE1X3Jlc2V0X2NvdW50ZXIoZXJyb3Ip KTsKKwlyZXR1cm4gaTkxNV9yZXNldF9pbl9wcm9ncmVzcyhlcnJvcikgfCBpOTE1X3Rlcm1pbmFs bHlfd2VkZ2VkKGVycm9yKTsKIH0KIAogc3RhdGljIGlubGluZSB1MzIgaTkxNV9yZXNldF9jb3Vu dChzdHJ1Y3QgaTkxNV9ncHVfZXJyb3IgKmVycm9yKQogewotCXJldHVybiAoKGk5MTVfcmVzZXRf Y291bnRlcihlcnJvcikgJiB+STkxNV9XRURHRUQpICsgMSkgLyAyOworCXJldHVybiBSRUFEX09O Q0UoZXJyb3ItPnJlc2V0X2NvdW50KTsKIH0KIAogdm9pZCBpOTE1X2dlbV9yZXNldChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCmluZGV4IDhmNTA5MTliYTli NC4uMTFhZjVmOGVmZjczIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKQEAgLTEzMjYsMTUgKzEz MjYsMTcgQEAgcHV0X3JwbToKIH0KIAogc3RhdGljIGludAotaTkxNV9nZW1fY2hlY2tfd2VkZ2Uo dW5zaWduZWQgcmVzZXRfY291bnRlciwgYm9vbCBpbnRlcnJ1cHRpYmxlKQoraTkxNV9nZW1fY2hl Y2tfd2VkZ2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewotCWlmIChfX2k5 MTVfdGVybWluYWxseV93ZWRnZWQocmVzZXRfY291bnRlcikpCisJc3RydWN0IGk5MTVfZ3B1X2Vy cm9yICplcnJvciA9ICZkZXZfcHJpdi0+Z3B1X2Vycm9yOworCisJaWYgKGk5MTVfdGVybWluYWxs eV93ZWRnZWQoZXJyb3IpKQogCQlyZXR1cm4gLUVJTzsKIAotCWlmIChfX2k5MTVfcmVzZXRfaW5f cHJvZ3Jlc3MocmVzZXRfY291bnRlcikpIHsKKwlpZiAoaTkxNV9yZXNldF9pbl9wcm9ncmVzcyhl cnJvcikpIHsKIAkJLyogTm9uLWludGVycnVwdGlibGUgY2FsbGVycyBjYW4ndCBoYW5kbGUgLUVB R0FJTiwgaGVuY2UgcmV0dXJuCiAJCSAqIC1FSU8gdW5jb25kaXRpb25hbGx5IGZvciB0aGVzZS4g Ki8KLQkJaWYgKCFpbnRlcnJ1cHRpYmxlKQorCQlpZiAoIWRldl9wcml2LT5tbS5pbnRlcnJ1cHRp YmxlKQogCQkJcmV0dXJuIC1FSU87CiAKIAkJcmV0dXJuIC1FQUdBSU47CkBAIC0zMDAwLDcgKzMw MDIsNiBAQCBfX2k5MTVfZ2VtX3JlcXVlc3RfYWxsb2Moc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lLAogCQkJIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqKnJlcV9vdXQpCiB7CiAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZW5naW5lLT5pOTE1OwotCXVuc2ln bmVkIHJlc2V0X2NvdW50ZXIgPSBpOTE1X3Jlc2V0X2NvdW50ZXIoJmRldl9wcml2LT5ncHVfZXJy b3IpOwogCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxOwogCWludCByZXQ7CiAKQEAg LTMwMTMsNyArMzAxNCw3IEBAIF9faTkxNV9nZW1fcmVxdWVzdF9hbGxvYyhzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUsCiAJICogRUlPIGlmIHRoZSBHUFUgaXMgYWxyZWFkeSB3ZWRnZWQs IG9yIEVBR0FJTiB0byBkcm9wIHRoZSBzdHJ1Y3RfbXV0ZXgKIAkgKiBhbmQgcmVzdGFydC4KIAkg Ki8KLQlyZXQgPSBpOTE1X2dlbV9jaGVja193ZWRnZShyZXNldF9jb3VudGVyLCBkZXZfcHJpdi0+ bW0uaW50ZXJydXB0aWJsZSk7CisJcmV0ID0gaTkxNV9nZW1fY2hlY2tfd2VkZ2UoZGV2X3ByaXYp OwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKQEAgLTUyMjEsNyArNTIyMiw3IEBAIGludCBp OTE1X2dlbV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCSAqIGZvciBhbGwgb3RoZXIg ZmFpbHVyZSwgc3VjaCBhcyBhbiBhbGxvY2F0aW9uIGZhaWx1cmUsIGJhaWwuCiAJCSAqLwogCQlE Uk1fRVJST1IoIkZhaWxlZCB0byBpbml0aWFsaXplIEdQVSwgZGVjbGFyaW5nIGl0IHdlZGdlZFxu Iik7Ci0JCWF0b21pY19vcihJOTE1X1dFREdFRCwgJmRldl9wcml2LT5ncHVfZXJyb3IucmVzZXRf Y291bnRlcik7CisJCV9fc2V0X2JpdChJOTE1X1dFREdFRCwgJmRldl9wcml2LT5ncHVfZXJyb3Iu ZmxhZ3MpOwogCQlyZXQgPSAwOwogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKaW5kZXggYjc3 ZDgwOGI3MWNkLi4xZjEyOTMwZjU1MTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfaXJxLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwpAQCAtMjUw OCw1MyArMjUwOCw0MSBAQCBzdGF0aWMgdm9pZCBpOTE1X3Jlc2V0X2FuZF93YWtldXAoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiAJa29iamVjdF91ZXZlbnRfZW52KGtvYmos IEtPQkpfQ0hBTkdFLCBlcnJvcl9ldmVudCk7CiAKKwlEUk1fREVCVUdfRFJJVkVSKCJyZXNldHRp bmcgY2hpcFxuIik7CisJa29iamVjdF91ZXZlbnRfZW52KGtvYmosIEtPQkpfQ0hBTkdFLCByZXNl dF9ldmVudCk7CisKIAkvKgotCSAqIE5vdGUgdGhhdCB0aGVyZSdzIG9ubHkgb25lIHdvcmsgaXRl bSB3aGljaCBkb2VzIGdwdSByZXNldHMsIHNvIHdlCi0JICogbmVlZCBub3Qgd29ycnkgYWJvdXQg Y29uY3VycmVudCBncHUgcmVzZXRzIHBvdGVudGlhbGx5IGluY3JlbWVudGluZwotCSAqIGVycm9y LT5yZXNldF9jb3VudGVyIHR3aWNlLiBXZSBvbmx5IG5lZWQgdG8gdGFrZSBjYXJlIG9mIGFub3Ro ZXIKLQkgKiByYWNpbmcgaXJxL2hhbmdjaGVjayBkZWNsYXJpbmcgdGhlIGdwdSBkZWFkIGZvciBh IHNlY29uZCB0aW1lLiBBCi0JICogcXVpY2sgY2hlY2sgZm9yIHRoYXQgaXMgZ29vZCBlbm91Z2g6 IHNjaGVkdWxlX3dvcmsgZW5zdXJlcyB0aGUKLQkgKiBjb3JyZWN0IG9yZGVyaW5nIGJldHdlZW4g aGFuZyBkZXRlY3Rpb24gYW5kIHRoaXMgd29yayBpdGVtLCBhbmQgc2luY2UKLQkgKiB0aGUgcmVz ZXQgaW4tcHJvZ3Jlc3MgYml0IGlzIG9ubHkgZXZlciBzZXQgYnkgY29kZSBvdXRzaWRlIG9mIHRo aXMKLQkgKiB3b3JrIHdlIGRvbid0IG5lZWQgdG8gd29ycnkgYWJvdXQgYW55IG90aGVyIHJhY2Vz LgorCSAqIEluIG1vc3QgY2FzZXMgaXQncyBndWFyYW50ZWVkIHRoYXQgd2UgZ2V0IGhlcmUgd2l0 aCBhbiBSUE0KKwkgKiByZWZlcmVuY2UgaGVsZCwgZm9yIGV4YW1wbGUgYmVjYXVzZSB0aGVyZSBp cyBhIHBlbmRpbmcgR1BVCisJICogcmVxdWVzdCB0aGF0IHdvbid0IGZpbmlzaCB1bnRpbCB0aGUg cmVzZXQgaXMgZG9uZS4gVGhpcworCSAqIGlzbid0IHRoZSBjYXNlIGF0IGxlYXN0IHdoZW4gd2Ug Z2V0IGhlcmUgYnkgZG9pbmcgYQorCSAqIHNpbXVsYXRlZCByZXNldCB2aWEgZGVidWdzLCBzbyBn ZXQgYW4gUlBNIHJlZmVyZW5jZS4KIAkgKi8KLQlpZiAoaTkxNV9yZXNldF9pbl9wcm9ncmVzcygm ZGV2X3ByaXYtPmdwdV9lcnJvcikpIHsKLQkJRFJNX0RFQlVHX0RSSVZFUigicmVzZXR0aW5nIGNo aXBcbiIpOwotCQlrb2JqZWN0X3VldmVudF9lbnYoa29iaiwgS09CSl9DSEFOR0UsIHJlc2V0X2V2 ZW50KTsKLQotCQkvKgotCQkgKiBJbiBtb3N0IGNhc2VzIGl0J3MgZ3VhcmFudGVlZCB0aGF0IHdl IGdldCBoZXJlIHdpdGggYW4gUlBNCi0JCSAqIHJlZmVyZW5jZSBoZWxkLCBmb3IgZXhhbXBsZSBi ZWNhdXNlIHRoZXJlIGlzIGEgcGVuZGluZyBHUFUKLQkJICogcmVxdWVzdCB0aGF0IHdvbid0IGZp bmlzaCB1bnRpbCB0aGUgcmVzZXQgaXMgZG9uZS4gVGhpcwotCQkgKiBpc24ndCB0aGUgY2FzZSBh dCBsZWFzdCB3aGVuIHdlIGdldCBoZXJlIGJ5IGRvaW5nIGEKLQkJICogc2ltdWxhdGVkIHJlc2V0 IHZpYSBkZWJ1Z3MsIHNvIGdldCBhbiBSUE0gcmVmZXJlbmNlLgotCQkgKi8KLQkJaW50ZWxfcnVu dGltZV9wbV9nZXQoZGV2X3ByaXYpOworCWludGVsX3J1bnRpbWVfcG1fZ2V0KGRldl9wcml2KTsK IAotCQlpbnRlbF9wcmVwYXJlX3Jlc2V0KGRldl9wcml2KTsKKwlpbnRlbF9wcmVwYXJlX3Jlc2V0 KGRldl9wcml2KTsKIAotCQkvKgotCQkgKiBBbGwgc3RhdGUgcmVzZXQgX211c3RfIGJlIGNvbXBs ZXRlZCBiZWZvcmUgd2UgdXBkYXRlIHRoZQotCQkgKiByZXNldCBjb3VudGVyLCBmb3Igb3RoZXJ3 aXNlIHdhaXRlcnMgbWlnaHQgbWlzcyB0aGUgcmVzZXQKLQkJICogcGVuZGluZyBzdGF0ZSBhbmQg bm90IHByb3Blcmx5IGRyb3AgbG9ja3MsIHJlc3VsdGluZyBpbgotCQkgKiBkZWFkbG9ja3Mgd2l0 aCB0aGUgcmVzZXQgd29yay4KLQkJICovCi0JCXJldCA9IGk5MTVfcmVzZXQoZGV2X3ByaXYpOwor CS8qCisJICogQWxsIHN0YXRlIHJlc2V0IF9tdXN0XyBiZSBjb21wbGV0ZWQgYmVmb3JlIHdlIHVw ZGF0ZSB0aGUKKwkgKiByZXNldCBjb3VudGVyLCBmb3Igb3RoZXJ3aXNlIHdhaXRlcnMgbWlnaHQg bWlzcyB0aGUgcmVzZXQKKwkgKiBwZW5kaW5nIHN0YXRlIGFuZCBub3QgcHJvcGVybHkgZHJvcCBs b2NrcywgcmVzdWx0aW5nIGluCisJICogZGVhZGxvY2tzIHdpdGggdGhlIHJlc2V0IHdvcmsuCisJ ICovCisJcmV0ID0gaTkxNV9yZXNldChkZXZfcHJpdik7CiAKLQkJaW50ZWxfZmluaXNoX3Jlc2V0 KGRldl9wcml2KTsKKwlpbnRlbF9maW5pc2hfcmVzZXQoZGV2X3ByaXYpOwogCi0JCWludGVsX3J1 bnRpbWVfcG1fcHV0KGRldl9wcml2KTsKKwlpbnRlbF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdik7 CiAKLQkJaWYgKHJldCA9PSAwKQotCQkJa29iamVjdF91ZXZlbnRfZW52KGtvYmosCi0JCQkJCSAg IEtPQkpfQ0hBTkdFLCByZXNldF9kb25lX2V2ZW50KTsKKwlpZiAocmV0ID09IDApCisJCWtvYmpl Y3RfdWV2ZW50X2Vudihrb2JqLAorCQkJCSAgIEtPQkpfQ0hBTkdFLCByZXNldF9kb25lX2V2ZW50 KTsKIAotCQkvKgotCQkgKiBOb3RlOiBUaGUgd2FrZV91cCBhbHNvIHNlcnZlcyBhcyBhIG1lbW9y eSBiYXJyaWVyIHNvIHRoYXQKLQkJICogd2FpdGVycyBzZWUgdGhlIHVwZGF0ZSB2YWx1ZSBvZiB0 aGUgcmVzZXQgY291bnRlciBhdG9taWNfdC4KLQkJICovCi0JCXdha2VfdXBfYWxsKCZkZXZfcHJp di0+Z3B1X2Vycm9yLnJlc2V0X3F1ZXVlKTsKLQl9CisJLyoKKwkgKiBOb3RlOiBUaGUgd2FrZV91 cCBhbHNvIHNlcnZlcyBhcyBhIG1lbW9yeSBiYXJyaWVyIHNvIHRoYXQKKwkgKiB3YWl0ZXJzIHNl ZSB0aGUgdXBkYXRlIHZhbHVlIG9mIHRoZSByZXNldCBjb3VudGVyIGF0b21pY190LgorCSAqLwor CWk5MTVfZXJyb3Jfd2FrZV91cChkZXZfcHJpdik7CiB9CiAKIHN0YXRpYyB2b2lkIGk5MTVfcmVw b3J0X2FuZF9jbGVhcl9laXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQpAQCAt MjY3MywyNSArMjY2MSwyNyBAQCB2b2lkIGk5MTVfaGFuZGxlX2Vycm9yKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKIAlpOTE1X2NhcHR1cmVfZXJyb3Jfc3RhdGUoZGV2X3ByaXYs IGVuZ2luZV9tYXNrLCBlcnJvcl9tc2cpOwogCWk5MTVfcmVwb3J0X2FuZF9jbGVhcl9laXIoZGV2 X3ByaXYpOwogCi0JaWYgKGVuZ2luZV9tYXNrKSB7Ci0JCWF0b21pY19vcihJOTE1X1JFU0VUX0lO X1BST0dSRVNTX0ZMQUcsCi0JCQkJJmRldl9wcml2LT5ncHVfZXJyb3IucmVzZXRfY291bnRlcik7 CisJaWYgKCFlbmdpbmVfbWFzaykKKwkJcmV0dXJuOwogCi0JCS8qCi0JCSAqIFdha2V1cCB3YWl0 aW5nIHByb2Nlc3NlcyBzbyB0aGF0IHRoZSByZXNldCBmdW5jdGlvbgotCQkgKiBpOTE1X3Jlc2V0 X2FuZF93YWtldXAgZG9lc24ndCBkZWFkbG9jayB0cnlpbmcgdG8gZ3JhYgotCQkgKiB2YXJpb3Vz IGxvY2tzLiBCeSBidW1waW5nIHRoZSByZXNldCBjb3VudGVyIGZpcnN0LCB0aGUgd29rZW4KLQkJ ICogcHJvY2Vzc2VzIHdpbGwgc2VlIGEgcmVzZXQgaW4gcHJvZ3Jlc3MgYW5kIGJhY2sgb2ZmLAot CQkgKiByZWxlYXNpbmcgdGhlaXIgbG9ja3MgYW5kIHRoZW4gd2FpdCBmb3IgdGhlIHJlc2V0IGNv bXBsZXRpb24uCi0JCSAqIFdlIG11c3QgZG8gdGhpcyBmb3IgX2FsbF8gZ3B1IHdhaXRlcnMgdGhh dCBtaWdodCBob2xkIGxvY2tzCi0JCSAqIHRoYXQgdGhlIHJlc2V0IHdvcmsgbmVlZHMgdG8gYWNx dWlyZS4KLQkJICoKLQkJICogTm90ZTogVGhlIHdha2VfdXAgc2VydmVzIGFzIHRoZSByZXF1aXJl ZCBtZW1vcnkgYmFycmllciB0bwotCQkgKiBlbnN1cmUgdGhhdCB0aGUgd2FpdGVycyBzZWUgdGhl IHVwZGF0ZWQgdmFsdWUgb2YgdGhlIHJlc2V0Ci0JCSAqIGNvdW50ZXIgYXRvbWljX3QuCi0JCSAq LwotCQlpOTE1X2Vycm9yX3dha2VfdXAoZGV2X3ByaXYpOwotCX0KKwlpZiAodGVzdF9hbmRfc2V0 X2JpdChJOTE1X1JFU0VUX0lOX1BST0dSRVNTLAorCQkJICAgICAmZGV2X3ByaXYtPmdwdV9lcnJv ci5mbGFncykpCisJCXJldHVybjsKKworCS8qCisJICogV2FrZXVwIHdhaXRpbmcgcHJvY2Vzc2Vz IHNvIHRoYXQgdGhlIHJlc2V0IGZ1bmN0aW9uCisJICogaTkxNV9yZXNldF9hbmRfd2FrZXVwIGRv ZXNuJ3QgZGVhZGxvY2sgdHJ5aW5nIHRvIGdyYWIKKwkgKiB2YXJpb3VzIGxvY2tzLiBCeSBidW1w aW5nIHRoZSByZXNldCBjb3VudGVyIGZpcnN0LCB0aGUgd29rZW4KKwkgKiBwcm9jZXNzZXMgd2ls bCBzZWUgYSByZXNldCBpbiBwcm9ncmVzcyBhbmQgYmFjayBvZmYsCisJICogcmVsZWFzaW5nIHRo ZWlyIGxvY2tzIGFuZCB0aGVuIHdhaXQgZm9yIHRoZSByZXNldCBjb21wbGV0aW9uLgorCSAqIFdl IG11c3QgZG8gdGhpcyBmb3IgX2FsbF8gZ3B1IHdhaXRlcnMgdGhhdCBtaWdodCBob2xkIGxvY2tz CisJICogdGhhdCB0aGUgcmVzZXQgd29yayBuZWVkcyB0byBhY3F1aXJlLgorCSAqCisJICogTm90 ZTogVGhlIHdha2VfdXAgc2VydmVzIGFzIHRoZSByZXF1aXJlZCBtZW1vcnkgYmFycmllciB0bwor CSAqIGVuc3VyZSB0aGF0IHRoZSB3YWl0ZXJzIHNlZSB0aGUgdXBkYXRlZCB2YWx1ZSBvZiB0aGUg cmVzZXQKKwkgKiBjb3VudGVyIGF0b21pY190LgorCSAqLworCWk5MTVfZXJyb3Jfd2FrZV91cChk ZXZfcHJpdik7CiAKIAlpOTE1X3Jlc2V0X2FuZF93YWtldXAoZGV2X3ByaXYpOwogfQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCmluZGV4IDExMWIzNTBkMWQ3ZS4uOTAzZjQ1MDk5MjZm IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCkBAIC0zMjI4LDE1ICszMjI4LDI2 IEBAIHZvaWQgaW50ZWxfZmluaXNoX3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKIAlkcm1fbW9kZXNldF91bmxvY2tfYWxsKCZkZXZfcHJpdi0+ZHJtKTsKIH0KIAorc3Rh dGljIGJvb2wgYWJvcnRfZmxpcF9vbl9yZXNldChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKK3sK KwlzdHJ1Y3QgaTkxNV9ncHVfZXJyb3IgKmVycm9yID0gJnRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYp LT5ncHVfZXJyb3I7CisKKwlpZiAoaTkxNV9yZXNldF9pbl9wcm9ncmVzcyhlcnJvcikpCisJCXJl dHVybiB0cnVlOworCisJaWYgKGNydGMtPnJlc2V0X2NvdW50ICE9IGk5MTVfcmVzZXRfY291bnQo ZXJyb3IpKQorCQlyZXR1cm4gdHJ1ZTsKKworCXJldHVybiBmYWxzZTsKK30KKwogc3RhdGljIGJv b2wgaW50ZWxfY3J0Y19oYXNfcGVuZGluZ19mbGlwKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIHsK IAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2OwogCXN0cnVjdCBpbnRlbF9jcnRj ICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKLQl1bnNpZ25lZCByZXNldF9jb3Vu dGVyOwogCWJvb2wgcGVuZGluZzsKIAotCXJlc2V0X2NvdW50ZXIgPSBpOTE1X3Jlc2V0X2NvdW50 ZXIoJnRvX2k5MTUoZGV2KS0+Z3B1X2Vycm9yKTsKLQlpZiAoaW50ZWxfY3J0Yy0+cmVzZXRfY291 bnRlciAhPSByZXNldF9jb3VudGVyKQorCWlmIChhYm9ydF9mbGlwX29uX3Jlc2V0KGludGVsX2Ny dGMpKQogCQlyZXR1cm4gZmFsc2U7CiAKIAlzcGluX2xvY2tfaXJxKCZkZXYtPmV2ZW50X2xvY2sp OwpAQCAtMTEwNjcsMTAgKzExMDc4LDggQEAgc3RhdGljIGJvb2wgX19wYWdlZmxpcF9maW5pc2hl ZF9jcyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gY3J0Yy0+YmFzZS5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShkZXYpOwotCXVuc2lnbmVkIHJlc2V0X2NvdW50ZXI7CiAKLQlyZXNldF9jb3VudGVy ID0gaTkxNV9yZXNldF9jb3VudGVyKCZkZXZfcHJpdi0+Z3B1X2Vycm9yKTsKLQlpZiAoY3J0Yy0+ cmVzZXRfY291bnRlciAhPSByZXNldF9jb3VudGVyKQorCWlmIChhYm9ydF9mbGlwX29uX3Jlc2V0 KGNydGMpKQogCQlyZXR1cm4gdHJ1ZTsKIAogCS8qCkBAIC0xMTc1MSw4ICsxMTc2MCw4IEBAIHN0 YXRpYyBpbnQgaW50ZWxfY3J0Y19wYWdlX2ZsaXAoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCWlm IChyZXQpCiAJCWdvdG8gY2xlYW51cDsKIAotCWludGVsX2NydGMtPnJlc2V0X2NvdW50ZXIgPSBp OTE1X3Jlc2V0X2NvdW50ZXIoJmRldl9wcml2LT5ncHVfZXJyb3IpOwotCWlmIChfX2k5MTVfcmVz ZXRfaW5fcHJvZ3Jlc3Nfb3Jfd2VkZ2VkKGludGVsX2NydGMtPnJlc2V0X2NvdW50ZXIpKSB7CisJ aW50ZWxfY3J0Yy0+cmVzZXRfY291bnQgPSBpOTE1X3Jlc2V0X2NvdW50KCZkZXZfcHJpdi0+Z3B1 X2Vycm9yKTsKKwlpZiAoaTkxNV9yZXNldF9pbl9wcm9ncmVzc19vcl93ZWRnZWQoJmRldl9wcml2 LT5ncHVfZXJyb3IpKSB7CiAJCXJldCA9IC1FSU87CiAJCWdvdG8gY2xlYW51cDsKIAl9CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oCmluZGV4IGU2YTI0ZDIxNTRkMS4uZmFhZTBkODQ0OTA0IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAorKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaApAQCAtNjg1LDggKzY4NSw4IEBAIHN0cnVjdCBpbnRlbF9j cnRjIHsKIAogCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjb25maWc7CiAKLQkvKiByZXNldCBj b3VudGVyIHZhbHVlIHdoZW4gdGhlIGxhc3QgZmxpcCB3YXMgc3VibWl0dGVkICovCi0JdW5zaWdu ZWQgaW50IHJlc2V0X2NvdW50ZXI7CisJLyogZ2xvYmFsIHJlc2V0IGNvdW50IHdoZW4gdGhlIGxh c3QgZmxpcCB3YXMgc3VibWl0dGVkICovCisJdW5zaWduZWQgaW50IHJlc2V0X2NvdW50OwogCiAJ LyogQWNjZXNzIHRvIHRoZXNlIHNob3VsZCBiZSBwcm90ZWN0ZWQgYnkgZGV2X3ByaXYtPmlycV9s b2NrLiAqLwogCWJvb2wgY3B1X2ZpZm9fdW5kZXJydW5fZGlzYWJsZWQ7Ci0tIAoyLjguMQoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==