From: Tvrtko Ursulin Subject: [RFC 2/7] drm/i915: Introduce runtime device info Date: Mon, 12 Nov 2018 17:12:37 +0000 Message-ID: <20181112171242.7640-3-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 62CF46E07A for ; Mon, 12 Nov 2018 17:12:49 +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 RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCklkZWEgb2Yg cnVudGltZSBkZXZpY2UgaW5mbyBpcyB0byBjb250YWluIGFsbCBmaWVsZHMgZnJvbSB0aGUgZXhp c3RpbmcKZGV2aWNlIGluZm8gd2hpY2ggYXJlIG1vZGlmaWVkIGF0IHJ1bnRpbWUuCgpJbml0aWFs bHkgd2UgbW92ZSB0aGVyZSBmaWVsZHMgd2hpY2ggYXJlIG5ldmVyIHNldCBmcm9tIHRoZSBzdGF0 aWMKdGFibGVzIGllLjogbnVtX3JpbmdzLCBudW1fc3ByaXRlcywgbnVtX3NjYWxlcnMsCmNzX3Rp bWVzdGFtcF9mcmVxdWVuY3lfa2h6LCBzc2V1IGFuZCBoYXNfcG9vbGVkX2V1LgoKU2lnbmVkLW9m Zi1ieTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KQ2M6IENocmlz IFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgpDYzogSmFuaSBOaWt1bGEgPGphbmku bmlrdWxhQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMu YyAgICAgICAgICAgfCAyNyArKystLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMg ICAgICAgICAgICAgICB8IDE3ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2Lmgg ICAgICAgICAgICAgICB8ICAzICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJv ci5jICAgICAgICAgfCAxOSArKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJy b3IuaCAgICAgICAgIHwgIDEgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMgICAg ICAgICAgICAgIHwgIDUgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcXVlcnkuYyAgICAg ICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5j ICAgICAgfCA4MiArKysrKysrKysrKy0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kZXZpY2VfaW5mby5oICAgICAgfCA0MiArKysrKystLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMgICAgICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5oICAgICAgICAgIHwgIDYgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2VuZ2luZV9jcy5jICAgICAgICB8ICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9scmMuYyAgICAgICAgICAgICAgfCAxNCArKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9wbS5jICAgICAgICAgICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cmluZ2J1ZmZlci5jICAgICAgIHwgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jp bmdidWZmZXIuaCAgICAgICB8ICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF93b3Jr YXJvdW5kcy5jICAgICAgfCAgNiArLQogLi4uL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9n ZW1fY29udGV4dC5jIHwgIDYgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRl bF9scmMuYyAgICB8ICA0ICstCiAxOSBmaWxlcyBjaGFuZ2VkLCAxNDQgaW5zZXJ0aW9ucygrKSwg MTA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKaW5kZXggNjcw ZGI1MDczZDcwLi4xYjhhM2YyMDNiOTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZGVidWdmcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5j CkBAIC00OCw3ICs0OCw3IEBAIHN0YXRpYyBpbnQgaTkxNV9jYXBhYmlsaXRpZXMoc3RydWN0IHNl cV9maWxlICptLCB2b2lkICpkYXRhKQogCXNlcV9wcmludGYobSwgInBjaDogJWRcbiIsIElOVEVM X1BDSF9UWVBFKGRldl9wcml2KSk7CiAKIAlpbnRlbF9kZXZpY2VfaW5mb19kdW1wX2ZsYWdzKGlu Zm8sICZwKTsKLQlpbnRlbF9kZXZpY2VfaW5mb19kdW1wX3J1bnRpbWUoaW5mbywgJnApOworCWlu dGVsX2RldmljZV9pbmZvX2R1bXBfcnVudGltZSgmZGV2X3ByaXYtPnJ1bnRpbWVfaW5mbywgJnAp OwogCWludGVsX2RyaXZlcl9jYXBzX3ByaW50KCZkZXZfcHJpdi0+Y2FwcywgJnApOwogCiAJa2Vy bmVsX3BhcmFtX2xvY2soVEhJU19NT0RVTEUpOwpAQCAtMzI4OSw3ICszMjg5LDcgQEAgc3RhdGlj IGludCBpOTE1X2VuZ2luZV9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQog CXNlcV9wcmludGYobSwgIkdsb2JhbCBhY3RpdmUgcmVxdWVzdHM6ICVkXG4iLAogCQkgICBkZXZf cHJpdi0+Z3QuYWN0aXZlX3JlcXVlc3RzKTsKIAlzZXFfcHJpbnRmKG0sICJDUyB0aW1lc3RhbXAg ZnJlcXVlbmN5OiAldSBrSHpcbiIsCi0JCSAgIGRldl9wcml2LT5pbmZvLmNzX3RpbWVzdGFtcF9m cmVxdWVuY3lfa2h6KTsKKwkJICAgZGV2X3ByaXYtPnJ1bnRpbWVfaW5mby5jc190aW1lc3RhbXBf ZnJlcXVlbmN5X2toeik7CiAKIAlwID0gZHJtX3NlcV9maWxlX3ByaW50ZXIobSk7CiAJZm9yX2Vh Y2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGlkKQpAQCAtMzMwNSw3ICszMzA1LDcgQEAgc3Rh dGljIGludCBpOTE1X3Jjc190b3BvbG9neShzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNl ZCkKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBub2RlX3RvX2k5MTUobS0+ cHJpdmF0ZSk7CiAJc3RydWN0IGRybV9wcmludGVyIHAgPSBkcm1fc2VxX2ZpbGVfcHJpbnRlciht KTsKIAotCWludGVsX2RldmljZV9pbmZvX2R1bXBfdG9wb2xvZ3koJklOVEVMX0lORk8oZGV2X3By aXYpLT5zc2V1LCAmcCk7CisJaW50ZWxfZGV2aWNlX2luZm9fZHVtcF90b3BvbG9neSgmZGV2X3By aXYtPnJ1bnRpbWVfaW5mby5zc2V1LCAmcCk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTQzNDEsNyAr NDM0MSw3IEBAIHN0YXRpYyB2b2lkIGdlbjEwX3NzZXVfZGV2aWNlX3N0YXR1cyhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJICAgICBzdHJ1Y3Qgc3NldV9kZXZfaW5mbyAq c3NldSkKIHsKICNkZWZpbmUgU1NfTUFYIDYKLQljb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2lu Zm8gKmluZm8gPSBJTlRFTF9JTkZPKGRldl9wcml2KTsKKwljb25zdCBzdHJ1Y3QgaW50ZWxfcnVu dGltZV9kZXZpY2VfaW5mbyAqaW5mbyA9ICZkZXZfcHJpdi0+cnVudGltZV9pbmZvOwogCXUzMiBz X3JlZ1tTU19NQVhdLCBldV9yZWdbMiAqIFNTX01BWF0sIGV1X21hc2tbMl07CiAJaW50IHMsIHNz OwogCkBAIC00Mzk3LDcgKzQzOTcsNyBAQCBzdGF0aWMgdm9pZCBnZW45X3NzZXVfZGV2aWNlX3N0 YXR1cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJICAgIHN0cnVjdCBz c2V1X2Rldl9pbmZvICpzc2V1KQogewogI2RlZmluZSBTU19NQVggMwotCWNvbnN0IHN0cnVjdCBp bnRlbF9kZXZpY2VfaW5mbyAqaW5mbyA9IElOVEVMX0lORk8oZGV2X3ByaXYpOworCWNvbnN0IHN0 cnVjdCBpbnRlbF9ydW50aW1lX2RldmljZV9pbmZvICppbmZvID0gJmRldl9wcml2LT5ydW50aW1l X2luZm87CiAJdTMyIHNfcmVnW1NTX01BWF0sIGV1X3JlZ1syICogU1NfTUFYXSwgZXVfbWFza1sy XTsKIAlpbnQgcywgc3M7CiAKQEAgLTQ0MjQsOCArNDQyNCw3IEBAIHN0YXRpYyB2b2lkIGdlbjlf c3NldV9kZXZpY2Vfc3RhdHVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJ c3NldS0+c2xpY2VfbWFzayB8PSBCSVQocyk7CiAKIAkJaWYgKElTX0dFTjlfQkMoZGV2X3ByaXYp KQotCQkJc3NldS0+c3Vic2xpY2VfbWFza1tzXSA9Ci0JCQkJSU5URUxfSU5GTyhkZXZfcHJpdikt PnNzZXUuc3Vic2xpY2VfbWFza1tzXTsKKwkJCXNzZXUtPnN1YnNsaWNlX21hc2tbc10gPSBpbmZv LT5zc2V1LnN1YnNsaWNlX21hc2tbc107CiAKIAkJZm9yIChzcyA9IDA7IHNzIDwgaW5mby0+c3Nl dS5tYXhfc3Vic2xpY2VzOyBzcysrKSB7CiAJCQl1bnNpZ25lZCBpbnQgZXVfY250OwpAQCAtNDQ1 OSwxMCArNDQ1OCwxMCBAQCBzdGF0aWMgdm9pZCBicm9hZHdlbGxfc3NldV9kZXZpY2Vfc3RhdHVz KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAogCWlmIChzc2V1LT5zbGljZV9t YXNrKSB7CiAJCXNzZXUtPmV1X3Blcl9zdWJzbGljZSA9Ci0JCQkJSU5URUxfSU5GTyhkZXZfcHJp diktPnNzZXUuZXVfcGVyX3N1YnNsaWNlOworCQkJZGV2X3ByaXYtPnJ1bnRpbWVfaW5mby5zc2V1 LmV1X3Blcl9zdWJzbGljZTsKIAkJZm9yIChzID0gMDsgcyA8IGZscyhzc2V1LT5zbGljZV9tYXNr KTsgcysrKSB7CiAJCQlzc2V1LT5zdWJzbGljZV9tYXNrW3NdID0KLQkJCQlJTlRFTF9JTkZPKGRl dl9wcml2KS0+c3NldS5zdWJzbGljZV9tYXNrW3NdOworCQkJCWRldl9wcml2LT5ydW50aW1lX2lu Zm8uc3NldS5zdWJzbGljZV9tYXNrW3NdOwogCQl9CiAJCXNzZXUtPmV1X3RvdGFsID0gc3NldS0+ ZXVfcGVyX3N1YnNsaWNlICoKIAkJCQkgc3NldV9zdWJzbGljZV90b3RhbChzc2V1KTsKQEAgLTQ0 NzAsNyArNDQ2OSw3IEBAIHN0YXRpYyB2b2lkIGJyb2Fkd2VsbF9zc2V1X2RldmljZV9zdGF0dXMo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkvKiBzdWJ0cmFjdCBmdXNlZCBv ZmYgRVUocykgZnJvbSBlbmFibGVkIHNsaWNlKHMpICovCiAJCWZvciAocyA9IDA7IHMgPCBmbHMo c3NldS0+c2xpY2VfbWFzayk7IHMrKykgewogCQkJdTggc3Vic2xpY2VfN2V1ID0KLQkJCQlJTlRF TF9JTkZPKGRldl9wcml2KS0+c3NldS5zdWJzbGljZV83ZXVbc107CisJCQkJZGV2X3ByaXYtPnJ1 bnRpbWVfaW5mby5zc2V1LnN1YnNsaWNlXzdldVtzXTsKIAogCQkJc3NldS0+ZXVfdG90YWwgLT0g aHdlaWdodDgoc3Vic2xpY2VfN2V1KTsKIAkJfQpAQCAtNDUyMywxNCArNDUyMiwxNCBAQCBzdGF0 aWMgaW50IGk5MTVfc3NldV9zdGF0dXMoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQp CiAJCXJldHVybiAtRU5PREVWOwogCiAJc2VxX3B1dHMobSwgIlNTRVUgRGV2aWNlIEluZm9cbiIp OwotCWk5MTVfcHJpbnRfc3NldV9pbmZvKG0sIHRydWUsICZJTlRFTF9JTkZPKGRldl9wcml2KS0+ c3NldSk7CisJaTkxNV9wcmludF9zc2V1X2luZm8obSwgdHJ1ZSwgJmRldl9wcml2LT5ydW50aW1l X2luZm8uc3NldSk7CiAKIAlzZXFfcHV0cyhtLCAiU1NFVSBEZXZpY2UgU3RhdHVzXG4iKTsKIAlt ZW1zZXQoJnNzZXUsIDAsIHNpemVvZihzc2V1KSk7Ci0Jc3NldS5tYXhfc2xpY2VzID0gSU5URUxf SU5GTyhkZXZfcHJpdiktPnNzZXUubWF4X3NsaWNlczsKLQlzc2V1Lm1heF9zdWJzbGljZXMgPSBJ TlRFTF9JTkZPKGRldl9wcml2KS0+c3NldS5tYXhfc3Vic2xpY2VzOworCXNzZXUubWF4X3NsaWNl cyA9IGRldl9wcml2LT5ydW50aW1lX2luZm8uc3NldS5tYXhfc2xpY2VzOworCXNzZXUubWF4X3N1 YnNsaWNlcyA9IGRldl9wcml2LT5ydW50aW1lX2luZm8uc3NldS5tYXhfc3Vic2xpY2VzOwogCXNz ZXUubWF4X2V1c19wZXJfc3Vic2xpY2UgPQotCQlJTlRFTF9JTkZPKGRldl9wcml2KS0+c3NldS5t YXhfZXVzX3Blcl9zdWJzbGljZTsKKwkJZGV2X3ByaXYtPnJ1bnRpbWVfaW5mby5zc2V1Lm1heF9l dXNfcGVyX3N1YnNsaWNlOwogCiAJaW50ZWxfcnVudGltZV9wbV9nZXQoZGV2X3ByaXYpOwogCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuYwppbmRleCBiMWQyM2M3M2MxNDcuLjljZmQ1YjE0NTI0OCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5jCkBAIC0zNTcsMTIgKzM1NywxMiBAQCBzdGF0aWMgaW50IGk5 MTVfZ2V0cGFyYW1faW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJ dmFsdWUgPSBpOTE1X2NtZF9wYXJzZXJfZ2V0X3ZlcnNpb24oZGV2X3ByaXYpOwogCQlicmVhazsK IAljYXNlIEk5MTVfUEFSQU1fU1VCU0xJQ0VfVE9UQUw6Ci0JCXZhbHVlID0gc3NldV9zdWJzbGlj ZV90b3RhbCgmSU5URUxfSU5GTyhkZXZfcHJpdiktPnNzZXUpOworCQl2YWx1ZSA9IHNzZXVfc3Vi c2xpY2VfdG90YWwoJmRldl9wcml2LT5ydW50aW1lX2luZm8uc3NldSk7CiAJCWlmICghdmFsdWUp CiAJCQlyZXR1cm4gLUVOT0RFVjsKIAkJYnJlYWs7CiAJY2FzZSBJOTE1X1BBUkFNX0VVX1RPVEFM OgotCQl2YWx1ZSA9IElOVEVMX0lORk8oZGV2X3ByaXYpLT5zc2V1LmV1X3RvdGFsOworCQl2YWx1 ZSA9IGRldl9wcml2LT5ydW50aW1lX2luZm8uc3NldS5ldV90b3RhbDsKIAkJaWYgKCF2YWx1ZSkK IAkJCXJldHVybiAtRU5PREVWOwogCQlicmVhazsKQEAgLTM3OSw3ICszNzksNyBAQCBzdGF0aWMg aW50IGk5MTVfZ2V0cGFyYW1faW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0 YSwKIAkJdmFsdWUgPSBIQVNfUE9PTEVEX0VVKGRldl9wcml2KTsKIAkJYnJlYWs7CiAJY2FzZSBJ OTE1X1BBUkFNX01JTl9FVV9JTl9QT09MOgotCQl2YWx1ZSA9IElOVEVMX0lORk8oZGV2X3ByaXYp LT5zc2V1Lm1pbl9ldV9pbl9wb29sOworCQl2YWx1ZSA9IGRldl9wcml2LT5ydW50aW1lX2luZm8u c3NldS5taW5fZXVfaW5fcG9vbDsKIAkJYnJlYWs7CiAJY2FzZSBJOTE1X1BBUkFNX0hVQ19TVEFU VVM6CiAJCXZhbHVlID0gaW50ZWxfaHVjX2NoZWNrX3N0YXR1cygmZGV2X3ByaXYtPmh1Yyk7CkBA IC00MjksMTcgKzQyOSwxOCBAQCBzdGF0aWMgaW50IGk5MTVfZ2V0cGFyYW1faW9jdGwoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJdmFsdWUgPSBpbnRlbF9lbmdpbmVzX2hh c19jb250ZXh0X2lzb2xhdGlvbihkZXZfcHJpdik7CiAJCWJyZWFrOwogCWNhc2UgSTkxNV9QQVJB TV9TTElDRV9NQVNLOgotCQl2YWx1ZSA9IElOVEVMX0lORk8oZGV2X3ByaXYpLT5zc2V1LnNsaWNl X21hc2s7CisJCXZhbHVlID0gZGV2X3ByaXYtPnJ1bnRpbWVfaW5mby5zc2V1LnNsaWNlX21hc2s7 CiAJCWlmICghdmFsdWUpCiAJCQlyZXR1cm4gLUVOT0RFVjsKIAkJYnJlYWs7CiAJY2FzZSBJOTE1 X1BBUkFNX1NVQlNMSUNFX01BU0s6Ci0JCXZhbHVlID0gSU5URUxfSU5GTyhkZXZfcHJpdiktPnNz ZXUuc3Vic2xpY2VfbWFza1swXTsKKwkJdmFsdWUgPSBkZXZfcHJpdi0+cnVudGltZV9pbmZvLnNz ZXUuc3Vic2xpY2VfbWFza1swXTsKIAkJaWYgKCF2YWx1ZSkKIAkJCXJldHVybiAtRU5PREVWOwog CQlicmVhazsKIAljYXNlIEk5MTVfUEFSQU1fQ1NfVElNRVNUQU1QX0ZSRVFVRU5DWToKLQkJdmFs dWUgPSAxMDAwICogSU5URUxfSU5GTyhkZXZfcHJpdiktPmNzX3RpbWVzdGFtcF9mcmVxdWVuY3lf a2h6OworCQl2YWx1ZSA9IDEwMDAgKgorCQkJZGV2X3ByaXYtPnJ1bnRpbWVfaW5mby5jc190aW1l c3RhbXBfZnJlcXVlbmN5X2toejsKIAkJYnJlYWs7CiAJY2FzZSBJOTE1X1BBUkFNX01NQVBfR1RU X0NPSEVSRU5UOgogCQl2YWx1ZSA9IElOVEVMX0lORk8oZGV2X3ByaXYpLT5oYXNfY29oZXJlbnRf Z2d0dDsKQEAgLTEzNzIsNyArMTM3Myw3IEBAIHN0YXRpYyBpbnQgaTkxNV9kcml2ZXJfaW5pdF9o dyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJaWYgKGk5MTVfaW5qZWN0X2xv YWRfZmFpbHVyZSgpKQogCQlyZXR1cm4gLUVOT0RFVjsKIAotCWludGVsX2RldmljZV9pbmZvX3J1 bnRpbWVfaW5pdChta3dyaXRlX2RldmljZV9pbmZvKGRldl9wcml2KSk7CisJaW50ZWxfZGV2aWNl X2luZm9fcnVudGltZV9pbml0KGRldl9wcml2KTsKIAogCWlmIChIQVNfUFBHVFQoZGV2X3ByaXYp KSB7CiAJCWlmIChpbnRlbF92Z3B1X2FjdGl2ZShkZXZfcHJpdikgJiYKQEAgLTE2MjAsNyArMTYy MSw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfd2VsY29tZV9tZXNzYWdlcyhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCiAJCXN0cnVjdCBkcm1fcHJpbnRlciBwID0gZHJtX2RlYnVnX3By aW50ZXIoImk5MTUgZGV2aWNlIGluZm86Iik7CiAKIAkJaW50ZWxfZGV2aWNlX2luZm9fZHVtcCgm ZGV2X3ByaXYtPmluZm8sICZwKTsKLQkJaW50ZWxfZGV2aWNlX2luZm9fZHVtcF9ydW50aW1lKCZk ZXZfcHJpdi0+aW5mbywgJnApOworCQlpbnRlbF9kZXZpY2VfaW5mb19kdW1wX3J1bnRpbWUoJmRl dl9wcml2LT5ydW50aW1lX2luZm8sICZwKTsKIAl9CiAKIAlpZiAoSVNfRU5BQkxFRChDT05GSUdf RFJNX0k5MTVfREVCVUcpKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggMDhkMjVhYTQ4MGY3 Li5mNjc3YTk5MzZkMzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMTU4OSw2ICsxNTg5 LDcgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewogCXN0cnVjdCBrbWVtX2NhY2hlICpwcmlv cml0aWVzOwogCiAJY29uc3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZvIGluZm87CisJc3RydWN0 IGludGVsX3J1bnRpbWVfZGV2aWNlX2luZm8gcnVudGltZV9pbmZvOwogCXN0cnVjdCBpbnRlbF9k cml2ZXJfY2FwcyBjYXBzOwogCiAJLyoqCkBAIC0yNjYzLDcgKzI2NjQsNyBAQCBpbnRlbF9pbmZv KGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKICNkZWZpbmUgVVNFU19H VUNfU1VCTUlTU0lPTihkZXZfcHJpdikJaW50ZWxfdWNfaXNfdXNpbmdfZ3VjX3N1Ym1pc3Npb24o KQogI2RlZmluZSBVU0VTX0hVQyhkZXZfcHJpdikJCWludGVsX3VjX2lzX3VzaW5nX2h1YygpCiAK LSNkZWZpbmUgSEFTX1BPT0xFRF9FVShkZXZfcHJpdikJKChkZXZfcHJpdiktPmluZm8uaGFzX3Bv b2xlZF9ldSkKKyNkZWZpbmUgSEFTX1BPT0xFRF9FVShkZXZfcHJpdikJKChkZXZfcHJpdiktPnJ1 bnRpbWVfaW5mby5oYXNfcG9vbGVkX2V1KQogCiAjZGVmaW5lIElOVEVMX1BDSF9ERVZJQ0VfSURf TUFTSwkJMHhmZjgwCiAjZGVmaW5lIElOVEVMX1BDSF9JQlhfREVWSUNFX0lEX1RZUEUJCTB4M2Iw MApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKaW5kZXggYzhkOGY3OTY4OGE4Li4z ZTg3MmJiMWYwMGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vy cm9yLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYwpAQCAtNTg5 LDE1ICs1ODksMTggQEAgc3RhdGljIHZvaWQgcHJpbnRfZXJyb3Jfb2JqKHN0cnVjdCBkcm1faTkx NV9lcnJvcl9zdGF0ZV9idWYgKm0sCiAJZXJyX3B1dHMobSwgIlxuIik7CiB9CiAKLXN0YXRpYyB2 b2lkIGVycl9wcmludF9jYXBhYmlsaXRpZXMoc3RydWN0IGRybV9pOTE1X2Vycm9yX3N0YXRlX2J1 ZiAqbSwKLQkJCQkgICBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gKmluZm8sCi0JCQkJ ICAgY29uc3Qgc3RydWN0IGludGVsX2RyaXZlcl9jYXBzICpjYXBzKQorc3RhdGljIHZvaWQKK2Vy cl9wcmludF9jYXBhYmlsaXRpZXMoc3RydWN0IGRybV9pOTE1X2Vycm9yX3N0YXRlX2J1ZiAqbSwK KwkJICAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyAqaW5mbywKKwkJICAgICAg IGNvbnN0IHN0cnVjdCBpbnRlbF9ydW50aW1lX2RldmljZV9pbmZvICpydW50aW1lX2luZm8sCisJ CSAgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfZHJpdmVyX2NhcHMgKmNhcHMpCiB7CiAJc3RydWN0 IGRybV9wcmludGVyIHAgPSBpOTE1X2Vycm9yX3ByaW50ZXIobSk7CiAKIAlpbnRlbF9kZXZpY2Vf aW5mb19kdW1wX2ZsYWdzKGluZm8sICZwKTsKKwlpbnRlbF9kZXZpY2VfaW5mb19kdW1wX3J1bnRp bWUocnVudGltZV9pbmZvLCAmcCk7CiAJaW50ZWxfZHJpdmVyX2NhcHNfcHJpbnQoY2FwcywgJnAp OwotCWludGVsX2RldmljZV9pbmZvX2R1bXBfdG9wb2xvZ3koJmluZm8tPnNzZXUsICZwKTsKKwlp bnRlbF9kZXZpY2VfaW5mb19kdW1wX3RvcG9sb2d5KCZydW50aW1lX2luZm8tPnNzZXUsICZwKTsK IH0KIAogc3RhdGljIHZvaWQgZXJyX3ByaW50X3BhcmFtcyhzdHJ1Y3QgZHJtX2k5MTVfZXJyb3Jf c3RhdGVfYnVmICptLApAQCAtODI5LDcgKzgzMiwxMCBAQCBpbnQgaTkxNV9lcnJvcl9zdGF0ZV90 b19zdHIoc3RydWN0IGRybV9pOTE1X2Vycm9yX3N0YXRlX2J1ZiAqbSwKIAlpZiAoZXJyb3ItPmRp c3BsYXkpCiAJCWludGVsX2Rpc3BsYXlfcHJpbnRfZXJyb3Jfc3RhdGUobSwgZXJyb3ItPmRpc3Bs YXkpOwogCi0JZXJyX3ByaW50X2NhcGFiaWxpdGllcyhtLCAmZXJyb3ItPmRldmljZV9pbmZvLCAm ZXJyb3ItPmRyaXZlcl9jYXBzKTsKKwllcnJfcHJpbnRfY2FwYWJpbGl0aWVzKG0sCisJCQkgICAg ICAgJmVycm9yLT5kZXZpY2VfaW5mbywKKwkJCSAgICAgICAmZXJyb3ItPnJ1bnRpbWVfZGV2aWNl X2luZm8sCisJCQkgICAgICAgJmVycm9yLT5kcml2ZXJfY2Fwcyk7CiAJZXJyX3ByaW50X3BhcmFt cyhtLCAmZXJyb3ItPnBhcmFtcyk7CiAJZXJyX3ByaW50X3VjKG0sICZlcnJvci0+dWMpOwogCkBA IC0xNzUxLDYgKzE3NTcsOSBAQCBzdGF0aWMgdm9pZCBjYXB0dXJlX2dlbl9zdGF0ZShzdHJ1Y3Qg aTkxNV9ncHVfc3RhdGUgKmVycm9yKQogCW1lbWNweSgmZXJyb3ItPmRldmljZV9pbmZvLAogCSAg ICAgICBJTlRFTF9JTkZPKGk5MTUpLAogCSAgICAgICBzaXplb2YoZXJyb3ItPmRldmljZV9pbmZv KSk7CisJbWVtY3B5KCZlcnJvci0+cnVudGltZV9kZXZpY2VfaW5mbywKKwkgICAgICAgJmk5MTUt PnJ1bnRpbWVfaW5mbywKKwkgICAgICAgc2l6ZW9mKGVycm9yLT5ydW50aW1lX2RldmljZV9pbmZv KSk7CiAJZXJyb3ItPmRyaXZlcl9jYXBzID0gaTkxNS0+Y2FwczsKIH0KIApkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuaCBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ3B1X2Vycm9yLmgKaW5kZXggODcxMGZiMThlZDc0Li5lZGU5YWE1YWUxYTIgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmgKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuaApAQCAtNDUsNiArNDUsNyBAQCBzdHJ1 Y3QgaTkxNV9ncHVfc3RhdGUgewogCXUzMiByZXNldF9jb3VudDsKIAl1MzIgc3VzcGVuZF9jb3Vu dDsKIAlzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gZGV2aWNlX2luZm87CisJc3RydWN0IGludGVs X3J1bnRpbWVfZGV2aWNlX2luZm8gcnVudGltZV9kZXZpY2VfaW5mbzsKIAlzdHJ1Y3QgaW50ZWxf ZHJpdmVyX2NhcHMgZHJpdmVyX2NhcHM7CiAJc3RydWN0IGk5MTVfcGFyYW1zIHBhcmFtczsKIApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3BlcmYuYwppbmRleCAyYzJiNjNiZTdhNmMuLjkwNTQyMzcyNTFjMyAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMKQEAgLTI2NDYsNyArMjY0Niw4IEBAIGk5MTVfcGVy Zl9vcGVuX2lvY3RsX2xvY2tlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiBz dGF0aWMgdTY0IG9hX2V4cG9uZW50X3RvX25zKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwgaW50IGV4cG9uZW50KQogewogCXJldHVybiBkaXY2NF91NjQoMTAwMDAwMDAwMFVMTCAq ICgyVUxMIDw8IGV4cG9uZW50KSwKLQkJCSAxMDAwVUxMICogSU5URUxfSU5GTyhkZXZfcHJpdikt PmNzX3RpbWVzdGFtcF9mcmVxdWVuY3lfa2h6KTsKKwkJCSAxMDAwVUxMICoKKwkJCSBkZXZfcHJp di0+cnVudGltZV9pbmZvLmNzX3RpbWVzdGFtcF9mcmVxdWVuY3lfa2h6KTsKIH0KIAogc3RhdGlj IGludApAQCAtMzUwNSw3ICszNTA2LDcgQEAgdm9pZCBpOTE1X3BlcmZfaW5pdChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCXNwaW5fbG9ja19pbml0KCZkZXZfcHJpdi0+cGVy Zi5vYS5vYV9idWZmZXIucHRyX2xvY2spOwogCiAJCW9hX3NhbXBsZV9yYXRlX2hhcmRfbGltaXQg PSAxMDAwICoKLQkJCShJTlRFTF9JTkZPKGRldl9wcml2KS0+Y3NfdGltZXN0YW1wX2ZyZXF1ZW5j eV9raHogLyAyKTsKKwkJCShkZXZfcHJpdi0+cnVudGltZV9pbmZvLmNzX3RpbWVzdGFtcF9mcmVx dWVuY3lfa2h6IC8gMik7CiAJCWRldl9wcml2LT5wZXJmLnN5c2N0bF9oZWFkZXIgPSByZWdpc3Rl cl9zeXNjdGxfdGFibGUoZGV2X3Jvb3QpOwogCiAJCW11dGV4X2luaXQoJmRldl9wcml2LT5wZXJm Lm1ldHJpY3NfbG9jayk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3F1 ZXJ5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3F1ZXJ5LmMKaW5kZXggNmZjNGI4ZWVh YjQyLi42YjJjNmU2ODczZDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cXVlcnkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3F1ZXJ5LmMKQEAgLTEzLDcg KzEzLDcgQEAKIHN0YXRpYyBpbnQgcXVlcnlfdG9wb2xvZ3lfaW5mbyhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkgICAgICAgc3RydWN0IGRybV9pOTE1X3F1ZXJ5X2l0ZW0g KnF1ZXJ5X2l0ZW0pCiB7Ci0JY29uc3Qgc3RydWN0IHNzZXVfZGV2X2luZm8gKnNzZXUgPSAmSU5U RUxfSU5GTyhkZXZfcHJpdiktPnNzZXU7CisJY29uc3Qgc3RydWN0IHNzZXVfZGV2X2luZm8gKnNz ZXUgPSAmZGV2X3ByaXYtPnJ1bnRpbWVfaW5mby5zc2V1OwogCXN0cnVjdCBkcm1faTkxNV9xdWVy eV90b3BvbG9neV9pbmZvIHRvcG87CiAJdTMyIHNsaWNlX2xlbmd0aCwgc3Vic2xpY2VfbGVuZ3Ro LCBldV9sZW5ndGgsIHRvdGFsX2xlbmd0aDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rl dmljZV9pbmZvLmMKaW5kZXggODllZDNhODRhNGZhLi44Mzg1NzY3YWFmMDggMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uYwpAQCAtNzksNiArNzksMTUgQEAgdm9pZCBp bnRlbF9kZXZpY2VfaW5mb19kdW1wX2ZsYWdzKGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5m byAqaW5mbywKICN1bmRlZiBQUklOVF9GTEFHCiB9CiAKK3ZvaWQKK2ludGVsX3J1bnRpbWVfZGV2 aWNlX2luZm9fZHVtcF9mbGFncyhjb25zdCBzdHJ1Y3QgaW50ZWxfcnVudGltZV9kZXZpY2VfaW5m byAqaW5mbywKKwkJCQkgICAgIHN0cnVjdCBkcm1fcHJpbnRlciAqcCkKK3sKKyNkZWZpbmUgUFJJ TlRfRkxBRyhuYW1lKSBkcm1fcHJpbnRmKHAsICIlczogJXNcbiIsICNuYW1lLCB5ZXNubyhpbmZv LT5uYW1lKSk7CisJREVWX1JVTlRJTUVfSU5GT19GT1JfRUFDSF9GTEFHKFBSSU5UX0ZMQUcpOwor I3VuZGVmIFBSSU5UX0ZMQUcKK30KKwogc3RhdGljIHZvaWQgc3NldV9kdW1wKGNvbnN0IHN0cnVj dCBzc2V1X2Rldl9pbmZvICpzc2V1LCBzdHJ1Y3QgZHJtX3ByaW50ZXIgKnApCiB7CiAJaW50IHM7 CkBAIC0xMDAsMTMgKzEwOSwxNiBAQCBzdGF0aWMgdm9pZCBzc2V1X2R1bXAoY29uc3Qgc3RydWN0 IHNzZXVfZGV2X2luZm8gKnNzZXUsIHN0cnVjdCBkcm1fcHJpbnRlciAqcCkKIAlkcm1fcHJpbnRm KHAsICJoYXMgRVUgcG93ZXIgZ2F0aW5nOiAlc1xuIiwgeWVzbm8oc3NldS0+aGFzX2V1X3BnKSk7 CiB9CiAKLXZvaWQgaW50ZWxfZGV2aWNlX2luZm9fZHVtcF9ydW50aW1lKGNvbnN0IHN0cnVjdCBp bnRlbF9kZXZpY2VfaW5mbyAqaW5mbywKLQkJCQkgICAgc3RydWN0IGRybV9wcmludGVyICpwKQor dm9pZAoraW50ZWxfZGV2aWNlX2luZm9fZHVtcF9ydW50aW1lKGNvbnN0IHN0cnVjdCBpbnRlbF9y dW50aW1lX2RldmljZV9pbmZvICppbmZvLAorCQkJICAgICAgIHN0cnVjdCBkcm1fcHJpbnRlciAq cCkKIHsKIAlzc2V1X2R1bXAoJmluZm8tPnNzZXUsIHApOwogCiAJZHJtX3ByaW50ZihwLCAiQ1Mg dGltZXN0YW1wIGZyZXF1ZW5jeTogJXUga0h6XG4iLAogCQkgICBpbmZvLT5jc190aW1lc3RhbXBf ZnJlcXVlbmN5X2toeik7CisKKwlpbnRlbF9ydW50aW1lX2RldmljZV9pbmZvX2R1bXBfZmxhZ3Mo aW5mbywgcCk7CiB9CiAKIHZvaWQgaW50ZWxfZGV2aWNlX2luZm9fZHVtcChjb25zdCBzdHJ1Y3Qg aW50ZWxfZGV2aWNlX2luZm8gKmluZm8sCkBAIC0xNjAsNyArMTcyLDcgQEAgc3RhdGljIHUxNiBj b21wdXRlX2V1X3RvdGFsKGNvbnN0IHN0cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1KQogCiBzdGF0 aWMgdm9pZCBnZW4xMV9zc2V1X2luZm9faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCiB7Ci0Jc3RydWN0IHNzZXVfZGV2X2luZm8gKnNzZXUgPSAmbWt3cml0ZV9kZXZpY2Vf aW5mbyhkZXZfcHJpdiktPnNzZXU7CisJc3RydWN0IHNzZXVfZGV2X2luZm8gKnNzZXUgPSAmZGV2 X3ByaXYtPnJ1bnRpbWVfaW5mby5zc2V1OwogCXU4IHNfZW47CiAJdTMyIHNzX2VuLCBzc19lbl9t YXNrOwogCXU4IGV1X2VuOwpAQCAtMTk5LDcgKzIxMSw3IEBAIHN0YXRpYyB2b2lkIGdlbjExX3Nz ZXVfaW5mb19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAogc3RhdGlj IHZvaWQgZ2VuMTBfc3NldV9pbmZvX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQogewotCXN0cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1ID0gJm1rd3JpdGVfZGV2aWNlX2lu Zm8oZGV2X3ByaXYpLT5zc2V1OworCXN0cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1ID0gJmRldl9w cml2LT5ydW50aW1lX2luZm8uc3NldTsKIAljb25zdCB1MzIgZnVzZTIgPSBJOTE1X1JFQUQoR0VO OF9GVVNFMik7CiAJaW50IHMsIHNzOwogCWNvbnN0IGludCBldV9tYXNrID0gMHhmZjsKQEAgLTI3 Niw3ICsyODgsNyBAQCBzdGF0aWMgdm9pZCBnZW4xMF9zc2V1X2luZm9faW5pdChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAKIHN0YXRpYyB2b2lkIGNoZXJyeXZpZXdfc3NldV9p bmZvX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewotCXN0cnVjdCBz c2V1X2Rldl9pbmZvICpzc2V1ID0gJm1rd3JpdGVfZGV2aWNlX2luZm8oZGV2X3ByaXYpLT5zc2V1 OworCXN0cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1ID0gJmRldl9wcml2LT5ydW50aW1lX2luZm8u c3NldTsKIAl1MzIgZnVzZTsKIAogCWZ1c2UgPSBJOTE1X1JFQUQoQ0hWX0ZVU0VfR1QpOwpAQCAt MzI5LDcgKzM0MSw3IEBAIHN0YXRpYyB2b2lkIGNoZXJyeXZpZXdfc3NldV9pbmZvX2luaXQoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiBzdGF0aWMgdm9pZCBnZW45X3NzZXVf aW5mb19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlzdHJ1Y3Qg aW50ZWxfZGV2aWNlX2luZm8gKmluZm8gPSBta3dyaXRlX2RldmljZV9pbmZvKGRldl9wcml2KTsK KwlzdHJ1Y3QgaW50ZWxfcnVudGltZV9kZXZpY2VfaW5mbyAqaW5mbyA9ICZkZXZfcHJpdi0+cnVu dGltZV9pbmZvOwogCXN0cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1ID0gJmluZm8tPnNzZXU7CiAJ aW50IHMsIHNzOwogCXUzMiBmdXNlMiwgZXVfZGlzYWJsZSwgc3Vic2xpY2VfbWFzazsKQEAgLTQz Myw3ICs0NDUsNyBAQCBzdGF0aWMgdm9pZCBnZW45X3NzZXVfaW5mb19pbml0KHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAogc3RhdGljIHZvaWQgYnJvYWR3ZWxsX3NzZXVfaW5m b19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlzdHJ1Y3Qgc3Nl dV9kZXZfaW5mbyAqc3NldSA9ICZta3dyaXRlX2RldmljZV9pbmZvKGRldl9wcml2KS0+c3NldTsK KwlzdHJ1Y3Qgc3NldV9kZXZfaW5mbyAqc3NldSA9ICZkZXZfcHJpdi0+cnVudGltZV9pbmZvLnNz ZXU7CiAJaW50IHMsIHNzOwogCXUzMiBmdXNlMiwgc3Vic2xpY2VfbWFzaywgZXVfZGlzYWJsZVsz XTsgLyogc19tYXggKi8KIApAQCAtNTE1LDggKzUyNyw3IEBAIHN0YXRpYyB2b2lkIGJyb2Fkd2Vs bF9zc2V1X2luZm9faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAKIHN0 YXRpYyB2b2lkIGhhc3dlbGxfc3NldV9pbmZvX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQogewotCXN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyAqaW5mbyA9IG1rd3JpdGVf ZGV2aWNlX2luZm8oZGV2X3ByaXYpOwotCXN0cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1ID0gJmlu Zm8tPnNzZXU7CisJc3RydWN0IHNzZXVfZGV2X2luZm8gKnNzZXUgPSAmZGV2X3ByaXYtPnJ1bnRp bWVfaW5mby5zc2V1OwogCXUzMiBmdXNlMTsKIAlpbnQgcywgc3M7CiAKQEAgLTUyNCw5ICs1MzUs OSBAQCBzdGF0aWMgdm9pZCBoYXN3ZWxsX3NzZXVfaW5mb19pbml0KHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKIAkgKiBUaGVyZSBpc24ndCBhIHJlZ2lzdGVyIHRvIHRlbGwgdXMg aG93IG1hbnkgc2xpY2VzL3N1YnNsaWNlcy4gV2UKIAkgKiB3b3JrIG9mZiB0aGUgUENJLWlkcyBo ZXJlLgogCSAqLwotCXN3aXRjaCAoaW5mby0+Z3QpIHsKKwlzd2l0Y2ggKElOVEVMX0lORk8oZGV2 X3ByaXYpLT5ndCkgewogCWRlZmF1bHQ6Ci0JCU1JU1NJTkdfQ0FTRShpbmZvLT5ndCk7CisJCU1J U1NJTkdfQ0FTRShJTlRFTF9JTkZPKGRldl9wcml2KS0+Z3QpOwogCQkvKiBmYWxsIHRocm91Z2gg Ki8KIAljYXNlIDE6CiAJCXNzZXUtPnNsaWNlX21hc2sgPSBCSVQoMCk7CkBAIC03MzUsMjkgKzc0 NiwzMCBAQCBzdGF0aWMgdTMyIHJlYWRfdGltZXN0YW1wX2ZyZXF1ZW5jeShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAgKiAgIC0gYWZ0ZXIgdGhlIFBDSCBoYXMgYmVlbiBkZXRl Y3RlZCwKICAqICAgLSBiZWZvcmUgdGhlIGZpcnN0IHVzYWdlIG9mIHRoZSBmaWVsZHMgaXQgY2Fu IHR3ZWFrLgogICovCi12b2lkIGludGVsX2RldmljZV9pbmZvX3J1bnRpbWVfaW5pdChzdHJ1Y3Qg aW50ZWxfZGV2aWNlX2luZm8gKmluZm8pCit2b2lkIGludGVsX2RldmljZV9pbmZvX3J1bnRpbWVf aW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0KLQkJY29udGFpbmVyX29mKGluZm8sIHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlLCBpbmZvKTsKKwlzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gKmluZm8gPSBt a3dyaXRlX2RldmljZV9pbmZvKGRldl9wcml2KTsKKwlzdHJ1Y3QgaW50ZWxfcnVudGltZV9kZXZp Y2VfaW5mbyAqcnVudGltZV9pbmZvID0KKwkJJmRldl9wcml2LT5ydW50aW1lX2luZm87CiAJZW51 bSBwaXBlIHBpcGU7CiAKIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMCkgewogCQlmb3Jf ZWFjaF9waXBlKGRldl9wcml2LCBwaXBlKQotCQkJaW5mby0+bnVtX3NjYWxlcnNbcGlwZV0gPSAy OworCQkJcnVudGltZV9pbmZvLT5udW1fc2NhbGVyc1twaXBlXSA9IDI7CiAJfSBlbHNlIGlmIChJ U19HRU45KGRldl9wcml2KSkgewotCQlpbmZvLT5udW1fc2NhbGVyc1tQSVBFX0FdID0gMjsKLQkJ aW5mby0+bnVtX3NjYWxlcnNbUElQRV9CXSA9IDI7Ci0JCWluZm8tPm51bV9zY2FsZXJzW1BJUEVf Q10gPSAxOworCQlydW50aW1lX2luZm8tPm51bV9zY2FsZXJzW1BJUEVfQV0gPSAyOworCQlydW50 aW1lX2luZm8tPm51bV9zY2FsZXJzW1BJUEVfQl0gPSAyOworCQlydW50aW1lX2luZm8tPm51bV9z Y2FsZXJzW1BJUEVfQ10gPSAxOwogCX0KIAogCUJVSUxEX0JVR19PTihJOTE1X05VTV9FTkdJTkVT ID4gQklUU19QRVJfVFlQRShpbnRlbF9yaW5nX21hc2tfdCkpOwogCiAJaWYgKElTX0dFTjExKGRl dl9wcml2KSkKIAkJZm9yX2VhY2hfcGlwZShkZXZfcHJpdiwgcGlwZSkKLQkJCWluZm8tPm51bV9z cHJpdGVzW3BpcGVdID0gNjsKKwkJCXJ1bnRpbWVfaW5mby0+bnVtX3Nwcml0ZXNbcGlwZV0gPSA2 OwogCWVsc2UgaWYgKElTX0dFTjEwKGRldl9wcml2KSB8fCBJU19HRU1JTklMQUtFKGRldl9wcml2 KSkKIAkJZm9yX2VhY2hfcGlwZShkZXZfcHJpdiwgcGlwZSkKLQkJCWluZm8tPm51bV9zcHJpdGVz W3BpcGVdID0gMzsKKwkJCXJ1bnRpbWVfaW5mby0+bnVtX3Nwcml0ZXNbcGlwZV0gPSAzOwogCWVs c2UgaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKSB7CiAJCS8qCiAJCSAqIFNreWxha2UgYW5kIEJy b3h0b24gY3VycmVudGx5IGRvbid0IGV4cG9zZSB0aGUgdG9wbW9zdCBwbGFuZSBhcyBpdHMKQEAg LTc2OCwxNSArNzgwLDE1IEBAIHZvaWQgaW50ZWxfZGV2aWNlX2luZm9fcnVudGltZV9pbml0KHN0 cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyAqaW5mbykKIAkJICogZG93biB0aGUgbGluZS4KIAkJICov CiAKLQkJaW5mby0+bnVtX3Nwcml0ZXNbUElQRV9BXSA9IDI7Ci0JCWluZm8tPm51bV9zcHJpdGVz W1BJUEVfQl0gPSAyOwotCQlpbmZvLT5udW1fc3ByaXRlc1tQSVBFX0NdID0gMTsKKwkJcnVudGlt ZV9pbmZvLT5udW1fc3ByaXRlc1tQSVBFX0FdID0gMjsKKwkJcnVudGltZV9pbmZvLT5udW1fc3By aXRlc1tQSVBFX0JdID0gMjsKKwkJcnVudGltZV9pbmZvLT5udW1fc3ByaXRlc1tQSVBFX0NdID0g MTsKIAl9IGVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVco ZGV2X3ByaXYpKSB7CiAJCWZvcl9lYWNoX3BpcGUoZGV2X3ByaXYsIHBpcGUpCi0JCQlpbmZvLT5u dW1fc3ByaXRlc1twaXBlXSA9IDI7CisJCQlydW50aW1lX2luZm8tPm51bV9zcHJpdGVzW3BpcGVd ID0gMjsKIAl9IGVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNSB8fCBJU19HNFgoZGV2 X3ByaXYpKSB7CiAJCWZvcl9lYWNoX3BpcGUoZGV2X3ByaXYsIHBpcGUpCi0JCQlpbmZvLT5udW1f c3ByaXRlc1twaXBlXSA9IDE7CisJCQlydW50aW1lX2luZm8tPm51bV9zcHJpdGVzW3BpcGVdID0g MTsKIAl9CiAKIAlpZiAoaTkxNV9tb2RwYXJhbXMuZGlzYWJsZV9kaXNwbGF5KSB7CkBAIC04NjAs NyArODcyLDggQEAgdm9pZCBpbnRlbF9kZXZpY2VfaW5mb19ydW50aW1lX2luaXQoc3RydWN0IGlu dGVsX2RldmljZV9pbmZvICppbmZvKQogCX0KIAogCS8qIEluaXRpYWxpemUgY29tbWFuZCBzdHJl YW0gdGltZXN0YW1wIGZyZXF1ZW5jeSAqLwotCWluZm8tPmNzX3RpbWVzdGFtcF9mcmVxdWVuY3lf a2h6ID0gcmVhZF90aW1lc3RhbXBfZnJlcXVlbmN5KGRldl9wcml2KTsKKwlydW50aW1lX2luZm8t PmNzX3RpbWVzdGFtcF9mcmVxdWVuY3lfa2h6ID0KKwkJcmVhZF90aW1lc3RhbXBfZnJlcXVlbmN5 KGRldl9wcml2KTsKIH0KIAogdm9pZCBpbnRlbF9kcml2ZXJfY2Fwc19wcmludChjb25zdCBzdHJ1 Y3QgaW50ZWxfZHJpdmVyX2NhcHMgKmNhcHMsCkBAIC04ODAsNiArODkzLDggQEAgdm9pZCBpbnRl bF9kcml2ZXJfY2Fwc19wcmludChjb25zdCBzdHJ1Y3QgaW50ZWxfZHJpdmVyX2NhcHMgKmNhcHMs CiB2b2lkIGludGVsX2RldmljZV9pbmZvX2luaXRfbW1pbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCiB7CiAJc3RydWN0IGludGVsX2RldmljZV9pbmZvICppbmZvID0gbWt3cml0 ZV9kZXZpY2VfaW5mbyhkZXZfcHJpdik7CisJc3RydWN0IGludGVsX3J1bnRpbWVfZGV2aWNlX2lu Zm8gKnJ1bnRpbWVfaW5mbyA9CisJCSZkZXZfcHJpdi0+cnVudGltZV9pbmZvOwogCXUzMiBtZWRp YV9mdXNlOwogCXVuc2lnbmVkIGludCBpOwogCkBAIC04ODgsMjcgKzkwMywyOCBAQCB2b2lkIGlu dGVsX2RldmljZV9pbmZvX2luaXRfbW1pbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCiAKIAltZWRpYV9mdXNlID0gfkk5MTVfUkVBRChHRU4xMV9HVF9WRUJPWF9WREJPWF9ESVNB QkxFKTsKIAotCWluZm8tPnZkYm94X2VuYWJsZSA9IG1lZGlhX2Z1c2UgJiBHRU4xMV9HVF9WREJP WF9ESVNBQkxFX01BU0s7Ci0JaW5mby0+dmVib3hfZW5hYmxlID0gKG1lZGlhX2Z1c2UgJiBHRU4x MV9HVF9WRUJPWF9ESVNBQkxFX01BU0spID4+Ci0JCQkgICAgIEdFTjExX0dUX1ZFQk9YX0RJU0FC TEVfU0hJRlQ7CisJcnVudGltZV9pbmZvLT52ZGJveF9lbmFibGUgPSBtZWRpYV9mdXNlICYgR0VO MTFfR1RfVkRCT1hfRElTQUJMRV9NQVNLOworCXJ1bnRpbWVfaW5mby0+dmVib3hfZW5hYmxlID0K KwkJKG1lZGlhX2Z1c2UgJiBHRU4xMV9HVF9WRUJPWF9ESVNBQkxFX01BU0spID4+CisJCUdFTjEx X0dUX1ZFQk9YX0RJU0FCTEVfU0hJRlQ7CiAKLQlEUk1fREVCVUdfRFJJVkVSKCJ2ZGJveCBlbmFi bGU6ICUwNHhcbiIsIGluZm8tPnZkYm94X2VuYWJsZSk7CisJRFJNX0RFQlVHX0RSSVZFUigidmRi b3ggZW5hYmxlOiAlMDR4XG4iLCBydW50aW1lX2luZm8tPnZkYm94X2VuYWJsZSk7CiAJZm9yIChp ID0gMDsgaSA8IEk5MTVfTUFYX1ZDUzsgaSsrKSB7CiAJCWlmICghSEFTX0VOR0lORShkZXZfcHJp diwgX1ZDUyhpKSkpCiAJCQljb250aW51ZTsKIAotCQlpZiAoIShCSVQoaSkgJiBpbmZvLT52ZGJv eF9lbmFibGUpKSB7CisJCWlmICghKEJJVChpKSAmIHJ1bnRpbWVfaW5mby0+dmRib3hfZW5hYmxl KSkgewogCQkJaW5mby0+cmluZ19tYXNrICY9IH5FTkdJTkVfTUFTSyhfVkNTKGkpKTsKIAkJCURS TV9ERUJVR19EUklWRVIoInZjcyV1IGZ1c2VkIG9mZlxuIiwgaSk7CiAJCX0KIAl9CiAKLQlEUk1f REVCVUdfRFJJVkVSKCJ2ZWJveCBlbmFibGU6ICUwNHhcbiIsIGluZm8tPnZlYm94X2VuYWJsZSk7 CisJRFJNX0RFQlVHX0RSSVZFUigidmVib3ggZW5hYmxlOiAlMDR4XG4iLCBydW50aW1lX2luZm8t PnZlYm94X2VuYWJsZSk7CiAJZm9yIChpID0gMDsgaSA8IEk5MTVfTUFYX1ZFQ1M7IGkrKykgewog CQlpZiAoIUhBU19FTkdJTkUoZGV2X3ByaXYsIF9WRUNTKGkpKSkKIAkJCWNvbnRpbnVlOwogCi0J CWlmICghKEJJVChpKSAmIGluZm8tPnZlYm94X2VuYWJsZSkpIHsKKwkJaWYgKCEoQklUKGkpICYg cnVudGltZV9pbmZvLT52ZWJveF9lbmFibGUpKSB7CiAJCQlpbmZvLT5yaW5nX21hc2sgJj0gfkVO R0lORV9NQVNLKF9WRUNTKGkpKTsKIAkJCURSTV9ERUJVR19EUklWRVIoInZlY3MldSBmdXNlZCBv ZmZcbiIsIGkpOwogCQl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k ZXZpY2VfaW5mby5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uaApp bmRleCA4OGY5NzIxMGRjNDkuLjgzZTE5YWM4ZTQwMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kZXZpY2VfaW5mby5oCkBAIC0xMDUsNyArMTA1LDYgQEAgZW51bSBpbnRlbF9wcGd0dCB7 CiAJZnVuYyhoYXNfbG9naWNhbF9yaW5nX2Vsc3EpOyBcCiAJZnVuYyhoYXNfbG9naWNhbF9yaW5n X3ByZWVtcHRpb24pOyBcCiAJZnVuYyhoYXNfb3ZlcmxheSk7IFwKLQlmdW5jKGhhc19wb29sZWRf ZXUpOyBcCiAJZnVuYyhoYXNfcHNyKTsgXAogCWZ1bmMoaGFzX3JjNik7IFwKIAlmdW5jKGhhc19y YzZwKTsgXApAQCAtMTU0LDggKzE1Myw4IEBAIHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyB7CiAK IAl1OCBnZW47CiAJdTggZ3Q7IC8qIEdUIG51bWJlciwgMCBpZiB1bmRlZmluZWQgKi8KLQl1OCBu dW1fcmluZ3M7CiAJaW50ZWxfcmluZ19tYXNrX3QgcmluZ19tYXNrOyAvKiBSaW5ncyBzdXBwb3J0 ZWQgYnkgdGhlIEhXICovCisJdTggbnVtX3BpcGVzOwogCiAJZW51bSBpbnRlbF9wbGF0Zm9ybSBw bGF0Zm9ybTsKIAl1MzIgcGxhdGZvcm1fbWFzazsKQEAgLTE2NSwxMCArMTY0LDYgQEAgc3RydWN0 IGludGVsX2RldmljZV9pbmZvIHsKIAogCXUzMiBkaXNwbGF5X21taW9fb2Zmc2V0OwogCi0JdTgg bnVtX3BpcGVzOwotCXU4IG51bV9zcHJpdGVzW0k5MTVfTUFYX1BJUEVTXTsKLQl1OCBudW1fc2Nh bGVyc1tJOTE1X01BWF9QSVBFU107Ci0KICNkZWZpbmUgREVGSU5FX0ZMQUcobmFtZSkgdTggbmFt ZToxCiAJREVWX0lORk9fRk9SX0VBQ0hfRkxBRyhERUZJTkVfRkxBRyk7CiAjdW5kZWYgREVGSU5F X0ZMQUcKQEAgLTE3OSwxOSArMTc0LDMzIEBAIHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyB7CiAJ aW50IHRyYW5zX29mZnNldHNbSTkxNV9NQVhfVFJBTlNDT0RFUlNdOwogCWludCBjdXJzb3Jfb2Zm c2V0c1tJOTE1X01BWF9QSVBFU107CiAKLQkvKiBTbGljZS9zdWJzbGljZS9FVSBpbmZvICovCi0J c3RydWN0IHNzZXVfZGV2X2luZm8gc3NldTsKKwlzdHJ1Y3QgY29sb3JfbHV0cyB7CisJCXUxNiBk ZWdhbW1hX2x1dF9zaXplOworCQl1MTYgZ2FtbWFfbHV0X3NpemU7CisJfSBjb2xvcjsKK307CiAK LQl1MzIgY3NfdGltZXN0YW1wX2ZyZXF1ZW5jeV9raHo7CisjZGVmaW5lIERFVl9SVU5USU1FX0lO Rk9fRk9SX0VBQ0hfRkxBRyhmdW5jKSBcCisJZnVuYyhoYXNfcG9vbGVkX2V1KTsgXAorCitzdHJ1 Y3QgaW50ZWxfcnVudGltZV9kZXZpY2VfaW5mbyB7CisJdW5zaWduZWQgaW50IG51bV9yaW5nczsK KworCXU4IG51bV9zcHJpdGVzW0k5MTVfTUFYX1BJUEVTXTsKKwl1OCBudW1fc2NhbGVyc1tJOTE1 X01BWF9QSVBFU107CiAKIAkvKiBFbmFibGVkIChub3QgZnVzZWQgb2ZmKSBtZWRpYSBlbmdpbmUg Yml0bWFza3MuICovCiAJdTggdmRib3hfZW5hYmxlOwogCXU4IHZlYm94X2VuYWJsZTsKIAotCXN0 cnVjdCBjb2xvcl9sdXRzIHsKLQkJdTE2IGRlZ2FtbWFfbHV0X3NpemU7Ci0JCXUxNiBnYW1tYV9s dXRfc2l6ZTsKLQl9IGNvbG9yOworCXUzMiBjc190aW1lc3RhbXBfZnJlcXVlbmN5X2toejsKKwor CS8qIFNsaWNlL3N1YnNsaWNlL0VVIGluZm8gKi8KKwlzdHJ1Y3Qgc3NldV9kZXZfaW5mbyBzc2V1 OworCisjZGVmaW5lIERFRklORV9GTEFHKG5hbWUpIHU4IG5hbWU6MQorCURFVl9SVU5USU1FX0lO Rk9fRk9SX0VBQ0hfRkxBRyhERUZJTkVfRkxBRyk7CisjdW5kZWYgREVGSU5FX0ZMQUcKIH07CiAK IHN0cnVjdCBpbnRlbF9kcml2ZXJfY2FwcyB7CkBAIC0yNDgsMTMgKzI1NywxNCBAQCBzdGF0aWMg aW5saW5lIHZvaWQgc3NldV9zZXRfZXVzKHN0cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1LAogCiBj b25zdCBjaGFyICppbnRlbF9wbGF0Zm9ybV9uYW1lKGVudW0gaW50ZWxfcGxhdGZvcm0gcGxhdGZv cm0pOwogCi12b2lkIGludGVsX2RldmljZV9pbmZvX3J1bnRpbWVfaW5pdChzdHJ1Y3QgaW50ZWxf ZGV2aWNlX2luZm8gKmluZm8pOwordm9pZCBpbnRlbF9kZXZpY2VfaW5mb19ydW50aW1lX2luaXQo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIHZvaWQgaW50ZWxfZGV2aWNlX2lu Zm9fZHVtcChjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gKmluZm8sCiAJCQkgICAgc3Ry dWN0IGRybV9wcmludGVyICpwKTsKIHZvaWQgaW50ZWxfZGV2aWNlX2luZm9fZHVtcF9mbGFncyhj b25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gKmluZm8sCiAJCQkJICBzdHJ1Y3QgZHJtX3By aW50ZXIgKnApOwotdm9pZCBpbnRlbF9kZXZpY2VfaW5mb19kdW1wX3J1bnRpbWUoY29uc3Qgc3Ry dWN0IGludGVsX2RldmljZV9pbmZvICppbmZvLAotCQkJCSAgICBzdHJ1Y3QgZHJtX3ByaW50ZXIg KnApOwordm9pZAoraW50ZWxfZGV2aWNlX2luZm9fZHVtcF9ydW50aW1lKGNvbnN0IHN0cnVjdCBp bnRlbF9ydW50aW1lX2RldmljZV9pbmZvICppbmZvLAorCQkJICAgICAgIHN0cnVjdCBkcm1fcHJp bnRlciAqcCk7CiB2b2lkIGludGVsX2RldmljZV9pbmZvX2R1bXBfdG9wb2xvZ3koY29uc3Qgc3Ry dWN0IHNzZXVfZGV2X2luZm8gKnNzZXUsCiAJCQkJICAgICBzdHJ1Y3QgZHJtX3ByaW50ZXIgKnAp OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggYTdmYTAzMjMxMGFlLi5j YzMwYmYxMTcyYWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTEzODky LDcgKzEzODkyLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfY3J0Y19pbml0X3NjYWxlcnMoc3RydWN0 IGludGVsX2NydGMgKmNydGMsCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJaW50IGk7CiAKLQljcnRjLT5udW1fc2NhbGVycyA9 IGRldl9wcml2LT5pbmZvLm51bV9zY2FsZXJzW2NydGMtPnBpcGVdOworCWNydGMtPm51bV9zY2Fs ZXJzID0gZGV2X3ByaXYtPnJ1bnRpbWVfaW5mby5udW1fc2NhbGVyc1tjcnRjLT5waXBlXTsKIAlp ZiAoIWNydGMtPm51bV9zY2FsZXJzKQogCQlyZXR1cm47CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuaAppbmRleCA1ZDUwZGVjYmNiYjUuLjYwN2RkYzRhMGIxMSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5oCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuaApAQCAtMTA1LDcgKzEwNSw3IEBAIGVudW0gaTl4eF9wbGFu ZV9pZCB7CiB9OwogCiAjZGVmaW5lIHBsYW5lX25hbWUocCkgKChwKSArICdBJykKLSNkZWZpbmUg c3ByaXRlX25hbWUocCwgcykgKChwKSAqIElOVEVMX0lORk8oZGV2X3ByaXYpLT5udW1fc3ByaXRl c1socCldICsgKHMpICsgJ0EnKQorI2RlZmluZSBzcHJpdGVfbmFtZShwLCBzKSAoKHApICogZGV2 X3ByaXYtPnJ1bnRpbWVfaW5mby5udW1fc3ByaXRlc1socCldICsgKHMpICsgJ0EnKQogCiAvKgog ICogUGVyLXBpcGUgcGxhbmUgaWRlbnRpZmllci4KQEAgLTI5NCwxMiArMjk0LDEyIEBAIHN0cnVj dCBpbnRlbF9saW5rX21fbiB7CiAKICNkZWZpbmUgZm9yX2VhY2hfdW5pdmVyc2FsX3BsYW5lKF9f ZGV2X3ByaXYsIF9fcGlwZSwgX19wKQkJXAogCWZvciAoKF9fcCkgPSAwOwkJCQkJCQlcCi0JICAg ICAoX19wKSA8IElOVEVMX0lORk8oX19kZXZfcHJpdiktPm51bV9zcHJpdGVzWyhfX3BpcGUpXSAr IDE7CVwKKwkgICAgIChfX3ApIDwgKF9fZGV2X3ByaXYpLT5ydW50aW1lX2luZm8ubnVtX3Nwcml0 ZXNbKF9fcGlwZSldICsgMTtcCiAJICAgICAoX19wKSsrKQogCiAjZGVmaW5lIGZvcl9lYWNoX3Nw cml0ZShfX2Rldl9wcml2LCBfX3AsIF9fcykJCQkJXAogCWZvciAoKF9fcykgPSAwOwkJCQkJCQlc Ci0JICAgICAoX19zKSA8IElOVEVMX0lORk8oX19kZXZfcHJpdiktPm51bV9zcHJpdGVzWyhfX3Ap XTsJXAorCSAgICAgKF9fcykgPCAoX19kZXZfcHJpdiktPnJ1bnRpbWVfaW5mby5udW1fc3ByaXRl c1soX19wKV07CVwKIAkgICAgIChfX3MpKyspCiAKICNkZWZpbmUgZm9yX2VhY2hfcG9ydF9tYXNr ZWQoX19wb3J0LCBfX3BvcnRzX21hc2spIFwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2VuZ2luZV9jcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5l X2NzLmMKaW5kZXggYmMxNDdkOWU2YzkyLi5iNDY0ZWUwYWZiODUgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2VuZ2luZV9jcy5jCkBAIC0zNjUsNyArMzY1LDcgQEAgaW50IGludGVsX2VuZ2lu ZXNfaW5pdF9tbWlvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJZ290byBj bGVhbnVwOwogCX0KIAotCWRldmljZV9pbmZvLT5udW1fcmluZ3MgPSBod2VpZ2h0MzIobWFzayk7 CisJZGV2X3ByaXYtPnJ1bnRpbWVfaW5mby5udW1fcmluZ3MgPSBod2VpZ2h0MzIobWFzayk7CiAK IAlpOTE1X2NoZWNrX2FuZF9jbGVhcl9mYXVsdHMoZGV2X3ByaXYpOwogCkBAIC04MDcsNyArODA3 LDcgQEAgY29uc3QgY2hhciAqaTkxNV9jYWNoZV9sZXZlbF9zdHIoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmk5MTUsIGludCB0eXBlKQogCiB1MzIgaW50ZWxfY2FsY3VsYXRlX21jcl9zX3NzX3Nl bGVjdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0JY29uc3Qgc3RydWN0 IHNzZXVfZGV2X2luZm8gKnNzZXUgPSAmKElOVEVMX0lORk8oZGV2X3ByaXYpLT5zc2V1KTsKKwlj b25zdCBzdHJ1Y3Qgc3NldV9kZXZfaW5mbyAqc3NldSA9ICZkZXZfcHJpdi0+cnVudGltZV9pbmZv LnNzZXU7CiAJdTMyIG1jcl9zX3NzX3NlbGVjdDsKIAl1MzIgc2xpY2UgPSBmbHMoc3NldS0+c2xp Y2VfbWFzayk7CiAJdTMyIHN1YnNsaWNlID0gZmxzKHNzZXUtPnN1YnNsaWNlX21hc2tbc2xpY2Vd KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKaW5kZXggMDhmZDliMTJlNGQ3Li5jYzg5N2Y0Mjk2 MzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCkBAIC0yMzQzLDkgKzIzNDMsOSBAQCBpbnQg bG9naWNhbF94Y3NfcmluZ19pbml0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIHN0 YXRpYyB1MzIKIG1ha2VfcnBjcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7 Ci0JYm9vbCBzdWJzbGljZV9wZyA9IElOVEVMX0lORk8oZGV2X3ByaXYpLT5zc2V1Lmhhc19zdWJz bGljZV9wZzsKLQl1OCBzbGljZXMgPSBod2VpZ2h0OChJTlRFTF9JTkZPKGRldl9wcml2KS0+c3Nl dS5zbGljZV9tYXNrKTsKLQl1OCBzdWJzbGljZXMgPSBod2VpZ2h0OChJTlRFTF9JTkZPKGRldl9w cml2KS0+c3NldS5zdWJzbGljZV9tYXNrWzBdKTsKKwlib29sIHN1YnNsaWNlX3BnID0gZGV2X3By aXYtPnJ1bnRpbWVfaW5mby5zc2V1Lmhhc19zdWJzbGljZV9wZzsKKwl1OCBzbGljZXMgPSBod2Vp Z2h0OChkZXZfcHJpdi0+cnVudGltZV9pbmZvLnNzZXUuc2xpY2VfbWFzayk7CisJdTggc3Vic2xp Y2VzID0gaHdlaWdodDgoZGV2X3ByaXYtPnJ1bnRpbWVfaW5mby5zc2V1LnN1YnNsaWNlX21hc2tb MF0pOwogCXUzMiBycGNzID0gMDsKIAogCS8qCkBAIC0yMzkzLDcgKzIzOTMsNyBAQCBtYWtlX3Jw Y3Moc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCSAqIG11c3QgbWFrZSBhbiBl eHBsaWNpdCByZXF1ZXN0IHRocm91Z2ggUlBDUyBmb3IgZnVsbAogCSAqIGVuYWJsZW1lbnQuCiAJ Ki8KLQlpZiAoSU5URUxfSU5GTyhkZXZfcHJpdiktPnNzZXUuaGFzX3NsaWNlX3BnKSB7CisJaWYg KGRldl9wcml2LT5ydW50aW1lX2luZm8uc3NldS5oYXNfc2xpY2VfcGcpIHsKIAkJdTMyIG1hc2ss IHZhbCA9IHNsaWNlczsKIAogCQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMSkgewpAQCAt MjQyMSwxNyArMjQyMSwxNyBAQCBtYWtlX3JwY3Moc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQogCQlycGNzIHw9IEdFTjhfUlBDU19FTkFCTEUgfCBHRU44X1JQQ1NfU1NfQ05UX0VO QUJMRSB8IHZhbDsKIAl9CiAKLQlpZiAoSU5URUxfSU5GTyhkZXZfcHJpdiktPnNzZXUuaGFzX2V1 X3BnKSB7CisJaWYgKGRldl9wcml2LT5ydW50aW1lX2luZm8uc3NldS5oYXNfZXVfcGcpIHsKIAkJ dTMyIHZhbDsKIAotCQl2YWwgPSBJTlRFTF9JTkZPKGRldl9wcml2KS0+c3NldS5ldV9wZXJfc3Vi c2xpY2UgPDwKKwkJdmFsID0gZGV2X3ByaXYtPnJ1bnRpbWVfaW5mby5zc2V1LmV1X3Blcl9zdWJz bGljZSA8PAogCQkgICAgICBHRU44X1JQQ1NfRVVfTUlOX1NISUZUOwogCQlHRU1fQlVHX09OKHZh bCAmIH5HRU44X1JQQ1NfRVVfTUlOX01BU0spOwogCQl2YWwgJj0gR0VOOF9SUENTX0VVX01JTl9N QVNLOwogCiAJCXJwY3MgfD0gdmFsOwogCi0JCXZhbCA9IElOVEVMX0lORk8oZGV2X3ByaXYpLT5z c2V1LmV1X3Blcl9zdWJzbGljZSA8PAorCQl2YWwgPSBkZXZfcHJpdi0+cnVudGltZV9pbmZvLnNz ZXUuZXVfcGVyX3N1YnNsaWNlIDw8CiAJCSAgICAgIEdFTjhfUlBDU19FVV9NQVhfU0hJRlQ7CiAJ CUdFTV9CVUdfT04odmFsICYgfkdFTjhfUlBDU19FVV9NQVhfTUFTSyk7CiAJCXZhbCAmPSBHRU44 X1JQQ1NfRVVfTUFYX01BU0s7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwppbmRleCA1ZGY3ZjZlMWFi NWUuLjE3MjcwZDhmMTg4MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCkBAIC03MzQxLDcgKzcz NDEsNyBAQCBzdGF0aWMgaW50IGNoZXJyeXZpZXdfcnBzX21heF9mcmVxKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKIAogCXZhbCA9IHZsdl9wdW5pdF9yZWFkKGRldl9wcml2LCBG Ql9HRlhfRk1BWF9BVF9WTUFYX0ZVU0UpOwogCi0Jc3dpdGNoIChJTlRFTF9JTkZPKGRldl9wcml2 KS0+c3NldS5ldV90b3RhbCkgeworCXN3aXRjaCAoZGV2X3ByaXYtPnJ1bnRpbWVfaW5mby5zc2V1 LmV1X3RvdGFsKSB7CiAJY2FzZSA4OgogCQkvKiAoMiAqIDQpIGNvbmZpZyAqLwogCQlycDAgPSAo dmFsID4+IEZCX0dGWF9GTUFYX0FUX1ZNQVhfMlNTNEVVX0ZVU0VfU0hJRlQpOwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCmluZGV4IDg3ZWViYzEzYzBkOC4uZmNjZWJmNzcz NDYxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCkBAIC0xNTY2LDcg KzE1NjYsNyBAQCBzdGF0aWMgaW5saW5lIGludCBtaV9zZXRfY29udGV4dChzdHJ1Y3QgaTkxNV9y ZXF1ZXN0ICpycSwgdTMyIGZsYWdzKQogCWNvbnN0IGludCBudW1fcmluZ3MgPQogCQkvKiBVc2Ug YW4gZXh0ZW5kZWQgdy9hIG9uIGdlbjcgaWYgc2lnbmFsbGluZyBmcm9tIG90aGVyIHJpbmdzICov CiAJCShIQVNfTEVHQUNZX1NFTUFQSE9SRVMoaTkxNSkgJiYgSVNfR0VONyhpOTE1KSkgPwotCQlJ TlRFTF9JTkZPKGk5MTUpLT5udW1fcmluZ3MgLSAxIDoKKwkJaTkxNS0+cnVudGltZV9pbmZvLm51 bV9yaW5ncyAtIDEgOgogCQkwOwogCWJvb2wgZm9yY2VfcmVzdG9yZSA9IGZhbHNlOwogCWludCBs ZW47CkBAIC0yMjMxLDcgKzIyMzEsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9yaW5nX2RlZmF1bHRf dmZ1bmNzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAogCQllbmdpbmUtPmVt aXRfYnJlYWRjcnVtYiA9IGdlbjZfc2VtYV9lbWl0X2JyZWFkY3J1bWI7CiAKLQkJbnVtX3Jpbmdz ID0gSU5URUxfSU5GTyhkZXZfcHJpdiktPm51bV9yaW5ncyAtIDE7CisJCW51bV9yaW5ncyA9IGRl dl9wcml2LT5ydW50aW1lX2luZm8ubnVtX3JpbmdzIC0gMTsKIAkJZW5naW5lLT5lbWl0X2JyZWFk Y3J1bWJfc3ogKz0gbnVtX3JpbmdzICogMzsKIAkJaWYgKG51bV9yaW5ncyAmIDEpCiAJCQllbmdp bmUtPmVtaXRfYnJlYWRjcnVtYl9zeisrOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcmluZ2J1ZmZlci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1 ZmZlci5oCmluZGV4IDhhMjI3MGIyMDliMC4uZGIyOTMzZDI4N2I4IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCkBAIC05NCwxMSArOTQsMTEgQEAgaGFuZ2NoZWNrX2Fj dGlvbl90b19zdHIoY29uc3QgZW51bSBpbnRlbF9lbmdpbmVfaGFuZ2NoZWNrX2FjdGlvbiBhKQog CiAjZGVmaW5lIGluc3Rkb25lX3NsaWNlX21hc2soZGV2X3ByaXZfXykgXAogCShJU19HRU43KGRl dl9wcml2X18pID8gXAotCSAxIDogSU5URUxfSU5GTyhkZXZfcHJpdl9fKS0+c3NldS5zbGljZV9t YXNrKQorCSAxIDogKGRldl9wcml2X18pLT5ydW50aW1lX2luZm8uc3NldS5zbGljZV9tYXNrKQog CiAjZGVmaW5lIGluc3Rkb25lX3N1YnNsaWNlX21hc2soZGV2X3ByaXZfXykgXAogCShJU19HRU43 KGRldl9wcml2X18pID8gXAotCSAxIDogSU5URUxfSU5GTyhkZXZfcHJpdl9fKS0+c3NldS5zdWJz bGljZV9tYXNrWzBdKQorCSAxIDogKGRldl9wcml2X18pLT5ydW50aW1lX2luZm8uc3NldS5zdWJz bGljZV9tYXNrWzBdKQogCiAjZGVmaW5lIGZvcl9lYWNoX2luc3Rkb25lX3NsaWNlX3N1YnNsaWNl KGRldl9wcml2X18sIHNsaWNlX18sIHN1YnNsaWNlX18pIFwKIAlmb3IgKChzbGljZV9fKSA9IDAs IChzdWJzbGljZV9fKSA9IDA7IFwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3dvcmthcm91bmRzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF93b3JrYXJvdW5k cy5jCmluZGV4IGQ3MTc2MjEzZTNjZS4uMTEwNTU2ZDA5MzRmIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF93b3JrYXJvdW5kcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3dvcmthcm91bmRzLmMKQEAgLTMxOCw3ICszMTgsNyBAQCBzdGF0aWMgaW50IHNr bF90dW5lX2l6X2hhc2hpbmcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQkg KiBPbmx5IGNvbnNpZGVyIHNsaWNlcyB3aGVyZSBvbmUsIGFuZCBvbmx5IG9uZSwgc3Vic2xpY2Ug aGFzIDcKIAkJICogRVVzCiAJCSAqLwotCQlpZiAoIWlzX3Bvd2VyX29mXzIoSU5URUxfSU5GTyhk ZXZfcHJpdiktPnNzZXUuc3Vic2xpY2VfN2V1W2ldKSkKKwkJaWYgKCFpc19wb3dlcl9vZl8yKGRl dl9wcml2LT5ydW50aW1lX2luZm8uc3NldS5zdWJzbGljZV83ZXVbaV0pKQogCQkJY29udGludWU7 CiAKIAkJLyoKQEAgLTMyNyw3ICszMjcsNyBAQCBzdGF0aWMgaW50IHNrbF90dW5lX2l6X2hhc2hp bmcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQkgKgogCQkgKiAtPiAgICAw IDw9IHNzIDw9IDM7CiAJCSAqLwotCQlzcyA9IGZmcyhJTlRFTF9JTkZPKGRldl9wcml2KS0+c3Nl dS5zdWJzbGljZV83ZXVbaV0pIC0gMTsKKwkJc3MgPSBmZnMoZGV2X3ByaXYtPnJ1bnRpbWVfaW5m by5zc2V1LnN1YnNsaWNlXzdldVtpXSkgLSAxOwogCQl2YWxzW2ldID0gMyAtIHNzOwogCX0KIApA QCAtNzMyLDcgKzczMiw3IEBAIHN0YXRpYyB2b2lkIGNmbF9ndF93b3JrYXJvdW5kc19hcHBseShz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAKIHN0YXRpYyB2b2lkIHdhX2luaXRf bWNyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQljb25zdCBzdHJ1Y3Qg c3NldV9kZXZfaW5mbyAqc3NldSA9ICYoSU5URUxfSU5GTyhkZXZfcHJpdiktPnNzZXUpOworCWNv bnN0IHN0cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1ID0gJmRldl9wcml2LT5ydW50aW1lX2luZm8u c3NldTsKIAl1MzIgbWNyOwogCXUzMiBtY3Jfc2xpY2Vfc3Vic2xpY2VfbWFzazsKIApkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2NvbnRleHQuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2dlbV9jb250ZXh0LmMKaW5kZXgg N2Q4MjA0M2FmZjEwLi40ZWUzZmNmZjgxNWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L3NlbGZ0ZXN0cy9pOTE1X2dlbV9jb250ZXh0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2NvbnRleHQuYwpAQCAtNjI3LDcgKzYyNyw3IEBAIHN0YXRp YyBpbnQgaWd0X2N0eF9leGVjKHZvaWQgKmFyZykKIAkJbmNvbnRleHRzKys7CiAJfQogCXByX2lu Zm8oIlN1Ym1pdHRlZCAlbHUgY29udGV4dHMgKGFjcm9zcyAldSBlbmdpbmVzKSwgZmlsbGluZyAl bHUgZHdvcmRzXG4iLAotCQluY29udGV4dHMsIElOVEVMX0lORk8oaTkxNSktPm51bV9yaW5ncywg bmR3b3Jkcyk7CisJCW5jb250ZXh0cywgaTkxNS0+cnVudGltZV9pbmZvLm51bV9yaW5ncywgbmR3 b3Jkcyk7CiAKIAlkdyA9IDA7CiAJbGlzdF9mb3JfZWFjaF9lbnRyeShvYmosICZvYmplY3RzLCBz dF9saW5rKSB7CkBAIC03MzIsNyArNzMyLDcgQEAgc3RhdGljIGludCBpZ3RfY3R4X3JlYWRvbmx5 KHZvaWQgKmFyZykKIAkJfQogCX0KIAlwcl9pbmZvKCJTdWJtaXR0ZWQgJWx1IGR3b3JkcyAoYWNy b3NzICV1IGVuZ2luZXMpXG4iLAotCQluZHdvcmRzLCBJTlRFTF9JTkZPKGk5MTUpLT5udW1fcmlu Z3MpOworCQluZHdvcmRzLCBpOTE1LT5ydW50aW1lX2luZm8ubnVtX3JpbmdzKTsKIAogCWR3ID0g MDsKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KG9iaiwgJm9iamVjdHMsIHN0X2xpbmspIHsKQEAgLTEw NjQsNyArMTA2NCw3IEBAIHN0YXRpYyBpbnQgaWd0X3ZtX2lzb2xhdGlvbih2b2lkICphcmcpCiAJ CWNvdW50ICs9IHRoaXM7CiAJfQogCXByX2luZm8oIkNoZWNrZWQgJWx1IHNjcmF0Y2ggb2Zmc2V0 cyBhY3Jvc3MgJWQgZW5naW5lc1xuIiwKLQkJY291bnQsIElOVEVMX0lORk8oaTkxNSktPm51bV9y aW5ncyk7CisJCWNvdW50LCBpOTE1LT5ydW50aW1lX2luZm8ubnVtX3JpbmdzKTsKIAogb3V0X3Jw bToKIAlpbnRlbF9ydW50aW1lX3BtX3B1dChpOTE1KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3Nl bGZ0ZXN0cy9pbnRlbF9scmMuYwppbmRleCA5NGZjMGU1Yzg3NjYuLjcyMzdhMjQ3NDgwNSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX2xyYy5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF9scmMuYwpAQCAtNzE5LDcgKzcx OSw3IEBAIHN0YXRpYyBpbnQgc21va2VfY3Jlc2NlbmRvKHN0cnVjdCBwcmVlbXB0X3Ntb2tlICpz bW9rZSwgdW5zaWduZWQgaW50IGZsYWdzKQogCiAJcHJfaW5mbygiU3VibWl0dGVkICVsdSBjcmVz Y2VuZG86JXggcmVxdWVzdHMgYWNyb3NzICVkIGVuZ2luZXMgYW5kICVkIGNvbnRleHRzXG4iLAog CQljb3VudCwgZmxhZ3MsCi0JCUlOVEVMX0lORk8oc21va2UtPmk5MTUpLT5udW1fcmluZ3MsIHNt b2tlLT5uY29udGV4dCk7CisJCXNtb2tlLT5pOTE1LT5ydW50aW1lX2luZm8ubnVtX3JpbmdzLCBz bW9rZS0+bmNvbnRleHQpOwogCXJldHVybiAwOwogfQogCkBAIC03NDcsNyArNzQ3LDcgQEAgc3Rh dGljIGludCBzbW9rZV9yYW5kb20oc3RydWN0IHByZWVtcHRfc21va2UgKnNtb2tlLCB1bnNpZ25l ZCBpbnQgZmxhZ3MpCiAKIAlwcl9pbmZvKCJTdWJtaXR0ZWQgJWx1IHJhbmRvbToleCByZXF1ZXN0 cyBhY3Jvc3MgJWQgZW5naW5lcyBhbmQgJWQgY29udGV4dHNcbiIsCiAJCWNvdW50LCBmbGFncywK LQkJSU5URUxfSU5GTyhzbW9rZS0+aTkxNSktPm51bV9yaW5ncywgc21va2UtPm5jb250ZXh0KTsK KwkJc21va2UtPmk5MTUtPnJ1bnRpbWVfaW5mby5udW1fcmluZ3MsIHNtb2tlLT5uY29udGV4dCk7 CiAJcmV0dXJuIDA7CiB9CiAKLS0gCjIuMTkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaW50ZWwtZ2Z4Cg==