From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Weinehall Subject: [PATCH 4/4] drm/i915: pdev cleanup Date: Mon, 1 Aug 2016 18:38:55 +0300 Message-ID: <1470065935-9861-5-git-send-email-david.weinehall@linux.intel.com> References: <1470065935-9861-1-git-send-email-david.weinehall@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id E4F516E350 for ; Mon, 1 Aug 2016 15:39:05 +0000 (UTC) In-Reply-To: <1470065935-9861-1-git-send-email-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 LgoKU2lnbmVkLW9mZi1ieTogRGF2aWQgV2VpbmVoYWxsIDxkYXZpZC53ZWluZWhhbGxAbGludXgu aW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgICAgICAgICB8 IDU4ICsrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fZ3R0LmMgICAgIHwgMzQgKysrKysrKysrKystLS0tLS0tLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fc3RvbGVuLmMgIHwgMTcgKysrKystLS0tLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYyAgIHwgIDkgKystLS0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfc3VzcGVuZC5jICAgICB8ICA2ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYyAgICB8IDI1ICsrKysrKysrKy0tLS0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9mYmRldi5jICAgICAgfCAgMyArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZ3VjX2xvYWRlci5jIHwgIDMgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2kyYy5j ICAgICAgICB8ICAzICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMg fCAzMCArKysrKysrKystLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc2R2by5j ICAgICAgIHwgIDQgKystCiAxMSBmaWxlcyBjaGFuZ2VkLCAxMTMgaW5zZXJ0aW9ucygrKSwgNzkg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKaW5kZXggYjE4NmUzNDJmNTQ4Li43 YTQ5NWYyYmI0YzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwpAQCAtMjMyLDYgKzIzMiw3IEBA IHN0YXRpYyBpbnQgaTkxNV9nZXRwYXJhbShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpk YXRhLAogCQkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQogewogCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKKwlzdHJ1Y3QgcGNpX2RldiAqcGRl diA9IGRldl9wcml2LT5kcm0ucGRldjsKIAlkcm1faTkxNV9nZXRwYXJhbV90ICpwYXJhbSA9IGRh dGE7CiAJaW50IHZhbHVlOwogCkBAIC0yNDIsMTAgKzI0MywxMCBAQCBzdGF0aWMgaW50IGk5MTVf Z2V0cGFyYW0oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJLyogUmVqZWN0 IGFsbCBvbGQgdW1zL2RyaSBwYXJhbXMuICovCiAJCXJldHVybiAtRU5PREVWOwogCWNhc2UgSTkx NV9QQVJBTV9DSElQU0VUX0lEOgotCQl2YWx1ZSA9IGRldi0+cGRldi0+ZGV2aWNlOworCQl2YWx1 ZSA9IHBkZXYtPmRldmljZTsKIAkJYnJlYWs7CiAJY2FzZSBJOTE1X1BBUkFNX1JFVklTSU9OOgot CQl2YWx1ZSA9IGRldi0+cGRldi0+cmV2aXNpb247CisJCXZhbHVlID0gcGRldi0+cmV2aXNpb247 CiAJCWJyZWFrOwogCWNhc2UgSTkxNV9QQVJBTV9IQVNfR0VNOgogCQl2YWx1ZSA9IDE7CkBAIC01 MTYsNyArNTE3LDcgQEAgc3RhdGljIHZvaWQgaTkxNV9zd2l0Y2hlcm9vX3NldF9zdGF0ZShzdHJ1 Y3QgcGNpX2RldiAqcGRldiwgZW51bSB2Z2Ffc3dpdGNoZXJvb18KIAkJcHJfaW5mbygic3dpdGNo ZWQgb25cbiIpOwogCQlkZXYtPnN3aXRjaF9wb3dlcl9zdGF0ZSA9IERSTV9TV0lUQ0hfUE9XRVJf Q0hBTkdJTkc7CiAJCS8qIGk5MTUgcmVzdW1lIGhhbmRsZXIgZG9lc24ndCBzZXQgdG8gRDAgKi8K LQkJcGNpX3NldF9wb3dlcl9zdGF0ZShkZXYtPnBkZXYsIFBDSV9EMCk7CisJCXBjaV9zZXRfcG93 ZXJfc3RhdGUocGRldiwgUENJX0QwKTsKIAkJaTkxNV9yZXN1bWVfc3dpdGNoZXJvbyhkZXYpOwog CQlkZXYtPnN3aXRjaF9wb3dlcl9zdGF0ZSA9IERSTV9TV0lUQ0hfUE9XRVJfT047CiAJfSBlbHNl IHsKQEAgLTU4NSw2ICs1ODYsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X2dlbV9maW5pKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpCiBzdGF0aWMgaW50IGk5MTVfbG9hZF9tb2Rlc2V0X2luaXQoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGRldik7CisJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBkZXZfcHJpdi0+ZHJtLnBk ZXY7CiAJaW50IHJldDsKIAogCWlmIChpOTE1X2luamVjdF9sb2FkX2ZhaWx1cmUoKSkKQEAgLTYw MSwxMyArNjAzLDEzIEBAIHN0YXRpYyBpbnQgaTkxNV9sb2FkX21vZGVzZXRfaW5pdChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KQogCSAqIHRoZW4gd2UgZG8gbm90IHRha2UgcGFydCBpbiBWR0EgYXJi aXRyYXRpb24gYW5kIHRoZQogCSAqIHZnYV9jbGllbnRfcmVnaXN0ZXIoKSBmYWlscyB3aXRoIC1F Tk9ERVYuCiAJICovCi0JcmV0ID0gdmdhX2NsaWVudF9yZWdpc3RlcihkZXYtPnBkZXYsIGRldiwg TlVMTCwgaTkxNV92Z2Ffc2V0X2RlY29kZSk7CisJcmV0ID0gdmdhX2NsaWVudF9yZWdpc3Rlcihw ZGV2LCBkZXYsIE5VTEwsIGk5MTVfdmdhX3NldF9kZWNvZGUpOwogCWlmIChyZXQgJiYgcmV0ICE9 IC1FTk9ERVYpCiAJCWdvdG8gb3V0OwogCiAJaW50ZWxfcmVnaXN0ZXJfZHNtX2hhbmRsZXIoKTsK IAotCXJldCA9IHZnYV9zd2l0Y2hlcm9vX3JlZ2lzdGVyX2NsaWVudChkZXYtPnBkZXYsICZpOTE1 X3N3aXRjaGVyb29fb3BzLCBmYWxzZSk7CisJcmV0ID0gdmdhX3N3aXRjaGVyb29fcmVnaXN0ZXJf Y2xpZW50KHBkZXYsICZpOTE1X3N3aXRjaGVyb29fb3BzLCBmYWxzZSk7CiAJaWYgKHJldCkKIAkJ Z290byBjbGVhbnVwX3ZnYV9jbGllbnQ7CiAKQEAgLTY1OSw5ICs2NjEsOSBAQCBjbGVhbnVwX2ly cToKIGNsZWFudXBfY3NyOgogCWludGVsX2Nzcl91Y29kZV9maW5pKGRldl9wcml2KTsKIAlpbnRl bF9wb3dlcl9kb21haW5zX2ZpbmkoZGV2X3ByaXYpOwotCXZnYV9zd2l0Y2hlcm9vX3VucmVnaXN0 ZXJfY2xpZW50KGRldi0+cGRldik7CisJdmdhX3N3aXRjaGVyb29fdW5yZWdpc3Rlcl9jbGllbnQo cGRldik7CiBjbGVhbnVwX3ZnYV9jbGllbnQ6Ci0JdmdhX2NsaWVudF9yZWdpc3RlcihkZXYtPnBk ZXYsIE5VTEwsIE5VTEwsIE5VTEwpOworCXZnYV9jbGllbnRfcmVnaXN0ZXIocGRldiwgTlVMTCwg TlVMTCwgTlVMTCk7CiBvdXQ6CiAJcmV0dXJuIHJldDsKIH0KQEAgLTg3OSw2ICs4ODEsNyBAQCBz dGF0aWMgdm9pZCBpOTE1X2RyaXZlcl9jbGVhbnVwX2Vhcmx5KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKIHN0YXRpYyBpbnQgaTkxNV9tbWlvX3NldHVwKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShkZXYpOworCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gZGV2X3ByaXYtPmRybS5wZGV2OwogCWlu dCBtbWlvX2JhcjsKIAlpbnQgbW1pb19zaXplOwogCkBAIC04OTUsNyArODk4LDcgQEAgc3RhdGlj IGludCBpOTE1X21taW9fc2V0dXAoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJbW1pb19zaXpl ID0gNTEyICogMTAyNDsKIAllbHNlCiAJCW1taW9fc2l6ZSA9IDIgKiAxMDI0ICogMTAyNDsKLQlk ZXZfcHJpdi0+cmVncyA9IHBjaV9pb21hcChkZXYtPnBkZXYsIG1taW9fYmFyLCBtbWlvX3NpemUp OworCWRldl9wcml2LT5yZWdzID0gcGNpX2lvbWFwKHBkZXYsIG1taW9fYmFyLCBtbWlvX3NpemUp OwogCWlmIChkZXZfcHJpdi0+cmVncyA9PSBOVUxMKSB7CiAJCURSTV9FUlJPUigiZmFpbGVkIHRv IG1hcCByZWdpc3RlcnNcbiIpOwogCkBAIC05MTEsOSArOTE0LDEwIEBAIHN0YXRpYyBpbnQgaTkx NV9tbWlvX3NldHVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiBzdGF0aWMgdm9pZCBpOTE1X21t aW9fY2xlYW51cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewogCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKKwlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9 IGRldl9wcml2LT5kcm0ucGRldjsKIAogCWludGVsX3RlYXJkb3duX21jaGJhcihkZXYpOwotCXBj aV9pb3VubWFwKGRldi0+cGRldiwgZGV2X3ByaXYtPnJlZ3MpOworCXBjaV9pb3VubWFwKHBkZXYs IGRldl9wcml2LT5yZWdzKTsKIH0KIAogLyoqCkBAIC05OTIsNiArOTk2LDcgQEAgc3RhdGljIHZv aWQgaW50ZWxfc2FuaXRpemVfb3B0aW9ucyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCiAgKi8KIHN0YXRpYyBpbnQgaTkxNV9kcml2ZXJfaW5pdF9odyhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCiB7CisJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBkZXZfcHJpdi0+ ZHJtLnBkZXY7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9ICZkZXZfcHJpdi0+ZHJtOwogCXN0 cnVjdCBpOTE1X2dndHQgKmdndHQgPSAmZGV2X3ByaXYtPmdndHQ7CiAJdWludDMyX3QgYXBlcnR1 cmVfc2l6ZTsKQEAgLTEwMjgsMTEgKzEwMzMsMTEgQEAgc3RhdGljIGludCBpOTE1X2RyaXZlcl9p bml0X2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJZ290byBvdXRfZ2d0 dDsKIAl9CiAKLQlwY2lfc2V0X21hc3RlcihkZXYtPnBkZXYpOworCXBjaV9zZXRfbWFzdGVyKHBk ZXYpOwogCiAJLyogb3ZlcmxheSBvbiBnZW4yIGlzIGJyb2tlbiBhbmQgY2FuJ3QgYWRkcmVzcyBh Ym92ZSAxRyAqLwogCWlmIChJU19HRU4yKGRldikpIHsKLQkJcmV0ID0gZG1hX3NldF9jb2hlcmVu dF9tYXNrKCZkZXYtPnBkZXYtPmRldiwgRE1BX0JJVF9NQVNLKDMwKSk7CisJCXJldCA9IGRtYV9z ZXRfY29oZXJlbnRfbWFzaygmcGRldi0+ZGV2LCBETUFfQklUX01BU0soMzApKTsKIAkJaWYgKHJl dCkgewogCQkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gc2V0IERNQSBtYXNrXG4iKTsKIApAQCAtMTA1 MCw3ICsxMDU1LDcgQEAgc3RhdGljIGludCBpOTE1X2RyaXZlcl9pbml0X2h3KHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkgKiB3aGljaCBhbHNvIG5lZWRzIHRvIGJlIGhhbmRs ZWQgY2FyZWZ1bGx5LgogCSAqLwogCWlmIChJU19CUk9BRFdBVEVSKGRldikgfHwgSVNfQ1JFU1RM SU5FKGRldikpIHsKLQkJcmV0ID0gZG1hX3NldF9jb2hlcmVudF9tYXNrKCZkZXYtPnBkZXYtPmRl diwgRE1BX0JJVF9NQVNLKDMyKSk7CisJCXJldCA9IGRtYV9zZXRfY29oZXJlbnRfbWFzaygmcGRl di0+ZGV2LCBETUFfQklUX01BU0soMzIpKTsKIAogCQlpZiAocmV0KSB7CiAJCQlEUk1fRVJST1Io ImZhaWxlZCB0byBzZXQgRE1BIG1hc2tcbiIpOwpAQCAtMTA5Myw3ICsxMDk4LDcgQEAgc3RhdGlj IGludCBpOTE1X2RyaXZlcl9pbml0X2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKIAkgKiBzdHVjayBpbnRlcnJ1cHRzIG9uIHNvbWUgbWFjaGluZXMuCiAJICovCiAJaWYgKCFJ U19JOTQ1RyhkZXYpICYmICFJU19JOTQ1R00oZGV2KSkgewotCQlpZiAocGNpX2VuYWJsZV9tc2ko ZGV2LT5wZGV2KSA8IDApCisJCWlmIChwY2lfZW5hYmxlX21zaShwZGV2KSA8IDApCiAJCQlEUk1f REVCVUdfRFJJVkVSKCJjYW4ndCBlbmFibGUgTVNJIik7CiAJfQogCkBAIC0xMTExLDExICsxMTE2 LDEyIEBAIG91dF9nZ3R0OgogICovCiBzdGF0aWMgdm9pZCBpOTE1X2RyaXZlcl9jbGVhbnVwX2h3 KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKKwlzdHJ1Y3QgcGNpX2RldiAq cGRldiA9IGRldl9wcml2LT5kcm0ucGRldjsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJmRl dl9wcml2LT5kcm07CiAJc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCA9ICZkZXZfcHJpdi0+Z2d0dDsK IAotCWlmIChkZXYtPnBkZXYtPm1zaV9lbmFibGVkKQotCQlwY2lfZGlzYWJsZV9tc2koZGV2LT5w ZGV2KTsKKwlpZiAocGRldi0+bXNpX2VuYWJsZWQpCisJCXBjaV9kaXNhYmxlX21zaShwZGV2KTsK IAogCXBtX3Fvc19yZW1vdmVfcmVxdWVzdCgmZGV2X3ByaXYtPnBtX3Fvcyk7CiAJYXJjaF9waHlz X3djX2RlbChnZ3R0LT5tdHJyKTsKQEAgLTEyODcsNiArMTI5Myw3IEBAIG91dF9mcmVlX3ByaXY6 CiB2b2lkIGk5MTVfZHJpdmVyX3VubG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewogCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKKwlzdHJ1Y3Qg cGNpX2RldiAqcGRldiA9IGRldl9wcml2LT5kcm0ucGRldjsKIAogCWludGVsX2ZiZGV2X2Zpbmko ZGV2KTsKIApAQCAtMTMxNSw4ICsxMzIyLDggQEAgdm9pZCBpOTE1X2RyaXZlcl91bmxvYWQoc3Ry dWN0IGRybV9kZXZpY2UgKmRldikKIAlrZnJlZShkZXZfcHJpdi0+dmJ0LmxmcF9sdmRzX3ZidF9t b2RlKTsKIAlkZXZfcHJpdi0+dmJ0LmxmcF9sdmRzX3ZidF9tb2RlID0gTlVMTDsKIAotCXZnYV9z d2l0Y2hlcm9vX3VucmVnaXN0ZXJfY2xpZW50KGRldi0+cGRldik7Ci0JdmdhX2NsaWVudF9yZWdp c3RlcihkZXYtPnBkZXYsIE5VTEwsIE5VTEwsIE5VTEwpOworCXZnYV9zd2l0Y2hlcm9vX3VucmVn aXN0ZXJfY2xpZW50KHBkZXYpOworCXZnYV9jbGllbnRfcmVnaXN0ZXIocGRldiwgTlVMTCwgTlVM TCwgTlVMTCk7CiAKIAlpbnRlbF9jc3JfdWNvZGVfZmluaShkZXZfcHJpdik7CiAKQEAgLTE0MTMs NiArMTQyMCw3IEBAIHN0YXRpYyBib29sIHN1c3BlbmRfdG9faWRsZShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCiBzdGF0aWMgaW50IGk5MTVfZHJtX3N1c3BlbmQoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGRldik7CisJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBkZXZfcHJpdi0+ZHJtLnBkZXY7 CiAJcGNpX3Bvd2VyX3Qgb3ByZWdpb25fdGFyZ2V0X3N0YXRlOwogCWludCBlcnJvcjsKIApAQCAt MTQyOSwxMSArMTQzNywxMSBAQCBzdGF0aWMgaW50IGk5MTVfZHJtX3N1c3BlbmQoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKIAogCWRybV9rbXNfaGVscGVyX3BvbGxfZGlzYWJsZShkZXYpOwogCi0J cGNpX3NhdmVfc3RhdGUoZGV2LT5wZGV2KTsKKwlwY2lfc2F2ZV9zdGF0ZShwZGV2KTsKIAogCWVy cm9yID0gaTkxNV9nZW1fc3VzcGVuZChkZXYpOwogCWlmIChlcnJvcikgewotCQlkZXZfZXJyKCZk ZXYtPnBkZXYtPmRldiwKKwkJZGV2X2VycigmcGRldi0+ZGV2LAogCQkJIkdFTSBpZGxlIGZhaWxl ZCwgcmVzdW1lIG1pZ2h0IGZhaWxcbiIpOwogCQlnb3RvIG91dDsKIAl9CkBAIC0xNDc4LDYgKzE0 ODYsNyBAQCBvdXQ6CiBzdGF0aWMgaW50IGk5MTVfZHJtX3N1c3BlbmRfbGF0ZShzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCBib29sIGhpYmVybmF0aW9uKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKKwlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IGRl dl9wcml2LT5kcm0ucGRldjsKIAlib29sIGZ3X2NzcjsKIAlpbnQgcmV0OwogCkBAIC0xNTExLDcg KzE1MjAsNyBAQCBzdGF0aWMgaW50IGk5MTVfZHJtX3N1c3BlbmRfbGF0ZShzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCBib29sIGhpYmVybmF0aW9uKQogCQlnb3RvIG91dDsKIAl9CiAKLQlwY2lfZGlz YWJsZV9kZXZpY2UoZGV2LT5wZGV2KTsKKwlwY2lfZGlzYWJsZV9kZXZpY2UocGRldik7CiAJLyoK IAkgKiBEdXJpbmcgaGliZXJuYXRpb24gb24gc29tZSBwbGF0Zm9ybXMgdGhlIEJJT1MgbWF5IHRy eSB0byBhY2Nlc3MKIAkgKiB0aGUgZGV2aWNlIGV2ZW4gdGhvdWdoIGl0J3MgYWxyZWFkeSBpbiBE MyBhbmQgaGFuZyB0aGUgbWFjaGluZS4gU28KQEAgLTE1MjUsNyArMTUzNCw3IEBAIHN0YXRpYyBp bnQgaTkxNV9kcm1fc3VzcGVuZF9sYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGJvb2wgaGli ZXJuYXRpb24pCiAJICogQWNlciBBc3BpcmUgMTgzMFQKIAkgKi8KIAlpZiAoIShoaWJlcm5hdGlv biAmJiBJTlRFTF9JTkZPKGRldl9wcml2KS0+Z2VuIDwgNikpCi0JCXBjaV9zZXRfcG93ZXJfc3Rh dGUoZGV2LT5wZGV2LCBQQ0lfRDNob3QpOworCQlwY2lfc2V0X3Bvd2VyX3N0YXRlKHBkZXYsIFBD SV9EM2hvdCk7CiAKIAlkZXZfcHJpdi0+c3VzcGVuZGVkX3RvX2lkbGUgPSBzdXNwZW5kX3RvX2lk bGUoZGV2X3ByaXYpOwogCkBAIC0xNjQxLDYgKzE2NTAsNyBAQCBzdGF0aWMgaW50IGk5MTVfZHJt X3Jlc3VtZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogc3RhdGljIGludCBpOTE1X2RybV9yZXN1 bWVfZWFybHkoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CisJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBk ZXZfcHJpdi0+ZHJtLnBkZXY7CiAJaW50IHJldDsKIAogCS8qCkBAIC0xNjYzLDcgKzE2NzMsNyBA QCBzdGF0aWMgaW50IGk5MTVfZHJtX3Jlc3VtZV9lYXJseShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQogCSAqIHRoZSBkZXZpY2UgcG93ZXJlZCB3ZSBjYW4gYWxzbyByZW1vdmUgdGhlIGZvbGxvd2lu ZyBzZXQgcG93ZXIgc3RhdGUKIAkgKiBjYWxsLgogCSAqLwotCXJldCA9IHBjaV9zZXRfcG93ZXJf c3RhdGUoZGV2LT5wZGV2LCBQQ0lfRDApOworCXJldCA9IHBjaV9zZXRfcG93ZXJfc3RhdGUocGRl diwgUENJX0QwKTsKIAlpZiAocmV0KSB7CiAJCURSTV9FUlJPUigiZmFpbGVkIHRvIHNldCBQQ0kg RDAgcG93ZXIgc3RhdGUgKCVkKVxuIiwgcmV0KTsKIAkJZ290byBvdXQ7CkBAIC0xNjgyLDEyICsx NjkyLDEyIEBAIHN0YXRpYyBpbnQgaTkxNV9kcm1fcmVzdW1lX2Vhcmx5KHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCiAJICogZGVwZW5kIG9uIHRoZSBkZXZpY2UgZW5hYmxlIHJlZmNvdW50IHdlIGNh bid0IGFueXdheSBkZXBlbmQgb24gdGhlbQogCSAqIGRpc2FibGluZy9lbmFibGluZyB0aGUgZGV2 aWNlLgogCSAqLwotCWlmIChwY2lfZW5hYmxlX2RldmljZShkZXYtPnBkZXYpKSB7CisJaWYgKHBj aV9lbmFibGVfZGV2aWNlKHBkZXYpKSB7CiAJCXJldCA9IC1FSU87CiAJCWdvdG8gb3V0OwogCX0K IAotCXBjaV9zZXRfbWFzdGVyKGRldi0+cGRldik7CisJcGNpX3NldF9tYXN0ZXIocGRldik7CiAK IAlkaXNhYmxlX3JwbV93YWtlcmVmX2Fzc2VydHMoZGV2X3ByaXYpOwogCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX2d0dC5jCmluZGV4IDFlNDhkYmEzYzQ4Zi4uOWJjYjVjZDk4NGYwIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwpAQCAtMzQ4LDEwICszNDgsMTIgQEAgc3RhdGljIGlu dCBzZXR1cF9wYWdlX2RtYShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgaTkxNV9wYWdl X2RtYSAqcCkKIAogc3RhdGljIHZvaWQgY2xlYW51cF9wYWdlX2RtYShzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCBzdHJ1Y3QgaTkxNV9wYWdlX2RtYSAqcCkKIHsKKwlzdHJ1Y3QgcGNpX2RldiAqcGRl diA9IGRldi0+cGRldjsKKwogCWlmIChXQVJOX09OKCFwLT5wYWdlKSkKIAkJcmV0dXJuOwogCi0J ZG1hX3VubWFwX3BhZ2UoJmRldi0+cGRldi0+ZGV2LCBwLT5kYWRkciwgNDA5NiwgUENJX0RNQV9C SURJUkVDVElPTkFMKTsKKwlkbWFfdW5tYXBfcGFnZSgmcGRldi0+ZGV2LCBwLT5kYWRkciwgNDA5 NiwgUENJX0RNQV9CSURJUkVDVElPTkFMKTsKIAlfX2ZyZWVfcGFnZShwLT5wYWdlKTsKIAltZW1z ZXQocCwgMCwgc2l6ZW9mKCpwKSk7CiB9CkBAIC0yNzE4LDExICsyNzIwLDEyIEBAIHZvaWQgaTkx NV9nZW1fZ3R0X2ZpbmlzaF9vYmplY3Qoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikK IHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gb2JqLT5iYXNlLmRldjsKIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CisJc3RydWN0IHBjaV9kZXYg KnBkZXYgPSBkZXZfcHJpdi0+ZHJtLnBkZXY7CiAJYm9vbCBpbnRlcnJ1cHRpYmxlOwogCiAJaW50 ZXJydXB0aWJsZSA9IGRvX2lkbGluZyhkZXZfcHJpdik7CiAKLQlkbWFfdW5tYXBfc2coJmRldi0+ cGRldi0+ZGV2LCBvYmotPnBhZ2VzLT5zZ2wsIG9iai0+cGFnZXMtPm5lbnRzLAorCWRtYV91bm1h cF9zZygmcGRldi0+ZGV2LCBvYmotPnBhZ2VzLT5zZ2wsIG9iai0+cGFnZXMtPm5lbnRzLAogCQkg ICAgIFBDSV9ETUFfQklESVJFQ1RJT05BTCk7CiAKIAl1bmRvX2lkbGluZyhkZXZfcHJpdiwgaW50 ZXJydXB0aWJsZSk7CkBAIC0yOTY3LDEzICsyOTcwLDE0IEBAIHN0YXRpYyBpbnQgZ2d0dF9wcm9i ZV9jb21tb24oc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCSAgICAgc2l6ZV90IGd0dF9zaXpl KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsK KwlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IGRldl9wcml2LT5kcm0ucGRldjsKIAlzdHJ1Y3QgaTkx NV9nZ3R0ICpnZ3R0ID0gJmRldl9wcml2LT5nZ3R0OwogCXN0cnVjdCBpOTE1X3BhZ2Vfc2NyYXRj aCAqc2NyYXRjaF9wYWdlOwogCXBoeXNfYWRkcl90IGdndHRfcGh5c19hZGRyOwogCiAJLyogRm9y IE1vZGVybiBHRU5zIHRoZSBQVEVzIGFuZCByZWdpc3RlciBzcGFjZSBhcmUgc3BsaXQgaW4gdGhl IEJBUiAqLwotCWdndHRfcGh5c19hZGRyID0gcGNpX3Jlc291cmNlX3N0YXJ0KGRldi0+cGRldiwg MCkgKwotCQkJIChwY2lfcmVzb3VyY2VfbGVuKGRldi0+cGRldiwgMCkgLyAyKTsKKwlnZ3R0X3Bo eXNfYWRkciA9IHBjaV9yZXNvdXJjZV9zdGFydChwZGV2LCAwKSArCisJCQkgKHBjaV9yZXNvdXJj ZV9sZW4ocGRldiwgMCkgLyAyKTsKIAogCS8qCiAJICogT24gQlhUIHdyaXRlcyBsYXJnZXIgdGhh biA2NCBiaXQgdG8gdGhlIEdUVCBwYWdldGFibGUgcmFuZ2Ugd2lsbCBiZQpAQCAtMzA4MSwxNyAr MzA4NSwxOCBAQCBzdGF0aWMgaW50IGdlbjhfZ21jaF9wcm9iZShzdHJ1Y3QgaTkxNV9nZ3R0ICpn Z3R0KQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBnZ3R0LT5iYXNlLmRldjsKIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CisJc3RydWN0IHBj aV9kZXYgKnBkZXYgPSBkZXZfcHJpdi0+ZHJtLnBkZXY7CiAJdTE2IHNuYl9nbWNoX2N0bDsKIAlp bnQgcmV0OwogCiAJLyogVE9ETzogV2UncmUgbm90IGF3YXJlIG9mIG1hcHBhYmxlIGNvbnN0cmFp bnRzIG9uIGdlbjggeWV0ICovCi0JZ2d0dC0+bWFwcGFibGVfYmFzZSA9IHBjaV9yZXNvdXJjZV9z dGFydChkZXYtPnBkZXYsIDIpOwotCWdndHQtPm1hcHBhYmxlX2VuZCA9IHBjaV9yZXNvdXJjZV9s ZW4oZGV2LT5wZGV2LCAyKTsKKwlnZ3R0LT5tYXBwYWJsZV9iYXNlID0gcGNpX3Jlc291cmNlX3N0 YXJ0KHBkZXYsIDIpOworCWdndHQtPm1hcHBhYmxlX2VuZCA9IHBjaV9yZXNvdXJjZV9sZW4ocGRl diwgMik7CiAKLQlpZiAoIXBjaV9zZXRfZG1hX21hc2soZGV2LT5wZGV2LCBETUFfQklUX01BU0so MzkpKSkKLQkJcGNpX3NldF9jb25zaXN0ZW50X2RtYV9tYXNrKGRldi0+cGRldiwgRE1BX0JJVF9N QVNLKDM5KSk7CisJaWYgKCFwY2lfc2V0X2RtYV9tYXNrKHBkZXYsIERNQV9CSVRfTUFTSygzOSkp KQorCQlwY2lfc2V0X2NvbnNpc3RlbnRfZG1hX21hc2socGRldiwgRE1BX0JJVF9NQVNLKDM5KSk7 CiAKLQlwY2lfcmVhZF9jb25maWdfd29yZChkZXYtPnBkZXYsIFNOQl9HTUNIX0NUUkwsICZzbmJf Z21jaF9jdGwpOworCXBjaV9yZWFkX2NvbmZpZ193b3JkKHBkZXYsIFNOQl9HTUNIX0NUUkwsICZz bmJfZ21jaF9jdGwpOwogCiAJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDkpIHsKIAkJZ2d0 dC0+c3RvbGVuX3NpemUgPSBnZW45X2dldF9zdG9sZW5fc2l6ZShzbmJfZ21jaF9jdGwpOwpAQCAt MzEzMCwxMSArMzEzNSwxMiBAQCBzdGF0aWMgaW50IGdlbjhfZ21jaF9wcm9iZShzdHJ1Y3QgaTkx NV9nZ3R0ICpnZ3R0KQogc3RhdGljIGludCBnZW42X2dtY2hfcHJvYmUoc3RydWN0IGk5MTVfZ2d0 dCAqZ2d0dCkKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZ2d0dC0+YmFzZS5kZXY7CisJ c3RydWN0IHBjaV9kZXYgKnBkZXYgPSBkZXYtPnBkZXY7CiAJdTE2IHNuYl9nbWNoX2N0bDsKIAlp bnQgcmV0OwogCi0JZ2d0dC0+bWFwcGFibGVfYmFzZSA9IHBjaV9yZXNvdXJjZV9zdGFydChkZXYt PnBkZXYsIDIpOwotCWdndHQtPm1hcHBhYmxlX2VuZCA9IHBjaV9yZXNvdXJjZV9sZW4oZGV2LT5w ZGV2LCAyKTsKKwlnZ3R0LT5tYXBwYWJsZV9iYXNlID0gcGNpX3Jlc291cmNlX3N0YXJ0KHBkZXYs IDIpOworCWdndHQtPm1hcHBhYmxlX2VuZCA9IHBjaV9yZXNvdXJjZV9sZW4ocGRldiwgMik7CiAK IAkvKiA2NC81MTJNQiBpcyB0aGUgY3VycmVudCBtaW4vbWF4IHdlIGFjdHVhbGx5IGtub3cgb2Ys IGJ1dCB0aGlzIGlzIGp1c3QKIAkgKiBhIGNvYXJzZSBzYW5pdHkgY2hlY2suCkBAIC0zMTQ0LDkg KzMxNTAsOSBAQCBzdGF0aWMgaW50IGdlbjZfZ21jaF9wcm9iZShzdHJ1Y3QgaTkxNV9nZ3R0ICpn Z3R0KQogCQlyZXR1cm4gLUVOWElPOwogCX0KIAotCWlmICghcGNpX3NldF9kbWFfbWFzayhkZXYt PnBkZXYsIERNQV9CSVRfTUFTSyg0MCkpKQotCQlwY2lfc2V0X2NvbnNpc3RlbnRfZG1hX21hc2so ZGV2LT5wZGV2LCBETUFfQklUX01BU0soNDApKTsKLQlwY2lfcmVhZF9jb25maWdfd29yZChkZXYt PnBkZXYsIFNOQl9HTUNIX0NUUkwsICZzbmJfZ21jaF9jdGwpOworCWlmICghcGNpX3NldF9kbWFf bWFzayhwZGV2LCBETUFfQklUX01BU0soNDApKSkKKwkJcGNpX3NldF9jb25zaXN0ZW50X2RtYV9t YXNrKHBkZXYsIERNQV9CSVRfTUFTSyg0MCkpOworCXBjaV9yZWFkX2NvbmZpZ193b3JkKHBkZXYs IFNOQl9HTUNIX0NUUkwsICZzbmJfZ21jaF9jdGwpOwogCiAJZ2d0dC0+c3RvbGVuX3NpemUgPSBn ZW42X2dldF9zdG9sZW5fc2l6ZShzbmJfZ21jaF9jdGwpOwogCWdndHQtPnNpemUgPSBnZW42X2dl dF90b3RhbF9ndHRfc2l6ZShzbmJfZ21jaF9jdGwpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fc3RvbGVuLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9zdG9sZW4uYwppbmRleCAzMTA3NTZjMzA3MjMuLmYwYjgwMmJmZmMxZSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc3RvbGVuLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fc3RvbGVuLmMKQEAgLTkyLDYgKzkyLDcgQEAgdm9pZCBpOTE1X2dl bV9zdG9sZW5fcmVtb3ZlX25vZGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAog c3RhdGljIHVuc2lnbmVkIGxvbmcgaTkxNV9zdG9sZW5fdG9fcGh5c2ljYWwoc3RydWN0IGRybV9k ZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGRldik7CisJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBkZXZfcHJpdi0+ZHJtLnBkZXY7CiAJ c3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCA9ICZkZXZfcHJpdi0+Z2d0dDsKIAlzdHJ1Y3QgcmVzb3Vy Y2UgKnI7CiAJdTMyIGJhc2U7CkBAIC0xMTEsNyArMTEyLDcgQEAgc3RhdGljIHVuc2lnbmVkIGxv bmcgaTkxNV9zdG9sZW5fdG9fcGh5c2ljYWwoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlpZiAo SU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gMykgewogCQl1MzIgYnNtOwogCi0JCXBjaV9yZWFkX2Nv bmZpZ19kd29yZChkZXYtPnBkZXYsIElOVEVMX0JTTSwgJmJzbSk7CisJCXBjaV9yZWFkX2NvbmZp Z19kd29yZChwZGV2LCBJTlRFTF9CU00sICZic20pOwogCiAJCWJhc2UgPSBic20gJiBJTlRFTF9C U01fTUFTSzsKIAl9IGVsc2UgaWYgKElTX0k4NjVHKGRldikpIHsKQEAgLTEyMiw3ICsxMjMsNyBA QCBzdGF0aWMgdW5zaWduZWQgbG9uZyBpOTE1X3N0b2xlbl90b19waHlzaWNhbChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KQogCQkgKiBhbHdheXMgYXQgVE9VRD8gSWUuIGlzIGl0IGFsd2F5cyB0aGUg bGFzdAogCQkgKiBvbmUgdG8gYmUgYWxsb2NhdGVkIGJ5IHRoZSBCSU9TPwogCQkgKi8KLQkJcGNp X2J1c19yZWFkX2NvbmZpZ193b3JkKGRldi0+cGRldi0+YnVzLCBQQ0lfREVWRk4oMCwgMCksCisJ CXBjaV9idXNfcmVhZF9jb25maWdfd29yZChwZGV2LT5idXMsIFBDSV9ERVZGTigwLCAwKSwKIAkJ CQkJIEk4NjVfVE9VRCwgJnRvdWQpOwogCiAJCWJhc2UgPSB0b3VkIDw8IDE2OwpAQCAtMTMxLDEz ICsxMzIsMTMgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgaTkxNV9zdG9sZW5fdG9fcGh5c2ljYWwo c3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJdTMyIHRvbTsKIAkJdTggdG1wOwogCi0JCXBjaV9i dXNfcmVhZF9jb25maWdfYnl0ZShkZXYtPnBkZXYtPmJ1cywgUENJX0RFVkZOKDAsIDApLAorCQlw Y2lfYnVzX3JlYWRfY29uZmlnX2J5dGUocGRldi0+YnVzLCBQQ0lfREVWRk4oMCwgMCksCiAJCQkJ CSBJODVYX0VTTVJBTUMsICZ0bXApOwogCiAJCWlmICh0bXAgJiBUU0VHX0VOQUJMRSkKIAkJCXRz ZWdfc2l6ZSA9IE1CKDEpOwogCi0JCXBjaV9idXNfcmVhZF9jb25maWdfYnl0ZShkZXYtPnBkZXYt PmJ1cywgUENJX0RFVkZOKDAsIDEpLAorCQlwY2lfYnVzX3JlYWRfY29uZmlnX2J5dGUocGRldi0+ YnVzLCBQQ0lfREVWRk4oMCwgMSksCiAJCQkJCSBJODVYX0RSQjMsICZ0bXApOwogCQl0b20gPSB0 bXAgKiBNQigzMik7CiAKQEAgLTE0Nyw3ICsxNDgsNyBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBp OTE1X3N0b2xlbl90b19waHlzaWNhbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQl1MzIgdG9t OwogCQl1OCB0bXA7CiAKLQkJcGNpX2J1c19yZWFkX2NvbmZpZ19ieXRlKGRldi0+cGRldi0+YnVz LCBQQ0lfREVWRk4oMCwgMCksCisJCXBjaV9idXNfcmVhZF9jb25maWdfYnl0ZShwZGV2LT5idXMs IFBDSV9ERVZGTigwLCAwKSwKIAkJCQkJIEk4NDVfRVNNUkFNQywgJnRtcCk7CiAKIAkJaWYgKHRt cCAmIFRTRUdfRU5BQkxFKSB7CkBAIC0xNjEsNyArMTYyLDcgQEAgc3RhdGljIHVuc2lnbmVkIGxv bmcgaTkxNV9zdG9sZW5fdG9fcGh5c2ljYWwoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJCX0K IAkJfQogCi0JCXBjaV9idXNfcmVhZF9jb25maWdfYnl0ZShkZXYtPnBkZXYtPmJ1cywgUENJX0RF VkZOKDAsIDApLAorCQlwY2lfYnVzX3JlYWRfY29uZmlnX2J5dGUocGRldi0+YnVzLCBQQ0lfREVW Rk4oMCwgMCksCiAJCQkJCSBJODMwX0RSQjMsICZ0bXApOwogCQl0b20gPSB0bXAgKiBNQigzMik7 CiAKQEAgLTE3MSw3ICsxNzIsNyBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBpOTE1X3N0b2xlbl90 b19waHlzaWNhbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQl1MzIgdG9tOwogCQl1OCB0bXA7 CiAKLQkJcGNpX2J1c19yZWFkX2NvbmZpZ19ieXRlKGRldi0+cGRldi0+YnVzLCBQQ0lfREVWRk4o MCwgMCksCisJCXBjaV9idXNfcmVhZF9jb25maWdfYnl0ZShwZGV2LT5idXMsIFBDSV9ERVZGTigw LCAwKSwKIAkJCQkJIEk4MzBfRVNNUkFNQywgJnRtcCk7CiAKIAkJaWYgKHRtcCAmIFRTRUdfRU5B QkxFKSB7CkBAIC0xODEsNyArMTgyLDcgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgaTkxNV9zdG9s ZW5fdG9fcGh5c2ljYWwoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJCQl0c2VnX3NpemUgPSBL Qig1MTIpOwogCQl9CiAKLQkJcGNpX2J1c19yZWFkX2NvbmZpZ19ieXRlKGRldi0+cGRldi0+YnVz LCBQQ0lfREVWRk4oMCwgMCksCisJCXBjaV9idXNfcmVhZF9jb25maWdfYnl0ZShwZGV2LT5idXMs IFBDSV9ERVZGTigwLCAwKSwKIAkJCQkJIEk4MzBfRFJCMywgJnRtcCk7CiAJCXRvbSA9IHRtcCAq IE1CKDMyKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJy b3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKaW5kZXggYmM0YTNl YmMyNjYyLi5lYjZjMTA5YjRiZWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ3B1X2Vycm9yLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3Iu YwpAQCAtMzI4LDYgKzMyOCw3IEBAIGludCBpOTE1X2Vycm9yX3N0YXRlX3RvX3N0cihzdHJ1Y3Qg ZHJtX2k5MTVfZXJyb3Jfc3RhdGVfYnVmICptLAogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSBlcnJvcl9wcml2LT5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShkZXYpOworCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gZGV2X3ByaXYtPmRybS5wZGV2 OwogCXN0cnVjdCBkcm1faTkxNV9lcnJvcl9zdGF0ZSAqZXJyb3IgPSBlcnJvcl9wcml2LT5lcnJv cjsKIAlzdHJ1Y3QgZHJtX2k5MTVfZXJyb3Jfb2JqZWN0ICpvYmo7CiAJaW50IGksIGosIG9mZnNl dCwgZWx0OwpAQCAtMzU4LDExICszNTksMTEgQEAgaW50IGk5MTVfZXJyb3Jfc3RhdGVfdG9fc3Ry KHN0cnVjdCBkcm1faTkxNV9lcnJvcl9zdGF0ZV9idWYgKm0sCiAJfQogCWVycl9wcmludGYobSwg IlJlc2V0IGNvdW50OiAldVxuIiwgZXJyb3ItPnJlc2V0X2NvdW50KTsKIAllcnJfcHJpbnRmKG0s ICJTdXNwZW5kIGNvdW50OiAldVxuIiwgZXJyb3ItPnN1c3BlbmRfY291bnQpOwotCWVycl9wcmlu dGYobSwgIlBDSSBJRDogMHglMDR4XG4iLCBkZXYtPnBkZXYtPmRldmljZSk7Ci0JZXJyX3ByaW50 ZihtLCAiUENJIFJldmlzaW9uOiAweCUwMnhcbiIsIGRldi0+cGRldi0+cmV2aXNpb24pOworCWVy cl9wcmludGYobSwgIlBDSSBJRDogMHglMDR4XG4iLCBwZGV2LT5kZXZpY2UpOworCWVycl9wcmlu dGYobSwgIlBDSSBSZXZpc2lvbjogMHglMDJ4XG4iLCBwZGV2LT5yZXZpc2lvbik7CiAJZXJyX3By aW50ZihtLCAiUENJIFN1YnN5c3RlbTogJTA0eDolMDR4XG4iLAotCQkgICBkZXYtPnBkZXYtPnN1 YnN5c3RlbV92ZW5kb3IsCi0JCSAgIGRldi0+cGRldi0+c3Vic3lzdGVtX2RldmljZSk7CisJCSAg IHBkZXYtPnN1YnN5c3RlbV92ZW5kb3IsCisJCSAgIHBkZXYtPnN1YnN5c3RlbV9kZXZpY2UpOwog CWVycl9wcmludGYobSwgIklPTU1VIGVuYWJsZWQ/OiAlZFxuIiwgZXJyb3ItPmlvbW11KTsKIAog CWlmIChIQVNfQ1NSKGRldikpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfc3VzcGVuZC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zdXNwZW5kLmMKaW5kZXgg NWNmZTRjNzcxNmI0Li4zNWUzMDM5OWQ0YjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfc3VzcGVuZC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3VzcGVu ZC5jCkBAIC0xMDQsNiArMTA0LDcgQEAgc3RhdGljIHZvaWQgaTkxNV9yZXN0b3JlX2Rpc3BsYXko c3RydWN0IGRybV9kZXZpY2UgKmRldikKIGludCBpOTE1X3NhdmVfc3RhdGUoc3RydWN0IGRybV9k ZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGRldik7CisJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBkZXZfcHJpdi0+ZHJtLnBkZXY7CiAJ aW50IGk7CiAKIAltdXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CkBAIC0xMTEsNyArMTEy LDcgQEAgaW50IGk5MTVfc2F2ZV9zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCWk5MTVf c2F2ZV9kaXNwbGF5KGRldik7CiAKIAlpZiAoSVNfR0VONChkZXYpKQotCQlwY2lfcmVhZF9jb25m aWdfd29yZChkZXYtPnBkZXYsIEdDREdNQlVTLAorCQlwY2lfcmVhZF9jb25maWdfd29yZChwZGV2 LCBHQ0RHTUJVUywKIAkJCQkgICAgICZkZXZfcHJpdi0+cmVnZmlsZS5zYXZlR0NER01CVVMpOwog CiAJLyogQ2FjaGUgbW9kZSBzdGF0ZSAqLwpAQCAtMTQ5LDYgKzE1MCw3IEBAIGludCBpOTE1X3Nh dmVfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIGludCBpOTE1X3Jlc3RvcmVfc3RhdGUo c3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGRldik7CisJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBkZXZfcHJpdi0+ ZHJtLnBkZXY7CiAJaW50IGk7CiAKIAltdXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CkBA IC0xNTYsNyArMTU4LDcgQEAgaW50IGk5MTVfcmVzdG9yZV9zdGF0ZShzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQogCWk5MTVfZ2VtX3Jlc3RvcmVfZmVuY2VzKGRldik7CiAKIAlpZiAoSVNfR0VONChk ZXYpKQotCQlwY2lfd3JpdGVfY29uZmlnX3dvcmQoZGV2LT5wZGV2LCBHQ0RHTUJVUywKKwkJcGNp X3dyaXRlX2NvbmZpZ193b3JkKHBkZXYsIEdDREdNQlVTLAogCQkJCSAgICAgIGRldl9wcml2LT5y ZWdmaWxlLnNhdmVHQ0RHTUJVUyk7CiAJaTkxNV9yZXN0b3JlX2Rpc3BsYXkoZGV2KTsKIApkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCmluZGV4IGM0YzFjODUzNjZkZS4uN2NiN2Y4MTZj M2NkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCkBAIC02ODE0LDkgKzY4MTQs MTAgQEAgc3RhdGljIGludCBpOXh4X21pc2NfZ2V0X2Rpc3BsYXlfY2xvY2tfc3BlZWQoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKIAogc3RhdGljIGludCBwbnZfZ2V0X2Rpc3BsYXlfY2xvY2tfc3Bl ZWQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKKwlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IGRl di0+cGRldjsKIAl1MTYgZ2NmZ2MgPSAwOwogCi0JcGNpX3JlYWRfY29uZmlnX3dvcmQoZGV2LT5w ZGV2LCBHQ0ZHQywgJmdjZmdjKTsKKwlwY2lfcmVhZF9jb25maWdfd29yZChwZGV2LCBHQ0ZHQywg JmdjZmdjKTsKIAogCXN3aXRjaCAoZ2NmZ2MgJiBHQ19ESVNQTEFZX0NMT0NLX01BU0spIHsKIAlj YXNlIEdDX0RJU1BMQVlfQ0xPQ0tfMjY3X01IWl9QTlY6CkBAIC02ODM4LDkgKzY4MzksMTAgQEAg c3RhdGljIGludCBwbnZfZ2V0X2Rpc3BsYXlfY2xvY2tfc3BlZWQoc3RydWN0IGRybV9kZXZpY2Ug KmRldikKIAogc3RhdGljIGludCBpOTE1Z21fZ2V0X2Rpc3BsYXlfY2xvY2tfc3BlZWQoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKIHsKKwlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IGRldi0+cGRldjsK IAl1MTYgZ2NmZ2MgPSAwOwogCi0JcGNpX3JlYWRfY29uZmlnX3dvcmQoZGV2LT5wZGV2LCBHQ0ZH QywgJmdjZmdjKTsKKwlwY2lfcmVhZF9jb25maWdfd29yZChwZGV2LCBHQ0ZHQywgJmdjZmdjKTsK IAogCWlmIChnY2ZnYyAmIEdDX0xPV19GUkVRVUVOQ1lfRU5BQkxFKQogCQlyZXR1cm4gMTMzMzMz OwpAQCAtNjg2Miw2ICs2ODY0LDcgQEAgc3RhdGljIGludCBpODY1X2dldF9kaXNwbGF5X2Nsb2Nr X3NwZWVkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAKIHN0YXRpYyBpbnQgaTg1eF9nZXRfZGlz cGxheV9jbG9ja19zcGVlZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogeworCXN0cnVjdCBwY2lf ZGV2ICpwZGV2ID0gZGV2LT5wZGV2OwogCXUxNiBocGxsY2MgPSAwOwogCiAJLyoKQEAgLTY4Njks MTAgKzY4NzIsMTAgQEAgc3RhdGljIGludCBpODV4X2dldF9kaXNwbGF5X2Nsb2NrX3NwZWVkKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJICogZW5jb2RpbmcgaXMgZGlmZmVyZW50IDooCiAJICog RklYTUUgaXMgdGhpcyB0aGUgcmlnaHQgd2F5IHRvIGRldGVjdCA4NTJHTS84NTJHTVY/CiAJICov Ci0JaWYgKGRldi0+cGRldi0+cmV2aXNpb24gPT0gMHgxKQorCWlmIChwZGV2LT5yZXZpc2lvbiA9 PSAweDEpCiAJCXJldHVybiAxMzMzMzM7CiAKLQlwY2lfYnVzX3JlYWRfY29uZmlnX3dvcmQoZGV2 LT5wZGV2LT5idXMsCisJcGNpX2J1c19yZWFkX2NvbmZpZ193b3JkKHBkZXYtPmJ1cywKIAkJCQkg UENJX0RFVkZOKDAsIDMpLCBIUExMQ0MsICZocGxsY2MpOwogCiAJLyogQXNzdW1lIHRoYXQgdGhl IGhhcmR3YXJlIGlzIGluIHRoZSBoaWdoIHNwZWVkIHN0YXRlLiAgVGhpcwpAQCAtNjk3MywxMCAr Njk3NiwxMSBAQCBzdGF0aWMgdW5zaWduZWQgaW50IGludGVsX2hwbGxfdmNvKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpCiAKIHN0YXRpYyBpbnQgZ200NV9nZXRfZGlzcGxheV9jbG9ja19zcGVlZChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogeworCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gZGV2LT5w ZGV2OwogCXVuc2lnbmVkIGludCBjZGNsa19zZWwsIHZjbyA9IGludGVsX2hwbGxfdmNvKGRldik7 CiAJdWludDE2X3QgdG1wID0gMDsKIAotCXBjaV9yZWFkX2NvbmZpZ193b3JkKGRldi0+cGRldiwg R0NGR0MsICZ0bXApOworCXBjaV9yZWFkX2NvbmZpZ193b3JkKHBkZXYsIEdDRkdDLCAmdG1wKTsK IAogCWNkY2xrX3NlbCA9ICh0bXAgPj4gMTIpICYgMHgxOwogCkBAIC02OTk1LDYgKzY5OTksNyBA QCBzdGF0aWMgaW50IGdtNDVfZ2V0X2Rpc3BsYXlfY2xvY2tfc3BlZWQoc3RydWN0IGRybV9kZXZp Y2UgKmRldikKIAogc3RhdGljIGludCBpOTY1Z21fZ2V0X2Rpc3BsYXlfY2xvY2tfc3BlZWQoc3Ry dWN0IGRybV9kZXZpY2UgKmRldikKIHsKKwlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IGRldi0+cGRl djsKIAlzdGF0aWMgY29uc3QgdWludDhfdCBkaXZfMzIwMFtdID0geyAxNiwgMTAsICA4IH07CiAJ c3RhdGljIGNvbnN0IHVpbnQ4X3QgZGl2XzQwMDBbXSA9IHsgMjAsIDEyLCAxMCB9OwogCXN0YXRp YyBjb25zdCB1aW50OF90IGRpdl81MzMzW10gPSB7IDI0LCAxNiwgMTQgfTsKQEAgLTcwMDIsNyAr NzAwNyw3IEBAIHN0YXRpYyBpbnQgaTk2NWdtX2dldF9kaXNwbGF5X2Nsb2NrX3NwZWVkKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCiAJdW5zaWduZWQgaW50IGNkY2xrX3NlbCwgdmNvID0gaW50ZWxf aHBsbF92Y28oZGV2KTsKIAl1aW50MTZfdCB0bXAgPSAwOwogCi0JcGNpX3JlYWRfY29uZmlnX3dv cmQoZGV2LT5wZGV2LCBHQ0ZHQywgJnRtcCk7CisJcGNpX3JlYWRfY29uZmlnX3dvcmQocGRldiwg R0NGR0MsICZ0bXApOwogCiAJY2RjbGtfc2VsID0gKCh0bXAgPj4gOCkgJiAweDFmKSAtIDE7CiAK QEAgLTcwMzIsNiArNzAzNyw3IEBAIGZhaWw6CiAKIHN0YXRpYyBpbnQgZzMzX2dldF9kaXNwbGF5 X2Nsb2NrX3NwZWVkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CisJc3RydWN0IHBjaV9kZXYg KnBkZXYgPSBkZXYtPnBkZXY7CiAJc3RhdGljIGNvbnN0IHVpbnQ4X3QgZGl2XzMyMDBbXSA9IHsg MTIsIDEwLCAgOCwgIDcsIDUsIDE2IH07CiAJc3RhdGljIGNvbnN0IHVpbnQ4X3QgZGl2XzQwMDBb XSA9IHsgMTQsIDEyLCAxMCwgIDgsIDYsIDIwIH07CiAJc3RhdGljIGNvbnN0IHVpbnQ4X3QgZGl2 XzQ4MDBbXSA9IHsgMjAsIDE0LCAxMiwgMTAsIDgsIDI0IH07CkBAIC03MDQwLDcgKzcwNDYsNyBA QCBzdGF0aWMgaW50IGczM19nZXRfZGlzcGxheV9jbG9ja19zcGVlZChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQogCXVuc2lnbmVkIGludCBjZGNsa19zZWwsIHZjbyA9IGludGVsX2hwbGxfdmNvKGRl dik7CiAJdWludDE2X3QgdG1wID0gMDsKIAotCXBjaV9yZWFkX2NvbmZpZ193b3JkKGRldi0+cGRl diwgR0NGR0MsICZ0bXApOworCXBjaV9yZWFkX2NvbmZpZ193b3JkKHBkZXYsIEdDRkdDLCAmdG1w KTsKIAogCWNkY2xrX3NlbCA9ICh0bXAgPj4gNCkgJiAweDc7CiAKQEAgLTE1NDcwLDE1ICsxNTQ3 NiwxNiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9pbml0X3F1aXJrcyhzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQogc3RhdGljIHZvaWQgaTkxNV9kaXNhYmxlX3ZnYShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsK KwlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IGRldl9wcml2LT5kcm0ucGRldjsKIAl1OCBzcjE7CiAJ aTkxNV9yZWdfdCB2Z2FfcmVnID0gaTkxNV92Z2FjbnRybF9yZWcoZGV2KTsKIAogCS8qIFdhRW5h YmxlVkdBQWNjZXNzVGhyb3VnaElPUG9ydDpjdGcsZWxrLGlsayxzbmIsaXZiLHZsdixoc3cgKi8K LQl2Z2FfZ2V0X3VuaW50ZXJydXB0aWJsZShkZXYtPnBkZXYsIFZHQV9SU1JDX0xFR0FDWV9JTyk7 CisJdmdhX2dldF91bmludGVycnVwdGlibGUocGRldiwgVkdBX1JTUkNfTEVHQUNZX0lPKTsKIAlv dXRiKFNSMDEsIFZHQV9TUl9JTkRFWCk7CiAJc3IxID0gaW5iKFZHQV9TUl9EQVRBKTsKIAlvdXRi KHNyMSB8IDE8PDUsIFZHQV9TUl9EQVRBKTsKLQl2Z2FfcHV0KGRldi0+cGRldiwgVkdBX1JTUkNf TEVHQUNZX0lPKTsKKwl2Z2FfcHV0KHBkZXYsIFZHQV9SU1JDX0xFR0FDWV9JTyk7CiAJdWRlbGF5 KDMwMCk7CiAKIAlJOTE1X1dSSVRFKHZnYV9yZWcsIFZHQV9ESVNQX0RJU0FCTEUpOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJkZXYuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2ZiZGV2LmMKaW5kZXggNjM0NDk5OWQzZDZlLi41YWVjNGNjODVhY2EgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiZGV2LmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJkZXYuYwpAQCAtMTgzLDYgKzE4Myw3IEBAIHN0YXRpYyBp bnQgaW50ZWxmYl9jcmVhdGUoc3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlciwKIAlzdHJ1Y3Qg aW50ZWxfZnJhbWVidWZmZXIgKmludGVsX2ZiID0gaWZiZGV2LT5mYjsKIAlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gaGVscGVyLT5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShkZXYpOworCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gZGV2X3ByaXYtPmRy bS5wZGV2OwogCXN0cnVjdCBpOTE1X2dndHQgKmdndHQgPSAmZGV2X3ByaXYtPmdndHQ7CiAJc3Ry dWN0IGZiX2luZm8gKmluZm87CiAJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmI7CkBAIC0yODMs NyArMjg0LDcgQEAgc3RhdGljIGludCBpbnRlbGZiX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZiX2hlbHBl ciAqaGVscGVyLAogCQkgICAgICBpOTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQob2JqKSwgb2JqKTsK IAogCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCXZnYV9zd2l0Y2hlcm9vX2Ns aWVudF9mYl9zZXQoZGV2LT5wZGV2LCBpbmZvKTsKKwl2Z2Ffc3dpdGNoZXJvb19jbGllbnRfZmJf c2V0KHBkZXYsIGluZm8pOwogCXJldHVybiAwOwogCiBvdXRfZGVzdHJveV9mYmk6CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMKaW5kZXggYjg4M2VmZDM1ZTNmLi5jMDQxODJl MDY1Y2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMKQEAgLTU1Myw2 ICs1NTMsNyBAQCBmYWlsOgogCiBzdGF0aWMgdm9pZCBndWNfZndfZmV0Y2goc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgc3RydWN0IGludGVsX2d1Y19mdyAqZ3VjX2Z3KQogeworCXN0cnVjdCBwY2lf ZGV2ICpwZGV2ID0gZGV2LT5wZGV2OwogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7 CiAJY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdzsKIAlzdHJ1Y3QgZ3VjX2Nzc19oZWFkZXIgKmNz czsKQEAgLTU2Miw3ICs1NjMsNyBAQCBzdGF0aWMgdm9pZCBndWNfZndfZmV0Y2goc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgc3RydWN0IGludGVsX2d1Y19mdyAqZ3VjX2Z3KQogCURSTV9ERUJVR19E UklWRVIoImJlZm9yZSByZXF1ZXN0aW5nIGZpcm13YXJlOiBHdUMgZncgZmV0Y2ggc3RhdHVzICVz XG4iLAogCQlpbnRlbF9ndWNfZndfc3RhdHVzX3JlcHIoZ3VjX2Z3LT5ndWNfZndfZmV0Y2hfc3Rh dHVzKSk7CiAKLQllcnIgPSByZXF1ZXN0X2Zpcm13YXJlKCZmdywgZ3VjX2Z3LT5ndWNfZndfcGF0 aCwgJmRldi0+cGRldi0+ZGV2KTsKKwllcnIgPSByZXF1ZXN0X2Zpcm13YXJlKCZmdywgZ3VjX2Z3 LT5ndWNfZndfcGF0aCwgJnBkZXYtPmRldik7CiAJaWYgKGVycikKIAkJZ290byBmYWlsOwogCWlm ICghZncpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9pMmMuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2kyYy5jCmluZGV4IDFmMjY2ZDdkZjJlYy4uYTRjYTIw NTIzMTVlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9pMmMuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9pMmMuYwpAQCAtNjMzLDYgKzYzMyw3IEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgaTJjX2FsZ29yaXRobSBnbWJ1c19hbGdvcml0aG0gPSB7CiBpbnQg aW50ZWxfc2V0dXBfZ21idXMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CisJc3RydWN0IHBjaV9kZXYg KnBkZXYgPSBkZXZfcHJpdi0+ZHJtLnBkZXY7CiAJc3RydWN0IGludGVsX2dtYnVzICpidXM7CiAJ dW5zaWduZWQgaW50IHBpbjsKIAlpbnQgcmV0OwpAQCAtNjYzLDcgKzY2NCw3IEBAIGludCBpbnRl bF9zZXR1cF9nbWJ1cyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQkJICJpOTE1IGdtYnVzICVz IiwKIAkJCSBnZXRfZ21idXNfcGluKGRldl9wcml2LCBwaW4pLT5uYW1lKTsKIAotCQlidXMtPmFk YXB0ZXIuZGV2LnBhcmVudCA9ICZkZXYtPnBkZXYtPmRldjsKKwkJYnVzLT5hZGFwdGVyLmRldi5w YXJlbnQgPSAmcGRldi0+ZGV2OwogCQlidXMtPmRldl9wcml2ID0gZGV2X3ByaXY7CiAKIAkJYnVz LT5hZGFwdGVyLmFsZ28gPSAmZ21idXNfYWxnb3JpdGhtOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcnVudGltZV9wbS5jCmluZGV4IDBkZDQ0MjlhNGY4Ny4uZGM2ZTY0ZmI4MmU3IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jCkBAIC0yODcsNiArMjg3LDcgQEAgdm9p ZCBpbnRlbF9kaXNwbGF5X3NldF9pbml0X3Bvd2VyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKICAqLwogc3RhdGljIHZvaWQgaHN3X3Bvd2VyX3dlbGxfcG9zdF9lbmFibGUoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogeworCXN0cnVjdCBwY2lfZGV2ICpwZGV2 ID0gZGV2X3ByaXYtPmRybS5wZGV2OwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAmZGV2X3By aXYtPmRybTsKIAogCS8qCkBAIC0yOTksOSArMzAwLDkgQEAgc3RhdGljIHZvaWQgaHN3X3Bvd2Vy X3dlbGxfcG9zdF9lbmFibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCSAq IHN1cmUgdmdhY29uIGNhbiBrZWVwIHdvcmtpbmcgbm9ybWFsbHkgd2l0aG91dCB0cmlnZ2VyaW5n IGludGVycnVwdHMKIAkgKiBhbmQgZXJyb3IgbWVzc2FnZXMuCiAJICovCi0JdmdhX2dldF91bmlu dGVycnVwdGlibGUoZGV2LT5wZGV2LCBWR0FfUlNSQ19MRUdBQ1lfSU8pOworCXZnYV9nZXRfdW5p bnRlcnJ1cHRpYmxlKHBkZXYsIFZHQV9SU1JDX0xFR0FDWV9JTyk7CiAJb3V0YihpbmIoVkdBX01T Ul9SRUFEKSwgVkdBX01TUl9XUklURSk7Ci0JdmdhX3B1dChkZXYtPnBkZXYsIFZHQV9SU1JDX0xF R0FDWV9JTyk7CisJdmdhX3B1dChwZGV2LCBWR0FfUlNSQ19MRUdBQ1lfSU8pOwogCiAJaWYgKElT X0JST0FEV0VMTChkZXYpKQogCQlnZW44X2lycV9wb3dlcl93ZWxsX3Bvc3RfZW5hYmxlKGRldl9w cml2LApAQCAtMzE4LDcgKzMxOSw3IEBAIHN0YXRpYyB2b2lkIGhzd19wb3dlcl93ZWxsX3ByZV9k aXNhYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHN0YXRpYyB2b2lkIHNr bF9wb3dlcl93ZWxsX3Bvc3RfZW5hYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKIAkJCQkgICAgICAgc3RydWN0IGk5MTVfcG93ZXJfd2VsbCAqcG93ZXJfd2VsbCkKIHsKLQlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJmRldl9wcml2LT5kcm07CisJc3RydWN0IHBjaV9kZXYg KnBkZXYgPSBkZXZfcHJpdi0+ZHJtLnBkZXY7CiAKIAkvKgogCSAqIEFmdGVyIHdlIHJlLWVuYWJs ZSB0aGUgcG93ZXIgd2VsbCwgaWYgd2UgdG91Y2ggVkdBIHJlZ2lzdGVyIDB4M2Q1CkBAIC0zMzEs OSArMzMyLDkgQEAgc3RhdGljIHZvaWQgc2tsX3Bvd2VyX3dlbGxfcG9zdF9lbmFibGUoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCSAqIGFuZCBlcnJvciBtZXNzYWdlcy4KIAkg Ki8KIAlpZiAocG93ZXJfd2VsbC0+ZGF0YSA9PSBTS0xfRElTUF9QV18yKSB7Ci0JCXZnYV9nZXRf dW5pbnRlcnJ1cHRpYmxlKGRldi0+cGRldiwgVkdBX1JTUkNfTEVHQUNZX0lPKTsKKwkJdmdhX2dl dF91bmludGVycnVwdGlibGUocGRldiwgVkdBX1JTUkNfTEVHQUNZX0lPKTsKIAkJb3V0YihpbmIo VkdBX01TUl9SRUFEKSwgVkdBX01TUl9XUklURSk7Ci0JCXZnYV9wdXQoZGV2LT5wZGV2LCBWR0Ff UlNSQ19MRUdBQ1lfSU8pOworCQl2Z2FfcHV0KHBkZXYsIFZHQV9SU1JDX0xFR0FDWV9JTyk7CiAK IAkJZ2VuOF9pcnFfcG93ZXJfd2VsbF9wb3N0X2VuYWJsZShkZXZfcHJpdiwKIAkJCQkJCTEgPDwg UElQRV9DIHwgMSA8PCBQSVBFX0IpOwpAQCAtMjY0Nyw4ICsyNjQ4LDggQEAgdm9pZCBpbnRlbF9w b3dlcl9kb21haW5zX3N1c3BlbmQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQog ICovCiB2b2lkIGludGVsX3J1bnRpbWVfcG1fZ2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKIHsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJmRldl9wcml2LT5kcm07Ci0J c3RydWN0IGRldmljZSAqa2RldiA9ICZkZXYtPnBkZXYtPmRldjsKKwlzdHJ1Y3QgcGNpX2RldiAq cGRldiA9IGRldl9wcml2LT5kcm0ucGRldjsKKwlzdHJ1Y3QgZGV2aWNlICprZGV2ID0gJnBkZXYt PmRldjsKIAogCXBtX3J1bnRpbWVfZ2V0X3N5bmMoa2Rldik7CiAKQEAgLTI2NjgsOCArMjY2OSw4 IEBAIHZvaWQgaW50ZWxfcnVudGltZV9wbV9nZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQogICovCiBib29sIGludGVsX3J1bnRpbWVfcG1fZ2V0X2lmX2luX3VzZShzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 ICZkZXZfcHJpdi0+ZHJtOwotCXN0cnVjdCBkZXZpY2UgKmtkZXYgPSAmZGV2LT5wZGV2LT5kZXY7 CisJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBkZXZfcHJpdi0+ZHJtLnBkZXY7CisJc3RydWN0IGRl dmljZSAqa2RldiA9ICZwZGV2LT5kZXY7CiAKIAlpZiAoSVNfRU5BQkxFRChDT05GSUdfUE0pKSB7 CiAJCWludCByZXQgPSBwbV9ydW50aW1lX2dldF9pZl9pbl91c2Uoa2Rldik7CkBAIC0yNzEwLDgg KzI3MTEsOCBAQCBib29sIGludGVsX3J1bnRpbWVfcG1fZ2V0X2lmX2luX3VzZShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAgKi8KIHZvaWQgaW50ZWxfcnVudGltZV9wbV9nZXRf bm9yZXN1bWUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewotCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSAmZGV2X3ByaXYtPmRybTsKLQlzdHJ1Y3QgZGV2aWNlICprZGV2ID0g JmRldi0+cGRldi0+ZGV2OworCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gZGV2X3ByaXYtPmRybS5w ZGV2OworCXN0cnVjdCBkZXZpY2UgKmtkZXYgPSAmcGRldi0+ZGV2OwogCiAJYXNzZXJ0X3JwbV93 YWtlbG9ja19oZWxkKGRldl9wcml2KTsKIAlwbV9ydW50aW1lX2dldF9ub3Jlc3VtZShrZGV2KTsK QEAgLTI3MjksOCArMjczMCw4IEBAIHZvaWQgaW50ZWxfcnVudGltZV9wbV9nZXRfbm9yZXN1bWUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogICovCiB2b2lkIGludGVsX3J1bnRp bWVfcG1fcHV0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gJmRldl9wcml2LT5kcm07Ci0Jc3RydWN0IGRldmljZSAqa2RldiA9 ICZkZXYtPnBkZXYtPmRldjsKKwlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IGRldl9wcml2LT5kcm0u cGRldjsKKwlzdHJ1Y3QgZGV2aWNlICprZGV2ID0gJnBkZXYtPmRldjsKIAogCWFzc2VydF9ycG1f d2FrZWxvY2tfaGVsZChkZXZfcHJpdik7CiAJaWYgKGF0b21pY19kZWNfYW5kX3Rlc3QoJmRldl9w cml2LT5wbS53YWtlcmVmX2NvdW50KSkKQEAgLTI3NTIsOCArMjc1Myw5IEBAIHZvaWQgaW50ZWxf cnVudGltZV9wbV9wdXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogICovCiB2 b2lkIGludGVsX3J1bnRpbWVfcG1fZW5hYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKIHsKKwlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IGRldl9wcml2LT5kcm0ucGRldjsKIAlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJmRldl9wcml2LT5kcm07Ci0Jc3RydWN0IGRldmljZSAq a2RldiA9ICZkZXYtPnBkZXYtPmRldjsKKwlzdHJ1Y3QgZGV2aWNlICprZGV2ID0gJnBkZXYtPmRl djsKIAogCXBtX3J1bnRpbWVfc2V0X2F1dG9zdXNwZW5kX2RlbGF5KGtkZXYsIDEwMDAwKTsgLyog MTBzICovCiAJcG1fcnVudGltZV9tYXJrX2xhc3RfYnVzeShrZGV2KTsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nkdm8uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3Nkdm8uYwppbmRleCBlMzc4ZjM1MzY1YTIuLmRkNzU1MTBlYmE2NyAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc2R2by5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3Nkdm8uYwpAQCAtMjkzMCwxMCArMjkzMCwxMiBAQCBzdGF0aWMgYm9vbAogaW50 ZWxfc2R2b19pbml0X2RkY19wcm94eShzdHJ1Y3QgaW50ZWxfc2R2byAqc2R2bywKIAkJCSAgc3Ry dWN0IGRybV9kZXZpY2UgKmRldikKIHsKKwlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IGRldi0+cGRl djsKKwogCXNkdm8tPmRkYy5vd25lciA9IFRISVNfTU9EVUxFOwogCXNkdm8tPmRkYy5jbGFzcyA9 IEkyQ19DTEFTU19EREM7CiAJc25wcmludGYoc2R2by0+ZGRjLm5hbWUsIEkyQ19OQU1FX1NJWkUs ICJTRFZPIEREQyBwcm94eSIpOwotCXNkdm8tPmRkYy5kZXYucGFyZW50ID0gJmRldi0+cGRldi0+ ZGV2OworCXNkdm8tPmRkYy5kZXYucGFyZW50ID0gJnBkZXYtPmRldjsKIAlzZHZvLT5kZGMuYWxn b19kYXRhID0gc2R2bzsKIAlzZHZvLT5kZGMuYWxnbyA9ICZpbnRlbF9zZHZvX2RkY19wcm94eTsK IAotLSAKMi44LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eAo=