From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville Syrjala Subject: [PATCH 2/3] drm/i915: Nuke drm_driver irq vfuncs Date: Tue, 18 Jun 2019 17:21:07 +0300 Message-ID: <20190618142108.9978-3-ville.syrjala@linux.intel.com> References: <20190618142108.9978-1-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id F15856E1D8 for ; Tue, 18 Jun 2019 14:21:17 +0000 (UTC) In-Reply-To: <20190618142108.9978-1-ville.syrjala@linux.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 RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KClN0 b3AgdXNpbmcgdGhlIGlycSB2ZnVuY3MgdW5kZXIgZHJtX2RyaXZlci4gVGhhdCdzIG5vdCBnb2lu ZyB0byBmbHkKaW4gYSBtaXhlZCBnZW4gZW52aXJvbm1lbnQgc2luY2UgdGhlIHN0cnVjdHVyZSBp cyBzaGFyZWQgYmV0d2VlbiBhbGwKdGhlIGRldmljZXMuCgpTaWduZWQtb2ZmLWJ5OiBWaWxsZSBT eXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmMgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf aXJxLmMgfCAyODAgKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KIDIgZmlsZXMgY2hh bmdlZCwgMTQwIGluc2VydGlvbnMoKyksIDE0MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuYwppbmRleCBmNjJlMzM5N2Q5MzYuLmVhNmIwNjEwOWQ1YSAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5jCkBAIC03NTQsNyArNzU0LDcgQEAgc3RhdGljIGludCBpOTE1X2xvYWRfbW9kZXNl dF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiBjbGVhbnVwX21vZGVzZXQ6CiAJaW50ZWxf bW9kZXNldF9jbGVhbnVwKGRldik7CiBjbGVhbnVwX2lycToKLQlkcm1faXJxX3VuaW5zdGFsbChk ZXYpOworCWludGVsX2lycV91bmluc3RhbGwoZGV2X3ByaXYpOwogCWludGVsX2dtYnVzX3RlYXJk b3duKGRldl9wcml2KTsKIGNsZWFudXBfY3NyOgogCWludGVsX2Nzcl91Y29kZV9maW5pKGRldl9w cml2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCmluZGV4IDRmYmU4ZDkwOTUwYS4uZTllMjllZWQ4 MDA1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKQEAgLTIxODcsOCArMjE4Nyw3IEBAIHN0YXRp YyB2b2lkIGk5eHhfaHBkX2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKIAogc3RhdGljIGlycXJldHVybl90IHZhbGxleXZpZXdfaXJxX2hhbmRsZXIoaW50IGly cSwgdm9pZCAqYXJnKQogewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBhcmc7Ci0Jc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOworCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGFyZzsKIAlpcnFyZXR1cm5fdCByZXQgPSBJUlFfTk9O RTsKIAogCWlmICghaW50ZWxfaXJxc19lbmFibGVkKGRldl9wcml2KSkKQEAgLTIyNzMsOCArMjI3 Miw3IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCB2YWxsZXl2aWV3X2lycV9oYW5kbGVyKGludCBpcnEs IHZvaWQgKmFyZykKIAogc3RhdGljIGlycXJldHVybl90IGNoZXJyeXZpZXdfaXJxX2hhbmRsZXIo aW50IGlycSwgdm9pZCAqYXJnKQogewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBhcmc7Ci0J c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOworCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGFyZzsKIAlpcnFyZXR1cm5fdCByZXQgPSBJ UlFfTk9ORTsKIAogCWlmICghaW50ZWxfaXJxc19lbmFibGVkKGRldl9wcml2KSkKQEAgLTI2OTMs OCArMjY5MSw3IEBAIHN0YXRpYyB2b2lkIGl2Yl9kaXNwbGF5X2lycV9oYW5kbGVyKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKICAqLwogc3RhdGljIGlycXJldHVybl90IGlyb25s YWtlX2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZykKIHsKLQlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gYXJnOwotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBhcmc7CiAJdTMy IGRlX2lpciwgZ3RfaWlyLCBkZV9pZXIsIHNkZV9pZXIgPSAwOwogCWlycXJldHVybl90IHJldCA9 IElSUV9OT05FOwogCkBAIC0zMDA0LDcgKzMwMDEsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZ2Vu OF9tYXN0ZXJfaW50cl9lbmFibGUodm9pZCBfX2lvbWVtICogY29uc3QgcmVncykKIAogc3RhdGlj IGlycXJldHVybl90IGdlbjhfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqYXJnKQogewotCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoYXJnKTsKKwlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBhcmc7CiAJdm9pZCBfX2lvbWVtICogY29uc3Qg cmVncyA9IGRldl9wcml2LT51bmNvcmUucmVnczsKIAl1MzIgbWFzdGVyX2N0bDsKIAl1MzIgZ3Rf aWlyWzRdOwpAQCAtMzIwMyw3ICszMjAwLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGdlbjExX21h c3Rlcl9pbnRyX2VuYWJsZSh2b2lkIF9faW9tZW0gKiBjb25zdCByZWdzKQogCiBzdGF0aWMgaXJx cmV0dXJuX3QgZ2VuMTFfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqYXJnKQogewotCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICogY29uc3QgaTkxNSA9IHRvX2k5MTUoYXJnKTsKKwlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqIGNvbnN0IGk5MTUgPSBhcmc7CiAJdm9pZCBfX2lvbWVtICogY29u c3QgcmVncyA9IGk5MTUtPnVuY29yZS5yZWdzOwogCXUzMiBtYXN0ZXJfY3RsOwogCXUzMiBndV9t aXNjX2lpcjsKQEAgLTM0NTcsMTAgKzM0NTQsOCBAQCBzdGF0aWMgdm9pZCBpYnhfaXJxX3Jlc2V0 KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKICAqCiAgKiBUaGlzIGZ1bmN0aW9u IG5lZWRzIHRvIGJlIGNhbGxlZCBiZWZvcmUgaW50ZXJydXB0cyBhcmUgZW5hYmxlZC4KICAqLwot c3RhdGljIHZvaWQgaWJ4X2lycV9wcmVfcG9zdGluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKmRl dikKK3N0YXRpYyB2b2lkIGlieF9pcnFfcHJlX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGRldik7Ci0KIAlpZiAoSEFTX1BDSF9OT1AoZGV2X3ByaXYpKQogCQlyZXR1cm47 CiAKQEAgLTM1MjksOSArMzUyNCw4IEBAIHN0YXRpYyB2b2lkIHZsdl9kaXNwbGF5X2lycV9wb3N0 aW5zdGFsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAKIC8qIGRybV9kbWEu aCBob29rcwogKi8KLXN0YXRpYyB2b2lkIGlyb25sYWtlX2lycV9yZXNldChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQorc3RhdGljIHZvaWQgaXJvbmxha2VfaXJxX3Jlc2V0KHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGRldik7CiAJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gJmRldl9w cml2LT51bmNvcmU7CiAKIAlHRU4zX0lSUV9SRVNFVCh1bmNvcmUsIERFKTsKQEAgLTM1NDgsMTAg KzM1NDIsOCBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV9pcnFfcmVzZXQoc3RydWN0IGRybV9kZXZp Y2UgKmRldikKIAlpYnhfaXJxX3Jlc2V0KGRldl9wcml2KTsKIH0KIAotc3RhdGljIHZvaWQgdmFs bGV5dmlld19pcnFfcmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3N0YXRpYyB2b2lkIHZh bGxleXZpZXdfaXJxX3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsK LQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Ci0KIAlJ OTE1X1dSSVRFKFZMVl9NQVNURVJfSUVSLCAwKTsKIAlQT1NUSU5HX1JFQUQoVkxWX01BU1RFUl9J RVIpOwogCkBAIC0zNTczLDkgKzM1NjUsOCBAQCBzdGF0aWMgdm9pZCBnZW44X2d0X2lycV9yZXNl dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJR0VOOF9JUlFfUkVTRVRfTkRY KHVuY29yZSwgR1QsIDMpOwogfQogCi1zdGF0aWMgdm9pZCBnZW44X2lycV9yZXNldChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KQorc3RhdGljIHZvaWQgZ2VuOF9pcnFfcmVzZXQoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSAmZGV2 X3ByaXYtPnVuY29yZTsKIAlpbnQgcGlwZTsKIApAQCAtMzYxOCw5ICszNjA5LDggQEAgc3RhdGlj IHZvaWQgZ2VuMTFfZ3RfaXJxX3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKIAlJOTE1X1dSSVRFKEdFTjExX0dVQ19TR19JTlRSX01BU0ssICB+MCk7CiB9CiAKLXN0YXRp YyB2b2lkIGdlbjExX2lycV9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQorc3RhdGljIHZv aWQgZ2VuMTFfaXJxX3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsK LQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwog CXN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSA9ICZkZXZfcHJpdi0+dW5jb3JlOwogCWludCBw aXBlOwogCkBAIC0zNjkzLDkgKzM2ODMsOCBAQCB2b2lkIGdlbjhfaXJxX3Bvd2VyX3dlbGxfcHJl X2Rpc2FibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCXN5bmNocm9uaXpl X2lycShkZXZfcHJpdi0+ZHJtLmlycSk7CiB9CiAKLXN0YXRpYyB2b2lkIGNoZXJyeXZpZXdfaXJx X3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCitzdGF0aWMgdm9pZCBjaGVycnl2aWV3X2ly cV9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXN0cnVjdCBpbnRlbF91 bmNvcmUgKnVuY29yZSA9ICZkZXZfcHJpdi0+dW5jb3JlOwogCiAJSTkxNV9XUklURShHRU44X01B U1RFUl9JUlEsIDApOwpAQCAtMzk2MCw5ICszOTQ5LDggQEAgc3RhdGljIHZvaWQgYnh0X2hwZF9p cnFfc2V0dXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCV9fYnh0X2hwZF9k ZXRlY3Rpb25fc2V0dXAoZGV2X3ByaXYsIGVuYWJsZWRfaXJxcyk7CiB9CiAKLXN0YXRpYyB2b2lk IGlieF9pcnFfcG9zdGluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3N0YXRpYyB2b2lk IGlieF9pcnFfcG9zdGluc3RhbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQog ewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAl1 MzIgbWFzazsKIAogCWlmIChIQVNfUENIX05PUChkZXZfcHJpdikpCkBAIC0zOTg1LDkgKzM5NzMs OCBAQCBzdGF0aWMgdm9pZCBpYnhfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCiAJCXNwdF9ocGRfZGV0ZWN0aW9uX3NldHVwKGRldl9wcml2KTsKIH0KIAotc3RhdGljIHZv aWQgZ2VuNV9ndF9pcnFfcG9zdGluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3N0YXRp YyB2b2lkIGdlbjVfZ3RfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGRldik7CiAJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gJmRldl9wcml2LT51bmNvcmU7 CiAJdTMyIHBtX2lycXMsIGd0X2lycXM7CiAKQEAgLTQwMjQsOSArNDAxMSw4IEBAIHN0YXRpYyB2 b2lkIGdlbjVfZ3RfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJfQog fQogCi1zdGF0aWMgaW50IGlyb25sYWtlX2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQorc3RhdGljIHZvaWQgaXJvbmxha2VfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGRldik7CiAJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gJmRl dl9wcml2LT51bmNvcmU7CiAJdTMyIGRpc3BsYXlfbWFzaywgZXh0cmFfbWFzazsKIApAQCAtNDA1 MywxNiArNDAzOSwxNiBAQCBzdGF0aWMgaW50IGlyb25sYWtlX2lycV9wb3N0aW5zdGFsbChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KQogCiAJZGV2X3ByaXYtPmlycV9tYXNrID0gfmRpc3BsYXlfbWFz azsKIAotCWlieF9pcnFfcHJlX3Bvc3RpbnN0YWxsKGRldik7CisJaWJ4X2lycV9wcmVfcG9zdGlu c3RhbGwoZGV2X3ByaXYpOwogCiAJR0VOM19JUlFfSU5JVCh1bmNvcmUsIERFLCBkZXZfcHJpdi0+ aXJxX21hc2ssCiAJCSAgICAgIGRpc3BsYXlfbWFzayB8IGV4dHJhX21hc2spOwogCi0JZ2VuNV9n dF9pcnFfcG9zdGluc3RhbGwoZGV2KTsKKwlnZW41X2d0X2lycV9wb3N0aW5zdGFsbChkZXZfcHJp dik7CiAKIAlpbGtfaHBkX2RldGVjdGlvbl9zZXR1cChkZXZfcHJpdik7CiAKLQlpYnhfaXJxX3Bv c3RpbnN0YWxsKGRldik7CisJaWJ4X2lycV9wb3N0aW5zdGFsbChkZXZfcHJpdik7CiAKIAlpZiAo SVNfSVJPTkxBS0VfTShkZXZfcHJpdikpIHsKIAkJLyogRW5hYmxlIFBDVSBldmVudCBpbnRlcnJ1 cHRzCkBAIC00MDc0LDggKzQwNjAsNiBAQCBzdGF0aWMgaW50IGlyb25sYWtlX2lycV9wb3N0aW5z dGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQlpbGtfZW5hYmxlX2Rpc3BsYXlfaXJxKGRl dl9wcml2LCBERV9QQ1VfRVZFTlQpOwogCQlzcGluX3VubG9ja19pcnEoJmRldl9wcml2LT5pcnFf bG9jayk7CiAJfQotCi0JcmV0dXJuIDA7CiB9CiAKIHZvaWQgdmFsbGV5dmlld19lbmFibGVfZGlz cGxheV9pcnFzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKQEAgLTQxMDcsMTEg KzQwOTEsOSBAQCB2b2lkIHZhbGxleXZpZXdfZGlzYWJsZV9kaXNwbGF5X2lycXMoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogfQogCiAKLXN0YXRpYyBpbnQgdmFsbGV5dmlld19p cnFfcG9zdGluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3N0YXRpYyB2b2lkIHZhbGxl eXZpZXdfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK IHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Ci0K LQlnZW41X2d0X2lycV9wb3N0aW5zdGFsbChkZXYpOworCWdlbjVfZ3RfaXJxX3Bvc3RpbnN0YWxs KGRldl9wcml2KTsKIAogCXNwaW5fbG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7CiAJaWYg KGRldl9wcml2LT5kaXNwbGF5X2lycXNfZW5hYmxlZCkKQEAgLTQxMjAsOCArNDEwMiw2IEBAIHN0 YXRpYyBpbnQgdmFsbGV5dmlld19pcnFfcG9zdGluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKmRl dikKIAogCUk5MTVfV1JJVEUoVkxWX01BU1RFUl9JRVIsIE1BU1RFUl9JTlRFUlJVUFRfRU5BQkxF KTsKIAlQT1NUSU5HX1JFQUQoVkxWX01BU1RFUl9JRVIpOwotCi0JcmV0dXJuIDA7CiB9CiAKIHN0 YXRpYyB2b2lkIGdlbjhfZ3RfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKQEAgLTQyMjgsMjIgKzQyMDgsMTggQEAgc3RhdGljIHZvaWQgZ2VuOF9kZV9p cnFfcG9zdGluc3RhbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCX0KIH0K IAotc3RhdGljIGludCBnZW44X2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQorc3RhdGljIHZvaWQgZ2VuOF9pcnFfcG9zdGluc3RhbGwoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoZGV2KTsKLQogCWlmIChIQVNfUENIX1NQTElUKGRldl9wcml2KSkKLQkJaWJ4X2lycV9w cmVfcG9zdGluc3RhbGwoZGV2KTsKKwkJaWJ4X2lycV9wcmVfcG9zdGluc3RhbGwoZGV2X3ByaXYp OwogCiAJZ2VuOF9ndF9pcnFfcG9zdGluc3RhbGwoZGV2X3ByaXYpOwogCWdlbjhfZGVfaXJxX3Bv c3RpbnN0YWxsKGRldl9wcml2KTsKIAogCWlmIChIQVNfUENIX1NQTElUKGRldl9wcml2KSkKLQkJ aWJ4X2lycV9wb3N0aW5zdGFsbChkZXYpOworCQlpYnhfaXJxX3Bvc3RpbnN0YWxsKGRldl9wcml2 KTsKIAogCWdlbjhfbWFzdGVyX2ludHJfZW5hYmxlKGRldl9wcml2LT51bmNvcmUucmVncyk7Ci0K LQlyZXR1cm4gMDsKIH0KIAogc3RhdGljIHZvaWQgZ2VuMTFfZ3RfaXJxX3Bvc3RpbnN0YWxsKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKQEAgLTQyNzcsOSArNDI1Myw4IEBAIHN0 YXRpYyB2b2lkIGdlbjExX2d0X2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCiAJSTkxNV9XUklURShHRU4xMV9HVUNfU0dfSU5UUl9NQVNLLCAgfjApOwog fQogCi1zdGF0aWMgdm9pZCBpY3BfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCitzdGF0aWMgdm9pZCBpY3BfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGRldik7CiAJdTMyIG1hc2sgPSBTREVfR01CVVNfSUNQOwogCiAJV0FSTl9PTihJOTE1 X1JFQUQoU0RFSUVSKSAhPSAwKTsKQEAgLTQyOTIsMTQgKzQyNjcsMTMgQEAgc3RhdGljIHZvaWQg aWNwX2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCWljcF9ocGRfZGV0 ZWN0aW9uX3NldHVwKGRldl9wcml2KTsKIH0KIAotc3RhdGljIGludCBnZW4xMV9pcnFfcG9zdGlu c3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3N0YXRpYyB2b2lkIGdlbjExX2lycV9wb3N0 aW5zdGFsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgaW50 ZWxfdW5jb3JlICp1bmNvcmUgPSAmZGV2X3ByaXYtPnVuY29yZTsKIAl1MzIgZ3VfbWlzY19tYXNr ZWQgPSBHRU4xMV9HVV9NSVNDX0dTRTsKIAogCWlmIChJTlRFTF9QQ0hfVFlQRShkZXZfcHJpdikg Pj0gUENIX0lDUCkKLQkJaWNwX2lycV9wb3N0aW5zdGFsbChkZXYpOworCQlpY3BfaXJxX3Bvc3Rp bnN0YWxsKGRldl9wcml2KTsKIAogCWdlbjExX2d0X2lycV9wb3N0aW5zdGFsbChkZXZfcHJpdik7 CiAJZ2VuOF9kZV9pcnFfcG9zdGluc3RhbGwoZGV2X3ByaXYpOwpAQCAtNDMxMCwxNCArNDI4NCwx MCBAQCBzdGF0aWMgaW50IGdlbjExX2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQogCiAJZ2VuMTFfbWFzdGVyX2ludHJfZW5hYmxlKGRldl9wcml2LT51bmNvcmUucmVncyk7 CiAJUE9TVElOR19SRUFEKEdFTjExX0dGWF9NU1RSX0lSUSk7Ci0KLQlyZXR1cm4gMDsKIH0KIAot c3RhdGljIGludCBjaGVycnl2aWV3X2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQorc3RhdGljIHZvaWQgY2hlcnJ5dmlld19pcnFfcG9zdGluc3RhbGwoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoZGV2KTsKLQogCWdlbjhfZ3RfaXJxX3Bvc3RpbnN0YWxsKGRldl9wcml2 KTsKIAogCXNwaW5fbG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7CkBAIC00MzI3LDEzICs0 Mjk3LDEwIEBAIHN0YXRpYyBpbnQgY2hlcnJ5dmlld19pcnFfcG9zdGluc3RhbGwoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKIAogCUk5MTVfV1JJVEUoR0VOOF9NQVNURVJfSVJRLCBHRU44X01BU1RF Ul9JUlFfQ09OVFJPTCk7CiAJUE9TVElOR19SRUFEKEdFTjhfTUFTVEVSX0lSUSk7Ci0KLQlyZXR1 cm4gMDsKIH0KIAotc3RhdGljIHZvaWQgaTh4eF9pcnFfcmVzZXQoc3RydWN0IGRybV9kZXZpY2Ug KmRldikKK3N0YXRpYyB2b2lkIGk4eHhfaXJxX3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGRldik7CiAJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gJmRldl9wcml2LT51bmNv cmU7CiAKIAlpOXh4X3BpcGVzdGF0X2lycV9yZXNldChkZXZfcHJpdik7CkBAIC00MzQxLDkgKzQz MDgsOCBAQCBzdGF0aWMgdm9pZCBpOHh4X2lycV9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQogCUdFTjJfSVJRX1JFU0VUKHVuY29yZSk7CiB9CiAKLXN0YXRpYyBpbnQgaTh4eF9pcnFfcG9z dGluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3N0YXRpYyB2b2lkIGk4eHhfaXJxX3Bv c3RpbnN0YWxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAJc3RydWN0IGludGVs X3VuY29yZSAqdW5jb3JlID0gJmRldl9wcml2LT51bmNvcmU7CiAJdTE2IGVuYWJsZV9tYXNrOwog CkBAIC00MzcyLDggKzQzMzgsNiBAQCBzdGF0aWMgaW50IGk4eHhfaXJxX3Bvc3RpbnN0YWxsKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJaTkxNV9lbmFibGVfcGlwZXN0YXQoZGV2X3ByaXYsIFBJ UEVfQSwgUElQRV9DUkNfRE9ORV9JTlRFUlJVUFRfU1RBVFVTKTsKIAlpOTE1X2VuYWJsZV9waXBl c3RhdChkZXZfcHJpdiwgUElQRV9CLCBQSVBFX0NSQ19ET05FX0lOVEVSUlVQVF9TVEFUVVMpOwog CXNwaW5fdW5sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKLQotCXJldHVybiAwOwogfQog CiBzdGF0aWMgdm9pZCBpOHh4X2Vycm9yX2lycV9hY2soc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg Kmk5MTUsCkBAIC00NDU0LDggKzQ0MTgsNyBAQCBzdGF0aWMgdm9pZCBpOXh4X2Vycm9yX2lycV9o YW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAogc3RhdGljIGlycXJl dHVybl90IGk4eHhfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqYXJnKQogewotCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBhcmc7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShkZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGFy ZzsKIAlpcnFyZXR1cm5fdCByZXQgPSBJUlFfTk9ORTsKIAogCWlmICghaW50ZWxfaXJxc19lbmFi bGVkKGRldl9wcml2KSkKQEAgLTQ0OTgsOSArNDQ2MSw4IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBp OHh4X2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZykKIAlyZXR1cm4gcmV0OwogfQogCi1z dGF0aWMgdm9pZCBpOTE1X2lycV9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQorc3RhdGlj IHZvaWQgaTkxNV9pcnFfcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQog ewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlz dHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSAmZGV2X3ByaXYtPnVuY29yZTsKIAogCWlmIChJ OTE1X0hBU19IT1RQTFVHKGRldl9wcml2KSkgewpAQCAtNDUxMyw5ICs0NDc1LDggQEAgc3RhdGlj IHZvaWQgaTkxNV9pcnFfcmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlHRU4zX0lSUV9S RVNFVCh1bmNvcmUsIEdFTjJfKTsKIH0KIAotc3RhdGljIGludCBpOTE1X2lycV9wb3N0aW5zdGFs bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQorc3RhdGljIHZvaWQgaTkxNV9pcnFfcG9zdGluc3Rh bGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewotCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfdW5jb3Jl ICp1bmNvcmUgPSAmZGV2X3ByaXYtPnVuY29yZTsKIAl1MzIgZW5hYmxlX21hc2s7CiAKQEAgLTQ1 NTMsMTQgKzQ1MTQsMTEgQEAgc3RhdGljIGludCBpOTE1X2lycV9wb3N0aW5zdGFsbChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KQogCXNwaW5fdW5sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsK IAogCWk5MTVfZW5hYmxlX2FzbGVfcGlwZXN0YXQoZGV2X3ByaXYpOwotCi0JcmV0dXJuIDA7CiB9 CiAKIHN0YXRpYyBpcnFyZXR1cm5fdCBpOTE1X2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFy ZykKIHsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gYXJnOwotCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSBhcmc7CiAJaXJxcmV0dXJuX3QgcmV0ID0gSVJRX05PTkU7CiAKIAlpZiAo IWludGVsX2lycXNfZW5hYmxlZChkZXZfcHJpdikpCkBAIC00NjExLDkgKzQ1NjksOCBAQCBzdGF0 aWMgaXJxcmV0dXJuX3QgaTkxNV9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICphcmcpCiAJcmV0 dXJuIHJldDsKIH0KIAotc3RhdGljIHZvaWQgaTk2NV9pcnFfcmVzZXQoc3RydWN0IGRybV9kZXZp Y2UgKmRldikKK3N0YXRpYyB2b2lkIGk5NjVfaXJxX3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGRldik7CiAJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gJmRldl9wcml2LT51 bmNvcmU7CiAKIAlpOTE1X2hvdHBsdWdfaW50ZXJydXB0X3VwZGF0ZShkZXZfcHJpdiwgMHhmZmZm ZmZmZiwgMCk7CkBAIC00NjI0LDkgKzQ1ODEsOCBAQCBzdGF0aWMgdm9pZCBpOTY1X2lycV9yZXNl dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCUdFTjNfSVJRX1JFU0VUKHVuY29yZSwgR0VOMl8p OwogfQogCi1zdGF0aWMgaW50IGk5NjVfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpCitzdGF0aWMgdm9pZCBpOTY1X2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShkZXYpOwogCXN0cnVjdCBpbnRlbF91bmNvcmUgKnVuY29yZSA9ICZkZXZfcHJp di0+dW5jb3JlOwogCXUzMiBlbmFibGVfbWFzazsKIAl1MzIgZXJyb3JfbWFzazsKQEAgLTQ2NzYs OCArNDYzMiw2IEBAIHN0YXRpYyBpbnQgaTk2NV9pcnFfcG9zdGluc3RhbGwoc3RydWN0IGRybV9k ZXZpY2UgKmRldikKIAlzcGluX3VubG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7CiAKIAlp OTE1X2VuYWJsZV9hc2xlX3BpcGVzdGF0KGRldl9wcml2KTsKLQotCXJldHVybiAwOwogfQogCiBz dGF0aWMgdm9pZCBpOTE1X2hwZF9pcnFfc2V0dXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQpAQCAtNDcwNyw4ICs0NjYxLDcgQEAgc3RhdGljIHZvaWQgaTkxNV9ocGRfaXJxX3Nl dHVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAogc3RhdGljIGlycXJldHVy bl90IGk5NjVfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqYXJnKQogewotCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBhcmc7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShkZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGFyZzsK IAlpcnFyZXR1cm5fdCByZXQgPSBJUlFfTk9ORTsKIAogCWlmICghaW50ZWxfaXJxc19lbmFibGVk KGRldl9wcml2KSkKQEAgLTQ4MzksNjUgKzQ3OTIsMTggQEAgdm9pZCBpbnRlbF9pcnFfaW5pdChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJZGV2LT5kcml2ZXItPmdldF92Ymxh bmtfdGltZXN0YW1wID0gZHJtX2NhbGNfdmJsdGltZXN0YW1wX2Zyb21fc2Nhbm91dHBvczsKIAlk ZXYtPmRyaXZlci0+Z2V0X3NjYW5vdXRfcG9zaXRpb24gPSBpOTE1X2dldF9jcnRjX3NjYW5vdXRw b3M7CiAKLQlpZiAoSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpIHsKLQkJZGV2LT5kcml2ZXItPmly cV9oYW5kbGVyID0gY2hlcnJ5dmlld19pcnFfaGFuZGxlcjsKLQkJZGV2LT5kcml2ZXItPmlycV9w cmVpbnN0YWxsID0gY2hlcnJ5dmlld19pcnFfcmVzZXQ7Ci0JCWRldi0+ZHJpdmVyLT5pcnFfcG9z dGluc3RhbGwgPSBjaGVycnl2aWV3X2lycV9wb3N0aW5zdGFsbDsKLQkJZGV2LT5kcml2ZXItPmly cV91bmluc3RhbGwgPSBjaGVycnl2aWV3X2lycV9yZXNldDsKLQkJZGV2X3ByaXYtPmRpc3BsYXku aHBkX2lycV9zZXR1cCA9IGk5MTVfaHBkX2lycV9zZXR1cDsKLQl9IGVsc2UgaWYgKElTX1ZBTExF WVZJRVcoZGV2X3ByaXYpKSB7Ci0JCWRldi0+ZHJpdmVyLT5pcnFfaGFuZGxlciA9IHZhbGxleXZp ZXdfaXJxX2hhbmRsZXI7Ci0JCWRldi0+ZHJpdmVyLT5pcnFfcHJlaW5zdGFsbCA9IHZhbGxleXZp ZXdfaXJxX3Jlc2V0OwotCQlkZXYtPmRyaXZlci0+aXJxX3Bvc3RpbnN0YWxsID0gdmFsbGV5dmll d19pcnFfcG9zdGluc3RhbGw7Ci0JCWRldi0+ZHJpdmVyLT5pcnFfdW5pbnN0YWxsID0gdmFsbGV5 dmlld19pcnFfcmVzZXQ7Ci0JCWRldl9wcml2LT5kaXNwbGF5LmhwZF9pcnFfc2V0dXAgPSBpOTE1 X2hwZF9pcnFfc2V0dXA7Ci0JfSBlbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExKSB7 Ci0JCWRldi0+ZHJpdmVyLT5pcnFfaGFuZGxlciA9IGdlbjExX2lycV9oYW5kbGVyOwotCQlkZXYt PmRyaXZlci0+aXJxX3ByZWluc3RhbGwgPSBnZW4xMV9pcnFfcmVzZXQ7Ci0JCWRldi0+ZHJpdmVy LT5pcnFfcG9zdGluc3RhbGwgPSBnZW4xMV9pcnFfcG9zdGluc3RhbGw7Ci0JCWRldi0+ZHJpdmVy LT5pcnFfdW5pbnN0YWxsID0gZ2VuMTFfaXJxX3Jlc2V0OwotCQlkZXZfcHJpdi0+ZGlzcGxheS5o cGRfaXJxX3NldHVwID0gZ2VuMTFfaHBkX2lycV9zZXR1cDsKLQl9IGVsc2UgaWYgKElOVEVMX0dF TihkZXZfcHJpdikgPj0gOCkgewotCQlkZXYtPmRyaXZlci0+aXJxX2hhbmRsZXIgPSBnZW44X2ly cV9oYW5kbGVyOwotCQlkZXYtPmRyaXZlci0+aXJxX3ByZWluc3RhbGwgPSBnZW44X2lycV9yZXNl dDsKLQkJZGV2LT5kcml2ZXItPmlycV9wb3N0aW5zdGFsbCA9IGdlbjhfaXJxX3Bvc3RpbnN0YWxs OwotCQlkZXYtPmRyaXZlci0+aXJxX3VuaW5zdGFsbCA9IGdlbjhfaXJxX3Jlc2V0OwotCQlpZiAo SVNfR0VOOV9MUChkZXZfcHJpdikpCisJaWYgKEhBU19HTUNIKGRldl9wcml2KSkgeworCQlpZiAo STkxNV9IQVNfSE9UUExVRyhkZXZfcHJpdikpCisJCQlkZXZfcHJpdi0+ZGlzcGxheS5ocGRfaXJx X3NldHVwID0gaTkxNV9ocGRfaXJxX3NldHVwOworCX0gZWxzZSB7CisJCWlmIChJTlRFTF9HRU4o ZGV2X3ByaXYpID49IDExKQorCQkJZGV2X3ByaXYtPmRpc3BsYXkuaHBkX2lycV9zZXR1cCA9IGdl bjExX2hwZF9pcnFfc2V0dXA7CisJCWVsc2UgaWYgKElTX0dFTjlfTFAoZGV2X3ByaXYpKQogCQkJ ZGV2X3ByaXYtPmRpc3BsYXkuaHBkX2lycV9zZXR1cCA9IGJ4dF9ocGRfaXJxX3NldHVwOwogCQll bHNlIGlmIChJTlRFTF9QQ0hfVFlQRShkZXZfcHJpdikgPj0gUENIX1NQVCkKIAkJCWRldl9wcml2 LT5kaXNwbGF5LmhwZF9pcnFfc2V0dXAgPSBzcHRfaHBkX2lycV9zZXR1cDsKIAkJZWxzZQogCQkJ ZGV2X3ByaXYtPmRpc3BsYXkuaHBkX2lycV9zZXR1cCA9IGlsa19ocGRfaXJxX3NldHVwOwotCX0g ZWxzZSBpZiAoSEFTX1BDSF9TUExJVChkZXZfcHJpdikpIHsKLQkJZGV2LT5kcml2ZXItPmlycV9o YW5kbGVyID0gaXJvbmxha2VfaXJxX2hhbmRsZXI7Ci0JCWRldi0+ZHJpdmVyLT5pcnFfcHJlaW5z dGFsbCA9IGlyb25sYWtlX2lycV9yZXNldDsKLQkJZGV2LT5kcml2ZXItPmlycV9wb3N0aW5zdGFs bCA9IGlyb25sYWtlX2lycV9wb3N0aW5zdGFsbDsKLQkJZGV2LT5kcml2ZXItPmlycV91bmluc3Rh bGwgPSBpcm9ubGFrZV9pcnFfcmVzZXQ7Ci0JCWRldl9wcml2LT5kaXNwbGF5LmhwZF9pcnFfc2V0 dXAgPSBpbGtfaHBkX2lycV9zZXR1cDsKLQl9IGVsc2UgewotCQlpZiAoSVNfR0VOKGRldl9wcml2 LCAyKSkgewotCQkJZGV2LT5kcml2ZXItPmlycV9wcmVpbnN0YWxsID0gaTh4eF9pcnFfcmVzZXQ7 Ci0JCQlkZXYtPmRyaXZlci0+aXJxX3Bvc3RpbnN0YWxsID0gaTh4eF9pcnFfcG9zdGluc3RhbGw7 Ci0JCQlkZXYtPmRyaXZlci0+aXJxX2hhbmRsZXIgPSBpOHh4X2lycV9oYW5kbGVyOwotCQkJZGV2 LT5kcml2ZXItPmlycV91bmluc3RhbGwgPSBpOHh4X2lycV9yZXNldDsKLQkJfSBlbHNlIGlmIChJ U19JOTQ1R00oZGV2X3ByaXYpKSB7Ci0JCQlkZXYtPmRyaXZlci0+aXJxX3ByZWluc3RhbGwgPSBp OTE1X2lycV9yZXNldDsKLQkJCWRldi0+ZHJpdmVyLT5pcnFfcG9zdGluc3RhbGwgPSBpOTE1X2ly cV9wb3N0aW5zdGFsbDsKLQkJCWRldi0+ZHJpdmVyLT5pcnFfdW5pbnN0YWxsID0gaTkxNV9pcnFf cmVzZXQ7Ci0JCQlkZXYtPmRyaXZlci0+aXJxX2hhbmRsZXIgPSBpOTE1X2lycV9oYW5kbGVyOwot CQl9IGVsc2UgaWYgKElTX0dFTihkZXZfcHJpdiwgMykpIHsKLQkJCWRldi0+ZHJpdmVyLT5pcnFf cHJlaW5zdGFsbCA9IGk5MTVfaXJxX3Jlc2V0OwotCQkJZGV2LT5kcml2ZXItPmlycV9wb3N0aW5z dGFsbCA9IGk5MTVfaXJxX3Bvc3RpbnN0YWxsOwotCQkJZGV2LT5kcml2ZXItPmlycV91bmluc3Rh bGwgPSBpOTE1X2lycV9yZXNldDsKLQkJCWRldi0+ZHJpdmVyLT5pcnFfaGFuZGxlciA9IGk5MTVf aXJxX2hhbmRsZXI7Ci0JCX0gZWxzZSB7Ci0JCQlkZXYtPmRyaXZlci0+aXJxX3ByZWluc3RhbGwg PSBpOTY1X2lycV9yZXNldDsKLQkJCWRldi0+ZHJpdmVyLT5pcnFfcG9zdGluc3RhbGwgPSBpOTY1 X2lycV9wb3N0aW5zdGFsbDsKLQkJCWRldi0+ZHJpdmVyLT5pcnFfdW5pbnN0YWxsID0gaTk2NV9p cnFfcmVzZXQ7Ci0JCQlkZXYtPmRyaXZlci0+aXJxX2hhbmRsZXIgPSBpOTY1X2lycV9oYW5kbGVy OwotCQl9Ci0JCWlmIChJOTE1X0hBU19IT1RQTFVHKGRldl9wcml2KSkKLQkJCWRldl9wcml2LT5k aXNwbGF5LmhwZF9pcnFfc2V0dXAgPSBpOTE1X2hwZF9pcnFfc2V0dXA7CiAJfQogfQogCkBAIC00 OTE4LDYgKzQ4MjQsNzUgQEAgdm9pZCBpbnRlbF9pcnFfZmluaShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqaTkxNSkKIAkJa2ZyZWUoaTkxNS0+bDNfcGFyaXR5LnJlbWFwX2luZm9baV0pOwogfQog CitzdGF0aWMgaXJxX2hhbmRsZXJfdCBpbnRlbF9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCit7CisJaWYgKEhBU19HTUNIKGRldl9wcml2KSkgeworCQlpZiAo SVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpCisJCQlyZXR1cm4gY2hlcnJ5dmlld19pcnFfaGFuZGxl cjsKKwkJZWxzZSBpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikpCisJCQlyZXR1cm4gdmFsbGV5 dmlld19pcnFfaGFuZGxlcjsKKwkJZWxzZSBpZiAoSVNfR0VOKGRldl9wcml2LCA0KSkKKwkJCXJl dHVybiBpOTY1X2lycV9oYW5kbGVyOworCQllbHNlIGlmIChJU19HRU4oZGV2X3ByaXYsIDMpKQor CQkJcmV0dXJuIGk5MTVfaXJxX2hhbmRsZXI7CisJCWVsc2UKKwkJCXJldHVybiBpOHh4X2lycV9o YW5kbGVyOworCX0gZWxzZSB7CisJCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExKQorCQkJ cmV0dXJuIGdlbjExX2lycV9oYW5kbGVyOworCQllbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYp ID49IDgpCisJCQlyZXR1cm4gZ2VuOF9pcnFfaGFuZGxlcjsKKwkJZWxzZQorCQkJcmV0dXJuIGly b25sYWtlX2lycV9oYW5kbGVyOworCX0KK30KKworc3RhdGljIHZvaWQgaW50ZWxfaXJxX3Jlc2V0 KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3sKKwlpZiAoSEFTX0dNQ0goZGV2 X3ByaXYpKSB7CisJCWlmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSkKKwkJCWNoZXJyeXZpZXdf aXJxX3Jlc2V0KGRldl9wcml2KTsKKwkJZWxzZSBpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikp CisJCQl2YWxsZXl2aWV3X2lycV9yZXNldChkZXZfcHJpdik7CisJCWVsc2UgaWYgKElTX0dFTihk ZXZfcHJpdiwgNCkpCisJCQlpOTY1X2lycV9yZXNldChkZXZfcHJpdik7CisJCWVsc2UgaWYgKElT X0dFTihkZXZfcHJpdiwgMykpCisJCQlpOTE1X2lycV9yZXNldChkZXZfcHJpdik7CisJCWVsc2UK KwkJCWk4eHhfaXJxX3Jlc2V0KGRldl9wcml2KTsKKwl9IGVsc2UgeworCQlpZiAoSU5URUxfR0VO KGRldl9wcml2KSA+PSAxMSkKKwkJCWdlbjExX2lycV9yZXNldChkZXZfcHJpdik7CisJCWVsc2Ug aWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOCkKKwkJCWdlbjhfaXJxX3Jlc2V0KGRldl9wcml2 KTsKKwkJZWxzZQorCQkJaXJvbmxha2VfaXJxX3Jlc2V0KGRldl9wcml2KTsKKwl9Cit9CisKK3N0 YXRpYyB2b2lkIGludGVsX2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCit7CisJaWYgKEhBU19HTUNIKGRldl9wcml2KSkgeworCQlpZiAoSVNfQ0hFUlJZ VklFVyhkZXZfcHJpdikpCisJCQljaGVycnl2aWV3X2lycV9wb3N0aW5zdGFsbChkZXZfcHJpdik7 CisJCWVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpKQorCQkJdmFsbGV5dmlld19pcnFf cG9zdGluc3RhbGwoZGV2X3ByaXYpOworCQllbHNlIGlmIChJU19HRU4oZGV2X3ByaXYsIDQpKQor CQkJaTk2NV9pcnFfcG9zdGluc3RhbGwoZGV2X3ByaXYpOworCQllbHNlIGlmIChJU19HRU4oZGV2 X3ByaXYsIDMpKQorCQkJaTkxNV9pcnFfcG9zdGluc3RhbGwoZGV2X3ByaXYpOworCQllbHNlCisJ CQlpOHh4X2lycV9wb3N0aW5zdGFsbChkZXZfcHJpdik7CisJfSBlbHNlIHsKKwkJaWYgKElOVEVM X0dFTihkZXZfcHJpdikgPj0gMTEpCisJCQlnZW4xMV9pcnFfcG9zdGluc3RhbGwoZGV2X3ByaXYp OworCQllbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDgpCisJCQlnZW44X2lycV9wb3N0 aW5zdGFsbChkZXZfcHJpdik7CisJCWVsc2UKKwkJCWlyb25sYWtlX2lycV9wb3N0aW5zdGFsbChk ZXZfcHJpdik7CisJfQorfQorCiAvKioKICAqIGludGVsX2lycV9pbnN0YWxsIC0gZW5hYmxlcyB0 aGUgaGFyZHdhcmUgaW50ZXJydXB0CiAgKiBAZGV2X3ByaXY6IGk5MTUgZGV2aWNlIGluc3RhbmNl CkBAIC00OTMxLDYgKzQ5MDYsOSBAQCB2b2lkIGludGVsX2lycV9maW5pKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICppOTE1KQogICovCiBpbnQgaW50ZWxfaXJxX2luc3RhbGwoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQogeworCWludCBpcnEgPSBkZXZfcHJpdi0+ZHJtLnBkZXYt PmlycTsKKwlpbnQgcmV0OworCiAJLyoKIAkgKiBXZSBlbmFibGUgc29tZSBpbnRlcnJ1cHQgc291 cmNlcyBpbiBvdXIgcG9zdGluc3RhbGwgaG9va3MsIHNvIG1hcmsKIAkgKiBpbnRlcnJ1cHRzIGFz IGVuYWJsZWQgX2JlZm9yZV8gYWN0dWFsbHkgZW5hYmxpbmcgdGhlbSB0byBhdm9pZApAQCAtNDkz OCw3ICs0OTE2LDIwIEBAIGludCBpbnRlbF9pcnFfaW5zdGFsbChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpCiAJICovCiAJZGV2X3ByaXYtPnJ1bnRpbWVfcG0uaXJxc19lbmFibGVk ID0gdHJ1ZTsKIAotCXJldHVybiBkcm1faXJxX2luc3RhbGwoJmRldl9wcml2LT5kcm0sIGRldl9w cml2LT5kcm0ucGRldi0+aXJxKTsKKwlkZXZfcHJpdi0+ZHJtLmlycV9lbmFibGVkID0gdHJ1ZTsK KworCWludGVsX2lycV9yZXNldChkZXZfcHJpdik7CisKKwlyZXQgPSByZXF1ZXN0X2lycShpcnEs IGludGVsX2lycV9oYW5kbGVyKGRldl9wcml2KSwKKwkJCSAgSVJRRl9TSEFSRUQsIERSSVZFUl9O QU1FLCBkZXZfcHJpdik7CisJaWYgKHJldCA8IDApIHsKKwkJZGV2X3ByaXYtPmRybS5pcnFfZW5h YmxlZCA9IGZhbHNlOworCQlyZXR1cm4gcmV0OworCX0KKworCWludGVsX2lycV9wb3N0aW5zdGFs bChkZXZfcHJpdik7CisKKwlyZXR1cm4gcmV0OwogfQogCiAvKioKQEAgLTQ5NTAsNyArNDk0MSwx NCBAQCBpbnQgaW50ZWxfaXJxX2luc3RhbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQogICovCiB2b2lkIGludGVsX2lycV91bmluc3RhbGwoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQogewotCWRybV9pcnFfdW5pbnN0YWxsKCZkZXZfcHJpdi0+ZHJtKTsKKwlp bnQgaXJxID0gZGV2X3ByaXYtPmRybS5wZGV2LT5pcnE7CisKKwlkZXZfcHJpdi0+ZHJtLmlycV9l bmFibGVkID0gZmFsc2U7CisKKwlpbnRlbF9pcnFfcmVzZXQoZGV2X3ByaXYpOworCisJZnJlZV9p cnEoaXJxLCBkZXZfcHJpdik7CisKIAlpbnRlbF9ocGRfY2FuY2VsX3dvcmsoZGV2X3ByaXYpOwog CWRldl9wcml2LT5ydW50aW1lX3BtLmlycXNfZW5hYmxlZCA9IGZhbHNlOwogfQpAQCAtNDk2NCw3 ICs0OTYyLDcgQEAgdm9pZCBpbnRlbF9pcnFfdW5pbnN0YWxsKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKICAqLwogdm9pZCBpbnRlbF9ydW50aW1lX3BtX2Rpc2FibGVfaW50ZXJy dXB0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0JZGV2X3ByaXYtPmRy bS5kcml2ZXItPmlycV91bmluc3RhbGwoJmRldl9wcml2LT5kcm0pOworCWludGVsX2lycV9yZXNl dChkZXZfcHJpdik7CiAJZGV2X3ByaXYtPnJ1bnRpbWVfcG0uaXJxc19lbmFibGVkID0gZmFsc2U7 CiAJc3luY2hyb25pemVfaXJxKGRldl9wcml2LT5kcm0uaXJxKTsKIH0KQEAgLTQ5NzksNiArNDk3 Nyw2IEBAIHZvaWQgaW50ZWxfcnVudGltZV9wbV9kaXNhYmxlX2ludGVycnVwdHMoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogdm9pZCBpbnRlbF9ydW50aW1lX3BtX2VuYWJsZV9p bnRlcnJ1cHRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKIAlkZXZfcHJp di0+cnVudGltZV9wbS5pcnFzX2VuYWJsZWQgPSB0cnVlOwotCWRldl9wcml2LT5kcm0uZHJpdmVy LT5pcnFfcHJlaW5zdGFsbCgmZGV2X3ByaXYtPmRybSk7Ci0JZGV2X3ByaXYtPmRybS5kcml2ZXIt PmlycV9wb3N0aW5zdGFsbCgmZGV2X3ByaXYtPmRybSk7CisJaW50ZWxfaXJxX3Jlc2V0KGRldl9w cml2KTsKKwlpbnRlbF9pcnFfcG9zdGluc3RhbGwoZGV2X3ByaXYpOwogfQotLSAKMi4yMS4wCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZngg bWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=