From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Weinehall Subject: [REBASED PATCH RESEND 4/5 v2] drm/i915: pdev cleanup Date: Mon, 22 Aug 2016 13:32:44 +0300 Message-ID: <20160822103245.24069-5-david.weinehall@linux.intel.com> References: <20160822103245.24069-1-david.weinehall@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4A6BE6E41D for ; Mon, 22 Aug 2016 10:41:59 +0000 (UTC) In-Reply-To: <20160822103245.24069-1-david.weinehall@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 SW4gYW4gZWZmb3J0IHRvIHNpbXBsaWZ5IHRoaW5ncyBmb3IgYSBmdXR1cmUgcHVzaCBvZiBkZXZf cHJpdiBpbnN0ZWFkCm9mIGRldiB3aGVyZXZlciBwb3NzaWJsZSwgYWx3YXlzIHRha2UgcGRldiB2 aWEgZGV2X3ByaXYgd2hlcmUKZmVhc2libGUsIGVsaW1pbmF0aW5nIHRoZSBkaXJlY3QgYWNjZXNz IGZyb20gZGV2LiBSaWdodCBub3cgdGhpcwpvbmx5IGVsaW1pbmF0ZXMgYSBmZXcgY2FzZXMgb2Yg ZGV2LCBidXQgaXQgYWxzbyBvYnZpYXRlcyB0aGF0IHdlIHBhc3MKZGV2IGludG8gYSBsb3Qgb2Yg ZnVuY3Rpb25zIHdoZXJlIGRldl9wcml2IHdvdWxkIGJlIHRoZSBtb3JlIG9idmlvdXMKY2hvaWNl LgoKdjI6IEZpeGVkIG9uZSBtb3JlIHBsYWNlIG1pc3NpbmcgaW4gdGhlIHByZXZpb3VzIHBhdGNo IHNldAoKU2lnbmVkLW9mZi1ieTogRGF2aWQgV2VpbmVoYWxsIDxkYXZpZC53ZWluZWhhbGxAbGlu dXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jICAg ICB8ICA1ICstLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyAgICAgICAgIHwgNTkg KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9ndHQuYyAgICAgfCAxMCArKystLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX3N0b2xlbi5jICB8IDE5ICsrKysrKy0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dwdV9lcnJvci5jICAgfCAgOSArKy0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zdXNw ZW5kLmMgICAgIHwgIDYgKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j ICAgIHwgMjUgKysrKysrKysrLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiZGV2 LmMgICAgICB8ICAzICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMg fCAgMyArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaTJjLmMgICAgICAgIHwgIDMgKy0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYyB8IDMwICsrKysrKysrKy0t LS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zZHZvLmMgICAgICAgfCAgNCArKy0K IDEyIGZpbGVzIGNoYW5nZWQsIDEwMyBpbnNlcnRpb25zKCspLCA3MyBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCmluZGV4IGE5NWQ3YmM4MWZiOS4uNDY3NDhiNGZk YzJmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwpAQCAtMjczOSw2ICsyNzM5LDcg QEAgc3RhdGljIGludCBpOTE1X3J1bnRpbWVfcG1fc3RhdHVzKHN0cnVjdCBzZXFfZmlsZSAqbSwg dm9pZCAqdW51c2VkKQogCXN0cnVjdCBkcm1faW5mb19ub2RlICpub2RlID0gbS0+cHJpdmF0ZTsK IAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gbm9kZS0+bWlub3ItPmRldjsKIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CisJc3RydWN0IHBjaV9kZXYg KnBkZXYgPSBkZXZfcHJpdi0+ZHJtLnBkZXY7CiAKIAlpZiAoIUhBU19SVU5USU1FX1BNKGRldl9w cml2KSkKIAkJc2VxX3B1dHMobSwgIlJ1bnRpbWUgcG93ZXIgbWFuYWdlbWVudCBub3Qgc3VwcG9y dGVkXG4iKTsKQEAgLTI3NTMsOCArMjc1NCw4IEBAIHN0YXRpYyBpbnQgaTkxNV9ydW50aW1lX3Bt X3N0YXR1cyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKIAlzZXFfcHJpbnRmKG0s ICJEZXZpY2UgUG93ZXIgTWFuYWdlbWVudCAoQ09ORklHX1BNKSBkaXNhYmxlZFxuIik7CiAjZW5k aWYKIAlzZXFfcHJpbnRmKG0sICJQQ0kgZGV2aWNlIHBvd2VyIHN0YXRlOiAlcyBbJWRdXG4iLAot CQkgICBwY2lfcG93ZXJfbmFtZShkZXZfcHJpdi0+ZHJtLnBkZXYtPmN1cnJlbnRfc3RhdGUpLAot CQkgICBkZXZfcHJpdi0+ZHJtLnBkZXYtPmN1cnJlbnRfc3RhdGUpOworCQkgICBwY2lfcG93ZXJf bmFtZShwZGV2LT5jdXJyZW50X3N0YXRlKSwKKwkJICAgcGRldi0+Y3VycmVudF9zdGF0ZSk7CiAK IAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCmluZGV4IGMzMTYwMzRhZWRhMy4u ZDIyYTFkOGZlNWI3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKQEAgLTIzMiw2ICsyMzIsNyBA QCBzdGF0aWMgaW50IGk5MTVfZ2V0cGFyYW0oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAq ZGF0YSwKIAkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKIHsKIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CisJc3RydWN0IHBjaV9kZXYgKnBk ZXYgPSBkZXZfcHJpdi0+ZHJtLnBkZXY7CiAJZHJtX2k5MTVfZ2V0cGFyYW1fdCAqcGFyYW0gPSBk YXRhOwogCWludCB2YWx1ZTsKIApAQCAtMjQyLDEwICsyNDMsMTAgQEAgc3RhdGljIGludCBpOTE1 X2dldHBhcmFtKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCS8qIFJlamVj dCBhbGwgb2xkIHVtcy9kcmkgcGFyYW1zLiAqLwogCQlyZXR1cm4gLUVOT0RFVjsKIAljYXNlIEk5 MTVfUEFSQU1fQ0hJUFNFVF9JRDoKLQkJdmFsdWUgPSBkZXYtPnBkZXYtPmRldmljZTsKKwkJdmFs dWUgPSBwZGV2LT5kZXZpY2U7CiAJCWJyZWFrOwogCWNhc2UgSTkxNV9QQVJBTV9SRVZJU0lPTjoK LQkJdmFsdWUgPSBkZXYtPnBkZXYtPnJldmlzaW9uOworCQl2YWx1ZSA9IHBkZXYtPnJldmlzaW9u OwogCQlicmVhazsKIAljYXNlIEk5MTVfUEFSQU1fSEFTX0dFTToKIAkJdmFsdWUgPSAxOwpAQCAt NTE2LDcgKzUxNyw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfc3dpdGNoZXJvb19zZXRfc3RhdGUoc3Ry dWN0IHBjaV9kZXYgKnBkZXYsIGVudW0gdmdhX3N3aXRjaGVyb29fCiAJCXByX2luZm8oInN3aXRj aGVkIG9uXG4iKTsKIAkJZGV2LT5zd2l0Y2hfcG93ZXJfc3RhdGUgPSBEUk1fU1dJVENIX1BPV0VS X0NIQU5HSU5HOwogCQkvKiBpOTE1IHJlc3VtZSBoYW5kbGVyIGRvZXNuJ3Qgc2V0IHRvIEQwICov Ci0JCXBjaV9zZXRfcG93ZXJfc3RhdGUoZGV2LT5wZGV2LCBQQ0lfRDApOworCQlwY2lfc2V0X3Bv d2VyX3N0YXRlKHBkZXYsIFBDSV9EMCk7CiAJCWk5MTVfcmVzdW1lX3N3aXRjaGVyb28oZGV2KTsK IAkJZGV2LT5zd2l0Y2hfcG93ZXJfc3RhdGUgPSBEUk1fU1dJVENIX1BPV0VSX09OOwogCX0gZWxz ZSB7CkBAIC01ODUsNiArNTg2LDcgQEAgc3RhdGljIHZvaWQgaTkxNV9nZW1fZmluaShzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KQogc3RhdGljIGludCBpOTE1X2xvYWRfbW9kZXNldF9pbml0KHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShkZXYpOworCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gZGV2X3ByaXYtPmRybS5w ZGV2OwogCWludCByZXQ7CiAKIAlpZiAoaTkxNV9pbmplY3RfbG9hZF9mYWlsdXJlKCkpCkBAIC02 MDEsMTMgKzYwMywxMyBAQCBzdGF0aWMgaW50IGk5MTVfbG9hZF9tb2Rlc2V0X2luaXQoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKIAkgKiB0aGVuIHdlIGRvIG5vdCB0YWtlIHBhcnQgaW4gVkdBIGFy Yml0cmF0aW9uIGFuZCB0aGUKIAkgKiB2Z2FfY2xpZW50X3JlZ2lzdGVyKCkgZmFpbHMgd2l0aCAt RU5PREVWLgogCSAqLwotCXJldCA9IHZnYV9jbGllbnRfcmVnaXN0ZXIoZGV2LT5wZGV2LCBkZXYs IE5VTEwsIGk5MTVfdmdhX3NldF9kZWNvZGUpOworCXJldCA9IHZnYV9jbGllbnRfcmVnaXN0ZXIo cGRldiwgZGV2LCBOVUxMLCBpOTE1X3ZnYV9zZXRfZGVjb2RlKTsKIAlpZiAocmV0ICYmIHJldCAh PSAtRU5PREVWKQogCQlnb3RvIG91dDsKIAogCWludGVsX3JlZ2lzdGVyX2RzbV9oYW5kbGVyKCk7 CiAKLQlyZXQgPSB2Z2Ffc3dpdGNoZXJvb19yZWdpc3Rlcl9jbGllbnQoZGV2LT5wZGV2LCAmaTkx NV9zd2l0Y2hlcm9vX29wcywgZmFsc2UpOworCXJldCA9IHZnYV9zd2l0Y2hlcm9vX3JlZ2lzdGVy X2NsaWVudChwZGV2LCAmaTkxNV9zd2l0Y2hlcm9vX29wcywgZmFsc2UpOwogCWlmIChyZXQpCiAJ CWdvdG8gY2xlYW51cF92Z2FfY2xpZW50OwogCkBAIC02NTksOSArNjYxLDkgQEAgY2xlYW51cF9p cnE6CiBjbGVhbnVwX2NzcjoKIAlpbnRlbF9jc3JfdWNvZGVfZmluaShkZXZfcHJpdik7CiAJaW50 ZWxfcG93ZXJfZG9tYWluc19maW5pKGRldl9wcml2KTsKLQl2Z2Ffc3dpdGNoZXJvb191bnJlZ2lz dGVyX2NsaWVudChkZXYtPnBkZXYpOworCXZnYV9zd2l0Y2hlcm9vX3VucmVnaXN0ZXJfY2xpZW50 KHBkZXYpOwogY2xlYW51cF92Z2FfY2xpZW50OgotCXZnYV9jbGllbnRfcmVnaXN0ZXIoZGV2LT5w ZGV2LCBOVUxMLCBOVUxMLCBOVUxMKTsKKwl2Z2FfY2xpZW50X3JlZ2lzdGVyKHBkZXYsIE5VTEws IE5VTEwsIE5VTEwpOwogb3V0OgogCXJldHVybiByZXQ7CiB9CkBAIC04ODEsNiArODgzLDcgQEAg c3RhdGljIHZvaWQgaTkxNV9kcml2ZXJfY2xlYW51cF9lYXJseShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpCiBzdGF0aWMgaW50IGk5MTVfbW1pb19zZXR1cChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoZGV2KTsKKwlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IGRldl9wcml2LT5kcm0ucGRldjsKIAlp bnQgbW1pb19iYXI7CiAJaW50IG1taW9fc2l6ZTsKIApAQCAtODk3LDcgKzkwMCw3IEBAIHN0YXRp YyBpbnQgaTkxNV9tbWlvX3NldHVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCW1taW9fc2l6 ZSA9IDUxMiAqIDEwMjQ7CiAJZWxzZQogCQltbWlvX3NpemUgPSAyICogMTAyNCAqIDEwMjQ7Ci0J ZGV2X3ByaXYtPnJlZ3MgPSBwY2lfaW9tYXAoZGV2LT5wZGV2LCBtbWlvX2JhciwgbW1pb19zaXpl KTsKKwlkZXZfcHJpdi0+cmVncyA9IHBjaV9pb21hcChwZGV2LCBtbWlvX2JhciwgbW1pb19zaXpl KTsKIAlpZiAoZGV2X3ByaXYtPnJlZ3MgPT0gTlVMTCkgewogCQlEUk1fRVJST1IoImZhaWxlZCB0 byBtYXAgcmVnaXN0ZXJzXG4iKTsKIApAQCAtOTEzLDkgKzkxNiwxMCBAQCBzdGF0aWMgaW50IGk5 MTVfbW1pb19zZXR1cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogc3RhdGljIHZvaWQgaTkxNV9t bWlvX2NsZWFudXAoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CisJc3RydWN0IHBjaV9kZXYgKnBkZXYg PSBkZXZfcHJpdi0+ZHJtLnBkZXY7CiAKIAlpbnRlbF90ZWFyZG93bl9tY2hiYXIoZGV2KTsKLQlw Y2lfaW91bm1hcChkZXYtPnBkZXYsIGRldl9wcml2LT5yZWdzKTsKKwlwY2lfaW91bm1hcChwZGV2 LCBkZXZfcHJpdi0+cmVncyk7CiB9CiAKIC8qKgpAQCAtOTk0LDYgKzk5OCw3IEBAIHN0YXRpYyB2 b2lkIGludGVsX3Nhbml0aXplX29wdGlvbnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQogICovCiBzdGF0aWMgaW50IGk5MTVfZHJpdmVyX2luaXRfaHcoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQogeworCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gZGV2X3ByaXYt PmRybS5wZGV2OwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAmZGV2X3ByaXYtPmRybTsKIAlp bnQgcmV0OwogCkBAIC0xMDMyLDExICsxMDM3LDExIEBAIHN0YXRpYyBpbnQgaTkxNV9kcml2ZXJf aW5pdF9odyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCWdvdG8gb3V0X2dn dHQ7CiAJfQogCi0JcGNpX3NldF9tYXN0ZXIoZGV2LT5wZGV2KTsKKwlwY2lfc2V0X21hc3Rlcihw ZGV2KTsKIAogCS8qIG92ZXJsYXkgb24gZ2VuMiBpcyBicm9rZW4gYW5kIGNhbid0IGFkZHJlc3Mg YWJvdmUgMUcgKi8KIAlpZiAoSVNfR0VOMihkZXYpKSB7Ci0JCXJldCA9IGRtYV9zZXRfY29oZXJl bnRfbWFzaygmZGV2LT5wZGV2LT5kZXYsIERNQV9CSVRfTUFTSygzMCkpOworCQlyZXQgPSBkbWFf c2V0X2NvaGVyZW50X21hc2soJnBkZXYtPmRldiwgRE1BX0JJVF9NQVNLKDMwKSk7CiAJCWlmIChy ZXQpIHsKIAkJCURSTV9FUlJPUigiZmFpbGVkIHRvIHNldCBETUEgbWFza1xuIik7CiAKQEAgLTEw NTMsNyArMTA1OCw3IEBAIHN0YXRpYyBpbnQgaTkxNV9kcml2ZXJfaW5pdF9odyhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJICogd2hpY2ggYWxzbyBuZWVkcyB0byBiZSBoYW5k bGVkIGNhcmVmdWxseS4KIAkgKi8KIAlpZiAoSVNfQlJPQURXQVRFUihkZXYpIHx8IElTX0NSRVNU TElORShkZXYpKSB7Ci0JCXJldCA9IGRtYV9zZXRfY29oZXJlbnRfbWFzaygmZGV2LT5wZGV2LT5k ZXYsIERNQV9CSVRfTUFTSygzMikpOworCQlyZXQgPSBkbWFfc2V0X2NvaGVyZW50X21hc2soJnBk ZXYtPmRldiwgRE1BX0JJVF9NQVNLKDMyKSk7CiAKIAkJaWYgKHJldCkgewogCQkJRFJNX0VSUk9S KCJmYWlsZWQgdG8gc2V0IERNQSBtYXNrXG4iKTsKQEAgLTEwODMsNyArMTA4OCw3IEBAIHN0YXRp YyBpbnQgaTkxNV9kcml2ZXJfaW5pdF9odyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCiAJICogc3R1Y2sgaW50ZXJydXB0cyBvbiBzb21lIG1hY2hpbmVzLgogCSAqLwogCWlmICgh SVNfSTk0NUcoZGV2KSAmJiAhSVNfSTk0NUdNKGRldikpIHsKLQkJaWYgKHBjaV9lbmFibGVfbXNp KGRldi0+cGRldikgPCAwKQorCQlpZiAocGNpX2VuYWJsZV9tc2kocGRldikgPCAwKQogCQkJRFJN X0RFQlVHX0RSSVZFUigiY2FuJ3QgZW5hYmxlIE1TSSIpOwogCX0KIApAQCAtMTEwMSwxMCArMTEw NiwxMCBAQCBvdXRfZ2d0dDoKICAqLwogc3RhdGljIHZvaWQgaTkxNV9kcml2ZXJfY2xlYW51cF9o dyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9ICZkZXZfcHJpdi0+ZHJtOworCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gZGV2X3By aXYtPmRybS5wZGV2OwogCi0JaWYgKGRldi0+cGRldi0+bXNpX2VuYWJsZWQpCi0JCXBjaV9kaXNh YmxlX21zaShkZXYtPnBkZXYpOworCWlmIChwZGV2LT5tc2lfZW5hYmxlZCkKKwkJcGNpX2Rpc2Fi bGVfbXNpKHBkZXYpOwogCiAJcG1fcW9zX3JlbW92ZV9yZXF1ZXN0KCZkZXZfcHJpdi0+cG1fcW9z KTsKIAlpOTE1X2dndHRfY2xlYW51cF9odyhkZXZfcHJpdik7CkBAIC0xMjc0LDYgKzEyNzksNyBA QCBvdXRfZnJlZV9wcml2Ogogdm9pZCBpOTE1X2RyaXZlcl91bmxvYWQoc3RydWN0IGRybV9kZXZp Y2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGRldik7CisJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBkZXZfcHJpdi0+ZHJtLnBkZXY7CiAKIAlp bnRlbF9mYmRldl9maW5pKGRldik7CiAKQEAgLTEzMDIsOCArMTMwOCw4IEBAIHZvaWQgaTkxNV9k cml2ZXJfdW5sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJa2ZyZWUoZGV2X3ByaXYtPnZi dC5sZnBfbHZkc192YnRfbW9kZSk7CiAJZGV2X3ByaXYtPnZidC5sZnBfbHZkc192YnRfbW9kZSA9 IE5VTEw7CiAKLQl2Z2Ffc3dpdGNoZXJvb191bnJlZ2lzdGVyX2NsaWVudChkZXYtPnBkZXYpOwot CXZnYV9jbGllbnRfcmVnaXN0ZXIoZGV2LT5wZGV2LCBOVUxMLCBOVUxMLCBOVUxMKTsKKwl2Z2Ff c3dpdGNoZXJvb191bnJlZ2lzdGVyX2NsaWVudChwZGV2KTsKKwl2Z2FfY2xpZW50X3JlZ2lzdGVy KHBkZXYsIE5VTEwsIE5VTEwsIE5VTEwpOwogCiAJaW50ZWxfY3NyX3Vjb2RlX2ZpbmkoZGV2X3By aXYpOwogCkBAIC0xNDAwLDYgKzE0MDYsNyBAQCBzdGF0aWMgYm9vbCBzdXNwZW5kX3RvX2lkbGUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogc3RhdGljIGludCBpOTE1X2RybV9z dXNwZW5kKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOworCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gZGV2 X3ByaXYtPmRybS5wZGV2OwogCXBjaV9wb3dlcl90IG9wcmVnaW9uX3RhcmdldF9zdGF0ZTsKIAlp bnQgZXJyb3I7CiAKQEAgLTE0MTYsMTEgKzE0MjMsMTEgQEAgc3RhdGljIGludCBpOTE1X2RybV9z dXNwZW5kKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAKIAlkcm1fa21zX2hlbHBlcl9wb2xsX2Rp c2FibGUoZGV2KTsKIAotCXBjaV9zYXZlX3N0YXRlKGRldi0+cGRldik7CisJcGNpX3NhdmVfc3Rh dGUocGRldik7CiAKIAllcnJvciA9IGk5MTVfZ2VtX3N1c3BlbmQoZGV2KTsKIAlpZiAoZXJyb3Ip IHsKLQkJZGV2X2VycigmZGV2LT5wZGV2LT5kZXYsCisJCWRldl9lcnIoJnBkZXYtPmRldiwKIAkJ CSJHRU0gaWRsZSBmYWlsZWQsIHJlc3VtZSBtaWdodCBmYWlsXG4iKTsKIAkJZ290byBvdXQ7CiAJ fQpAQCAtMTQ2NSw2ICsxNDcyLDcgQEAgb3V0Ogogc3RhdGljIGludCBpOTE1X2RybV9zdXNwZW5k X2xhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgYm9vbCBoaWJlcm5hdGlvbikKIHsKIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CisJc3RydWN0IHBj aV9kZXYgKnBkZXYgPSBkZXZfcHJpdi0+ZHJtLnBkZXY7CiAJYm9vbCBmd19jc3I7CiAJaW50IHJl dDsKIApAQCAtMTQ5OCw3ICsxNTA2LDcgQEAgc3RhdGljIGludCBpOTE1X2RybV9zdXNwZW5kX2xh dGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgYm9vbCBoaWJlcm5hdGlvbikKIAkJZ290byBvdXQ7 CiAJfQogCi0JcGNpX2Rpc2FibGVfZGV2aWNlKGRldi0+cGRldik7CisJcGNpX2Rpc2FibGVfZGV2 aWNlKHBkZXYpOwogCS8qCiAJICogRHVyaW5nIGhpYmVybmF0aW9uIG9uIHNvbWUgcGxhdGZvcm1z IHRoZSBCSU9TIG1heSB0cnkgdG8gYWNjZXNzCiAJICogdGhlIGRldmljZSBldmVuIHRob3VnaCBp dCdzIGFscmVhZHkgaW4gRDMgYW5kIGhhbmcgdGhlIG1hY2hpbmUuIFNvCkBAIC0xNTEyLDcgKzE1 MjAsNyBAQCBzdGF0aWMgaW50IGk5MTVfZHJtX3N1c3BlbmRfbGF0ZShzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCBib29sIGhpYmVybmF0aW9uKQogCSAqIEFjZXIgQXNwaXJlIDE4MzBUCiAJICovCiAJ aWYgKCEoaGliZXJuYXRpb24gJiYgSU5URUxfSU5GTyhkZXZfcHJpdiktPmdlbiA8IDYpKQotCQlw Y2lfc2V0X3Bvd2VyX3N0YXRlKGRldi0+cGRldiwgUENJX0QzaG90KTsKKwkJcGNpX3NldF9wb3dl cl9zdGF0ZShwZGV2LCBQQ0lfRDNob3QpOwogCiAJZGV2X3ByaXYtPnN1c3BlbmRlZF90b19pZGxl ID0gc3VzcGVuZF90b19pZGxlKGRldl9wcml2KTsKIApAQCAtMTYyOSw2ICsxNjM3LDcgQEAgc3Rh dGljIGludCBpOTE1X2RybV9yZXN1bWUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHN0YXRpYyBp bnQgaTkxNV9kcm1fcmVzdW1lX2Vhcmx5KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOworCXN0cnVjdCBw Y2lfZGV2ICpwZGV2ID0gZGV2X3ByaXYtPmRybS5wZGV2OwogCWludCByZXQ7CiAKIAkvKgpAQCAt MTY1MSw3ICsxNjYwLDcgQEAgc3RhdGljIGludCBpOTE1X2RybV9yZXN1bWVfZWFybHkoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKIAkgKiB0aGUgZGV2aWNlIHBvd2VyZWQgd2UgY2FuIGFsc28gcmVt b3ZlIHRoZSBmb2xsb3dpbmcgc2V0IHBvd2VyIHN0YXRlCiAJICogY2FsbC4KIAkgKi8KLQlyZXQg PSBwY2lfc2V0X3Bvd2VyX3N0YXRlKGRldi0+cGRldiwgUENJX0QwKTsKKwlyZXQgPSBwY2lfc2V0 X3Bvd2VyX3N0YXRlKHBkZXYsIFBDSV9EMCk7CiAJaWYgKHJldCkgewogCQlEUk1fRVJST1IoImZh aWxlZCB0byBzZXQgUENJIEQwIHBvd2VyIHN0YXRlICglZClcbiIsIHJldCk7CiAJCWdvdG8gb3V0 OwpAQCAtMTY3MCwxMiArMTY3OSwxMiBAQCBzdGF0aWMgaW50IGk5MTVfZHJtX3Jlc3VtZV9lYXJs eShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCSAqIGRlcGVuZCBvbiB0aGUgZGV2aWNlIGVuYWJs ZSByZWZjb3VudCB3ZSBjYW4ndCBhbnl3YXkgZGVwZW5kIG9uIHRoZW0KIAkgKiBkaXNhYmxpbmcv ZW5hYmxpbmcgdGhlIGRldmljZS4KIAkgKi8KLQlpZiAocGNpX2VuYWJsZV9kZXZpY2UoZGV2LT5w ZGV2KSkgeworCWlmIChwY2lfZW5hYmxlX2RldmljZShwZGV2KSkgewogCQlyZXQgPSAtRUlPOwog CQlnb3RvIG91dDsKIAl9CiAKLQlwY2lfc2V0X21hc3RlcihkZXYtPnBkZXYpOworCXBjaV9zZXRf bWFzdGVyKHBkZXYpOwogCiAJZGlzYWJsZV9ycG1fd2FrZXJlZl9hc3NlcnRzKGRldl9wcml2KTsK IApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwppbmRleCAyMDI5YjUxZjkxMjQuLjZmOWY3 N2ZjYmI1YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKQEAgLTM1MCwxMCArMzUw LDEyIEBAIHN0YXRpYyBpbnQgc2V0dXBfcGFnZV9kbWEoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg c3RydWN0IGk5MTVfcGFnZV9kbWEgKnApCiAKIHN0YXRpYyB2b2lkIGNsZWFudXBfcGFnZV9kbWEo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGk5MTVfcGFnZV9kbWEgKnApCiB7CisJc3Ry dWN0IHBjaV9kZXYgKnBkZXYgPSBkZXYtPnBkZXY7CisKIAlpZiAoV0FSTl9PTighcC0+cGFnZSkp CiAJCXJldHVybjsKIAotCWRtYV91bm1hcF9wYWdlKCZkZXYtPnBkZXYtPmRldiwgcC0+ZGFkZHIs IDQwOTYsIFBDSV9ETUFfQklESVJFQ1RJT05BTCk7CisJZG1hX3VubWFwX3BhZ2UoJnBkZXYtPmRl diwgcC0+ZGFkZHIsIDQwOTYsIFBDSV9ETUFfQklESVJFQ1RJT05BTCk7CiAJX19mcmVlX3BhZ2Uo cC0+cGFnZSk7CiAJbWVtc2V0KHAsIDAsIHNpemVvZigqcCkpOwogfQpAQCAtMjY4NSw4ICsyNjg3 LDggQEAgc3RhdGljIHZvaWQgZ2d0dF91bmJpbmRfdm1hKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQog CiB2b2lkIGk5MTVfZ2VtX2d0dF9maW5pc2hfb2JqZWN0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpvYmopCiB7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IG9iai0+YmFzZS5kZXY7Ci0J c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOworCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUob2JqLT5iYXNlLmRldik7CisJ c3RydWN0IGRldmljZSAqa2RldiA9ICZkZXZfcHJpdi0+ZHJtLnBkZXYtPmRldjsKIAlzdHJ1Y3Qg aTkxNV9nZ3R0ICpnZ3R0ID0gJmRldl9wcml2LT5nZ3R0OwogCiAJaWYgKHVubGlrZWx5KGdndHQt PmRvX2lkbGVfbWFwcykpIHsKQEAgLTI2OTcsNyArMjY5OSw3IEBAIHZvaWQgaTkxNV9nZW1fZ3R0 X2ZpbmlzaF9vYmplY3Qoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIAkJfQogCX0K IAotCWRtYV91bm1hcF9zZygmZGV2LT5wZGV2LT5kZXYsIG9iai0+cGFnZXMtPnNnbCwgb2JqLT5w YWdlcy0+bmVudHMsCisJZG1hX3VubWFwX3NnKGtkZXYsIG9iai0+cGFnZXMtPnNnbCwgb2JqLT5w YWdlcy0+bmVudHMsCiAJCSAgICAgUENJX0RNQV9CSURJUkVDVElPTkFMKTsKIH0KIApkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc3RvbGVuLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9zdG9sZW4uYwppbmRleCBhYTA1MGZhMWU1NTguLjU5OTg5ZThl ZTVkYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc3RvbGVuLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc3RvbGVuLmMKQEAgLTkyLDYgKzky LDcgQEAgdm9pZCBpOTE1X2dlbV9zdG9sZW5fcmVtb3ZlX25vZGUoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAogc3RhdGljIHVuc2lnbmVkIGxvbmcgaTkxNV9zdG9sZW5fdG9fcGh5 c2ljYWwoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CisJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBkZXZf cHJpdi0+ZHJtLnBkZXY7CiAJc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCA9ICZkZXZfcHJpdi0+Z2d0 dDsKIAlzdHJ1Y3QgcmVzb3VyY2UgKnI7CiAJdTMyIGJhc2U7CkBAIC0xMTEsNyArMTEyLDcgQEAg c3RhdGljIHVuc2lnbmVkIGxvbmcgaTkxNV9zdG9sZW5fdG9fcGh5c2ljYWwoc3RydWN0IGRybV9k ZXZpY2UgKmRldikKIAlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gMykgewogCQl1MzIgYnNt OwogCi0JCXBjaV9yZWFkX2NvbmZpZ19kd29yZChkZXYtPnBkZXYsIElOVEVMX0JTTSwgJmJzbSk7 CisJCXBjaV9yZWFkX2NvbmZpZ19kd29yZChwZGV2LCBJTlRFTF9CU00sICZic20pOwogCiAJCWJh c2UgPSBic20gJiBJTlRFTF9CU01fTUFTSzsKIAl9IGVsc2UgaWYgKElTX0k4NjVHKGRldikpIHsK QEAgLTExOSw3ICsxMjAsNyBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBpOTE1X3N0b2xlbl90b19w aHlzaWNhbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQl1MTYgdG91ZCA9IDA7CiAJCXU4IHRt cDsKIAotCQlwY2lfYnVzX3JlYWRfY29uZmlnX2J5dGUoZGV2LT5wZGV2LT5idXMsIFBDSV9ERVZG TigwLCAwKSwKKwkJcGNpX2J1c19yZWFkX2NvbmZpZ19ieXRlKHBkZXYtPmJ1cywgUENJX0RFVkZO KDAsIDApLAogCQkJCQkgSTg0NV9FU01SQU1DLCAmdG1wKTsKIAogCQlpZiAodG1wICYgVFNFR19F TkFCTEUpIHsKQEAgLTEzMyw3ICsxMzQsNyBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBpOTE1X3N0 b2xlbl90b19waHlzaWNhbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQkJfQogCQl9CiAKLQkJ cGNpX2J1c19yZWFkX2NvbmZpZ193b3JkKGRldi0+cGRldi0+YnVzLCBQQ0lfREVWRk4oMCwgMCks CisJCXBjaV9idXNfcmVhZF9jb25maWdfd29yZChwZGV2LT5idXMsIFBDSV9ERVZGTigwLCAwKSwK IAkJCQkJIEk4NjVfVE9VRCwgJnRvdWQpOwogCiAJCWJhc2UgPSAodG91ZCA8PCAxNikgKyB0c2Vn X3NpemU7CkBAIC0xNDIsMTMgKzE0MywxMyBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBpOTE1X3N0 b2xlbl90b19waHlzaWNhbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQl1MzIgdG9tOwogCQl1 OCB0bXA7CiAKLQkJcGNpX2J1c19yZWFkX2NvbmZpZ19ieXRlKGRldi0+cGRldi0+YnVzLCBQQ0lf REVWRk4oMCwgMCksCisJCXBjaV9idXNfcmVhZF9jb25maWdfYnl0ZShwZGV2LT5idXMsIFBDSV9E RVZGTigwLCAwKSwKIAkJCQkJIEk4NVhfRVNNUkFNQywgJnRtcCk7CiAKIAkJaWYgKHRtcCAmIFRT RUdfRU5BQkxFKQogCQkJdHNlZ19zaXplID0gTUIoMSk7CiAKLQkJcGNpX2J1c19yZWFkX2NvbmZp Z19ieXRlKGRldi0+cGRldi0+YnVzLCBQQ0lfREVWRk4oMCwgMSksCisJCXBjaV9idXNfcmVhZF9j b25maWdfYnl0ZShwZGV2LT5idXMsIFBDSV9ERVZGTigwLCAxKSwKIAkJCQkJIEk4NVhfRFJCMywg JnRtcCk7CiAJCXRvbSA9IHRtcCAqIE1CKDMyKTsKIApAQCAtMTU4LDcgKzE1OSw3IEBAIHN0YXRp YyB1bnNpZ25lZCBsb25nIGk5MTVfc3RvbGVuX3RvX3BoeXNpY2FsKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpCiAJCXUzMiB0b207CiAJCXU4IHRtcDsKIAotCQlwY2lfYnVzX3JlYWRfY29uZmlnX2J5 dGUoZGV2LT5wZGV2LT5idXMsIFBDSV9ERVZGTigwLCAwKSwKKwkJcGNpX2J1c19yZWFkX2NvbmZp Z19ieXRlKHBkZXYtPmJ1cywgUENJX0RFVkZOKDAsIDApLAogCQkJCQkgSTg0NV9FU01SQU1DLCAm dG1wKTsKIAogCQlpZiAodG1wICYgVFNFR19FTkFCTEUpIHsKQEAgLTE3Miw3ICsxNzMsNyBAQCBz dGF0aWMgdW5zaWduZWQgbG9uZyBpOTE1X3N0b2xlbl90b19waHlzaWNhbChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQogCQkJfQogCQl9CiAKLQkJcGNpX2J1c19yZWFkX2NvbmZpZ19ieXRlKGRldi0+ cGRldi0+YnVzLCBQQ0lfREVWRk4oMCwgMCksCisJCXBjaV9idXNfcmVhZF9jb25maWdfYnl0ZShw ZGV2LT5idXMsIFBDSV9ERVZGTigwLCAwKSwKIAkJCQkJIEk4MzBfRFJCMywgJnRtcCk7CiAJCXRv bSA9IHRtcCAqIE1CKDMyKTsKIApAQCAtMTgyLDcgKzE4Myw3IEBAIHN0YXRpYyB1bnNpZ25lZCBs b25nIGk5MTVfc3RvbGVuX3RvX3BoeXNpY2FsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCXUz MiB0b207CiAJCXU4IHRtcDsKIAotCQlwY2lfYnVzX3JlYWRfY29uZmlnX2J5dGUoZGV2LT5wZGV2 LT5idXMsIFBDSV9ERVZGTigwLCAwKSwKKwkJcGNpX2J1c19yZWFkX2NvbmZpZ19ieXRlKHBkZXYt PmJ1cywgUENJX0RFVkZOKDAsIDApLAogCQkJCQkgSTgzMF9FU01SQU1DLCAmdG1wKTsKIAogCQlp ZiAodG1wICYgVFNFR19FTkFCTEUpIHsKQEAgLTE5Miw3ICsxOTMsNyBAQCBzdGF0aWMgdW5zaWdu ZWQgbG9uZyBpOTE1X3N0b2xlbl90b19waHlzaWNhbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQog CQkJCXRzZWdfc2l6ZSA9IEtCKDUxMik7CiAJCX0KIAotCQlwY2lfYnVzX3JlYWRfY29uZmlnX2J5 dGUoZGV2LT5wZGV2LT5idXMsIFBDSV9ERVZGTigwLCAwKSwKKwkJcGNpX2J1c19yZWFkX2NvbmZp Z19ieXRlKHBkZXYtPmJ1cywgUENJX0RFVkZOKDAsIDApLAogCQkJCQkgSTgzMF9EUkIzLCAmdG1w KTsKIAkJdG9tID0gdG1wICogTUIoMzIpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dwdV9lcnJvci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJy b3IuYwppbmRleCA0MWVjN2ExODNjNzMuLmFlZDU1ZTRmMTAwZiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dwdV9lcnJvci5jCkBAIC0zMzYsNiArMzM2LDcgQEAgaW50IGk5MTVfZXJyb3Jfc3Rh dGVfdG9fc3RyKHN0cnVjdCBkcm1faTkxNV9lcnJvcl9zdGF0ZV9idWYgKm0sCiB7CiAJc3RydWN0 IGRybV9kZXZpY2UgKmRldiA9IGVycm9yX3ByaXYtPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CisJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBk ZXZfcHJpdi0+ZHJtLnBkZXY7CiAJc3RydWN0IGRybV9pOTE1X2Vycm9yX3N0YXRlICplcnJvciA9 IGVycm9yX3ByaXYtPmVycm9yOwogCXN0cnVjdCBkcm1faTkxNV9lcnJvcl9vYmplY3QgKm9iajsK IAlpbnQgaSwgaiwgb2Zmc2V0LCBlbHQ7CkBAIC0zNjcsMTEgKzM2OCwxMSBAQCBpbnQgaTkxNV9l cnJvcl9zdGF0ZV90b19zdHIoc3RydWN0IGRybV9pOTE1X2Vycm9yX3N0YXRlX2J1ZiAqbSwKIAl9 CiAJZXJyX3ByaW50ZihtLCAiUmVzZXQgY291bnQ6ICV1XG4iLCBlcnJvci0+cmVzZXRfY291bnQp OwogCWVycl9wcmludGYobSwgIlN1c3BlbmQgY291bnQ6ICV1XG4iLCBlcnJvci0+c3VzcGVuZF9j b3VudCk7Ci0JZXJyX3ByaW50ZihtLCAiUENJIElEOiAweCUwNHhcbiIsIGRldi0+cGRldi0+ZGV2 aWNlKTsKLQllcnJfcHJpbnRmKG0sICJQQ0kgUmV2aXNpb246IDB4JTAyeFxuIiwgZGV2LT5wZGV2 LT5yZXZpc2lvbik7CisJZXJyX3ByaW50ZihtLCAiUENJIElEOiAweCUwNHhcbiIsIHBkZXYtPmRl dmljZSk7CisJZXJyX3ByaW50ZihtLCAiUENJIFJldmlzaW9uOiAweCUwMnhcbiIsIHBkZXYtPnJl dmlzaW9uKTsKIAllcnJfcHJpbnRmKG0sICJQQ0kgU3Vic3lzdGVtOiAlMDR4OiUwNHhcbiIsCi0J CSAgIGRldi0+cGRldi0+c3Vic3lzdGVtX3ZlbmRvciwKLQkJICAgZGV2LT5wZGV2LT5zdWJzeXN0 ZW1fZGV2aWNlKTsKKwkJICAgcGRldi0+c3Vic3lzdGVtX3ZlbmRvciwKKwkJICAgcGRldi0+c3Vi c3lzdGVtX2RldmljZSk7CiAJZXJyX3ByaW50ZihtLCAiSU9NTVUgZW5hYmxlZD86ICVkXG4iLCBl cnJvci0+aW9tbXUpOwogCiAJaWYgKEhBU19DU1IoZGV2KSkgewpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9zdXNwZW5kLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3N1c3BlbmQuYwppbmRleCA0ZjI3Mjc3N2I0ZjQuLmEwYWYxNzAwNjJiMSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zdXNwZW5kLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9zdXNwZW5kLmMKQEAgLTYzLDYgKzYzLDcgQEAgc3RhdGljIHZvaWQgaTkxNV9y ZXN0b3JlX2Rpc3BsYXkoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIGludCBpOTE1X3NhdmVfc3Rh dGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CisJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBkZXZfcHJp di0+ZHJtLnBkZXY7CiAJaW50IGk7CiAKIAltdXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7 CkBAIC03MCw3ICs3MSw3IEBAIGludCBpOTE1X3NhdmVfc3RhdGUoc3RydWN0IGRybV9kZXZpY2Ug KmRldikKIAlpOTE1X3NhdmVfZGlzcGxheShkZXYpOwogCiAJaWYgKElTX0dFTjQoZGV2KSkKLQkJ cGNpX3JlYWRfY29uZmlnX3dvcmQoZGV2LT5wZGV2LCBHQ0RHTUJVUywKKwkJcGNpX3JlYWRfY29u ZmlnX3dvcmQocGRldiwgR0NER01CVVMsCiAJCQkJICAgICAmZGV2X3ByaXYtPnJlZ2ZpbGUuc2F2 ZUdDREdNQlVTKTsKIAogCS8qIENhY2hlIG1vZGUgc3RhdGUgKi8KQEAgLTEwOCw2ICsxMDksNyBA QCBpbnQgaTkxNV9zYXZlX3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiBpbnQgaTkxNV9y ZXN0b3JlX3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOworCXN0cnVjdCBwY2lfZGV2ICpwZGV2 ID0gZGV2X3ByaXYtPmRybS5wZGV2OwogCWludCBpOwogCiAJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1 Y3RfbXV0ZXgpOwpAQCAtMTE1LDcgKzExNyw3IEBAIGludCBpOTE1X3Jlc3RvcmVfc3RhdGUoc3Ry dWN0IGRybV9kZXZpY2UgKmRldikKIAlpOTE1X2dlbV9yZXN0b3JlX2ZlbmNlcyhkZXYpOwogCiAJ aWYgKElTX0dFTjQoZGV2KSkKLQkJcGNpX3dyaXRlX2NvbmZpZ193b3JkKGRldi0+cGRldiwgR0NE R01CVVMsCisJCXBjaV93cml0ZV9jb25maWdfd29yZChwZGV2LCBHQ0RHTUJVUywKIAkJCQkgICAg ICBkZXZfcHJpdi0+cmVnZmlsZS5zYXZlR0NER01CVVMpOwogCWk5MTVfcmVzdG9yZV9kaXNwbGF5 KGRldik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCBkMjI0ZjY0ODM2 YzUuLmY2MWJlMzUzZGJmMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAt NzI3Myw5ICs3MjczLDEwIEBAIHN0YXRpYyBpbnQgaTl4eF9taXNjX2dldF9kaXNwbGF5X2Nsb2Nr X3NwZWVkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAKIHN0YXRpYyBpbnQgcG52X2dldF9kaXNw bGF5X2Nsb2NrX3NwZWVkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CisJc3RydWN0IHBjaV9k ZXYgKnBkZXYgPSBkZXYtPnBkZXY7CiAJdTE2IGdjZmdjID0gMDsKIAotCXBjaV9yZWFkX2NvbmZp Z193b3JkKGRldi0+cGRldiwgR0NGR0MsICZnY2ZnYyk7CisJcGNpX3JlYWRfY29uZmlnX3dvcmQo cGRldiwgR0NGR0MsICZnY2ZnYyk7CiAKIAlzd2l0Y2ggKGdjZmdjICYgR0NfRElTUExBWV9DTE9D S19NQVNLKSB7CiAJY2FzZSBHQ19ESVNQTEFZX0NMT0NLXzI2N19NSFpfUE5WOgpAQCAtNzI5Nyw5 ICs3Mjk4LDEwIEBAIHN0YXRpYyBpbnQgcG52X2dldF9kaXNwbGF5X2Nsb2NrX3NwZWVkKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCiAKIHN0YXRpYyBpbnQgaTkxNWdtX2dldF9kaXNwbGF5X2Nsb2Nr X3NwZWVkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CisJc3RydWN0IHBjaV9kZXYgKnBkZXYg PSBkZXYtPnBkZXY7CiAJdTE2IGdjZmdjID0gMDsKIAotCXBjaV9yZWFkX2NvbmZpZ193b3JkKGRl di0+cGRldiwgR0NGR0MsICZnY2ZnYyk7CisJcGNpX3JlYWRfY29uZmlnX3dvcmQocGRldiwgR0NG R0MsICZnY2ZnYyk7CiAKIAlpZiAoZ2NmZ2MgJiBHQ19MT1dfRlJFUVVFTkNZX0VOQUJMRSkKIAkJ cmV0dXJuIDEzMzMzMzsKQEAgLTczMjEsNiArNzMyMyw3IEBAIHN0YXRpYyBpbnQgaTg2NV9nZXRf ZGlzcGxheV9jbG9ja19zcGVlZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCiBzdGF0aWMgaW50 IGk4NXhfZ2V0X2Rpc3BsYXlfY2xvY2tfc3BlZWQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsK KwlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IGRldi0+cGRldjsKIAl1MTYgaHBsbGNjID0gMDsKIAog CS8qCkBAIC03MzI4LDEwICs3MzMxLDEwIEBAIHN0YXRpYyBpbnQgaTg1eF9nZXRfZGlzcGxheV9j bG9ja19zcGVlZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCSAqIGVuY29kaW5nIGlzIGRpZmZl cmVudCA6KAogCSAqIEZJWE1FIGlzIHRoaXMgdGhlIHJpZ2h0IHdheSB0byBkZXRlY3QgODUyR00v ODUyR01WPwogCSAqLwotCWlmIChkZXYtPnBkZXYtPnJldmlzaW9uID09IDB4MSkKKwlpZiAocGRl di0+cmV2aXNpb24gPT0gMHgxKQogCQlyZXR1cm4gMTMzMzMzOwogCi0JcGNpX2J1c19yZWFkX2Nv bmZpZ193b3JkKGRldi0+cGRldi0+YnVzLAorCXBjaV9idXNfcmVhZF9jb25maWdfd29yZChwZGV2 LT5idXMsCiAJCQkJIFBDSV9ERVZGTigwLCAzKSwgSFBMTENDLCAmaHBsbGNjKTsKIAogCS8qIEFz c3VtZSB0aGF0IHRoZSBoYXJkd2FyZSBpcyBpbiB0aGUgaGlnaCBzcGVlZCBzdGF0ZS4gIFRoaXMK QEAgLTc0MzIsMTAgKzc0MzUsMTEgQEAgc3RhdGljIHVuc2lnbmVkIGludCBpbnRlbF9ocGxsX3Zj byhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCiBzdGF0aWMgaW50IGdtNDVfZ2V0X2Rpc3BsYXlf Y2xvY2tfc3BlZWQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKKwlzdHJ1Y3QgcGNpX2RldiAq cGRldiA9IGRldi0+cGRldjsKIAl1bnNpZ25lZCBpbnQgY2RjbGtfc2VsLCB2Y28gPSBpbnRlbF9o cGxsX3ZjbyhkZXYpOwogCXVpbnQxNl90IHRtcCA9IDA7CiAKLQlwY2lfcmVhZF9jb25maWdfd29y ZChkZXYtPnBkZXYsIEdDRkdDLCAmdG1wKTsKKwlwY2lfcmVhZF9jb25maWdfd29yZChwZGV2LCBH Q0ZHQywgJnRtcCk7CiAKIAljZGNsa19zZWwgPSAodG1wID4+IDEyKSAmIDB4MTsKIApAQCAtNzQ1 NCw2ICs3NDU4LDcgQEAgc3RhdGljIGludCBnbTQ1X2dldF9kaXNwbGF5X2Nsb2NrX3NwZWVkKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAKIHN0YXRpYyBpbnQgaTk2NWdtX2dldF9kaXNwbGF5X2Ns b2NrX3NwZWVkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CisJc3RydWN0IHBjaV9kZXYgKnBk ZXYgPSBkZXYtPnBkZXY7CiAJc3RhdGljIGNvbnN0IHVpbnQ4X3QgZGl2XzMyMDBbXSA9IHsgMTYs IDEwLCAgOCB9OwogCXN0YXRpYyBjb25zdCB1aW50OF90IGRpdl80MDAwW10gPSB7IDIwLCAxMiwg MTAgfTsKIAlzdGF0aWMgY29uc3QgdWludDhfdCBkaXZfNTMzM1tdID0geyAyNCwgMTYsIDE0IH07 CkBAIC03NDYxLDcgKzc0NjYsNyBAQCBzdGF0aWMgaW50IGk5NjVnbV9nZXRfZGlzcGxheV9jbG9j a19zcGVlZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCXVuc2lnbmVkIGludCBjZGNsa19zZWws IHZjbyA9IGludGVsX2hwbGxfdmNvKGRldik7CiAJdWludDE2X3QgdG1wID0gMDsKIAotCXBjaV9y ZWFkX2NvbmZpZ193b3JkKGRldi0+cGRldiwgR0NGR0MsICZ0bXApOworCXBjaV9yZWFkX2NvbmZp Z193b3JkKHBkZXYsIEdDRkdDLCAmdG1wKTsKIAogCWNkY2xrX3NlbCA9ICgodG1wID4+IDgpICYg MHgxZikgLSAxOwogCkBAIC03NDkxLDYgKzc0OTYsNyBAQCBmYWlsOgogCiBzdGF0aWMgaW50IGcz M19nZXRfZGlzcGxheV9jbG9ja19zcGVlZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogeworCXN0 cnVjdCBwY2lfZGV2ICpwZGV2ID0gZGV2LT5wZGV2OwogCXN0YXRpYyBjb25zdCB1aW50OF90IGRp dl8zMjAwW10gPSB7IDEyLCAxMCwgIDgsICA3LCA1LCAxNiB9OwogCXN0YXRpYyBjb25zdCB1aW50 OF90IGRpdl80MDAwW10gPSB7IDE0LCAxMiwgMTAsICA4LCA2LCAyMCB9OwogCXN0YXRpYyBjb25z dCB1aW50OF90IGRpdl80ODAwW10gPSB7IDIwLCAxNCwgMTIsIDEwLCA4LCAyNCB9OwpAQCAtNzQ5 OSw3ICs3NTA1LDcgQEAgc3RhdGljIGludCBnMzNfZ2V0X2Rpc3BsYXlfY2xvY2tfc3BlZWQoc3Ry dWN0IGRybV9kZXZpY2UgKmRldikKIAl1bnNpZ25lZCBpbnQgY2RjbGtfc2VsLCB2Y28gPSBpbnRl bF9ocGxsX3ZjbyhkZXYpOwogCXVpbnQxNl90IHRtcCA9IDA7CiAKLQlwY2lfcmVhZF9jb25maWdf d29yZChkZXYtPnBkZXYsIEdDRkdDLCAmdG1wKTsKKwlwY2lfcmVhZF9jb25maWdfd29yZChwZGV2 LCBHQ0ZHQywgJnRtcCk7CiAKIAljZGNsa19zZWwgPSAodG1wID4+IDQpICYgMHg3OwogCkBAIC0x NTk4MywxNSArMTU5ODksMTYgQEAgc3RhdGljIHZvaWQgaW50ZWxfaW5pdF9xdWlya3Moc3RydWN0 IGRybV9kZXZpY2UgKmRldikKIHN0YXRpYyB2b2lkIGk5MTVfZGlzYWJsZV92Z2Eoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGRldik7CisJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBkZXZfcHJpdi0+ZHJtLnBkZXY7 CiAJdTggc3IxOwogCWk5MTVfcmVnX3QgdmdhX3JlZyA9IGk5MTVfdmdhY250cmxfcmVnKGRldik7 CiAKIAkvKiBXYUVuYWJsZVZHQUFjY2Vzc1Rocm91Z2hJT1BvcnQ6Y3RnLGVsayxpbGssc25iLGl2 Yix2bHYsaHN3ICovCi0JdmdhX2dldF91bmludGVycnVwdGlibGUoZGV2LT5wZGV2LCBWR0FfUlNS Q19MRUdBQ1lfSU8pOworCXZnYV9nZXRfdW5pbnRlcnJ1cHRpYmxlKHBkZXYsIFZHQV9SU1JDX0xF R0FDWV9JTyk7CiAJb3V0YihTUjAxLCBWR0FfU1JfSU5ERVgpOwogCXNyMSA9IGluYihWR0FfU1Jf REFUQSk7CiAJb3V0YihzcjEgfCAxPDw1LCBWR0FfU1JfREFUQSk7Ci0JdmdhX3B1dChkZXYtPnBk ZXYsIFZHQV9SU1JDX0xFR0FDWV9JTyk7CisJdmdhX3B1dChwZGV2LCBWR0FfUlNSQ19MRUdBQ1lf SU8pOwogCXVkZWxheSgzMDApOwogCiAJSTkxNV9XUklURSh2Z2FfcmVnLCBWR0FfRElTUF9ESVNB QkxFKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiZGV2LmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmRldi5jCmluZGV4IDQwMDNlNDkwOGMwOS4uYjcw OThmOThiYjY3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmRldi5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiZGV2LmMKQEAgLTE4Myw2ICsxODMs NyBAQCBzdGF0aWMgaW50IGludGVsZmJfY3JlYXRlKHN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxw ZXIsCiAJc3RydWN0IGludGVsX2ZyYW1lYnVmZmVyICppbnRlbF9mYiA9IGlmYmRldi0+ZmI7CiAJ c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGhlbHBlci0+ZGV2OwogCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKKwlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9 IGRldl9wcml2LT5kcm0ucGRldjsKIAlzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0ID0gJmRldl9wcml2 LT5nZ3R0OwogCXN0cnVjdCBmYl9pbmZvICppbmZvOwogCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIg KmZiOwpAQCAtMjgwLDcgKzI4MSw3IEBAIHN0YXRpYyBpbnQgaW50ZWxmYl9jcmVhdGUoc3RydWN0 IGRybV9mYl9oZWxwZXIgKmhlbHBlciwKIAlpZmJkZXYtPnZtYSA9IHZtYTsKIAogCW11dGV4X3Vu bG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCXZnYV9zd2l0Y2hlcm9vX2NsaWVudF9mYl9zZXQo ZGV2LT5wZGV2LCBpbmZvKTsKKwl2Z2Ffc3dpdGNoZXJvb19jbGllbnRfZmJfc2V0KHBkZXYsIGlu Zm8pOwogCXJldHVybiAwOwogCiBvdXRfZGVzdHJveV9mYmk6CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9ndWNfbG9hZGVyLmMKaW5kZXggMzI0ODEyZDY5YjcwLi5lNjdkOGRlNDI3ZDAgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMKQEAgLTU2NSw2ICs1NjUsNyBAQCBm YWlsOgogCiBzdGF0aWMgdm9pZCBndWNfZndfZmV0Y2goc3RydWN0IGRybV9kZXZpY2UgKmRldiwg c3RydWN0IGludGVsX2d1Y19mdyAqZ3VjX2Z3KQogeworCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0g ZGV2LT5wZGV2OwogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CiAJY29uc3Qgc3Ry dWN0IGZpcm13YXJlICpmdzsKIAlzdHJ1Y3QgZ3VjX2Nzc19oZWFkZXIgKmNzczsKQEAgLTU3NCw3 ICs1NzUsNyBAQCBzdGF0aWMgdm9pZCBndWNfZndfZmV0Y2goc3RydWN0IGRybV9kZXZpY2UgKmRl diwgc3RydWN0IGludGVsX2d1Y19mdyAqZ3VjX2Z3KQogCURSTV9ERUJVR19EUklWRVIoImJlZm9y ZSByZXF1ZXN0aW5nIGZpcm13YXJlOiBHdUMgZncgZmV0Y2ggc3RhdHVzICVzXG4iLAogCQlpbnRl bF9ndWNfZndfc3RhdHVzX3JlcHIoZ3VjX2Z3LT5ndWNfZndfZmV0Y2hfc3RhdHVzKSk7CiAKLQll cnIgPSByZXF1ZXN0X2Zpcm13YXJlKCZmdywgZ3VjX2Z3LT5ndWNfZndfcGF0aCwgJmRldi0+cGRl di0+ZGV2KTsKKwllcnIgPSByZXF1ZXN0X2Zpcm13YXJlKCZmdywgZ3VjX2Z3LT5ndWNfZndfcGF0 aCwgJnBkZXYtPmRldik7CiAJaWYgKGVycikKIAkJZ290byBmYWlsOwogCWlmICghZncpCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9pMmMuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2kyYy5jCmluZGV4IDFmMjY2ZDdkZjJlYy4uYTRjYTIwNTIzMTVlIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9pMmMuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9pMmMuYwpAQCAtNjMzLDYgKzYzMyw3IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgaTJjX2FsZ29yaXRobSBnbWJ1c19hbGdvcml0aG0gPSB7CiBpbnQgaW50ZWxfc2V0dXBf Z21idXMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CisJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBkZXZf cHJpdi0+ZHJtLnBkZXY7CiAJc3RydWN0IGludGVsX2dtYnVzICpidXM7CiAJdW5zaWduZWQgaW50 IHBpbjsKIAlpbnQgcmV0OwpAQCAtNjYzLDcgKzY2NCw3IEBAIGludCBpbnRlbF9zZXR1cF9nbWJ1 cyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQkJICJpOTE1IGdtYnVzICVzIiwKIAkJCSBnZXRf Z21idXNfcGluKGRldl9wcml2LCBwaW4pLT5uYW1lKTsKIAotCQlidXMtPmFkYXB0ZXIuZGV2LnBh cmVudCA9ICZkZXYtPnBkZXYtPmRldjsKKwkJYnVzLT5hZGFwdGVyLmRldi5wYXJlbnQgPSAmcGRl di0+ZGV2OwogCQlidXMtPmRldl9wcml2ID0gZGV2X3ByaXY7CiAKIAkJYnVzLT5hZGFwdGVyLmFs Z28gPSAmZ21idXNfYWxnb3JpdGhtOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcnVudGltZV9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9w bS5jCmluZGV4IDc2ODZiN2YxZDU5OS4uNmMxMTE2OGZhY2Q2IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcnVudGltZV9wbS5jCkBAIC0yODcsNiArMjg3LDcgQEAgdm9pZCBpbnRlbF9kaXNw bGF5X3NldF9pbml0X3Bvd2VyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKICAq Lwogc3RhdGljIHZvaWQgaHN3X3Bvd2VyX3dlbGxfcG9zdF9lbmFibGUoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQogeworCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gZGV2X3ByaXYt PmRybS5wZGV2OwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAmZGV2X3ByaXYtPmRybTsKIAog CS8qCkBAIC0yOTksOSArMzAwLDkgQEAgc3RhdGljIHZvaWQgaHN3X3Bvd2VyX3dlbGxfcG9zdF9l bmFibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCSAqIHN1cmUgdmdhY29u IGNhbiBrZWVwIHdvcmtpbmcgbm9ybWFsbHkgd2l0aG91dCB0cmlnZ2VyaW5nIGludGVycnVwdHMK IAkgKiBhbmQgZXJyb3IgbWVzc2FnZXMuCiAJICovCi0JdmdhX2dldF91bmludGVycnVwdGlibGUo ZGV2LT5wZGV2LCBWR0FfUlNSQ19MRUdBQ1lfSU8pOworCXZnYV9nZXRfdW5pbnRlcnJ1cHRpYmxl KHBkZXYsIFZHQV9SU1JDX0xFR0FDWV9JTyk7CiAJb3V0YihpbmIoVkdBX01TUl9SRUFEKSwgVkdB X01TUl9XUklURSk7Ci0JdmdhX3B1dChkZXYtPnBkZXYsIFZHQV9SU1JDX0xFR0FDWV9JTyk7CisJ dmdhX3B1dChwZGV2LCBWR0FfUlNSQ19MRUdBQ1lfSU8pOwogCiAJaWYgKElTX0JST0FEV0VMTChk ZXYpKQogCQlnZW44X2lycV9wb3dlcl93ZWxsX3Bvc3RfZW5hYmxlKGRldl9wcml2LApAQCAtMzE4 LDcgKzMxOSw3IEBAIHN0YXRpYyB2b2lkIGhzd19wb3dlcl93ZWxsX3ByZV9kaXNhYmxlKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHN0YXRpYyB2b2lkIHNrbF9wb3dlcl93ZWxs X3Bvc3RfZW5hYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCQkgICAg ICAgc3RydWN0IGk5MTVfcG93ZXJfd2VsbCAqcG93ZXJfd2VsbCkKIHsKLQlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gJmRldl9wcml2LT5kcm07CisJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBkZXZf cHJpdi0+ZHJtLnBkZXY7CiAKIAkvKgogCSAqIEFmdGVyIHdlIHJlLWVuYWJsZSB0aGUgcG93ZXIg d2VsbCwgaWYgd2UgdG91Y2ggVkdBIHJlZ2lzdGVyIDB4M2Q1CkBAIC0zMzEsOSArMzMyLDkgQEAg c3RhdGljIHZvaWQgc2tsX3Bvd2VyX3dlbGxfcG9zdF9lbmFibGUoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAogCSAqIGFuZCBlcnJvciBtZXNzYWdlcy4KIAkgKi8KIAlpZiAocG93 ZXJfd2VsbC0+ZGF0YSA9PSBTS0xfRElTUF9QV18yKSB7Ci0JCXZnYV9nZXRfdW5pbnRlcnJ1cHRp YmxlKGRldi0+cGRldiwgVkdBX1JTUkNfTEVHQUNZX0lPKTsKKwkJdmdhX2dldF91bmludGVycnVw dGlibGUocGRldiwgVkdBX1JTUkNfTEVHQUNZX0lPKTsKIAkJb3V0YihpbmIoVkdBX01TUl9SRUFE KSwgVkdBX01TUl9XUklURSk7Ci0JCXZnYV9wdXQoZGV2LT5wZGV2LCBWR0FfUlNSQ19MRUdBQ1lf SU8pOworCQl2Z2FfcHV0KHBkZXYsIFZHQV9SU1JDX0xFR0FDWV9JTyk7CiAKIAkJZ2VuOF9pcnFf cG93ZXJfd2VsbF9wb3N0X2VuYWJsZShkZXZfcHJpdiwKIAkJCQkJCTEgPDwgUElQRV9DIHwgMSA8 PCBQSVBFX0IpOwpAQCAtMjY1MSw4ICsyNjUyLDggQEAgdm9pZCBpbnRlbF9wb3dlcl9kb21haW5z X3N1c3BlbmQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogICovCiB2b2lkIGlu dGVsX3J1bnRpbWVfcG1fZ2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsK LQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJmRldl9wcml2LT5kcm07Ci0Jc3RydWN0IGRldmlj ZSAqa2RldiA9ICZkZXYtPnBkZXYtPmRldjsKKwlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IGRldl9w cml2LT5kcm0ucGRldjsKKwlzdHJ1Y3QgZGV2aWNlICprZGV2ID0gJnBkZXYtPmRldjsKIAogCXBt X3J1bnRpbWVfZ2V0X3N5bmMoa2Rldik7CiAKQEAgLTI2NzIsOCArMjY3Myw4IEBAIHZvaWQgaW50 ZWxfcnVudGltZV9wbV9nZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogICov CiBib29sIGludGVsX3J1bnRpbWVfcG1fZ2V0X2lmX2luX3VzZShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9ICZkZXZfcHJpdi0+ ZHJtOwotCXN0cnVjdCBkZXZpY2UgKmtkZXYgPSAmZGV2LT5wZGV2LT5kZXY7CisJc3RydWN0IHBj aV9kZXYgKnBkZXYgPSBkZXZfcHJpdi0+ZHJtLnBkZXY7CisJc3RydWN0IGRldmljZSAqa2RldiA9 ICZwZGV2LT5kZXY7CiAKIAlpZiAoSVNfRU5BQkxFRChDT05GSUdfUE0pKSB7CiAJCWludCByZXQg PSBwbV9ydW50aW1lX2dldF9pZl9pbl91c2Uoa2Rldik7CkBAIC0yNzE0LDggKzI3MTUsOCBAQCBi b29sIGludGVsX3J1bnRpbWVfcG1fZ2V0X2lmX2luX3VzZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCiAgKi8KIHZvaWQgaW50ZWxfcnVudGltZV9wbV9nZXRfbm9yZXN1bWUoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewotCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSAmZGV2X3ByaXYtPmRybTsKLQlzdHJ1Y3QgZGV2aWNlICprZGV2ID0gJmRldi0+cGRldi0+ ZGV2OworCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gZGV2X3ByaXYtPmRybS5wZGV2OworCXN0cnVj dCBkZXZpY2UgKmtkZXYgPSAmcGRldi0+ZGV2OwogCiAJYXNzZXJ0X3JwbV93YWtlbG9ja19oZWxk KGRldl9wcml2KTsKIAlwbV9ydW50aW1lX2dldF9ub3Jlc3VtZShrZGV2KTsKQEAgLTI3MzMsOCAr MjczNCw4IEBAIHZvaWQgaW50ZWxfcnVudGltZV9wbV9nZXRfbm9yZXN1bWUoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQogICovCiB2b2lkIGludGVsX3J1bnRpbWVfcG1fcHV0KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2ID0gJmRldl9wcml2LT5kcm07Ci0Jc3RydWN0IGRldmljZSAqa2RldiA9ICZkZXYtPnBkZXYt PmRldjsKKwlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IGRldl9wcml2LT5kcm0ucGRldjsKKwlzdHJ1 Y3QgZGV2aWNlICprZGV2ID0gJnBkZXYtPmRldjsKIAogCWFzc2VydF9ycG1fd2FrZWxvY2tfaGVs ZChkZXZfcHJpdik7CiAJaWYgKGF0b21pY19kZWNfYW5kX3Rlc3QoJmRldl9wcml2LT5wbS53YWtl cmVmX2NvdW50KSkKQEAgLTI3NTYsOCArMjc1Nyw5IEBAIHZvaWQgaW50ZWxfcnVudGltZV9wbV9w dXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogICovCiB2b2lkIGludGVsX3J1 bnRpbWVfcG1fZW5hYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKKwlz dHJ1Y3QgcGNpX2RldiAqcGRldiA9IGRldl9wcml2LT5kcm0ucGRldjsKIAlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gJmRldl9wcml2LT5kcm07Ci0Jc3RydWN0IGRldmljZSAqa2RldiA9ICZkZXYt PnBkZXYtPmRldjsKKwlzdHJ1Y3QgZGV2aWNlICprZGV2ID0gJnBkZXYtPmRldjsKIAogCXBtX3J1 bnRpbWVfc2V0X2F1dG9zdXNwZW5kX2RlbGF5KGtkZXYsIDEwMDAwKTsgLyogMTBzICovCiAJcG1f cnVudGltZV9tYXJrX2xhc3RfYnVzeShrZGV2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3Nkdm8uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nkdm8uYwpp bmRleCBlMzc4ZjM1MzY1YTIuLmRkNzU1MTBlYmE2NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfc2R2by5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nk dm8uYwpAQCAtMjkzMCwxMCArMjkzMCwxMiBAQCBzdGF0aWMgYm9vbAogaW50ZWxfc2R2b19pbml0 X2RkY19wcm94eShzdHJ1Y3QgaW50ZWxfc2R2byAqc2R2bywKIAkJCSAgc3RydWN0IGRybV9kZXZp Y2UgKmRldikKIHsKKwlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IGRldi0+cGRldjsKKwogCXNkdm8t PmRkYy5vd25lciA9IFRISVNfTU9EVUxFOwogCXNkdm8tPmRkYy5jbGFzcyA9IEkyQ19DTEFTU19E REM7CiAJc25wcmludGYoc2R2by0+ZGRjLm5hbWUsIEkyQ19OQU1FX1NJWkUsICJTRFZPIEREQyBw cm94eSIpOwotCXNkdm8tPmRkYy5kZXYucGFyZW50ID0gJmRldi0+cGRldi0+ZGV2OworCXNkdm8t PmRkYy5kZXYucGFyZW50ID0gJnBkZXYtPmRldjsKIAlzZHZvLT5kZGMuYWxnb19kYXRhID0gc2R2 bzsKIAlzZHZvLT5kZGMuYWxnbyA9ICZpbnRlbF9zZHZvX2RkY19wcm94eTsKIAotLSAKMi45LjMK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdm eCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=