From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joonas Lahtinen Subject: [PATCH 2/3] drm/i915: Rename dev_priv->gtt to dev_priv->ggtt Date: Fri, 18 Mar 2016 09:53:09 +0200 Message-ID: <1458287590-23680-2-git-send-email-joonas.lahtinen@linux.intel.com> References: <1458287590-23680-1-git-send-email-joonas.lahtinen@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 5941E6EB5D for ; Fri, 18 Mar 2016 07:53:02 +0000 (UTC) In-Reply-To: <1458287590-23680-1-git-send-email-joonas.lahtinen@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 graphics driver community testing & development List-Id: intel-gfx@lists.freedesktop.org UmVmZXIgdG8gR2xvYmFsIEdUVCBjb25zaXN0ZW5jbHkgYXMgR0dUVCwgdGh1cyByZW5hbWUgZGV2 X3ByaXYtPmd0dAp0byBkZXZfcHJpdi0+Z2d0dCBhbmQgc3RydWN0IGk5MTVfZ3R0IHRvIHN0cnVj dCBpOTE1X2dndHQuCgpGaXggYSBjb3VwbGUgb2Ygd2hpdGVzcGFjZSBwcm9ibGVtcyB3aGlsZSBh dCBpdC4KClNpZ25lZC1vZmYtYnk6IEpvb25hcyBMYWh0aW5lbiA8am9vbmFzLmxhaHRpbmVuQGxp bnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAg ICAgICAgfCAgIDggKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1hLmMgICAgICAgICAg ICB8ICAxOCArKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgICAg fCAgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICAgICB8ICAx NiArKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMgICAgfCAgIDIg Ky0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyB8ICAgNiArLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgICAgICAgIHwgMTQ3ICsrKysrKysr KysrKysrLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQu aCAgICAgICAgfCAgIDkgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5j ICAgICB8ICA1MCArKysrKy0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJv ci5jICAgICAgfCAgMTAgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdmdwdS5jICAgICAg ICAgICB8ICAxNCArLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyAgICAg ICB8ICAgNCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMgICAgICAgICAgIHwg ICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmRldi5jICAgICAgICAgfCAgIDYg Ky0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX292ZXJsYXkuYyAgICAgICB8ICAgNCArLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyAgICAgICAgICAgIHwgIDEwICstCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgICAgfCAgIDIgKy0KIDE3IGZpbGVz IGNoYW5nZWQsIDE1NiBpbnNlcnRpb25zKCspLCAxNTggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2RlYnVnZnMuYwppbmRleCBjY2RjYTJjLi5lMGJhM2UzIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2RlYnVnZnMuYwpAQCAtMjAzLDcgKzIwMyw3IEBAIHN0YXRpYyBpbnQgaTkxNV9n ZW1fb2JqZWN0X2xpc3RfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCiAJc3Ry dWN0IGxpc3RfaGVhZCAqaGVhZDsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gbm9kZS0+bWlu b3ItPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9w cml2YXRlOwotCXN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtID0gJmRldl9wcml2LT5ndHQu YmFzZTsKKwlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSA9ICZkZXZfcHJpdi0+Z2d0dC5i YXNlOwogCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwogCXU2NCB0b3RhbF9vYmpfc2l6ZSwgdG90YWxf Z3R0X3NpemU7CiAJaW50IGNvdW50LCByZXQ7CkBAIC00MzMsNyArNDMzLDcgQEAgc3RhdGljIGlu dCBpOTE1X2dlbV9vYmplY3RfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQqIGRhdGEpCiAJ dTMyIGNvdW50LCBtYXBwYWJsZV9jb3VudCwgcHVyZ2VhYmxlX2NvdW50OwogCXU2NCBzaXplLCBt YXBwYWJsZV9zaXplLCBwdXJnZWFibGVfc2l6ZTsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqOwotCXN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtID0gJmRldl9wcml2LT5ndHQu YmFzZTsKKwlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSA9ICZkZXZfcHJpdi0+Z2d0dC5i YXNlOwogCXN0cnVjdCBkcm1fZmlsZSAqZmlsZTsKIAlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKIAlp bnQgcmV0OwpAQCAtNDkyLDggKzQ5Miw4IEBAIHN0YXRpYyBpbnQgaTkxNV9nZW1fb2JqZWN0X2lu Zm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkKiBkYXRhKQogCQkgICBjb3VudCwgc2l6ZSk7CiAK IAlzZXFfcHJpbnRmKG0sICIlbGx1IFslbGx1XSBndHQgdG90YWxcbiIsCi0JCSAgIGRldl9wcml2 LT5ndHQuYmFzZS50b3RhbCwKLQkJICAgKHU2NClkZXZfcHJpdi0+Z3R0Lm1hcHBhYmxlX2VuZCAt IGRldl9wcml2LT5ndHQuYmFzZS5zdGFydCk7CisJCSAgIGRldl9wcml2LT5nZ3R0LmJhc2UudG90 YWwsCisJCSAgICh1NjQpZGV2X3ByaXYtPmdndHQubWFwcGFibGVfZW5kIC0gZGV2X3ByaXYtPmdn dHQuYmFzZS5zdGFydCk7CiAKIAlzZXFfcHV0YyhtLCAnXG4nKTsKIAlwcmludF9iYXRjaF9wb29s X3N0YXRzKG0sIGRldl9wcml2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZG1hLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jCmluZGV4IDY4NTkyYjAu LjM1NjUxNjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1hLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYwpAQCAtNDkxLDggKzQ5MSw4IEBAIHN0 YXRpYyBpbnQgaTkxNV9raWNrX291dF9maXJtd2FyZV9mYihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCiAJaWYgKCFhcCkKIAkJcmV0dXJuIC1FTk9NRU07CiAKLQlhcC0+cmFuZ2Vz WzBdLmJhc2UgPSBkZXZfcHJpdi0+Z3R0Lm1hcHBhYmxlX2Jhc2U7Ci0JYXAtPnJhbmdlc1swXS5z aXplID0gZGV2X3ByaXYtPmd0dC5tYXBwYWJsZV9lbmQ7CisJYXAtPnJhbmdlc1swXS5iYXNlID0g ZGV2X3ByaXYtPmdndHQubWFwcGFibGVfYmFzZTsKKwlhcC0+cmFuZ2VzWzBdLnNpemUgPSBkZXZf cHJpdi0+Z2d0dC5tYXBwYWJsZV9lbmQ7CiAKIAlwcmltYXJ5ID0KIAkJcGRldi0+cmVzb3VyY2Vb UENJX1JPTV9SRVNPVVJDRV0uZmxhZ3MgJiBJT1JFU09VUkNFX1JPTV9TSEFET1c7CkBAIC0xMTcy LDE3ICsxMTcyLDE3IEBAIHN0YXRpYyBpbnQgaTkxNV9kcml2ZXJfaW5pdF9odyhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJaWYgKElTX0JST0FEV0FURVIoZGV2KSB8fCBJU19D UkVTVExJTkUoZGV2KSkKIAkJZG1hX3NldF9jb2hlcmVudF9tYXNrKCZkZXYtPnBkZXYtPmRldiwg RE1BX0JJVF9NQVNLKDMyKSk7CiAKLQlhcGVydHVyZV9zaXplID0gZGV2X3ByaXYtPmd0dC5tYXBw YWJsZV9lbmQ7CisJYXBlcnR1cmVfc2l6ZSA9IGRldl9wcml2LT5nZ3R0Lm1hcHBhYmxlX2VuZDsK IAotCWRldl9wcml2LT5ndHQubWFwcGFibGUgPQotCQlpb19tYXBwaW5nX2NyZWF0ZV93YyhkZXZf cHJpdi0+Z3R0Lm1hcHBhYmxlX2Jhc2UsCisJZGV2X3ByaXYtPmdndHQubWFwcGFibGUgPQorCQlp b19tYXBwaW5nX2NyZWF0ZV93YyhkZXZfcHJpdi0+Z2d0dC5tYXBwYWJsZV9iYXNlLAogCQkJCSAg ICAgYXBlcnR1cmVfc2l6ZSk7Ci0JaWYgKGRldl9wcml2LT5ndHQubWFwcGFibGUgPT0gTlVMTCkg eworCWlmIChkZXZfcHJpdi0+Z2d0dC5tYXBwYWJsZSA9PSBOVUxMKSB7CiAJCXJldCA9IC1FSU87 CiAJCWdvdG8gb3V0X2d0dDsKIAl9CiAKLQlkZXZfcHJpdi0+Z3R0Lm10cnIgPSBhcmNoX3BoeXNf d2NfYWRkKGRldl9wcml2LT5ndHQubWFwcGFibGVfYmFzZSwKKwlkZXZfcHJpdi0+Z2d0dC5tdHJy ID0gYXJjaF9waHlzX3djX2FkZChkZXZfcHJpdi0+Z2d0dC5tYXBwYWJsZV9iYXNlLAogCQkJCQkg ICAgICBhcGVydHVyZV9zaXplKTsKIAogCXBtX3Fvc19hZGRfcmVxdWVzdCgmZGV2X3ByaXYtPnBt X3FvcywgUE1fUU9TX0NQVV9ETUFfTEFURU5DWSwKQEAgLTEyMzAsOCArMTIzMCw4IEBAIHN0YXRp YyB2b2lkIGk5MTVfZHJpdmVyX2NsZWFudXBfaHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQogCQlwY2lfZGlzYWJsZV9tc2koZGV2LT5wZGV2KTsKIAogCXBtX3Fvc19yZW1vdmVf cmVxdWVzdCgmZGV2X3ByaXYtPnBtX3Fvcyk7Ci0JYXJjaF9waHlzX3djX2RlbChkZXZfcHJpdi0+ Z3R0Lm10cnIpOwotCWlvX21hcHBpbmdfZnJlZShkZXZfcHJpdi0+Z3R0Lm1hcHBhYmxlKTsKKwlh cmNoX3BoeXNfd2NfZGVsKGRldl9wcml2LT5nZ3R0Lm10cnIpOworCWlvX21hcHBpbmdfZnJlZShk ZXZfcHJpdi0+Z2d0dC5tYXBwYWJsZSk7CiAJaTkxNV9nbG9iYWxfZ3R0X2NsZWFudXAoZGV2KTsK IH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggMDBjNDFhNC4uYjFkNjU1NCAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0xODEwLDcgKzE4MTAsNyBAQCBzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSB7CiAJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm1vZGVzZXRfcmVzdG9yZV9zdGF0 ZTsKIAogCXN0cnVjdCBsaXN0X2hlYWQgdm1fbGlzdDsgLyogR2xvYmFsIGxpc3Qgb2YgYWxsIGFk ZHJlc3Mgc3BhY2VzICovCi0Jc3RydWN0IGk5MTVfZ3R0IGd0dDsgLyogVk0gcmVwcmVzZW50aW5n IHRoZSBnbG9iYWwgYWRkcmVzcyBzcGFjZSAqLworCXN0cnVjdCBpOTE1X2dndHQgZ2d0dDsgLyog Vk0gcmVwcmVzZW50aW5nIHRoZSBnbG9iYWwgYWRkcmVzcyBzcGFjZSAqLwogCiAJc3RydWN0IGk5 MTVfZ2VtX21tIG1tOwogCURFQ0xBUkVfSEFTSFRBQkxFKG1tX3N0cnVjdHMsIDcpOwpAQCAtMzEy Niw3ICszMTI2LDcgQEAgYm9vbCBpOTE1X2dlbV9vYmpfaXNfcGlubmVkKHN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpvYmopOwogCiAvKiBTb21lIEdHVFQgVk0gaGVscGVycyAqLwogI2RlZmlu ZSBpOTE1X29ial90b19nZ3R0KG9iaikgXAotCSgmKChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq KShvYmopLT5iYXNlLmRldi0+ZGV2X3ByaXZhdGUpLT5ndHQuYmFzZSkKKwkoJigoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKikob2JqKS0+YmFzZS5kZXYtPmRldl9wcml2YXRlKS0+Z2d0dC5iYXNl KQogCiBzdGF0aWMgaW5saW5lIHN0cnVjdCBpOTE1X2h3X3BwZ3R0ICoKIGk5MTVfdm1fdG9fcHBn dHQoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0pCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwpp bmRleCBhNGUwMTU1Li44Yjc1ZTZiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKQEAgLTEzMiw3 ICsxMzIsNyBAQCBpOTE1X2dlbV9nZXRfYXBlcnR1cmVfaW9jdGwoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgdm9pZCAqZGF0YSwKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSBkZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBkcm1faTkxNV9nZW1fZ2V0X2FwZXJ0dXJlICph cmdzID0gZGF0YTsKLQlzdHJ1Y3QgaTkxNV9ndHQgKmdndHQgPSAmZGV2X3ByaXYtPmd0dDsKKwlz dHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0ID0gJmRldl9wcml2LT5nZ3R0OwogCXN0cnVjdCBpOTE1X3Zt YSAqdm1hOwogCXNpemVfdCBwaW5uZWQ7CiAKQEAgLTE0Niw3ICsxNDYsNyBAQCBpOTE1X2dlbV9n ZXRfYXBlcnR1cmVfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJ CXBpbm5lZCArPSB2bWEtPm5vZGUuc2l6ZTsKIAltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211 dGV4KTsKIAotCWFyZ3MtPmFwZXJfc2l6ZSA9IGRldl9wcml2LT5ndHQuYmFzZS50b3RhbDsKKwlh cmdzLT5hcGVyX3NpemUgPSBkZXZfcHJpdi0+Z2d0dC5iYXNlLnRvdGFsOwogCWFyZ3MtPmFwZXJf YXZhaWxhYmxlX3NpemUgPSBhcmdzLT5hcGVyX3NpemUgLSBwaW5uZWQ7CiAKIAlyZXR1cm4gMDsK QEAgLTgwNyw3ICs4MDcsNyBAQCBpOTE1X2dlbV9ndHRfcHdyaXRlX2Zhc3Qoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKIAkJICogc291cmNlIHBhZ2UgaXNuJ3QgYXZhaWxhYmxlLiAgUmV0dXJuIHRo ZSBlcnJvciBhbmQgd2UnbGwKIAkJICogcmV0cnkgaW4gdGhlIHNsb3cgcGF0aC4KIAkJICovCi0J CWlmIChmYXN0X3VzZXJfd3JpdGUoZGV2X3ByaXYtPmd0dC5tYXBwYWJsZSwgcGFnZV9iYXNlLAor CQlpZiAoZmFzdF91c2VyX3dyaXRlKGRldl9wcml2LT5nZ3R0Lm1hcHBhYmxlLCBwYWdlX2Jhc2Us CiAJCQkJICAgIHBhZ2Vfb2Zmc2V0LCB1c2VyX2RhdGEsIHBhZ2VfbGVuZ3RoKSkgewogCQkJcmV0 ID0gLUVGQVVMVDsKIAkJCWdvdG8gb3V0X2ZsdXNoOwpAQCAtMTgyNyw3ICsxODI3LDcgQEAgaW50 IGk5MTVfZ2VtX2ZhdWx0KHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCBzdHJ1Y3Qgdm1fZmF1 bHQgKnZtZikKIAl9CiAKIAkvKiBVc2UgYSBwYXJ0aWFsIHZpZXcgaWYgdGhlIG9iamVjdCBpcyBi aWdnZXIgdGhhbiB0aGUgYXBlcnR1cmUuICovCi0JaWYgKG9iai0+YmFzZS5zaXplID49IGRldl9w cml2LT5ndHQubWFwcGFibGVfZW5kICYmCisJaWYgKG9iai0+YmFzZS5zaXplID49IGRldl9wcml2 LT5nZ3R0Lm1hcHBhYmxlX2VuZCAmJgogCSAgICBvYmotPnRpbGluZ19tb2RlID09IEk5MTVfVElM SU5HX05PTkUpIHsKIAkJc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBjaHVua19zaXplID0gMjU2 OyAvLyAxIE1pQgogCkBAIC0xODU1LDcgKzE4NTUsNyBAQCBpbnQgaTkxNV9nZW1fZmF1bHQoc3Ry dWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsIHN0cnVjdCB2bV9mYXVsdCAqdm1mKQogCQlnb3RvIHVu cGluOwogCiAJLyogRmluYWxseSwgcmVtYXAgaXQgdXNpbmcgdGhlIG5ldyBHVFQgb2Zmc2V0ICov Ci0JcGZuID0gZGV2X3ByaXYtPmd0dC5tYXBwYWJsZV9iYXNlICsKKwlwZm4gPSBkZXZfcHJpdi0+ Z2d0dC5tYXBwYWJsZV9iYXNlICsKIAkJaTkxNV9nZW1fb2JqX2dndHRfb2Zmc2V0X3ZpZXcob2Jq LCAmdmlldyk7CiAJcGZuID4+PSBQQUdFX1NISUZUOwogCkBAIC0zNTEzLDcgKzM1MTMsNyBAQCBp OTE1X2dlbV9vYmplY3RfYmluZF90b192bShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2Jq LAogCXN0YXJ0ID0gZmxhZ3MgJiBQSU5fT0ZGU0VUX0JJQVMgPyBmbGFncyAmIFBJTl9PRkZTRVRf TUFTSyA6IDA7CiAJZW5kID0gdm0tPnRvdGFsOwogCWlmIChmbGFncyAmIFBJTl9NQVBQQUJMRSkK LQkJZW5kID0gbWluX3QodTY0LCBlbmQsIGRldl9wcml2LT5ndHQubWFwcGFibGVfZW5kKTsKKwkJ ZW5kID0gbWluX3QodTY0LCBlbmQsIGRldl9wcml2LT5nZ3R0Lm1hcHBhYmxlX2VuZCk7CiAJaWYg KGZsYWdzICYgUElOX1pPTkVfNEcpCiAJCWVuZCA9IG1pbl90KHU2NCwgZW5kLCAoMVVMTCA8PCAz MikgLSBQQUdFX1NJWkUpOwogCkBAIC0zNzc0LDcgKzM3NzQsNyBAQCBpOTE1X2dlbV9vYmplY3Rf c2V0X3RvX2d0dF9kb21haW4oc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwgYm9vbCB3 cml0ZSkKIAl2bWEgPSBpOTE1X2dlbV9vYmpfdG9fZ2d0dChvYmopOwogCWlmICh2bWEgJiYgZHJt X21tX25vZGVfYWxsb2NhdGVkKCZ2bWEtPm5vZGUpICYmICFvYmotPmFjdGl2ZSkKIAkJbGlzdF9t b3ZlX3RhaWwoJnZtYS0+dm1fbGluaywKLQkJCSAgICAgICAmdG9faTkxNShvYmotPmJhc2UuZGV2 KS0+Z3R0LmJhc2UuaW5hY3RpdmVfbGlzdCk7CisJCQkgICAgICAgJnRvX2k5MTUob2JqLT5iYXNl LmRldiktPmdndHQuYmFzZS5pbmFjdGl2ZV9saXN0KTsKIAogCXJldHVybiAwOwogfQpAQCAtNDIx MSw3ICs0MjExLDcgQEAgdm9pZCBfX2k5MTVfdm1hX3NldF9tYXBfYW5kX2ZlbmNlYWJsZShzdHJ1 Y3QgaTkxNV92bWEgKnZtYSkKIAkJICAgICAodm1hLT5ub2RlLnN0YXJ0ICYgKGZlbmNlX2FsaWdu bWVudCAtIDEpKSA9PSAwKTsKIAogCW1hcHBhYmxlID0gKHZtYS0+bm9kZS5zdGFydCArIGZlbmNl X3NpemUgPD0KLQkJICAgIHRvX2k5MTUob2JqLT5iYXNlLmRldiktPmd0dC5tYXBwYWJsZV9lbmQp OworCQkgICAgdG9faTkxNShvYmotPmJhc2UuZGV2KS0+Z2d0dC5tYXBwYWJsZV9lbmQpOwogCiAJ b2JqLT5tYXBfYW5kX2ZlbmNlYWJsZSA9IG1hcHBhYmxlICYmIGZlbmNlYWJsZTsKIH0KZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwppbmRleCBjMTE0NjY1Li40ODEyZWViIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCkBAIC05NDUsNyArOTQ1LDcg QEAgaW50IGk5MTVfZ2VtX2NvbnRleHRfZ2V0cGFyYW1faW9jdGwoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgdm9pZCAqZGF0YSwKIAkJZWxzZSBpZiAodG9faTkxNShkZXYpLT5tbS5hbGlhc2luZ19w cGd0dCkKIAkJCWFyZ3MtPnZhbHVlID0gdG9faTkxNShkZXYpLT5tbS5hbGlhc2luZ19wcGd0dC0+ YmFzZS50b3RhbDsKIAkJZWxzZQotCQkJYXJncy0+dmFsdWUgPSB0b19pOTE1KGRldiktPmd0dC5i YXNlLnRvdGFsOworCQkJYXJncy0+dmFsdWUgPSB0b19pOTE1KGRldiktPmdndHQuYmFzZS50b3Rh bDsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJcmV0ID0gLUVJTlZBTDsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwppbmRleCBkYWMwMWVlLi4zNzRhMGNiIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCkBAIC0zMzAsNyArMzMw LDcgQEAgcmVsb2NhdGVfZW50cnlfZ3R0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmos CiAJLyogTWFwIHRoZSBwYWdlIGNvbnRhaW5pbmcgdGhlIHJlbG9jYXRpb24gd2UncmUgZ29pbmcg dG8gcGVyZm9ybS4gICovCiAJb2Zmc2V0ID0gaTkxNV9nZW1fb2JqX2dndHRfb2Zmc2V0KG9iaik7 CiAJb2Zmc2V0ICs9IHJlbG9jLT5vZmZzZXQ7Ci0JcmVsb2NfcGFnZSA9IGlvX21hcHBpbmdfbWFw X2F0b21pY193YyhkZXZfcHJpdi0+Z3R0Lm1hcHBhYmxlLAorCXJlbG9jX3BhZ2UgPSBpb19tYXBw aW5nX21hcF9hdG9taWNfd2MoZGV2X3ByaXYtPmdndHQubWFwcGFibGUsCiAJCQkJCSAgICAgIG9m ZnNldCAmIFBBR0VfTUFTSyk7CiAJaW93cml0ZTMyKGxvd2VyXzMyX2JpdHMoZGVsdGEpLCByZWxv Y19wYWdlICsgb2Zmc2V0X2luX3BhZ2Uob2Zmc2V0KSk7CiAKQEAgLTM0MCw3ICszNDAsNyBAQCBy ZWxvY2F0ZV9lbnRyeV9ndHQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAkJaWYg KG9mZnNldF9pbl9wYWdlKG9mZnNldCkgPT0gMCkgewogCQkJaW9fbWFwcGluZ191bm1hcF9hdG9t aWMocmVsb2NfcGFnZSk7CiAJCQlyZWxvY19wYWdlID0KLQkJCQlpb19tYXBwaW5nX21hcF9hdG9t aWNfd2MoZGV2X3ByaXYtPmd0dC5tYXBwYWJsZSwKKwkJCQlpb19tYXBwaW5nX21hcF9hdG9taWNf d2MoZGV2X3ByaXYtPmdndHQubWFwcGFibGUsCiAJCQkJCQkJIG9mZnNldCk7CiAJCX0KIApAQCAt MTUwNCw3ICsxNTA0LDcgQEAgaTkxNV9nZW1fZG9fZXhlY2J1ZmZlcihzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCB2b2lkICpkYXRhLAogCWlmIChjdHgtPnBwZ3R0KQogCQl2bSA9ICZjdHgtPnBwZ3R0 LT5iYXNlOwogCWVsc2UKLQkJdm0gPSAmZGV2X3ByaXYtPmd0dC5iYXNlOworCQl2bSA9ICZkZXZf cHJpdi0+Z2d0dC5iYXNlOwogCiAJbWVtc2V0KCZwYXJhbXNfbWFzdGVyLCAweDAwLCBzaXplb2Yo cGFyYW1zX21hc3RlcikpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9ndHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCmluZGV4IDVj OTA5NTIuLjFhMGYwYjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2d0dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCkBAIC0xNjM3 LDcgKzE2MzcsNyBAQCBzdGF0aWMgdm9pZCBnZW42X3dyaXRlX3BhZ2VfcmFuZ2Uoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCiAJLyogTWFrZSBzdXJlIHdyaXRlIGlzIGNvbXBs ZXRlIGJlZm9yZSBvdGhlciBjb2RlIGNhbiB1c2UgdGhpcyBwYWdlCiAJICogdGFibGUuIEFsc28g cmVxdWlyZSBmb3IgV0MgbWFwcGVkIFBURXMgKi8KLQlyZWFkbChkZXZfcHJpdi0+Z3R0LmdzbSk7 CisJcmVhZGwoZGV2X3ByaXYtPmdndHQuZ3NtKTsKIH0KIAogc3RhdGljIHVpbnQzMl90IGdldF9w ZF9vZmZzZXQoc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0KQpAQCAtMTkzMiw3ICsxOTMyLDcg QEAgc3RhdGljIGludCBnZW42X2FsbG9jX3ZhX3JhbmdlKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3Bh Y2UgKnZtLAogCiAJLyogTWFrZSBzdXJlIHdyaXRlIGlzIGNvbXBsZXRlIGJlZm9yZSBvdGhlciBj b2RlIGNhbiB1c2UgdGhpcyBwYWdlCiAJICogdGFibGUuIEFsc28gcmVxdWlyZSBmb3IgV0MgbWFw cGVkIFBURXMgKi8KLQlyZWFkbChkZXZfcHJpdi0+Z3R0LmdzbSk7CisJcmVhZGwoZGV2X3ByaXYt PmdndHQuZ3NtKTsKIAogCW1hcmtfdGxic19kaXJ0eShwcGd0dCk7CiAJcmV0dXJuIDA7CkBAIC0y MDA1LDIzICsyMDA1LDIzIEBAIHN0YXRpYyBpbnQgZ2VuNl9wcGd0dF9hbGxvY2F0ZV9wYWdlX2Rp cmVjdG9yaWVzKHN0cnVjdCBpOTE1X2h3X3BwZ3R0ICpwcGd0dCkKIAkgKiBhbGxvY2F0b3Igd29y a3MgaW4gYWRkcmVzcyBzcGFjZSBzaXplcywgc28gaXQncyBtdWx0aXBsaWVkIGJ5IHBhZ2UKIAkg KiBzaXplLiBXZSBhbGxvY2F0ZSBhdCB0aGUgdG9wIG9mIHRoZSBHVFQgdG8gYXZvaWQgZnJhZ21l bnRhdGlvbi4KIAkgKi8KLQlCVUdfT04oIWRybV9tbV9pbml0aWFsaXplZCgmZGV2X3ByaXYtPmd0 dC5iYXNlLm1tKSk7CisJQlVHX09OKCFkcm1fbW1faW5pdGlhbGl6ZWQoJmRldl9wcml2LT5nZ3R0 LmJhc2UubW0pKTsKIAogCXJldCA9IGdlbjZfaW5pdF9zY3JhdGNoKHZtKTsKIAlpZiAocmV0KQog CQlyZXR1cm4gcmV0OwogCiBhbGxvYzoKLQlyZXQgPSBkcm1fbW1faW5zZXJ0X25vZGVfaW5fcmFu Z2VfZ2VuZXJpYygmZGV2X3ByaXYtPmd0dC5iYXNlLm1tLAorCXJldCA9IGRybV9tbV9pbnNlcnRf bm9kZV9pbl9yYW5nZV9nZW5lcmljKCZkZXZfcHJpdi0+Z2d0dC5iYXNlLm1tLAogCQkJCQkJICAm cHBndHQtPm5vZGUsIEdFTjZfUERfU0laRSwKIAkJCQkJCSAgR0VONl9QRF9BTElHTiwgMCwKLQkJ CQkJCSAgMCwgZGV2X3ByaXYtPmd0dC5iYXNlLnRvdGFsLAorCQkJCQkJICAwLCBkZXZfcHJpdi0+ Z2d0dC5iYXNlLnRvdGFsLAogCQkJCQkJICBEUk1fTU1fVE9QRE9XTik7CiAJaWYgKHJldCA9PSAt RU5PU1BDICYmICFyZXRyaWVkKSB7Ci0JCXJldCA9IGk5MTVfZ2VtX2V2aWN0X3NvbWV0aGluZyhk ZXYsICZkZXZfcHJpdi0+Z3R0LmJhc2UsCisJCXJldCA9IGk5MTVfZ2VtX2V2aWN0X3NvbWV0aGlu ZyhkZXYsICZkZXZfcHJpdi0+Z2d0dC5iYXNlLAogCQkJCQkgICAgICAgR0VONl9QRF9TSVpFLCBH RU42X1BEX0FMSUdOLAogCQkJCQkgICAgICAgSTkxNV9DQUNIRV9OT05FLAotCQkJCQkgICAgICAg MCwgZGV2X3ByaXYtPmd0dC5iYXNlLnRvdGFsLAorCQkJCQkgICAgICAgMCwgZGV2X3ByaXYtPmdn dHQuYmFzZS50b3RhbCwKIAkJCQkJICAgICAgIDApOwogCQlpZiAocmV0KQogCQkJZ290byBlcnJf b3V0OwpAQCAtMjAzNCw3ICsyMDM0LDcgQEAgYWxsb2M6CiAJCWdvdG8gZXJyX291dDsKIAogCi0J aWYgKHBwZ3R0LT5ub2RlLnN0YXJ0IDwgZGV2X3ByaXYtPmd0dC5tYXBwYWJsZV9lbmQpCisJaWYg KHBwZ3R0LT5ub2RlLnN0YXJ0IDwgZGV2X3ByaXYtPmdndHQubWFwcGFibGVfZW5kKQogCQlEUk1f REVCVUcoIkZvcmNlZCB0byB1c2UgYXBlcnR1cmUgZm9yIFBERXNcbiIpOwogCiAJcmV0dXJuIDA7 CkBAIC0yMDY1LDcgKzIwNjUsNyBAQCBzdGF0aWMgaW50IGdlbjZfcHBndHRfaW5pdChzdHJ1Y3Qg aTkxNV9od19wcGd0dCAqcHBndHQpCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlpbnQgcmV0OwogCi0JcHBndHQtPmJhc2UucHRlX2VuY29k ZSA9IGRldl9wcml2LT5ndHQuYmFzZS5wdGVfZW5jb2RlOworCXBwZ3R0LT5iYXNlLnB0ZV9lbmNv ZGUgPSBkZXZfcHJpdi0+Z2d0dC5iYXNlLnB0ZV9lbmNvZGU7CiAJaWYgKElTX0dFTjYoZGV2KSkg ewogCQlwcGd0dC0+c3dpdGNoX21tID0gZ2VuNl9tbV9zd2l0Y2g7CiAJfSBlbHNlIGlmIChJU19I QVNXRUxMKGRldikpIHsKQEAgLTIwOTUsNyArMjA5NSw3IEBAIHN0YXRpYyBpbnQgZ2VuNl9wcGd0 dF9pbml0KHN0cnVjdCBpOTE1X2h3X3BwZ3R0ICpwcGd0dCkKIAlwcGd0dC0+cGQuYmFzZS5nZ3R0 X29mZnNldCA9CiAJCXBwZ3R0LT5ub2RlLnN0YXJ0IC8gUEFHRV9TSVpFICogc2l6ZW9mKGdlbjZf cHRlX3QpOwogCi0JcHBndHQtPnBkX2FkZHIgPSAoZ2VuNl9wdGVfdCBfX2lvbWVtICopZGV2X3By aXYtPmd0dC5nc20gKworCXBwZ3R0LT5wZF9hZGRyID0gKGdlbjZfcHRlX3QgX19pb21lbSAqKWRl dl9wcml2LT5nZ3R0LmdzbSArCiAJCXBwZ3R0LT5wZC5iYXNlLmdndHRfb2Zmc2V0IC8gc2l6ZW9m KGdlbjZfcHRlX3QpOwogCiAJZ2VuNl9zY3JhdGNoX3ZhX3JhbmdlKHBwZ3R0LCAwLCBwcGd0dC0+ YmFzZS50b3RhbCk7CkBAIC0yMjY1LDcgKzIyNjUsNyBAQCBzdGF0aWMgYm9vbCBkb19pZGxpbmco c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewogCWJvb2wgcmV0ID0gZGV2X3By aXYtPm1tLmludGVycnVwdGlibGU7CiAKLQlpZiAodW5saWtlbHkoZGV2X3ByaXYtPmd0dC5kb19p ZGxlX21hcHMpKSB7CisJaWYgKHVubGlrZWx5KGRldl9wcml2LT5nZ3R0LmRvX2lkbGVfbWFwcykp IHsKIAkJZGV2X3ByaXYtPm1tLmludGVycnVwdGlibGUgPSBmYWxzZTsKIAkJaWYgKGk5MTVfZ3B1 X2lkbGUoZGV2X3ByaXYtPmRldikpIHsKIAkJCURSTV9FUlJPUigiQ291bGRuJ3QgaWRsZSBHUFVc biIpOwpAQCAtMjI3OSw3ICsyMjc5LDcgQEAgc3RhdGljIGJvb2wgZG9faWRsaW5nKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAogc3RhdGljIHZvaWQgdW5kb19pZGxpbmcoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBib29sIGludGVycnVwdGlibGUpCiB7Ci0J aWYgKHVubGlrZWx5KGRldl9wcml2LT5ndHQuZG9faWRsZV9tYXBzKSkKKwlpZiAodW5saWtlbHko ZGV2X3ByaXYtPmdndHQuZG9faWRsZV9tYXBzKSkKIAkJZGV2X3ByaXYtPm1tLmludGVycnVwdGli bGUgPSBpbnRlcnJ1cHRpYmxlOwogfQogCkBAIC0yMzM0LDkgKzIzMzQsOSBAQCB2b2lkIGk5MTVf Z2VtX3N1c3BlbmRfZ3R0X21hcHBpbmdzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAKIAlpOTE1 X2NoZWNrX2FuZF9jbGVhcl9mYXVsdHMoZGV2KTsKIAotCWRldl9wcml2LT5ndHQuYmFzZS5jbGVh cl9yYW5nZSgmZGV2X3ByaXYtPmd0dC5iYXNlLAotCQkJCSAgICAgICBkZXZfcHJpdi0+Z3R0LmJh c2Uuc3RhcnQsCi0JCQkJICAgICAgIGRldl9wcml2LT5ndHQuYmFzZS50b3RhbCwKKwlkZXZfcHJp di0+Z2d0dC5iYXNlLmNsZWFyX3JhbmdlKCZkZXZfcHJpdi0+Z2d0dC5iYXNlLAorCQkJCSAgICAg ICBkZXZfcHJpdi0+Z2d0dC5iYXNlLnN0YXJ0LAorCQkJCSAgICAgICBkZXZfcHJpdi0+Z2d0dC5i YXNlLnRvdGFsLAogCQkJCSAgICAgICB0cnVlKTsKIAogCWk5MTVfZ2d0dF9mbHVzaChkZXZfcHJp dik7CkBAIC0yMzcwLDcgKzIzNzAsNyBAQCBzdGF0aWMgdm9pZCBnZW44X2dndHRfaW5zZXJ0X2Vu dHJpZXMoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCiAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdm0tPmRldi0+ZGV2X3ByaXZhdGU7CiAJdW5zaWduZWQgZmlyc3Rf ZW50cnkgPSBzdGFydCA+PiBQQUdFX1NISUZUOwogCWdlbjhfcHRlX3QgX19pb21lbSAqZ3R0X2Vu dHJpZXMgPQotCQkoZ2VuOF9wdGVfdCBfX2lvbWVtICopZGV2X3ByaXYtPmd0dC5nc20gKyBmaXJz dF9lbnRyeTsKKwkJKGdlbjhfcHRlX3QgX19pb21lbSAqKWRldl9wcml2LT5nZ3R0LmdzbSArIGZp cnN0X2VudHJ5OwogCWludCBpID0gMDsKIAlzdHJ1Y3Qgc2dfcGFnZV9pdGVyIHNnX2l0ZXI7CiAJ ZG1hX2FkZHJfdCBhZGRyID0gMDsgLyogc2h1dCB1cCBnY2MgKi8KQEAgLTI0NDcsNyArMjQ0Nyw3 IEBAIHN0YXRpYyB2b2lkIGdlbjZfZ2d0dF9pbnNlcnRfZW50cmllcyhzdHJ1Y3QgaTkxNV9hZGRy ZXNzX3NwYWNlICp2bSwKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB2bS0+ ZGV2LT5kZXZfcHJpdmF0ZTsKIAl1bnNpZ25lZCBmaXJzdF9lbnRyeSA9IHN0YXJ0ID4+IFBBR0Vf U0hJRlQ7CiAJZ2VuNl9wdGVfdCBfX2lvbWVtICpndHRfZW50cmllcyA9Ci0JCShnZW42X3B0ZV90 IF9faW9tZW0gKilkZXZfcHJpdi0+Z3R0LmdzbSArIGZpcnN0X2VudHJ5OworCQkoZ2VuNl9wdGVf dCBfX2lvbWVtICopZGV2X3ByaXYtPmdndHQuZ3NtICsgZmlyc3RfZW50cnk7CiAJaW50IGkgPSAw OwogCXN0cnVjdCBzZ19wYWdlX2l0ZXIgc2dfaXRlcjsKIAlkbWFfYWRkcl90IGFkZHIgPSAwOwpA QCAtMjQ5MSw4ICsyNDkxLDggQEAgc3RhdGljIHZvaWQgZ2VuOF9nZ3R0X2NsZWFyX3JhbmdlKHN0 cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogCXVuc2lnbmVkIGZpcnN0X2VudHJ5ID0gc3Rh cnQgPj4gUEFHRV9TSElGVDsKIAl1bnNpZ25lZCBudW1fZW50cmllcyA9IGxlbmd0aCA+PiBQQUdF X1NISUZUOwogCWdlbjhfcHRlX3Qgc2NyYXRjaF9wdGUsIF9faW9tZW0gKmd0dF9iYXNlID0KLQkJ KGdlbjhfcHRlX3QgX19pb21lbSAqKSBkZXZfcHJpdi0+Z3R0LmdzbSArIGZpcnN0X2VudHJ5Owot CWNvbnN0IGludCBtYXhfZW50cmllcyA9IGd0dF90b3RhbF9lbnRyaWVzKGRldl9wcml2LT5ndHQp IC0gZmlyc3RfZW50cnk7CisJCShnZW44X3B0ZV90IF9faW9tZW0gKikgZGV2X3ByaXYtPmdndHQu Z3NtICsgZmlyc3RfZW50cnk7CisJY29uc3QgaW50IG1heF9lbnRyaWVzID0gZ3R0X3RvdGFsX2Vu dHJpZXMoZGV2X3ByaXYtPmdndHQpIC0gZmlyc3RfZW50cnk7CiAJaW50IGk7CiAJaW50IHJwbV9h dG9taWNfc2VxOwogCkBAIC0yNTIyLDggKzI1MjIsOCBAQCBzdGF0aWMgdm9pZCBnZW42X2dndHRf Y2xlYXJfcmFuZ2Uoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCiAJdW5zaWduZWQgZmly c3RfZW50cnkgPSBzdGFydCA+PiBQQUdFX1NISUZUOwogCXVuc2lnbmVkIG51bV9lbnRyaWVzID0g bGVuZ3RoID4+IFBBR0VfU0hJRlQ7CiAJZ2VuNl9wdGVfdCBzY3JhdGNoX3B0ZSwgX19pb21lbSAq Z3R0X2Jhc2UgPQotCQkoZ2VuNl9wdGVfdCBfX2lvbWVtICopIGRldl9wcml2LT5ndHQuZ3NtICsg Zmlyc3RfZW50cnk7Ci0JY29uc3QgaW50IG1heF9lbnRyaWVzID0gZ3R0X3RvdGFsX2VudHJpZXMo ZGV2X3ByaXYtPmd0dCkgLSBmaXJzdF9lbnRyeTsKKwkJKGdlbjZfcHRlX3QgX19pb21lbSAqKSBk ZXZfcHJpdi0+Z2d0dC5nc20gKyBmaXJzdF9lbnRyeTsKKwljb25zdCBpbnQgbWF4X2VudHJpZXMg PSBndHRfdG90YWxfZW50cmllcyhkZXZfcHJpdi0+Z2d0dCkgLSBmaXJzdF9lbnRyeTsKIAlpbnQg aTsKIAlpbnQgcnBtX2F0b21pY19zZXE7CiAKQEAgLTI3MTgsNyArMjcxOCw3IEBAIHN0YXRpYyBp bnQgaTkxNV9nZW1fc2V0dXBfZ2xvYmFsX2d0dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCSAq IG9mIHRoZSBhcGVydHVyZS4KIAkgKi8KIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKmdndHRf dm0gPSAmZGV2X3ByaXYtPmd0dC5iYXNlOworCXN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKmdn dHRfdm0gPSAmZGV2X3ByaXYtPmdndHQuYmFzZTsKIAlzdHJ1Y3QgZHJtX21tX25vZGUgKmVudHJ5 OwogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CiAJdW5zaWduZWQgbG9uZyBob2xl X3N0YXJ0LCBob2xlX2VuZDsKQEAgLTI4MDEsOCArMjgwMSw4IEBAIHN0YXRpYyBpbnQgaTkxNV9n ZW1fc2V0dXBfZ2xvYmFsX2d0dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCQl0cnVlKTsK IAogCQlkZXZfcHJpdi0+bW0uYWxpYXNpbmdfcHBndHQgPSBwcGd0dDsKLQkJV0FSTl9PTihkZXZf cHJpdi0+Z3R0LmJhc2UuYmluZF92bWEgIT0gZ2d0dF9iaW5kX3ZtYSk7Ci0JCWRldl9wcml2LT5n dHQuYmFzZS5iaW5kX3ZtYSA9IGFsaWFzaW5nX2d0dF9iaW5kX3ZtYTsKKwkJV0FSTl9PTihkZXZf cHJpdi0+Z2d0dC5iYXNlLmJpbmRfdm1hICE9IGdndHRfYmluZF92bWEpOworCQlkZXZfcHJpdi0+ Z2d0dC5iYXNlLmJpbmRfdm1hID0gYWxpYXNpbmdfZ3R0X2JpbmRfdm1hOwogCX0KIAogCXJldHVy biAwOwpAQCAtMjgxMyw4ICsyODEzLDggQEAgdm9pZCBpOTE1X2dlbV9pbml0X2dsb2JhbF9ndHQo c3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBkZXYtPmRldl9wcml2YXRlOwogCXU2NCBndHRfc2l6ZSwgbWFwcGFibGVfc2l6ZTsKIAot CWd0dF9zaXplID0gZGV2X3ByaXYtPmd0dC5iYXNlLnRvdGFsOwotCW1hcHBhYmxlX3NpemUgPSBk ZXZfcHJpdi0+Z3R0Lm1hcHBhYmxlX2VuZDsKKwlndHRfc2l6ZSA9IGRldl9wcml2LT5nZ3R0LmJh c2UudG90YWw7CisJbWFwcGFibGVfc2l6ZSA9IGRldl9wcml2LT5nZ3R0Lm1hcHBhYmxlX2VuZDsK IAogCWk5MTVfZ2VtX3NldHVwX2dsb2JhbF9ndHQoZGV2LCAwLCBtYXBwYWJsZV9zaXplLCBndHRf c2l6ZSk7CiB9CkBAIC0yODIyLDcgKzI4MjIsNyBAQCB2b2lkIGk5MTVfZ2VtX2luaXRfZ2xvYmFs X2d0dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogdm9pZCBpOTE1X2dsb2JhbF9ndHRfY2xlYW51 cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0Jc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAq dm0gPSAmZGV2X3ByaXYtPmd0dC5iYXNlOworCXN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZt ID0gJmRldl9wcml2LT5nZ3R0LmJhc2U7CiAKIAlpZiAoZGV2X3ByaXYtPm1tLmFsaWFzaW5nX3Bw Z3R0KSB7CiAJCXN0cnVjdCBpOTE1X2h3X3BwZ3R0ICpwcGd0dCA9IGRldl9wcml2LT5tbS5hbGlh c2luZ19wcGd0dDsKQEAgLTI5NDAsMTAgKzI5NDAsMTAgQEAgc3RhdGljIGludCBnZ3R0X3Byb2Jl X2NvbW1vbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCSAqIHJlYWRiYWNrIGNoZWNrIHdoZW4g d3JpdGluZyBHVFQgUFRFIGVudHJpZXMuCiAJICovCiAJaWYgKElTX0JST1hUT04oZGV2KSkKLQkJ ZGV2X3ByaXYtPmd0dC5nc20gPSBpb3JlbWFwX25vY2FjaGUoZ3R0X3BoeXNfYWRkciwgZ3R0X3Np emUpOworCQlkZXZfcHJpdi0+Z2d0dC5nc20gPSBpb3JlbWFwX25vY2FjaGUoZ3R0X3BoeXNfYWRk ciwgZ3R0X3NpemUpOwogCWVsc2UKLQkJZGV2X3ByaXYtPmd0dC5nc20gPSBpb3JlbWFwX3djKGd0 dF9waHlzX2FkZHIsIGd0dF9zaXplKTsKLQlpZiAoIWRldl9wcml2LT5ndHQuZ3NtKSB7CisJCWRl dl9wcml2LT5nZ3R0LmdzbSA9IGlvcmVtYXBfd2MoZ3R0X3BoeXNfYWRkciwgZ3R0X3NpemUpOwor CWlmICghZGV2X3ByaXYtPmdndHQuZ3NtKSB7CiAJCURSTV9FUlJPUigiRmFpbGVkIHRvIG1hcCB0 aGUgZ3R0IHBhZ2UgdGFibGVcbiIpOwogCQlyZXR1cm4gLUVOT01FTTsKIAl9CkBAIC0yOTUyLDEx ICsyOTUyLDExIEBAIHN0YXRpYyBpbnQgZ2d0dF9wcm9iZV9jb21tb24oc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKIAlpZiAoSVNfRVJSKHNjcmF0Y2hfcGFnZSkpIHsKIAkJRFJNX0VSUk9SKCJTY3Jh dGNoIHNldHVwIGZhaWxlZFxuIik7CiAJCS8qIGlvdW5tYXAgd2lsbCBhbHNvIGdldCBjYWxsZWQg YXQgcmVtb3ZlLCBidXQgbWVoICovCi0JCWlvdW5tYXAoZGV2X3ByaXYtPmd0dC5nc20pOworCQlp b3VubWFwKGRldl9wcml2LT5nZ3R0LmdzbSk7CiAJCXJldHVybiBQVFJfRVJSKHNjcmF0Y2hfcGFn ZSk7CiAJfQogCi0JZGV2X3ByaXYtPmd0dC5iYXNlLnNjcmF0Y2hfcGFnZSA9IHNjcmF0Y2hfcGFn ZTsKKwlkZXZfcHJpdi0+Z2d0dC5iYXNlLnNjcmF0Y2hfcGFnZSA9IHNjcmF0Y2hfcGFnZTsKIAog CXJldHVybiAwOwogfQpAQCAtMzA3NCwxMyArMzA3NCwxMyBAQCBzdGF0aWMgaW50IGdlbjhfZ21j aF9wcm9iZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCiAJcmV0ID0gZ2d0dF9wcm9iZV9jb21t b24oZGV2LCBndHRfc2l6ZSk7CiAKLQlkZXZfcHJpdi0+Z3R0LmJhc2UuY2xlYXJfcmFuZ2UgPSBn ZW44X2dndHRfY2xlYXJfcmFuZ2U7Ci0JZGV2X3ByaXYtPmd0dC5iYXNlLmluc2VydF9lbnRyaWVz ID0gZ2VuOF9nZ3R0X2luc2VydF9lbnRyaWVzOwotCWRldl9wcml2LT5ndHQuYmFzZS5iaW5kX3Zt YSA9IGdndHRfYmluZF92bWE7Ci0JZGV2X3ByaXYtPmd0dC5iYXNlLnVuYmluZF92bWEgPSBnZ3R0 X3VuYmluZF92bWE7CisJZGV2X3ByaXYtPmdndHQuYmFzZS5jbGVhcl9yYW5nZSA9IGdlbjhfZ2d0 dF9jbGVhcl9yYW5nZTsKKwlkZXZfcHJpdi0+Z2d0dC5iYXNlLmluc2VydF9lbnRyaWVzID0gZ2Vu OF9nZ3R0X2luc2VydF9lbnRyaWVzOworCWRldl9wcml2LT5nZ3R0LmJhc2UuYmluZF92bWEgPSBn Z3R0X2JpbmRfdm1hOworCWRldl9wcml2LT5nZ3R0LmJhc2UudW5iaW5kX3ZtYSA9IGdndHRfdW5i aW5kX3ZtYTsKIAogCWlmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSkKLQkJZGV2X3ByaXYtPmd0 dC5iYXNlLmluc2VydF9lbnRyaWVzID0gZ2VuOF9nZ3R0X2luc2VydF9lbnRyaWVzX19CS0w7CisJ CWRldl9wcml2LT5nZ3R0LmJhc2UuaW5zZXJ0X2VudHJpZXMgPSBnZW44X2dndHRfaW5zZXJ0X2Vu dHJpZXNfX0JLTDsKIAogCXJldHVybiByZXQ7CiB9CkBAIC0zMTE4LDIwICszMTE4LDE5IEBAIHN0 YXRpYyBpbnQgZ2VuNl9nbWNoX3Byb2JlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAKIAlyZXQg PSBnZ3R0X3Byb2JlX2NvbW1vbihkZXYsIGd0dF9zaXplKTsKIAotCWRldl9wcml2LT5ndHQuYmFz ZS5jbGVhcl9yYW5nZSA9IGdlbjZfZ2d0dF9jbGVhcl9yYW5nZTsKLQlkZXZfcHJpdi0+Z3R0LmJh c2UuaW5zZXJ0X2VudHJpZXMgPSBnZW42X2dndHRfaW5zZXJ0X2VudHJpZXM7Ci0JZGV2X3ByaXYt Pmd0dC5iYXNlLmJpbmRfdm1hID0gZ2d0dF9iaW5kX3ZtYTsKLQlkZXZfcHJpdi0+Z3R0LmJhc2Uu dW5iaW5kX3ZtYSA9IGdndHRfdW5iaW5kX3ZtYTsKKwlkZXZfcHJpdi0+Z2d0dC5iYXNlLmNsZWFy X3JhbmdlID0gZ2VuNl9nZ3R0X2NsZWFyX3JhbmdlOworCWRldl9wcml2LT5nZ3R0LmJhc2UuaW5z ZXJ0X2VudHJpZXMgPSBnZW42X2dndHRfaW5zZXJ0X2VudHJpZXM7CisJZGV2X3ByaXYtPmdndHQu YmFzZS5iaW5kX3ZtYSA9IGdndHRfYmluZF92bWE7CisJZGV2X3ByaXYtPmdndHQuYmFzZS51bmJp bmRfdm1hID0gZ2d0dF91bmJpbmRfdm1hOwogCiAJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIHZv aWQgZ2VuNl9nbWNoX3JlbW92ZShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSkKIHsKKwlz dHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0ID0gY29udGFpbmVyX29mKHZtLCBzdHJ1Y3QgaTkxNV9nZ3R0 LCBiYXNlKTsKIAotCXN0cnVjdCBpOTE1X2d0dCAqZ3R0ID0gY29udGFpbmVyX29mKHZtLCBzdHJ1 Y3QgaTkxNV9ndHQsIGJhc2UpOwotCi0JaW91bm1hcChndHQtPmdzbSk7CisJaW91bm1hcChnZ3R0 LT5nc20pOwogCWZyZWVfc2NyYXRjaF9wYWdlKHZtLT5kZXYsIHZtLT5zY3JhdGNoX3BhZ2UpOwog fQogCkBAIC0zMTUyLDEzICszMTUxLDEzIEBAIHN0YXRpYyBpbnQgaTkxNV9nbWNoX3Byb2JlKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAKIAlpbnRlbF9ndHRfZ2V0KGd0dF90b3RhbCwgc3RvbGVu LCBtYXBwYWJsZV9iYXNlLCBtYXBwYWJsZV9lbmQpOwogCi0JZGV2X3ByaXYtPmd0dC5kb19pZGxl X21hcHMgPSBuZWVkc19pZGxlX21hcHMoZGV2X3ByaXYtPmRldik7Ci0JZGV2X3ByaXYtPmd0dC5i YXNlLmluc2VydF9lbnRyaWVzID0gaTkxNV9nZ3R0X2luc2VydF9lbnRyaWVzOwotCWRldl9wcml2 LT5ndHQuYmFzZS5jbGVhcl9yYW5nZSA9IGk5MTVfZ2d0dF9jbGVhcl9yYW5nZTsKLQlkZXZfcHJp di0+Z3R0LmJhc2UuYmluZF92bWEgPSBnZ3R0X2JpbmRfdm1hOwotCWRldl9wcml2LT5ndHQuYmFz ZS51bmJpbmRfdm1hID0gZ2d0dF91bmJpbmRfdm1hOworCWRldl9wcml2LT5nZ3R0LmRvX2lkbGVf bWFwcyA9IG5lZWRzX2lkbGVfbWFwcyhkZXZfcHJpdi0+ZGV2KTsKKwlkZXZfcHJpdi0+Z2d0dC5i YXNlLmluc2VydF9lbnRyaWVzID0gaTkxNV9nZ3R0X2luc2VydF9lbnRyaWVzOworCWRldl9wcml2 LT5nZ3R0LmJhc2UuY2xlYXJfcmFuZ2UgPSBpOTE1X2dndHRfY2xlYXJfcmFuZ2U7CisJZGV2X3By aXYtPmdndHQuYmFzZS5iaW5kX3ZtYSA9IGdndHRfYmluZF92bWE7CisJZGV2X3ByaXYtPmdndHQu YmFzZS51bmJpbmRfdm1hID0gZ2d0dF91bmJpbmRfdm1hOwogCi0JaWYgKHVubGlrZWx5KGRldl9w cml2LT5ndHQuZG9faWRsZV9tYXBzKSkKKwlpZiAodW5saWtlbHkoZGV2X3ByaXYtPmdndHQuZG9f aWRsZV9tYXBzKSkKIAkJRFJNX0lORk8oImFwcGx5aW5nIElyb25sYWtlIHF1aXJrcyBmb3IgaW50 ZWxfaW9tbXVcbiIpOwogCiAJcmV0dXJuIDA7CkBAIC0zMTcyLDM1ICszMTcxLDM1IEBAIHN0YXRp YyB2b2lkIGk5MTVfZ21jaF9yZW1vdmUoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0pCiBp bnQgaTkxNV9nZW1fZ3R0X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBp OTE1X2d0dCAqZ3R0ID0gJmRldl9wcml2LT5ndHQ7CisJc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCA9 ICZkZXZfcHJpdi0+Z2d0dDsKIAlpbnQgcmV0OwogCiAJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2Vu IDw9IDUpIHsKLQkJZ3R0LT5ndHRfcHJvYmUgPSBpOTE1X2dtY2hfcHJvYmU7Ci0JCWd0dC0+YmFz ZS5jbGVhbnVwID0gaTkxNV9nbWNoX3JlbW92ZTsKKwkJZ2d0dC0+cHJvYmUgPSBpOTE1X2dtY2hf cHJvYmU7CisJCWdndHQtPmJhc2UuY2xlYW51cCA9IGk5MTVfZ21jaF9yZW1vdmU7CiAJfSBlbHNl IGlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA8IDgpIHsKLQkJZ3R0LT5ndHRfcHJvYmUgPSBnZW42 X2dtY2hfcHJvYmU7Ci0JCWd0dC0+YmFzZS5jbGVhbnVwID0gZ2VuNl9nbWNoX3JlbW92ZTsKKwkJ Z2d0dC0+cHJvYmUgPSBnZW42X2dtY2hfcHJvYmU7CisJCWdndHQtPmJhc2UuY2xlYW51cCA9IGdl bjZfZ21jaF9yZW1vdmU7CiAJCWlmIChJU19IQVNXRUxMKGRldikgJiYgZGV2X3ByaXYtPmVsbGNf c2l6ZSkKLQkJCWd0dC0+YmFzZS5wdGVfZW5jb2RlID0gaXJpc19wdGVfZW5jb2RlOworCQkJZ2d0 dC0+YmFzZS5wdGVfZW5jb2RlID0gaXJpc19wdGVfZW5jb2RlOwogCQllbHNlIGlmIChJU19IQVNX RUxMKGRldikpCi0JCQlndHQtPmJhc2UucHRlX2VuY29kZSA9IGhzd19wdGVfZW5jb2RlOworCQkJ Z2d0dC0+YmFzZS5wdGVfZW5jb2RlID0gaHN3X3B0ZV9lbmNvZGU7CiAJCWVsc2UgaWYgKElTX1ZB TExFWVZJRVcoZGV2KSkKLQkJCWd0dC0+YmFzZS5wdGVfZW5jb2RlID0gYnl0X3B0ZV9lbmNvZGU7 CisJCQlnZ3R0LT5iYXNlLnB0ZV9lbmNvZGUgPSBieXRfcHRlX2VuY29kZTsKIAkJZWxzZSBpZiAo SU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gNykKLQkJCWd0dC0+YmFzZS5wdGVfZW5jb2RlID0gaXZi X3B0ZV9lbmNvZGU7CisJCQlnZ3R0LT5iYXNlLnB0ZV9lbmNvZGUgPSBpdmJfcHRlX2VuY29kZTsK IAkJZWxzZQotCQkJZ3R0LT5iYXNlLnB0ZV9lbmNvZGUgPSBzbmJfcHRlX2VuY29kZTsKKwkJCWdn dHQtPmJhc2UucHRlX2VuY29kZSA9IHNuYl9wdGVfZW5jb2RlOwogCX0gZWxzZSB7Ci0JCWRldl9w cml2LT5ndHQuZ3R0X3Byb2JlID0gZ2VuOF9nbWNoX3Byb2JlOwotCQlkZXZfcHJpdi0+Z3R0LmJh c2UuY2xlYW51cCA9IGdlbjZfZ21jaF9yZW1vdmU7CisJCWdndHQtPnByb2JlID0gZ2VuOF9nbWNo X3Byb2JlOworCQlnZ3R0LT5iYXNlLmNsZWFudXAgPSBnZW42X2dtY2hfcmVtb3ZlOwogCX0KIAot CWd0dC0+YmFzZS5kZXYgPSBkZXY7Ci0JZ3R0LT5iYXNlLmlzX2dndHQgPSB0cnVlOworCWdndHQt PmJhc2UuZGV2ID0gZGV2OworCWdndHQtPmJhc2UuaXNfZ2d0dCA9IHRydWU7CiAKLQlyZXQgPSBn dHQtPmd0dF9wcm9iZShkZXYsICZndHQtPmJhc2UudG90YWwsICZndHQtPnN0b2xlbl9zaXplLAot CQkJICAgICAmZ3R0LT5tYXBwYWJsZV9iYXNlLCAmZ3R0LT5tYXBwYWJsZV9lbmQpOworCXJldCA9 IGdndHQtPnByb2JlKGRldiwgJmdndHQtPmJhc2UudG90YWwsICZnZ3R0LT5zdG9sZW5fc2l6ZSwK KwkJCSAgJmdndHQtPm1hcHBhYmxlX2Jhc2UsICZnZ3R0LT5tYXBwYWJsZV9lbmQpOwogCWlmIChy ZXQpCiAJCXJldHVybiByZXQ7CiAKQEAgLTMyMTQsOSArMzIxMyw5IEBAIGludCBpOTE1X2dlbV9n dHRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCiAJLyogR01BRFIgaXMgdGhlIFBDSSBt bWlvIGFwZXJ0dXJlIGludG8gdGhlIGdsb2JhbCBHVFQuICovCiAJRFJNX0lORk8oIk1lbW9yeSB1 c2FibGUgYnkgZ3JhcGhpY3MgZGV2aWNlID0gJWxsdU1cbiIsCi0JCSBndHQtPmJhc2UudG90YWwg Pj4gMjApOwotCURSTV9ERUJVR19EUklWRVIoIkdNQURSIHNpemUgPSAlbGxkTVxuIiwgZ3R0LT5t YXBwYWJsZV9lbmQgPj4gMjApOwotCURSTV9ERUJVR19EUklWRVIoIkdUVCBzdG9sZW4gc2l6ZSA9 ICV6ZE1cbiIsIGd0dC0+c3RvbGVuX3NpemUgPj4gMjApOworCQkgZ2d0dC0+YmFzZS50b3RhbCA+ PiAyMCk7CisJRFJNX0RFQlVHX0RSSVZFUigiR01BRFIgc2l6ZSA9ICVsbGRNXG4iLCBnZ3R0LT5t YXBwYWJsZV9lbmQgPj4gMjApOworCURSTV9ERUJVR19EUklWRVIoIkdUVCBzdG9sZW4gc2l6ZSA9 ICV6ZE1cbiIsIGdndHQtPnN0b2xlbl9zaXplID4+IDIwKTsKICNpZmRlZiBDT05GSUdfSU5URUxf SU9NTVUKIAlpZiAoaW50ZWxfaW9tbXVfZ2Z4X21hcHBlZCkKIAkJRFJNX0lORk8oIlZULWQgYWN0 aXZlIGZvciBnZnggYWNjZXNzXG4iKTsKQEAgLTMyMzMsNyArMzIzMiw3IEBAIGludCBpOTE1X2dl bV9ndHRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCXJldHVybiAwOwogCiBvdXRfZ3R0 X2NsZWFudXA6Ci0JZ3R0LT5iYXNlLmNsZWFudXAoJmRldl9wcml2LT5ndHQuYmFzZSk7CisJZ2d0 dC0+YmFzZS5jbGVhbnVwKCZkZXZfcHJpdi0+Z2d0dC5iYXNlKTsKIAogCXJldHVybiByZXQ7CiB9 CkBAIC0zMjQ5LDEzICszMjQ4LDEzIEBAIHZvaWQgaTkxNV9nZW1fcmVzdG9yZV9ndHRfbWFwcGlu Z3Moc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlpOTE1X2NoZWNrX2FuZF9jbGVhcl9mYXVsdHMo ZGV2KTsKIAogCS8qIEZpcnN0IGZpbGwgb3VyIHBvcnRpb24gb2YgdGhlIEdUVCB3aXRoIHNjcmF0 Y2ggcGFnZXMgKi8KLQlkZXZfcHJpdi0+Z3R0LmJhc2UuY2xlYXJfcmFuZ2UoJmRldl9wcml2LT5n dHQuYmFzZSwKLQkJCQkgICAgICAgZGV2X3ByaXYtPmd0dC5iYXNlLnN0YXJ0LAotCQkJCSAgICAg ICBkZXZfcHJpdi0+Z3R0LmJhc2UudG90YWwsCisJZGV2X3ByaXYtPmdndHQuYmFzZS5jbGVhcl9y YW5nZSgmZGV2X3ByaXYtPmdndHQuYmFzZSwKKwkJCQkgICAgICAgZGV2X3ByaXYtPmdndHQuYmFz ZS5zdGFydCwKKwkJCQkgICAgICAgZGV2X3ByaXYtPmdndHQuYmFzZS50b3RhbCwKIAkJCQkgICAg ICAgdHJ1ZSk7CiAKIAkvKiBDYWNoZSBmbHVzaCBvYmplY3RzIGJvdW5kIGludG8gR0dUVCBhbmQg cmViaW5kIHRoZW0uICovCi0Jdm0gPSAmZGV2X3ByaXYtPmd0dC5iYXNlOworCXZtID0gJmRldl9w cml2LT5nZ3R0LmJhc2U7CiAJbGlzdF9mb3JfZWFjaF9lbnRyeShvYmosICZkZXZfcHJpdi0+bW0u Ym91bmRfbGlzdCwgZ2xvYmFsX2xpc3QpIHsKIAkJZmx1c2ggPSBmYWxzZTsKIAkJbGlzdF9mb3Jf ZWFjaF9lbnRyeSh2bWEsICZvYmotPnZtYV9saXN0LCBvYmpfbGluaykgewpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9ndHQuaAppbmRleCBkYzIwOGMwLi4yOTA2YmIxIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9ndHQuaApAQCAtMzM5LDcgKzMzOSw3IEBAIHN0cnVjdCBpOTE1X2FkZHJlc3Nf c3BhY2UgewogICogYW5kIGNvcnJlY3QgKGluIGNhc2VzIGxpa2Ugc3dpenpsaW5nKS4gVGhhdCBy ZWdpb24gaXMgcmVmZXJyZWQgdG8gYXMgR01BRFIgaW4KICAqIHRoZSBzcGVjLgogICovCi1zdHJ1 Y3QgaTkxNV9ndHQgeworc3RydWN0IGk5MTVfZ2d0dCB7CiAJc3RydWN0IGk5MTVfYWRkcmVzc19z cGFjZSBiYXNlOwogCiAJc2l6ZV90IHN0b2xlbl9zaXplOwkJLyogVG90YWwgc2l6ZSBvZiBzdG9s ZW4gbWVtb3J5ICovCkBAIC0zNTcsMTAgKzM1Nyw5IEBAIHN0cnVjdCBpOTE1X2d0dCB7CiAKIAlp bnQgbXRycjsKIAotCS8qIGdsb2JhbCBndHQgb3BzICovCi0JaW50ICgqZ3R0X3Byb2JlKShzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCB1NjQgKmd0dF90b3RhbCwKLQkJCSAgc2l6ZV90ICpzdG9sZW4s IHBoeXNfYWRkcl90ICptYXBwYWJsZV9iYXNlLAotCQkJICB1NjQgKm1hcHBhYmxlX2VuZCk7CisJ aW50ICgqcHJvYmUpKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHU2NCAqZ3R0X3RvdGFsLAorCQkg ICAgIHNpemVfdCAqc3RvbGVuLCBwaHlzX2FkZHJfdCAqbWFwcGFibGVfYmFzZSwKKwkJICAgICB1 NjQgKm1hcHBhYmxlX2VuZCk7CiB9OwogCiBzdHJ1Y3QgaTkxNV9od19wcGd0dCB7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zdG9sZW4uYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jCmluZGV4IDJlNmU5ZmIuLmRlODkxYzkgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jCkBAIC03NCw3ICs3NCw3IEBAIGludCBp OTE1X2dlbV9zdG9sZW5faW5zZXJ0X25vZGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAogewogCXJldHVybiBpOTE1X2dlbV9zdG9sZW5faW5zZXJ0X25vZGVfaW5fcmFuZ2UoZGV2 X3ByaXYsIG5vZGUsIHNpemUsCiAJCQkJCWFsaWdubWVudCwgMCwKLQkJCQkJZGV2X3ByaXYtPmd0 dC5zdG9sZW5fdXNhYmxlX3NpemUpOworCQkJCQlkZXZfcHJpdi0+Z2d0dC5zdG9sZW5fdXNhYmxl X3NpemUpOwogfQogCiB2b2lkIGk5MTVfZ2VtX3N0b2xlbl9yZW1vdmVfbm9kZShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCkBAIC0xMzQsNyArMTM0LDcgQEAgc3RhdGljIHVuc2ln bmVkIGxvbmcgaTkxNV9zdG9sZW5fdG9fcGh5c2ljYWwoc3RydWN0IGRybV9kZXZpY2UgKmRldikK IAkJCQkJIEk4NVhfRFJCMywgJnRtcCk7CiAJCXRvbSA9IHRtcCAqIE1CKDMyKTsKIAotCQliYXNl ID0gdG9tIC0gdHNlZ19zaXplIC0gZGV2X3ByaXYtPmd0dC5zdG9sZW5fc2l6ZTsKKwkJYmFzZSA9 IHRvbSAtIHRzZWdfc2l6ZSAtIGRldl9wcml2LT5nZ3R0LnN0b2xlbl9zaXplOwogCX0gZWxzZSBp ZiAoSVNfODQ1RyhkZXYpKSB7CiAJCXUzMiB0c2VnX3NpemUgPSAwOwogCQl1MzIgdG9tOwpAQCAt MTU4LDcgKzE1OCw3IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIGk5MTVfc3RvbGVuX3RvX3BoeXNp Y2FsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCQkJCSBJODMwX0RSQjMsICZ0bXApOwogCQl0 b20gPSB0bXAgKiBNQigzMik7CiAKLQkJYmFzZSA9IHRvbSAtIHRzZWdfc2l6ZSAtIGRldl9wcml2 LT5ndHQuc3RvbGVuX3NpemU7CisJCWJhc2UgPSB0b20gLSB0c2VnX3NpemUgLSBkZXZfcHJpdi0+ Z2d0dC5zdG9sZW5fc2l6ZTsKIAl9IGVsc2UgaWYgKElTX0k4MzAoZGV2KSkgewogCQl1MzIgdHNl Z19zaXplID0gMDsKIAkJdTMyIHRvbTsKQEAgLTE3OCw3ICsxNzgsNyBAQCBzdGF0aWMgdW5zaWdu ZWQgbG9uZyBpOTE1X3N0b2xlbl90b19waHlzaWNhbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQog CQkJCQkgSTgzMF9EUkIzLCAmdG1wKTsKIAkJdG9tID0gdG1wICogTUIoMzIpOwogCi0JCWJhc2Ug PSB0b20gLSB0c2VnX3NpemUgLSBkZXZfcHJpdi0+Z3R0LnN0b2xlbl9zaXplOworCQliYXNlID0g dG9tIC0gdHNlZ19zaXplIC0gZGV2X3ByaXYtPmdndHQuc3RvbGVuX3NpemU7CiAJfQogCiAJaWYg KGJhc2UgPT0gMCkKQEAgLTE4OSw4ICsxODksOCBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBpOTE1 X3N0b2xlbl90b19waHlzaWNhbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQlzdHJ1Y3Qgewog CQkJdTMyIHN0YXJ0LCBlbmQ7CiAJCX0gc3RvbGVuWzJdID0gewotCQkJeyAuc3RhcnQgPSBiYXNl LCAuZW5kID0gYmFzZSArIGRldl9wcml2LT5ndHQuc3RvbGVuX3NpemUsIH0sCi0JCQl7IC5zdGFy dCA9IGJhc2UsIC5lbmQgPSBiYXNlICsgZGV2X3ByaXYtPmd0dC5zdG9sZW5fc2l6ZSwgfSwKKwkJ CXsgLnN0YXJ0ID0gYmFzZSwgLmVuZCA9IGJhc2UgKyBkZXZfcHJpdi0+Z2d0dC5zdG9sZW5fc2l6 ZSwgfSwKKwkJCXsgLnN0YXJ0ID0gYmFzZSwgLmVuZCA9IGJhc2UgKyBkZXZfcHJpdi0+Z2d0dC5z dG9sZW5fc2l6ZSwgfSwKIAkJfTsKIAkJdTY0IGd0dF9zdGFydCwgZ3R0X2VuZDsKIApAQCAtMjAw LDcgKzIwMCw3IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIGk5MTVfc3RvbGVuX3RvX3BoeXNpY2Fs KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCQkJKGd0dF9zdGFydCAmIFBHVEJMX0FERFJFU1Nf SElfTUFTSykgPDwgMjg7CiAJCWVsc2UKIAkJCWd0dF9zdGFydCAmPSBQR1RCTF9BRERSRVNTX0xP X01BU0s7Ci0JCWd0dF9lbmQgPSBndHRfc3RhcnQgKyBndHRfdG90YWxfZW50cmllcyhkZXZfcHJp di0+Z3R0KSAqIDQ7CisJCWd0dF9lbmQgPSBndHRfc3RhcnQgKyBndHRfdG90YWxfZW50cmllcyhk ZXZfcHJpdi0+Z2d0dCkgKiA0OwogCiAJCWlmIChndHRfc3RhcnQgPj0gc3RvbGVuWzBdLnN0YXJ0 ICYmIGd0dF9zdGFydCA8IHN0b2xlblswXS5lbmQpCiAJCQlzdG9sZW5bMF0uZW5kID0gZ3R0X3N0 YXJ0OwpAQCAtMjExLDEwICsyMTEsMTAgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgaTkxNV9zdG9s ZW5fdG9fcGh5c2ljYWwoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJaWYgKHN0b2xlblswXS5l bmQgLSBzdG9sZW5bMF0uc3RhcnQgPgogCQkgICAgc3RvbGVuWzFdLmVuZCAtIHN0b2xlblsxXS5z dGFydCkgewogCQkJYmFzZSA9IHN0b2xlblswXS5zdGFydDsKLQkJCWRldl9wcml2LT5ndHQuc3Rv bGVuX3NpemUgPSBzdG9sZW5bMF0uZW5kIC0gc3RvbGVuWzBdLnN0YXJ0OworCQkJZGV2X3ByaXYt PmdndHQuc3RvbGVuX3NpemUgPSBzdG9sZW5bMF0uZW5kIC0gc3RvbGVuWzBdLnN0YXJ0OwogCQl9 IGVsc2UgewogCQkJYmFzZSA9IHN0b2xlblsxXS5zdGFydDsKLQkJCWRldl9wcml2LT5ndHQuc3Rv bGVuX3NpemUgPSBzdG9sZW5bMV0uZW5kIC0gc3RvbGVuWzFdLnN0YXJ0OworCQkJZGV2X3ByaXYt PmdndHQuc3RvbGVuX3NpemUgPSBzdG9sZW5bMV0uZW5kIC0gc3RvbGVuWzFdLnN0YXJ0OwogCQl9 CiAKIAkJaWYgKHN0b2xlblswXS5zdGFydCAhPSBzdG9sZW5bMV0uc3RhcnQgfHwKQEAgLTIyMyw3 ICsyMjMsNyBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBpOTE1X3N0b2xlbl90b19waHlzaWNhbChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQkJCSAgICAgICh1bnNpZ25lZCBsb25nIGxvbmcpIGd0 dF9zdGFydCwKIAkJCQkgICAgICAodW5zaWduZWQgbG9uZyBsb25nKSBndHRfZW5kIC0gMSk7CiAJ CQlEUk1fREVCVUdfS01TKCJTdG9sZW4gbWVtb3J5IGFkanVzdGVkIHRvIDB4JXgtMHgleFxuIiwK LQkJCQkgICAgICBiYXNlLCBiYXNlICsgKHUzMikgZGV2X3ByaXYtPmd0dC5zdG9sZW5fc2l6ZSAt IDEpOworCQkJCSAgICAgIGJhc2UsIGJhc2UgKyAodTMyKSBkZXZfcHJpdi0+Z2d0dC5zdG9sZW5f c2l6ZSAtIDEpOwogCQl9CiAJfQogCkBAIC0yMzMsNyArMjMzLDcgQEAgc3RhdGljIHVuc2lnbmVk IGxvbmcgaTkxNV9zdG9sZW5fdG9fcGh5c2ljYWwoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkg KiBrZXJuZWwuIFNvIGlmIHRoZSByZWdpb24gaXMgYWxyZWFkeSBtYXJrZWQgYXMgYnVzeSwgc29t ZXRoaW5nCiAJICogaXMgc2VyaW91c2x5IHdyb25nLgogCSAqLwotCXIgPSBkZXZtX3JlcXVlc3Rf bWVtX3JlZ2lvbihkZXYtPmRldiwgYmFzZSwgZGV2X3ByaXYtPmd0dC5zdG9sZW5fc2l6ZSwKKwly ID0gZGV2bV9yZXF1ZXN0X21lbV9yZWdpb24oZGV2LT5kZXYsIGJhc2UsIGRldl9wcml2LT5nZ3R0 LnN0b2xlbl9zaXplLAogCQkJCSAgICAiR3JhcGhpY3MgU3RvbGVuIE1lbW9yeSIpOwogCWlmIChy ID09IE5VTEwpIHsKIAkJLyoKQEAgLTI0NSw3ICsyNDUsNyBAQCBzdGF0aWMgdW5zaWduZWQgbG9u ZyBpOTE1X3N0b2xlbl90b19waHlzaWNhbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQkgKiBy ZXNlcnZhdGlvbiBzdGFydGluZyBmcm9tIDEgaW5zdGVhZCBvZiAwLgogCQkgKi8KIAkJciA9IGRl dm1fcmVxdWVzdF9tZW1fcmVnaW9uKGRldi0+ZGV2LCBiYXNlICsgMSwKLQkJCQkJICAgIGRldl9w cml2LT5ndHQuc3RvbGVuX3NpemUgLSAxLAorCQkJCQkgICAgZGV2X3ByaXYtPmdndHQuc3RvbGVu X3NpemUgLSAxLAogCQkJCQkgICAgIkdyYXBoaWNzIFN0b2xlbiBNZW1vcnkiKTsKIAkJLyoKIAkJ ICogR0VOMyBmaXJtd2FyZSBsaWtlcyB0byBzbWFzaCBwY2kgYnJpZGdlcyBpbnRvIHRoZSBzdG9s ZW4KQEAgLTI1Myw3ICsyNTMsNyBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBpOTE1X3N0b2xlbl90 b19waHlzaWNhbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQkgKi8KIAkJaWYgKHIgPT0gTlVM TCAmJiAhSVNfR0VOMyhkZXYpKSB7CiAJCQlEUk1fRVJST1IoImNvbmZsaWN0IGRldGVjdGVkIHdp dGggc3RvbGVuIHJlZ2lvbjogWzB4JTA4eCAtIDB4JTA4eF1cbiIsCi0JCQkJICBiYXNlLCBiYXNl ICsgKHVpbnQzMl90KWRldl9wcml2LT5ndHQuc3RvbGVuX3NpemUpOworCQkJCSAgYmFzZSwgYmFz ZSArICh1aW50MzJfdClkZXZfcHJpdi0+Z2d0dC5zdG9sZW5fc2l6ZSk7CiAJCQliYXNlID0gMDsK IAkJfQogCX0KQEAgLTI3OCw3ICsyNzgsNyBAQCBzdGF0aWMgdm9pZCBnNHhfZ2V0X3N0b2xlbl9y ZXNlcnZlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJICAgICBDVEdf U1RPTEVOX1JFU0VSVkVEIDoKIAkJCQkgICAgIEVMS19TVE9MRU5fUkVTRVJWRUQpOwogCXVuc2ln bmVkIGxvbmcgc3RvbGVuX3RvcCA9IGRldl9wcml2LT5tbS5zdG9sZW5fYmFzZSArCi0JCWRldl9w cml2LT5ndHQuc3RvbGVuX3NpemU7CisJCWRldl9wcml2LT5nZ3R0LnN0b2xlbl9zaXplOwogCiAJ KmJhc2UgPSAocmVnX3ZhbCAmIEc0WF9TVE9MRU5fUkVTRVJWRURfQUREUjJfTUFTSykgPDwgMTY7 CiAKQEAgLTM3Miw3ICszNzIsNyBAQCBzdGF0aWMgdm9pZCBiZHdfZ2V0X3N0b2xlbl9yZXNlcnZl ZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJdWludDMyX3QgcmVnX3ZhbCA9 IEk5MTVfUkVBRChHRU42X1NUT0xFTl9SRVNFUlZFRCk7CiAJdW5zaWduZWQgbG9uZyBzdG9sZW5f dG9wOwogCi0Jc3RvbGVuX3RvcCA9IGRldl9wcml2LT5tbS5zdG9sZW5fYmFzZSArIGRldl9wcml2 LT5ndHQuc3RvbGVuX3NpemU7CisJc3RvbGVuX3RvcCA9IGRldl9wcml2LT5tbS5zdG9sZW5fYmFz ZSArIGRldl9wcml2LT5nZ3R0LnN0b2xlbl9zaXplOwogCiAJKmJhc2UgPSByZWdfdmFsICYgR0VO Nl9TVE9MRU5fUkVTRVJWRURfQUREUl9NQVNLOwogCkBAIC00MDEsMTQgKzQwMSwxNCBAQCBpbnQg aTkxNV9nZW1faW5pdF9zdG9sZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAl9CiAjZW5kaWYK IAotCWlmIChkZXZfcHJpdi0+Z3R0LnN0b2xlbl9zaXplID09IDApCisJaWYgKGRldl9wcml2LT5n Z3R0LnN0b2xlbl9zaXplID09IDApCiAJCXJldHVybiAwOwogCiAJZGV2X3ByaXYtPm1tLnN0b2xl bl9iYXNlID0gaTkxNV9zdG9sZW5fdG9fcGh5c2ljYWwoZGV2KTsKIAlpZiAoZGV2X3ByaXYtPm1t LnN0b2xlbl9iYXNlID09IDApCiAJCXJldHVybiAwOwogCi0Jc3RvbGVuX3RvcCA9IGRldl9wcml2 LT5tbS5zdG9sZW5fYmFzZSArIGRldl9wcml2LT5ndHQuc3RvbGVuX3NpemU7CisJc3RvbGVuX3Rv cCA9IGRldl9wcml2LT5tbS5zdG9sZW5fYmFzZSArIGRldl9wcml2LT5nZ3R0LnN0b2xlbl9zaXpl OwogCiAJc3dpdGNoIChJTlRFTF9JTkZPKGRldl9wcml2KS0+Z2VuKSB7CiAJY2FzZSAyOgpAQCAt NDU4LDE4ICs0NTgsMTggQEAgaW50IGk5MTVfZ2VtX2luaXRfc3RvbGVuKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCiAJCXJldHVybiAwOwogCX0KIAotCWRldl9wcml2LT5ndHQuc3RvbGVuX3Jlc2Vy dmVkX2Jhc2UgPSByZXNlcnZlZF9iYXNlOwotCWRldl9wcml2LT5ndHQuc3RvbGVuX3Jlc2VydmVk X3NpemUgPSByZXNlcnZlZF9zaXplOworCWRldl9wcml2LT5nZ3R0LnN0b2xlbl9yZXNlcnZlZF9i YXNlID0gcmVzZXJ2ZWRfYmFzZTsKKwlkZXZfcHJpdi0+Z2d0dC5zdG9sZW5fcmVzZXJ2ZWRfc2l6 ZSA9IHJlc2VydmVkX3NpemU7CiAKIAkvKiBJdCBpcyBwb3NzaWJsZSBmb3IgdGhlIHJlc2VydmVk IGFyZWEgdG8gZW5kIGJlZm9yZSB0aGUgZW5kIG9mIHN0b2xlbgogCSAqIG1lbW9yeSwgc28ganVz dCBjb25zaWRlciB0aGUgc3RhcnQuICovCiAJcmVzZXJ2ZWRfdG90YWwgPSBzdG9sZW5fdG9wIC0g cmVzZXJ2ZWRfYmFzZTsKIAogCURSTV9ERUJVR19LTVMoIk1lbW9yeSByZXNlcnZlZCBmb3IgZ3Jh cGhpY3MgZGV2aWNlOiAlenVLLCB1c2FibGU6ICVsdUtcbiIsCi0JCSAgICAgIGRldl9wcml2LT5n dHQuc3RvbGVuX3NpemUgPj4gMTAsCi0JCSAgICAgIChkZXZfcHJpdi0+Z3R0LnN0b2xlbl9zaXpl IC0gcmVzZXJ2ZWRfdG90YWwpID4+IDEwKTsKKwkJICAgICAgZGV2X3ByaXYtPmdndHQuc3RvbGVu X3NpemUgPj4gMTAsCisJCSAgICAgIChkZXZfcHJpdi0+Z2d0dC5zdG9sZW5fc2l6ZSAtIHJlc2Vy dmVkX3RvdGFsKSA+PiAxMCk7CiAKLQlkZXZfcHJpdi0+Z3R0LnN0b2xlbl91c2FibGVfc2l6ZSA9 IGRldl9wcml2LT5ndHQuc3RvbGVuX3NpemUgLQorCWRldl9wcml2LT5nZ3R0LnN0b2xlbl91c2Fi bGVfc2l6ZSA9IGRldl9wcml2LT5nZ3R0LnN0b2xlbl9zaXplIC0KIAkJCQkJICAgcmVzZXJ2ZWRf dG90YWw7CiAKIAkvKgpAQCAtNDgzLDcgKzQ4Myw3IEBAIGludCBpOTE1X2dlbV9pbml0X3N0b2xl bihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCSAqIGk5MTVfZ2VtX3N0b2xlbl9pbnNlcnRfbm9k ZV9pbl9yYW5nZSgpLiBXZSBtYXkgd2FudCB0byBmaXggdGhlIGZiY29uCiAJICogcHJvYmxlbSBs YXRlci4KIAkgKi8KLQlkcm1fbW1faW5pdCgmZGV2X3ByaXYtPm1tLnN0b2xlbiwgMCwgZGV2X3By aXYtPmd0dC5zdG9sZW5fdXNhYmxlX3NpemUpOworCWRybV9tbV9pbml0KCZkZXZfcHJpdi0+bW0u c3RvbGVuLCAwLCBkZXZfcHJpdi0+Z2d0dC5zdG9sZW5fdXNhYmxlX3NpemUpOwogCiAJcmV0dXJu IDA7CiB9CkBAIC00OTcsNyArNDk3LDcgQEAgaTkxNV9wYWdlc19jcmVhdGVfZm9yX3N0b2xlbihz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCXN0cnVjdCBzY2F0dGVybGlzdCAqc2c7CiAKIAlEUk1f REVCVUdfRFJJVkVSKCJvZmZzZXQ9MHgleCwgc2l6ZT0lZFxuIiwgb2Zmc2V0LCBzaXplKTsKLQlC VUdfT04ob2Zmc2V0ID4gZGV2X3ByaXYtPmd0dC5zdG9sZW5fc2l6ZSAtIHNpemUpOworCUJVR19P TihvZmZzZXQgPiBkZXZfcHJpdi0+Z2d0dC5zdG9sZW5fc2l6ZSAtIHNpemUpOwogCiAJLyogV2Ug aGlkZSB0aGF0IHdlIGhhdmUgbm8gc3RydWN0IHBhZ2UgYmFja2luZyBvdXIgc3RvbGVuIG9iamVj dAogCSAqIGJ5IHdyYXBwaW5nIHRoZSBjb250aWd1b3VzIHBoeXNpY2FsIGFsbG9jYXRpb24gd2l0 aCBhIGZha2UKQEAgLTYyOSw3ICs2MjksNyBAQCBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xl bl9mb3JfcHJlYWxsb2NhdGVkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJCSAgICAgICB1 MzIgc2l6ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRl dl9wcml2YXRlOwotCXN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKmdndHQgPSAmZGV2X3ByaXYt Pmd0dC5iYXNlOworCXN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKmdndHQgPSAmZGV2X3ByaXYt PmdndHQuYmFzZTsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwogCXN0cnVjdCBk cm1fbW1fbm9kZSAqc3RvbGVuOwogCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ3B1X2Vycm9yLmMKaW5kZXggMzQzOTdhNi4uZGI4NjAwYSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCkBAIC02NTMsNyArNjUzLDcgQEAgaTkxNV9lcnJvcl9v YmplY3RfY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJdm1hID0g aTkxNV9nZW1fb2JqX3RvX2dndHQoc3JjKTsKIAl1c2VfZ2d0dCA9IChzcmMtPmNhY2hlX2xldmVs ID09IEk5MTVfQ0FDSEVfTk9ORSAmJgogCQkgICB2bWEgJiYgKHZtYS0+Ym91bmQgJiBHTE9CQUxf QklORCkgJiYKLQkJICAgcmVsb2Nfb2Zmc2V0ICsgbnVtX3BhZ2VzICogUEFHRV9TSVpFIDw9IGRl dl9wcml2LT5ndHQubWFwcGFibGVfZW5kKTsKKwkJICAgcmVsb2Nfb2Zmc2V0ICsgbnVtX3BhZ2Vz ICogUEFHRV9TSVpFIDw9IGRldl9wcml2LT5nZ3R0Lm1hcHBhYmxlX2VuZCk7CiAKIAkvKiBDYW5u b3QgYWNjZXNzIHN0b2xlbiBhZGRyZXNzIGRpcmVjdGx5LCB0cnkgdG8gdXNlIHRoZSBhcGVydHVy ZSAqLwogCWlmIChzcmMtPnN0b2xlbikgewpAQCAtNjYzLDcgKzY2Myw3IEBAIGk5MTVfZXJyb3Jf b2JqZWN0X2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQlnb3Rv IHVud2luZDsKIAogCQlyZWxvY19vZmZzZXQgPSBpOTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQoc3Jj KTsKLQkJaWYgKHJlbG9jX29mZnNldCArIG51bV9wYWdlcyAqIFBBR0VfU0laRSA+IGRldl9wcml2 LT5ndHQubWFwcGFibGVfZW5kKQorCQlpZiAocmVsb2Nfb2Zmc2V0ICsgbnVtX3BhZ2VzICogUEFH RV9TSVpFID4gZGV2X3ByaXYtPmdndHQubWFwcGFibGVfZW5kKQogCQkJZ290byB1bndpbmQ7CiAJ fQogCkBAIC02ODksNyArNjg5LDcgQEAgaTkxNV9lcnJvcl9vYmplY3RfY3JlYXRlKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCSAqIGNhcHR1cmVzIHdoYXQgdGhlIEdQVSBy ZWFkLgogCQkJICovCiAKLQkJCXMgPSBpb19tYXBwaW5nX21hcF9hdG9taWNfd2MoZGV2X3ByaXYt Pmd0dC5tYXBwYWJsZSwKKwkJCXMgPSBpb19tYXBwaW5nX21hcF9hdG9taWNfd2MoZGV2X3ByaXYt PmdndHQubWFwcGFibGUsCiAJCQkJCQkgICAgIHJlbG9jX29mZnNldCk7CiAJCQltZW1jcHlfZnJv bWlvKGQsIHMsIFBBR0VfU0laRSk7CiAJCQlpb19tYXBwaW5nX3VubWFwX2F0b21pYyhzKTsKQEAg LTcyMiw3ICs3MjIsNyBAQCB1bndpbmQ6CiAJcmV0dXJuIE5VTEw7CiB9CiAjZGVmaW5lIGk5MTVf ZXJyb3JfZ2d0dF9vYmplY3RfY3JlYXRlKGRldl9wcml2LCBzcmMpIFwKLQlpOTE1X2Vycm9yX29i amVjdF9jcmVhdGUoKGRldl9wcml2KSwgKHNyYyksICYoZGV2X3ByaXYpLT5ndHQuYmFzZSkKKwlp OTE1X2Vycm9yX29iamVjdF9jcmVhdGUoKGRldl9wcml2KSwgKHNyYyksICYoZGV2X3ByaXYpLT5n Z3R0LmJhc2UpCiAKIHN0YXRpYyB2b2lkIGNhcHR1cmVfYm8oc3RydWN0IGRybV9pOTE1X2Vycm9y X2J1ZmZlciAqZXJyLAogCQkgICAgICAgc3RydWN0IGk5MTVfdm1hICp2bWEpCkBAIC0xMDM4LDcg KzEwMzgsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X2dlbV9yZWNvcmRfcmluZ3Moc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKIAogCQkJdm0gPSByZXF1ZXN0LT5jdHggJiYgcmVxdWVzdC0+Y3R4LT5wcGd0 dCA/CiAJCQkJJnJlcXVlc3QtPmN0eC0+cHBndHQtPmJhc2UgOgotCQkJCSZkZXZfcHJpdi0+Z3R0 LmJhc2U7CisJCQkJJmRldl9wcml2LT5nZ3R0LmJhc2U7CiAKIAkJCS8qIFdlIG5lZWQgdG8gY29w eSB0aGVzZSB0byBhbiBhbm9ueW1vdXMgYnVmZmVyCiAJCQkgKiBhcyB0aGUgc2ltcGxlc3QgbWV0 aG9kIHRvIGF2b2lkIGJlaW5nIG92ZXJ3cml0dGVuCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3ZncHUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdmdwdS5jCmlu ZGV4IGRlYTc0MjkuLjI4OTFiY2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfdmdwdS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdmdwdS5jCkBAIC0xODEs NyArMTgxLDcgQEAgc3RhdGljIGludCB2Z3RfYmFsbG9vbl9zcGFjZShzdHJ1Y3QgZHJtX21tICpt bSwKIGludCBpbnRlbF92Z3RfYmFsbG9vbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewogCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKLQlzdHJ1Y3Qg aTkxNV9hZGRyZXNzX3NwYWNlICpnZ3R0X3ZtID0gJmRldl9wcml2LT5ndHQuYmFzZTsKKwlzdHJ1 Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICpnZ3R0X3ZtID0gJmRldl9wcml2LT5nZ3R0LmJhc2U7CiAJ dW5zaWduZWQgbG9uZyBnZ3R0X3ZtX2VuZCA9IGdndHRfdm0tPnN0YXJ0ICsgZ2d0dF92bS0+dG90 YWw7CiAKIAl1bnNpZ25lZCBsb25nIG1hcHBhYmxlX2Jhc2UsIG1hcHBhYmxlX3NpemUsIG1hcHBh YmxlX2VuZDsKQEAgLTIwMywxOCArMjAzLDE4IEBAIGludCBpbnRlbF92Z3RfYmFsbG9vbihzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KQogCQkgdW5tYXBwYWJsZV9iYXNlLCB1bm1hcHBhYmxlX3NpemUg LyAxMDI0KTsKIAogCWlmIChtYXBwYWJsZV9iYXNlIDwgZ2d0dF92bS0+c3RhcnQgfHwKLQkgICAg bWFwcGFibGVfZW5kID4gZGV2X3ByaXYtPmd0dC5tYXBwYWJsZV9lbmQgfHwKLQkgICAgdW5tYXBw YWJsZV9iYXNlIDwgZGV2X3ByaXYtPmd0dC5tYXBwYWJsZV9lbmQgfHwKKwkgICAgbWFwcGFibGVf ZW5kID4gZGV2X3ByaXYtPmdndHQubWFwcGFibGVfZW5kIHx8CisJICAgIHVubWFwcGFibGVfYmFz ZSA8IGRldl9wcml2LT5nZ3R0Lm1hcHBhYmxlX2VuZCB8fAogCSAgICB1bm1hcHBhYmxlX2VuZCA+ IGdndHRfdm1fZW5kKSB7CiAJCURSTV9FUlJPUigiSW52YWxpZCBiYWxsb29uaW5nIGNvbmZpZ3Vy YXRpb24hXG4iKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCiAJLyogVW5tYXBwYWJsZSBncmFw aGljIG1lbW9yeSBiYWxsb29uaW5nICovCi0JaWYgKHVubWFwcGFibGVfYmFzZSA+IGRldl9wcml2 LT5ndHQubWFwcGFibGVfZW5kKSB7CisJaWYgKHVubWFwcGFibGVfYmFzZSA+IGRldl9wcml2LT5n Z3R0Lm1hcHBhYmxlX2VuZCkgewogCQlyZXQgPSB2Z3RfYmFsbG9vbl9zcGFjZSgmZ2d0dF92bS0+ bW0sCiAJCQkJCSZibF9pbmZvLnNwYWNlWzJdLAotCQkJCQlkZXZfcHJpdi0+Z3R0Lm1hcHBhYmxl X2VuZCwKKwkJCQkJZGV2X3ByaXYtPmdndHQubWFwcGFibGVfZW5kLAogCQkJCQl1bm1hcHBhYmxl X2Jhc2UpOwogCiAJCWlmIChyZXQpCkBAIC0yNDQsMTEgKzI0NCwxMSBAQCBpbnQgaW50ZWxfdmd0 X2JhbGxvb24oc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJCWdvdG8gZXJyOwogCX0KIAotCWlm IChtYXBwYWJsZV9lbmQgPCBkZXZfcHJpdi0+Z3R0Lm1hcHBhYmxlX2VuZCkgeworCWlmIChtYXBw YWJsZV9lbmQgPCBkZXZfcHJpdi0+Z2d0dC5tYXBwYWJsZV9lbmQpIHsKIAkJcmV0ID0gdmd0X2Jh bGxvb25fc3BhY2UoJmdndHRfdm0tPm1tLAogCQkJCQkmYmxfaW5mby5zcGFjZVsxXSwKIAkJCQkJ bWFwcGFibGVfZW5kLAotCQkJCQlkZXZfcHJpdi0+Z3R0Lm1hcHBhYmxlX2VuZCk7CisJCQkJCWRl dl9wcml2LT5nZ3R0Lm1hcHBhYmxlX2VuZCk7CiAKIAkJaWYgKHJldCkKIAkJCWdvdG8gZXJyOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCmluZGV4IGFiMWVjOGQuLjc0YjAxNjUgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTI1MDMsNyArMjUwMyw3IEBAIGlu dGVsX2FsbG9jX2luaXRpYWxfcGxhbmVfb2JqKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCS8q IElmIHRoZSBGQiBpcyB0b28gYmlnLCBqdXN0IGRvbid0IHVzZSBpdCBzaW5jZSBmYmRldiBpcyBu b3QgdmVyeQogCSAqIGltcG9ydGFudCBhbmQgd2Ugc2hvdWxkIHByb2JhYmx5IHVzZSB0aGF0IHNw YWNlIHdpdGggRkJDIG9yIG90aGVyCiAJICogZmVhdHVyZXMuICovCi0JaWYgKHNpemVfYWxpZ25l ZCAqIDIgPiBkZXZfcHJpdi0+Z3R0LnN0b2xlbl91c2FibGVfc2l6ZSkKKwlpZiAoc2l6ZV9hbGln bmVkICogMiA+IGRldl9wcml2LT5nZ3R0LnN0b2xlbl91c2FibGVfc2l6ZSkKIAkJcmV0dXJuIGZh bHNlOwogCiAJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwpAQCAtMTUzMzksNyArMTUz MzksNyBAQCB2b2lkIGludGVsX21vZGVzZXRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQog CQlkZXYtPm1vZGVfY29uZmlnLmN1cnNvcl9oZWlnaHQgPSBNQVhfQ1VSU09SX0hFSUdIVDsKIAl9 CiAKLQlkZXYtPm1vZGVfY29uZmlnLmZiX2Jhc2UgPSBkZXZfcHJpdi0+Z3R0Lm1hcHBhYmxlX2Jh c2U7CisJZGV2LT5tb2RlX2NvbmZpZy5mYl9iYXNlID0gZGV2X3ByaXYtPmdndHQubWFwcGFibGVf YmFzZTsKIAogCURSTV9ERUJVR19LTVMoIiVkIGRpc3BsYXkgcGlwZSVzIGF2YWlsYWJsZS5cbiIs CiAJCSAgICAgIElOVEVMX0lORk8oZGV2KS0+bnVtX3BpcGVzLApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9m YmMuYwppbmRleCAwZjA0OTJmLi4yZTU3MWY1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9mYmMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYwpA QCAtNTE2LDkgKzUxNiw5IEBAIHN0YXRpYyBpbnQgZmluZF9jb21wcmVzc2lvbl90aHJlc2hvbGQo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCSAqIHVuZGVycnVucywgZXZlbiBp ZiB0aGF0IHJhbmdlIGlzIG5vdCByZXNlcnZlZCBieSB0aGUgQklPUy4gKi8KIAlpZiAoSVNfQlJP QURXRUxMKGRldl9wcml2KSB8fAogCSAgICBJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19LQUJZ TEFLRShkZXZfcHJpdikpCi0JCWVuZCA9IGRldl9wcml2LT5ndHQuc3RvbGVuX3NpemUgLSA4ICog MTAyNCAqIDEwMjQ7CisJCWVuZCA9IGRldl9wcml2LT5nZ3R0LnN0b2xlbl9zaXplIC0gOCAqIDEw MjQgKiAxMDI0OwogCWVsc2UKLQkJZW5kID0gZGV2X3ByaXYtPmd0dC5zdG9sZW5fdXNhYmxlX3Np emU7CisJCWVuZCA9IGRldl9wcml2LT5nZ3R0LnN0b2xlbl91c2FibGVfc2l6ZTsKIAogCS8qIEhB Q0s6IFRoaXMgY29kZSBkZXBlbmRzIG9uIHdoYXQgd2Ugd2lsbCBkbyBpbiAqX2VuYWJsZV9mYmMu IElmIHRoYXQKIAkgKiBjb2RlIGNoYW5nZXMsIHRoaXMgY29kZSBuZWVkcyB0byBjaGFuZ2UgYXMg d2VsbC4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiZGV2LmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmRldi5jCmluZGV4IGFlOWNmNmYuLmVhNDE4OGEg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiZGV2LmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJkZXYuYwpAQCAtMTQ2LDcgKzE0Niw3IEBAIHN0YXRp YyBpbnQgaW50ZWxmYl9hbGxvYyhzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyLAogCS8qIElm IHRoZSBGQiBpcyB0b28gYmlnLCBqdXN0IGRvbid0IHVzZSBpdCBzaW5jZSBmYmRldiBpcyBub3Qg dmVyeQogCSAqIGltcG9ydGFudCBhbmQgd2Ugc2hvdWxkIHByb2JhYmx5IHVzZSB0aGF0IHNwYWNl IHdpdGggRkJDIG9yIG90aGVyCiAJICogZmVhdHVyZXMuICovCi0JaWYgKHNpemUgKiAyIDwgZGV2 X3ByaXYtPmd0dC5zdG9sZW5fdXNhYmxlX3NpemUpCisJaWYgKHNpemUgKiAyIDwgZGV2X3ByaXYt PmdndHQuc3RvbGVuX3VzYWJsZV9zaXplKQogCQlvYmogPSBpOTE1X2dlbV9vYmplY3RfY3JlYXRl X3N0b2xlbihkZXYsIHNpemUpOwogCWlmIChvYmogPT0gTlVMTCkKIAkJb2JqID0gaTkxNV9nZW1f YWxsb2Nfb2JqZWN0KGRldiwgc2l6ZSk7CkBAIC0yNDQsMTMgKzI0NCwxMyBAQCBzdGF0aWMgaW50 IGludGVsZmJfY3JlYXRlKHN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIsCiAKIAkvKiBzZXR1 cCBhcGVydHVyZSBiYXNlL3NpemUgZm9yIHZlc2FmYiB0YWtlb3ZlciAqLwogCWluZm8tPmFwZXJ0 dXJlcy0+cmFuZ2VzWzBdLmJhc2UgPSBkZXYtPm1vZGVfY29uZmlnLmZiX2Jhc2U7Ci0JaW5mby0+ YXBlcnR1cmVzLT5yYW5nZXNbMF0uc2l6ZSA9IGRldl9wcml2LT5ndHQubWFwcGFibGVfZW5kOwor CWluZm8tPmFwZXJ0dXJlcy0+cmFuZ2VzWzBdLnNpemUgPSBkZXZfcHJpdi0+Z2d0dC5tYXBwYWJs ZV9lbmQ7CiAKIAlpbmZvLT5maXguc21lbV9zdGFydCA9IGRldi0+bW9kZV9jb25maWcuZmJfYmFz ZSArIGk5MTVfZ2VtX29ial9nZ3R0X29mZnNldChvYmopOwogCWluZm8tPmZpeC5zbWVtX2xlbiA9 IHNpemU7CiAKIAlpbmZvLT5zY3JlZW5fYmFzZSA9Ci0JCWlvcmVtYXBfd2MoZGV2X3ByaXYtPmd0 dC5tYXBwYWJsZV9iYXNlICsgaTkxNV9nZW1fb2JqX2dndHRfb2Zmc2V0KG9iaiksCisJCWlvcmVt YXBfd2MoZGV2X3ByaXYtPmdndHQubWFwcGFibGVfYmFzZSArIGk5MTVfZ2VtX29ial9nZ3R0X29m ZnNldChvYmopLAogCQkJICAgc2l6ZSk7CiAJaWYgKCFpbmZvLT5zY3JlZW5fYmFzZSkgewogCQlE Uk1fRVJST1IoIkZhaWxlZCB0byByZW1hcCBmcmFtZWJ1ZmZlciBpbnRvIHZpcnR1YWwgbWVtb3J5 XG4iKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX292ZXJsYXkuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX292ZXJsYXkuYwppbmRleCAxM2UyMmY1Li5lMWFj YjQxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9vdmVybGF5LmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3ZlcmxheS5jCkBAIC0xOTYsNyArMTk2LDcg QEAgaW50ZWxfb3ZlcmxheV9tYXBfcmVncyhzdHJ1Y3QgaW50ZWxfb3ZlcmxheSAqb3ZlcmxheSkK IAlpZiAoT1ZFUkxBWV9ORUVEU19QSFlTSUNBTChvdmVybGF5LT5kZXYpKQogCQlyZWdzID0gKHN0 cnVjdCBvdmVybGF5X3JlZ2lzdGVycyBfX2lvbWVtICopb3ZlcmxheS0+cmVnX2JvLT5waHlzX2hh bmRsZS0+dmFkZHI7CiAJZWxzZQotCQlyZWdzID0gaW9fbWFwcGluZ19tYXBfd2MoZGV2X3ByaXYt Pmd0dC5tYXBwYWJsZSwKKwkJcmVncyA9IGlvX21hcHBpbmdfbWFwX3djKGRldl9wcml2LT5nZ3R0 Lm1hcHBhYmxlLAogCQkJCQkgaTkxNV9nZW1fb2JqX2dndHRfb2Zmc2V0KG92ZXJsYXktPnJlZ19i bykpOwogCiAJcmV0dXJuIHJlZ3M7CkBAIC0xNDkwLDcgKzE0OTAsNyBAQCBpbnRlbF9vdmVybGF5 X21hcF9yZWdzX2F0b21pYyhzdHJ1Y3QgaW50ZWxfb3ZlcmxheSAqb3ZlcmxheSkKIAkJcmVncyA9 IChzdHJ1Y3Qgb3ZlcmxheV9yZWdpc3RlcnMgX19pb21lbSAqKQogCQkJb3ZlcmxheS0+cmVnX2Jv LT5waHlzX2hhbmRsZS0+dmFkZHI7CiAJZWxzZQotCQlyZWdzID0gaW9fbWFwcGluZ19tYXBfYXRv bWljX3djKGRldl9wcml2LT5ndHQubWFwcGFibGUsCisJCXJlZ3MgPSBpb19tYXBwaW5nX21hcF9h dG9taWNfd2MoZGV2X3ByaXYtPmdndHQubWFwcGFibGUsCiAJCQkJCQlpOTE1X2dlbV9vYmpfZ2d0 dF9vZmZzZXQob3ZlcmxheS0+cmVnX2JvKSk7CiAKIAlyZXR1cm4gcmVnczsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9wbS5jCmluZGV4IGE1MzlmYmMuLjUyMWNmNDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0u YwpAQCAtNDY0NCw5ICs0NjQ0LDkgQEAgc3RhdGljIGJvb2wgYnh0X2NoZWNrX2Jpb3NfcmM2X3Nl dHVwKGNvbnN0IHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJICogZm9yIHRoaXMgY2hlY2suCiAJ ICovCiAJcmM2X2N0eF9iYXNlID0gSTkxNV9SRUFEKFJDNl9DVFhfQkFTRSkgJiBSQzZfQ1RYX0JB U0VfTUFTSzsKLQlpZiAoISgocmM2X2N0eF9iYXNlID49IGRldl9wcml2LT5ndHQuc3RvbGVuX3Jl c2VydmVkX2Jhc2UpICYmCi0JICAgICAgKHJjNl9jdHhfYmFzZSArIFBBR0VfU0laRSA8PSBkZXZf cHJpdi0+Z3R0LnN0b2xlbl9yZXNlcnZlZF9iYXNlICsKLQkJCQkJZGV2X3ByaXYtPmd0dC5zdG9s ZW5fcmVzZXJ2ZWRfc2l6ZSkpKSB7CisJaWYgKCEoKHJjNl9jdHhfYmFzZSA+PSBkZXZfcHJpdi0+ Z2d0dC5zdG9sZW5fcmVzZXJ2ZWRfYmFzZSkgJiYKKwkgICAgICAocmM2X2N0eF9iYXNlICsgUEFH RV9TSVpFIDw9IGRldl9wcml2LT5nZ3R0LnN0b2xlbl9yZXNlcnZlZF9iYXNlICsKKwkJCQkJZGV2 X3ByaXYtPmdndHQuc3RvbGVuX3Jlc2VydmVkX3NpemUpKSkgewogCQlEUk1fREVCVUdfS01TKCJS QzYgQmFzZSBhZGRyZXNzIG5vdCBhcyBleHBlY3RlZC5cbiIpOwogCQllbmFibGVfcmM2ID0gZmFs c2U7CiAJfQpAQCAtNTI5MSw3ICs1MjkxLDcgQEAgc3RhdGljIHZvaWQgY2hlcnJ5dmlld19zZXR1 cF9wY3R4KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAl1bnNpZ25lZCBsb25nIHBjdHhfcGFk ZHIsIHBhZGRyOwotCXN0cnVjdCBpOTE1X2d0dCAqZ3R0ID0gJmRldl9wcml2LT5ndHQ7CisJc3Ry dWN0IGk5MTVfZ2d0dCAqZ2d0dCA9ICZkZXZfcHJpdi0+Z2d0dDsKIAl1MzIgcGNicjsKIAlpbnQg cGN0eF9zaXplID0gMzIqMTAyNDsKIApAQCAtNTI5OSw3ICs1Mjk5LDcgQEAgc3RhdGljIHZvaWQg Y2hlcnJ5dmlld19zZXR1cF9wY3R4KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJaWYgKChwY2Jy ID4+IFZMVl9QQ0JSX0FERFJfU0hJRlQpID09IDApIHsKIAkJRFJNX0RFQlVHX0RSSVZFUigiQklP UyBkaWRuJ3Qgc2V0IHVwIFBDQlIsIGZpeGluZyB1cFxuIik7CiAJCXBhZGRyID0gKGRldl9wcml2 LT5tbS5zdG9sZW5fYmFzZSArCi0JCQkgKGd0dC0+c3RvbGVuX3NpemUgLSBwY3R4X3NpemUpKTsK KwkJCSAoZ2d0dC0+c3RvbGVuX3NpemUgLSBwY3R4X3NpemUpKTsKIAogCQlwY3R4X3BhZGRyID0g KHBhZGRyICYgKH40MDk1KSk7CiAJCUk5MTVfV1JJVEUoVkxWX1BDQlIsIHBjdHhfcGFkZHIpOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCmluZGV4IDAxNWRjN2QuLjMxZDdi NjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKQEAgLTIxMzQsNyAr MjEzNCw3IEBAIGludCBpbnRlbF9waW5fYW5kX21hcF9yaW5nYnVmZmVyX29iaihzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAogCQkvKiBBY2Nlc3MgdGhyb3VnaCB0aGUgR1RUIHJlcXVpcmVzIHRoZSBk ZXZpY2UgdG8gYmUgYXdha2UuICovCiAJCWFzc2VydF9ycG1fd2FrZWxvY2tfaGVsZChkZXZfcHJp dik7CiAKLQkJcmluZ2J1Zi0+dmlydHVhbF9zdGFydCA9IGlvcmVtYXBfd2MoZGV2X3ByaXYtPmd0 dC5tYXBwYWJsZV9iYXNlICsKKwkJcmluZ2J1Zi0+dmlydHVhbF9zdGFydCA9IGlvcmVtYXBfd2Mo ZGV2X3ByaXYtPmdndHQubWFwcGFibGVfYmFzZSArCiAJCQkJCQkgICAgaTkxNV9nZW1fb2JqX2dn dHRfb2Zmc2V0KG9iaiksIHJpbmdidWYtPnNpemUpOwogCQlpZiAocmluZ2J1Zi0+dmlydHVhbF9z dGFydCA9PSBOVUxMKSB7CiAJCQlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihvYmopOwotLSAK Mi41LjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklu dGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=