From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joonas Lahtinen Subject: [PATCH v2 2/4] drm/i915: Rename dev_priv->gtt to dev_priv->ggtt Date: Fri, 18 Mar 2016 10:42:57 +0200 Message-ID: <1458290579-27783-2-git-send-email-joonas.lahtinen@linux.intel.com> References: <1458290579-27783-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 mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 1FDD26EB7B for ; Fri, 18 Mar 2016 08:42:45 +0000 (UTC) In-Reply-To: <1458290579-27783-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 Cc: mika.kuoppala@freedesktop.org List-Id: intel-gfx@lists.freedesktop.org UmVmZXIgdG8gR2xvYmFsIEdUVCBjb25zaXN0ZW50bHkgYXMgR0dUVCwgdGh1cyByZW5hbWUgZGV2 X3ByaXYtPmd0dAp0byBkZXZfcHJpdi0+Z2d0dCBhbmQgc3RydWN0IGk5MTVfZ3R0IHRvIHN0cnVj dCBpOTE1X2dndHQuCgpGaXggYSBjb3VwbGUgb2Ygd2hpdGVzcGFjZSBwcm9ibGVtcyB3aGlsZSBh dCBpdC4KCnYyOgotIEZpeCBhIHR5cG8gaW4gY29tbWl0IG1lc3NhZ2UuCgpSZXZpZXdlZC1ieTog Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+ClNpZ25lZC1vZmYtYnk6IEpv b25hcyBMYWh0aW5lbiA8am9vbmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAgICAgICAgfCAgIDggKy0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZG1hLmMgICAgICAgICAgICB8ICAxOCArKy0tCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgICAgfCAgIDQgKy0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICAgICB8ICAxNiArKy0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9jb250ZXh0LmMgICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyB8ICAgNiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fZ3R0LmMgICAgICAgIHwgMTQ3ICsrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaCAgICAgICAgfCAgIDkgKy0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jICAgICB8ICA1MCArKysrKy0tLS0tCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jICAgICAgfCAgMTAgKy0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfdmdwdS5jICAgICAgICAgICB8ICAxNCArLS0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyAgICAgICB8ICAgNCArLQogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZmJjLmMgICAgICAgICAgIHwgICA0ICstCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9mYmRldi5jICAgICAgICAgfCAgIDYgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX292ZXJsYXkuYyAgICAgICB8ICAgNCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcG0uYyAgICAgICAgICAgIHwgIDEwICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9y aW5nYnVmZmVyLmMgICAgfCAgIDIgKy0KIDE3IGZpbGVzIGNoYW5nZWQsIDE1NiBpbnNlcnRpb25z KCspLCAxNTggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwppbmRl eCBjY2RjYTJjLi5lMGJhM2UzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2RlYnVnZnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwpAQCAt MjAzLDcgKzIwMyw3IEBAIHN0YXRpYyBpbnQgaTkxNV9nZW1fb2JqZWN0X2xpc3RfaW5mbyhzdHJ1 Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCiAJc3RydWN0IGxpc3RfaGVhZCAqaGVhZDsKIAlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gbm9kZS0+bWlub3ItPmRldjsKIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBpOTE1X2Fk ZHJlc3Nfc3BhY2UgKnZtID0gJmRldl9wcml2LT5ndHQuYmFzZTsKKwlzdHJ1Y3QgaTkxNV9hZGRy ZXNzX3NwYWNlICp2bSA9ICZkZXZfcHJpdi0+Z2d0dC5iYXNlOwogCXN0cnVjdCBpOTE1X3ZtYSAq dm1hOwogCXU2NCB0b3RhbF9vYmpfc2l6ZSwgdG90YWxfZ3R0X3NpemU7CiAJaW50IGNvdW50LCBy ZXQ7CkBAIC00MzMsNyArNDMzLDcgQEAgc3RhdGljIGludCBpOTE1X2dlbV9vYmplY3RfaW5mbyhz dHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQqIGRhdGEpCiAJdTMyIGNvdW50LCBtYXBwYWJsZV9jb3Vu dCwgcHVyZ2VhYmxlX2NvdW50OwogCXU2NCBzaXplLCBtYXBwYWJsZV9zaXplLCBwdXJnZWFibGVf c2l6ZTsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwotCXN0cnVjdCBpOTE1X2Fk ZHJlc3Nfc3BhY2UgKnZtID0gJmRldl9wcml2LT5ndHQuYmFzZTsKKwlzdHJ1Y3QgaTkxNV9hZGRy ZXNzX3NwYWNlICp2bSA9ICZkZXZfcHJpdi0+Z2d0dC5iYXNlOwogCXN0cnVjdCBkcm1fZmlsZSAq ZmlsZTsKIAlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKIAlpbnQgcmV0OwpAQCAtNDkyLDggKzQ5Miw4 IEBAIHN0YXRpYyBpbnQgaTkxNV9nZW1fb2JqZWN0X2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2 b2lkKiBkYXRhKQogCQkgICBjb3VudCwgc2l6ZSk7CiAKIAlzZXFfcHJpbnRmKG0sICIlbGx1IFsl bGx1XSBndHQgdG90YWxcbiIsCi0JCSAgIGRldl9wcml2LT5ndHQuYmFzZS50b3RhbCwKLQkJICAg KHU2NClkZXZfcHJpdi0+Z3R0Lm1hcHBhYmxlX2VuZCAtIGRldl9wcml2LT5ndHQuYmFzZS5zdGFy dCk7CisJCSAgIGRldl9wcml2LT5nZ3R0LmJhc2UudG90YWwsCisJCSAgICh1NjQpZGV2X3ByaXYt PmdndHQubWFwcGFibGVfZW5kIC0gZGV2X3ByaXYtPmdndHQuYmFzZS5zdGFydCk7CiAKIAlzZXFf cHV0YyhtLCAnXG4nKTsKIAlwcmludF9iYXRjaF9wb29sX3N0YXRzKG0sIGRldl9wcml2KTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1hLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2RtYS5jCmluZGV4IDY4NTkyYjAuLjM1NjUxNjMgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1hLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kbWEuYwpAQCAtNDkxLDggKzQ5MSw4IEBAIHN0YXRpYyBpbnQgaTkxNV9raWNrX291dF9m aXJtd2FyZV9mYihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJaWYgKCFhcCkK IAkJcmV0dXJuIC1FTk9NRU07CiAKLQlhcC0+cmFuZ2VzWzBdLmJhc2UgPSBkZXZfcHJpdi0+Z3R0 Lm1hcHBhYmxlX2Jhc2U7Ci0JYXAtPnJhbmdlc1swXS5zaXplID0gZGV2X3ByaXYtPmd0dC5tYXBw YWJsZV9lbmQ7CisJYXAtPnJhbmdlc1swXS5iYXNlID0gZGV2X3ByaXYtPmdndHQubWFwcGFibGVf YmFzZTsKKwlhcC0+cmFuZ2VzWzBdLnNpemUgPSBkZXZfcHJpdi0+Z2d0dC5tYXBwYWJsZV9lbmQ7 CiAKIAlwcmltYXJ5ID0KIAkJcGRldi0+cmVzb3VyY2VbUENJX1JPTV9SRVNPVVJDRV0uZmxhZ3Mg JiBJT1JFU09VUkNFX1JPTV9TSEFET1c7CkBAIC0xMTcyLDE3ICsxMTcyLDE3IEBAIHN0YXRpYyBp bnQgaTkxNV9kcml2ZXJfaW5pdF9odyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp CiAJaWYgKElTX0JST0FEV0FURVIoZGV2KSB8fCBJU19DUkVTVExJTkUoZGV2KSkKIAkJZG1hX3Nl dF9jb2hlcmVudF9tYXNrKCZkZXYtPnBkZXYtPmRldiwgRE1BX0JJVF9NQVNLKDMyKSk7CiAKLQlh cGVydHVyZV9zaXplID0gZGV2X3ByaXYtPmd0dC5tYXBwYWJsZV9lbmQ7CisJYXBlcnR1cmVfc2l6 ZSA9IGRldl9wcml2LT5nZ3R0Lm1hcHBhYmxlX2VuZDsKIAotCWRldl9wcml2LT5ndHQubWFwcGFi bGUgPQotCQlpb19tYXBwaW5nX2NyZWF0ZV93YyhkZXZfcHJpdi0+Z3R0Lm1hcHBhYmxlX2Jhc2Us CisJZGV2X3ByaXYtPmdndHQubWFwcGFibGUgPQorCQlpb19tYXBwaW5nX2NyZWF0ZV93YyhkZXZf cHJpdi0+Z2d0dC5tYXBwYWJsZV9iYXNlLAogCQkJCSAgICAgYXBlcnR1cmVfc2l6ZSk7Ci0JaWYg KGRldl9wcml2LT5ndHQubWFwcGFibGUgPT0gTlVMTCkgeworCWlmIChkZXZfcHJpdi0+Z2d0dC5t YXBwYWJsZSA9PSBOVUxMKSB7CiAJCXJldCA9IC1FSU87CiAJCWdvdG8gb3V0X2d0dDsKIAl9CiAK LQlkZXZfcHJpdi0+Z3R0Lm10cnIgPSBhcmNoX3BoeXNfd2NfYWRkKGRldl9wcml2LT5ndHQubWFw cGFibGVfYmFzZSwKKwlkZXZfcHJpdi0+Z2d0dC5tdHJyID0gYXJjaF9waHlzX3djX2FkZChkZXZf cHJpdi0+Z2d0dC5tYXBwYWJsZV9iYXNlLAogCQkJCQkgICAgICBhcGVydHVyZV9zaXplKTsKIAog CXBtX3Fvc19hZGRfcmVxdWVzdCgmZGV2X3ByaXYtPnBtX3FvcywgUE1fUU9TX0NQVV9ETUFfTEFU RU5DWSwKQEAgLTEyMzAsOCArMTIzMCw4IEBAIHN0YXRpYyB2b2lkIGk5MTVfZHJpdmVyX2NsZWFu dXBfaHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQlwY2lfZGlzYWJsZV9t c2koZGV2LT5wZGV2KTsKIAogCXBtX3Fvc19yZW1vdmVfcmVxdWVzdCgmZGV2X3ByaXYtPnBtX3Fv cyk7Ci0JYXJjaF9waHlzX3djX2RlbChkZXZfcHJpdi0+Z3R0Lm10cnIpOwotCWlvX21hcHBpbmdf ZnJlZShkZXZfcHJpdi0+Z3R0Lm1hcHBhYmxlKTsKKwlhcmNoX3BoeXNfd2NfZGVsKGRldl9wcml2 LT5nZ3R0Lm10cnIpOworCWlvX21hcHBpbmdfZnJlZShkZXZfcHJpdi0+Z2d0dC5tYXBwYWJsZSk7 CiAJaTkxNV9nbG9iYWxfZ3R0X2NsZWFudXAoZGV2KTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKaW5kZXggMDBjNDFhNC4uYjFkNjU1NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0x ODEwLDcgKzE4MTAsNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7CiAJc3RydWN0IGRybV9h dG9taWNfc3RhdGUgKm1vZGVzZXRfcmVzdG9yZV9zdGF0ZTsKIAogCXN0cnVjdCBsaXN0X2hlYWQg dm1fbGlzdDsgLyogR2xvYmFsIGxpc3Qgb2YgYWxsIGFkZHJlc3Mgc3BhY2VzICovCi0Jc3RydWN0 IGk5MTVfZ3R0IGd0dDsgLyogVk0gcmVwcmVzZW50aW5nIHRoZSBnbG9iYWwgYWRkcmVzcyBzcGFj ZSAqLworCXN0cnVjdCBpOTE1X2dndHQgZ2d0dDsgLyogVk0gcmVwcmVzZW50aW5nIHRoZSBnbG9i YWwgYWRkcmVzcyBzcGFjZSAqLwogCiAJc3RydWN0IGk5MTVfZ2VtX21tIG1tOwogCURFQ0xBUkVf SEFTSFRBQkxFKG1tX3N0cnVjdHMsIDcpOwpAQCAtMzEyNiw3ICszMTI2LDcgQEAgYm9vbCBpOTE1 X2dlbV9vYmpfaXNfcGlubmVkKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopOwogCiAv KiBTb21lIEdHVFQgVk0gaGVscGVycyAqLwogI2RlZmluZSBpOTE1X29ial90b19nZ3R0KG9iaikg XAotCSgmKChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqKShvYmopLT5iYXNlLmRldi0+ZGV2X3By aXZhdGUpLT5ndHQuYmFzZSkKKwkoJigoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKikob2JqKS0+ YmFzZS5kZXYtPmRldl9wcml2YXRlKS0+Z2d0dC5iYXNlKQogCiBzdGF0aWMgaW5saW5lIHN0cnVj dCBpOTE1X2h3X3BwZ3R0ICoKIGk5MTVfdm1fdG9fcHBndHQoc3RydWN0IGk5MTVfYWRkcmVzc19z cGFjZSAqdm0pCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwppbmRleCBhNGUwMTU1Li44Yjc1ZTZiIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKQEAgLTEzMiw3ICsxMzIsNyBAQCBpOTE1X2dlbV9nZXRf YXBlcnR1cmVfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIHsKIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCXN0 cnVjdCBkcm1faTkxNV9nZW1fZ2V0X2FwZXJ0dXJlICphcmdzID0gZGF0YTsKLQlzdHJ1Y3QgaTkx NV9ndHQgKmdndHQgPSAmZGV2X3ByaXYtPmd0dDsKKwlzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0ID0g JmRldl9wcml2LT5nZ3R0OwogCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwogCXNpemVfdCBwaW5uZWQ7 CiAKQEAgLTE0Niw3ICsxNDYsNyBAQCBpOTE1X2dlbV9nZXRfYXBlcnR1cmVfaW9jdGwoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJCXBpbm5lZCArPSB2bWEtPm5vZGUuc2l6 ZTsKIAltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKIAotCWFyZ3MtPmFwZXJfc2l6 ZSA9IGRldl9wcml2LT5ndHQuYmFzZS50b3RhbDsKKwlhcmdzLT5hcGVyX3NpemUgPSBkZXZfcHJp di0+Z2d0dC5iYXNlLnRvdGFsOwogCWFyZ3MtPmFwZXJfYXZhaWxhYmxlX3NpemUgPSBhcmdzLT5h cGVyX3NpemUgLSBwaW5uZWQ7CiAKIAlyZXR1cm4gMDsKQEAgLTgwNyw3ICs4MDcsNyBAQCBpOTE1 X2dlbV9ndHRfcHdyaXRlX2Zhc3Qoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJICogc291cmNl IHBhZ2UgaXNuJ3QgYXZhaWxhYmxlLiAgUmV0dXJuIHRoZSBlcnJvciBhbmQgd2UnbGwKIAkJICog cmV0cnkgaW4gdGhlIHNsb3cgcGF0aC4KIAkJICovCi0JCWlmIChmYXN0X3VzZXJfd3JpdGUoZGV2 X3ByaXYtPmd0dC5tYXBwYWJsZSwgcGFnZV9iYXNlLAorCQlpZiAoZmFzdF91c2VyX3dyaXRlKGRl dl9wcml2LT5nZ3R0Lm1hcHBhYmxlLCBwYWdlX2Jhc2UsCiAJCQkJICAgIHBhZ2Vfb2Zmc2V0LCB1 c2VyX2RhdGEsIHBhZ2VfbGVuZ3RoKSkgewogCQkJcmV0ID0gLUVGQVVMVDsKIAkJCWdvdG8gb3V0 X2ZsdXNoOwpAQCAtMTgyNyw3ICsxODI3LDcgQEAgaW50IGk5MTVfZ2VtX2ZhdWx0KHN0cnVjdCB2 bV9hcmVhX3N0cnVjdCAqdm1hLCBzdHJ1Y3Qgdm1fZmF1bHQgKnZtZikKIAl9CiAKIAkvKiBVc2Ug YSBwYXJ0aWFsIHZpZXcgaWYgdGhlIG9iamVjdCBpcyBiaWdnZXIgdGhhbiB0aGUgYXBlcnR1cmUu ICovCi0JaWYgKG9iai0+YmFzZS5zaXplID49IGRldl9wcml2LT5ndHQubWFwcGFibGVfZW5kICYm CisJaWYgKG9iai0+YmFzZS5zaXplID49IGRldl9wcml2LT5nZ3R0Lm1hcHBhYmxlX2VuZCAmJgog CSAgICBvYmotPnRpbGluZ19tb2RlID09IEk5MTVfVElMSU5HX05PTkUpIHsKIAkJc3RhdGljIGNv bnN0IHVuc2lnbmVkIGludCBjaHVua19zaXplID0gMjU2OyAvLyAxIE1pQgogCkBAIC0xODU1LDcg KzE4NTUsNyBAQCBpbnQgaTkxNV9nZW1fZmF1bHQoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEs IHN0cnVjdCB2bV9mYXVsdCAqdm1mKQogCQlnb3RvIHVucGluOwogCiAJLyogRmluYWxseSwgcmVt YXAgaXQgdXNpbmcgdGhlIG5ldyBHVFQgb2Zmc2V0ICovCi0JcGZuID0gZGV2X3ByaXYtPmd0dC5t YXBwYWJsZV9iYXNlICsKKwlwZm4gPSBkZXZfcHJpdi0+Z2d0dC5tYXBwYWJsZV9iYXNlICsKIAkJ aTkxNV9nZW1fb2JqX2dndHRfb2Zmc2V0X3ZpZXcob2JqLCAmdmlldyk7CiAJcGZuID4+PSBQQUdF X1NISUZUOwogCkBAIC0zNTEzLDcgKzM1MTMsNyBAQCBpOTE1X2dlbV9vYmplY3RfYmluZF90b192 bShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCXN0YXJ0ID0gZmxhZ3MgJiBQSU5f T0ZGU0VUX0JJQVMgPyBmbGFncyAmIFBJTl9PRkZTRVRfTUFTSyA6IDA7CiAJZW5kID0gdm0tPnRv dGFsOwogCWlmIChmbGFncyAmIFBJTl9NQVBQQUJMRSkKLQkJZW5kID0gbWluX3QodTY0LCBlbmQs IGRldl9wcml2LT5ndHQubWFwcGFibGVfZW5kKTsKKwkJZW5kID0gbWluX3QodTY0LCBlbmQsIGRl dl9wcml2LT5nZ3R0Lm1hcHBhYmxlX2VuZCk7CiAJaWYgKGZsYWdzICYgUElOX1pPTkVfNEcpCiAJ CWVuZCA9IG1pbl90KHU2NCwgZW5kLCAoMVVMTCA8PCAzMikgLSBQQUdFX1NJWkUpOwogCkBAIC0z Nzc0LDcgKzM3NzQsNyBAQCBpOTE1X2dlbV9vYmplY3Rfc2V0X3RvX2d0dF9kb21haW4oc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwgYm9vbCB3cml0ZSkKIAl2bWEgPSBpOTE1X2dlbV9v YmpfdG9fZ2d0dChvYmopOwogCWlmICh2bWEgJiYgZHJtX21tX25vZGVfYWxsb2NhdGVkKCZ2bWEt Pm5vZGUpICYmICFvYmotPmFjdGl2ZSkKIAkJbGlzdF9tb3ZlX3RhaWwoJnZtYS0+dm1fbGluaywK LQkJCSAgICAgICAmdG9faTkxNShvYmotPmJhc2UuZGV2KS0+Z3R0LmJhc2UuaW5hY3RpdmVfbGlz dCk7CisJCQkgICAgICAgJnRvX2k5MTUob2JqLT5iYXNlLmRldiktPmdndHQuYmFzZS5pbmFjdGl2 ZV9saXN0KTsKIAogCXJldHVybiAwOwogfQpAQCAtNDIxMSw3ICs0MjExLDcgQEAgdm9pZCBfX2k5 MTVfdm1hX3NldF9tYXBfYW5kX2ZlbmNlYWJsZShzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKIAkJICAg ICAodm1hLT5ub2RlLnN0YXJ0ICYgKGZlbmNlX2FsaWdubWVudCAtIDEpKSA9PSAwKTsKIAogCW1h cHBhYmxlID0gKHZtYS0+bm9kZS5zdGFydCArIGZlbmNlX3NpemUgPD0KLQkJICAgIHRvX2k5MTUo b2JqLT5iYXNlLmRldiktPmd0dC5tYXBwYWJsZV9lbmQpOworCQkgICAgdG9faTkxNShvYmotPmJh c2UuZGV2KS0+Z2d0dC5tYXBwYWJsZV9lbmQpOwogCiAJb2JqLT5tYXBfYW5kX2ZlbmNlYWJsZSA9 IG1hcHBhYmxlICYmIGZlbmNlYWJsZTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX2NvbnRleHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2Nv bnRleHQuYwppbmRleCBjMTE0NjY1Li40ODEyZWViIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fY29udGV4dC5jCkBAIC05NDUsNyArOTQ1LDcgQEAgaW50IGk5MTVfZ2VtX2NvbnRleHRf Z2V0cGFyYW1faW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJZWxz ZSBpZiAodG9faTkxNShkZXYpLT5tbS5hbGlhc2luZ19wcGd0dCkKIAkJCWFyZ3MtPnZhbHVlID0g dG9faTkxNShkZXYpLT5tbS5hbGlhc2luZ19wcGd0dC0+YmFzZS50b3RhbDsKIAkJZWxzZQotCQkJ YXJncy0+dmFsdWUgPSB0b19pOTE1KGRldiktPmd0dC5iYXNlLnRvdGFsOworCQkJYXJncy0+dmFs dWUgPSB0b19pOTE1KGRldiktPmdndHQuYmFzZS50b3RhbDsKIAkJYnJlYWs7CiAJZGVmYXVsdDoK IAkJcmV0ID0gLUVJTlZBTDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX2V4ZWNidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZm ZXIuYwppbmRleCBkYWMwMWVlLi4zNzRhMGNiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fZXhlY2J1ZmZlci5jCkBAIC0zMzAsNyArMzMwLDcgQEAgcmVsb2NhdGVfZW50cnlfZ3R0 KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJLyogTWFwIHRoZSBwYWdlIGNvbnRh aW5pbmcgdGhlIHJlbG9jYXRpb24gd2UncmUgZ29pbmcgdG8gcGVyZm9ybS4gICovCiAJb2Zmc2V0 ID0gaTkxNV9nZW1fb2JqX2dndHRfb2Zmc2V0KG9iaik7CiAJb2Zmc2V0ICs9IHJlbG9jLT5vZmZz ZXQ7Ci0JcmVsb2NfcGFnZSA9IGlvX21hcHBpbmdfbWFwX2F0b21pY193YyhkZXZfcHJpdi0+Z3R0 Lm1hcHBhYmxlLAorCXJlbG9jX3BhZ2UgPSBpb19tYXBwaW5nX21hcF9hdG9taWNfd2MoZGV2X3By aXYtPmdndHQubWFwcGFibGUsCiAJCQkJCSAgICAgIG9mZnNldCAmIFBBR0VfTUFTSyk7CiAJaW93 cml0ZTMyKGxvd2VyXzMyX2JpdHMoZGVsdGEpLCByZWxvY19wYWdlICsgb2Zmc2V0X2luX3BhZ2Uo b2Zmc2V0KSk7CiAKQEAgLTM0MCw3ICszNDAsNyBAQCByZWxvY2F0ZV9lbnRyeV9ndHQoc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAkJaWYgKG9mZnNldF9pbl9wYWdlKG9mZnNldCkg PT0gMCkgewogCQkJaW9fbWFwcGluZ191bm1hcF9hdG9taWMocmVsb2NfcGFnZSk7CiAJCQlyZWxv Y19wYWdlID0KLQkJCQlpb19tYXBwaW5nX21hcF9hdG9taWNfd2MoZGV2X3ByaXYtPmd0dC5tYXBw YWJsZSwKKwkJCQlpb19tYXBwaW5nX21hcF9hdG9taWNfd2MoZGV2X3ByaXYtPmdndHQubWFwcGFi bGUsCiAJCQkJCQkJIG9mZnNldCk7CiAJCX0KIApAQCAtMTUwNCw3ICsxNTA0LDcgQEAgaTkxNV9n ZW1fZG9fZXhlY2J1ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCWlm IChjdHgtPnBwZ3R0KQogCQl2bSA9ICZjdHgtPnBwZ3R0LT5iYXNlOwogCWVsc2UKLQkJdm0gPSAm ZGV2X3ByaXYtPmd0dC5iYXNlOworCQl2bSA9ICZkZXZfcHJpdi0+Z2d0dC5iYXNlOwogCiAJbWVt c2V0KCZwYXJhbXNfbWFzdGVyLCAweDAwLCBzaXplb2YocGFyYW1zX21hc3RlcikpOwogCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCmluZGV4IDVjOTA5NTIuLjFhMGYwYjIgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCkBAIC0xNjM3LDcgKzE2MzcsNyBAQCBzdGF0aWMgdm9p ZCBnZW42X3dyaXRlX3BhZ2VfcmFuZ2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAogCiAJLyogTWFrZSBzdXJlIHdyaXRlIGlzIGNvbXBsZXRlIGJlZm9yZSBvdGhlciBjb2RlIGNh biB1c2UgdGhpcyBwYWdlCiAJICogdGFibGUuIEFsc28gcmVxdWlyZSBmb3IgV0MgbWFwcGVkIFBU RXMgKi8KLQlyZWFkbChkZXZfcHJpdi0+Z3R0LmdzbSk7CisJcmVhZGwoZGV2X3ByaXYtPmdndHQu Z3NtKTsKIH0KIAogc3RhdGljIHVpbnQzMl90IGdldF9wZF9vZmZzZXQoc3RydWN0IGk5MTVfaHdf cHBndHQgKnBwZ3R0KQpAQCAtMTkzMiw3ICsxOTMyLDcgQEAgc3RhdGljIGludCBnZW42X2FsbG9j X3ZhX3JhbmdlKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogCiAJLyogTWFrZSBzdXJl IHdyaXRlIGlzIGNvbXBsZXRlIGJlZm9yZSBvdGhlciBjb2RlIGNhbiB1c2UgdGhpcyBwYWdlCiAJ ICogdGFibGUuIEFsc28gcmVxdWlyZSBmb3IgV0MgbWFwcGVkIFBURXMgKi8KLQlyZWFkbChkZXZf cHJpdi0+Z3R0LmdzbSk7CisJcmVhZGwoZGV2X3ByaXYtPmdndHQuZ3NtKTsKIAogCW1hcmtfdGxi c19kaXJ0eShwcGd0dCk7CiAJcmV0dXJuIDA7CkBAIC0yMDA1LDIzICsyMDA1LDIzIEBAIHN0YXRp YyBpbnQgZ2VuNl9wcGd0dF9hbGxvY2F0ZV9wYWdlX2RpcmVjdG9yaWVzKHN0cnVjdCBpOTE1X2h3 X3BwZ3R0ICpwcGd0dCkKIAkgKiBhbGxvY2F0b3Igd29ya3MgaW4gYWRkcmVzcyBzcGFjZSBzaXpl cywgc28gaXQncyBtdWx0aXBsaWVkIGJ5IHBhZ2UKIAkgKiBzaXplLiBXZSBhbGxvY2F0ZSBhdCB0 aGUgdG9wIG9mIHRoZSBHVFQgdG8gYXZvaWQgZnJhZ21lbnRhdGlvbi4KIAkgKi8KLQlCVUdfT04o IWRybV9tbV9pbml0aWFsaXplZCgmZGV2X3ByaXYtPmd0dC5iYXNlLm1tKSk7CisJQlVHX09OKCFk cm1fbW1faW5pdGlhbGl6ZWQoJmRldl9wcml2LT5nZ3R0LmJhc2UubW0pKTsKIAogCXJldCA9IGdl bjZfaW5pdF9zY3JhdGNoKHZtKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCiBhbGxvYzoK LQlyZXQgPSBkcm1fbW1faW5zZXJ0X25vZGVfaW5fcmFuZ2VfZ2VuZXJpYygmZGV2X3ByaXYtPmd0 dC5iYXNlLm1tLAorCXJldCA9IGRybV9tbV9pbnNlcnRfbm9kZV9pbl9yYW5nZV9nZW5lcmljKCZk ZXZfcHJpdi0+Z2d0dC5iYXNlLm1tLAogCQkJCQkJICAmcHBndHQtPm5vZGUsIEdFTjZfUERfU0la RSwKIAkJCQkJCSAgR0VONl9QRF9BTElHTiwgMCwKLQkJCQkJCSAgMCwgZGV2X3ByaXYtPmd0dC5i YXNlLnRvdGFsLAorCQkJCQkJICAwLCBkZXZfcHJpdi0+Z2d0dC5iYXNlLnRvdGFsLAogCQkJCQkJ ICBEUk1fTU1fVE9QRE9XTik7CiAJaWYgKHJldCA9PSAtRU5PU1BDICYmICFyZXRyaWVkKSB7Ci0J CXJldCA9IGk5MTVfZ2VtX2V2aWN0X3NvbWV0aGluZyhkZXYsICZkZXZfcHJpdi0+Z3R0LmJhc2Us CisJCXJldCA9IGk5MTVfZ2VtX2V2aWN0X3NvbWV0aGluZyhkZXYsICZkZXZfcHJpdi0+Z2d0dC5i YXNlLAogCQkJCQkgICAgICAgR0VONl9QRF9TSVpFLCBHRU42X1BEX0FMSUdOLAogCQkJCQkgICAg ICAgSTkxNV9DQUNIRV9OT05FLAotCQkJCQkgICAgICAgMCwgZGV2X3ByaXYtPmd0dC5iYXNlLnRv dGFsLAorCQkJCQkgICAgICAgMCwgZGV2X3ByaXYtPmdndHQuYmFzZS50b3RhbCwKIAkJCQkJICAg ICAgIDApOwogCQlpZiAocmV0KQogCQkJZ290byBlcnJfb3V0OwpAQCAtMjAzNCw3ICsyMDM0LDcg QEAgYWxsb2M6CiAJCWdvdG8gZXJyX291dDsKIAogCi0JaWYgKHBwZ3R0LT5ub2RlLnN0YXJ0IDwg ZGV2X3ByaXYtPmd0dC5tYXBwYWJsZV9lbmQpCisJaWYgKHBwZ3R0LT5ub2RlLnN0YXJ0IDwgZGV2 X3ByaXYtPmdndHQubWFwcGFibGVfZW5kKQogCQlEUk1fREVCVUcoIkZvcmNlZCB0byB1c2UgYXBl cnR1cmUgZm9yIFBERXNcbiIpOwogCiAJcmV0dXJuIDA7CkBAIC0yMDY1LDcgKzIwNjUsNyBAQCBz dGF0aWMgaW50IGdlbjZfcHBndHRfaW5pdChzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQpCiAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlp bnQgcmV0OwogCi0JcHBndHQtPmJhc2UucHRlX2VuY29kZSA9IGRldl9wcml2LT5ndHQuYmFzZS5w dGVfZW5jb2RlOworCXBwZ3R0LT5iYXNlLnB0ZV9lbmNvZGUgPSBkZXZfcHJpdi0+Z2d0dC5iYXNl LnB0ZV9lbmNvZGU7CiAJaWYgKElTX0dFTjYoZGV2KSkgewogCQlwcGd0dC0+c3dpdGNoX21tID0g Z2VuNl9tbV9zd2l0Y2g7CiAJfSBlbHNlIGlmIChJU19IQVNXRUxMKGRldikpIHsKQEAgLTIwOTUs NyArMjA5NSw3IEBAIHN0YXRpYyBpbnQgZ2VuNl9wcGd0dF9pbml0KHN0cnVjdCBpOTE1X2h3X3Bw Z3R0ICpwcGd0dCkKIAlwcGd0dC0+cGQuYmFzZS5nZ3R0X29mZnNldCA9CiAJCXBwZ3R0LT5ub2Rl LnN0YXJ0IC8gUEFHRV9TSVpFICogc2l6ZW9mKGdlbjZfcHRlX3QpOwogCi0JcHBndHQtPnBkX2Fk ZHIgPSAoZ2VuNl9wdGVfdCBfX2lvbWVtICopZGV2X3ByaXYtPmd0dC5nc20gKworCXBwZ3R0LT5w ZF9hZGRyID0gKGdlbjZfcHRlX3QgX19pb21lbSAqKWRldl9wcml2LT5nZ3R0LmdzbSArCiAJCXBw Z3R0LT5wZC5iYXNlLmdndHRfb2Zmc2V0IC8gc2l6ZW9mKGdlbjZfcHRlX3QpOwogCiAJZ2VuNl9z Y3JhdGNoX3ZhX3JhbmdlKHBwZ3R0LCAwLCBwcGd0dC0+YmFzZS50b3RhbCk7CkBAIC0yMjY1LDcg KzIyNjUsNyBAQCBzdGF0aWMgYm9vbCBkb19pZGxpbmcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQogewogCWJvb2wgcmV0ID0gZGV2X3ByaXYtPm1tLmludGVycnVwdGlibGU7CiAK LQlpZiAodW5saWtlbHkoZGV2X3ByaXYtPmd0dC5kb19pZGxlX21hcHMpKSB7CisJaWYgKHVubGlr ZWx5KGRldl9wcml2LT5nZ3R0LmRvX2lkbGVfbWFwcykpIHsKIAkJZGV2X3ByaXYtPm1tLmludGVy cnVwdGlibGUgPSBmYWxzZTsKIAkJaWYgKGk5MTVfZ3B1X2lkbGUoZGV2X3ByaXYtPmRldikpIHsK IAkJCURSTV9FUlJPUigiQ291bGRuJ3QgaWRsZSBHUFVcbiIpOwpAQCAtMjI3OSw3ICsyMjc5LDcg QEAgc3RhdGljIGJvb2wgZG9faWRsaW5nKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKIAogc3RhdGljIHZvaWQgdW5kb19pZGxpbmcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LCBib29sIGludGVycnVwdGlibGUpCiB7Ci0JaWYgKHVubGlrZWx5KGRldl9wcml2LT5n dHQuZG9faWRsZV9tYXBzKSkKKwlpZiAodW5saWtlbHkoZGV2X3ByaXYtPmdndHQuZG9faWRsZV9t YXBzKSkKIAkJZGV2X3ByaXYtPm1tLmludGVycnVwdGlibGUgPSBpbnRlcnJ1cHRpYmxlOwogfQog CkBAIC0yMzM0LDkgKzIzMzQsOSBAQCB2b2lkIGk5MTVfZ2VtX3N1c3BlbmRfZ3R0X21hcHBpbmdz KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAKIAlpOTE1X2NoZWNrX2FuZF9jbGVhcl9mYXVsdHMo ZGV2KTsKIAotCWRldl9wcml2LT5ndHQuYmFzZS5jbGVhcl9yYW5nZSgmZGV2X3ByaXYtPmd0dC5i YXNlLAotCQkJCSAgICAgICBkZXZfcHJpdi0+Z3R0LmJhc2Uuc3RhcnQsCi0JCQkJICAgICAgIGRl dl9wcml2LT5ndHQuYmFzZS50b3RhbCwKKwlkZXZfcHJpdi0+Z2d0dC5iYXNlLmNsZWFyX3Jhbmdl KCZkZXZfcHJpdi0+Z2d0dC5iYXNlLAorCQkJCSAgICAgICBkZXZfcHJpdi0+Z2d0dC5iYXNlLnN0 YXJ0LAorCQkJCSAgICAgICBkZXZfcHJpdi0+Z2d0dC5iYXNlLnRvdGFsLAogCQkJCSAgICAgICB0 cnVlKTsKIAogCWk5MTVfZ2d0dF9mbHVzaChkZXZfcHJpdik7CkBAIC0yMzcwLDcgKzIzNzAsNyBA QCBzdGF0aWMgdm9pZCBnZW44X2dndHRfaW5zZXJ0X2VudHJpZXMoc3RydWN0IGk5MTVfYWRkcmVz c19zcGFjZSAqdm0sCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdm0tPmRl di0+ZGV2X3ByaXZhdGU7CiAJdW5zaWduZWQgZmlyc3RfZW50cnkgPSBzdGFydCA+PiBQQUdFX1NI SUZUOwogCWdlbjhfcHRlX3QgX19pb21lbSAqZ3R0X2VudHJpZXMgPQotCQkoZ2VuOF9wdGVfdCBf X2lvbWVtICopZGV2X3ByaXYtPmd0dC5nc20gKyBmaXJzdF9lbnRyeTsKKwkJKGdlbjhfcHRlX3Qg X19pb21lbSAqKWRldl9wcml2LT5nZ3R0LmdzbSArIGZpcnN0X2VudHJ5OwogCWludCBpID0gMDsK IAlzdHJ1Y3Qgc2dfcGFnZV9pdGVyIHNnX2l0ZXI7CiAJZG1hX2FkZHJfdCBhZGRyID0gMDsgLyog c2h1dCB1cCBnY2MgKi8KQEAgLTI0NDcsNyArMjQ0Nyw3IEBAIHN0YXRpYyB2b2lkIGdlbjZfZ2d0 dF9pbnNlcnRfZW50cmllcyhzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB2bS0+ZGV2LT5kZXZfcHJpdmF0ZTsKIAl1bnNp Z25lZCBmaXJzdF9lbnRyeSA9IHN0YXJ0ID4+IFBBR0VfU0hJRlQ7CiAJZ2VuNl9wdGVfdCBfX2lv bWVtICpndHRfZW50cmllcyA9Ci0JCShnZW42X3B0ZV90IF9faW9tZW0gKilkZXZfcHJpdi0+Z3R0 LmdzbSArIGZpcnN0X2VudHJ5OworCQkoZ2VuNl9wdGVfdCBfX2lvbWVtICopZGV2X3ByaXYtPmdn dHQuZ3NtICsgZmlyc3RfZW50cnk7CiAJaW50IGkgPSAwOwogCXN0cnVjdCBzZ19wYWdlX2l0ZXIg c2dfaXRlcjsKIAlkbWFfYWRkcl90IGFkZHIgPSAwOwpAQCAtMjQ5MSw4ICsyNDkxLDggQEAgc3Rh dGljIHZvaWQgZ2VuOF9nZ3R0X2NsZWFyX3JhbmdlKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2Ug KnZtLAogCXVuc2lnbmVkIGZpcnN0X2VudHJ5ID0gc3RhcnQgPj4gUEFHRV9TSElGVDsKIAl1bnNp Z25lZCBudW1fZW50cmllcyA9IGxlbmd0aCA+PiBQQUdFX1NISUZUOwogCWdlbjhfcHRlX3Qgc2Ny YXRjaF9wdGUsIF9faW9tZW0gKmd0dF9iYXNlID0KLQkJKGdlbjhfcHRlX3QgX19pb21lbSAqKSBk ZXZfcHJpdi0+Z3R0LmdzbSArIGZpcnN0X2VudHJ5OwotCWNvbnN0IGludCBtYXhfZW50cmllcyA9 IGd0dF90b3RhbF9lbnRyaWVzKGRldl9wcml2LT5ndHQpIC0gZmlyc3RfZW50cnk7CisJCShnZW44 X3B0ZV90IF9faW9tZW0gKikgZGV2X3ByaXYtPmdndHQuZ3NtICsgZmlyc3RfZW50cnk7CisJY29u c3QgaW50IG1heF9lbnRyaWVzID0gZ3R0X3RvdGFsX2VudHJpZXMoZGV2X3ByaXYtPmdndHQpIC0g Zmlyc3RfZW50cnk7CiAJaW50IGk7CiAJaW50IHJwbV9hdG9taWNfc2VxOwogCkBAIC0yNTIyLDgg KzI1MjIsOCBAQCBzdGF0aWMgdm9pZCBnZW42X2dndHRfY2xlYXJfcmFuZ2Uoc3RydWN0IGk5MTVf YWRkcmVzc19zcGFjZSAqdm0sCiAJdW5zaWduZWQgZmlyc3RfZW50cnkgPSBzdGFydCA+PiBQQUdF X1NISUZUOwogCXVuc2lnbmVkIG51bV9lbnRyaWVzID0gbGVuZ3RoID4+IFBBR0VfU0hJRlQ7CiAJ Z2VuNl9wdGVfdCBzY3JhdGNoX3B0ZSwgX19pb21lbSAqZ3R0X2Jhc2UgPQotCQkoZ2VuNl9wdGVf dCBfX2lvbWVtICopIGRldl9wcml2LT5ndHQuZ3NtICsgZmlyc3RfZW50cnk7Ci0JY29uc3QgaW50 IG1heF9lbnRyaWVzID0gZ3R0X3RvdGFsX2VudHJpZXMoZGV2X3ByaXYtPmd0dCkgLSBmaXJzdF9l bnRyeTsKKwkJKGdlbjZfcHRlX3QgX19pb21lbSAqKSBkZXZfcHJpdi0+Z2d0dC5nc20gKyBmaXJz dF9lbnRyeTsKKwljb25zdCBpbnQgbWF4X2VudHJpZXMgPSBndHRfdG90YWxfZW50cmllcyhkZXZf cHJpdi0+Z2d0dCkgLSBmaXJzdF9lbnRyeTsKIAlpbnQgaTsKIAlpbnQgcnBtX2F0b21pY19zZXE7 CiAKQEAgLTI3MTgsNyArMjcxOCw3IEBAIHN0YXRpYyBpbnQgaTkxNV9nZW1fc2V0dXBfZ2xvYmFs X2d0dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCSAqIG9mIHRoZSBhcGVydHVyZS4KIAkgKi8K IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwot CXN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKmdndHRfdm0gPSAmZGV2X3ByaXYtPmd0dC5iYXNl OworCXN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKmdndHRfdm0gPSAmZGV2X3ByaXYtPmdndHQu YmFzZTsKIAlzdHJ1Y3QgZHJtX21tX25vZGUgKmVudHJ5OwogCXN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0ICpvYmo7CiAJdW5zaWduZWQgbG9uZyBob2xlX3N0YXJ0LCBob2xlX2VuZDsKQEAgLTI4 MDEsOCArMjgwMSw4IEBAIHN0YXRpYyBpbnQgaTkxNV9nZW1fc2V0dXBfZ2xvYmFsX2d0dChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCQl0cnVlKTsKIAogCQlkZXZfcHJpdi0+bW0uYWxpYXNp bmdfcHBndHQgPSBwcGd0dDsKLQkJV0FSTl9PTihkZXZfcHJpdi0+Z3R0LmJhc2UuYmluZF92bWEg IT0gZ2d0dF9iaW5kX3ZtYSk7Ci0JCWRldl9wcml2LT5ndHQuYmFzZS5iaW5kX3ZtYSA9IGFsaWFz aW5nX2d0dF9iaW5kX3ZtYTsKKwkJV0FSTl9PTihkZXZfcHJpdi0+Z2d0dC5iYXNlLmJpbmRfdm1h ICE9IGdndHRfYmluZF92bWEpOworCQlkZXZfcHJpdi0+Z2d0dC5iYXNlLmJpbmRfdm1hID0gYWxp YXNpbmdfZ3R0X2JpbmRfdm1hOwogCX0KIAogCXJldHVybiAwOwpAQCAtMjgxMyw4ICsyODEzLDgg QEAgdm9pZCBpOTE1X2dlbV9pbml0X2dsb2JhbF9ndHQoc3RydWN0IGRybV9kZXZpY2UgKmRldikK IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwog CXU2NCBndHRfc2l6ZSwgbWFwcGFibGVfc2l6ZTsKIAotCWd0dF9zaXplID0gZGV2X3ByaXYtPmd0 dC5iYXNlLnRvdGFsOwotCW1hcHBhYmxlX3NpemUgPSBkZXZfcHJpdi0+Z3R0Lm1hcHBhYmxlX2Vu ZDsKKwlndHRfc2l6ZSA9IGRldl9wcml2LT5nZ3R0LmJhc2UudG90YWw7CisJbWFwcGFibGVfc2l6 ZSA9IGRldl9wcml2LT5nZ3R0Lm1hcHBhYmxlX2VuZDsKIAogCWk5MTVfZ2VtX3NldHVwX2dsb2Jh bF9ndHQoZGV2LCAwLCBtYXBwYWJsZV9zaXplLCBndHRfc2l6ZSk7CiB9CkBAIC0yODIyLDcgKzI4 MjIsNyBAQCB2b2lkIGk5MTVfZ2VtX2luaXRfZ2xvYmFsX2d0dChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQogdm9pZCBpOTE1X2dsb2JhbF9ndHRfY2xlYW51cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZh dGU7Ci0Jc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0gPSAmZGV2X3ByaXYtPmd0dC5iYXNl OworCXN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtID0gJmRldl9wcml2LT5nZ3R0LmJhc2U7 CiAKIAlpZiAoZGV2X3ByaXYtPm1tLmFsaWFzaW5nX3BwZ3R0KSB7CiAJCXN0cnVjdCBpOTE1X2h3 X3BwZ3R0ICpwcGd0dCA9IGRldl9wcml2LT5tbS5hbGlhc2luZ19wcGd0dDsKQEAgLTI5NDAsMTAg KzI5NDAsMTAgQEAgc3RhdGljIGludCBnZ3R0X3Byb2JlX2NvbW1vbihzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAogCSAqIHJlYWRiYWNrIGNoZWNrIHdoZW4gd3JpdGluZyBHVFQgUFRFIGVudHJpZXMu CiAJICovCiAJaWYgKElTX0JST1hUT04oZGV2KSkKLQkJZGV2X3ByaXYtPmd0dC5nc20gPSBpb3Jl bWFwX25vY2FjaGUoZ3R0X3BoeXNfYWRkciwgZ3R0X3NpemUpOworCQlkZXZfcHJpdi0+Z2d0dC5n c20gPSBpb3JlbWFwX25vY2FjaGUoZ3R0X3BoeXNfYWRkciwgZ3R0X3NpemUpOwogCWVsc2UKLQkJ ZGV2X3ByaXYtPmd0dC5nc20gPSBpb3JlbWFwX3djKGd0dF9waHlzX2FkZHIsIGd0dF9zaXplKTsK LQlpZiAoIWRldl9wcml2LT5ndHQuZ3NtKSB7CisJCWRldl9wcml2LT5nZ3R0LmdzbSA9IGlvcmVt YXBfd2MoZ3R0X3BoeXNfYWRkciwgZ3R0X3NpemUpOworCWlmICghZGV2X3ByaXYtPmdndHQuZ3Nt KSB7CiAJCURSTV9FUlJPUigiRmFpbGVkIHRvIG1hcCB0aGUgZ3R0IHBhZ2UgdGFibGVcbiIpOwog CQlyZXR1cm4gLUVOT01FTTsKIAl9CkBAIC0yOTUyLDExICsyOTUyLDExIEBAIHN0YXRpYyBpbnQg Z2d0dF9wcm9iZV9jb21tb24oc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlpZiAoSVNfRVJSKHNj cmF0Y2hfcGFnZSkpIHsKIAkJRFJNX0VSUk9SKCJTY3JhdGNoIHNldHVwIGZhaWxlZFxuIik7CiAJ CS8qIGlvdW5tYXAgd2lsbCBhbHNvIGdldCBjYWxsZWQgYXQgcmVtb3ZlLCBidXQgbWVoICovCi0J CWlvdW5tYXAoZGV2X3ByaXYtPmd0dC5nc20pOworCQlpb3VubWFwKGRldl9wcml2LT5nZ3R0Lmdz bSk7CiAJCXJldHVybiBQVFJfRVJSKHNjcmF0Y2hfcGFnZSk7CiAJfQogCi0JZGV2X3ByaXYtPmd0 dC5iYXNlLnNjcmF0Y2hfcGFnZSA9IHNjcmF0Y2hfcGFnZTsKKwlkZXZfcHJpdi0+Z2d0dC5iYXNl LnNjcmF0Y2hfcGFnZSA9IHNjcmF0Y2hfcGFnZTsKIAogCXJldHVybiAwOwogfQpAQCAtMzA3NCwx MyArMzA3NCwxMyBAQCBzdGF0aWMgaW50IGdlbjhfZ21jaF9wcm9iZShzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAogCiAJcmV0ID0gZ2d0dF9wcm9iZV9jb21tb24oZGV2LCBndHRfc2l6ZSk7CiAKLQlk ZXZfcHJpdi0+Z3R0LmJhc2UuY2xlYXJfcmFuZ2UgPSBnZW44X2dndHRfY2xlYXJfcmFuZ2U7Ci0J ZGV2X3ByaXYtPmd0dC5iYXNlLmluc2VydF9lbnRyaWVzID0gZ2VuOF9nZ3R0X2luc2VydF9lbnRy aWVzOwotCWRldl9wcml2LT5ndHQuYmFzZS5iaW5kX3ZtYSA9IGdndHRfYmluZF92bWE7Ci0JZGV2 X3ByaXYtPmd0dC5iYXNlLnVuYmluZF92bWEgPSBnZ3R0X3VuYmluZF92bWE7CisJZGV2X3ByaXYt PmdndHQuYmFzZS5jbGVhcl9yYW5nZSA9IGdlbjhfZ2d0dF9jbGVhcl9yYW5nZTsKKwlkZXZfcHJp di0+Z2d0dC5iYXNlLmluc2VydF9lbnRyaWVzID0gZ2VuOF9nZ3R0X2luc2VydF9lbnRyaWVzOwor CWRldl9wcml2LT5nZ3R0LmJhc2UuYmluZF92bWEgPSBnZ3R0X2JpbmRfdm1hOworCWRldl9wcml2 LT5nZ3R0LmJhc2UudW5iaW5kX3ZtYSA9IGdndHRfdW5iaW5kX3ZtYTsKIAogCWlmIChJU19DSEVS UllWSUVXKGRldl9wcml2KSkKLQkJZGV2X3ByaXYtPmd0dC5iYXNlLmluc2VydF9lbnRyaWVzID0g Z2VuOF9nZ3R0X2luc2VydF9lbnRyaWVzX19CS0w7CisJCWRldl9wcml2LT5nZ3R0LmJhc2UuaW5z ZXJ0X2VudHJpZXMgPSBnZW44X2dndHRfaW5zZXJ0X2VudHJpZXNfX0JLTDsKIAogCXJldHVybiBy ZXQ7CiB9CkBAIC0zMTE4LDIwICszMTE4LDE5IEBAIHN0YXRpYyBpbnQgZ2VuNl9nbWNoX3Byb2Jl KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAKIAlyZXQgPSBnZ3R0X3Byb2JlX2NvbW1vbihkZXYs IGd0dF9zaXplKTsKIAotCWRldl9wcml2LT5ndHQuYmFzZS5jbGVhcl9yYW5nZSA9IGdlbjZfZ2d0 dF9jbGVhcl9yYW5nZTsKLQlkZXZfcHJpdi0+Z3R0LmJhc2UuaW5zZXJ0X2VudHJpZXMgPSBnZW42 X2dndHRfaW5zZXJ0X2VudHJpZXM7Ci0JZGV2X3ByaXYtPmd0dC5iYXNlLmJpbmRfdm1hID0gZ2d0 dF9iaW5kX3ZtYTsKLQlkZXZfcHJpdi0+Z3R0LmJhc2UudW5iaW5kX3ZtYSA9IGdndHRfdW5iaW5k X3ZtYTsKKwlkZXZfcHJpdi0+Z2d0dC5iYXNlLmNsZWFyX3JhbmdlID0gZ2VuNl9nZ3R0X2NsZWFy X3JhbmdlOworCWRldl9wcml2LT5nZ3R0LmJhc2UuaW5zZXJ0X2VudHJpZXMgPSBnZW42X2dndHRf aW5zZXJ0X2VudHJpZXM7CisJZGV2X3ByaXYtPmdndHQuYmFzZS5iaW5kX3ZtYSA9IGdndHRfYmlu ZF92bWE7CisJZGV2X3ByaXYtPmdndHQuYmFzZS51bmJpbmRfdm1hID0gZ2d0dF91bmJpbmRfdm1h OwogCiAJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIHZvaWQgZ2VuNl9nbWNoX3JlbW92ZShzdHJ1 Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSkKIHsKKwlzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0ID0g Y29udGFpbmVyX29mKHZtLCBzdHJ1Y3QgaTkxNV9nZ3R0LCBiYXNlKTsKIAotCXN0cnVjdCBpOTE1 X2d0dCAqZ3R0ID0gY29udGFpbmVyX29mKHZtLCBzdHJ1Y3QgaTkxNV9ndHQsIGJhc2UpOwotCi0J aW91bm1hcChndHQtPmdzbSk7CisJaW91bm1hcChnZ3R0LT5nc20pOwogCWZyZWVfc2NyYXRjaF9w YWdlKHZtLT5kZXYsIHZtLT5zY3JhdGNoX3BhZ2UpOwogfQogCkBAIC0zMTUyLDEzICszMTUxLDEz IEBAIHN0YXRpYyBpbnQgaTkxNV9nbWNoX3Byb2JlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAK IAlpbnRlbF9ndHRfZ2V0KGd0dF90b3RhbCwgc3RvbGVuLCBtYXBwYWJsZV9iYXNlLCBtYXBwYWJs ZV9lbmQpOwogCi0JZGV2X3ByaXYtPmd0dC5kb19pZGxlX21hcHMgPSBuZWVkc19pZGxlX21hcHMo ZGV2X3ByaXYtPmRldik7Ci0JZGV2X3ByaXYtPmd0dC5iYXNlLmluc2VydF9lbnRyaWVzID0gaTkx NV9nZ3R0X2luc2VydF9lbnRyaWVzOwotCWRldl9wcml2LT5ndHQuYmFzZS5jbGVhcl9yYW5nZSA9 IGk5MTVfZ2d0dF9jbGVhcl9yYW5nZTsKLQlkZXZfcHJpdi0+Z3R0LmJhc2UuYmluZF92bWEgPSBn Z3R0X2JpbmRfdm1hOwotCWRldl9wcml2LT5ndHQuYmFzZS51bmJpbmRfdm1hID0gZ2d0dF91bmJp bmRfdm1hOworCWRldl9wcml2LT5nZ3R0LmRvX2lkbGVfbWFwcyA9IG5lZWRzX2lkbGVfbWFwcyhk ZXZfcHJpdi0+ZGV2KTsKKwlkZXZfcHJpdi0+Z2d0dC5iYXNlLmluc2VydF9lbnRyaWVzID0gaTkx NV9nZ3R0X2luc2VydF9lbnRyaWVzOworCWRldl9wcml2LT5nZ3R0LmJhc2UuY2xlYXJfcmFuZ2Ug PSBpOTE1X2dndHRfY2xlYXJfcmFuZ2U7CisJZGV2X3ByaXYtPmdndHQuYmFzZS5iaW5kX3ZtYSA9 IGdndHRfYmluZF92bWE7CisJZGV2X3ByaXYtPmdndHQuYmFzZS51bmJpbmRfdm1hID0gZ2d0dF91 bmJpbmRfdm1hOwogCi0JaWYgKHVubGlrZWx5KGRldl9wcml2LT5ndHQuZG9faWRsZV9tYXBzKSkK KwlpZiAodW5saWtlbHkoZGV2X3ByaXYtPmdndHQuZG9faWRsZV9tYXBzKSkKIAkJRFJNX0lORk8o ImFwcGx5aW5nIElyb25sYWtlIHF1aXJrcyBmb3IgaW50ZWxfaW9tbXVcbiIpOwogCiAJcmV0dXJu IDA7CkBAIC0zMTcyLDM1ICszMTcxLDM1IEBAIHN0YXRpYyB2b2lkIGk5MTVfZ21jaF9yZW1vdmUo c3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0pCiBpbnQgaTkxNV9nZW1fZ3R0X2luaXQoc3Ry dWN0IGRybV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBpOTE1X2d0dCAqZ3R0ID0gJmRldl9wcml2 LT5ndHQ7CisJc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCA9ICZkZXZfcHJpdi0+Z2d0dDsKIAlpbnQg cmV0OwogCiAJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuIDw9IDUpIHsKLQkJZ3R0LT5ndHRfcHJv YmUgPSBpOTE1X2dtY2hfcHJvYmU7Ci0JCWd0dC0+YmFzZS5jbGVhbnVwID0gaTkxNV9nbWNoX3Jl bW92ZTsKKwkJZ2d0dC0+cHJvYmUgPSBpOTE1X2dtY2hfcHJvYmU7CisJCWdndHQtPmJhc2UuY2xl YW51cCA9IGk5MTVfZ21jaF9yZW1vdmU7CiAJfSBlbHNlIGlmIChJTlRFTF9JTkZPKGRldiktPmdl biA8IDgpIHsKLQkJZ3R0LT5ndHRfcHJvYmUgPSBnZW42X2dtY2hfcHJvYmU7Ci0JCWd0dC0+YmFz ZS5jbGVhbnVwID0gZ2VuNl9nbWNoX3JlbW92ZTsKKwkJZ2d0dC0+cHJvYmUgPSBnZW42X2dtY2hf cHJvYmU7CisJCWdndHQtPmJhc2UuY2xlYW51cCA9IGdlbjZfZ21jaF9yZW1vdmU7CiAJCWlmIChJ U19IQVNXRUxMKGRldikgJiYgZGV2X3ByaXYtPmVsbGNfc2l6ZSkKLQkJCWd0dC0+YmFzZS5wdGVf ZW5jb2RlID0gaXJpc19wdGVfZW5jb2RlOworCQkJZ2d0dC0+YmFzZS5wdGVfZW5jb2RlID0gaXJp c19wdGVfZW5jb2RlOwogCQllbHNlIGlmIChJU19IQVNXRUxMKGRldikpCi0JCQlndHQtPmJhc2Uu cHRlX2VuY29kZSA9IGhzd19wdGVfZW5jb2RlOworCQkJZ2d0dC0+YmFzZS5wdGVfZW5jb2RlID0g aHN3X3B0ZV9lbmNvZGU7CiAJCWVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2KSkKLQkJCWd0dC0+ YmFzZS5wdGVfZW5jb2RlID0gYnl0X3B0ZV9lbmNvZGU7CisJCQlnZ3R0LT5iYXNlLnB0ZV9lbmNv ZGUgPSBieXRfcHRlX2VuY29kZTsKIAkJZWxzZSBpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0g NykKLQkJCWd0dC0+YmFzZS5wdGVfZW5jb2RlID0gaXZiX3B0ZV9lbmNvZGU7CisJCQlnZ3R0LT5i YXNlLnB0ZV9lbmNvZGUgPSBpdmJfcHRlX2VuY29kZTsKIAkJZWxzZQotCQkJZ3R0LT5iYXNlLnB0 ZV9lbmNvZGUgPSBzbmJfcHRlX2VuY29kZTsKKwkJCWdndHQtPmJhc2UucHRlX2VuY29kZSA9IHNu Yl9wdGVfZW5jb2RlOwogCX0gZWxzZSB7Ci0JCWRldl9wcml2LT5ndHQuZ3R0X3Byb2JlID0gZ2Vu OF9nbWNoX3Byb2JlOwotCQlkZXZfcHJpdi0+Z3R0LmJhc2UuY2xlYW51cCA9IGdlbjZfZ21jaF9y ZW1vdmU7CisJCWdndHQtPnByb2JlID0gZ2VuOF9nbWNoX3Byb2JlOworCQlnZ3R0LT5iYXNlLmNs ZWFudXAgPSBnZW42X2dtY2hfcmVtb3ZlOwogCX0KIAotCWd0dC0+YmFzZS5kZXYgPSBkZXY7Ci0J Z3R0LT5iYXNlLmlzX2dndHQgPSB0cnVlOworCWdndHQtPmJhc2UuZGV2ID0gZGV2OworCWdndHQt PmJhc2UuaXNfZ2d0dCA9IHRydWU7CiAKLQlyZXQgPSBndHQtPmd0dF9wcm9iZShkZXYsICZndHQt PmJhc2UudG90YWwsICZndHQtPnN0b2xlbl9zaXplLAotCQkJICAgICAmZ3R0LT5tYXBwYWJsZV9i YXNlLCAmZ3R0LT5tYXBwYWJsZV9lbmQpOworCXJldCA9IGdndHQtPnByb2JlKGRldiwgJmdndHQt PmJhc2UudG90YWwsICZnZ3R0LT5zdG9sZW5fc2l6ZSwKKwkJCSAgJmdndHQtPm1hcHBhYmxlX2Jh c2UsICZnZ3R0LT5tYXBwYWJsZV9lbmQpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKQEAg LTMyMTQsOSArMzIxMyw5IEBAIGludCBpOTE1X2dlbV9ndHRfaW5pdChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQogCiAJLyogR01BRFIgaXMgdGhlIFBDSSBtbWlvIGFwZXJ0dXJlIGludG8gdGhlIGds b2JhbCBHVFQuICovCiAJRFJNX0lORk8oIk1lbW9yeSB1c2FibGUgYnkgZ3JhcGhpY3MgZGV2aWNl ID0gJWxsdU1cbiIsCi0JCSBndHQtPmJhc2UudG90YWwgPj4gMjApOwotCURSTV9ERUJVR19EUklW RVIoIkdNQURSIHNpemUgPSAlbGxkTVxuIiwgZ3R0LT5tYXBwYWJsZV9lbmQgPj4gMjApOwotCURS TV9ERUJVR19EUklWRVIoIkdUVCBzdG9sZW4gc2l6ZSA9ICV6ZE1cbiIsIGd0dC0+c3RvbGVuX3Np emUgPj4gMjApOworCQkgZ2d0dC0+YmFzZS50b3RhbCA+PiAyMCk7CisJRFJNX0RFQlVHX0RSSVZF UigiR01BRFIgc2l6ZSA9ICVsbGRNXG4iLCBnZ3R0LT5tYXBwYWJsZV9lbmQgPj4gMjApOworCURS TV9ERUJVR19EUklWRVIoIkdUVCBzdG9sZW4gc2l6ZSA9ICV6ZE1cbiIsIGdndHQtPnN0b2xlbl9z aXplID4+IDIwKTsKICNpZmRlZiBDT05GSUdfSU5URUxfSU9NTVUKIAlpZiAoaW50ZWxfaW9tbXVf Z2Z4X21hcHBlZCkKIAkJRFJNX0lORk8oIlZULWQgYWN0aXZlIGZvciBnZnggYWNjZXNzXG4iKTsK QEAgLTMyMzMsNyArMzIzMiw3IEBAIGludCBpOTE1X2dlbV9ndHRfaW5pdChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQogCXJldHVybiAwOwogCiBvdXRfZ3R0X2NsZWFudXA6Ci0JZ3R0LT5iYXNlLmNs ZWFudXAoJmRldl9wcml2LT5ndHQuYmFzZSk7CisJZ2d0dC0+YmFzZS5jbGVhbnVwKCZkZXZfcHJp di0+Z2d0dC5iYXNlKTsKIAogCXJldHVybiByZXQ7CiB9CkBAIC0zMjQ5LDEzICszMjQ4LDEzIEBA IHZvaWQgaTkxNV9nZW1fcmVzdG9yZV9ndHRfbWFwcGluZ3Moc3RydWN0IGRybV9kZXZpY2UgKmRl dikKIAlpOTE1X2NoZWNrX2FuZF9jbGVhcl9mYXVsdHMoZGV2KTsKIAogCS8qIEZpcnN0IGZpbGwg b3VyIHBvcnRpb24gb2YgdGhlIEdUVCB3aXRoIHNjcmF0Y2ggcGFnZXMgKi8KLQlkZXZfcHJpdi0+ Z3R0LmJhc2UuY2xlYXJfcmFuZ2UoJmRldl9wcml2LT5ndHQuYmFzZSwKLQkJCQkgICAgICAgZGV2 X3ByaXYtPmd0dC5iYXNlLnN0YXJ0LAotCQkJCSAgICAgICBkZXZfcHJpdi0+Z3R0LmJhc2UudG90 YWwsCisJZGV2X3ByaXYtPmdndHQuYmFzZS5jbGVhcl9yYW5nZSgmZGV2X3ByaXYtPmdndHQuYmFz ZSwKKwkJCQkgICAgICAgZGV2X3ByaXYtPmdndHQuYmFzZS5zdGFydCwKKwkJCQkgICAgICAgZGV2 X3ByaXYtPmdndHQuYmFzZS50b3RhbCwKIAkJCQkgICAgICAgdHJ1ZSk7CiAKIAkvKiBDYWNoZSBm bHVzaCBvYmplY3RzIGJvdW5kIGludG8gR0dUVCBhbmQgcmViaW5kIHRoZW0uICovCi0Jdm0gPSAm ZGV2X3ByaXYtPmd0dC5iYXNlOworCXZtID0gJmRldl9wcml2LT5nZ3R0LmJhc2U7CiAJbGlzdF9m b3JfZWFjaF9lbnRyeShvYmosICZkZXZfcHJpdi0+bW0uYm91bmRfbGlzdCwgZ2xvYmFsX2xpc3Qp IHsKIAkJZmx1c2ggPSBmYWxzZTsKIAkJbGlzdF9mb3JfZWFjaF9lbnRyeSh2bWEsICZvYmotPnZt YV9saXN0LCBvYmpfbGluaykgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fZ3R0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaAppbmRleCBk YzIwOGMwLi4yOTA2YmIxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9ndHQuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaApAQCAtMzM5 LDcgKzMzOSw3IEBAIHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgewogICogYW5kIGNvcnJlY3Qg KGluIGNhc2VzIGxpa2Ugc3dpenpsaW5nKS4gVGhhdCByZWdpb24gaXMgcmVmZXJyZWQgdG8gYXMg R01BRFIgaW4KICAqIHRoZSBzcGVjLgogICovCi1zdHJ1Y3QgaTkxNV9ndHQgeworc3RydWN0IGk5 MTVfZ2d0dCB7CiAJc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSBiYXNlOwogCiAJc2l6ZV90IHN0 b2xlbl9zaXplOwkJLyogVG90YWwgc2l6ZSBvZiBzdG9sZW4gbWVtb3J5ICovCkBAIC0zNTcsMTAg KzM1Nyw5IEBAIHN0cnVjdCBpOTE1X2d0dCB7CiAKIAlpbnQgbXRycjsKIAotCS8qIGdsb2JhbCBn dHQgb3BzICovCi0JaW50ICgqZ3R0X3Byb2JlKShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1NjQg Kmd0dF90b3RhbCwKLQkJCSAgc2l6ZV90ICpzdG9sZW4sIHBoeXNfYWRkcl90ICptYXBwYWJsZV9i YXNlLAotCQkJICB1NjQgKm1hcHBhYmxlX2VuZCk7CisJaW50ICgqcHJvYmUpKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIHU2NCAqZ3R0X3RvdGFsLAorCQkgICAgIHNpemVfdCAqc3RvbGVuLCBwaHlz X2FkZHJfdCAqbWFwcGFibGVfYmFzZSwKKwkJICAgICB1NjQgKm1hcHBhYmxlX2VuZCk7CiB9Owog CiBzdHJ1Y3QgaTkxNV9od19wcGd0dCB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9zdG9sZW4uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xl bi5jCmluZGV4IDJlNmU5ZmIuLmRlODkxYzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX3N0b2xlbi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X3N0b2xlbi5jCkBAIC03NCw3ICs3NCw3IEBAIGludCBpOTE1X2dlbV9zdG9sZW5faW5zZXJ0X25v ZGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogewogCXJldHVybiBpOTE1X2dl bV9zdG9sZW5faW5zZXJ0X25vZGVfaW5fcmFuZ2UoZGV2X3ByaXYsIG5vZGUsIHNpemUsCiAJCQkJ CWFsaWdubWVudCwgMCwKLQkJCQkJZGV2X3ByaXYtPmd0dC5zdG9sZW5fdXNhYmxlX3NpemUpOwor CQkJCQlkZXZfcHJpdi0+Z2d0dC5zdG9sZW5fdXNhYmxlX3NpemUpOwogfQogCiB2b2lkIGk5MTVf Z2VtX3N0b2xlbl9yZW1vdmVfbm9kZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs CkBAIC0xMzQsNyArMTM0LDcgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgaTkxNV9zdG9sZW5fdG9f cGh5c2ljYWwoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJCQkJIEk4NVhfRFJCMywgJnRtcCk7 CiAJCXRvbSA9IHRtcCAqIE1CKDMyKTsKIAotCQliYXNlID0gdG9tIC0gdHNlZ19zaXplIC0gZGV2 X3ByaXYtPmd0dC5zdG9sZW5fc2l6ZTsKKwkJYmFzZSA9IHRvbSAtIHRzZWdfc2l6ZSAtIGRldl9w cml2LT5nZ3R0LnN0b2xlbl9zaXplOwogCX0gZWxzZSBpZiAoSVNfODQ1RyhkZXYpKSB7CiAJCXUz MiB0c2VnX3NpemUgPSAwOwogCQl1MzIgdG9tOwpAQCAtMTU4LDcgKzE1OCw3IEBAIHN0YXRpYyB1 bnNpZ25lZCBsb25nIGk5MTVfc3RvbGVuX3RvX3BoeXNpY2FsKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCiAJCQkJCSBJODMwX0RSQjMsICZ0bXApOwogCQl0b20gPSB0bXAgKiBNQigzMik7CiAKLQkJ YmFzZSA9IHRvbSAtIHRzZWdfc2l6ZSAtIGRldl9wcml2LT5ndHQuc3RvbGVuX3NpemU7CisJCWJh c2UgPSB0b20gLSB0c2VnX3NpemUgLSBkZXZfcHJpdi0+Z2d0dC5zdG9sZW5fc2l6ZTsKIAl9IGVs c2UgaWYgKElTX0k4MzAoZGV2KSkgewogCQl1MzIgdHNlZ19zaXplID0gMDsKIAkJdTMyIHRvbTsK QEAgLTE3OCw3ICsxNzgsNyBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBpOTE1X3N0b2xlbl90b19w aHlzaWNhbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQkJCQkgSTgzMF9EUkIzLCAmdG1wKTsK IAkJdG9tID0gdG1wICogTUIoMzIpOwogCi0JCWJhc2UgPSB0b20gLSB0c2VnX3NpemUgLSBkZXZf cHJpdi0+Z3R0LnN0b2xlbl9zaXplOworCQliYXNlID0gdG9tIC0gdHNlZ19zaXplIC0gZGV2X3By aXYtPmdndHQuc3RvbGVuX3NpemU7CiAJfQogCiAJaWYgKGJhc2UgPT0gMCkKQEAgLTE4OSw4ICsx ODksOCBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBpOTE1X3N0b2xlbl90b19waHlzaWNhbChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KQogCQlzdHJ1Y3QgewogCQkJdTMyIHN0YXJ0LCBlbmQ7CiAJCX0g c3RvbGVuWzJdID0gewotCQkJeyAuc3RhcnQgPSBiYXNlLCAuZW5kID0gYmFzZSArIGRldl9wcml2 LT5ndHQuc3RvbGVuX3NpemUsIH0sCi0JCQl7IC5zdGFydCA9IGJhc2UsIC5lbmQgPSBiYXNlICsg ZGV2X3ByaXYtPmd0dC5zdG9sZW5fc2l6ZSwgfSwKKwkJCXsgLnN0YXJ0ID0gYmFzZSwgLmVuZCA9 IGJhc2UgKyBkZXZfcHJpdi0+Z2d0dC5zdG9sZW5fc2l6ZSwgfSwKKwkJCXsgLnN0YXJ0ID0gYmFz ZSwgLmVuZCA9IGJhc2UgKyBkZXZfcHJpdi0+Z2d0dC5zdG9sZW5fc2l6ZSwgfSwKIAkJfTsKIAkJ dTY0IGd0dF9zdGFydCwgZ3R0X2VuZDsKIApAQCAtMjAwLDcgKzIwMCw3IEBAIHN0YXRpYyB1bnNp Z25lZCBsb25nIGk5MTVfc3RvbGVuX3RvX3BoeXNpY2FsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp CiAJCQkJKGd0dF9zdGFydCAmIFBHVEJMX0FERFJFU1NfSElfTUFTSykgPDwgMjg7CiAJCWVsc2UK IAkJCWd0dF9zdGFydCAmPSBQR1RCTF9BRERSRVNTX0xPX01BU0s7Ci0JCWd0dF9lbmQgPSBndHRf c3RhcnQgKyBndHRfdG90YWxfZW50cmllcyhkZXZfcHJpdi0+Z3R0KSAqIDQ7CisJCWd0dF9lbmQg PSBndHRfc3RhcnQgKyBndHRfdG90YWxfZW50cmllcyhkZXZfcHJpdi0+Z2d0dCkgKiA0OwogCiAJ CWlmIChndHRfc3RhcnQgPj0gc3RvbGVuWzBdLnN0YXJ0ICYmIGd0dF9zdGFydCA8IHN0b2xlblsw XS5lbmQpCiAJCQlzdG9sZW5bMF0uZW5kID0gZ3R0X3N0YXJ0OwpAQCAtMjExLDEwICsyMTEsMTAg QEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgaTkxNV9zdG9sZW5fdG9fcGh5c2ljYWwoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKIAkJaWYgKHN0b2xlblswXS5lbmQgLSBzdG9sZW5bMF0uc3RhcnQgPgog CQkgICAgc3RvbGVuWzFdLmVuZCAtIHN0b2xlblsxXS5zdGFydCkgewogCQkJYmFzZSA9IHN0b2xl blswXS5zdGFydDsKLQkJCWRldl9wcml2LT5ndHQuc3RvbGVuX3NpemUgPSBzdG9sZW5bMF0uZW5k IC0gc3RvbGVuWzBdLnN0YXJ0OworCQkJZGV2X3ByaXYtPmdndHQuc3RvbGVuX3NpemUgPSBzdG9s ZW5bMF0uZW5kIC0gc3RvbGVuWzBdLnN0YXJ0OwogCQl9IGVsc2UgewogCQkJYmFzZSA9IHN0b2xl blsxXS5zdGFydDsKLQkJCWRldl9wcml2LT5ndHQuc3RvbGVuX3NpemUgPSBzdG9sZW5bMV0uZW5k IC0gc3RvbGVuWzFdLnN0YXJ0OworCQkJZGV2X3ByaXYtPmdndHQuc3RvbGVuX3NpemUgPSBzdG9s ZW5bMV0uZW5kIC0gc3RvbGVuWzFdLnN0YXJ0OwogCQl9CiAKIAkJaWYgKHN0b2xlblswXS5zdGFy dCAhPSBzdG9sZW5bMV0uc3RhcnQgfHwKQEAgLTIyMyw3ICsyMjMsNyBAQCBzdGF0aWMgdW5zaWdu ZWQgbG9uZyBpOTE1X3N0b2xlbl90b19waHlzaWNhbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQog CQkJCSAgICAgICh1bnNpZ25lZCBsb25nIGxvbmcpIGd0dF9zdGFydCwKIAkJCQkgICAgICAodW5z aWduZWQgbG9uZyBsb25nKSBndHRfZW5kIC0gMSk7CiAJCQlEUk1fREVCVUdfS01TKCJTdG9sZW4g bWVtb3J5IGFkanVzdGVkIHRvIDB4JXgtMHgleFxuIiwKLQkJCQkgICAgICBiYXNlLCBiYXNlICsg KHUzMikgZGV2X3ByaXYtPmd0dC5zdG9sZW5fc2l6ZSAtIDEpOworCQkJCSAgICAgIGJhc2UsIGJh c2UgKyAodTMyKSBkZXZfcHJpdi0+Z2d0dC5zdG9sZW5fc2l6ZSAtIDEpOwogCQl9CiAJfQogCkBA IC0yMzMsNyArMjMzLDcgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgaTkxNV9zdG9sZW5fdG9fcGh5 c2ljYWwoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkgKiBrZXJuZWwuIFNvIGlmIHRoZSByZWdp b24gaXMgYWxyZWFkeSBtYXJrZWQgYXMgYnVzeSwgc29tZXRoaW5nCiAJICogaXMgc2VyaW91c2x5 IHdyb25nLgogCSAqLwotCXIgPSBkZXZtX3JlcXVlc3RfbWVtX3JlZ2lvbihkZXYtPmRldiwgYmFz ZSwgZGV2X3ByaXYtPmd0dC5zdG9sZW5fc2l6ZSwKKwlyID0gZGV2bV9yZXF1ZXN0X21lbV9yZWdp b24oZGV2LT5kZXYsIGJhc2UsIGRldl9wcml2LT5nZ3R0LnN0b2xlbl9zaXplLAogCQkJCSAgICAi R3JhcGhpY3MgU3RvbGVuIE1lbW9yeSIpOwogCWlmIChyID09IE5VTEwpIHsKIAkJLyoKQEAgLTI0 NSw3ICsyNDUsNyBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBpOTE1X3N0b2xlbl90b19waHlzaWNh bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQkgKiByZXNlcnZhdGlvbiBzdGFydGluZyBmcm9t IDEgaW5zdGVhZCBvZiAwLgogCQkgKi8KIAkJciA9IGRldm1fcmVxdWVzdF9tZW1fcmVnaW9uKGRl di0+ZGV2LCBiYXNlICsgMSwKLQkJCQkJICAgIGRldl9wcml2LT5ndHQuc3RvbGVuX3NpemUgLSAx LAorCQkJCQkgICAgZGV2X3ByaXYtPmdndHQuc3RvbGVuX3NpemUgLSAxLAogCQkJCQkgICAgIkdy YXBoaWNzIFN0b2xlbiBNZW1vcnkiKTsKIAkJLyoKIAkJICogR0VOMyBmaXJtd2FyZSBsaWtlcyB0 byBzbWFzaCBwY2kgYnJpZGdlcyBpbnRvIHRoZSBzdG9sZW4KQEAgLTI1Myw3ICsyNTMsNyBAQCBz dGF0aWMgdW5zaWduZWQgbG9uZyBpOTE1X3N0b2xlbl90b19waHlzaWNhbChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQogCQkgKi8KIAkJaWYgKHIgPT0gTlVMTCAmJiAhSVNfR0VOMyhkZXYpKSB7CiAJ CQlEUk1fRVJST1IoImNvbmZsaWN0IGRldGVjdGVkIHdpdGggc3RvbGVuIHJlZ2lvbjogWzB4JTA4 eCAtIDB4JTA4eF1cbiIsCi0JCQkJICBiYXNlLCBiYXNlICsgKHVpbnQzMl90KWRldl9wcml2LT5n dHQuc3RvbGVuX3NpemUpOworCQkJCSAgYmFzZSwgYmFzZSArICh1aW50MzJfdClkZXZfcHJpdi0+ Z2d0dC5zdG9sZW5fc2l6ZSk7CiAJCQliYXNlID0gMDsKIAkJfQogCX0KQEAgLTI3OCw3ICsyNzgs NyBAQCBzdGF0aWMgdm9pZCBnNHhfZ2V0X3N0b2xlbl9yZXNlcnZlZChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJICAgICBDVEdfU1RPTEVOX1JFU0VSVkVEIDoKIAkJCQkg ICAgIEVMS19TVE9MRU5fUkVTRVJWRUQpOwogCXVuc2lnbmVkIGxvbmcgc3RvbGVuX3RvcCA9IGRl dl9wcml2LT5tbS5zdG9sZW5fYmFzZSArCi0JCWRldl9wcml2LT5ndHQuc3RvbGVuX3NpemU7CisJ CWRldl9wcml2LT5nZ3R0LnN0b2xlbl9zaXplOwogCiAJKmJhc2UgPSAocmVnX3ZhbCAmIEc0WF9T VE9MRU5fUkVTRVJWRURfQUREUjJfTUFTSykgPDwgMTY7CiAKQEAgLTM3Miw3ICszNzIsNyBAQCBz dGF0aWMgdm9pZCBiZHdfZ2V0X3N0b2xlbl9yZXNlcnZlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCiAJdWludDMyX3QgcmVnX3ZhbCA9IEk5MTVfUkVBRChHRU42X1NUT0xFTl9S RVNFUlZFRCk7CiAJdW5zaWduZWQgbG9uZyBzdG9sZW5fdG9wOwogCi0Jc3RvbGVuX3RvcCA9IGRl dl9wcml2LT5tbS5zdG9sZW5fYmFzZSArIGRldl9wcml2LT5ndHQuc3RvbGVuX3NpemU7CisJc3Rv bGVuX3RvcCA9IGRldl9wcml2LT5tbS5zdG9sZW5fYmFzZSArIGRldl9wcml2LT5nZ3R0LnN0b2xl bl9zaXplOwogCiAJKmJhc2UgPSByZWdfdmFsICYgR0VONl9TVE9MRU5fUkVTRVJWRURfQUREUl9N QVNLOwogCkBAIC00MDEsMTQgKzQwMSwxNCBAQCBpbnQgaTkxNV9nZW1faW5pdF9zdG9sZW4oc3Ry dWN0IGRybV9kZXZpY2UgKmRldikKIAl9CiAjZW5kaWYKIAotCWlmIChkZXZfcHJpdi0+Z3R0LnN0 b2xlbl9zaXplID09IDApCisJaWYgKGRldl9wcml2LT5nZ3R0LnN0b2xlbl9zaXplID09IDApCiAJ CXJldHVybiAwOwogCiAJZGV2X3ByaXYtPm1tLnN0b2xlbl9iYXNlID0gaTkxNV9zdG9sZW5fdG9f cGh5c2ljYWwoZGV2KTsKIAlpZiAoZGV2X3ByaXYtPm1tLnN0b2xlbl9iYXNlID09IDApCiAJCXJl dHVybiAwOwogCi0Jc3RvbGVuX3RvcCA9IGRldl9wcml2LT5tbS5zdG9sZW5fYmFzZSArIGRldl9w cml2LT5ndHQuc3RvbGVuX3NpemU7CisJc3RvbGVuX3RvcCA9IGRldl9wcml2LT5tbS5zdG9sZW5f YmFzZSArIGRldl9wcml2LT5nZ3R0LnN0b2xlbl9zaXplOwogCiAJc3dpdGNoIChJTlRFTF9JTkZP KGRldl9wcml2KS0+Z2VuKSB7CiAJY2FzZSAyOgpAQCAtNDU4LDE4ICs0NTgsMTggQEAgaW50IGk5 MTVfZ2VtX2luaXRfc3RvbGVuKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCXJldHVybiAwOwog CX0KIAotCWRldl9wcml2LT5ndHQuc3RvbGVuX3Jlc2VydmVkX2Jhc2UgPSByZXNlcnZlZF9iYXNl OwotCWRldl9wcml2LT5ndHQuc3RvbGVuX3Jlc2VydmVkX3NpemUgPSByZXNlcnZlZF9zaXplOwor CWRldl9wcml2LT5nZ3R0LnN0b2xlbl9yZXNlcnZlZF9iYXNlID0gcmVzZXJ2ZWRfYmFzZTsKKwlk ZXZfcHJpdi0+Z2d0dC5zdG9sZW5fcmVzZXJ2ZWRfc2l6ZSA9IHJlc2VydmVkX3NpemU7CiAKIAkv KiBJdCBpcyBwb3NzaWJsZSBmb3IgdGhlIHJlc2VydmVkIGFyZWEgdG8gZW5kIGJlZm9yZSB0aGUg ZW5kIG9mIHN0b2xlbgogCSAqIG1lbW9yeSwgc28ganVzdCBjb25zaWRlciB0aGUgc3RhcnQuICov CiAJcmVzZXJ2ZWRfdG90YWwgPSBzdG9sZW5fdG9wIC0gcmVzZXJ2ZWRfYmFzZTsKIAogCURSTV9E RUJVR19LTVMoIk1lbW9yeSByZXNlcnZlZCBmb3IgZ3JhcGhpY3MgZGV2aWNlOiAlenVLLCB1c2Fi bGU6ICVsdUtcbiIsCi0JCSAgICAgIGRldl9wcml2LT5ndHQuc3RvbGVuX3NpemUgPj4gMTAsCi0J CSAgICAgIChkZXZfcHJpdi0+Z3R0LnN0b2xlbl9zaXplIC0gcmVzZXJ2ZWRfdG90YWwpID4+IDEw KTsKKwkJICAgICAgZGV2X3ByaXYtPmdndHQuc3RvbGVuX3NpemUgPj4gMTAsCisJCSAgICAgIChk ZXZfcHJpdi0+Z2d0dC5zdG9sZW5fc2l6ZSAtIHJlc2VydmVkX3RvdGFsKSA+PiAxMCk7CiAKLQlk ZXZfcHJpdi0+Z3R0LnN0b2xlbl91c2FibGVfc2l6ZSA9IGRldl9wcml2LT5ndHQuc3RvbGVuX3Np emUgLQorCWRldl9wcml2LT5nZ3R0LnN0b2xlbl91c2FibGVfc2l6ZSA9IGRldl9wcml2LT5nZ3R0 LnN0b2xlbl9zaXplIC0KIAkJCQkJICAgcmVzZXJ2ZWRfdG90YWw7CiAKIAkvKgpAQCAtNDgzLDcg KzQ4Myw3IEBAIGludCBpOTE1X2dlbV9pbml0X3N0b2xlbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQogCSAqIGk5MTVfZ2VtX3N0b2xlbl9pbnNlcnRfbm9kZV9pbl9yYW5nZSgpLiBXZSBtYXkgd2Fu dCB0byBmaXggdGhlIGZiY29uCiAJICogcHJvYmxlbSBsYXRlci4KIAkgKi8KLQlkcm1fbW1faW5p dCgmZGV2X3ByaXYtPm1tLnN0b2xlbiwgMCwgZGV2X3ByaXYtPmd0dC5zdG9sZW5fdXNhYmxlX3Np emUpOworCWRybV9tbV9pbml0KCZkZXZfcHJpdi0+bW0uc3RvbGVuLCAwLCBkZXZfcHJpdi0+Z2d0 dC5zdG9sZW5fdXNhYmxlX3NpemUpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC00OTcsNyArNDk3LDcg QEAgaTkxNV9wYWdlc19jcmVhdGVfZm9yX3N0b2xlbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAog CXN0cnVjdCBzY2F0dGVybGlzdCAqc2c7CiAKIAlEUk1fREVCVUdfRFJJVkVSKCJvZmZzZXQ9MHgl eCwgc2l6ZT0lZFxuIiwgb2Zmc2V0LCBzaXplKTsKLQlCVUdfT04ob2Zmc2V0ID4gZGV2X3ByaXYt Pmd0dC5zdG9sZW5fc2l6ZSAtIHNpemUpOworCUJVR19PTihvZmZzZXQgPiBkZXZfcHJpdi0+Z2d0 dC5zdG9sZW5fc2l6ZSAtIHNpemUpOwogCiAJLyogV2UgaGlkZSB0aGF0IHdlIGhhdmUgbm8gc3Ry dWN0IHBhZ2UgYmFja2luZyBvdXIgc3RvbGVuIG9iamVjdAogCSAqIGJ5IHdyYXBwaW5nIHRoZSBj b250aWd1b3VzIHBoeXNpY2FsIGFsbG9jYXRpb24gd2l0aCBhIGZha2UKQEAgLTYyOSw3ICs2Mjks NyBAQCBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbl9mb3JfcHJlYWxsb2NhdGVkKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJCSAgICAgICB1MzIgc2l6ZSkKIHsKIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBpOTE1 X2FkZHJlc3Nfc3BhY2UgKmdndHQgPSAmZGV2X3ByaXYtPmd0dC5iYXNlOworCXN0cnVjdCBpOTE1 X2FkZHJlc3Nfc3BhY2UgKmdndHQgPSAmZGV2X3ByaXYtPmdndHQuYmFzZTsKIAlzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqb2JqOwogCXN0cnVjdCBkcm1fbW1fbm9kZSAqc3RvbGVuOwogCXN0 cnVjdCBpOTE1X3ZtYSAqdm1hOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9ncHVfZXJyb3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKaW5k ZXggMzQzOTdhNi4uZGI4NjAwYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9ncHVfZXJyb3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5j CkBAIC02NTMsNyArNjUzLDcgQEAgaTkxNV9lcnJvcl9vYmplY3RfY3JlYXRlKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJdm1hID0gaTkxNV9nZW1fb2JqX3RvX2dndHQoc3Jj KTsKIAl1c2VfZ2d0dCA9IChzcmMtPmNhY2hlX2xldmVsID09IEk5MTVfQ0FDSEVfTk9ORSAmJgog CQkgICB2bWEgJiYgKHZtYS0+Ym91bmQgJiBHTE9CQUxfQklORCkgJiYKLQkJICAgcmVsb2Nfb2Zm c2V0ICsgbnVtX3BhZ2VzICogUEFHRV9TSVpFIDw9IGRldl9wcml2LT5ndHQubWFwcGFibGVfZW5k KTsKKwkJICAgcmVsb2Nfb2Zmc2V0ICsgbnVtX3BhZ2VzICogUEFHRV9TSVpFIDw9IGRldl9wcml2 LT5nZ3R0Lm1hcHBhYmxlX2VuZCk7CiAKIAkvKiBDYW5ub3QgYWNjZXNzIHN0b2xlbiBhZGRyZXNz IGRpcmVjdGx5LCB0cnkgdG8gdXNlIHRoZSBhcGVydHVyZSAqLwogCWlmIChzcmMtPnN0b2xlbikg ewpAQCAtNjYzLDcgKzY2Myw3IEBAIGk5MTVfZXJyb3Jfb2JqZWN0X2NyZWF0ZShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQlnb3RvIHVud2luZDsKIAogCQlyZWxvY19vZmZz ZXQgPSBpOTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQoc3JjKTsKLQkJaWYgKHJlbG9jX29mZnNldCAr IG51bV9wYWdlcyAqIFBBR0VfU0laRSA+IGRldl9wcml2LT5ndHQubWFwcGFibGVfZW5kKQorCQlp ZiAocmVsb2Nfb2Zmc2V0ICsgbnVtX3BhZ2VzICogUEFHRV9TSVpFID4gZGV2X3ByaXYtPmdndHQu bWFwcGFibGVfZW5kKQogCQkJZ290byB1bndpbmQ7CiAJfQogCkBAIC02ODksNyArNjg5LDcgQEAg aTkxNV9lcnJvcl9vYmplY3RfY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKIAkJCSAqIGNhcHR1cmVzIHdoYXQgdGhlIEdQVSByZWFkLgogCQkJICovCiAKLQkJCXMgPSBp b19tYXBwaW5nX21hcF9hdG9taWNfd2MoZGV2X3ByaXYtPmd0dC5tYXBwYWJsZSwKKwkJCXMgPSBp b19tYXBwaW5nX21hcF9hdG9taWNfd2MoZGV2X3ByaXYtPmdndHQubWFwcGFibGUsCiAJCQkJCQkg ICAgIHJlbG9jX29mZnNldCk7CiAJCQltZW1jcHlfZnJvbWlvKGQsIHMsIFBBR0VfU0laRSk7CiAJ CQlpb19tYXBwaW5nX3VubWFwX2F0b21pYyhzKTsKQEAgLTcyMiw3ICs3MjIsNyBAQCB1bndpbmQ6 CiAJcmV0dXJuIE5VTEw7CiB9CiAjZGVmaW5lIGk5MTVfZXJyb3JfZ2d0dF9vYmplY3RfY3JlYXRl KGRldl9wcml2LCBzcmMpIFwKLQlpOTE1X2Vycm9yX29iamVjdF9jcmVhdGUoKGRldl9wcml2KSwg KHNyYyksICYoZGV2X3ByaXYpLT5ndHQuYmFzZSkKKwlpOTE1X2Vycm9yX29iamVjdF9jcmVhdGUo KGRldl9wcml2KSwgKHNyYyksICYoZGV2X3ByaXYpLT5nZ3R0LmJhc2UpCiAKIHN0YXRpYyB2b2lk IGNhcHR1cmVfYm8oc3RydWN0IGRybV9pOTE1X2Vycm9yX2J1ZmZlciAqZXJyLAogCQkgICAgICAg c3RydWN0IGk5MTVfdm1hICp2bWEpCkBAIC0xMDM4LDcgKzEwMzgsNyBAQCBzdGF0aWMgdm9pZCBp OTE1X2dlbV9yZWNvcmRfcmluZ3Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAogCQkJdm0gPSBy ZXF1ZXN0LT5jdHggJiYgcmVxdWVzdC0+Y3R4LT5wcGd0dCA/CiAJCQkJJnJlcXVlc3QtPmN0eC0+ cHBndHQtPmJhc2UgOgotCQkJCSZkZXZfcHJpdi0+Z3R0LmJhc2U7CisJCQkJJmRldl9wcml2LT5n Z3R0LmJhc2U7CiAKIAkJCS8qIFdlIG5lZWQgdG8gY29weSB0aGVzZSB0byBhbiBhbm9ueW1vdXMg YnVmZmVyCiAJCQkgKiBhcyB0aGUgc2ltcGxlc3QgbWV0aG9kIHRvIGF2b2lkIGJlaW5nIG92ZXJ3 cml0dGVuCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZncHUuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdmdwdS5jCmluZGV4IGRlYTc0MjkuLjI4OTFiY2YgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdmdwdS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfdmdwdS5jCkBAIC0xODEsNyArMTgxLDcgQEAgc3RhdGljIGludCB2 Z3RfYmFsbG9vbl9zcGFjZShzdHJ1Y3QgZHJtX21tICptbSwKIGludCBpbnRlbF92Z3RfYmFsbG9v bihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKLQlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICpnZ3R0 X3ZtID0gJmRldl9wcml2LT5ndHQuYmFzZTsKKwlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICpn Z3R0X3ZtID0gJmRldl9wcml2LT5nZ3R0LmJhc2U7CiAJdW5zaWduZWQgbG9uZyBnZ3R0X3ZtX2Vu ZCA9IGdndHRfdm0tPnN0YXJ0ICsgZ2d0dF92bS0+dG90YWw7CiAKIAl1bnNpZ25lZCBsb25nIG1h cHBhYmxlX2Jhc2UsIG1hcHBhYmxlX3NpemUsIG1hcHBhYmxlX2VuZDsKQEAgLTIwMywxOCArMjAz LDE4IEBAIGludCBpbnRlbF92Z3RfYmFsbG9vbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQkg dW5tYXBwYWJsZV9iYXNlLCB1bm1hcHBhYmxlX3NpemUgLyAxMDI0KTsKIAogCWlmIChtYXBwYWJs ZV9iYXNlIDwgZ2d0dF92bS0+c3RhcnQgfHwKLQkgICAgbWFwcGFibGVfZW5kID4gZGV2X3ByaXYt Pmd0dC5tYXBwYWJsZV9lbmQgfHwKLQkgICAgdW5tYXBwYWJsZV9iYXNlIDwgZGV2X3ByaXYtPmd0 dC5tYXBwYWJsZV9lbmQgfHwKKwkgICAgbWFwcGFibGVfZW5kID4gZGV2X3ByaXYtPmdndHQubWFw cGFibGVfZW5kIHx8CisJICAgIHVubWFwcGFibGVfYmFzZSA8IGRldl9wcml2LT5nZ3R0Lm1hcHBh YmxlX2VuZCB8fAogCSAgICB1bm1hcHBhYmxlX2VuZCA+IGdndHRfdm1fZW5kKSB7CiAJCURSTV9F UlJPUigiSW52YWxpZCBiYWxsb29uaW5nIGNvbmZpZ3VyYXRpb24hXG4iKTsKIAkJcmV0dXJuIC1F SU5WQUw7CiAJfQogCiAJLyogVW5tYXBwYWJsZSBncmFwaGljIG1lbW9yeSBiYWxsb29uaW5nICov Ci0JaWYgKHVubWFwcGFibGVfYmFzZSA+IGRldl9wcml2LT5ndHQubWFwcGFibGVfZW5kKSB7CisJ aWYgKHVubWFwcGFibGVfYmFzZSA+IGRldl9wcml2LT5nZ3R0Lm1hcHBhYmxlX2VuZCkgewogCQly ZXQgPSB2Z3RfYmFsbG9vbl9zcGFjZSgmZ2d0dF92bS0+bW0sCiAJCQkJCSZibF9pbmZvLnNwYWNl WzJdLAotCQkJCQlkZXZfcHJpdi0+Z3R0Lm1hcHBhYmxlX2VuZCwKKwkJCQkJZGV2X3ByaXYtPmdn dHQubWFwcGFibGVfZW5kLAogCQkJCQl1bm1hcHBhYmxlX2Jhc2UpOwogCiAJCWlmIChyZXQpCkBA IC0yNDQsMTEgKzI0NCwxMSBAQCBpbnQgaW50ZWxfdmd0X2JhbGxvb24oc3RydWN0IGRybV9kZXZp Y2UgKmRldikKIAkJCWdvdG8gZXJyOwogCX0KIAotCWlmIChtYXBwYWJsZV9lbmQgPCBkZXZfcHJp di0+Z3R0Lm1hcHBhYmxlX2VuZCkgeworCWlmIChtYXBwYWJsZV9lbmQgPCBkZXZfcHJpdi0+Z2d0 dC5tYXBwYWJsZV9lbmQpIHsKIAkJcmV0ID0gdmd0X2JhbGxvb25fc3BhY2UoJmdndHRfdm0tPm1t LAogCQkJCQkmYmxfaW5mby5zcGFjZVsxXSwKIAkJCQkJbWFwcGFibGVfZW5kLAotCQkJCQlkZXZf cHJpdi0+Z3R0Lm1hcHBhYmxlX2VuZCk7CisJCQkJCWRldl9wcml2LT5nZ3R0Lm1hcHBhYmxlX2Vu ZCk7CiAKIAkJaWYgKHJldCkKIAkJCWdvdG8gZXJyOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jCmluZGV4IGFiMWVjOGQuLjc0YjAxNjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMKQEAgLTI1MDMsNyArMjUwMyw3IEBAIGludGVsX2FsbG9jX2luaXRpYWxfcGxhbmVf b2JqKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCS8qIElmIHRoZSBGQiBpcyB0b28gYmlnLCBq dXN0IGRvbid0IHVzZSBpdCBzaW5jZSBmYmRldiBpcyBub3QgdmVyeQogCSAqIGltcG9ydGFudCBh bmQgd2Ugc2hvdWxkIHByb2JhYmx5IHVzZSB0aGF0IHNwYWNlIHdpdGggRkJDIG9yIG90aGVyCiAJ ICogZmVhdHVyZXMuICovCi0JaWYgKHNpemVfYWxpZ25lZCAqIDIgPiBkZXZfcHJpdi0+Z3R0LnN0 b2xlbl91c2FibGVfc2l6ZSkKKwlpZiAoc2l6ZV9hbGlnbmVkICogMiA+IGRldl9wcml2LT5nZ3R0 LnN0b2xlbl91c2FibGVfc2l6ZSkKIAkJcmV0dXJuIGZhbHNlOwogCiAJbXV0ZXhfbG9jaygmZGV2 LT5zdHJ1Y3RfbXV0ZXgpOwpAQCAtMTUzMzksNyArMTUzMzksNyBAQCB2b2lkIGludGVsX21vZGVz ZXRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQlkZXYtPm1vZGVfY29uZmlnLmN1cnNv cl9oZWlnaHQgPSBNQVhfQ1VSU09SX0hFSUdIVDsKIAl9CiAKLQlkZXYtPm1vZGVfY29uZmlnLmZi X2Jhc2UgPSBkZXZfcHJpdi0+Z3R0Lm1hcHBhYmxlX2Jhc2U7CisJZGV2LT5tb2RlX2NvbmZpZy5m Yl9iYXNlID0gZGV2X3ByaXYtPmdndHQubWFwcGFibGVfYmFzZTsKIAogCURSTV9ERUJVR19LTVMo IiVkIGRpc3BsYXkgcGlwZSVzIGF2YWlsYWJsZS5cbiIsCiAJCSAgICAgIElOVEVMX0lORk8oZGV2 KS0+bnVtX3BpcGVzLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJj LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYwppbmRleCAwZjA0OTJmLi4yZTU3 MWY1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYwpAQCAtNTE2LDkgKzUxNiw5IEBAIHN0YXRp YyBpbnQgZmluZF9jb21wcmVzc2lvbl90aHJlc2hvbGQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAogCSAqIHVuZGVycnVucywgZXZlbiBpZiB0aGF0IHJhbmdlIGlzIG5vdCByZXNl cnZlZCBieSB0aGUgQklPUy4gKi8KIAlpZiAoSVNfQlJPQURXRUxMKGRldl9wcml2KSB8fAogCSAg ICBJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19LQUJZTEFLRShkZXZfcHJpdikpCi0JCWVuZCA9 IGRldl9wcml2LT5ndHQuc3RvbGVuX3NpemUgLSA4ICogMTAyNCAqIDEwMjQ7CisJCWVuZCA9IGRl dl9wcml2LT5nZ3R0LnN0b2xlbl9zaXplIC0gOCAqIDEwMjQgKiAxMDI0OwogCWVsc2UKLQkJZW5k ID0gZGV2X3ByaXYtPmd0dC5zdG9sZW5fdXNhYmxlX3NpemU7CisJCWVuZCA9IGRldl9wcml2LT5n Z3R0LnN0b2xlbl91c2FibGVfc2l6ZTsKIAogCS8qIEhBQ0s6IFRoaXMgY29kZSBkZXBlbmRzIG9u IHdoYXQgd2Ugd2lsbCBkbyBpbiAqX2VuYWJsZV9mYmMuIElmIHRoYXQKIAkgKiBjb2RlIGNoYW5n ZXMsIHRoaXMgY29kZSBuZWVkcyB0byBjaGFuZ2UgYXMgd2VsbC4KZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiZGV2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9mYmRldi5jCmluZGV4IGFlOWNmNmYuLmVhNDE4OGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2ZiZGV2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZmJkZXYuYwpAQCAtMTQ2LDcgKzE0Niw3IEBAIHN0YXRpYyBpbnQgaW50ZWxmYl9hbGxvYyhzdHJ1 Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyLAogCS8qIElmIHRoZSBGQiBpcyB0b28gYmlnLCBqdXN0 IGRvbid0IHVzZSBpdCBzaW5jZSBmYmRldiBpcyBub3QgdmVyeQogCSAqIGltcG9ydGFudCBhbmQg d2Ugc2hvdWxkIHByb2JhYmx5IHVzZSB0aGF0IHNwYWNlIHdpdGggRkJDIG9yIG90aGVyCiAJICog ZmVhdHVyZXMuICovCi0JaWYgKHNpemUgKiAyIDwgZGV2X3ByaXYtPmd0dC5zdG9sZW5fdXNhYmxl X3NpemUpCisJaWYgKHNpemUgKiAyIDwgZGV2X3ByaXYtPmdndHQuc3RvbGVuX3VzYWJsZV9zaXpl KQogCQlvYmogPSBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbihkZXYsIHNpemUpOwogCWlm IChvYmogPT0gTlVMTCkKIAkJb2JqID0gaTkxNV9nZW1fYWxsb2Nfb2JqZWN0KGRldiwgc2l6ZSk7 CkBAIC0yNDQsMTMgKzI0NCwxMyBAQCBzdGF0aWMgaW50IGludGVsZmJfY3JlYXRlKHN0cnVjdCBk cm1fZmJfaGVscGVyICpoZWxwZXIsCiAKIAkvKiBzZXR1cCBhcGVydHVyZSBiYXNlL3NpemUgZm9y IHZlc2FmYiB0YWtlb3ZlciAqLwogCWluZm8tPmFwZXJ0dXJlcy0+cmFuZ2VzWzBdLmJhc2UgPSBk ZXYtPm1vZGVfY29uZmlnLmZiX2Jhc2U7Ci0JaW5mby0+YXBlcnR1cmVzLT5yYW5nZXNbMF0uc2l6 ZSA9IGRldl9wcml2LT5ndHQubWFwcGFibGVfZW5kOworCWluZm8tPmFwZXJ0dXJlcy0+cmFuZ2Vz WzBdLnNpemUgPSBkZXZfcHJpdi0+Z2d0dC5tYXBwYWJsZV9lbmQ7CiAKIAlpbmZvLT5maXguc21l bV9zdGFydCA9IGRldi0+bW9kZV9jb25maWcuZmJfYmFzZSArIGk5MTVfZ2VtX29ial9nZ3R0X29m ZnNldChvYmopOwogCWluZm8tPmZpeC5zbWVtX2xlbiA9IHNpemU7CiAKIAlpbmZvLT5zY3JlZW5f YmFzZSA9Ci0JCWlvcmVtYXBfd2MoZGV2X3ByaXYtPmd0dC5tYXBwYWJsZV9iYXNlICsgaTkxNV9n ZW1fb2JqX2dndHRfb2Zmc2V0KG9iaiksCisJCWlvcmVtYXBfd2MoZGV2X3ByaXYtPmdndHQubWFw cGFibGVfYmFzZSArIGk5MTVfZ2VtX29ial9nZ3R0X29mZnNldChvYmopLAogCQkJICAgc2l6ZSk7 CiAJaWYgKCFpbmZvLT5zY3JlZW5fYmFzZSkgewogCQlEUk1fRVJST1IoIkZhaWxlZCB0byByZW1h cCBmcmFtZWJ1ZmZlciBpbnRvIHZpcnR1YWwgbWVtb3J5XG4iKTsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX292ZXJsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX292ZXJsYXkuYwppbmRleCAxM2UyMmY1Li5lMWFjYjQxIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9vdmVybGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfb3ZlcmxheS5jCkBAIC0xOTYsNyArMTk2LDcgQEAgaW50ZWxfb3ZlcmxheV9tYXBfcmVn cyhzdHJ1Y3QgaW50ZWxfb3ZlcmxheSAqb3ZlcmxheSkKIAlpZiAoT1ZFUkxBWV9ORUVEU19QSFlT SUNBTChvdmVybGF5LT5kZXYpKQogCQlyZWdzID0gKHN0cnVjdCBvdmVybGF5X3JlZ2lzdGVycyBf X2lvbWVtICopb3ZlcmxheS0+cmVnX2JvLT5waHlzX2hhbmRsZS0+dmFkZHI7CiAJZWxzZQotCQly ZWdzID0gaW9fbWFwcGluZ19tYXBfd2MoZGV2X3ByaXYtPmd0dC5tYXBwYWJsZSwKKwkJcmVncyA9 IGlvX21hcHBpbmdfbWFwX3djKGRldl9wcml2LT5nZ3R0Lm1hcHBhYmxlLAogCQkJCQkgaTkxNV9n ZW1fb2JqX2dndHRfb2Zmc2V0KG92ZXJsYXktPnJlZ19ibykpOwogCiAJcmV0dXJuIHJlZ3M7CkBA IC0xNDkwLDcgKzE0OTAsNyBAQCBpbnRlbF9vdmVybGF5X21hcF9yZWdzX2F0b21pYyhzdHJ1Y3Qg aW50ZWxfb3ZlcmxheSAqb3ZlcmxheSkKIAkJcmVncyA9IChzdHJ1Y3Qgb3ZlcmxheV9yZWdpc3Rl cnMgX19pb21lbSAqKQogCQkJb3ZlcmxheS0+cmVnX2JvLT5waHlzX2hhbmRsZS0+dmFkZHI7CiAJ ZWxzZQotCQlyZWdzID0gaW9fbWFwcGluZ19tYXBfYXRvbWljX3djKGRldl9wcml2LT5ndHQubWFw cGFibGUsCisJCXJlZ3MgPSBpb19tYXBwaW5nX21hcF9hdG9taWNfd2MoZGV2X3ByaXYtPmdndHQu bWFwcGFibGUsCiAJCQkJCQlpOTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQob3ZlcmxheS0+cmVnX2Jv KSk7CiAKIAlyZXR1cm4gcmVnczsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCmluZGV4IGE1MzlmYmMu LjUyMWNmNDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwpAQCAtNDY0NCw5ICs0NjQ0LDkgQEAg c3RhdGljIGJvb2wgYnh0X2NoZWNrX2Jpb3NfcmM2X3NldHVwKGNvbnN0IHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCiAJICogZm9yIHRoaXMgY2hlY2suCiAJICovCiAJcmM2X2N0eF9iYXNlID0gSTkx NV9SRUFEKFJDNl9DVFhfQkFTRSkgJiBSQzZfQ1RYX0JBU0VfTUFTSzsKLQlpZiAoISgocmM2X2N0 eF9iYXNlID49IGRldl9wcml2LT5ndHQuc3RvbGVuX3Jlc2VydmVkX2Jhc2UpICYmCi0JICAgICAg KHJjNl9jdHhfYmFzZSArIFBBR0VfU0laRSA8PSBkZXZfcHJpdi0+Z3R0LnN0b2xlbl9yZXNlcnZl ZF9iYXNlICsKLQkJCQkJZGV2X3ByaXYtPmd0dC5zdG9sZW5fcmVzZXJ2ZWRfc2l6ZSkpKSB7CisJ aWYgKCEoKHJjNl9jdHhfYmFzZSA+PSBkZXZfcHJpdi0+Z2d0dC5zdG9sZW5fcmVzZXJ2ZWRfYmFz ZSkgJiYKKwkgICAgICAocmM2X2N0eF9iYXNlICsgUEFHRV9TSVpFIDw9IGRldl9wcml2LT5nZ3R0 LnN0b2xlbl9yZXNlcnZlZF9iYXNlICsKKwkJCQkJZGV2X3ByaXYtPmdndHQuc3RvbGVuX3Jlc2Vy dmVkX3NpemUpKSkgewogCQlEUk1fREVCVUdfS01TKCJSQzYgQmFzZSBhZGRyZXNzIG5vdCBhcyBl eHBlY3RlZC5cbiIpOwogCQllbmFibGVfcmM2ID0gZmFsc2U7CiAJfQpAQCAtNTI5MSw3ICs1Mjkx LDcgQEAgc3RhdGljIHZvaWQgY2hlcnJ5dmlld19zZXR1cF9wY3R4KHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZf cHJpdmF0ZTsKIAl1bnNpZ25lZCBsb25nIHBjdHhfcGFkZHIsIHBhZGRyOwotCXN0cnVjdCBpOTE1 X2d0dCAqZ3R0ID0gJmRldl9wcml2LT5ndHQ7CisJc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCA9ICZk ZXZfcHJpdi0+Z2d0dDsKIAl1MzIgcGNicjsKIAlpbnQgcGN0eF9zaXplID0gMzIqMTAyNDsKIApA QCAtNTI5OSw3ICs1Mjk5LDcgQEAgc3RhdGljIHZvaWQgY2hlcnJ5dmlld19zZXR1cF9wY3R4KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJaWYgKChwY2JyID4+IFZMVl9QQ0JSX0FERFJfU0hJRlQp ID09IDApIHsKIAkJRFJNX0RFQlVHX0RSSVZFUigiQklPUyBkaWRuJ3Qgc2V0IHVwIFBDQlIsIGZp eGluZyB1cFxuIik7CiAJCXBhZGRyID0gKGRldl9wcml2LT5tbS5zdG9sZW5fYmFzZSArCi0JCQkg KGd0dC0+c3RvbGVuX3NpemUgLSBwY3R4X3NpemUpKTsKKwkJCSAoZ2d0dC0+c3RvbGVuX3NpemUg LSBwY3R4X3NpemUpKTsKIAogCQlwY3R4X3BhZGRyID0gKHBhZGRyICYgKH40MDk1KSk7CiAJCUk5 MTVfV1JJVEUoVkxWX1BDQlIsIHBjdHhfcGFkZHIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cmluZ2J1ZmZlci5jCmluZGV4IDAxNWRjN2QuLjMxZDdiNjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9yaW5nYnVmZmVyLmMKQEAgLTIxMzQsNyArMjEzNCw3IEBAIGludCBpbnRlbF9waW5f YW5kX21hcF9yaW5nYnVmZmVyX29iaihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkvKiBBY2Nl c3MgdGhyb3VnaCB0aGUgR1RUIHJlcXVpcmVzIHRoZSBkZXZpY2UgdG8gYmUgYXdha2UuICovCiAJ CWFzc2VydF9ycG1fd2FrZWxvY2tfaGVsZChkZXZfcHJpdik7CiAKLQkJcmluZ2J1Zi0+dmlydHVh bF9zdGFydCA9IGlvcmVtYXBfd2MoZGV2X3ByaXYtPmd0dC5tYXBwYWJsZV9iYXNlICsKKwkJcmlu Z2J1Zi0+dmlydHVhbF9zdGFydCA9IGlvcmVtYXBfd2MoZGV2X3ByaXYtPmdndHQubWFwcGFibGVf YmFzZSArCiAJCQkJCQkgICAgaTkxNV9nZW1fb2JqX2dndHRfb2Zmc2V0KG9iaiksIHJpbmdidWYt PnNpemUpOwogCQlpZiAocmluZ2J1Zi0+dmlydHVhbF9zdGFydCA9PSBOVUxMKSB7CiAJCQlpOTE1 X2dlbV9vYmplY3RfZ2d0dF91bnBpbihvYmopOwotLSAKMi41LjAKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=