From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: [RFC 1/8] drm/i915: Introduce intel_irq Date: Thu, 18 Apr 2019 13:53:40 -0700 Message-ID: <20190418205347.6402-2-rodrigo.vivi@intel.com> References: <20190418205347.6402-1-rodrigo.vivi@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 ESMTPS id 766626E1BE for ; Thu, 18 Apr 2019 20:53:36 +0000 (UTC) In-Reply-To: <20190418205347.6402-1-rodrigo.vivi@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 TGV0J3Mgc3RhcnQgdGhlIHJlLW9yZyBvZiBpcnFzIHdpdGggdGhlIGludHJvZHVjdGlvbiBvZiBp bnRlbF9pcnEKc3RydWN0dXJlLgoKU2luY2UgaXJxX2xvY2sgaXMgdXNlZCBldmVyeXdoZXJlIGxl dCdzIHN0YXJ0IGludGVsX2lycSB3aXRoCnRoaXMgbG9jayBmaXJzdC4KClNpZ25lZC1vZmYtYnk6 IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAgICAgICAgfCAgIDggKy0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmMgICAgICAgICAgICB8ICAgNiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaCAgICAgICAgICAgIHwgIDEwICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2lycS5jICAgICAgICAgICAgfCAxODIgKysrKysrKysrKy0tLS0tLS0tLS0tCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9icmVhZGNydW1icy5jICAgfCAgIDggKy0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYyAgICAgICB8ICAgNCArLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHJ2LmggICAgICAgICAgIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9lbmdpbmVfdHlwZXMuaCAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2ZpZm9fdW5kZXJydW4uYyB8ICAzMCArKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9o b3RwbHVnLmMgICAgICAgfCAgMzggKystLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1 bnRpbWVfcG0uYyAgICB8ICAgOCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdHYuYyAg ICAgICAgICAgIHwgICA4ICstCiAxMiBmaWxlcyBjaGFuZ2VkLCAxNTUgaW5zZXJ0aW9ucygrKSwg MTUxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKaW5kZXggNTgy M2ZmYjE3ODIxLi5lMmZkMzI1MDc2MGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZGVidWdmcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5j CkBAIC00MzM2LDEyICs0MzM2LDEyIEBAIHN0YXRpYyBzc2l6ZV90IGk5MTVfaHBkX3N0b3JtX2N0 bF93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwKIAllbHNlCiAJCURSTV9ERUJVR19LTVMoIkRpc2Fi bGluZyBIUEQgc3Rvcm0gZGV0ZWN0aW9uXG4iKTsKIAotCXNwaW5fbG9ja19pcnEoJmRldl9wcml2 LT5pcnFfbG9jayk7CisJc3Bpbl9sb2NrX2lycSgmZGV2X3ByaXYtPmlycS5sb2NrKTsKIAlob3Rw bHVnLT5ocGRfc3Rvcm1fdGhyZXNob2xkID0gbmV3X3RocmVzaG9sZDsKIAkvKiBSZXNldCB0aGUg SFBEIHN0b3JtIHN0YXRzIHNvIHdlIGRvbid0IGFjY2lkZW50YWxseSB0cmlnZ2VyIGEgc3Rvcm0g Ki8KIAlmb3JfZWFjaF9ocGRfcGluKGkpCiAJCWhvdHBsdWctPnN0YXRzW2ldLmNvdW50ID0gMDsK LQlzcGluX3VubG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7CisJc3Bpbl91bmxvY2tfaXJx KCZkZXZfcHJpdi0+aXJxLmxvY2spOwogCiAJLyogUmUtZW5hYmxlIGhwZCBpbW1lZGlhdGVseSBp ZiB3ZSB3ZXJlIGluIGFuIGlycSBzdG9ybSAqLwogCWZsdXNoX2RlbGF5ZWRfd29yaygmZGV2X3By aXYtPmhvdHBsdWcucmVlbmFibGVfd29yayk7CkBAIC00NDE0LDEyICs0NDE0LDEyIEBAIHN0YXRp YyBzc2l6ZV90IGk5MTVfaHBkX3Nob3J0X3N0b3JtX2N0bF93cml0ZShzdHJ1Y3QgZmlsZSAqZmls ZSwKIAlEUk1fREVCVUdfS01TKCIlc2FibGluZyBIUEQgc2hvcnQgc3Rvcm0gZGV0ZWN0aW9uXG4i LAogCQkgICAgICBuZXdfc3RhdGUgPyAiRW4iIDogIkRpcyIpOwogCi0Jc3Bpbl9sb2NrX2lycSgm ZGV2X3ByaXYtPmlycV9sb2NrKTsKKwlzcGluX2xvY2tfaXJxKCZkZXZfcHJpdi0+aXJxLmxvY2sp OwogCWhvdHBsdWctPmhwZF9zaG9ydF9zdG9ybV9lbmFibGVkID0gbmV3X3N0YXRlOwogCS8qIFJl c2V0IHRoZSBIUEQgc3Rvcm0gc3RhdHMgc28gd2UgZG9uJ3QgYWNjaWRlbnRhbGx5IHRyaWdnZXIg YSBzdG9ybSAqLwogCWZvcl9lYWNoX2hwZF9waW4oaSkKIAkJaG90cGx1Zy0+c3RhdHNbaV0uY291 bnQgPSAwOwotCXNwaW5fdW5sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKKwlzcGluX3Vu bG9ja19pcnEoJmRldl9wcml2LT5pcnEubG9jayk7CiAKIAkvKiBSZS1lbmFibGUgaHBkIGltbWVk aWF0ZWx5IGlmIHdlIHdlcmUgaW4gYW4gaXJxIHN0b3JtICovCiAJZmx1c2hfZGVsYXllZF93b3Jr KCZkZXZfcHJpdi0+aG90cGx1Zy5yZWVuYWJsZV93b3JrKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5j CmluZGV4IDFhZDg4ZTZkN2MwNC4uZmU1YzIxMzhhNzI1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmMKQEAgLTg3OSw3ICs4NzksNyBAQCBzdGF0aWMgaW50IGk5MTVfZHJpdmVyX2luaXRfZWFybHko c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiAJaW50ZWxfdW5jb3JlX2luaXRf ZWFybHkoJmRldl9wcml2LT51bmNvcmUpOwogCi0Jc3Bpbl9sb2NrX2luaXQoJmRldl9wcml2LT5p cnFfbG9jayk7CisJc3Bpbl9sb2NrX2luaXQoJmRldl9wcml2LT5pcnEubG9jayk7CiAJc3Bpbl9s b2NrX2luaXQoJmRldl9wcml2LT5ncHVfZXJyb3IubG9jayk7CiAJbXV0ZXhfaW5pdCgmZGV2X3By aXYtPmJhY2tsaWdodF9sb2NrKTsKIApAQCAtMjIxOSwxMCArMjIxOSwxMCBAQCBzdGF0aWMgaW50 IGk5MTVfZHJtX3Jlc3VtZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCWludGVsX21vZGVzZXRf aW5pdF9odyhkZXYpOwogCWludGVsX2luaXRfY2xvY2tfZ2F0aW5nKGRldl9wcml2KTsKIAotCXNw aW5fbG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7CisJc3Bpbl9sb2NrX2lycSgmZGV2X3By aXYtPmlycS5sb2NrKTsKIAlpZiAoZGV2X3ByaXYtPmRpc3BsYXkuaHBkX2lycV9zZXR1cCkKIAkJ ZGV2X3ByaXYtPmRpc3BsYXkuaHBkX2lycV9zZXR1cChkZXZfcHJpdik7Ci0Jc3Bpbl91bmxvY2tf aXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOworCXNwaW5fdW5sb2NrX2lycSgmZGV2X3ByaXYtPmly cS5sb2NrKTsKIAogCWludGVsX2RwX21zdF9yZXN1bWUoZGV2X3ByaXYpOwogCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaAppbmRleCAwNjZmZDJhMTI4NTEuLjBiNGFhODE4ZDY2YiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oCkBAIC02NDcsMTAgKzY0NywxNSBAQCBzdHJ1Y3QgaW50ZWxfcnBzX2VpIHsK IAl1MzIgbWVkaWFfYzA7CiB9OwogCitzdHJ1Y3QgaW50ZWxfaXJxIHsKKwkvKiBwcm90ZWN0cyB0 aGUgaXJxIG1hc2tzICovCisJc3BpbmxvY2tfdCBsb2NrOworfTsKKwogc3RydWN0IGludGVsX3Jw cyB7CiAJLyoKIAkgKiB3b3JrLCBpbnRlcnJ1cHRzX2VuYWJsZWQgYW5kIHBtX2lpciBhcmUgcHJv dGVjdGVkIGJ5Ci0JICogZGV2X3ByaXYtPmlycV9sb2NrCisJICogZGV2X3ByaXYtPmlycS5sb2Nr CiAJICovCiAJc3RydWN0IHdvcmtfc3RydWN0IHdvcms7CiAJYm9vbCBpbnRlcnJ1cHRzX2VuYWJs ZWQ7CkBAIC0xNTUxLDggKzE1NTYsNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7CiAKIAlz dHJ1Y3QgcmVzb3VyY2UgbWNoX3JlczsKIAotCS8qIHByb3RlY3RzIHRoZSBpcnEgbWFza3MgKi8K LQlzcGlubG9ja190IGlycV9sb2NrOworCXN0cnVjdCBpbnRlbF9pcnEgaXJxOwogCiAJYm9vbCBk aXNwbGF5X2lycXNfZW5hYmxlZDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKaW5kZXggYjkyY2Zk NjkxMzRiLi42NzlkYzYzMjQ0ZDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfaXJxLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwpAQCAtMjYyLDcg KzI2Miw3IEBAIGk5MTVfaG90cGx1Z19pbnRlcnJ1cHRfdXBkYXRlX2xvY2tlZChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiB7CiAJdTMyIHZhbDsKIAotCWxvY2tkZXBfYXNzZXJ0 X2hlbGQoJmRldl9wcml2LT5pcnFfbG9jayk7CisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2X3By aXYtPmlycS5sb2NrKTsKIAlXQVJOX09OKGJpdHMgJiB+bWFzayk7CiAKIAl2YWwgPSBJOTE1X1JF QUQoUE9SVF9IT1RQTFVHX0VOKTsKQEAgLTI4Nyw5ICsyODcsOSBAQCB2b2lkIGk5MTVfaG90cGx1 Z19pbnRlcnJ1cHRfdXBkYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJ CQkgICB1MzIgbWFzaywKIAkJCQkgICB1MzIgYml0cykKIHsKLQlzcGluX2xvY2tfaXJxKCZkZXZf cHJpdi0+aXJxX2xvY2spOworCXNwaW5fbG9ja19pcnEoJmRldl9wcml2LT5pcnEubG9jayk7CiAJ aTkxNV9ob3RwbHVnX2ludGVycnVwdF91cGRhdGVfbG9ja2VkKGRldl9wcml2LCBtYXNrLCBiaXRz KTsKLQlzcGluX3VubG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7CisJc3Bpbl91bmxvY2tf aXJxKCZkZXZfcHJpdi0+aXJxLmxvY2spOwogfQogCiBzdGF0aWMgdTMyCkBAIC0zMDMsNyArMzAz LDcgQEAgc3RhdGljIGJvb2wgZ2VuMTFfcmVzZXRfb25lX2lpcihzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqIGNvbnN0IGk5MTUsCiAJdm9pZCBfX2lvbWVtICogY29uc3QgcmVncyA9IGk5MTUtPnVu Y29yZS5yZWdzOwogCXUzMiBkdzsKIAotCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmk5MTUtPmlycV9s b2NrKTsKKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZpOTE1LT5pcnEubG9jayk7CiAKIAlkdyA9IHJh d19yZWdfcmVhZChyZWdzLCBHRU4xMV9HVF9JTlRSX0RXKGJhbmspKTsKIAlpZiAoZHcgJiBCSVQo Yml0KSkgewpAQCAtMzM5LDcgKzMzOSw3IEBAIHZvaWQgaWxrX3VwZGF0ZV9kaXNwbGF5X2lycShz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiB7CiAJdTMyIG5ld192YWw7CiAKLQls b2NrZGVwX2Fzc2VydF9oZWxkKCZkZXZfcHJpdi0+aXJxX2xvY2spOworCWxvY2tkZXBfYXNzZXJ0 X2hlbGQoJmRldl9wcml2LT5pcnEubG9jayk7CiAKIAlXQVJOX09OKGVuYWJsZWRfaXJxX21hc2sg JiB+aW50ZXJydXB0X21hc2spOwogCkBAIC0zNjcsNyArMzY3LDcgQEAgc3RhdGljIHZvaWQgaWxr X3VwZGF0ZV9ndF9pcnEoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJICAg ICAgdTMyIGludGVycnVwdF9tYXNrLAogCQkJICAgICAgdTMyIGVuYWJsZWRfaXJxX21hc2spCiB7 Ci0JbG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYtPmlycV9sb2NrKTsKKwlsb2NrZGVwX2Fz c2VydF9oZWxkKCZkZXZfcHJpdi0+aXJxLmxvY2spOwogCiAJV0FSTl9PTihlbmFibGVkX2lycV9t YXNrICYgfmludGVycnVwdF9tYXNrKTsKIApAQCAtNDQ4LDcgKzQ0OCw3IEBAIHN0YXRpYyB2b2lk IHNuYl91cGRhdGVfcG1faXJxKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAog CVdBUk5fT04oZW5hYmxlZF9pcnFfbWFzayAmIH5pbnRlcnJ1cHRfbWFzayk7CiAKLQlsb2NrZGVw X2Fzc2VydF9oZWxkKCZkZXZfcHJpdi0+aXJxX2xvY2spOworCWxvY2tkZXBfYXNzZXJ0X2hlbGQo JmRldl9wcml2LT5pcnEubG9jayk7CiAKIAluZXdfdmFsID0gZGV2X3ByaXYtPnBtX2ltcjsKIAlu ZXdfdmFsICY9IH5pbnRlcnJ1cHRfbWFzazsKQEAgLTQ4NSw3ICs0ODUsNyBAQCBzdGF0aWMgdm9p ZCBnZW42X3Jlc2V0X3BtX2lpcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUz MiByZXNldF9tYXNrKQogewogCWk5MTVfcmVnX3QgcmVnID0gZ2VuNl9wbV9paXIoZGV2X3ByaXYp OwogCi0JbG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYtPmlycV9sb2NrKTsKKwlsb2NrZGVw X2Fzc2VydF9oZWxkKCZkZXZfcHJpdi0+aXJxLmxvY2spOwogCiAJSTkxNV9XUklURShyZWcsIHJl c2V0X21hc2spOwogCUk5MTVfV1JJVEUocmVnLCByZXNldF9tYXNrKTsKQEAgLTQ5NCw3ICs0OTQs NyBAQCBzdGF0aWMgdm9pZCBnZW42X3Jlc2V0X3BtX2lpcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsIHUzMiByZXNldF9tYXNrKQogCiBzdGF0aWMgdm9pZCBnZW42X2VuYWJsZV9w bV9pcnEoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgZW5hYmxlX21hc2sp CiB7Ci0JbG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYtPmlycV9sb2NrKTsKKwlsb2NrZGVw X2Fzc2VydF9oZWxkKCZkZXZfcHJpdi0+aXJxLmxvY2spOwogCiAJZGV2X3ByaXYtPnBtX2llciB8 PSBlbmFibGVfbWFzazsKIAl3cml0ZV9wbV9pZXIoZGV2X3ByaXYpOwpAQCAtNTA0LDcgKzUwNCw3 IEBAIHN0YXRpYyB2b2lkIGdlbjZfZW5hYmxlX3BtX2lycShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsIHUzMiBlbmFibGVfbWFzCiAKIHN0YXRpYyB2b2lkIGdlbjZfZGlzYWJsZV9w bV9pcnEoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgZGlzYWJsZV9tYXNr KQogewotCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmRldl9wcml2LT5pcnFfbG9jayk7CisJbG9ja2Rl cF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYtPmlycS5sb2NrKTsKIAogCWRldl9wcml2LT5wbV9pZXIg Jj0gfmRpc2FibGVfbWFzazsKIAlfX2dlbjZfbWFza19wbV9pcnEoZGV2X3ByaXYsIGRpc2FibGVf bWFzayk7CkBAIC01MTQsMjIgKzUxNCwyMiBAQCBzdGF0aWMgdm9pZCBnZW42X2Rpc2FibGVfcG1f aXJxKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIGRpc2FibGVfbQogCiB2 b2lkIGdlbjExX3Jlc2V0X3Jwc19pbnRlcnJ1cHRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKIHsKLQlzcGluX2xvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOworCXNwaW5f bG9ja19pcnEoJmRldl9wcml2LT5pcnEubG9jayk7CiAKIAl3aGlsZSAoZ2VuMTFfcmVzZXRfb25l X2lpcihkZXZfcHJpdiwgMCwgR0VOMTFfR1RQTSkpCiAJCTsKIAogCWRldl9wcml2LT5ndF9wbS5y cHMucG1faWlyID0gMDsKIAotCXNwaW5fdW5sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsK KwlzcGluX3VubG9ja19pcnEoJmRldl9wcml2LT5pcnEubG9jayk7CiB9CiAKIHZvaWQgZ2VuNl9y ZXNldF9ycHNfaW50ZXJydXB0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7 Ci0Jc3Bpbl9sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKKwlzcGluX2xvY2tfaXJxKCZk ZXZfcHJpdi0+aXJxLmxvY2spOwogCWdlbjZfcmVzZXRfcG1faWlyKGRldl9wcml2LCBHRU42X1BN X1JQU19FVkVOVFMpOwogCWRldl9wcml2LT5ndF9wbS5ycHMucG1faWlyID0gMDsKLQlzcGluX3Vu bG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7CisJc3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJp di0+aXJxLmxvY2spOwogfQogCiB2b2lkIGdlbjZfZW5hYmxlX3Jwc19pbnRlcnJ1cHRzKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKQEAgLTUzOSw3ICs1MzksNyBAQCB2b2lkIGdl bjZfZW5hYmxlX3Jwc19pbnRlcnJ1cHRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKIAlpZiAoUkVBRF9PTkNFKHJwcy0+aW50ZXJydXB0c19lbmFibGVkKSkKIAkJcmV0dXJuOwog Ci0Jc3Bpbl9sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKKwlzcGluX2xvY2tfaXJxKCZk ZXZfcHJpdi0+aXJxLmxvY2spOwogCVdBUk5fT05fT05DRShycHMtPnBtX2lpcik7CiAKIAlpZiAo SU5URUxfR0VOKGRldl9wcml2KSA+PSAxMSkKQEAgLTU1MCw3ICs1NTAsNyBAQCB2b2lkIGdlbjZf ZW5hYmxlX3Jwc19pbnRlcnJ1cHRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK IAlycHMtPmludGVycnVwdHNfZW5hYmxlZCA9IHRydWU7CiAJZ2VuNl9lbmFibGVfcG1faXJxKGRl dl9wcml2LCBkZXZfcHJpdi0+cG1fcnBzX2V2ZW50cyk7CiAKLQlzcGluX3VubG9ja19pcnEoJmRl dl9wcml2LT5pcnFfbG9jayk7CisJc3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+aXJxLmxvY2sp OwogfQogCiB2b2lkIGdlbjZfZGlzYWJsZV9ycHNfaW50ZXJydXB0cyhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCkBAIC01NjAsMTQgKzU2MCwxNCBAQCB2b2lkIGdlbjZfZGlzYWJs ZV9ycHNfaW50ZXJydXB0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJaWYg KCFSRUFEX09OQ0UocnBzLT5pbnRlcnJ1cHRzX2VuYWJsZWQpKQogCQlyZXR1cm47CiAKLQlzcGlu X2xvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOworCXNwaW5fbG9ja19pcnEoJmRldl9wcml2 LT5pcnEubG9jayk7CiAJcnBzLT5pbnRlcnJ1cHRzX2VuYWJsZWQgPSBmYWxzZTsKIAogCUk5MTVf V1JJVEUoR0VONl9QTUlOVFJNU0ssIGdlbjZfc2FuaXRpemVfcnBzX3BtX21hc2soZGV2X3ByaXYs IH4wdSkpOwogCiAJZ2VuNl9kaXNhYmxlX3BtX2lycShkZXZfcHJpdiwgR0VONl9QTV9SUFNfRVZF TlRTKTsKIAotCXNwaW5fdW5sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKKwlzcGluX3Vu bG9ja19pcnEoJmRldl9wcml2LT5pcnEubG9jayk7CiAJc3luY2hyb25pemVfaXJxKGRldl9wcml2 LT5kcm0uaXJxKTsKIAogCS8qIE5vdyB0aGF0IHdlIHdpbGwgbm90IGJlIGdlbmVyYXRpbmcgYW55 IG1vcmUgd29yaywgZmx1c2ggYW55CkBAIC01ODYsMzUgKzU4NiwzNSBAQCB2b2lkIGdlbjlfcmVz ZXRfZ3VjX2ludGVycnVwdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewog CWFzc2VydF9ycG1fd2FrZWxvY2tfaGVsZChkZXZfcHJpdik7CiAKLQlzcGluX2xvY2tfaXJxKCZk ZXZfcHJpdi0+aXJxX2xvY2spOworCXNwaW5fbG9ja19pcnEoJmRldl9wcml2LT5pcnEubG9jayk7 CiAJZ2VuNl9yZXNldF9wbV9paXIoZGV2X3ByaXYsIGRldl9wcml2LT5wbV9ndWNfZXZlbnRzKTsK LQlzcGluX3VubG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7CisJc3Bpbl91bmxvY2tfaXJx KCZkZXZfcHJpdi0+aXJxLmxvY2spOwogfQogCiB2b2lkIGdlbjlfZW5hYmxlX2d1Y19pbnRlcnJ1 cHRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKIAlhc3NlcnRfcnBtX3dh a2Vsb2NrX2hlbGQoZGV2X3ByaXYpOwogCi0Jc3Bpbl9sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9s b2NrKTsKKwlzcGluX2xvY2tfaXJxKCZkZXZfcHJpdi0+aXJxLmxvY2spOwogCWlmICghZGV2X3By aXYtPmd1Yy5pbnRlcnJ1cHRzX2VuYWJsZWQpIHsKIAkJV0FSTl9PTl9PTkNFKEk5MTVfUkVBRChn ZW42X3BtX2lpcihkZXZfcHJpdikpICYKIAkJCQkgICAgICAgZGV2X3ByaXYtPnBtX2d1Y19ldmVu dHMpOwogCQlkZXZfcHJpdi0+Z3VjLmludGVycnVwdHNfZW5hYmxlZCA9IHRydWU7CiAJCWdlbjZf ZW5hYmxlX3BtX2lycShkZXZfcHJpdiwgZGV2X3ByaXYtPnBtX2d1Y19ldmVudHMpOwogCX0KLQlz cGluX3VubG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7CisJc3Bpbl91bmxvY2tfaXJxKCZk ZXZfcHJpdi0+aXJxLmxvY2spOwogfQogCiB2b2lkIGdlbjlfZGlzYWJsZV9ndWNfaW50ZXJydXB0 cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CiAJYXNzZXJ0X3JwbV93YWtl bG9ja19oZWxkKGRldl9wcml2KTsKIAotCXNwaW5fbG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9j ayk7CisJc3Bpbl9sb2NrX2lycSgmZGV2X3ByaXYtPmlycS5sb2NrKTsKIAlkZXZfcHJpdi0+Z3Vj LmludGVycnVwdHNfZW5hYmxlZCA9IGZhbHNlOwogCiAJZ2VuNl9kaXNhYmxlX3BtX2lycShkZXZf cHJpdiwgZGV2X3ByaXYtPnBtX2d1Y19ldmVudHMpOwogCi0Jc3Bpbl91bmxvY2tfaXJxKCZkZXZf cHJpdi0+aXJxX2xvY2spOworCXNwaW5fdW5sb2NrX2lycSgmZGV2X3ByaXYtPmlycS5sb2NrKTsK IAlzeW5jaHJvbml6ZV9pcnEoZGV2X3ByaXYtPmRybS5pcnEpOwogCiAJZ2VuOV9yZXNldF9ndWNf aW50ZXJydXB0cyhkZXZfcHJpdik7CkBAIC02MzMsNyArNjMzLDcgQEAgc3RhdGljIHZvaWQgYmR3 X3VwZGF0ZV9wb3J0X2lycShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJdTMy IG5ld192YWw7CiAJdTMyIG9sZF92YWw7CiAKLQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZkZXZfcHJp di0+aXJxX2xvY2spOworCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmRldl9wcml2LT5pcnEubG9jayk7 CiAKIAlXQVJOX09OKGVuYWJsZWRfaXJxX21hc2sgJiB+aW50ZXJydXB0X21hc2spOwogCkBAIC02 NjYsNyArNjY2LDcgQEAgdm9pZCBiZHdfdXBkYXRlX3BpcGVfaXJxKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwKIHsKIAl1MzIgbmV3X3ZhbDsKIAotCWxvY2tkZXBfYXNzZXJ0X2hl bGQoJmRldl9wcml2LT5pcnFfbG9jayk7CisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYt PmlycS5sb2NrKTsKIAogCVdBUk5fT04oZW5hYmxlZF9pcnFfbWFzayAmIH5pbnRlcnJ1cHRfbWFz ayk7CiAKQEAgLTcwMCw3ICs3MDAsNyBAQCB2b2lkIGlieF9kaXNwbGF5X2ludGVycnVwdF91cGRh dGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCiAJV0FSTl9PTihlbmFibGVk X2lycV9tYXNrICYgfmludGVycnVwdF9tYXNrKTsKIAotCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmRl dl9wcml2LT5pcnFfbG9jayk7CisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYtPmlycS5s b2NrKTsKIAogCWlmIChXQVJOX09OKCFpbnRlbF9pcnFzX2VuYWJsZWQoZGV2X3ByaXYpKSkKIAkJ cmV0dXJuOwpAQCAtNzE1LDcgKzcxNSw3IEBAIHUzMiBpOTE1X3BpcGVzdGF0X2VuYWJsZV9tYXNr KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAl1MzIgc3RhdHVzX21hc2sgPSBk ZXZfcHJpdi0+cGlwZXN0YXRfaXJxX21hc2tbcGlwZV07CiAJdTMyIGVuYWJsZV9tYXNrID0gc3Rh dHVzX21hc2sgPDwgMTY7CiAKLQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZkZXZfcHJpdi0+aXJxX2xv Y2spOworCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmRldl9wcml2LT5pcnEubG9jayk7CiAKIAlpZiAo SU5URUxfR0VOKGRldl9wcml2KSA8IDUpCiAJCWdvdG8gb3V0OwpAQCAtNzYwLDcgKzc2MCw3IEBA IHZvaWQgaTkxNV9lbmFibGVfcGlwZXN0YXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAogCQkgICJwaXBlICVjOiBzdGF0dXNfbWFzaz0weCV4XG4iLAogCQkgIHBpcGVfbmFtZShw aXBlKSwgc3RhdHVzX21hc2spOwogCi0JbG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYtPmly cV9sb2NrKTsKKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZkZXZfcHJpdi0+aXJxLmxvY2spOwogCVdB Uk5fT04oIWludGVsX2lycXNfZW5hYmxlZChkZXZfcHJpdikpOwogCiAJaWYgKChkZXZfcHJpdi0+ cGlwZXN0YXRfaXJxX21hc2tbcGlwZV0gJiBzdGF0dXNfbWFzaykgPT0gc3RhdHVzX21hc2spCkBA IC03ODMsNyArNzgzLDcgQEAgdm9pZCBpOTE1X2Rpc2FibGVfcGlwZXN0YXQoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkgICJwaXBlICVjOiBzdGF0dXNfbWFzaz0weCV4XG4i LAogCQkgIHBpcGVfbmFtZShwaXBlKSwgc3RhdHVzX21hc2spOwogCi0JbG9ja2RlcF9hc3NlcnRf aGVsZCgmZGV2X3ByaXYtPmlycV9sb2NrKTsKKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZkZXZfcHJp di0+aXJxLmxvY2spOwogCVdBUk5fT04oIWludGVsX2lycXNfZW5hYmxlZChkZXZfcHJpdikpOwog CiAJaWYgKChkZXZfcHJpdi0+cGlwZXN0YXRfaXJxX21hc2tbcGlwZV0gJiBzdGF0dXNfbWFzaykg PT0gMCkKQEAgLTgxMywxNCArODEzLDE0IEBAIHN0YXRpYyB2b2lkIGk5MTVfZW5hYmxlX2FzbGVf cGlwZXN0YXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCWlmICghaTkxNV9o YXNfYXNsZShkZXZfcHJpdikpCiAJCXJldHVybjsKIAotCXNwaW5fbG9ja19pcnEoJmRldl9wcml2 LT5pcnFfbG9jayk7CisJc3Bpbl9sb2NrX2lycSgmZGV2X3ByaXYtPmlycS5sb2NrKTsKIAogCWk5 MTVfZW5hYmxlX3BpcGVzdGF0KGRldl9wcml2LCBQSVBFX0IsIFBJUEVfTEVHQUNZX0JMQ19FVkVO VF9TVEFUVVMpOwogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDQpCiAJCWk5MTVfZW5hYmxl X3BpcGVzdGF0KGRldl9wcml2LCBQSVBFX0EsCiAJCQkJICAgICBQSVBFX0xFR0FDWV9CTENfRVZF TlRfU1RBVFVTKTsKIAotCXNwaW5fdW5sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKKwlz cGluX3VubG9ja19pcnEoJmRldl9wcml2LT5pcnEubG9jayk7CiB9CiAKIC8qCkBAIC0xMjg5LDEy ICsxMjg5LDEyIEBAIHN0YXRpYyB2b2lkIGdlbjZfcG1fcnBzX3dvcmsoc3RydWN0IHdvcmtfc3Ry dWN0ICp3b3JrKQogCWludCBuZXdfZGVsYXksIGFkaiwgbWluLCBtYXg7CiAJdTMyIHBtX2lpciA9 IDA7CiAKLQlzcGluX2xvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOworCXNwaW5fbG9ja19p cnEoJmRldl9wcml2LT5pcnEubG9jayk7CiAJaWYgKHJwcy0+aW50ZXJydXB0c19lbmFibGVkKSB7 CiAJCXBtX2lpciA9IGZldGNoX2FuZF96ZXJvKCZycHMtPnBtX2lpcik7CiAJCWNsaWVudF9ib29z dCA9IGF0b21pY19yZWFkKCZycHMtPm51bV93YWl0ZXJzKTsKIAl9Ci0Jc3Bpbl91bmxvY2tfaXJx KCZkZXZfcHJpdi0+aXJxX2xvY2spOworCXNwaW5fdW5sb2NrX2lycSgmZGV2X3ByaXYtPmlycS5s b2NrKTsKIAogCS8qIE1ha2Ugc3VyZSB3ZSBkaWRuJ3QgcXVldWUgYW55dGhpbmcgd2UncmUgbm90 IGdvaW5nIHRvIHByb2Nlc3MuICovCiAJV0FSTl9PTihwbV9paXIgJiB+ZGV2X3ByaXYtPnBtX3Jw c19ldmVudHMpOwpAQCAtMTM3MSwxMCArMTM3MSwxMCBAQCBzdGF0aWMgdm9pZCBnZW42X3BtX3Jw c193b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAogb3V0OgogCS8qIE1ha2Ugc3VyZSBu b3QgdG8gY29ycnVwdCBQTUlNUiBzdGF0ZSB1c2VkIGJ5IHJpbmdidWZmZXIgb24gR0VONiAqLwot CXNwaW5fbG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7CisJc3Bpbl9sb2NrX2lycSgmZGV2 X3ByaXYtPmlycS5sb2NrKTsKIAlpZiAocnBzLT5pbnRlcnJ1cHRzX2VuYWJsZWQpCiAJCWdlbjZf dW5tYXNrX3BtX2lycShkZXZfcHJpdiwgZGV2X3ByaXYtPnBtX3Jwc19ldmVudHMpOwotCXNwaW5f dW5sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKKwlzcGluX3VubG9ja19pcnEoJmRldl9w cml2LT5pcnEubG9jayk7CiB9CiAKIApAQCAtMTQ1Miw5ICsxNDUyLDkgQEAgc3RhdGljIHZvaWQg aXZ5YnJpZGdlX3Bhcml0eV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAogb3V0Ogog CVdBUk5fT04oZGV2X3ByaXYtPmwzX3Bhcml0eS53aGljaF9zbGljZSk7Ci0Jc3Bpbl9sb2NrX2ly cSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKKwlzcGluX2xvY2tfaXJxKCZkZXZfcHJpdi0+aXJxLmxv Y2spOwogCWdlbjVfZW5hYmxlX2d0X2lycShkZXZfcHJpdiwgR1RfUEFSSVRZX0VSUk9SKGRldl9w cml2KSk7Ci0Jc3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOworCXNwaW5fdW5s b2NrX2lycSgmZGV2X3ByaXYtPmlycS5sb2NrKTsKIAogCW11dGV4X3VubG9jaygmZGV2X3ByaXYt PmRybS5zdHJ1Y3RfbXV0ZXgpOwogfQpAQCAtMTQ2NSw5ICsxNDY1LDkgQEAgc3RhdGljIHZvaWQg aXZ5YnJpZGdlX3Bhcml0eV9lcnJvcl9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYKIAlpZiAoIUhBU19MM19EUEYoZGV2X3ByaXYpKQogCQlyZXR1cm47CiAKLQlz cGluX2xvY2soJmRldl9wcml2LT5pcnFfbG9jayk7CisJc3Bpbl9sb2NrKCZkZXZfcHJpdi0+aXJx LmxvY2spOwogCWdlbjVfZGlzYWJsZV9ndF9pcnEoZGV2X3ByaXYsIEdUX1BBUklUWV9FUlJPUihk ZXZfcHJpdikpOwotCXNwaW5fdW5sb2NrKCZkZXZfcHJpdi0+aXJxX2xvY2spOworCXNwaW5fdW5s b2NrKCZkZXZfcHJpdi0+aXJxLmxvY2spOwogCiAJaWlyICY9IEdUX1BBUklUWV9FUlJPUihkZXZf cHJpdik7CiAJaWYgKGlpciAmIEdUX1JFTkRFUl9MM19QQVJJVFlfRVJST1JfSU5URVJSVVBUX1Mx KQpAQCAtMTg0NSw3ICsxODQ1LDcgQEAgc3RhdGljIHZvaWQgZ2VuMTFfcnBzX2lycV9oYW5kbGVy KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LCB1MzIgcG1faWlyKQogCXN0cnVjdCBpbnRl bF9ycHMgKnJwcyA9ICZpOTE1LT5ndF9wbS5ycHM7CiAJY29uc3QgdTMyIGV2ZW50cyA9IGk5MTUt PnBtX3Jwc19ldmVudHMgJiBwbV9paXI7CiAKLQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZpOTE1LT5p cnFfbG9jayk7CisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmaTkxNS0+aXJxLmxvY2spOwogCiAJaWYg KHVubGlrZWx5KCFldmVudHMpKQogCQlyZXR1cm47CkBAIC0xODY0LDEzICsxODY0LDEzIEBAIHN0 YXRpYyB2b2lkIGdlbjZfcnBzX2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwgdTMyIHBtX2lpcikKIAlzdHJ1Y3QgaW50ZWxfcnBzICpycHMgPSAmZGV2X3ByaXYt Pmd0X3BtLnJwczsKIAogCWlmIChwbV9paXIgJiBkZXZfcHJpdi0+cG1fcnBzX2V2ZW50cykgewot CQlzcGluX2xvY2soJmRldl9wcml2LT5pcnFfbG9jayk7CisJCXNwaW5fbG9jaygmZGV2X3ByaXYt PmlycS5sb2NrKTsKIAkJZ2VuNl9tYXNrX3BtX2lycShkZXZfcHJpdiwgcG1faWlyICYgZGV2X3By aXYtPnBtX3Jwc19ldmVudHMpOwogCQlpZiAocnBzLT5pbnRlcnJ1cHRzX2VuYWJsZWQpIHsKIAkJ CXJwcy0+cG1faWlyIHw9IHBtX2lpciAmIGRldl9wcml2LT5wbV9ycHNfZXZlbnRzOwogCQkJc2No ZWR1bGVfd29yaygmcnBzLT53b3JrKTsKIAkJfQotCQlzcGluX3VubG9jaygmZGV2X3ByaXYtPmly cV9sb2NrKTsKKwkJc3Bpbl91bmxvY2soJmRldl9wcml2LT5pcnEubG9jayk7CiAJfQogCiAJaWYg KElOVEVMX0dFTihkZXZfcHJpdikgPj0gOCkKQEAgLTE5MDcsMTAgKzE5MDcsMTAgQEAgc3RhdGlj IHZvaWQgaTl4eF9waXBlc3RhdF9pcnFfYWNrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKIHsKIAlpbnQgcGlwZTsKIAotCXNwaW5fbG9jaygmZGV2X3ByaXYtPmlycV9sb2NrKTsK KwlzcGluX2xvY2soJmRldl9wcml2LT5pcnEubG9jayk7CiAKIAlpZiAoIWRldl9wcml2LT5kaXNw bGF5X2lycXNfZW5hYmxlZCkgewotCQlzcGluX3VubG9jaygmZGV2X3ByaXYtPmlycV9sb2NrKTsK KwkJc3Bpbl91bmxvY2soJmRldl9wcml2LT5pcnEubG9jayk7CiAJCXJldHVybjsKIAl9CiAKQEAg LTE5NjQsNyArMTk2NCw3IEBAIHN0YXRpYyB2b2lkIGk5eHhfcGlwZXN0YXRfaXJxX2FjayhzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQlJOTE1X1dSSVRFKHJlZywgZW5hYmxl X21hc2spOwogCQl9CiAJfQotCXNwaW5fdW5sb2NrKCZkZXZfcHJpdi0+aXJxX2xvY2spOworCXNw aW5fdW5sb2NrKCZkZXZfcHJpdi0+aXJxLmxvY2spOwogfQogCiBzdGF0aWMgdm9pZCBpOHh4X3Bp cGVzdGF0X2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKQEAg LTI5ODEsNyArMjk4MSw3IEBAIGdlbjExX2d0X2VuZ2luZV9pZGVudGl0eShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqIGNvbnN0IGk5MTUsCiAJdTMyIHRpbWVvdXRfdHM7CiAJdTMyIGlkZW50Owog Ci0JbG9ja2RlcF9hc3NlcnRfaGVsZCgmaTkxNS0+aXJxX2xvY2spOworCWxvY2tkZXBfYXNzZXJ0 X2hlbGQoJmk5MTUtPmlycS5sb2NrKTsKIAogCXJhd19yZWdfd3JpdGUocmVncywgR0VOMTFfSUlS X1JFR19TRUxFQ1RPUihiYW5rKSwgQklUKGJpdCkpOwogCkBAIC0zMDY1LDcgKzMwNjUsNyBAQCBn ZW4xMV9ndF9iYW5rX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKiBjb25zdCBpOTE1 LAogCXVuc2lnbmVkIGxvbmcgaW50cl9kdzsKIAl1bnNpZ25lZCBpbnQgYml0OwogCi0JbG9ja2Rl cF9hc3NlcnRfaGVsZCgmaTkxNS0+aXJxX2xvY2spOworCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmk5 MTUtPmlycS5sb2NrKTsKIAogCWludHJfZHcgPSByYXdfcmVnX3JlYWQocmVncywgR0VOMTFfR1Rf SU5UUl9EVyhiYW5rKSk7CiAKQEAgLTMwODUsMTQgKzMwODUsMTQgQEAgZ2VuMTFfZ3RfaXJxX2hh bmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKiBjb25zdCBpOTE1LAogewogCXVuc2lnbmVk IGludCBiYW5rOwogCi0Jc3Bpbl9sb2NrKCZpOTE1LT5pcnFfbG9jayk7CisJc3Bpbl9sb2NrKCZp OTE1LT5pcnEubG9jayk7CiAKIAlmb3IgKGJhbmsgPSAwOyBiYW5rIDwgMjsgYmFuaysrKSB7CiAJ CWlmIChtYXN0ZXJfY3RsICYgR0VOMTFfR1RfRFdfSVJRKGJhbmspKQogCQkJZ2VuMTFfZ3RfYmFu a19oYW5kbGVyKGk5MTUsIGJhbmspOwogCX0KIAotCXNwaW5fdW5sb2NrKCZpOTE1LT5pcnFfbG9j ayk7CisJc3Bpbl91bmxvY2soJmk5MTUtPmlycS5sb2NrKTsKIH0KIAogc3RhdGljIHUzMgpAQCAt MzE4NSw5ICszMTg1LDkgQEAgc3RhdGljIGludCBpOHh4X2VuYWJsZV92Ymxhbmsoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpCiAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7CiAK LQlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPmlycV9sb2NrLCBpcnFmbGFncyk7CisJc3Bp bl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5pcnEubG9jaywgaXJxZmxhZ3MpOwogCWk5MTVfZW5h YmxlX3BpcGVzdGF0KGRldl9wcml2LCBwaXBlLCBQSVBFX1ZCTEFOS19JTlRFUlJVUFRfU1RBVFVT KTsKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXZfcHJpdi0+aXJxX2xvY2ssIGlycWZsYWdz KTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXZfcHJpdi0+aXJxLmxvY2ssIGlycWZsYWdz KTsKIAogCXJldHVybiAwOwogfQpAQCAtMzIwNywxMCArMzIwNywxMCBAQCBzdGF0aWMgaW50IGk5 NjVfZW5hYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlw ZSkKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAJ dW5zaWduZWQgbG9uZyBpcnFmbGFnczsKIAotCXNwaW5fbG9ja19pcnFzYXZlKCZkZXZfcHJpdi0+ aXJxX2xvY2ssIGlycWZsYWdzKTsKKwlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPmlycS5s b2NrLCBpcnFmbGFncyk7CiAJaTkxNV9lbmFibGVfcGlwZXN0YXQoZGV2X3ByaXYsIHBpcGUsCiAJ CQkgICAgIFBJUEVfU1RBUlRfVkJMQU5LX0lOVEVSUlVQVF9TVEFUVVMpOwotCXNwaW5fdW5sb2Nr X2lycXJlc3RvcmUoJmRldl9wcml2LT5pcnFfbG9jaywgaXJxZmxhZ3MpOworCXNwaW5fdW5sb2Nr X2lycXJlc3RvcmUoJmRldl9wcml2LT5pcnEubG9jaywgaXJxZmxhZ3MpOwogCiAJcmV0dXJuIDA7 CiB9CkBAIC0zMjIyLDkgKzMyMjIsOSBAQCBzdGF0aWMgaW50IGlyb25sYWtlX2VuYWJsZV92Ymxh bmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpCiAJdTMyIGJpdCA9 IElOVEVMX0dFTihkZXZfcHJpdikgPj0gNyA/CiAJCURFX1BJUEVfVkJMQU5LX0lWQihwaXBlKSA6 IERFX1BJUEVfVkJMQU5LKHBpcGUpOwogCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5p cnFfbG9jaywgaXJxZmxhZ3MpOworCXNwaW5fbG9ja19pcnFzYXZlKCZkZXZfcHJpdi0+aXJxLmxv Y2ssIGlycWZsYWdzKTsKIAlpbGtfZW5hYmxlX2Rpc3BsYXlfaXJxKGRldl9wcml2LCBiaXQpOwot CXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT5pcnFfbG9jaywgaXJxZmxhZ3MpOwor CXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT5pcnEubG9jaywgaXJxZmxhZ3MpOwog CiAJLyogRXZlbiB0aG91Z2ggdGhlcmUgaXMgbm8gRE1DLCBmcmFtZSBjb3VudGVyIGNhbiBnZXQg c3R1Y2sgd2hlbgogCSAqIFBTUiBpcyBhY3RpdmUgYXMgbm8gZnJhbWVzIGFyZSBnZW5lcmF0ZWQu CkBAIC0zMjQwLDkgKzMyNDAsOSBAQCBzdGF0aWMgaW50IGdlbjhfZW5hYmxlX3ZibGFuayhzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSkKIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAJdW5zaWduZWQgbG9uZyBpcnFmbGFn czsKIAotCXNwaW5fbG9ja19pcnFzYXZlKCZkZXZfcHJpdi0+aXJxX2xvY2ssIGlycWZsYWdzKTsK KwlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPmlycS5sb2NrLCBpcnFmbGFncyk7CiAJYmR3 X2VuYWJsZV9waXBlX2lycShkZXZfcHJpdiwgcGlwZSwgR0VOOF9QSVBFX1ZCTEFOSyk7Ci0Jc3Bp bl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPmlycV9sb2NrLCBpcnFmbGFncyk7CisJc3Bp bl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPmlycS5sb2NrLCBpcnFmbGFncyk7CiAKIAkv KiBFdmVuIGlmIHRoZXJlIGlzIG5vIERNQywgZnJhbWUgY291bnRlciBjYW4gZ2V0IHN0dWNrIHdo ZW4KIAkgKiBQU1IgaXMgYWN0aXZlIGFzIG5vIGZyYW1lcyBhcmUgZ2VuZXJhdGVkLCBzbyBjaGVj ayBvbmx5IGZvciBQU1IuCkBAIC0zMjYxLDkgKzMyNjEsOSBAQCBzdGF0aWMgdm9pZCBpOHh4X2Rp c2FibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKQog CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAl1bnNp Z25lZCBsb25nIGlycWZsYWdzOwogCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5pcnFf bG9jaywgaXJxZmxhZ3MpOworCXNwaW5fbG9ja19pcnFzYXZlKCZkZXZfcHJpdi0+aXJxLmxvY2ss IGlycWZsYWdzKTsKIAlpOTE1X2Rpc2FibGVfcGlwZXN0YXQoZGV2X3ByaXYsIHBpcGUsIFBJUEVf VkJMQU5LX0lOVEVSUlVQVF9TVEFUVVMpOwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9w cml2LT5pcnFfbG9jaywgaXJxZmxhZ3MpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9w cml2LT5pcnEubG9jaywgaXJxZmxhZ3MpOwogfQogCiBzdGF0aWMgdm9pZCBpOTQ1Z21fZGlzYWJs ZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpCkBAIC0z MjgxLDEwICszMjgxLDEwIEBAIHN0YXRpYyB2b2lkIGk5NjVfZGlzYWJsZV92Ymxhbmsoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpCiAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7 CiAKLQlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPmlycV9sb2NrLCBpcnFmbGFncyk7CisJ c3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5pcnEubG9jaywgaXJxZmxhZ3MpOwogCWk5MTVf ZGlzYWJsZV9waXBlc3RhdChkZXZfcHJpdiwgcGlwZSwKIAkJCSAgICAgIFBJUEVfU1RBUlRfVkJM QU5LX0lOVEVSUlVQVF9TVEFUVVMpOwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2 LT5pcnFfbG9jaywgaXJxZmxhZ3MpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2 LT5pcnEubG9jaywgaXJxZmxhZ3MpOwogfQogCiBzdGF0aWMgdm9pZCBpcm9ubGFrZV9kaXNhYmxl X3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSkKQEAgLTMy OTQsOSArMzI5NCw5IEBAIHN0YXRpYyB2b2lkIGlyb25sYWtlX2Rpc2FibGVfdmJsYW5rKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKQogCXUzMiBiaXQgPSBJTlRFTF9H RU4oZGV2X3ByaXYpID49IDcgPwogCQlERV9QSVBFX1ZCTEFOS19JVkIocGlwZSkgOiBERV9QSVBF X1ZCTEFOSyhwaXBlKTsKIAotCXNwaW5fbG9ja19pcnFzYXZlKCZkZXZfcHJpdi0+aXJxX2xvY2ss IGlycWZsYWdzKTsKKwlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPmlycS5sb2NrLCBpcnFm bGFncyk7CiAJaWxrX2Rpc2FibGVfZGlzcGxheV9pcnEoZGV2X3ByaXYsIGJpdCk7Ci0Jc3Bpbl91 bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPmlycV9sb2NrLCBpcnFmbGFncyk7CisJc3Bpbl91 bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPmlycS5sb2NrLCBpcnFmbGFncyk7CiB9CiAKIHN0 YXRpYyB2b2lkIGdlbjhfZGlzYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5z aWduZWQgaW50IHBpcGUpCkBAIC0zMzA0LDkgKzMzMDQsOSBAQCBzdGF0aWMgdm9pZCBnZW44X2Rp c2FibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKQog CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAl1bnNp Z25lZCBsb25nIGlycWZsYWdzOwogCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5pcnFf bG9jaywgaXJxZmxhZ3MpOworCXNwaW5fbG9ja19pcnFzYXZlKCZkZXZfcHJpdi0+aXJxLmxvY2ss IGlycWZsYWdzKTsKIAliZHdfZGlzYWJsZV9waXBlX2lycShkZXZfcHJpdiwgcGlwZSwgR0VOOF9Q SVBFX1ZCTEFOSyk7Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPmlycV9sb2Nr LCBpcnFmbGFncyk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPmlycS5sb2Nr LCBpcnFmbGFncyk7CiB9CiAKIHN0YXRpYyB2b2lkIGk5NDVnbV92Ymxhbmtfd29ya19mdW5jKHN0 cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKQEAgLTM0ODQsMTAgKzM0ODQsMTAgQEAgc3RhdGljIHZv aWQgdmFsbGV5dmlld19pcnFfcmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAogCWdlbjVf Z3RfaXJxX3Jlc2V0KGRldl9wcml2KTsKIAotCXNwaW5fbG9ja19pcnEoJmRldl9wcml2LT5pcnFf bG9jayk7CisJc3Bpbl9sb2NrX2lycSgmZGV2X3ByaXYtPmlycS5sb2NrKTsKIAlpZiAoZGV2X3By aXYtPmRpc3BsYXlfaXJxc19lbmFibGVkKQogCQl2bHZfZGlzcGxheV9pcnFfcmVzZXQoZGV2X3By aXYpOwotCXNwaW5fdW5sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKKwlzcGluX3VubG9j a19pcnEoJmRldl9wcml2LT5pcnEubG9jayk7CiB9CiAKIHN0YXRpYyB2b2lkIGdlbjhfZ3RfaXJx X3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKQEAgLTM1ODEsMTAgKzM1 ODEsMTAgQEAgdm9pZCBnZW44X2lycV9wb3dlcl93ZWxsX3Bvc3RfZW5hYmxlKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAl1MzIgZXh0cmFfaWVyID0gR0VOOF9QSVBFX1ZCTEFO SyB8IEdFTjhfUElQRV9GSUZPX1VOREVSUlVOOwogCWVudW0gcGlwZSBwaXBlOwogCi0Jc3Bpbl9s b2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKKwlzcGluX2xvY2tfaXJxKCZkZXZfcHJpdi0+ aXJxLmxvY2spOwogCiAJaWYgKCFpbnRlbF9pcnFzX2VuYWJsZWQoZGV2X3ByaXYpKSB7Ci0JCXNw aW5fdW5sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKKwkJc3Bpbl91bmxvY2tfaXJxKCZk ZXZfcHJpdi0+aXJxLmxvY2spOwogCQlyZXR1cm47CiAJfQogCkBAIC0zNTkzLDcgKzM1OTMsNyBA QCB2b2lkIGdlbjhfaXJxX3Bvd2VyX3dlbGxfcG9zdF9lbmFibGUoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAogCQkJCSAgZGV2X3ByaXYtPmRlX2lycV9tYXNrW3BpcGVdLAogCQkJ CSAgfmRldl9wcml2LT5kZV9pcnFfbWFza1twaXBlXSB8IGV4dHJhX2llcik7CiAKLQlzcGluX3Vu bG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7CisJc3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJp di0+aXJxLmxvY2spOwogfQogCiB2b2lkIGdlbjhfaXJxX3Bvd2VyX3dlbGxfcHJlX2Rpc2FibGUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LApAQCAtMzYwMiwxNyArMzYwMiwxNyBA QCB2b2lkIGdlbjhfaXJxX3Bvd2VyX3dlbGxfcHJlX2Rpc2FibGUoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAogCXN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSA9ICZkZXZfcHJp di0+dW5jb3JlOwogCWVudW0gcGlwZSBwaXBlOwogCi0Jc3Bpbl9sb2NrX2lycSgmZGV2X3ByaXYt PmlycV9sb2NrKTsKKwlzcGluX2xvY2tfaXJxKCZkZXZfcHJpdi0+aXJxLmxvY2spOwogCiAJaWYg KCFpbnRlbF9pcnFzX2VuYWJsZWQoZGV2X3ByaXYpKSB7Ci0JCXNwaW5fdW5sb2NrX2lycSgmZGV2 X3ByaXYtPmlycV9sb2NrKTsKKwkJc3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+aXJxLmxvY2sp OwogCQlyZXR1cm47CiAJfQogCiAJZm9yX2VhY2hfcGlwZV9tYXNrZWQoZGV2X3ByaXYsIHBpcGUs IHBpcGVfbWFzaykKIAkJR0VOOF9JUlFfUkVTRVRfTkRYKHVuY29yZSwgREVfUElQRSwgcGlwZSk7 CiAKLQlzcGluX3VubG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7CisJc3Bpbl91bmxvY2tf aXJxKCZkZXZfcHJpdi0+aXJxLmxvY2spOwogCiAJLyogbWFrZSBzdXJlIHdlJ3JlIGRvbmUgcHJv Y2Vzc2luZyBkaXNwbGF5IGlycXMgKi8KIAlzeW5jaHJvbml6ZV9pcnEoZGV2X3ByaXYtPmRybS5p cnEpOwpAQCAtMzYzMCwxMCArMzYzMCwxMCBAQCBzdGF0aWMgdm9pZCBjaGVycnl2aWV3X2lycV9y ZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCiAJR0VOM19JUlFfUkVTRVQodW5jb3JlLCBH RU44X1BDVV8pOwogCi0Jc3Bpbl9sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKKwlzcGlu X2xvY2tfaXJxKCZkZXZfcHJpdi0+aXJxLmxvY2spOwogCWlmIChkZXZfcHJpdi0+ZGlzcGxheV9p cnFzX2VuYWJsZWQpCiAJCXZsdl9kaXNwbGF5X2lycV9yZXNldChkZXZfcHJpdik7Ci0Jc3Bpbl91 bmxvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOworCXNwaW5fdW5sb2NrX2lycSgmZGV2X3By aXYtPmlycS5sb2NrKTsKIH0KIAogc3RhdGljIHUzMiBpbnRlbF9ocGRfZW5hYmxlZF9pcnFzKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKQEAgLTM5OTUsOSArMzk5NSw5IEBAIHN0 YXRpYyBpbnQgaXJvbmxha2VfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp CiAJCSAqIHNwaW5sb2NraW5nIG5vdCByZXF1aXJlZCBoZXJlIGZvciBjb3JyZWN0bmVzcyBzaW5j ZSBpbnRlcnJ1cHQKIAkJICogc2V0dXAgaXMgZ3VhcmFudGVlZCB0byBydW4gaW4gc2luZ2xlLXRo cmVhZGVkIGNvbnRleHQuIEJ1dCB3ZQogCQkgKiBuZWVkIGl0IHRvIG1ha2UgdGhlIGFzc2VydF9z cGluX2xvY2tlZCBoYXBweS4gKi8KLQkJc3Bpbl9sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2Nr KTsKKwkJc3Bpbl9sb2NrX2lycSgmZGV2X3ByaXYtPmlycS5sb2NrKTsKIAkJaWxrX2VuYWJsZV9k aXNwbGF5X2lycShkZXZfcHJpdiwgREVfUENVX0VWRU5UKTsKLQkJc3Bpbl91bmxvY2tfaXJxKCZk ZXZfcHJpdi0+aXJxX2xvY2spOworCQlzcGluX3VubG9ja19pcnEoJmRldl9wcml2LT5pcnEubG9j ayk7CiAJfQogCiAJcmV0dXJuIDA7CkBAIC00MDA1LDcgKzQwMDUsNyBAQCBzdGF0aWMgaW50IGly b25sYWtlX2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCiB2b2lkIHZh bGxleXZpZXdfZW5hYmxlX2Rpc3BsYXlfaXJxcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCiB7Ci0JbG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYtPmlycV9sb2NrKTsKKwls b2NrZGVwX2Fzc2VydF9oZWxkKCZkZXZfcHJpdi0+aXJxLmxvY2spOwogCiAJaWYgKGRldl9wcml2 LT5kaXNwbGF5X2lycXNfZW5hYmxlZCkKIAkJcmV0dXJuOwpAQCAtNDAyMCw3ICs0MDIwLDcgQEAg dm9pZCB2YWxsZXl2aWV3X2VuYWJsZV9kaXNwbGF5X2lycXMoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQogCiB2b2lkIHZhbGxleXZpZXdfZGlzYWJsZV9kaXNwbGF5X2lycXMoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewotCWxvY2tkZXBfYXNzZXJ0X2hlbGQo JmRldl9wcml2LT5pcnFfbG9jayk7CisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYtPmly cS5sb2NrKTsKIAogCWlmICghZGV2X3ByaXYtPmRpc3BsYXlfaXJxc19lbmFibGVkKQogCQlyZXR1 cm47CkBAIC00MDM4LDEwICs0MDM4LDEwIEBAIHN0YXRpYyBpbnQgdmFsbGV5dmlld19pcnFfcG9z dGluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAogCWdlbjVfZ3RfaXJxX3Bvc3RpbnN0 YWxsKGRldik7CiAKLQlzcGluX2xvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOworCXNwaW5f bG9ja19pcnEoJmRldl9wcml2LT5pcnEubG9jayk7CiAJaWYgKGRldl9wcml2LT5kaXNwbGF5X2ly cXNfZW5hYmxlZCkKIAkJdmx2X2Rpc3BsYXlfaXJxX3Bvc3RpbnN0YWxsKGRldl9wcml2KTsKLQlz cGluX3VubG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7CisJc3Bpbl91bmxvY2tfaXJxKCZk ZXZfcHJpdi0+aXJxLmxvY2spOwogCiAJSTkxNV9XUklURShWTFZfTUFTVEVSX0lFUiwgTUFTVEVS X0lOVEVSUlVQVF9FTkFCTEUpOwogCVBPU1RJTkdfUkVBRChWTFZfTUFTVEVSX0lFUik7CkBAIC00 MjQxLDEwICs0MjQxLDEwIEBAIHN0YXRpYyBpbnQgY2hlcnJ5dmlld19pcnFfcG9zdGluc3RhbGwo c3RydWN0IGRybV9kZXZpY2UgKmRldikKIAogCWdlbjhfZ3RfaXJxX3Bvc3RpbnN0YWxsKGRldl9w cml2KTsKIAotCXNwaW5fbG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7CisJc3Bpbl9sb2Nr X2lycSgmZGV2X3ByaXYtPmlycS5sb2NrKTsKIAlpZiAoZGV2X3ByaXYtPmRpc3BsYXlfaXJxc19l bmFibGVkKQogCQl2bHZfZGlzcGxheV9pcnFfcG9zdGluc3RhbGwoZGV2X3ByaXYpOwotCXNwaW5f dW5sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKKwlzcGluX3VubG9ja19pcnEoJmRldl9w cml2LT5pcnEubG9jayk7CiAKIAlJOTE1X1dSSVRFKEdFTjhfTUFTVEVSX0lSUSwgR0VOOF9NQVNU RVJfSVJRX0NPTlRST0wpOwogCVBPU1RJTkdfUkVBRChHRU44X01BU1RFUl9JUlEpOwpAQCAtNDI4 NywxMCArNDI4NywxMCBAQCBzdGF0aWMgaW50IGk4eHhfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpCiAKIAkvKiBJbnRlcnJ1cHQgc2V0dXAgaXMgYWxyZWFkeSBndWFyYW50 ZWVkIHRvIGJlIHNpbmdsZS10aHJlYWRlZCwgdGhpcyBpcwogCSAqIGp1c3QgdG8gbWFrZSB0aGUg YXNzZXJ0X3NwaW5fbG9ja2VkIGNoZWNrIGhhcHB5LiAqLwotCXNwaW5fbG9ja19pcnEoJmRldl9w cml2LT5pcnFfbG9jayk7CisJc3Bpbl9sb2NrX2lycSgmZGV2X3ByaXYtPmlycS5sb2NrKTsKIAlp OTE1X2VuYWJsZV9waXBlc3RhdChkZXZfcHJpdiwgUElQRV9BLCBQSVBFX0NSQ19ET05FX0lOVEVS UlVQVF9TVEFUVVMpOwogCWk5MTVfZW5hYmxlX3BpcGVzdGF0KGRldl9wcml2LCBQSVBFX0IsIFBJ UEVfQ1JDX0RPTkVfSU5URVJSVVBUX1NUQVRVUyk7Ci0Jc3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJp di0+aXJxX2xvY2spOworCXNwaW5fdW5sb2NrX2lycSgmZGV2X3ByaXYtPmlycS5sb2NrKTsKIAog CXJldHVybiAwOwogfQpAQCAtNDQ2NSwxMCArNDQ2NSwxMCBAQCBzdGF0aWMgaW50IGk5MTVfaXJx X3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAKIAkvKiBJbnRlcnJ1cHQgc2V0 dXAgaXMgYWxyZWFkeSBndWFyYW50ZWVkIHRvIGJlIHNpbmdsZS10aHJlYWRlZCwgdGhpcyBpcwog CSAqIGp1c3QgdG8gbWFrZSB0aGUgYXNzZXJ0X3NwaW5fbG9ja2VkIGNoZWNrIGhhcHB5LiAqLwot CXNwaW5fbG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7CisJc3Bpbl9sb2NrX2lycSgmZGV2 X3ByaXYtPmlycS5sb2NrKTsKIAlpOTE1X2VuYWJsZV9waXBlc3RhdChkZXZfcHJpdiwgUElQRV9B LCBQSVBFX0NSQ19ET05FX0lOVEVSUlVQVF9TVEFUVVMpOwogCWk5MTVfZW5hYmxlX3BpcGVzdGF0 KGRldl9wcml2LCBQSVBFX0IsIFBJUEVfQ1JDX0RPTkVfSU5URVJSVVBUX1NUQVRVUyk7Ci0Jc3Bp bl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOworCXNwaW5fdW5sb2NrX2lycSgmZGV2 X3ByaXYtPmlycS5sb2NrKTsKIAogCWk5MTVfZW5hYmxlX2FzbGVfcGlwZXN0YXQoZGV2X3ByaXYp OwogCkBAIC00NTg3LDExICs0NTg3LDExIEBAIHN0YXRpYyBpbnQgaTk2NV9pcnFfcG9zdGluc3Rh bGwoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAogCS8qIEludGVycnVwdCBzZXR1cCBpcyBhbHJl YWR5IGd1YXJhbnRlZWQgdG8gYmUgc2luZ2xlLXRocmVhZGVkLCB0aGlzIGlzCiAJICoganVzdCB0 byBtYWtlIHRoZSBhc3NlcnRfc3Bpbl9sb2NrZWQgY2hlY2sgaGFwcHkuICovCi0Jc3Bpbl9sb2Nr X2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKKwlzcGluX2xvY2tfaXJxKCZkZXZfcHJpdi0+aXJx LmxvY2spOwogCWk5MTVfZW5hYmxlX3BpcGVzdGF0KGRldl9wcml2LCBQSVBFX0EsIFBJUEVfR01C VVNfSU5URVJSVVBUX1NUQVRVUyk7CiAJaTkxNV9lbmFibGVfcGlwZXN0YXQoZGV2X3ByaXYsIFBJ UEVfQSwgUElQRV9DUkNfRE9ORV9JTlRFUlJVUFRfU1RBVFVTKTsKIAlpOTE1X2VuYWJsZV9waXBl c3RhdChkZXZfcHJpdiwgUElQRV9CLCBQSVBFX0NSQ19ET05FX0lOVEVSUlVQVF9TVEFUVVMpOwot CXNwaW5fdW5sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKKwlzcGluX3VubG9ja19pcnEo JmRldl9wcml2LT5pcnEubG9jayk7CiAKIAlpOTE1X2VuYWJsZV9hc2xlX3BpcGVzdGF0KGRldl9w cml2KTsKIApAQCAtNDYwMiw3ICs0NjAyLDcgQEAgc3RhdGljIHZvaWQgaTkxNV9ocGRfaXJxX3Nl dHVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKIAl1MzIgaG90cGx1Z19l bjsKIAotCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmRldl9wcml2LT5pcnFfbG9jayk7CisJbG9ja2Rl cF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYtPmlycS5sb2NrKTsKIAogCS8qIE5vdGUgSERNSSBhbmQg RFAgc2hhcmUgaG90cGx1ZyBiaXRzICovCiAJLyogZW5hYmxlIGJpdHMgYXJlIHRoZSBzYW1lIGZv ciBhbGwgZ2VuZXJhdGlvbnMgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2JyZWFkY3J1bWJzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9icmVhZGNydW1i cy5jCmluZGV4IDNjYmZmZDQwMGIxYi4uOThhNTVmMGExNmViIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9icmVhZGNydW1icy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2JyZWFkY3J1bWJzLmMKQEAgLTMzLDkgKzMzLDkgQEAgc3RhdGljIHZvaWQgaXJx X2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJCXJldHVybjsKIAogCS8q IENhbGxlciBkaXNhYmxlcyBpbnRlcnJ1cHRzICovCi0Jc3Bpbl9sb2NrKCZlbmdpbmUtPmk5MTUt PmlycV9sb2NrKTsKKwlzcGluX2xvY2soJmVuZ2luZS0+aTkxNS0+aXJxLmxvY2spOwogCWVuZ2lu ZS0+aXJxX2VuYWJsZShlbmdpbmUpOwotCXNwaW5fdW5sb2NrKCZlbmdpbmUtPmk5MTUtPmlycV9s b2NrKTsKKwlzcGluX3VubG9jaygmZW5naW5lLT5pOTE1LT5pcnEubG9jayk7CiB9CiAKIHN0YXRp YyB2b2lkIGlycV9kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKQEAgLTQ0 LDkgKzQ0LDkgQEAgc3RhdGljIHZvaWQgaXJxX2Rpc2FibGUoc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lKQogCQlyZXR1cm47CiAKIAkvKiBDYWxsZXIgZGlzYWJsZXMgaW50ZXJydXB0cyAq LwotCXNwaW5fbG9jaygmZW5naW5lLT5pOTE1LT5pcnFfbG9jayk7CisJc3Bpbl9sb2NrKCZlbmdp bmUtPmk5MTUtPmlycS5sb2NrKTsKIAllbmdpbmUtPmlycV9kaXNhYmxlKGVuZ2luZSk7Ci0Jc3Bp bl91bmxvY2soJmVuZ2luZS0+aTkxNS0+aXJxX2xvY2spOworCXNwaW5fdW5sb2NrKCZlbmdpbmUt Pmk5MTUtPmlycS5sb2NrKTsKIH0KIAogc3RhdGljIHZvaWQgX19pbnRlbF9icmVhZGNydW1ic19k aXNhcm1faXJxKHN0cnVjdCBpbnRlbF9icmVhZGNydW1icyAqYikKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYwppbmRleCAzYmQ0MGE0YTY3MzkuLjdjOGMxNzkxNDZhNSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtMzk3NSwxMCArMzk3NSwxMCBAQCB2b2lkIGlu dGVsX2ZpbmlzaF9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCWlu dGVsX21vZGVzZXRfaW5pdF9odyhkZXYpOwogCQlpbnRlbF9pbml0X2Nsb2NrX2dhdGluZyhkZXZf cHJpdik7CiAKLQkJc3Bpbl9sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKKwkJc3Bpbl9s b2NrX2lycSgmZGV2X3ByaXYtPmlycS5sb2NrKTsKIAkJaWYgKGRldl9wcml2LT5kaXNwbGF5Lmhw ZF9pcnFfc2V0dXApCiAJCQlkZXZfcHJpdi0+ZGlzcGxheS5ocGRfaXJxX3NldHVwKGRldl9wcml2 KTsKLQkJc3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOworCQlzcGluX3VubG9j a19pcnEoJmRldl9wcml2LT5pcnEubG9jayk7CiAKIAkJcmV0ID0gX19pbnRlbF9kaXNwbGF5X3Jl c3VtZShkZXYsIHN0YXRlLCBjdHgpOwogCQlpZiAocmV0KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aAppbmRleCBhMzhiOWNmZjVjZDAuLjQxN2RiYTdkMGEwNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmgKQEAgLTEwOTksNyArMTA5OSw3IEBAIHN0cnVjdCBpbnRlbF9jcnRjIHsKIAogCXN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjb25maWc7CiAKLQkvKiBBY2Nlc3MgdG8gdGhlc2Ugc2hvdWxk IGJlIHByb3RlY3RlZCBieSBkZXZfcHJpdi0+aXJxX2xvY2suICovCisJLyogQWNjZXNzIHRvIHRo ZXNlIHNob3VsZCBiZSBwcm90ZWN0ZWQgYnkgZGV2X3ByaXYtPmlycS5sb2NrLiAqLwogCWJvb2wg Y3B1X2ZpZm9fdW5kZXJydW5fZGlzYWJsZWQ7CiAJYm9vbCBwY2hfZmlmb191bmRlcnJ1bl9kaXNh YmxlZDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX3R5 cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfdHlwZXMuaAppbmRleCAx Zjk3MGM3NmI2YTYuLjU5OTk5MWEwMDY3ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZW5naW5lX3R5cGVzLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZW5naW5lX3R5cGVzLmgKQEAgLTMwOCw3ICszMDgsNyBAQCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz IHsKIAkJc3BpbmxvY2tfdCBpcnFfbG9jazsKIAkJc3RydWN0IGxpc3RfaGVhZCBzaWduYWxlcnM7 CiAKLQkJc3RydWN0IGlycV93b3JrIGlycV93b3JrOyAvKiBmb3IgdXNlIGZyb20gaW5zaWRlIGly cV9sb2NrICovCisJCXN0cnVjdCBpcnFfd29yayBpcnFfd29yazsgLyogZm9yIHVzZSBmcm9tIGlu c2lkZSBpcnEubG9jayAqLwogCiAJCXVuc2lnbmVkIGludCBpcnFfZW5hYmxlZDsKIApkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmlmb191bmRlcnJ1bi5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZmlmb191bmRlcnJ1bi5jCmluZGV4IDc0YzhiMDUyODI5NC4u M2RkNWM4NDUzZjIwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9maWZv X3VuZGVycnVuLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmlmb191bmRlcnJ1 bi5jCkBAIC01NSw3ICs1NSw3IEBAIHN0YXRpYyBib29sIGl2Yl9jYW5fZW5hYmxlX2Vycl9pbnQo c3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YzsKIAllbnVt IHBpcGUgcGlwZTsKIAotCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmRldl9wcml2LT5pcnFfbG9jayk7 CisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYtPmlycS5sb2NrKTsKIAogCWZvcl9lYWNo X3BpcGUoZGV2X3ByaXYsIHBpcGUpIHsKIAkJY3J0YyA9IGludGVsX2dldF9jcnRjX2Zvcl9waXBl KGRldl9wcml2LCBwaXBlKTsKQEAgLTczLDcgKzczLDcgQEAgc3RhdGljIGJvb2wgY3B0X2Nhbl9l bmFibGVfc2Vycl9pbnQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAllbnVtIHBpcGUgcGlwZTsK IAlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YzsKIAotCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmRldl9w cml2LT5pcnFfbG9jayk7CisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYtPmlycS5sb2Nr KTsKIAogCWZvcl9lYWNoX3BpcGUoZGV2X3ByaXYsIHBpcGUpIHsKIAkJY3J0YyA9IGludGVsX2dl dF9jcnRjX2Zvcl9waXBlKGRldl9wcml2LCBwaXBlKTsKQEAgLTkxLDcgKzkxLDcgQEAgc3RhdGlj IHZvaWQgaTl4eF9jaGVja19maWZvX3VuZGVycnVucyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykK IAlpOTE1X3JlZ190IHJlZyA9IFBJUEVTVEFUKGNydGMtPnBpcGUpOwogCXUzMiBlbmFibGVfbWFz azsKIAotCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmRldl9wcml2LT5pcnFfbG9jayk7CisJbG9ja2Rl cF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYtPmlycS5sb2NrKTsKIAogCWlmICgoSTkxNV9SRUFEKHJl ZykgJiBQSVBFX0ZJRk9fVU5ERVJSVU5fU1RBVFVTKSA9PSAwKQogCQlyZXR1cm47CkBAIC0xMTEs NyArMTExLDcgQEAgc3RhdGljIHZvaWQgaTl4eF9zZXRfZmlmb191bmRlcnJ1bl9yZXBvcnRpbmco c3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGRldik7CiAJaTkxNV9yZWdfdCByZWcgPSBQSVBFU1RBVChwaXBlKTsKIAot CWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmRldl9wcml2LT5pcnFfbG9jayk7CisJbG9ja2RlcF9hc3Nl cnRfaGVsZCgmZGV2X3ByaXYtPmlycS5sb2NrKTsKIAogCWlmIChlbmFibGUpIHsKIAkJdTMyIGVu YWJsZV9tYXNrID0gaTkxNV9waXBlc3RhdF9lbmFibGVfbWFzayhkZXZfcHJpdiwgcGlwZSk7CkBA IC0xNDMsNyArMTQzLDcgQEAgc3RhdGljIHZvaWQgaXZ5YnJpZGdlX2NoZWNrX2ZpZm9fdW5kZXJy dW5zKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlw ZTsKIAl1MzIgZXJyX2ludCA9IEk5MTVfUkVBRChHRU43X0VSUl9JTlQpOwogCi0JbG9ja2RlcF9h c3NlcnRfaGVsZCgmZGV2X3ByaXYtPmlycV9sb2NrKTsKKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZk ZXZfcHJpdi0+aXJxLmxvY2spOwogCiAJaWYgKChlcnJfaW50ICYgRVJSX0lOVF9GSUZPX1VOREVS UlVOKHBpcGUpKSA9PSAwKQogCQlyZXR1cm47CkBAIC0yMDksNyArMjA5LDcgQEAgc3RhdGljIHZv aWQgY3B0X2NoZWNrX3BjaF9maWZvX3VuZGVycnVucyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykK IAllbnVtIHBpcGUgcGNoX3RyYW5zY29kZXIgPSBjcnRjLT5waXBlOwogCXUzMiBzZXJyX2ludCA9 IEk5MTVfUkVBRChTRVJSX0lOVCk7CiAKLQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZkZXZfcHJpdi0+ aXJxX2xvY2spOworCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmRldl9wcml2LT5pcnEubG9jayk7CiAK IAlpZiAoKHNlcnJfaW50ICYgU0VSUl9JTlRfVFJBTlNfRklGT19VTkRFUlJVTihwY2hfdHJhbnNj b2RlcikpID09IDApCiAJCXJldHVybjsKQEAgLTI1NCw3ICsyNTQsNyBAQCBzdGF0aWMgYm9vbCBf X2ludGVsX3NldF9jcHVfZmlmb191bmRlcnJ1bl9yZXBvcnRpbmcoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IGludGVsX2dldF9jcnRjX2Zvcl9waXBl KGRldl9wcml2LCBwaXBlKTsKIAlib29sIG9sZDsKIAotCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmRl dl9wcml2LT5pcnFfbG9jayk7CisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYtPmlycS5s b2NrKTsKIAogCW9sZCA9ICFjcnRjLT5jcHVfZmlmb191bmRlcnJ1bl9kaXNhYmxlZDsKIAljcnRj LT5jcHVfZmlmb191bmRlcnJ1bl9kaXNhYmxlZCA9ICFlbmFibGU7CkBAIC0yOTMsMTAgKzI5Mywx MCBAQCBib29sIGludGVsX3NldF9jcHVfZmlmb191bmRlcnJ1bl9yZXBvcnRpbmcoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJYm9vbCBy ZXQ7CiAKLQlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPmlycV9sb2NrLCBmbGFncyk7CisJ c3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5pcnEubG9jaywgZmxhZ3MpOwogCXJldCA9IF9f aW50ZWxfc2V0X2NwdV9maWZvX3VuZGVycnVuX3JlcG9ydGluZygmZGV2X3ByaXYtPmRybSwgcGlw ZSwKIAkJCQkJCSAgICAgIGVuYWJsZSk7Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3By aXYtPmlycV9sb2NrLCBmbGFncyk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYt PmlycS5sb2NrLCBmbGFncyk7CiAKIAlyZXR1cm4gcmV0OwogfQpAQCAtMzMzLDcgKzMzMyw3IEBA IGJvb2wgaW50ZWxfc2V0X3BjaF9maWZvX3VuZGVycnVuX3JlcG9ydGluZyhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJICogY3J0YyBvbiBMUFQgd29uJ3QgY2F1c2UgaXNzdWVz LgogCSAqLwogCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5pcnFfbG9jaywgZmxhZ3Mp OworCXNwaW5fbG9ja19pcnFzYXZlKCZkZXZfcHJpdi0+aXJxLmxvY2ssIGZsYWdzKTsKIAogCW9s ZCA9ICFjcnRjLT5wY2hfZmlmb191bmRlcnJ1bl9kaXNhYmxlZDsKIAljcnRjLT5wY2hfZmlmb191 bmRlcnJ1bl9kaXNhYmxlZCA9ICFlbmFibGU7CkBAIC0zNDcsNyArMzQ3LDcgQEAgYm9vbCBpbnRl bF9zZXRfcGNoX2ZpZm9fdW5kZXJydW5fcmVwb3J0aW5nKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKIAkJCQkJCXBjaF90cmFuc2NvZGVyLAogCQkJCQkJZW5hYmxlLCBvbGQpOwog Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPmlycV9sb2NrLCBmbGFncyk7CisJ c3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPmlycS5sb2NrLCBmbGFncyk7CiAJcmV0 dXJuIG9sZDsKIH0KIApAQCAtNDE2LDcgKzQxNiw3IEBAIHZvaWQgaW50ZWxfY2hlY2tfY3B1X2Zp Zm9fdW5kZXJydW5zKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKIAlzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YzsKIAotCXNwaW5fbG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9j ayk7CisJc3Bpbl9sb2NrX2lycSgmZGV2X3ByaXYtPmlycS5sb2NrKTsKIAogCWZvcl9lYWNoX2lu dGVsX2NydGMoJmRldl9wcml2LT5kcm0sIGNydGMpIHsKIAkJaWYgKGNydGMtPmNwdV9maWZvX3Vu ZGVycnVuX2Rpc2FibGVkKQpAQCAtNDI4LDcgKzQyOCw3IEBAIHZvaWQgaW50ZWxfY2hlY2tfY3B1 X2ZpZm9fdW5kZXJydW5zKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJCWl2 eWJyaWRnZV9jaGVja19maWZvX3VuZGVycnVucyhjcnRjKTsKIAl9CiAKLQlzcGluX3VubG9ja19p cnEoJmRldl9wcml2LT5pcnFfbG9jayk7CisJc3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+aXJx LmxvY2spOwogfQogCiAvKioKQEAgLTQ0Myw3ICs0NDMsNyBAQCB2b2lkIGludGVsX2NoZWNrX3Bj aF9maWZvX3VuZGVycnVucyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CiAJ c3RydWN0IGludGVsX2NydGMgKmNydGM7CiAKLQlzcGluX2xvY2tfaXJxKCZkZXZfcHJpdi0+aXJx X2xvY2spOworCXNwaW5fbG9ja19pcnEoJmRldl9wcml2LT5pcnEubG9jayk7CiAKIAlmb3JfZWFj aF9pbnRlbF9jcnRjKCZkZXZfcHJpdi0+ZHJtLCBjcnRjKSB7CiAJCWlmIChjcnRjLT5wY2hfZmlm b191bmRlcnJ1bl9kaXNhYmxlZCkKQEAgLTQ1Myw1ICs0NTMsNSBAQCB2b2lkIGludGVsX2NoZWNr X3BjaF9maWZvX3VuZGVycnVucyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJ CQljcHRfY2hlY2tfcGNoX2ZpZm9fdW5kZXJydW5zKGNydGMpOwogCX0KIAotCXNwaW5fdW5sb2Nr X2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKKwlzcGluX3VubG9ja19pcnEoJmRldl9wcml2LT5p cnEubG9jayk7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ob3Rw bHVnLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ob3RwbHVnLmMKaW5kZXggYjg5Mzdj Nzg4ZjAzLi44MjYwZTgxZjg4ZTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2hvdHBsdWcuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ob3RwbHVnLmMK QEAgLTE4NCw3ICsxODQsNyBAQCBpbnRlbF9ocGRfaXJxX3N0b3JtX3N3aXRjaF90b19wb2xsaW5n KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAllbnVtIGhwZF9waW4gcGluOwog CWJvb2wgaHBkX2Rpc2FibGVkID0gZmFsc2U7CiAKLQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZkZXZf cHJpdi0+aXJxX2xvY2spOworCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmRldl9wcml2LT5pcnEubG9j ayk7CiAKIAlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9iZWdpbihkZXYsICZjb25uX2l0ZXIpOwog CWRybV9mb3JfZWFjaF9jb25uZWN0b3JfaXRlcihjb25uZWN0b3IsICZjb25uX2l0ZXIpIHsKQEAg LTIzMSw3ICsyMzEsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9ocGRfaXJxX3N0b3JtX3JlZW5hYmxl X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCiAJd2FrZXJlZiA9IGludGVsX3J1bnRp bWVfcG1fZ2V0KGRldl9wcml2KTsKIAotCXNwaW5fbG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9j ayk7CisJc3Bpbl9sb2NrX2lycSgmZGV2X3ByaXYtPmlycS5sb2NrKTsKIAlmb3JfZWFjaF9ocGRf cGluKHBpbikgewogCQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOwogCQlzdHJ1Y3Qg ZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXIgY29ubl9pdGVyOwpAQCAtMjYwLDcgKzI2MCw3IEBAIHN0 YXRpYyB2b2lkIGludGVsX2hwZF9pcnFfc3Rvcm1fcmVlbmFibGVfd29yayhzdHJ1Y3Qgd29ya19z dHJ1Y3QgKndvcmspCiAJfQogCWlmIChkZXZfcHJpdi0+ZGlzcGxheV9pcnFzX2VuYWJsZWQgJiYg ZGV2X3ByaXYtPmRpc3BsYXkuaHBkX2lycV9zZXR1cCkKIAkJZGV2X3ByaXYtPmRpc3BsYXkuaHBk X2lycV9zZXR1cChkZXZfcHJpdik7Ci0Jc3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xv Y2spOworCXNwaW5fdW5sb2NrX2lycSgmZGV2X3ByaXYtPmlycS5sb2NrKTsKIAogCWludGVsX3J1 bnRpbWVfcG1fcHV0KGRldl9wcml2LCB3YWtlcmVmKTsKIH0KQEAgLTMwMywxMiArMzAzLDEyIEBA IHN0YXRpYyB2b2lkIGk5MTVfZGlncG9ydF93b3JrX2Z1bmMoc3RydWN0IHdvcmtfc3RydWN0ICp3 b3JrKQogCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyOwogCXUzMiBvbGRfYml0cyA9IDA7 CiAKLQlzcGluX2xvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOworCXNwaW5fbG9ja19pcnEo JmRldl9wcml2LT5pcnEubG9jayk7CiAJbG9uZ19wb3J0X21hc2sgPSBkZXZfcHJpdi0+aG90cGx1 Zy5sb25nX3BvcnRfbWFzazsKIAlkZXZfcHJpdi0+aG90cGx1Zy5sb25nX3BvcnRfbWFzayA9IDA7 CiAJc2hvcnRfcG9ydF9tYXNrID0gZGV2X3ByaXYtPmhvdHBsdWcuc2hvcnRfcG9ydF9tYXNrOwog CWRldl9wcml2LT5ob3RwbHVnLnNob3J0X3BvcnRfbWFzayA9IDA7Ci0Jc3Bpbl91bmxvY2tfaXJx KCZkZXZfcHJpdi0+aXJxX2xvY2spOworCXNwaW5fdW5sb2NrX2lycSgmZGV2X3ByaXYtPmlycS5s b2NrKTsKIAogCWZvcl9lYWNoX2ludGVsX2VuY29kZXIoJmRldl9wcml2LT5kcm0sIGVuY29kZXIp IHsKIAkJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQ7CkBAIC0zMzUsOSArMzM1 LDkgQEAgc3RhdGljIHZvaWQgaTkxNV9kaWdwb3J0X3dvcmtfZnVuYyhzdHJ1Y3Qgd29ya19zdHJ1 Y3QgKndvcmspCiAJfQogCiAJaWYgKG9sZF9iaXRzKSB7Ci0JCXNwaW5fbG9ja19pcnEoJmRldl9w cml2LT5pcnFfbG9jayk7CisJCXNwaW5fbG9ja19pcnEoJmRldl9wcml2LT5pcnEubG9jayk7CiAJ CWRldl9wcml2LT5ob3RwbHVnLmV2ZW50X2JpdHMgfD0gb2xkX2JpdHM7Ci0JCXNwaW5fdW5sb2Nr X2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKKwkJc3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+ aXJxLmxvY2spOwogCQlzY2hlZHVsZV93b3JrKCZkZXZfcHJpdi0+aG90cGx1Zy5ob3RwbHVnX3dv cmspOwogCX0KIH0KQEAgLTM2MCw3ICszNjAsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X2hvdHBsdWdf d29ya19mdW5jKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAltdXRleF9sb2NrKCZkZXYtPm1v ZGVfY29uZmlnLm11dGV4KTsKIAlEUk1fREVCVUdfS01TKCJydW5uaW5nIGVuY29kZXIgaG90cGx1 ZyBmdW5jdGlvbnNcbiIpOwogCi0Jc3Bpbl9sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsK KwlzcGluX2xvY2tfaXJxKCZkZXZfcHJpdi0+aXJxLmxvY2spOwogCiAJaHBkX2V2ZW50X2JpdHMg PSBkZXZfcHJpdi0+aG90cGx1Zy5ldmVudF9iaXRzOwogCWRldl9wcml2LT5ob3RwbHVnLmV2ZW50 X2JpdHMgPSAwOwpAQCAtMzY4LDcgKzM2OCw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfaG90cGx1Z193 b3JrX2Z1bmMoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCS8qIEVuYWJsZSBwb2xsaW5nIGZv ciBjb25uZWN0b3JzIHdoaWNoIGhhZCBIUEQgSVJRIHN0b3JtcyAqLwogCWludGVsX2hwZF9pcnFf c3Rvcm1fc3dpdGNoX3RvX3BvbGxpbmcoZGV2X3ByaXYpOwogCi0Jc3Bpbl91bmxvY2tfaXJxKCZk ZXZfcHJpdi0+aXJxX2xvY2spOworCXNwaW5fdW5sb2NrX2lycSgmZGV2X3ByaXYtPmlycS5sb2Nr KTsKIAogCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2JlZ2luKGRldiwgJmNvbm5faXRlcik7CiAJ ZHJtX2Zvcl9lYWNoX2Nvbm5lY3Rvcl9pdGVyKGNvbm5lY3RvciwgJmNvbm5faXRlcikgewpAQCAt NDIxLDcgKzQyMSw3IEBAIHZvaWQgaW50ZWxfaHBkX2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKIAlpZiAoIXBpbl9tYXNrKQogCQlyZXR1cm47CiAKLQlzcGlu X2xvY2soJmRldl9wcml2LT5pcnFfbG9jayk7CisJc3Bpbl9sb2NrKCZkZXZfcHJpdi0+aXJxLmxv Y2spOwogCiAJLyoKIAkgKiBEZXRlcm1pbmUgd2hldGhlciAtPmhwZF9wdWxzZSgpIGV4aXN0cyBm b3IgZWFjaCBwaW4sIGFuZApAQCAtNTA0LDcgKzUwNCw3IEBAIHZvaWQgaW50ZWxfaHBkX2lycV9o YW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkgKi8KIAlpZiAoc3Rv cm1fZGV0ZWN0ZWQgJiYgZGV2X3ByaXYtPmRpc3BsYXlfaXJxc19lbmFibGVkKQogCQlkZXZfcHJp di0+ZGlzcGxheS5ocGRfaXJxX3NldHVwKGRldl9wcml2KTsKLQlzcGluX3VubG9jaygmZGV2X3By aXYtPmlycV9sb2NrKTsKKwlzcGluX3VubG9jaygmZGV2X3ByaXYtPmlycS5sb2NrKTsKIAogCS8q CiAJICogT3VyIGhvdHBsdWcgaGFuZGxlciBjYW4gZ3JhYiBtb2Rlc2V0IGxvY2tzIChieSBjYWxs aW5nIGRvd24gaW50byB0aGUKQEAgLTU0OSwxMCArNTQ5LDEwIEBAIHZvaWQgaW50ZWxfaHBkX2lu aXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCSAqIGp1c3QgdG8gbWFrZSB0 aGUgYXNzZXJ0X3NwaW5fbG9ja2VkIGNoZWNrcyBoYXBweS4KIAkgKi8KIAlpZiAoZGV2X3ByaXYt PmRpc3BsYXlfaXJxc19lbmFibGVkICYmIGRldl9wcml2LT5kaXNwbGF5LmhwZF9pcnFfc2V0dXAp IHsKLQkJc3Bpbl9sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKKwkJc3Bpbl9sb2NrX2ly cSgmZGV2X3ByaXYtPmlycS5sb2NrKTsKIAkJaWYgKGRldl9wcml2LT5kaXNwbGF5X2lycXNfZW5h YmxlZCkKIAkJCWRldl9wcml2LT5kaXNwbGF5LmhwZF9pcnFfc2V0dXAoZGV2X3ByaXYpOwotCQlz cGluX3VubG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7CisJCXNwaW5fdW5sb2NrX2lycSgm ZGV2X3ByaXYtPmlycS5sb2NrKTsKIAl9CiB9CiAKQEAgLTY0NCwxMyArNjQ0LDEzIEBAIHZvaWQg aW50ZWxfaHBkX2luaXRfd29yayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAK IHZvaWQgaW50ZWxfaHBkX2NhbmNlbF93b3JrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKIHsKLQlzcGluX2xvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOworCXNwaW5fbG9j a19pcnEoJmRldl9wcml2LT5pcnEubG9jayk7CiAKIAlkZXZfcHJpdi0+aG90cGx1Zy5sb25nX3Bv cnRfbWFzayA9IDA7CiAJZGV2X3ByaXYtPmhvdHBsdWcuc2hvcnRfcG9ydF9tYXNrID0gMDsKIAlk ZXZfcHJpdi0+aG90cGx1Zy5ldmVudF9iaXRzID0gMDsKIAotCXNwaW5fdW5sb2NrX2lycSgmZGV2 X3ByaXYtPmlycV9sb2NrKTsKKwlzcGluX3VubG9ja19pcnEoJmRldl9wcml2LT5pcnEubG9jayk7 CiAKIAljYW5jZWxfd29ya19zeW5jKCZkZXZfcHJpdi0+aG90cGx1Zy5kaWdfcG9ydF93b3JrKTsK IAljYW5jZWxfd29ya19zeW5jKCZkZXZfcHJpdi0+aG90cGx1Zy5ob3RwbHVnX3dvcmspOwpAQCAt NjY1LDEyICs2NjUsMTIgQEAgYm9vbCBpbnRlbF9ocGRfZGlzYWJsZShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gaHBkX3BpbiBwaW4pCiAJaWYgKHBpbiA9PSBIUERfTk9O RSkKIAkJcmV0dXJuIGZhbHNlOwogCi0Jc3Bpbl9sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2Nr KTsKKwlzcGluX2xvY2tfaXJxKCZkZXZfcHJpdi0+aXJxLmxvY2spOwogCWlmIChkZXZfcHJpdi0+ aG90cGx1Zy5zdGF0c1twaW5dLnN0YXRlID09IEhQRF9FTkFCTEVEKSB7CiAJCWRldl9wcml2LT5o b3RwbHVnLnN0YXRzW3Bpbl0uc3RhdGUgPSBIUERfRElTQUJMRUQ7CiAJCXJldCA9IHRydWU7CiAJ fQotCXNwaW5fdW5sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKKwlzcGluX3VubG9ja19p cnEoJmRldl9wcml2LT5pcnEubG9jayk7CiAKIAlyZXR1cm4gcmV0OwogfQpAQCAtNjgwLDcgKzY4 MCw3IEBAIHZvaWQgaW50ZWxfaHBkX2VuYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsIGVudW0gaHBkX3BpbiBwaW4pCiAJaWYgKHBpbiA9PSBIUERfTk9ORSkKIAkJcmV0dXJu OwogCi0Jc3Bpbl9sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKKwlzcGluX2xvY2tfaXJx KCZkZXZfcHJpdi0+aXJxLmxvY2spOwogCWRldl9wcml2LT5ob3RwbHVnLnN0YXRzW3Bpbl0uc3Rh dGUgPSBIUERfRU5BQkxFRDsKLQlzcGluX3VubG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7 CisJc3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+aXJxLmxvY2spOwogfQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcnVudGltZV9wbS5jCmluZGV4IGQ0ZjQyNjJkMGZlZS4uNWEyZDdmMmY3OTlk IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jCkBAIC0xMzM1LDkgKzEz MzUsOSBAQCBzdGF0aWMgdm9pZCB2bHZfZGlzcGxheV9wb3dlcl93ZWxsX2luaXQoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiAJdmx2X2luaXRfZGlzcGxheV9jbG9ja19nYXRp bmcoZGV2X3ByaXYpOwogCi0Jc3Bpbl9sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKKwlz cGluX2xvY2tfaXJxKCZkZXZfcHJpdi0+aXJxLmxvY2spOwogCXZhbGxleXZpZXdfZW5hYmxlX2Rp c3BsYXlfaXJxcyhkZXZfcHJpdik7Ci0Jc3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xv Y2spOworCXNwaW5fdW5sb2NrX2lycSgmZGV2X3ByaXYtPmlycS5sb2NrKTsKIAogCS8qCiAJICog RHVyaW5nIGRyaXZlciBpbml0aWFsaXphdGlvbi9yZXN1bWUgd2UgY2FuIGF2b2lkIHJlc3Rvcmlu ZyB0aGUKQEAgLTEzNjEsOSArMTM2MSw5IEBAIHN0YXRpYyB2b2lkIHZsdl9kaXNwbGF5X3Bvd2Vy X3dlbGxfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAKIHN0YXRpYyB2 b2lkIHZsdl9kaXNwbGF5X3Bvd2VyX3dlbGxfZGVpbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKIHsKLQlzcGluX2xvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOworCXNw aW5fbG9ja19pcnEoJmRldl9wcml2LT5pcnEubG9jayk7CiAJdmFsbGV5dmlld19kaXNhYmxlX2Rp c3BsYXlfaXJxcyhkZXZfcHJpdik7Ci0Jc3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xv Y2spOworCXNwaW5fdW5sb2NrX2lycSgmZGV2X3ByaXYtPmlycS5sb2NrKTsKIAogCS8qIG1ha2Ug c3VyZSB3ZSdyZSBkb25lIHByb2Nlc3NpbmcgZGlzcGxheSBpcnFzICovCiAJc3luY2hyb25pemVf aXJxKGRldl9wcml2LT5kcm0uaXJxKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3R2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF90di5jCmluZGV4IDVkYmJh MzNmNDIwMi4uMDQwODFmMDI5MDIzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF90di5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3R2LmMKQEAgLTE1NzQs MTEgKzE1NzQsMTEgQEAgaW50ZWxfdHZfZGV0ZWN0X3R5cGUoc3RydWN0IGludGVsX3R2ICppbnRl bF90diwKIAogCS8qIERpc2FibGUgVFYgaW50ZXJydXB0cyBhcm91bmQgbG9hZCBkZXRlY3Qgb3Ig d2UnbGwgcmVjdXJzZSAqLwogCWlmIChjb25uZWN0b3ItPnBvbGxlZCAmIERSTV9DT05ORUNUT1Jf UE9MTF9IUEQpIHsKLQkJc3Bpbl9sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKKwkJc3Bp bl9sb2NrX2lycSgmZGV2X3ByaXYtPmlycS5sb2NrKTsKIAkJaTkxNV9kaXNhYmxlX3BpcGVzdGF0 KGRldl9wcml2LCAwLAogCQkJCSAgICAgIFBJUEVfSE9UUExVR19JTlRFUlJVUFRfU1RBVFVTIHwK IAkJCQkgICAgICBQSVBFX0hPVFBMVUdfVFZfSU5URVJSVVBUX1NUQVRVUyk7Ci0JCXNwaW5fdW5s b2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKKwkJc3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJp di0+aXJxLmxvY2spOwogCX0KIAogCXNhdmVfdHZfZGFjID0gdHZfZGFjID0gSTkxNV9SRUFEKFRW X0RBQyk7CkBAIC0xNjQ2LDExICsxNjQ2LDExIEBAIGludGVsX3R2X2RldGVjdF90eXBlKHN0cnVj dCBpbnRlbF90diAqaW50ZWxfdHYsCiAKIAkvKiBSZXN0b3JlIGludGVycnVwdCBjb25maWcgKi8K IAlpZiAoY29ubmVjdG9yLT5wb2xsZWQgJiBEUk1fQ09OTkVDVE9SX1BPTExfSFBEKSB7Ci0JCXNw aW5fbG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7CisJCXNwaW5fbG9ja19pcnEoJmRldl9w cml2LT5pcnEubG9jayk7CiAJCWk5MTVfZW5hYmxlX3BpcGVzdGF0KGRldl9wcml2LCAwLAogCQkJ CSAgICAgUElQRV9IT1RQTFVHX0lOVEVSUlVQVF9TVEFUVVMgfAogCQkJCSAgICAgUElQRV9IT1RQ TFVHX1RWX0lOVEVSUlVQVF9TVEFUVVMpOwotCQlzcGluX3VubG9ja19pcnEoJmRldl9wcml2LT5p cnFfbG9jayk7CisJCXNwaW5fdW5sb2NrX2lycSgmZGV2X3ByaXYtPmlycS5sb2NrKTsKIAl9CiAK IAlyZXR1cm4gdHlwZTsKLS0gCjIuMjAuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4