From: Tvrtko Ursulin Subject: [RFC 3/7] drm/i915: Move all runtime modified device info fields into runtime info Date: Mon, 12 Nov 2018 17:12:38 +0000 Message-ID: <20181112171242.7640-4-tvrtko.ursulin@linux.intel.com> References: <20181112171242.7640-1-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3FEFB6E0A0 for ; Mon, 12 Nov 2018 17:12:51 +0000 (UTC) In-Reply-To: <20181112171242.7640-1-tvrtko.ursulin@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Intel-gfx@lists.freedesktop.org Cc: Jani Nikula List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCkFmdGVyIHRo ZSBwcmV2aW91cyBjaGFuZ2Ugd2hpY2ggY2xlYXJlZCB0aGUgc3RhdGljIHRhYmxlcyBmcm9tIGVm ZmVjdGl2ZWx5CnVudXNlZCBzdG9yYWdlLCB3ZSBub3cgcmVwbGljYXRlIGVudHJpZXMgd2hpY2gg aGF2ZSBkZWZhdWx0cyBzZXQgZnJvbQp0aGVyZSwgYnV0IGNhbiBiZSBvdmVycmlkZW4gYXQgcnVu dGltZS4KCkZvciB0aGlzIGNsYXNzIG9mIHZhcmlhYmxlcyBhbGwgYWNjZXNzb3IgbWFjcm9zIGFu ZCBjYWxsIHNpdGVzIGFyZSBjaGFuZ2VkCnRvIHVzZSB0aGUgcnVudGltZSB2ZXJzaW9uLiBUaGVy ZWZvcmUgYXQgZHJpdmVyIGxvYWQgd2UgbmVlZCB0byBjb3B5IG92ZXIKdGhlc2UgdmFyaWFibGVz IGZyb20gc3RhdGljIHRvIHRoZSBydW50aW1lIHRhYmxlLgoKV2UgYWRkIGRvdWJsZSBwcmVmaXhl cyB0byB0aGUgYWZmZWN0ZWQgZGV2aWNlIGluZm8gbWVtYmVycyB0byBzaWduaWZ5IHRoZXkKYXJl IHNwZWNpYWwgYW5kIHRvIGNhdGNoIGFsbCBjdXJyZW50IGFuZCBmdXR1cmUgdXNlcnMuCgpTaWdu ZWQtb2ZmLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgpDYzog Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+CkNjOiBKYW5pIE5pa3VsYSA8 amFuaS5uaWt1bGFAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVi dWdmcy5jICAgICAgICAgICB8ICAgNCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu YyAgICAgICAgICAgICAgIHwgIDM4ICsrKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaCAgICAgICAgICAgICAgIHwgIDE4ICstLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW0uYyAgICAgICAgICAgICAgIHwgICA1ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9ndHQuYyAgICAgICAgICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJx LmMgICAgICAgICAgICAgICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wY2ku YyAgICAgICAgICAgICAgIHwgMTE0ICsrKysrKysrKy0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfYmlvcy5jICAgICAgICAgICAgIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kZXZpY2VfaW5mby5jICAgICAgfCAgMjQgKystLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uaCAgICAgIHwgIDMwICsrKy0tCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgICAgICAgICAgfCAgMTggKy0tCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmggICAgICAgICAgfCAgIDQgKy0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jICAgICAgICB8ICAgNSArLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZmJjLmMgICAgICAgICAgICAgIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9mYmRldi5jICAgICAgICAgICAgfCAgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2d1Y19zdWJtaXNzaW9uLmMgICB8ICAgNCArLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfaTJjLmMgICAgICAgICAgICAgIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9scGVfYXVkaW8uYyAgICAgICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3BtLmMgICAgICAgICAgICAgICB8ICAgOSArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv c2VsZnRlc3RzL2h1Z2VfcGFnZXMuYyAgIHwgIDE4ICstLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv c2VsZnRlc3RzL2ludGVsX2d1Yy5jICAgIHwgICA0ICstCiAuLi4vZ3B1L2RybS9pOTE1L3NlbGZ0 ZXN0cy9tb2NrX2dlbV9kZXZpY2UuYyAgfCAgMTEgKy0KIDIyIGZpbGVzIGNoYW5nZWQsIDE3NSBp bnNlcnRpb25zKCspLCAxNDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVn ZnMuYwppbmRleCAxYjhhM2YyMDNiOTIuLjc0MzYyYTFmYjJiZSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kZWJ1Z2ZzLmMKQEAgLTUxMCw3ICs1MTAsNyBAQCBzdGF0aWMgaW50IGk5MTVfZ2VtX29i amVjdF9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKIAlzZXFfcHJpbnRmKG0s ICIlbGx1IFslcGFdIGd0dCB0b3RhbFxuIiwKIAkJICAgZ2d0dC0+dm0udG90YWwsICZnZ3R0LT5t YXBwYWJsZV9lbmQpOwogCXNlcV9wcmludGYobSwgIlN1cHBvcnRlZCBwYWdlIHNpemVzOiAlc1xu IiwKLQkJICAgc3RyaW5naWZ5X3BhZ2Vfc2l6ZXMoSU5URUxfSU5GTyhkZXZfcHJpdiktPnBhZ2Vf c2l6ZXMsCisJCSAgIHN0cmluZ2lmeV9wYWdlX3NpemVzKGRldl9wcml2LT5ydW50aW1lX2luZm8u cGFnZV9zaXplcywKIAkJCQkJYnVmLCBzaXplb2YoYnVmKSkpOwogCiAJc2VxX3B1dGMobSwgJ1xu Jyk7CkBAIC00MTQ0LDcgKzQxNDQsNyBAQCBpOTE1X3JpbmdfdGVzdF9pcnFfc2V0KHZvaWQgKmRh dGEsIHU2NCB2YWwpCiAJaWYgKElOVEVMX0dFTihpOTE1KSA+PSAxMSkKIAkJcmV0dXJuIC1FTk9E RVY7CiAKLQl2YWwgJj0gSU5URUxfSU5GTyhpOTE1KS0+cmluZ19tYXNrOworCXZhbCAmPSBpOTE1 LT5ydW50aW1lX2luZm8ucmluZ19tYXNrOwogCURSTV9ERUJVR19EUklWRVIoIk1hc2tpbmcgaW50 ZXJydXB0cyBvbiByaW5ncyAweCUwOGxseFxuIiwgdmFsKTsKIAogCXJldHVybiBmYXVsdF9pcnFf c2V0KGk5MTUsICZpOTE1LT5ncHVfZXJyb3IudGVzdF9pcnFfcmluZ3MsIHZhbCk7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuYwppbmRleCA5Y2ZkNWIxNDUyNDguLmJiZGQzNjExOWVhZSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5jCkBAIC0yODcsNyArMjg3LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGV0 ZWN0X3BjaChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJICogVXNlIFBDSF9O T1AgKFBDSCBidXQgbm8gU291dGggRGlzcGxheSkgZm9yIFBDSCBwbGF0Zm9ybXMgd2l0aG91dAog CSAqIGRpc3BsYXkuCiAJICovCi0JaWYgKHBjaCAmJiBJTlRFTF9JTkZPKGRldl9wcml2KS0+bnVt X3BpcGVzID09IDApIHsKKwlpZiAocGNoICYmIGRldl9wcml2LT5ydW50aW1lX2luZm8ubnVtX3Bp cGVzID09IDApIHsKIAkJRFJNX0RFQlVHX0tNUygiRGlzcGxheSBkaXNhYmxlZCwgcmV2ZXJ0aW5n IHRvIE5PUCBQQ0hcbiIpOwogCQlkZXZfcHJpdi0+cGNoX3R5cGUgPSBQQ0hfTk9QOwogCQlkZXZf cHJpdi0+cGNoX2lkID0gMDsKQEAgLTY0Niw5ICs2NDYsOSBAQCBzdGF0aWMgaW50IGk5MTVfbG9h ZF9tb2Rlc2V0X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlpZiAoaTkxNV9pbmplY3Rf bG9hZF9mYWlsdXJlKCkpCiAJCXJldHVybiAtRU5PREVWOwogCi0JaWYgKElOVEVMX0lORk8oZGV2 X3ByaXYpLT5udW1fcGlwZXMpIHsKKwlpZiAoZGV2X3ByaXYtPnJ1bnRpbWVfaW5mby5udW1fcGlw ZXMpIHsKIAkJcmV0ID0gZHJtX3ZibGFua19pbml0KCZkZXZfcHJpdi0+ZHJtLAotCQkJCSAgICAg IElOVEVMX0lORk8oZGV2X3ByaXYpLT5udW1fcGlwZXMpOworCQkJCSAgICAgIGRldl9wcml2LT5y dW50aW1lX2luZm8ubnVtX3BpcGVzKTsKIAkJaWYgKHJldCkKIAkJCWdvdG8gb3V0OwogCX0KQEAg LTY5Nyw3ICs2OTcsNyBAQCBzdGF0aWMgaW50IGk5MTVfbG9hZF9tb2Rlc2V0X2luaXQoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKIAogCWludGVsX292ZXJsYXlfc2V0dXAoZGV2X3ByaXYpOwogCi0J aWYgKElOVEVMX0lORk8oZGV2X3ByaXYpLT5udW1fcGlwZXMgPT0gMCkKKwlpZiAoZGV2X3ByaXYt PnJ1bnRpbWVfaW5mby5udW1fcGlwZXMgPT0gMCkKIAkJcmV0dXJuIDA7CiAKIAlyZXQgPSBpbnRl bF9mYmRldl9pbml0KGRldik7CkBAIC0xNTUyLDcgKzE1NTIsNyBAQCBzdGF0aWMgdm9pZCBpOTE1 X2RyaXZlcl9yZWdpc3RlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJfSBl bHNlCiAJCURSTV9FUlJPUigiRmFpbGVkIHRvIHJlZ2lzdGVyIGRyaXZlciBmb3IgdXNlcnNwYWNl IGFjY2VzcyFcbiIpOwogCi0JaWYgKElOVEVMX0lORk8oZGV2X3ByaXYpLT5udW1fcGlwZXMpIHsK KwlpZiAoZGV2X3ByaXYtPnJ1bnRpbWVfaW5mby5udW1fcGlwZXMpIHsKIAkJLyogTXVzdCBiZSBk b25lIGFmdGVyIHByb2Jpbmcgb3V0cHV0cyAqLwogCQlpbnRlbF9vcHJlZ2lvbl9yZWdpc3Rlcihk ZXZfcHJpdik7CiAJCWFjcGlfdmlkZW9fcmVnaXN0ZXIoKTsKQEAgLTE1NzYsNyArMTU3Niw3IEBA IHN0YXRpYyB2b2lkIGk5MTVfZHJpdmVyX3JlZ2lzdGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKIAkgKiBXZSBuZWVkIHRvIGNvb3JkaW5hdGUgdGhlIGhvdHBsdWdzIHdpdGgg dGhlIGFzeW5jaHJvbm91cyBmYmRldgogCSAqIGNvbmZpZ3VyYXRpb24sIGZvciB3aGljaCB3ZSB1 c2UgdGhlIGZiZGV2LT5hc3luY19jb29raWUuCiAJICovCi0JaWYgKElOVEVMX0lORk8oZGV2X3By aXYpLT5udW1fcGlwZXMpCisJaWYgKGRldl9wcml2LT5ydW50aW1lX2luZm8ubnVtX3BpcGVzKQog CQlkcm1fa21zX2hlbHBlcl9wb2xsX2luaXQoZGV2KTsKIAogCWludGVsX3Bvd2VyX2RvbWFpbnNf ZW5hYmxlKGRldl9wcml2KTsKQEAgLTE2MzcsNiArMTYzNyw3IEBAIGk5MTVfZHJpdmVyX2NyZWF0 ZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmVudCkK IHsKIAljb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gKm1hdGNoX2luZm8gPQogCQkoc3Ry dWN0IGludGVsX2RldmljZV9pbmZvICopZW50LT5kcml2ZXJfZGF0YTsKKwlzdHJ1Y3QgaW50ZWxf cnVudGltZV9kZXZpY2VfaW5mbyAqcnVudGltZV9pbmZvOwogCXN0cnVjdCBpbnRlbF9kZXZpY2Vf aW5mbyAqZGV2aWNlX2luZm87CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTU7CiAJaW50 IGVycjsKQEAgLTE2NTgsMTEgKzE2NTksMzAgQEAgaTkxNV9kcml2ZXJfY3JlYXRlKHN0cnVjdCBw Y2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZW50KQogCS8qIFNldHVw IHRoZSB3cml0ZS1vbmNlICJjb25zdGFudCIgZGV2aWNlIGluZm8gKi8KIAlkZXZpY2VfaW5mbyA9 IG1rd3JpdGVfZGV2aWNlX2luZm8oaTkxNSk7CiAJbWVtY3B5KGRldmljZV9pbmZvLCBtYXRjaF9p bmZvLCBzaXplb2YoKmRldmljZV9pbmZvKSk7Ci0JZGV2aWNlX2luZm8tPmRldmljZV9pZCA9IHBk ZXYtPmRldmljZTsKIAogCUJVSUxEX0JVR19PTihJTlRFTF9NQVhfUExBVEZPUk1TID4KIAkJICAg ICBCSVRTX1BFUl9UWVBFKGRldmljZV9pbmZvLT5wbGF0Zm9ybV9tYXNrKSk7Ci0JQlVHX09OKGRl dmljZV9pbmZvLT5nZW4gPiBCSVRTX1BFUl9UWVBFKGRldmljZV9pbmZvLT5nZW5fbWFzaykpOwor CUJVR19PTihkZXZpY2VfaW5mby0+X19nZW4gPiBCSVRTX1BFUl9UWVBFKGRldmljZV9pbmZvLT5n ZW5fbWFzaykpOworCisJLyoKKwkgKiBFYXJseSBzZXR1cCBvZiB0aGUgcnVudGltZSBkZXZpY2Ug aW5mby4KKwkgKi8KKwlydW50aW1lX2luZm8gPSAmaTkxNS0+cnVudGltZV9pbmZvOworCisJcnVu dGltZV9pbmZvLT5kZXZpY2VfaWQgPSBwZGV2LT5kZXZpY2U7CisKKwkvKgorCSAqIENvcHkgb3Zl ciBlbnRyaWVzIHRoYXQgYXJlIGJvdGggc2V0IHN0YXRpY2FsbHkgYnV0IGNhbiBhbHNvIGJlCisJ ICogbW9kaWZpZWQgYXQgcnVudGltZS4KKwkgKi8KKwlydW50aW1lX2luZm8tPmdlbiA9IGRldmlj ZV9pbmZvLT5fX2dlbjsKKwlydW50aW1lX2luZm8tPmhhc19mYmMgPSBkZXZpY2VfaW5mby0+X19o YXNfZmJjOworCXJ1bnRpbWVfaW5mby0+aGFzX3JjNiA9IGRldmljZV9pbmZvLT5fX2hhc19yYzY7 CisJcnVudGltZV9pbmZvLT5oYXNfcmM2cCA9IGRldmljZV9pbmZvLT5fX2hhc19yYzZwOworCXJ1 bnRpbWVfaW5mby0+cHBndHQgPSBkZXZpY2VfaW5mby0+X19wcGd0dDsKKwlydW50aW1lX2luZm8t PnBhZ2Vfc2l6ZXMgPSBkZXZpY2VfaW5mby0+X19wYWdlX3NpemVzOworCXJ1bnRpbWVfaW5mby0+ cmluZ19tYXNrID0gZGV2aWNlX2luZm8tPl9fcmluZ19tYXNrOworCXJ1bnRpbWVfaW5mby0+bnVt X3BpcGVzID0gZGV2aWNlX2luZm8tPl9fbnVtX3BpcGVzOwogCiAJcmV0dXJuIGk5MTU7CiB9CkBA IC0xNzAxLDcgKzE3MjEsNyBAQCBpbnQgaTkxNV9kcml2ZXJfbG9hZChzdHJ1Y3QgcGNpX2RldiAq cGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmVudCkKIAkJcmV0dXJuIFBUUl9FUlIo ZGV2X3ByaXYpOwogCiAJLyogRGlzYWJsZSBudWNsZWFyIHBhZ2VmbGlwIGJ5IGRlZmF1bHQgb24g cHJlLUlMSyAqLwotCWlmICghaTkxNV9tb2RwYXJhbXMubnVjbGVhcl9wYWdlZmxpcCAmJiBtYXRj aF9pbmZvLT5nZW4gPCA1KQorCWlmICghaTkxNV9tb2RwYXJhbXMubnVjbGVhcl9wYWdlZmxpcCAm JiBtYXRjaF9pbmZvLT5fX2dlbiA8IDUpCiAJCWRldl9wcml2LT5kcm0uZHJpdmVyX2ZlYXR1cmVz ICY9IH5EUklWRVJfQVRPTUlDOwogCiAJcmV0ID0gcGNpX2VuYWJsZV9kZXZpY2UocGRldik7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCBmNjc3YTk5MzZkMzMuLjRmYWJiY2Q2Y2ZiMiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0yMjEwLDcgKzIyMTAsNyBAQCBzdGF0aWMgaW5saW5l IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpodWNfdG9faTkxNShzdHJ1Y3QgaW50ZWxfaHVjICpo dWMpCiAKIC8qIEl0ZXJhdG9yIG92ZXIgc3Vic2V0IG9mIGVuZ2luZXMgc2VsZWN0ZWQgYnkgbWFz ayAqLwogI2RlZmluZSBmb3JfZWFjaF9lbmdpbmVfbWFza2VkKGVuZ2luZV9fLCBkZXZfcHJpdl9f LCBtYXNrX18sIHRtcF9fKSBcCi0JZm9yICgodG1wX18pID0gKG1hc2tfXykgJiBJTlRFTF9JTkZP KGRldl9wcml2X18pLT5yaW5nX21hc2s7IFwKKwlmb3IgKCh0bXBfXykgPSAobWFza19fKSAmIChk ZXZfcHJpdl9fKS0+cnVudGltZV9pbmZvLnJpbmdfbWFzazsgXAogCSAgICAgKHRtcF9fKSA/IFwK IAkgICAgICgoZW5naW5lX18pID0gKGRldl9wcml2X18pLT5lbmdpbmVbX19tYXNrX25leHRfYml0 KHRtcF9fKV0pLCAxIDogXAogCSAgICAgMDspCkBAIC0yMzU4LDggKzIzNTgsOCBAQCBpbnRlbF9p bmZvKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKICNkZWZpbmUgSU5U RUxfSU5GTyhkZXZfcHJpdikJaW50ZWxfaW5mbygoZGV2X3ByaXYpKQogI2RlZmluZSBEUklWRVJf Q0FQUyhkZXZfcHJpdikJKCYoZGV2X3ByaXYpLT5jYXBzKQogCi0jZGVmaW5lIElOVEVMX0dFTihk ZXZfcHJpdikJKChkZXZfcHJpdiktPmluZm8uZ2VuKQotI2RlZmluZSBJTlRFTF9ERVZJRChkZXZf cHJpdikJKChkZXZfcHJpdiktPmluZm8uZGV2aWNlX2lkKQorI2RlZmluZSBJTlRFTF9HRU4oZGV2 X3ByaXYpCSgoZGV2X3ByaXYpLT5ydW50aW1lX2luZm8uZ2VuKQorI2RlZmluZSBJTlRFTF9ERVZJ RChkZXZfcHJpdikJKChkZXZfcHJpdiktPnJ1bnRpbWVfaW5mby5kZXZpY2VfaWQpCiAKICNkZWZp bmUgUkVWSURfRk9SRVZFUgkJMHhmZgogI2RlZmluZSBJTlRFTF9SRVZJRChkZXZfcHJpdikJKChk ZXZfcHJpdiktPmRybS5wZGV2LT5yZXZpc2lvbikKQEAgLTI1NTcsNyArMjU1Nyw3IEBAIGludGVs X2luZm8oY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogI2RlZmluZSBB TExfRU5HSU5FUwkofjApCiAKICNkZWZpbmUgSEFTX0VOR0lORShkZXZfcHJpdiwgaWQpIFwKLQko ISEoKGRldl9wcml2KS0+aW5mby5yaW5nX21hc2sgJiBFTkdJTkVfTUFTSyhpZCkpKQorCSghISgo ZGV2X3ByaXYpLT5ydW50aW1lX2luZm8ucmluZ19tYXNrICYgRU5HSU5FX01BU0soaWQpKSkKIAog I2RlZmluZSBIQVNfQlNEKGRldl9wcml2KQlIQVNfRU5HSU5FKGRldl9wcml2LCBWQ1MpCiAjZGVm aW5lIEhBU19CU0QyKGRldl9wcml2KQlIQVNfRU5HSU5FKGRldl9wcml2LCBWQ1MyKQpAQCAtMjU4 Myw3ICsyNTgzLDcgQEAgaW50ZWxfaW5mbyhjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCiAKICNkZWZpbmUgSEFTX0VYRUNMSVNUUyhkZXZfcHJpdikgSEFTX0xPR0lDQUxf UklOR19DT05URVhUUyhkZXZfcHJpdikKIAotI2RlZmluZSBJTlRFTF9QUEdUVChkZXZfcHJpdikg KElOVEVMX0lORk8oZGV2X3ByaXYpLT5wcGd0dCkKKyNkZWZpbmUgSU5URUxfUFBHVFQoZGV2X3By aXYpICgoZGV2X3ByaXYpLT5ydW50aW1lX2luZm8ucHBndHQpCiAjZGVmaW5lIEhBU19QUEdUVChk ZXZfcHJpdikgXAogCShJTlRFTF9QUEdUVChkZXZfcHJpdikgIT0gSU5URUxfUFBHVFRfTk9ORSkK ICNkZWZpbmUgSEFTX0ZVTExfUFBHVFQoZGV2X3ByaXYpIFwKQEAgLTI1OTMsNyArMjU5Myw3IEBA IGludGVsX2luZm8oY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiAj ZGVmaW5lIEhBU19QQUdFX1NJWkVTKGRldl9wcml2LCBzaXplcykgKHsgXAogCUdFTV9CVUdfT04o KHNpemVzKSA9PSAwKTsgXAotCSgoc2l6ZXMpICYgfihkZXZfcHJpdiktPmluZm8ucGFnZV9zaXpl cykgPT0gMDsgXAorCSgoc2l6ZXMpICYgfihkZXZfcHJpdiktPnJ1bnRpbWVfaW5mby5wYWdlX3Np emVzKSA9PSAwOyBcCiB9KQogCiAjZGVmaW5lIEhBU19PVkVSTEFZKGRldl9wcml2KQkJICgoZGV2 X3ByaXYpLT5pbmZvLmhhc19vdmVybGF5KQpAQCAtMjYyMyw3ICsyNjIzLDcgQEAgaW50ZWxfaW5m byhjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAjZGVmaW5lIEk5MTVf SEFTX0hPVFBMVUcoZGV2X3ByaXYpCSgoZGV2X3ByaXYpLT5pbmZvLmhhc19ob3RwbHVnKQogCiAj ZGVmaW5lIEhBU19GV19CTEMoZGV2X3ByaXYpIAkoSU5URUxfR0VOKGRldl9wcml2KSA+IDIpCi0j ZGVmaW5lIEhBU19GQkMoZGV2X3ByaXYpCSgoZGV2X3ByaXYpLT5pbmZvLmhhc19mYmMpCisjZGVm aW5lIEhBU19GQkMoZGV2X3ByaXYpCSgoZGV2X3ByaXYpLT5ydW50aW1lX2luZm8uaGFzX2ZiYykK ICNkZWZpbmUgSEFTX0NVUl9GQkMoZGV2X3ByaXYpCSghSEFTX0dNQ0hfRElTUExBWShkZXZfcHJp dikgJiYgSU5URUxfR0VOKGRldl9wcml2KSA+PSA3KQogCiAjZGVmaW5lIEhBU19JUFMoZGV2X3By aXYpCShJU19IU1dfVUxUKGRldl9wcml2KSB8fCBJU19CUk9BRFdFTEwoZGV2X3ByaXYpKQpAQCAt MjYzNCw4ICsyNjM0LDggQEAgaW50ZWxfaW5mbyhjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCiAjZGVmaW5lIEhBU19GUEdBX0RCR19VTkNMQUlNRUQoZGV2X3ByaXYpICgo ZGV2X3ByaXYpLT5pbmZvLmhhc19mcGdhX2RiZykKICNkZWZpbmUgSEFTX1BTUihkZXZfcHJpdikJ CSAoKGRldl9wcml2KS0+aW5mby5oYXNfcHNyKQogCi0jZGVmaW5lIEhBU19SQzYoZGV2X3ByaXYp CQkgKChkZXZfcHJpdiktPmluZm8uaGFzX3JjNikKLSNkZWZpbmUgSEFTX1JDNnAoZGV2X3ByaXYp CQkgKChkZXZfcHJpdiktPmluZm8uaGFzX3JjNnApCisjZGVmaW5lIEhBU19SQzYoZGV2X3ByaXYp CQkgKChkZXZfcHJpdiktPnJ1bnRpbWVfaW5mby5oYXNfcmM2KQorI2RlZmluZSBIQVNfUkM2cChk ZXZfcHJpdikJCSAoKGRldl9wcml2KS0+cnVudGltZV9pbmZvLmhhc19yYzZwKQogI2RlZmluZSBI QVNfUkM2cHAoZGV2X3ByaXYpCQkgKGZhbHNlKSAvKiBIVyB3YXMgbmV2ZXIgdmFsaWRhdGVkICov CiAKICNkZWZpbmUgSEFTX0NTUihkZXZfcHJpdikJKChkZXZfcHJpdiktPmluZm8uaGFzX2NzcikK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbS5jCmluZGV4IGM1NWIxZjc1Yzk4MC4uMjRmZWEzYmM3MWQyIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKQEAgLTI3MjUsNyArMjcyNSw3IEBAIHZvaWQgX19pOTE1 X2dlbV9vYmplY3Rfc2V0X3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJ CQkJIHVuc2lnbmVkIGludCBzZ19wYWdlX3NpemVzKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICppOTE1ID0gdG9faTkxNShvYmotPmJhc2UuZGV2KTsKLQl1bnNpZ25lZCBsb25nIHN1cHBv cnRlZCA9IElOVEVMX0lORk8oaTkxNSktPnBhZ2Vfc2l6ZXM7CisJdW5zaWduZWQgbG9uZyBzdXBw b3J0ZWQgPSBpOTE1LT5ydW50aW1lX2luZm8ucGFnZV9zaXplczsKIAlpbnQgaTsKIAogCWxvY2tk ZXBfYXNzZXJ0X2hlbGQoJm9iai0+bW0ubG9jayk7CkBAIC01NTM1LDggKzU1MzUsNyBAQCBpbnQg aTkxNV9nZW1faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAKIAkvKiBX ZSBuZWVkIHRvIGZhbGxiYWNrIHRvIDRLIHBhZ2VzIGlmIGhvc3QgZG9lc24ndCBzdXBwb3J0IGh1 Z2UgZ3R0LiAqLwogCWlmIChpbnRlbF92Z3B1X2FjdGl2ZShkZXZfcHJpdikgJiYgIWludGVsX3Zn cHVfaGFzX2h1Z2VfZ3R0KGRldl9wcml2KSkKLQkJbWt3cml0ZV9kZXZpY2VfaW5mbyhkZXZfcHJp diktPnBhZ2Vfc2l6ZXMgPQotCQkJSTkxNV9HVFRfUEFHRV9TSVpFXzRLOworCQlkZXZfcHJpdi0+ cnVudGltZV9pbmZvLnBhZ2Vfc2l6ZXMgPSBJOTE1X0dUVF9QQUdFX1NJWkVfNEs7CiAKIAlkZXZf cHJpdi0+bW0udW5vcmRlcmVkX3RpbWVsaW5lID0gZG1hX2ZlbmNlX2NvbnRleHRfYWxsb2MoMSk7 CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKaW5kZXggYTk4YzI5MTQ3ZDVlLi40ZmQ0 YmM4NDk5NmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCkBAIC03OTksNyArNzk5 LDcgQEAgc3RhdGljIHZvaWQgZ2VuOF9pbml0aWFsaXplX3BtbDQoc3RydWN0IGk5MTVfYWRkcmVz c19zcGFjZSAqdm0sCiAgKi8KIHN0YXRpYyB2b2lkIG1hcmtfdGxic19kaXJ0eShzdHJ1Y3QgaTkx NV9od19wcGd0dCAqcHBndHQpCiB7Ci0JcHBndHQtPnBkX2RpcnR5X3JpbmdzID0gSU5URUxfSU5G TyhwcGd0dC0+dm0uaTkxNSktPnJpbmdfbWFzazsKKwlwcGd0dC0+cGRfZGlydHlfcmluZ3MgPSBw cGd0dC0+dm0uaTkxNS0+cnVudGltZV9pbmZvLnJpbmdfbWFzazsKIH0KIAogLyogUmVtb3ZlcyBl bnRyaWVzIGZyb20gYSBzaW5nbGUgcGFnZSB0YWJsZSwgcmVsZWFzaW5nIGl0IGlmIGl0J3MgZW1w dHkuCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwppbmRleCBkNDQ3ZDdkNTA4ZjQuLjhhMjQzMDY5ZjAy YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCkBAIC0zMzIyLDcgKzMzMjIsNyBAQCB2b2lkIGk5 MTVfaGFuZGxlX2Vycm9yKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkgKi8K IAlpbnRlbF9ydW50aW1lX3BtX2dldChkZXZfcHJpdik7CiAKLQllbmdpbmVfbWFzayAmPSBJTlRF TF9JTkZPKGRldl9wcml2KS0+cmluZ19tYXNrOworCWVuZ2luZV9tYXNrICY9IGRldl9wcml2LT5y dW50aW1lX2luZm8ucmluZ19tYXNrOwogCiAJaWYgKGZsYWdzICYgSTkxNV9FUlJPUl9DQVBUVVJF KSB7CiAJCWk5MTVfY2FwdHVyZV9lcnJvcl9zdGF0ZShkZXZfcHJpdiwgZW5naW5lX21hc2ssIG1z Zyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BjaS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9wY2kuYwppbmRleCBlNmU3ZmNkZjBhYjcuLjhlYjE2YzU0NjQ4 ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wY2kuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BjaS5jCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSAi aTkxNV9zZWxmdGVzdC5oIgogCiAjZGVmaW5lIFBMQVRGT1JNKHgpIC5wbGF0Zm9ybSA9ICh4KSwg LnBsYXRmb3JtX21hc2sgPSBCSVQoeCkKLSNkZWZpbmUgR0VOKHgpIC5nZW4gPSAoeCksIC5nZW5f bWFzayA9IEJJVCgoeCkgLSAxKQorI2RlZmluZSBHRU4oeCkgLl9fZ2VuID0gKHgpLCAuZ2VuX21h c2sgPSBCSVQoKHgpIC0gMSkKIAogI2RlZmluZSBHRU5fREVGQVVMVF9QSVBFT0ZGU0VUUyBcCiAJ LnBpcGVfb2Zmc2V0cyA9IHsgUElQRV9BX09GRlNFVCwgUElQRV9CX09GRlNFVCwgXApAQCAtNjAs MTYgKzYwLDE2IEBACiAvKiBLZWVwIGluIGdlbiBiYXNlZCBvcmRlciwgYW5kIGNocm9ub2xvZ2lj YWwgb3JkZXIgd2l0aGluIGEgZ2VuICovCiAKICNkZWZpbmUgR0VOX0RFRkFVTFRfUEFHRV9TSVpF UyBcCi0JLnBhZ2Vfc2l6ZXMgPSBJOTE1X0dUVF9QQUdFX1NJWkVfNEsKKwkuX19wYWdlX3NpemVz ID0gSTkxNV9HVFRfUEFHRV9TSVpFXzRLCiAKICNkZWZpbmUgR0VOMl9GRUFUVVJFUyBcCiAJR0VO KDIpLCBcCi0JLm51bV9waXBlcyA9IDEsIFwKKwkuX19udW1fcGlwZXMgPSAxLCBcCiAJLmhhc19v dmVybGF5ID0gMSwgLm92ZXJsYXlfbmVlZHNfcGh5c2ljYWwgPSAxLCBcCiAJLmhhc19nbWNoX2Rp c3BsYXkgPSAxLCBcCiAJLmh3c19uZWVkc19waHlzaWNhbCA9IDEsIFwKIAkudW5mZW5jZWRfbmVl ZHNfYWxpZ25tZW50ID0gMSwgXAotCS5yaW5nX21hc2sgPSBSRU5ERVJfUklORywgXAorCS5fX3Jp bmdfbWFzayA9IFJFTkRFUl9SSU5HLCBcCiAJLmhhc19zbm9vcCA9IHRydWUsIFwKIAkuaGFzX2Nv aGVyZW50X2dndHQgPSBmYWxzZSwgXAogCUdFTl9ERUZBVUxUX1BJUEVPRkZTRVRTLCBcCkBAIC04 MCw3ICs4MCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxf aTgzMF9pbmZvID0gewogCUdFTjJfRkVBVFVSRVMsCiAJUExBVEZPUk0oSU5URUxfSTgzMCksCiAJ LmlzX21vYmlsZSA9IDEsIC5jdXJzb3JfbmVlZHNfcGh5c2ljYWwgPSAxLAotCS5udW1fcGlwZXMg PSAyLCAvKiBsZWdhbCwgbGFzdCBvbmUgd2lucyAqLworCS5fX251bV9waXBlcyA9IDIsIC8qIGxl Z2FsLCBsYXN0IG9uZSB3aW5zICovCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2Rl dmljZV9pbmZvIGludGVsX2k4NDVnX2luZm8gPSB7CkBAIC05Miw5ICs5Miw5IEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfaTg1eF9pbmZvID0gewogCUdFTjJf RkVBVFVSRVMsCiAJUExBVEZPUk0oSU5URUxfSTg1WCksCiAJLmlzX21vYmlsZSA9IDEsCi0JLm51 bV9waXBlcyA9IDIsIC8qIGxlZ2FsLCBsYXN0IG9uZSB3aW5zICovCisJLl9fbnVtX3BpcGVzID0g MiwgLyogbGVnYWwsIGxhc3Qgb25lIHdpbnMgKi8KIAkuY3Vyc29yX25lZWRzX3BoeXNpY2FsID0g MSwKLQkuaGFzX2ZiYyA9IDEsCisJLl9faGFzX2ZiYyA9IDEsCiB9OwogCiBzdGF0aWMgY29uc3Qg c3RydWN0IGludGVsX2RldmljZV9pbmZvIGludGVsX2k4NjVnX2luZm8gPSB7CkBAIC0xMDQsOSAr MTA0LDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyBpbnRlbF9pODY1 Z19pbmZvID0gewogCiAjZGVmaW5lIEdFTjNfRkVBVFVSRVMgXAogCUdFTigzKSwgXAotCS5udW1f cGlwZXMgPSAyLCBcCisJLl9fbnVtX3BpcGVzID0gMiwgXAogCS5oYXNfZ21jaF9kaXNwbGF5ID0g MSwgXAotCS5yaW5nX21hc2sgPSBSRU5ERVJfUklORywgXAorCS5fX3JpbmdfbWFzayA9IFJFTkRF Ul9SSU5HLCBcCiAJLmhhc19zbm9vcCA9IHRydWUsIFwKIAkuaGFzX2NvaGVyZW50X2dndHQgPSB0 cnVlLCBcCiAJR0VOX0RFRkFVTFRfUElQRU9GRlNFVFMsIFwKQEAgLTEzMCw3ICsxMzAsNyBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZvIGludGVsX2k5MTVnbV9pbmZvID0g ewogCS5jdXJzb3JfbmVlZHNfcGh5c2ljYWwgPSAxLAogCS5oYXNfb3ZlcmxheSA9IDEsIC5vdmVy bGF5X25lZWRzX3BoeXNpY2FsID0gMSwKIAkuc3VwcG9ydHNfdHYgPSAxLAotCS5oYXNfZmJjID0g MSwKKwkuX19oYXNfZmJjID0gMSwKIAkuaHdzX25lZWRzX3BoeXNpY2FsID0gMSwKIAkudW5mZW5j ZWRfbmVlZHNfYWxpZ25tZW50ID0gMSwKIH07CkBAIC0xNTEsNyArMTUxLDcgQEAgc3RhdGljIGNv bnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyBpbnRlbF9pOTQ1Z21faW5mbyA9IHsKIAkuaGFz X2hvdHBsdWcgPSAxLCAuY3Vyc29yX25lZWRzX3BoeXNpY2FsID0gMSwKIAkuaGFzX292ZXJsYXkg PSAxLCAub3ZlcmxheV9uZWVkc19waHlzaWNhbCA9IDEsCiAJLnN1cHBvcnRzX3R2ID0gMSwKLQku aGFzX2ZiYyA9IDEsCisJLl9faGFzX2ZiYyA9IDEsCiAJLmh3c19uZWVkc19waHlzaWNhbCA9IDEs CiAJLnVuZmVuY2VkX25lZWRzX2FsaWdubWVudCA9IDEsCiB9OwpAQCAtMTczLDEwICsxNzMsMTAg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyBpbnRlbF9waW5ldmlld19p bmZvID0gewogCiAjZGVmaW5lIEdFTjRfRkVBVFVSRVMgXAogCUdFTig0KSwgXAotCS5udW1fcGlw ZXMgPSAyLCBcCisJLl9fbnVtX3BpcGVzID0gMiwgXAogCS5oYXNfaG90cGx1ZyA9IDEsIFwKIAku aGFzX2dtY2hfZGlzcGxheSA9IDEsIFwKLQkucmluZ19tYXNrID0gUkVOREVSX1JJTkcsIFwKKwku X19yaW5nX21hc2sgPSBSRU5ERVJfUklORywgXAogCS5oYXNfc25vb3AgPSB0cnVlLCBcCiAJLmhh c19jb2hlcmVudF9nZ3R0ID0gdHJ1ZSwgXAogCUdFTl9ERUZBVUxUX1BJUEVPRkZTRVRTLCBcCkBA IC0xOTQsNyArMTk0LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyBp bnRlbF9pOTY1Z19pbmZvID0gewogc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5m byBpbnRlbF9pOTY1Z21faW5mbyA9IHsKIAlHRU40X0ZFQVRVUkVTLAogCVBMQVRGT1JNKElOVEVM X0k5NjVHTSksCi0JLmlzX21vYmlsZSA9IDEsIC5oYXNfZmJjID0gMSwKKwkuaXNfbW9iaWxlID0g MSwgLl9faGFzX2ZiYyA9IDEsCiAJLmhhc19vdmVybGF5ID0gMSwKIAkuc3VwcG9ydHNfdHYgPSAx LAogCS5od3NfbmVlZHNfcGh5c2ljYWwgPSAxLApAQCAtMjA0LDI2ICsyMDQsMjYgQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyBpbnRlbF9pOTY1Z21faW5mbyA9IHsKIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfZzQ1X2luZm8gPSB7CiAJ R0VONF9GRUFUVVJFUywKIAlQTEFURk9STShJTlRFTF9HNDUpLAotCS5yaW5nX21hc2sgPSBSRU5E RVJfUklORyB8IEJTRF9SSU5HLAorCS5fX3JpbmdfbWFzayA9IFJFTkRFUl9SSU5HIHwgQlNEX1JJ TkcsCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZvIGludGVsX2dt NDVfaW5mbyA9IHsKIAlHRU40X0ZFQVRVUkVTLAogCVBMQVRGT1JNKElOVEVMX0dNNDUpLAotCS5p c19tb2JpbGUgPSAxLCAuaGFzX2ZiYyA9IDEsCisJLmlzX21vYmlsZSA9IDEsIC5fX2hhc19mYmMg PSAxLAogCS5zdXBwb3J0c190diA9IDEsCi0JLnJpbmdfbWFzayA9IFJFTkRFUl9SSU5HIHwgQlNE X1JJTkcsCisJLl9fcmluZ19tYXNrID0gUkVOREVSX1JJTkcgfCBCU0RfUklORywKIH07CiAKICNk ZWZpbmUgR0VONV9GRUFUVVJFUyBcCiAJR0VOKDUpLCBcCi0JLm51bV9waXBlcyA9IDIsIFwKKwku X19udW1fcGlwZXMgPSAyLCBcCiAJLmhhc19ob3RwbHVnID0gMSwgXAotCS5yaW5nX21hc2sgPSBS RU5ERVJfUklORyB8IEJTRF9SSU5HLCBcCisJLl9fcmluZ19tYXNrID0gUkVOREVSX1JJTkcgfCBC U0RfUklORywgXAogCS5oYXNfc25vb3AgPSB0cnVlLCBcCiAJLmhhc19jb2hlcmVudF9nZ3R0ID0g dHJ1ZSwgXAogCS8qIGlsayBkb2VzIHN1cHBvcnQgcmM2LCBidXQgd2UgZG8gbm90IGltcGxlbWVu dCBbcG93ZXJdIGNvbnRleHRzICovIFwKLQkuaGFzX3JjNiA9IDAsIFwKKwkuX19oYXNfcmM2ID0g MCwgXAogCUdFTl9ERUZBVUxUX1BJUEVPRkZTRVRTLCBcCiAJR0VOX0RFRkFVTFRfUEFHRV9TSVpF UywgXAogCUNVUlNPUl9PRkZTRVRTCkBAIC0yMzYsMjAgKzIzNiwyMCBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IGludGVsX2RldmljZV9pbmZvIGludGVsX2lyb25sYWtlX2RfaW5mbyA9IHsKIHN0YXRp YyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfaXJvbmxha2VfbV9pbmZvID0g ewogCUdFTjVfRkVBVFVSRVMsCiAJUExBVEZPUk0oSU5URUxfSVJPTkxBS0UpLAotCS5pc19tb2Jp bGUgPSAxLCAuaGFzX2ZiYyA9IDEsCisJLmlzX21vYmlsZSA9IDEsIC5fX2hhc19mYmMgPSAxLAog fTsKIAogI2RlZmluZSBHRU42X0ZFQVRVUkVTIFwKIAlHRU4oNiksIFwKLQkubnVtX3BpcGVzID0g MiwgXAorCS5fX251bV9waXBlcyA9IDIsIFwKIAkuaGFzX2hvdHBsdWcgPSAxLCBcCi0JLmhhc19m YmMgPSAxLCBcCi0JLnJpbmdfbWFzayA9IFJFTkRFUl9SSU5HIHwgQlNEX1JJTkcgfCBCTFRfUklO RywgXAorCS5fX2hhc19mYmMgPSAxLCBcCisJLl9fcmluZ19tYXNrID0gUkVOREVSX1JJTkcgfCBC U0RfUklORyB8IEJMVF9SSU5HLCBcCiAJLmhhc19jb2hlcmVudF9nZ3R0ID0gdHJ1ZSwgXAogCS5o YXNfbGxjID0gMSwgXAotCS5oYXNfcmM2ID0gMSwgXAotCS5oYXNfcmM2cCA9IDEsIFwKLQkucHBn dHQgPSBJTlRFTF9QUEdUVF9BTElBU0lORywgXAorCS5fX2hhc19yYzYgPSAxLCBcCisJLl9faGFz X3JjNnAgPSAxLCBcCisJLl9fcHBndHQgPSBJTlRFTF9QUEdUVF9BTElBU0lORywgXAogCUdFTl9E RUZBVUxUX1BJUEVPRkZTRVRTLCBcCiAJR0VOX0RFRkFVTFRfUEFHRV9TSVpFUywgXAogCUNVUlNP Ul9PRkZTRVRTCkBAIC0yODYsMTUgKzI4NiwxNSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVs X2RldmljZV9pbmZvIGludGVsX3NhbmR5YnJpZGdlX21fZ3QyX2luZm8gPSB7CiAKICNkZWZpbmUg R0VON19GRUFUVVJFUyAgXAogCUdFTig3KSwgXAotCS5udW1fcGlwZXMgPSAzLCBcCisJLl9fbnVt X3BpcGVzID0gMywgXAogCS5oYXNfaG90cGx1ZyA9IDEsIFwKLQkuaGFzX2ZiYyA9IDEsIFwKLQku cmluZ19tYXNrID0gUkVOREVSX1JJTkcgfCBCU0RfUklORyB8IEJMVF9SSU5HLCBcCisJLl9faGFz X2ZiYyA9IDEsIFwKKwkuX19yaW5nX21hc2sgPSBSRU5ERVJfUklORyB8IEJTRF9SSU5HIHwgQkxU X1JJTkcsIFwKIAkuaGFzX2NvaGVyZW50X2dndHQgPSB0cnVlLCBcCiAJLmhhc19sbGMgPSAxLCBc Ci0JLmhhc19yYzYgPSAxLCBcCi0JLmhhc19yYzZwID0gMSwgXAotCS5wcGd0dCA9IElOVEVMX1BQ R1RUX0ZVTEwsIFwKKwkuX19oYXNfcmM2ID0gMSwgXAorCS5fX2hhc19yYzZwID0gMSwgXAorCS5f X3BwZ3R0ID0gSU5URUxfUFBHVFRfRlVMTCwgXAogCUdFTl9ERUZBVUxUX1BJUEVPRkZTRVRTLCBc CiAJR0VOX0RFRkFVTFRfUEFHRV9TSVpFUywgXAogCUlWQl9DVVJTT1JfT0ZGU0VUUwpAQCAtMzM0 LDcgKzMzNCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxf aXZ5YnJpZGdlX3FfaW5mbyA9IHsKIAlHRU43X0ZFQVRVUkVTLAogCVBMQVRGT1JNKElOVEVMX0lW WUJSSURHRSksCiAJLmd0ID0gMiwKLQkubnVtX3BpcGVzID0gMCwgLyogbGVnYWwsIGxhc3Qgb25l IHdpbnMgKi8KKwkuX19udW1fcGlwZXMgPSAwLCAvKiBsZWdhbCwgbGFzdCBvbmUgd2lucyAqLwog CS5oYXNfbDNfZHBmID0gMSwKIH07CiAKQEAgLTM0MiwxNSArMzQyLDE1IEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfdmFsbGV5dmlld19pbmZvID0gewogCVBM QVRGT1JNKElOVEVMX1ZBTExFWVZJRVcpLAogCUdFTig3KSwKIAkuaXNfbHAgPSAxLAotCS5udW1f cGlwZXMgPSAyLAorCS5fX251bV9waXBlcyA9IDIsCiAJLmhhc19ydW50aW1lX3BtID0gMSwKLQku aGFzX3JjNiA9IDEsCisJLl9faGFzX3JjNiA9IDEsCiAJLmhhc19nbWNoX2Rpc3BsYXkgPSAxLAog CS5oYXNfaG90cGx1ZyA9IDEsCi0JLnBwZ3R0ID0gSU5URUxfUFBHVFRfRlVMTCwKKwkuX19wcGd0 dCA9IElOVEVMX1BQR1RUX0ZVTEwsCiAJLmhhc19zbm9vcCA9IHRydWUsCiAJLmhhc19jb2hlcmVu dF9nZ3R0ID0gZmFsc2UsCi0JLnJpbmdfbWFzayA9IFJFTkRFUl9SSU5HIHwgQlNEX1JJTkcgfCBC TFRfUklORywKKwkuX19yaW5nX21hc2sgPSBSRU5ERVJfUklORyB8IEJTRF9SSU5HIHwgQkxUX1JJ TkcsCiAJLmRpc3BsYXlfbW1pb19vZmZzZXQgPSBWTFZfRElTUExBWV9CQVNFLAogCUdFTl9ERUZB VUxUX1BBR0VfU0laRVMsCiAJR0VOX0RFRkFVTFRfUElQRU9GRlNFVFMsCkBAIC0zNTksMTIgKzM1 OSwxMiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZvIGludGVsX3ZhbGxl eXZpZXdfaW5mbyA9IHsKIAogI2RlZmluZSBHNzVfRkVBVFVSRVMgIFwKIAlHRU43X0ZFQVRVUkVT LCBcCi0JLnJpbmdfbWFzayA9IFJFTkRFUl9SSU5HIHwgQlNEX1JJTkcgfCBCTFRfUklORyB8IFZF Qk9YX1JJTkcsIFwKKwkuX19yaW5nX21hc2sgPSBSRU5ERVJfUklORyB8IEJTRF9SSU5HIHwgQkxU X1JJTkcgfCBWRUJPWF9SSU5HLCBcCiAJLmhhc19kZGkgPSAxLCBcCiAJLmhhc19mcGdhX2RiZyA9 IDEsIFwKIAkuaGFzX3BzciA9IDEsIFwKIAkuaGFzX2RwX21zdCA9IDEsIFwKLQkuaGFzX3JjNnAg PSAwIC8qIFJDNnAgcmVtb3ZlZC1ieSBIU1cgKi8sIFwKKwkuX19oYXNfcmM2cCA9IDAgLyogUkM2 cCByZW1vdmVkLWJ5IEhTVyAqLywgXAogCS5oYXNfcnVudGltZV9wbSA9IDEKIAogI2RlZmluZSBI U1dfUExBVEZPUk0gXApAQCAtMzkxLDEwICszOTEsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBp bnRlbF9kZXZpY2VfaW5mbyBpbnRlbF9oYXN3ZWxsX2d0M19pbmZvID0gewogCUc3NV9GRUFUVVJF UywgXAogCUdFTig4KSwgXAogCUJEV19DT0xPUlMsIFwKLQkucGFnZV9zaXplcyA9IEk5MTVfR1RU X1BBR0VfU0laRV80SyB8IFwKKwkuX19wYWdlX3NpemVzID0gSTkxNV9HVFRfUEFHRV9TSVpFXzRL IHwgXAogCQkgICAgICBJOTE1X0dUVF9QQUdFX1NJWkVfMk0sIFwKIAkuaGFzX2xvZ2ljYWxfcmlu Z19jb250ZXh0cyA9IDEsIFwKLQkucHBndHQgPSBJTlRFTF9QUEdUVF9GVUxMXzRMVkwsIFwKKwku X19wcGd0dCA9IElOVEVMX1BQR1RUX0ZVTExfNExWTCwgXAogCS5oYXNfNjRiaXRfcmVsb2MgPSAx LCBcCiAJLmhhc19yZXNldF9lbmdpbmUgPSAxCiAKQEAgLTQyMywyMiArNDIzLDIyIEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfYnJvYWR3ZWxsX3JzdmRfaW5m byA9IHsKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfYnJvYWR3 ZWxsX2d0M19pbmZvID0gewogCUJEV19QTEFURk9STSwKIAkuZ3QgPSAzLAotCS5yaW5nX21hc2sg PSBSRU5ERVJfUklORyB8IEJTRF9SSU5HIHwgQkxUX1JJTkcgfCBWRUJPWF9SSU5HIHwgQlNEMl9S SU5HLAorCS5fX3JpbmdfbWFzayA9IFJFTkRFUl9SSU5HIHwgQlNEX1JJTkcgfCBCTFRfUklORyB8 IFZFQk9YX1JJTkcgfCBCU0QyX1JJTkcsCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVs X2RldmljZV9pbmZvIGludGVsX2NoZXJyeXZpZXdfaW5mbyA9IHsKIAlQTEFURk9STShJTlRFTF9D SEVSUllWSUVXKSwKIAlHRU4oOCksCi0JLm51bV9waXBlcyA9IDMsCisJLl9fbnVtX3BpcGVzID0g MywKIAkuaGFzX2hvdHBsdWcgPSAxLAogCS5pc19scCA9IDEsCi0JLnJpbmdfbWFzayA9IFJFTkRF Ul9SSU5HIHwgQlNEX1JJTkcgfCBCTFRfUklORyB8IFZFQk9YX1JJTkcsCisJLl9fcmluZ19tYXNr ID0gUkVOREVSX1JJTkcgfCBCU0RfUklORyB8IEJMVF9SSU5HIHwgVkVCT1hfUklORywKIAkuaGFz XzY0Yml0X3JlbG9jID0gMSwKIAkuaGFzX3J1bnRpbWVfcG0gPSAxLAotCS5oYXNfcmM2ID0gMSwK KwkuX19oYXNfcmM2ID0gMSwKIAkuaGFzX2xvZ2ljYWxfcmluZ19jb250ZXh0cyA9IDEsCiAJLmhh c19nbWNoX2Rpc3BsYXkgPSAxLAotCS5wcGd0dCA9IElOVEVMX1BQR1RUX0ZVTEwsCisJLl9fcHBn dHQgPSBJTlRFTF9QUEdUVF9GVUxMLAogCS5oYXNfcmVzZXRfZW5naW5lID0gMSwKIAkuaGFzX3Nu b29wID0gdHJ1ZSwKIAkuaGFzX2NvaGVyZW50X2dndHQgPSBmYWxzZSwKQEAgLTQ1MCw3ICs0NTAs NyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZvIGludGVsX2NoZXJyeXZp ZXdfaW5mbyA9IHsKIH07CiAKICNkZWZpbmUgR0VOOV9ERUZBVUxUX1BBR0VfU0laRVMgXAotCS5w YWdlX3NpemVzID0gSTkxNV9HVFRfUEFHRV9TSVpFXzRLIHwgXAorCS5fX3BhZ2Vfc2l6ZXMgPSBJ OTE1X0dUVF9QQUdFX1NJWkVfNEsgfCBcCiAJCSAgICAgIEk5MTVfR1RUX1BBR0VfU0laRV82NEsg fCBcCiAJCSAgICAgIEk5MTVfR1RUX1BBR0VfU0laRV8yTQogCkBAIC00ODIsNyArNDgyLDcgQEAg c3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyBpbnRlbF9za3lsYWtlX2d0Ml9p bmZvID0gewogCiAjZGVmaW5lIFNLTF9HVDNfUExVU19QTEFURk9STSBcCiAJU0tMX1BMQVRGT1JN LCBcCi0JLnJpbmdfbWFzayA9IFJFTkRFUl9SSU5HIHwgQlNEX1JJTkcgfCBCTFRfUklORyB8IFZF Qk9YX1JJTkcgfCBCU0QyX1JJTkcKKwkuX19yaW5nX21hc2sgPSBSRU5ERVJfUklORyB8IEJTRF9S SU5HIHwgQkxUX1JJTkcgfCBWRUJPWF9SSU5HIHwgQlNEMl9SSU5HCiAKIAogc3RhdGljIGNvbnN0 IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyBpbnRlbF9za3lsYWtlX2d0M19pbmZvID0gewpAQCAt NDk5LDIxICs0OTksMjEgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyBp bnRlbF9za3lsYWtlX2d0NF9pbmZvID0gewogCUdFTig5KSwgXAogCS5pc19scCA9IDEsIFwKIAku aGFzX2hvdHBsdWcgPSAxLCBcCi0JLnJpbmdfbWFzayA9IFJFTkRFUl9SSU5HIHwgQlNEX1JJTkcg fCBCTFRfUklORyB8IFZFQk9YX1JJTkcsIFwKLQkubnVtX3BpcGVzID0gMywgXAorCS5fX3Jpbmdf bWFzayA9IFJFTkRFUl9SSU5HIHwgQlNEX1JJTkcgfCBCTFRfUklORyB8IFZFQk9YX1JJTkcsIFwK KwkuX19udW1fcGlwZXMgPSAzLCBcCiAJLmhhc182NGJpdF9yZWxvYyA9IDEsIFwKIAkuaGFzX2Rk aSA9IDEsIFwKIAkuaGFzX2ZwZ2FfZGJnID0gMSwgXAotCS5oYXNfZmJjID0gMSwgXAorCS5fX2hh c19mYmMgPSAxLCBcCiAJLmhhc19wc3IgPSAxLCBcCiAJLmhhc19ydW50aW1lX3BtID0gMSwgXAog CS5oYXNfY3NyID0gMSwgXAotCS5oYXNfcmM2ID0gMSwgXAorCS5fX2hhc19yYzYgPSAxLCBcCiAJ Lmhhc19kcF9tc3QgPSAxLCBcCiAJLmhhc19sb2dpY2FsX3JpbmdfY29udGV4dHMgPSAxLCBcCiAJ Lmhhc19sb2dpY2FsX3JpbmdfcHJlZW1wdGlvbiA9IDEsIFwKIAkuaGFzX2d1YyA9IDEsIFwKLQku cHBndHQgPSBJTlRFTF9QUEdUVF9GVUxMXzRMVkwsIFwKKwkuX19wcGd0dCA9IElOVEVMX1BQR1RU X0ZVTExfNExWTCwgXAogCS5oYXNfcmVzZXRfZW5naW5lID0gMSwgXAogCS5oYXNfc25vb3AgPSB0 cnVlLCBcCiAJLmhhc19jb2hlcmVudF9nZ3R0ID0gZmFsc2UsIFwKQEAgLTU1Myw3ICs1NTMsNyBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZvIGludGVsX2thYnlsYWtlX2d0 Ml9pbmZvID0gewogc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyBpbnRlbF9r YWJ5bGFrZV9ndDNfaW5mbyA9IHsKIAlLQkxfUExBVEZPUk0sCiAJLmd0ID0gMywKLQkucmluZ19t YXNrID0gUkVOREVSX1JJTkcgfCBCU0RfUklORyB8IEJMVF9SSU5HIHwgVkVCT1hfUklORyB8IEJT RDJfUklORywKKwkuX19yaW5nX21hc2sgPSBSRU5ERVJfUklORyB8IEJTRF9SSU5HIHwgQkxUX1JJ TkcgfCBWRUJPWF9SSU5HIHwgQlNEMl9SSU5HLAogfTsKIAogI2RlZmluZSBDRkxfUExBVEZPUk0g XApAQCAtNTczLDcgKzU3Myw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2lu Zm8gaW50ZWxfY29mZmVlbGFrZV9ndDJfaW5mbyA9IHsKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50 ZWxfZGV2aWNlX2luZm8gaW50ZWxfY29mZmVlbGFrZV9ndDNfaW5mbyA9IHsKIAlDRkxfUExBVEZP Uk0sCiAJLmd0ID0gMywKLQkucmluZ19tYXNrID0gUkVOREVSX1JJTkcgfCBCU0RfUklORyB8IEJM VF9SSU5HIHwgVkVCT1hfUklORyB8IEJTRDJfUklORywKKwkuX19yaW5nX21hc2sgPSBSRU5ERVJf UklORyB8IEJTRF9SSU5HIHwgQkxUX1JJTkcgfCBWRUJPWF9SSU5HIHwgQlNEMl9SSU5HLAogfTsK IAogI2RlZmluZSBHRU4xMF9GRUFUVVJFUyBcCkBAIC02MDUsNyArNjA1LDcgQEAgc3RhdGljIGNv bnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyBpbnRlbF9pY2VsYWtlXzExX2luZm8gPSB7CiAJ R0VOMTFfRkVBVFVSRVMsCiAJUExBVEZPUk0oSU5URUxfSUNFTEFLRSksCiAJLmlzX2FscGhhX3N1 cHBvcnQgPSAxLAotCS5yaW5nX21hc2sgPSBSRU5ERVJfUklORyB8IEJMVF9SSU5HIHwgVkVCT1hf UklORyB8IEJTRF9SSU5HIHwgQlNEM19SSU5HLAorCS5fX3JpbmdfbWFzayA9IFJFTkRFUl9SSU5H IHwgQkxUX1JJTkcgfCBWRUJPWF9SSU5HIHwgQlNEX1JJTkcgfCBCU0QzX1JJTkcsCiB9OwogCiAj dW5kZWYgR0VOCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9iaW9zLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9iaW9zLmMKaW5kZXggMGFkMjMwNDQ1N2FiLi5j MzFiZmFjNTIwMWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Jpb3Mu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9iaW9zLmMKQEAgLTE3MjEsNyArMTcy MSw3IEBAIHZvaWQgaW50ZWxfYmlvc19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKIAljb25zdCBzdHJ1Y3QgYmRiX2hlYWRlciAqYmRiOwogCXU4IF9faW9tZW0gKmJpb3Mg PSBOVUxMOwogCi0JaWYgKElOVEVMX0lORk8oZGV2X3ByaXYpLT5udW1fcGlwZXMgPT0gMCkgewor CWlmIChkZXZfcHJpdi0+cnVudGltZV9pbmZvLm51bV9waXBlcyA9PSAwKSB7CiAJCURSTV9ERUJV R19LTVMoIlNraXBwaW5nIFZCVCBpbml0IGR1ZSB0byBkaXNhYmxlZCBkaXNwbGF5LlxuIik7CiAJ CXJldHVybjsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZp Y2VfaW5mby5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uYwppbmRl eCA4Mzg1NzY3YWFmMDguLmFlYjdiOTIyNWIxOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kZXZpY2VfaW5mby5jCkBAIC0xMzEsNyArMTMxLDcgQEAgdm9pZCBpbnRlbF9kZXZpY2VfaW5m b19kdW1wKGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyAqaW5mbywKIAkJICAgSU5URUxf REVWSUQoZGV2X3ByaXYpLAogCQkgICBJTlRFTF9SRVZJRChkZXZfcHJpdiksCiAJCSAgIGludGVs X3BsYXRmb3JtX25hbWUoaW5mby0+cGxhdGZvcm0pLAotCQkgICBpbmZvLT5nZW4pOworCQkgICBp bmZvLT5fX2dlbik7CiAKIAlpbnRlbF9kZXZpY2VfaW5mb19kdW1wX2ZsYWdzKGluZm8sIHApOwog fQpAQCAtNzQ4LDcgKzc0OCw2IEBAIHN0YXRpYyB1MzIgcmVhZF90aW1lc3RhbXBfZnJlcXVlbmN5 KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKICAqLwogdm9pZCBpbnRlbF9kZXZp Y2VfaW5mb19ydW50aW1lX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQog ewotCXN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyAqaW5mbyA9IG1rd3JpdGVfZGV2aWNlX2luZm8o ZGV2X3ByaXYpOwogCXN0cnVjdCBpbnRlbF9ydW50aW1lX2RldmljZV9pbmZvICpydW50aW1lX2lu Zm8gPQogCQkmZGV2X3ByaXYtPnJ1bnRpbWVfaW5mbzsKIAllbnVtIHBpcGUgcGlwZTsKQEAgLTc5 Myw4ICs3OTIsOCBAQCB2b2lkIGludGVsX2RldmljZV9pbmZvX3J1bnRpbWVfaW5pdChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAKIAlpZiAoaTkxNV9tb2RwYXJhbXMuZGlzYWJs ZV9kaXNwbGF5KSB7CiAJCURSTV9JTkZPKCJEaXNwbGF5IGRpc2FibGVkIChtb2R1bGUgcGFyYW1l dGVyKVxuIik7Ci0JCWluZm8tPm51bV9waXBlcyA9IDA7Ci0JfSBlbHNlIGlmIChpbmZvLT5udW1f cGlwZXMgPiAwICYmCisJCXJ1bnRpbWVfaW5mby0+bnVtX3BpcGVzID0gMDsKKwl9IGVsc2UgaWYg KHJ1bnRpbWVfaW5mby0+bnVtX3BpcGVzID4gMCAmJgogCQkgICAoSVNfR0VONyhkZXZfcHJpdikg fHwgSVNfR0VOOChkZXZfcHJpdikpICYmCiAJCSAgIEhBU19QQ0hfU1BMSVQoZGV2X3ByaXYpKSB7 CiAJCXUzMiBmdXNlX3N0cmFwID0gSTkxNV9SRUFEKEZVU0VfU1RSQVApOwpAQCAtODE0LDEyICs4 MTMsMTIgQEAgdm9pZCBpbnRlbF9kZXZpY2VfaW5mb19ydW50aW1lX2luaXQoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQkgICAgKEhBU19QQ0hfQ1BUKGRldl9wcml2KSAmJgog CQkgICAgICEoc2Z1c2Vfc3RyYXAgJiBTRlVTRV9TVFJBUF9GVVNFX0xPQ0spKSkgewogCQkJRFJN X0lORk8oIkRpc3BsYXkgZnVzZWQgb2ZmLCBkaXNhYmxpbmdcbiIpOwotCQkJaW5mby0+bnVtX3Bp cGVzID0gMDsKKwkJCXJ1bnRpbWVfaW5mby0+bnVtX3BpcGVzID0gMDsKIAkJfSBlbHNlIGlmIChm dXNlX3N0cmFwICYgSVZCX1BJUEVfQ19ESVNBQkxFKSB7CiAJCQlEUk1fSU5GTygiUGlwZUMgZnVz ZWQgb2ZmXG4iKTsKLQkJCWluZm8tPm51bV9waXBlcyAtPSAxOworCQkJcnVudGltZV9pbmZvLT5u dW1fcGlwZXMgLT0gMTsKIAkJfQotCX0gZWxzZSBpZiAoaW5mby0+bnVtX3BpcGVzID4gMCAmJiBJ U19HRU45KGRldl9wcml2KSkgeworCX0gZWxzZSBpZiAocnVudGltZV9pbmZvLT5udW1fcGlwZXMg PiAwICYmIElTX0dFTjkoZGV2X3ByaXYpKSB7CiAJCXUzMiBkZnNtID0gSTkxNV9SRUFEKFNLTF9E RlNNKTsKIAkJdTggZGlzYWJsZWRfbWFzayA9IDA7CiAJCWJvb2wgaW52YWxpZDsKQEAgLTg0NSwx MSArODQ0LDExIEBAIHZvaWQgaW50ZWxfZGV2aWNlX2luZm9fcnVudGltZV9pbml0KHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJCWludmFsaWQgPSBmYWxzZTsKIAkJfQogCi0J CWlmIChudW1fYml0cyA+IGluZm8tPm51bV9waXBlcyB8fCBpbnZhbGlkKQorCQlpZiAobnVtX2Jp dHMgPiBydW50aW1lX2luZm8tPm51bV9waXBlcyB8fCBpbnZhbGlkKQogCQkJRFJNX0VSUk9SKCJp bnZhbGlkIHBpcGUgZnVzZSBjb25maWd1cmF0aW9uOiAweCV4XG4iLAogCQkJCSAgZGlzYWJsZWRf bWFzayk7CiAJCWVsc2UKLQkJCWluZm8tPm51bV9waXBlcyAtPSBudW1fYml0czsKKwkJCXJ1bnRp bWVfaW5mby0+bnVtX3BpcGVzIC09IG51bV9iaXRzOwogCX0KIAogCS8qIEluaXRpYWxpemUgc2xp Y2Uvc3Vic2xpY2UvRVUgaW5mbyAqLwpAQCAtODY4LDcgKzg2Nyw3IEBAIHZvaWQgaW50ZWxfZGV2 aWNlX2luZm9fcnVudGltZV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK IAogCWlmIChJU19HRU42KGRldl9wcml2KSAmJiBpbnRlbF92dGRfYWN0aXZlKCkpIHsKIAkJRFJN X0lORk8oIkRpc2FibGluZyBwcEdUVCBmb3IgVlQtZCBzdXBwb3J0XG4iKTsKLQkJaW5mby0+cHBn dHQgPSBJTlRFTF9QUEdUVF9OT05FOworCQlydW50aW1lX2luZm8tPnBwZ3R0ID0gSU5URUxfUFBH VFRfTk9ORTsKIAl9CiAKIAkvKiBJbml0aWFsaXplIGNvbW1hbmQgc3RyZWFtIHRpbWVzdGFtcCBm cmVxdWVuY3kgKi8KQEAgLTg5Miw3ICs4OTEsNiBAQCB2b2lkIGludGVsX2RyaXZlcl9jYXBzX3By aW50KGNvbnN0IHN0cnVjdCBpbnRlbF9kcml2ZXJfY2FwcyAqY2FwcywKICAqLwogdm9pZCBpbnRl bF9kZXZpY2VfaW5mb19pbml0X21taW8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQogewotCXN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyAqaW5mbyA9IG1rd3JpdGVfZGV2aWNlX2lu Zm8oZGV2X3ByaXYpOwogCXN0cnVjdCBpbnRlbF9ydW50aW1lX2RldmljZV9pbmZvICpydW50aW1l X2luZm8gPQogCQkmZGV2X3ByaXYtPnJ1bnRpbWVfaW5mbzsKIAl1MzIgbWVkaWFfZnVzZTsKQEAg LTkxNCw3ICs5MTIsNyBAQCB2b2lkIGludGVsX2RldmljZV9pbmZvX2luaXRfbW1pbyhzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCQljb250aW51ZTsKIAogCQlpZiAoIShCSVQo aSkgJiBydW50aW1lX2luZm8tPnZkYm94X2VuYWJsZSkpIHsKLQkJCWluZm8tPnJpbmdfbWFzayAm PSB+RU5HSU5FX01BU0soX1ZDUyhpKSk7CisJCQlydW50aW1lX2luZm8tPnJpbmdfbWFzayAmPSB+ RU5HSU5FX01BU0soX1ZDUyhpKSk7CiAJCQlEUk1fREVCVUdfRFJJVkVSKCJ2Y3MldSBmdXNlZCBv ZmZcbiIsIGkpOwogCQl9CiAJfQpAQCAtOTI1LDcgKzkyMyw3IEBAIHZvaWQgaW50ZWxfZGV2aWNl X2luZm9faW5pdF9tbWlvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJCWNv bnRpbnVlOwogCiAJCWlmICghKEJJVChpKSAmIHJ1bnRpbWVfaW5mby0+dmVib3hfZW5hYmxlKSkg ewotCQkJaW5mby0+cmluZ19tYXNrICY9IH5FTkdJTkVfTUFTSyhfVkVDUyhpKSk7CisJCQlydW50 aW1lX2luZm8tPnJpbmdfbWFzayAmPSB+RU5HSU5FX01BU0soX1ZFQ1MoaSkpOwogCQkJRFJNX0RF QlVHX0RSSVZFUigidmVjcyV1IGZ1c2VkIG9mZlxuIiwgaSk7CiAJCX0KIAl9CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5oIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uaAppbmRleCA4M2UxOWFjOGU0MDEuLjUwYzhmZGEy MGJkZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8u aAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5oCkBAIC05Myw3 ICs5Myw3IEBAIGVudW0gaW50ZWxfcHBndHQgewogCWZ1bmMoaGFzX2RkaSk7IFwKIAlmdW5jKGhh c19kcF9tc3QpOyBcCiAJZnVuYyhoYXNfcmVzZXRfZW5naW5lKTsgXAotCWZ1bmMoaGFzX2ZiYyk7 IFwKKwlmdW5jKF9faGFzX2ZiYyk7IFwKIAlmdW5jKGhhc19mcGdhX2RiZyk7IFwKIAlmdW5jKGhh c19nbWNoX2Rpc3BsYXkpOyBcCiAJZnVuYyhoYXNfZ3VjKTsgXApAQCAtMTA2LDggKzEwNiw4IEBA IGVudW0gaW50ZWxfcHBndHQgewogCWZ1bmMoaGFzX2xvZ2ljYWxfcmluZ19wcmVlbXB0aW9uKTsg XAogCWZ1bmMoaGFzX292ZXJsYXkpOyBcCiAJZnVuYyhoYXNfcHNyKTsgXAotCWZ1bmMoaGFzX3Jj Nik7IFwKLQlmdW5jKGhhc19yYzZwKTsgXAorCWZ1bmMoX19oYXNfcmM2KTsgXAorCWZ1bmMoX19o YXNfcmM2cCk7IFwKIAlmdW5jKGhhc19ydW50aW1lX3BtKTsgXAogCWZ1bmMoaGFzX3Nub29wKTsg XAogCWZ1bmMoaGFzX2NvaGVyZW50X2dndHQpOyBcCkBAIC0xNDgsMTkgKzE0OCwxOCBAQCBzdHJ1 Y3Qgc3NldV9kZXZfaW5mbyB7CiB0eXBlZGVmIHU4IGludGVsX3JpbmdfbWFza190OwogCiBzdHJ1 Y3QgaW50ZWxfZGV2aWNlX2luZm8gewotCXUxNiBkZXZpY2VfaWQ7CiAJdTE2IGdlbl9tYXNrOwog Ci0JdTggZ2VuOworCXU4IF9fZ2VuOwogCXU4IGd0OyAvKiBHVCBudW1iZXIsIDAgaWYgdW5kZWZp bmVkICovCi0JaW50ZWxfcmluZ19tYXNrX3QgcmluZ19tYXNrOyAvKiBSaW5ncyBzdXBwb3J0ZWQg YnkgdGhlIEhXICovCi0JdTggbnVtX3BpcGVzOworCWludGVsX3JpbmdfbWFza190IF9fcmluZ19t YXNrOyAvKiBSaW5ncyBzdXBwb3J0ZWQgYnkgdGhlIEhXICovCisJdTggX19udW1fcGlwZXM7CiAK IAllbnVtIGludGVsX3BsYXRmb3JtIHBsYXRmb3JtOwogCXUzMiBwbGF0Zm9ybV9tYXNrOwogCi0J ZW51bSBpbnRlbF9wcGd0dCBwcGd0dDsKLQl1bnNpZ25lZCBpbnQgcGFnZV9zaXplczsgLyogcGFn ZSBzaXplcyBzdXBwb3J0ZWQgYnkgdGhlIEhXICovCisJZW51bSBpbnRlbF9wcGd0dCBfX3BwZ3R0 OworCXVuc2lnbmVkIGludCBfX3BhZ2Vfc2l6ZXM7IC8qIHBhZ2Ugc2l6ZXMgc3VwcG9ydGVkIGJ5 IHRoZSBIVyAqLwogCiAJdTMyIGRpc3BsYXlfbW1pb19vZmZzZXQ7CiAKQEAgLTE4MSwxMSArMTgw LDI0IEBAIHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyB7CiB9OwogCiAjZGVmaW5lIERFVl9SVU5U SU1FX0lORk9fRk9SX0VBQ0hfRkxBRyhmdW5jKSBcCisJZnVuYyhoYXNfZmJjKTsgXAogCWZ1bmMo aGFzX3Bvb2xlZF9ldSk7IFwKKwlmdW5jKGhhc19yYzYpOyBcCisJZnVuYyhoYXNfcmM2cCk7IFwK IAogc3RydWN0IGludGVsX3J1bnRpbWVfZGV2aWNlX2luZm8geworCWludCBnZW47CisKIAl1bnNp Z25lZCBpbnQgbnVtX3JpbmdzOwogCisJZW51bSBpbnRlbF9wcGd0dCBwcGd0dDsKKwl1bnNpZ25l ZCBpbnQgcGFnZV9zaXplczsgLyogcGFnZSBzaXplcyBzdXBwb3J0ZWQgYnkgdGhlIEhXICovCisK Kwl1MTYgZGV2aWNlX2lkOworCisJaW50ZWxfcmluZ19tYXNrX3QgcmluZ19tYXNrOyAvKiBSaW5n cyBzdXBwb3J0ZWQgYnkgdGhlIEhXICovCisJdTggbnVtX3BpcGVzOworCiAJdTggbnVtX3Nwcml0 ZXNbSTkxNV9NQVhfUElQRVNdOwogCXU4IG51bV9zY2FsZXJzW0k5MTVfTUFYX1BJUEVTXTsKIApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCmluZGV4IGNjMzBiZjExNzJhZC4uZTg3ZjRm YzY0OGRlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCkBAIC02MzcyLDcgKzYz NzIsNyBAQCBzdGF0aWMgaW50IGlyb25sYWtlX2NoZWNrX2ZkaV9sYW5lcyhzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCBlbnVtIHBpcGUgcGlwZSwKIAkJfQogCX0KIAotCWlmIChJTlRFTF9JTkZPKGRl dl9wcml2KS0+bnVtX3BpcGVzID09IDIpCisJaWYgKGRldl9wcml2LT5ydW50aW1lX2luZm8ubnVt X3BpcGVzID09IDIpCiAJCXJldHVybiAwOwogCiAJLyogSXZ5YnJpZGdlIDMgcGlwZSBpcyByZWFs bHkgY29tcGxpY2F0ZWQgKi8KQEAgLTg1ODgsNyArODU4OCw3IEBAIHN0YXRpYyB2b2lkIGlyb25s YWtlX2NvbXB1dGVfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKIAkgKiBjbGVh ciBpZiBpdCcncyBhIHdpbiBvciBsb3NzIHBvd2VyIHdpc2UuIE5vIHBvaW50IGluIGRvaW5nCiAJ ICogdGhpcyBvbiBJTEsgYXQgYWxsIHNpbmNlIGl0IGhhcyBhIGZpeGVkIERQTEw8LT5waXBlIG1h cHBpbmcuCiAJICovCi0JaWYgKElOVEVMX0lORk8oZGV2X3ByaXYpLT5udW1fcGlwZXMgPT0gMyAm JgorCWlmIChkZXZfcHJpdi0+cnVudGltZV9pbmZvLm51bV9waXBlcyA9PSAzICYmCiAJICAgIGlu dGVsX2NydGNfaGFzX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0FOQUxPRykpCiAJCWRw bGwgfD0gRFBMTF9TRFZPX0hJR0hfU1BFRUQ7CiAKQEAgLTEyNjg0LDcgKzEyNjg0LDcgQEAgc3Rh dGljIHZvaWQgc2tsX3VwZGF0ZV9jcnRjcyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUp CiAKIAkJCWlmIChza2xfZGRiX2FsbG9jYXRpb25fb3ZlcmxhcHMoJmNzdGF0ZS0+d20uc2tsLmRk YiwKIAkJCQkJCQllbnRyaWVzLAotCQkJCQkJCUlOVEVMX0lORk8oZGV2X3ByaXYpLT5udW1fcGlw ZXMsIGkpKQorCQkJCQkJCWRldl9wcml2LT5ydW50aW1lX2luZm8ubnVtX3BpcGVzLCBpKSkKIAkJ CQljb250aW51ZTsKIAogCQkJdXBkYXRlZCB8PSBjbWFzazsKQEAgLTE0MTExLDcgKzE0MTExLDcg QEAgc3RhdGljIHZvaWQgaW50ZWxfc2V0dXBfb3V0cHV0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCiAKIAlpbnRlbF9wcHNfaW5pdChkZXZfcHJpdik7CiAKLQlpZiAoSU5URUxf SU5GTyhkZXZfcHJpdiktPm51bV9waXBlcyA9PSAwKQorCWlmIChkZXZfcHJpdi0+cnVudGltZV9p bmZvLm51bV9waXBlcyA9PSAwKQogCQlyZXR1cm47CiAKIAkvKgpAQCAtMTUwNjMsOCArMTUwNjMs OCBAQCBpbnQgaW50ZWxfbW9kZXNldF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJZGV2 LT5tb2RlX2NvbmZpZy5mYl9iYXNlID0gZ2d0dC0+Z21hZHIuc3RhcnQ7CiAKIAlEUk1fREVCVUdf S01TKCIlZCBkaXNwbGF5IHBpcGUlcyBhdmFpbGFibGUuXG4iLAotCQkgICAgICBJTlRFTF9JTkZP KGRldl9wcml2KS0+bnVtX3BpcGVzLAotCQkgICAgICBJTlRFTF9JTkZPKGRldl9wcml2KS0+bnVt X3BpcGVzID4gMSA/ICJzIiA6ICIiKTsKKwkJICAgICAgZGV2X3ByaXYtPnJ1bnRpbWVfaW5mby5u dW1fcGlwZXMsCisJCSAgICAgIGRldl9wcml2LT5ydW50aW1lX2luZm8ubnVtX3BpcGVzID4gMSA/ ICJzIiA6ICIiKTsKIAogCWZvcl9lYWNoX3BpcGUoZGV2X3ByaXYsIHBpcGUpIHsKIAkJcmV0ID0g aW50ZWxfY3J0Y19pbml0KGRldl9wcml2LCBwaXBlKTsKQEAgLTE1OTgzLDcgKzE1OTgzLDcgQEAg aW50ZWxfZGlzcGxheV9jYXB0dXJlX2Vycm9yX3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKIAl9OwogCWludCBpOwogCi0JaWYgKElOVEVMX0lORk8oZGV2X3ByaXYpLT5u dW1fcGlwZXMgPT0gMCkKKwlpZiAoZGV2X3ByaXYtPnJ1bnRpbWVfaW5mby5udW1fcGlwZXMgPT0g MCkKIAkJcmV0dXJuIE5VTEw7CiAKIAllcnJvciA9IGt6YWxsb2Moc2l6ZW9mKCplcnJvciksIEdG UF9BVE9NSUMpOwpAQCAtMTYwMjQsNyArMTYwMjQsNyBAQCBpbnRlbF9kaXNwbGF5X2NhcHR1cmVf ZXJyb3Jfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCX0KIAogCS8q IE5vdGU6IHRoaXMgZG9lcyBub3QgaW5jbHVkZSBEU0kgdHJhbnNjb2RlcnMuICovCi0JZXJyb3It Pm51bV90cmFuc2NvZGVycyA9IElOVEVMX0lORk8oZGV2X3ByaXYpLT5udW1fcGlwZXM7CisJZXJy b3ItPm51bV90cmFuc2NvZGVycyA9IGRldl9wcml2LT5ydW50aW1lX2luZm8ubnVtX3BpcGVzOwog CWlmIChIQVNfRERJKGRldl9wcml2KSkKIAkJZXJyb3ItPm51bV90cmFuc2NvZGVycysrOyAvKiBB Y2NvdW50IGZvciBlRFAuICovCiAKQEAgLTE2MDYzLDcgKzE2MDYzLDcgQEAgaW50ZWxfZGlzcGxh eV9wcmludF9lcnJvcl9zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfZXJyb3Jfc3RhdGVfYnVmICptLAog CWlmICghZXJyb3IpCiAJCXJldHVybjsKIAotCWVycl9wcmludGYobSwgIk51bSBQaXBlczogJWRc biIsIElOVEVMX0lORk8oZGV2X3ByaXYpLT5udW1fcGlwZXMpOworCWVycl9wcmludGYobSwgIk51 bSBQaXBlczogJWRcbiIsIGRldl9wcml2LT5ydW50aW1lX2luZm8ubnVtX3BpcGVzKTsKIAlpZiAo SVNfSEFTV0VMTChkZXZfcHJpdikgfHwgSVNfQlJPQURXRUxMKGRldl9wcml2KSkKIAkJZXJyX3By aW50ZihtLCAiUFdSX1dFTExfQ1RMMjogJTA4eFxuIiwKIAkJCSAgIGVycm9yLT5wb3dlcl93ZWxs X2RyaXZlcik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmgKaW5kZXggNjA3ZGRjNGEw YjExLi4wMGVmMzk0ZjA4ZDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmgKQEAg LTI4MiwxMCArMjgyLDEwIEBAIHN0cnVjdCBpbnRlbF9saW5rX21fbiB7CiB9OwogCiAjZGVmaW5l IGZvcl9lYWNoX3BpcGUoX19kZXZfcHJpdiwgX19wKSBcCi0JZm9yICgoX19wKSA9IDA7IChfX3Ap IDwgSU5URUxfSU5GTyhfX2Rldl9wcml2KS0+bnVtX3BpcGVzOyAoX19wKSsrKQorCWZvciAoKF9f cCkgPSAwOyAoX19wKSA8IChfX2Rldl9wcml2KS0+cnVudGltZV9pbmZvLm51bV9waXBlczsgKF9f cCkrKykKIAogI2RlZmluZSBmb3JfZWFjaF9waXBlX21hc2tlZChfX2Rldl9wcml2LCBfX3AsIF9f bWFzaykgXAotCWZvciAoKF9fcCkgPSAwOyAoX19wKSA8IElOVEVMX0lORk8oX19kZXZfcHJpdikt Pm51bV9waXBlczsgKF9fcCkrKykgXAorCWZvciAoKF9fcCkgPSAwOyAoX19wKSA8IChfX2Rldl9w cml2KS0+cnVudGltZV9pbmZvLm51bV9waXBlczsgKF9fcCkrKykgXAogCQlmb3JfZWFjaF9pZigo X19tYXNrKSAmIEJJVChfX3ApKQogCiAjZGVmaW5lIGZvcl9lYWNoX2NwdV90cmFuc2NvZGVyX21h c2tlZChfX2Rldl9wcml2LCBfX3QsIF9fbWFzaykgXApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9l bmdpbmVfY3MuYwppbmRleCBiNDY0ZWUwYWZiODUuLmVhMjFiZjY3MzBlZCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMKQEAgLTMyNSw4ICszMjUsNyBAQCBpbnRlbF9lbmdp bmVfc2V0dXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogICovCiBpbnQgaW50 ZWxfZW5naW5lc19pbml0X21taW8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQog ewotCXN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyAqZGV2aWNlX2luZm8gPSBta3dyaXRlX2Rldmlj ZV9pbmZvKGRldl9wcml2KTsKLQljb25zdCB1bnNpZ25lZCBpbnQgcmluZ19tYXNrID0gSU5URUxf SU5GTyhkZXZfcHJpdiktPnJpbmdfbWFzazsKKwljb25zdCB1bnNpZ25lZCBpbnQgcmluZ19tYXNr ID0gZGV2X3ByaXYtPnJ1bnRpbWVfaW5mby5yaW5nX21hc2s7CiAJc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lOwogCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOwogCXVuc2lnbmVkIGludCBt YXNrID0gMDsKQEAgLTM1Nyw3ICszNTYsNyBAQCBpbnQgaW50ZWxfZW5naW5lc19pbml0X21taW8o c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCSAqIGVuZ2luZXMuCiAJICovCiAJ aWYgKFdBUk5fT04obWFzayAhPSByaW5nX21hc2spKQotCQlkZXZpY2VfaW5mby0+cmluZ19tYXNr ID0gbWFzazsKKwkJZGV2X3ByaXYtPnJ1bnRpbWVfaW5mby5yaW5nX21hc2sgPSBtYXNrOwogCiAJ LyogV2UgYWx3YXlzIHByZXN1bWUgd2UgaGF2ZSBhdCBsZWFzdCBSQ1MgYXZhaWxhYmxlIGZvciBs YXRlciBwcm9iaW5nICovCiAJaWYgKFdBUk5fT04oIUhBU19FTkdJTkUoZGV2X3ByaXYsIFJDUykp KSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiYy5jCmluZGV4IDE0Y2JhZjRhMGU5My4uZmU5MjVhYmQx YzdhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYwpAQCAtMTMwOSw3ICsxMzA5LDcgQEAgdm9p ZCBpbnRlbF9mYmNfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJZmJj LT5hY3RpdmUgPSBmYWxzZTsKIAogCWlmIChuZWVkX2ZiY192dGRfd2EoZGV2X3ByaXYpKQotCQlt a3dyaXRlX2RldmljZV9pbmZvKGRldl9wcml2KS0+aGFzX2ZiYyA9IGZhbHNlOworCQlkZXZfcHJp di0+cnVudGltZV9pbmZvLmhhc19mYmMgPSBmYWxzZTsKIAogCWk5MTVfbW9kcGFyYW1zLmVuYWJs ZV9mYmMgPSBpbnRlbF9zYW5pdGl6ZV9mYmNfb3B0aW9uKGRldl9wcml2KTsKIAlEUk1fREVCVUdf S01TKCJTYW5pdGl6ZWQgZW5hYmxlX2ZiYyB2YWx1ZTogJWRcbiIsCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmRldi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZmJkZXYuYwppbmRleCAyNDgwYzdkNmVkZWUuLmUzYjhmOWNmMGYyNSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJkZXYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9mYmRldi5jCkBAIC00ODQsNyArNDg0LDcgQEAgc3RhdGljIGJvb2wgaW50ZWxf ZmJfaW5pdGlhbF9jb25maWcoc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciwKIAkgKiBm YmRldiBoZWxwZXIgbGlicmFyeS4KIAkgKi8KIAlpZiAobnVtX2Nvbm5lY3RvcnNfZW5hYmxlZCAh PSBudW1fY29ubmVjdG9yc19kZXRlY3RlZCAmJgotCSAgICBudW1fY29ubmVjdG9yc19lbmFibGVk IDwgSU5URUxfSU5GTyhkZXZfcHJpdiktPm51bV9waXBlcykgeworCSAgICBudW1fY29ubmVjdG9y c19lbmFibGVkIDwgZGV2X3ByaXYtPnJ1bnRpbWVfaW5mby5udW1fcGlwZXMpIHsKIAkJRFJNX0RF QlVHX0tNUygiZmFsbGJhY2s6IE5vdCBhbGwgb3V0cHV0cyBlbmFibGVkXG4iKTsKIAkJRFJNX0RF QlVHX0tNUygiRW5hYmxlZDogJWksIGRldGVjdGVkOiAlaVxuIiwgbnVtX2Nvbm5lY3RvcnNfZW5h YmxlZCwKIAkJCSAgICAgIG51bV9jb25uZWN0b3JzX2RldGVjdGVkKTsKQEAgLTY3Miw3ICs2NzIs NyBAQCBpbnQgaW50ZWxfZmJkZXZfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCXN0cnVj dCBpbnRlbF9mYmRldiAqaWZiZGV2OwogCWludCByZXQ7CiAKLQlpZiAoV0FSTl9PTihJTlRFTF9J TkZPKGRldl9wcml2KS0+bnVtX3BpcGVzID09IDApKQorCWlmIChXQVJOX09OKGRldl9wcml2LT5y dW50aW1lX2luZm8ubnVtX3BpcGVzID09IDApKQogCQlyZXR1cm4gLUVOT0RFVjsKIAogCWlmYmRl diA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBpbnRlbF9mYmRldiksIEdGUF9LRVJORUwpOwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX3N1Ym1pc3Npb24uYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19zdWJtaXNzaW9uLmMKaW5kZXggMTU3MGRjYmUy NDljLi5kZmU0YTVlZjE3ODQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2d1Y19zdWJtaXNzaW9uLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX3N1 Ym1pc3Npb24uYwpAQCAtMTAyNCw3ICsxMDI0LDcgQEAgc3RhdGljIGludCBndWNfY2xpZW50c19j cmVhdGUoc3RydWN0IGludGVsX2d1YyAqZ3VjKQogCUdFTV9CVUdfT04oZ3VjLT5wcmVlbXB0X2Ns aWVudCk7CiAKIAljbGllbnQgPSBndWNfY2xpZW50X2FsbG9jKGRldl9wcml2LAotCQkJCSAgSU5U RUxfSU5GTyhkZXZfcHJpdiktPnJpbmdfbWFzaywKKwkJCQkgIGRldl9wcml2LT5ydW50aW1lX2lu Zm8ucmluZ19tYXNrLAogCQkJCSAgR1VDX0NMSUVOVF9QUklPUklUWV9LTURfTk9STUFMLAogCQkJ CSAgZGV2X3ByaXYtPmtlcm5lbF9jb250ZXh0KTsKIAlpZiAoSVNfRVJSKGNsaWVudCkpIHsKQEAg LTEwMzUsNyArMTAzNSw3IEBAIHN0YXRpYyBpbnQgZ3VjX2NsaWVudHNfY3JlYXRlKHN0cnVjdCBp bnRlbF9ndWMgKmd1YykKIAogCWlmIChkZXZfcHJpdi0+cHJlZW1wdF9jb250ZXh0KSB7CiAJCWNs aWVudCA9IGd1Y19jbGllbnRfYWxsb2MoZGV2X3ByaXYsCi0JCQkJCSAgSU5URUxfSU5GTyhkZXZf cHJpdiktPnJpbmdfbWFzaywKKwkJCQkJICBkZXZfcHJpdi0+cnVudGltZV9pbmZvLnJpbmdfbWFz aywKIAkJCQkJICBHVUNfQ0xJRU5UX1BSSU9SSVRZX0tNRF9ISUdILAogCQkJCQkgIGRldl9wcml2 LT5wcmVlbXB0X2NvbnRleHQpOwogCQlpZiAoSVNfRVJSKGNsaWVudCkpIHsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2kyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfaTJjLmMKaW5kZXggMzNkODdhYjkzZmRkLi41NTQzNTk3ZWM3NGEgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2kyYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2kyYy5jCkBAIC04MTcsNyArODE3LDcgQEAgaW50IGludGVsX3NldHVwX2dtYnVz KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAl1bnNpZ25lZCBpbnQgcGluOwog CWludCByZXQ7CiAKLQlpZiAoSU5URUxfSU5GTyhkZXZfcHJpdiktPm51bV9waXBlcyA9PSAwKQor CWlmIChkZXZfcHJpdi0+cnVudGltZV9pbmZvLm51bV9waXBlcyA9PSAwKQogCQlyZXR1cm4gMDsK IAogCWlmIChJU19WQUxMRVlWSUVXKGRldl9wcml2KSB8fCBJU19DSEVSUllWSUVXKGRldl9wcml2 KSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xwZV9hdWRpby5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHBlX2F1ZGlvLmMKaW5kZXggNWQ1MzM2ZmJlN2Iw Li4yMmZhMzI3N2VlNTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xw ZV9hdWRpby5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xwZV9hdWRpby5jCkBA IC0xMTEsNyArMTExLDcgQEAgbHBlX2F1ZGlvX3BsYXRkZXZfY3JlYXRlKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKIAlwaW5mby5zaXplX2RhdGEgPSBzaXplb2YoKnBkYXRhKTsK IAlwaW5mby5kbWFfbWFzayA9IERNQV9CSVRfTUFTSygzMik7CiAKLQlwZGF0YS0+bnVtX3BpcGVz ID0gSU5URUxfSU5GTyhkZXZfcHJpdiktPm51bV9waXBlczsKKwlwZGF0YS0+bnVtX3BpcGVzID0g ZGV2X3ByaXYtPnJ1bnRpbWVfaW5mby5udW1fcGlwZXM7CiAJcGRhdGEtPm51bV9wb3J0cyA9IElT X0NIRVJSWVZJRVcoZGV2X3ByaXYpID8gMyA6IDI7IC8qIEIsQyxEIG9yIEIsQyAqLwogCXBkYXRh LT5wb3J0WzBdLnBpcGUgPSAtMTsKIAlwZGF0YS0+cG9ydFsxXS5waXBlID0gLTE7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcG0uYwppbmRleCAxNzI3MGQ4ZjE4ODAuLjE3NmE0YTE5Mzc3ZSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9wbS5jCkBAIC0xODk5LDcgKzE4OTksOCBAQCBzdGF0aWMgaW50IHZsdl9jb21w dXRlX3BpcGVfd20oc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAKIAlmb3Ig KGxldmVsID0gMDsgbGV2ZWwgPCB3bV9zdGF0ZS0+bnVtX2xldmVsczsgbGV2ZWwrKykgewogCQlj b25zdCBzdHJ1Y3QgZzR4X3BpcGVfd20gKnJhdyA9ICZjcnRjX3N0YXRlLT53bS52bHYucmF3W2xl dmVsXTsKLQkJY29uc3QgaW50IHNyX2ZpZm9fc2l6ZSA9IElOVEVMX0lORk8oZGV2X3ByaXYpLT5u dW1fcGlwZXMgKiA1MTIgLSAxOworCQljb25zdCBpbnQgc3JfZmlmb19zaXplID0KKwkJCWRldl9w cml2LT5ydW50aW1lX2luZm8ubnVtX3BpcGVzICogNTEyIC0gMTsKIAogCQlpZiAoIXZsdl9yYXdf Y3J0Y193bV9pc192YWxpZChjcnRjX3N0YXRlLCBsZXZlbCkpCiAJCQlicmVhazsKQEAgLTI2MzIs NyArMjYzMyw3IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgaWxrX3BsYW5lX3dtX21heChjb25zdCBz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCiAJLyogSFNXIGFsbG93cyBMUDErIHdhdGVybWFya3Mg ZXZlbiB3aXRoIG11bHRpcGxlIHBpcGVzICovCiAJaWYgKGxldmVsID09IDAgfHwgY29uZmlnLT5u dW1fcGlwZXNfYWN0aXZlID4gMSkgewotCQlmaWZvX3NpemUgLz0gSU5URUxfSU5GTyhkZXZfcHJp diktPm51bV9waXBlczsKKwkJZmlmb19zaXplIC89IGRldl9wcml2LT5ydW50aW1lX2luZm8ubnVt X3BpcGVzOwogCiAJCS8qCiAJCSAqIEZvciBzb21lIHJlYXNvbiB0aGUgbm9uIHNlbGYgcmVmcmVz aApAQCAtNjg4Niw3ICs2ODg3LDcgQEAgc3RhdGljIGJvb2wgYnh0X2NoZWNrX2Jpb3NfcmM2X3Nl dHVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAogc3RhdGljIGJvb2wgc2Fu aXRpemVfcmM2KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogewotCXN0cnVjdCBpbnRl bF9kZXZpY2VfaW5mbyAqaW5mbyA9IG1rd3JpdGVfZGV2aWNlX2luZm8oaTkxNSk7CisJc3RydWN0 IGludGVsX3J1bnRpbWVfZGV2aWNlX2luZm8gKmluZm8gPSAmaTkxNS0+cnVudGltZV9pbmZvOwog CiAJLyogUG93ZXJzYXZpbmcgaXMgY29udHJvbGxlZCBieSB0aGUgaG9zdCB3aGVuIGluc2lkZSBh IFZNICovCiAJaWYgKGludGVsX3ZncHVfYWN0aXZlKGk5MTUpKQpAQCAtOTQ5OCw3ICs5NDk5LDcg QEAgdm9pZCBpbnRlbF9pbml0X3BtKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK IAkJZGV2X3ByaXYtPmRpc3BsYXkudXBkYXRlX3dtID0gaTl4eF91cGRhdGVfd207CiAJCWRldl9w cml2LT5kaXNwbGF5LmdldF9maWZvX3NpemUgPSBpOXh4X2dldF9maWZvX3NpemU7CiAJfSBlbHNl IGlmIChJU19HRU4yKGRldl9wcml2KSkgewotCQlpZiAoSU5URUxfSU5GTyhkZXZfcHJpdiktPm51 bV9waXBlcyA9PSAxKSB7CisJCWlmIChkZXZfcHJpdi0+cnVudGltZV9pbmZvLm51bV9waXBlcyA9 PSAxKSB7CiAJCQlkZXZfcHJpdi0+ZGlzcGxheS51cGRhdGVfd20gPSBpODQ1X3VwZGF0ZV93bTsK IAkJCWRldl9wcml2LT5kaXNwbGF5LmdldF9maWZvX3NpemUgPSBpODQ1X2dldF9maWZvX3NpemU7 CiAJCX0gZWxzZSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMv aHVnZV9wYWdlcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2h1Z2VfcGFnZXMu YwppbmRleCAyNmMwNjVjOGQyYzAuLjkzNWRlZDUxYWRjMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvc2VsZnRlc3RzL2h1Z2VfcGFnZXMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9zZWxmdGVzdHMvaHVnZV9wYWdlcy5jCkBAIC0zNDEsNyArMzQxLDcgQEAgZmFrZV9odWdl X3BhZ2VzX29iamVjdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgdTY0IHNpemUsIGJv b2wgc2luZ2xlKQogc3RhdGljIGludCBpZ3RfY2hlY2tfcGFnZV9zaXplcyhzdHJ1Y3QgaTkxNV92 bWEgKnZtYSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHZtYS0+dm0tPmk5 MTU7Ci0JdW5zaWduZWQgaW50IHN1cHBvcnRlZCA9IElOVEVMX0lORk8oaTkxNSktPnBhZ2Vfc2l6 ZXM7CisJdW5zaWduZWQgaW50IHN1cHBvcnRlZCA9IGk5MTUtPnJ1bnRpbWVfaW5mby5wYWdlX3Np emVzOwogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSB2bWEtPm9iajsKIAlpbnQg ZXJyID0gMDsKIApAQCAtMzgyLDcgKzM4Miw3IEBAIHN0YXRpYyBpbnQgaWd0X21vY2tfZXhoYXVz dF9kZXZpY2Vfc3VwcG9ydGVkX3BhZ2VzKHZvaWQgKmFyZykKIHsKIAlzdHJ1Y3QgaTkxNV9od19w cGd0dCAqcHBndHQgPSBhcmc7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBwcGd0 dC0+dm0uaTkxNTsKLQl1bnNpZ25lZCBpbnQgc2F2ZWRfbWFzayA9IElOVEVMX0lORk8oaTkxNSkt PnBhZ2Vfc2l6ZXM7CisJdW5zaWduZWQgaW50IHNhdmVkX21hc2sgPSBpOTE1LT5ydW50aW1lX2lu Zm8ucGFnZV9zaXplczsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwogCXN0cnVj dCBpOTE1X3ZtYSAqdm1hOwogCWludCBpLCBqLCBzaW5nbGU7CkBAIC00MDEsNyArNDAxLDcgQEAg c3RhdGljIGludCBpZ3RfbW9ja19leGhhdXN0X2RldmljZV9zdXBwb3J0ZWRfcGFnZXModm9pZCAq YXJnKQogCQkJCWNvbWJpbmF0aW9uIHw9IHBhZ2Vfc2l6ZXNbal07CiAJCX0KIAotCQlta3dyaXRl X2RldmljZV9pbmZvKGk5MTUpLT5wYWdlX3NpemVzID0gY29tYmluYXRpb247CisJCWk5MTUtPnJ1 bnRpbWVfaW5mby5wYWdlX3NpemVzID0gY29tYmluYXRpb247CiAKIAkJZm9yIChzaW5nbGUgPSAw OyBzaW5nbGUgPD0gMTsgKytzaW5nbGUpIHsKIAkJCW9iaiA9IGZha2VfaHVnZV9wYWdlc19vYmpl Y3QoaTkxNSwgY29tYmluYXRpb24sICEhc2luZ2xlKTsKQEAgLTQ1Miw3ICs0NTIsNyBAQCBzdGF0 aWMgaW50IGlndF9tb2NrX2V4aGF1c3RfZGV2aWNlX3N1cHBvcnRlZF9wYWdlcyh2b2lkICphcmcp CiBvdXRfcHV0OgogCWk5MTVfZ2VtX29iamVjdF9wdXQob2JqKTsKIG91dF9kZXZpY2U6Ci0JbWt3 cml0ZV9kZXZpY2VfaW5mbyhpOTE1KS0+cGFnZV9zaXplcyA9IHNhdmVkX21hc2s7CisJaTkxNS0+ cnVudGltZV9pbmZvLnBhZ2Vfc2l6ZXMgPSBzYXZlZF9tYXNrOwogCiAJcmV0dXJuIGVycjsKIH0K QEAgLTQ2MSw3ICs0NjEsNyBAQCBzdGF0aWMgaW50IGlndF9tb2NrX3BwZ3R0X21pc2FsaWduZWRf ZG1hKHZvaWQgKmFyZykKIHsKIAlzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQgPSBhcmc7CiAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBwcGd0dC0+dm0uaTkxNTsKLQl1bnNpZ25l ZCBsb25nIHN1cHBvcnRlZCA9IElOVEVMX0lORk8oaTkxNSktPnBhZ2Vfc2l6ZXM7CisJdW5zaWdu ZWQgbG9uZyBzdXBwb3J0ZWQgPSBpOTE1LT5ydW50aW1lX2luZm8ucGFnZV9zaXplczsKIAlzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwogCWludCBiaXQ7CiAJaW50IGVycjsKQEAgLTEy MDQsNyArMTIwNCw3IEBAIHN0YXRpYyBpbnQgaWd0X3BwZ3R0X2V4aGF1c3RfaHVnZSh2b2lkICph cmcpCiB7CiAJc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCA9IGFyZzsKIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGN0eC0+aTkxNTsKLQl1bnNpZ25lZCBsb25nIHN1cHBvcnRl ZCA9IElOVEVMX0lORk8oaTkxNSktPnBhZ2Vfc2l6ZXM7CisJdW5zaWduZWQgbG9uZyBzdXBwb3J0 ZWQgPSBpOTE1LT5ydW50aW1lX2luZm8ucGFnZV9zaXplczsKIAlzdGF0aWMgdW5zaWduZWQgaW50 IHBhZ2VzW0FSUkFZX1NJWkUocGFnZV9zaXplcyldOwogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpvYmo7CiAJdW5zaWduZWQgaW50IHNpemVfbWFzazsKQEAgLTEyOTYsNyArMTI5Niw3IEBA IHN0YXRpYyBpbnQgaWd0X3BwZ3R0X2V4aGF1c3RfaHVnZSh2b2lkICphcmcpCiAJaTkxNV9nZW1f b2JqZWN0X3VucGluX3BhZ2VzKG9iaik7CiAJaTkxNV9nZW1fb2JqZWN0X3B1dChvYmopOwogb3V0 X2RldmljZToKLQlta3dyaXRlX2RldmljZV9pbmZvKGk5MTUpLT5wYWdlX3NpemVzID0gc3VwcG9y dGVkOworCWk5MTUtPnJ1bnRpbWVfaW5mby5wYWdlX3NpemVzID0gc3VwcG9ydGVkOwogCiAJcmV0 dXJuIGVycjsKIH0KQEAgLTE0MzQsNyArMTQzNCw3IEBAIHN0YXRpYyBpbnQgaWd0X3BwZ3R0X3Bp bl91cGRhdGUodm9pZCAqYXJnKQogewogCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHggPSBh cmc7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gY3R4LT5pOTE1OwotCXVu c2lnbmVkIGxvbmcgc3VwcG9ydGVkID0gSU5URUxfSU5GTyhkZXZfcHJpdiktPnBhZ2Vfc2l6ZXM7 CisJdW5zaWduZWQgbG9uZyBzdXBwb3J0ZWQgPSBkZXZfcHJpdi0+cnVudGltZV9pbmZvLnBhZ2Vf c2l6ZXM7CiAJc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0ID0gY3R4LT5wcGd0dDsKIAlzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwogCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwpAQCAt MTcxMSw3ICsxNzExLDcgQEAgaW50IGk5MTVfZ2VtX2h1Z2VfcGFnZV9tb2NrX3NlbGZ0ZXN0cyh2 b2lkKQogCQlyZXR1cm4gLUVOT01FTTsKIAogCS8qIFByZXRlbmQgdG8gYmUgYSBkZXZpY2Ugd2hp Y2ggc3VwcG9ydHMgdGhlIDQ4YiBQUEdUVCAqLwotCW1rd3JpdGVfZGV2aWNlX2luZm8oZGV2X3By aXYpLT5wcGd0dCA9IElOVEVMX1BQR1RUX0ZVTExfNExWTDsKKwlkZXZfcHJpdi0+cnVudGltZV9p bmZvLnBwZ3R0ID0gSU5URUxfUFBHVFRfRlVMTF80TFZMOwogCiAJcGRldiA9IGRldl9wcml2LT5k cm0ucGRldjsKIAlkbWFfY29lcmNlX21hc2tfYW5kX2NvaGVyZW50KCZwZGV2LT5kZXYsIERNQV9C SVRfTUFTSygzOSkpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3Rz L2ludGVsX2d1Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX2d1Yy5j CmluZGV4IDMyY2JhNGNhZTMxYS4uNjVlNWU4YTY0Y2UyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfZ3VjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvc2VsZnRlc3RzL2ludGVsX2d1Yy5jCkBAIC0xMTEsNyArMTExLDcgQEAgc3RhdGljIGludCB2 YWxpZGF0ZV9jbGllbnQoc3RydWN0IGludGVsX2d1Y19jbGllbnQgKmNsaWVudCwKIAkJCWRldl9w cml2LT5wcmVlbXB0X2NvbnRleHQgOiBkZXZfcHJpdi0+a2VybmVsX2NvbnRleHQ7CiAKIAlpZiAo Y2xpZW50LT5vd25lciAhPSBjdHhfb3duZXIgfHwKLQkgICAgY2xpZW50LT5lbmdpbmVzICE9IElO VEVMX0lORk8oZGV2X3ByaXYpLT5yaW5nX21hc2sgfHwKKwkgICAgY2xpZW50LT5lbmdpbmVzICE9 IGRldl9wcml2LT5ydW50aW1lX2luZm8ucmluZ19tYXNrIHx8CiAJICAgIGNsaWVudC0+cHJpb3Jp dHkgIT0gY2xpZW50X3ByaW9yaXR5IHx8CiAJICAgIGNsaWVudC0+ZG9vcmJlbGxfaWQgPT0gR1VD X0RPT1JCRUxMX0lOVkFMSUQpCiAJCXJldHVybiAtRUlOVkFMOwpAQCAtMjU5LDcgKzI1OSw3IEBA IHN0YXRpYyBpbnQgaWd0X2d1Y19kb29yYmVsbHModm9pZCAqYXJnKQogCiAJZm9yIChpID0gMDsg aSA8IEFUVEVNUFRTOyBpKyspIHsKIAkJY2xpZW50c1tpXSA9IGd1Y19jbGllbnRfYWxsb2MoZGV2 X3ByaXYsCi0JCQkJCSAgICAgIElOVEVMX0lORk8oZGV2X3ByaXYpLT5yaW5nX21hc2ssCisJCQkJ CSAgICAgIGRldl9wcml2LT5ydW50aW1lX2luZm8ucmluZ19tYXNrLAogCQkJCQkgICAgICBpICUg R1VDX0NMSUVOVF9QUklPUklUWV9OVU0sCiAJCQkJCSAgICAgIGRldl9wcml2LT5rZXJuZWxfY29u dGV4dCk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2Nr X2dlbV9kZXZpY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX2dlbV9k ZXZpY2UuYwppbmRleCA0M2VkOGIyOGFlYWEuLmI2ODQ5Y2ExMWUwMSAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZ2VtX2RldmljZS5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX2dlbV9kZXZpY2UuYwpAQCAtMTc0LDEyICsx NzQsMTEgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKm1vY2tfZ2VtX2RldmljZSh2b2lkKQog CS8qIFVzaW5nIHRoZSBnbG9iYWwgR1RUIG1heSBhc2sgcXVlc3Rpb25zIGFib3V0IEtNUyB1c2Vy cywgc28gcHJlcGFyZSAqLwogCWRybV9tb2RlX2NvbmZpZ19pbml0KCZpOTE1LT5kcm0pOwogCi0J bWt3cml0ZV9kZXZpY2VfaW5mbyhpOTE1KS0+Z2VuID0gLTE7CisJaTkxNS0+cnVudGltZV9pbmZv LmdlbiA9IC0xOwogCi0JbWt3cml0ZV9kZXZpY2VfaW5mbyhpOTE1KS0+cGFnZV9zaXplcyA9Ci0J CUk5MTVfR1RUX1BBR0VfU0laRV80SyB8Ci0JCUk5MTVfR1RUX1BBR0VfU0laRV82NEsgfAotCQlJ OTE1X0dUVF9QQUdFX1NJWkVfMk07CisJaTkxNS0+cnVudGltZV9pbmZvLnBhZ2Vfc2l6ZXMgPSBJ OTE1X0dUVF9QQUdFX1NJWkVfNEsgfAorCQkJCQlJOTE1X0dUVF9QQUdFX1NJWkVfNjRLIHwKKwkJ CQkJSTkxNV9HVFRfUEFHRV9TSVpFXzJNOwogCiAJbW9ja191bmNvcmVfaW5pdChpOTE1KTsKIAlp OTE1X2dlbV9pbml0X19tbShpOTE1KTsKQEAgLTIzMSw3ICsyMzAsNyBAQCBzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqbW9ja19nZW1fZGV2aWNlKHZvaWQpCiAKIAltb2NrX2luaXRfZ2d0dChpOTE1 KTsKIAotCW1rd3JpdGVfZGV2aWNlX2luZm8oaTkxNSktPnJpbmdfbWFzayA9IEJJVCgwKTsKKwlp OTE1LT5ydW50aW1lX2luZm8ucmluZ19tYXNrID0gQklUKDApOwogCWk5MTUtPmtlcm5lbF9jb250 ZXh0ID0gbW9ja19jb250ZXh0KGk5MTUsIE5VTEwpOwogCWlmICghaTkxNS0+a2VybmVsX2NvbnRl eHQpCiAJCWdvdG8gZXJyX3VubG9jazsKLS0gCjIuMTkuMQoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==