From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stuart Summers Subject: [PATCH 4/4] drm/i915: Expand subslice mask Date: Thu, 18 Apr 2019 17:00:06 -0700 Message-ID: <20190419000006.10819-5-stuart.summers@intel.com> References: <20190419000006.10819-1-stuart.summers@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0042F89146 for ; Fri, 19 Apr 2019 00:00:07 +0000 (UTC) In-Reply-To: <20190419000006.10819-1-stuart.summers@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Q3VycmVudGx5LCB0aGUgc3Vic2xpY2VfbWFzayBydW50aW1lIHBhcmFtZXRlciBpcyBzdG9yZWQg YXMgYW4KYXJyYXkgb2Ygc3Vic2xpY2VzIHBlciBzbGljZS4gRXhwYW5kIHRoZSBzdWJzbGljZSBt YXNrIGFycmF5IHRvCmJldHRlciBtYXRjaCB3aGF0IGlzIHByZXNlbnRlZCB0byB1c2Vyc3BhY2Ug dGhyb3VnaCB0aGUKSTkxNV9RVUVSWV9UT1BPTE9HWV9JTkZPIGlvY3RsLiBUaGUgaW5kZXggaW50 byB0aGlzIGFycmF5IGlzCnRoZW4gY2FsY3VsYXRlZDoKICBzbGljZSAqIHN1YnNsaWNlIHN0cmlk ZSArIHN1YnNsaWNlIGluZGV4IC8gOAoKQ2M6IERhbmllbGUgQ2VyYW9sbyBTcHVyaW8gPGRhbmll bGUuY2VyYW9sb3NwdXJpb0BpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IFN0dWFydCBTdW1tZXJz IDxzdHVhcnQuc3VtbWVyc0BpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kZWJ1Z2ZzLmMgICAgICAgfCAgNDQgKysrKy0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuYyAgICAgICAgICAgfCAgIDYgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1 X2Vycm9yLmMgICAgIHwgICA1ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3F1ZXJ5LmMg ICAgICAgICB8ICAxMCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8u YyAgfCAxNTAgKysrKysrKysrKysrKy0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGV2aWNlX2luZm8uaCAgfCAgNDcgKysrKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZW5naW5lX2NzLmMgICAgfCAgIDYgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Vu Z2luZV90eXBlcy5oIHwgIDMyICsrLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oYW5n Y2hlY2suYyAgICB8ICAgMyArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfd29ya2Fyb3Vu ZHMuYyAgfCAgIDIgKy0KIDEwIGZpbGVzIGNoYW5nZWQsIDE4NyBpbnNlcnRpb25zKCspLCAxMTgg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1 Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwppbmRleCAxOTc0NjI0 OWQ1N2IuLjI4YTVmYmQ0MDVhZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kZWJ1Z2ZzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKQEAg LTEyNTAsNiArMTI1MCw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfaW5zdGRvbmVfaW5mbyhzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkgICAgICAgc3RydWN0IHNlcV9maWxlICpt LAogCQkJICAgICAgIHN0cnVjdCBpbnRlbF9pbnN0ZG9uZSAqaW5zdGRvbmUpCiB7CisJc3RydWN0 IHNzZXVfZGV2X2luZm8gKnNzZXUgPSAmUlVOVElNRV9JTkZPKGRldl9wcml2KS0+c3NldTsKIAlp bnQgc2xpY2U7CiAJaW50IHN1YnNsaWNlOwogCkBAIC0xMjY1LDExICsxMjY2LDExIEBAIHN0YXRp YyB2b2lkIGk5MTVfaW5zdGRvbmVfaW5mbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCiAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPD0gNikKIAkJcmV0dXJuOwogCi0JZm9yX2Vh Y2hfaW5zdGRvbmVfc2xpY2Vfc3Vic2xpY2UoZGV2X3ByaXYsIHNsaWNlLCBzdWJzbGljZSkKKwlm b3JfZWFjaF9pbnN0ZG9uZV9zbGljZV9zdWJzbGljZShkZXZfcHJpdiwgc3NldSwgc2xpY2UsIHN1 YnNsaWNlKQogCQlzZXFfcHJpbnRmKG0sICJcdFx0U0FNUExFUl9JTlNURE9ORVslZF1bJWRdOiAw eCUwOHhcbiIsCiAJCQkgICBzbGljZSwgc3Vic2xpY2UsIGluc3Rkb25lLT5zYW1wbGVyW3NsaWNl XVtzdWJzbGljZV0pOwogCi0JZm9yX2VhY2hfaW5zdGRvbmVfc2xpY2Vfc3Vic2xpY2UoZGV2X3By aXYsIHNsaWNlLCBzdWJzbGljZSkKKwlmb3JfZWFjaF9pbnN0ZG9uZV9zbGljZV9zdWJzbGljZShk ZXZfcHJpdiwgc3NldSwgc2xpY2UsIHN1YnNsaWNlKQogCQlzZXFfcHJpbnRmKG0sICJcdFx0Uk9X X0lOU1RET05FWyVkXVslZF06IDB4JTA4eFxuIiwKIAkJCSAgIHNsaWNlLCBzdWJzbGljZSwgaW5z dGRvbmUtPnJvd1tzbGljZV1bc3Vic2xpY2VdKTsKIH0KQEAgLTQwNzIsNyArNDA3Myw5IEBAIHN0 YXRpYyB2b2lkIGdlbjEwX3NzZXVfZGV2aWNlX3N0YXR1cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCiAJCQljb250aW51ZTsKIAogCQlzc2V1LT5zbGljZV9tYXNrIHw9IEJJVChz KTsKLQkJc3NldS0+c3Vic2xpY2VfbWFza1tzXSA9IGluZm8tPnNzZXUuc3Vic2xpY2VfbWFza1tz XTsKKwkJc3NldV9jb3B5X3N1YnNsaWNlcygmaW5mby0+c3NldSwgcywKKwkJCQkgICAgc3NldS0+ c3Vic2xpY2VfbWFzaywKKwkJCQkgICAgaW5mby0+c3NldS5zdWJzbGljZV9tYXNrKTsKIAogCQlm b3IgKHNzID0gMDsgc3MgPCBpbmZvLT5zc2V1Lm1heF9zdWJzbGljZXM7IHNzKyspIHsKIAkJCXVu c2lnbmVkIGludCBldV9jbnQ7CkBAIC00MTIzLDE4ICs0MTI2LDIyIEBAIHN0YXRpYyB2b2lkIGdl bjlfc3NldV9kZXZpY2Vfc3RhdHVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK IAkJc3NldS0+c2xpY2VfbWFzayB8PSBCSVQocyk7CiAKIAkJaWYgKElTX0dFTjlfQkMoZGV2X3By aXYpKQotCQkJc3NldS0+c3Vic2xpY2VfbWFza1tzXSA9Ci0JCQkJUlVOVElNRV9JTkZPKGRldl9w cml2KS0+c3NldS5zdWJzbGljZV9tYXNrW3NdOworCQkJc3NldV9jb3B5X3N1YnNsaWNlcygmaW5m by0+c3NldSwgcywKKwkJCQkJICAgIHNzZXUtPnN1YnNsaWNlX21hc2ssCisJCQkJCSAgICBpbmZv LT5zc2V1LnN1YnNsaWNlX21hc2spOwogCiAJCWZvciAoc3MgPSAwOyBzcyA8IGluZm8tPnNzZXUu bWF4X3N1YnNsaWNlczsgc3MrKykgewogCQkJdW5zaWduZWQgaW50IGV1X2NudDsKKwkJCXU4IHNz X2lkeCA9IHMgKiBpbmZvLT5zc2V1LnNzX3N0cmlkZSArCisJCQkJICAgIHNzIC8gQklUU19QRVJf QllURTsKIAogCQkJaWYgKElTX0dFTjlfTFAoZGV2X3ByaXYpKSB7CiAJCQkJaWYgKCEoc19yZWdb c10gJiAoR0VOOV9QR0NUTF9TU19BQ0soc3MpKSkpCiAJCQkJCS8qIHNraXAgZGlzYWJsZWQgc3Vi c2xpY2UgKi8KIAkJCQkJY29udGludWU7CiAKLQkJCQlzc2V1LT5zdWJzbGljZV9tYXNrW3NdIHw9 IEJJVChzcyk7CisJCQkJc3NldS0+c3Vic2xpY2VfbWFza1tzc19pZHhdIHw9CisJCQkJCUJJVChz cyAlIEJJVFNfUEVSX0JZVEUpOwogCQkJfQogCiAJCQlldV9jbnQgPSAyICogaHdlaWdodDMyKGV1 X3JlZ1syKnMgKyBzcy8yXSAmCkBAIC00MTUxLDI1ICs0MTU4LDI0IEBAIHN0YXRpYyB2b2lkIGdl bjlfc3NldV9kZXZpY2Vfc3RhdHVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK IHN0YXRpYyB2b2lkIGJyb2Fkd2VsbF9zc2V1X2RldmljZV9zdGF0dXMoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LAogCQkJCQkgc3RydWN0IHNzZXVfZGV2X2luZm8gKnNzZXUpCiB7 CisJc3RydWN0IGludGVsX3J1bnRpbWVfaW5mbyAqaW5mbyA9IFJVTlRJTUVfSU5GTyhkZXZfcHJp dik7CiAJdTMyIHNsaWNlX2luZm8gPSBJOTE1X1JFQUQoR0VOOF9HVF9TTElDRV9JTkZPKTsKIAlp bnQgczsKIAogCXNzZXUtPnNsaWNlX21hc2sgPSBzbGljZV9pbmZvICYgR0VOOF9MU0xJQ0VTVEFU X01BU0s7CiAKIAlpZiAoc3NldS0+c2xpY2VfbWFzaykgewotCQlzc2V1LT5ldV9wZXJfc3Vic2xp Y2UgPQotCQkJUlVOVElNRV9JTkZPKGRldl9wcml2KS0+c3NldS5ldV9wZXJfc3Vic2xpY2U7Ci0J CWZvciAocyA9IDA7IHMgPCBmbHMoc3NldS0+c2xpY2VfbWFzayk7IHMrKykgewotCQkJc3NldS0+ c3Vic2xpY2VfbWFza1tzXSA9Ci0JCQkJUlVOVElNRV9JTkZPKGRldl9wcml2KS0+c3NldS5zdWJz bGljZV9tYXNrW3NdOwotCQl9CisJCXNzZXUtPmV1X3Blcl9zdWJzbGljZSA9IGluZm8tPnNzZXUu ZXVfcGVyX3N1YnNsaWNlOworCQlmb3IgKHMgPSAwOyBzIDwgZmxzKHNzZXUtPnNsaWNlX21hc2sp OyBzKyspCisJCQlzc2V1X2NvcHlfc3Vic2xpY2VzKCZpbmZvLT5zc2V1LCBzLAorCQkJCQkgICAg c3NldS0+c3Vic2xpY2VfbWFzaywKKwkJCQkJICAgIGluZm8tPnNzZXUuc3Vic2xpY2VfbWFzayk7 CiAJCXNzZXUtPmV1X3RvdGFsID0gc3NldS0+ZXVfcGVyX3N1YnNsaWNlICoKIAkJCQkgc3NldV9z dWJzbGljZV90b3RhbChzc2V1KTsKIAogCQkvKiBzdWJ0cmFjdCBmdXNlZCBvZmYgRVUocykgZnJv bSBlbmFibGVkIHNsaWNlKHMpICovCiAJCWZvciAocyA9IDA7IHMgPCBmbHMoc3NldS0+c2xpY2Vf bWFzayk7IHMrKykgewotCQkJdTggc3Vic2xpY2VfN2V1ID0KLQkJCQlSVU5USU1FX0lORk8oZGV2 X3ByaXYpLT5zc2V1LnN1YnNsaWNlXzdldVtzXTsKKwkJCXU4IHN1YnNsaWNlXzdldSA9IGluZm8t PnNzZXUuc3Vic2xpY2VfN2V1W3NdOwogCiAJCQlzc2V1LT5ldV90b3RhbCAtPSBod2VpZ2h0OChz dWJzbGljZV83ZXUpOwogCQl9CkBAIC00MjE2LDYgKzQyMjIsNyBAQCBzdGF0aWMgdm9pZCBpOTE1 X3ByaW50X3NzZXVfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIGJvb2wgaXNfYXZhaWxhYmxlX2lu Zm8sCiBzdGF0aWMgaW50IGk5MTVfc3NldV9zdGF0dXMoc3RydWN0IHNlcV9maWxlICptLCB2b2lk ICp1bnVzZWQpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gbm9kZV90 b19pOTE1KG0tPnByaXZhdGUpOworCWNvbnN0IHN0cnVjdCBpbnRlbF9ydW50aW1lX2luZm8gKmlu Zm8gPSBSVU5USU1FX0lORk8oZGV2X3ByaXYpOwogCXN0cnVjdCBzc2V1X2Rldl9pbmZvIHNzZXU7 CiAJaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7CiAKQEAgLTQyMjMsMTQgKzQyMzAsMTMgQEAgc3Rh dGljIGludCBpOTE1X3NzZXVfc3RhdHVzKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2Vk KQogCQlyZXR1cm4gLUVOT0RFVjsKIAogCXNlcV9wdXRzKG0sICJTU0VVIERldmljZSBJbmZvXG4i KTsKLQlpOTE1X3ByaW50X3NzZXVfaW5mbyhtLCB0cnVlLCAmUlVOVElNRV9JTkZPKGRldl9wcml2 KS0+c3NldSk7CisJaTkxNV9wcmludF9zc2V1X2luZm8obSwgdHJ1ZSwgJmluZm8tPnNzZXUpOwog CiAJc2VxX3B1dHMobSwgIlNTRVUgRGV2aWNlIFN0YXR1c1xuIik7CiAJbWVtc2V0KCZzc2V1LCAw LCBzaXplb2Yoc3NldSkpOwotCXNzZXUubWF4X3NsaWNlcyA9IFJVTlRJTUVfSU5GTyhkZXZfcHJp diktPnNzZXUubWF4X3NsaWNlczsKLQlzc2V1Lm1heF9zdWJzbGljZXMgPSBSVU5USU1FX0lORk8o ZGV2X3ByaXYpLT5zc2V1Lm1heF9zdWJzbGljZXM7Ci0Jc3NldS5tYXhfZXVzX3Blcl9zdWJzbGlj ZSA9Ci0JCVJVTlRJTUVfSU5GTyhkZXZfcHJpdiktPnNzZXUubWF4X2V1c19wZXJfc3Vic2xpY2U7 CisJc3NldS5tYXhfc2xpY2VzID0gaW5mby0+c3NldS5tYXhfc2xpY2VzOworCXNzZXUubWF4X3N1 YnNsaWNlcyA9IGluZm8tPnNzZXUubWF4X3N1YnNsaWNlczsKKwlzc2V1Lm1heF9ldXNfcGVyX3N1 YnNsaWNlID0gaW5mby0+c3NldS5tYXhfZXVzX3Blcl9zdWJzbGljZTsKIAogCXdpdGhfaW50ZWxf cnVudGltZV9wbShkZXZfcHJpdiwgd2FrZXJlZikgewogCQlpZiAoSVNfQ0hFUlJZVklFVyhkZXZf cHJpdikpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwppbmRleCA4MzMzOWJlYjllODAuLjgyNzMxOTYx ZjQ4NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCkBAIC0zMjEsNyArMzIxLDcgQEAgc3RhdGlj IGludCBpOTE1X2dldHBhcmFtX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRh dGEsCiAJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBkZXZfcHJpdi0+ZHJtLnBkZXY7CiAJc3RydWN0 IHNzZXVfZGV2X2luZm8gKnNzZXUgPSAmUlVOVElNRV9JTkZPKGRldl9wcml2KS0+c3NldTsKIAlk cm1faTkxNV9nZXRwYXJhbV90ICpwYXJhbSA9IGRhdGE7Ci0JaW50IHZhbHVlOworCWludCB2YWx1 ZSA9IDA7CiAKIAlzd2l0Y2ggKHBhcmFtLT5wYXJhbSkgewogCWNhc2UgSTkxNV9QQVJBTV9JUlFf QUNUSVZFOgpAQCAtNDUwLDcgKzQ1MCw5IEBAIHN0YXRpYyBpbnQgaTkxNV9nZXRwYXJhbV9pb2N0 bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQkJcmV0dXJuIC1FTk9ERVY7 CiAJCWJyZWFrOwogCWNhc2UgSTkxNV9QQVJBTV9TVUJTTElDRV9NQVNLOgotCQl2YWx1ZSA9IHNz ZXUtPnN1YnNsaWNlX21hc2tbMF07CisJCS8qIE9ubHkgY29weSBiaXRzIGZyb20gdGhlIGZpcnN0 IHN1YnNsaWNlICovCisJCW1lbWNweSgmdmFsdWUsIHNzZXUtPnN1YnNsaWNlX21hc2ssCisJCSAg ICAgICBtaW4oc3NldS0+c3Nfc3RyaWRlLCAodTgpc2l6ZW9mKHZhbHVlKSkpOwogCQlpZiAoIXZh bHVlKQogCQkJcmV0dXJuIC1FTk9ERVY7CiAJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z3B1X2Vycm9yLmMKaW5kZXggZjUxZmY2ODNkZDJlLi45ZGE0MTE4YWQ0M2EgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYwpAQCAtNDA1LDYgKzQwNSw3IEBAIHN0YXRpYyB2b2lk IHByaW50X2Vycm9yX2J1ZmZlcnMoc3RydWN0IGRybV9pOTE1X2Vycm9yX3N0YXRlX2J1ZiAqbSwK IHN0YXRpYyB2b2lkIGVycm9yX3ByaW50X2luc3Rkb25lKHN0cnVjdCBkcm1faTkxNV9lcnJvcl9z dGF0ZV9idWYgKm0sCiAJCQkJIGNvbnN0IHN0cnVjdCBkcm1faTkxNV9lcnJvcl9lbmdpbmUgKmVl KQogeworCXN0cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1ID0gJlJVTlRJTUVfSU5GTyhtLT5pOTE1 KS0+c3NldTsKIAlpbnQgc2xpY2U7CiAJaW50IHN1YnNsaWNlOwogCkBAIC00MjAsMTIgKzQyMSwx MiBAQCBzdGF0aWMgdm9pZCBlcnJvcl9wcmludF9pbnN0ZG9uZShzdHJ1Y3QgZHJtX2k5MTVfZXJy b3Jfc3RhdGVfYnVmICptLAogCWlmIChJTlRFTF9HRU4obS0+aTkxNSkgPD0gNikKIAkJcmV0dXJu OwogCi0JZm9yX2VhY2hfaW5zdGRvbmVfc2xpY2Vfc3Vic2xpY2UobS0+aTkxNSwgc2xpY2UsIHN1 YnNsaWNlKQorCWZvcl9lYWNoX2luc3Rkb25lX3NsaWNlX3N1YnNsaWNlKG0tPmk5MTUsIHNzZXUs IHNsaWNlLCBzdWJzbGljZSkKIAkJZXJyX3ByaW50ZihtLCAiICBTQU1QTEVSX0lOU1RET05FWyVk XVslZF06IDB4JTA4eFxuIiwKIAkJCSAgIHNsaWNlLCBzdWJzbGljZSwKIAkJCSAgIGVlLT5pbnN0 ZG9uZS5zYW1wbGVyW3NsaWNlXVtzdWJzbGljZV0pOwogCi0JZm9yX2VhY2hfaW5zdGRvbmVfc2xp Y2Vfc3Vic2xpY2UobS0+aTkxNSwgc2xpY2UsIHN1YnNsaWNlKQorCWZvcl9lYWNoX2luc3Rkb25l X3NsaWNlX3N1YnNsaWNlKG0tPmk5MTUsIHNzZXUsIHNsaWNlLCBzdWJzbGljZSkKIAkJZXJyX3By aW50ZihtLCAiICBST1dfSU5TVERPTkVbJWRdWyVkXTogMHglMDh4XG4iLAogCQkJICAgc2xpY2Us IHN1YnNsaWNlLAogCQkJICAgZWUtPmluc3Rkb25lLnJvd1tzbGljZV1bc3Vic2xpY2VdKTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcXVlcnkuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfcXVlcnkuYwppbmRleCA3YzE3MDhjMjI4MTEuLjAwMGRjYjE0NWNlMCAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9xdWVyeS5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfcXVlcnkuYwpAQCAtMzcsOCArMzcsNiBAQCBzdGF0aWMgaW50 IHF1ZXJ5X3RvcG9sb2d5X2luZm8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAog CWNvbnN0IHN0cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1ID0gJlJVTlRJTUVfSU5GTyhkZXZfcHJp diktPnNzZXU7CiAJc3RydWN0IGRybV9pOTE1X3F1ZXJ5X3RvcG9sb2d5X2luZm8gdG9wbzsKIAl1 MzIgc2xpY2VfbGVuZ3RoLCBzdWJzbGljZV9sZW5ndGgsIGV1X2xlbmd0aCwgdG90YWxfbGVuZ3Ro OwotCXU4IHN1YnNsaWNlX3N0cmlkZSA9IEdFTl9TU0VVX1NUUklERShzc2V1LT5tYXhfc3Vic2xp Y2VzKTsKLQl1OCBldV9zdHJpZGUgPSBHRU5fU1NFVV9TVFJJREUoc3NldS0+bWF4X2V1c19wZXJf c3Vic2xpY2UpOwogCWludCByZXQ7CiAKIAlpZiAocXVlcnlfaXRlbS0+ZmxhZ3MgIT0gMCkKQEAg LTUwLDggKzQ4LDggQEAgc3RhdGljIGludCBxdWVyeV90b3BvbG9neV9pbmZvKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAlCVUlMRF9CVUdfT04oc2l6ZW9mKHU4KSAhPSBzaXpl b2Yoc3NldS0+c2xpY2VfbWFzaykpOwogCiAJc2xpY2VfbGVuZ3RoID0gc2l6ZW9mKHNzZXUtPnNs aWNlX21hc2spOwotCXN1YnNsaWNlX2xlbmd0aCA9IHNzZXUtPm1heF9zbGljZXMgKiBzdWJzbGlj ZV9zdHJpZGU7Ci0JZXVfbGVuZ3RoID0gc3NldS0+bWF4X3NsaWNlcyAqIHNzZXUtPm1heF9zdWJz bGljZXMgKiBldV9zdHJpZGU7CisJc3Vic2xpY2VfbGVuZ3RoID0gc3NldS0+bWF4X3NsaWNlcyAq IHNzZXUtPnNzX3N0cmlkZTsKKwlldV9sZW5ndGggPSBzc2V1LT5tYXhfc2xpY2VzICogc3NldS0+ bWF4X3N1YnNsaWNlcyAqIHNzZXUtPmV1X3N0cmlkZTsKIAl0b3RhbF9sZW5ndGggPSBzaXplb2Yo dG9wbykgKyBzbGljZV9sZW5ndGggKyBzdWJzbGljZV9sZW5ndGggKwogCQkgICAgICAgZXVfbGVu Z3RoOwogCkBAIC02OSw5ICs2Nyw5IEBAIHN0YXRpYyBpbnQgcXVlcnlfdG9wb2xvZ3lfaW5mbyhz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJdG9wby5tYXhfZXVzX3Blcl9zdWJz bGljZSA9IHNzZXUtPm1heF9ldXNfcGVyX3N1YnNsaWNlOwogCiAJdG9wby5zdWJzbGljZV9vZmZz ZXQgPSBzbGljZV9sZW5ndGg7Ci0JdG9wby5zdWJzbGljZV9zdHJpZGUgPSBzdWJzbGljZV9zdHJp ZGU7CisJdG9wby5zdWJzbGljZV9zdHJpZGUgPSBzc2V1LT5zc19zdHJpZGU7CiAJdG9wby5ldV9v ZmZzZXQgPSBzbGljZV9sZW5ndGggKyBzdWJzbGljZV9sZW5ndGg7Ci0JdG9wby5ldV9zdHJpZGUg PSBldV9zdHJpZGU7CisJdG9wby5ldV9zdHJpZGUgPSBzc2V1LT5ldV9zdHJpZGU7CiAKIAlpZiAo X19jb3B5X3RvX3VzZXIodTY0X3RvX3VzZXJfcHRyKHF1ZXJ5X2l0ZW0tPmRhdGFfcHRyKSwKIAkJ CSAgICZ0b3BvLCBzaXplb2YodG9wbykpKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGV2aWNlX2luZm8uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rldmlj ZV9pbmZvLmMKaW5kZXggNTU5Y2YwZDA2MjhlLi5hZjNhNTQ3YTY3MTYgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uYwpAQCAtODQsMTcgKzg0LDQyIEBAIHZvaWQgaW50 ZWxfZGV2aWNlX2luZm9fZHVtcF9mbGFncyhjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8g KmluZm8sCiAjdW5kZWYgUFJJTlRfRkxBRwogfQogCisjZGVmaW5lIFNTX1NUUl9NQVhfU0laRSAo R0VOX01BWF9TVUJTTElDRV9TVFJJREUgKiAyKQorCitzdGF0aWMgdTggKgorc3Vic2xpY2VfcGVy X3NsaWNlX3N0cih1OCAqYnVmLCBjb25zdCBzdHJ1Y3Qgc3NldV9kZXZfaW5mbyAqc3NldSwgdTgg c2xpY2UpCit7CisJaW50IGk7CisJdTggc3Nfb2Zmc2V0ID0gc2xpY2UgKiBzc2V1LT5zc19zdHJp ZGU7CisKKwlHRU1fQlVHX09OKHNsaWNlID49IHNzZXUtPm1heF9zbGljZXMpOworCisJbWVtc2V0 KGJ1ZiwgMCwgU1NfU1RSX01BWF9TSVpFKTsKKworCS8qCisJICogUHJpbnQgc3Vic2xpY2UgaW5m b3JtYXRpb24gaW4gcmV2ZXJzZSBvcmRlciB0byBtYXRjaAorCSAqIHVzZXJzcGFjZSBleHBlY3Rh dGlvbnMuCisJICovCisJZm9yIChpID0gMDsgaSA8IHNzZXUtPnNzX3N0cmlkZTsgaSsrKQorCQlz cHJpbnRmKCZidWZbaSAqIDJdLCAiJTAyeCIsCisJCQlzc2V1LT5zdWJzbGljZV9tYXNrW3NzX29m ZnNldCArIHNzZXUtPnNzX3N0cmlkZSAtCisJCQkJCSAgICAoaSArIDEpXSk7CisKKwlyZXR1cm4g YnVmOworfQorCiBzdGF0aWMgdm9pZCBzc2V1X2R1bXAoY29uc3Qgc3RydWN0IHNzZXVfZGV2X2lu Zm8gKnNzZXUsIHN0cnVjdCBkcm1fcHJpbnRlciAqcCkKIHsKIAlpbnQgczsKKwl1OCBidWZbU1Nf U1RSX01BWF9TSVpFXTsKIAogCWRybV9wcmludGYocCwgInNsaWNlIHRvdGFsOiAldSwgbWFzaz0l MDR4XG4iLAogCQkgICBod2VpZ2h0OChzc2V1LT5zbGljZV9tYXNrKSwgc3NldS0+c2xpY2VfbWFz ayk7CiAJZHJtX3ByaW50ZihwLCAic3Vic2xpY2UgdG90YWw6ICV1XG4iLCBzc2V1X3N1YnNsaWNl X3RvdGFsKHNzZXUpKTsKIAlmb3IgKHMgPSAwOyBzIDwgc3NldS0+bWF4X3NsaWNlczsgcysrKSB7 Ci0JCWRybV9wcmludGYocCwgInNsaWNlJWQ6ICV1IHN1YnNsaWNlcywgbWFzaz0lMDR4XG4iLAor CQlkcm1fcHJpbnRmKHAsICJzbGljZSVkOiAldSBzdWJzbGljZXMsIG1hc2s9JXNcbiIsCiAJCQkg ICBzLCBzc2V1X3N1YnNsaWNlc19wZXJfc2xpY2Uoc3NldSwgcyksCi0JCQkgICBzc2V1LT5zdWJz bGljZV9tYXNrW3NdKTsKKwkJCSAgIHN1YnNsaWNlX3Blcl9zbGljZV9zdHIoYnVmLCBzc2V1LCBz KSk7CiAJfQogCWRybV9wcmludGYocCwgIkVVIHRvdGFsOiAldVxuIiwgc3NldS0+ZXVfdG90YWwp OwogCWRybV9wcmludGYocCwgIkVVIHBlciBzdWJzbGljZTogJXVcbiIsIHNzZXUtPmV1X3Blcl9z dWJzbGljZSk7CkBAIC0xMTgsNiArMTQzLDcgQEAgdm9pZCBpbnRlbF9kZXZpY2VfaW5mb19kdW1w X3RvcG9sb2d5KGNvbnN0IHN0cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1LAogCQkJCSAgICAgc3Ry dWN0IGRybV9wcmludGVyICpwKQogewogCWludCBzLCBzczsKKwl1OCBidWZbU1NfU1RSX01BWF9T SVpFXTsKIAogCWlmIChzc2V1LT5tYXhfc2xpY2VzID09IDApIHsKIAkJZHJtX3ByaW50ZihwLCAi VW5hdmFpbGFibGVcbiIpOwpAQCAtMTI1LDkgKzE1MSw5IEBAIHZvaWQgaW50ZWxfZGV2aWNlX2lu Zm9fZHVtcF90b3BvbG9neShjb25zdCBzdHJ1Y3Qgc3NldV9kZXZfaW5mbyAqc3NldSwKIAl9CiAK IAlmb3IgKHMgPSAwOyBzIDwgc3NldS0+bWF4X3NsaWNlczsgcysrKSB7Ci0JCWRybV9wcmludGYo cCwgInNsaWNlJWQ6ICV1IHN1YnNsaWNlKHMpICgweCVoaHgpOlxuIiwKKwkJZHJtX3ByaW50Zihw LCAic2xpY2UlZDogJXUgc3Vic2xpY2UocykgKDB4JXMpOlxuIiwKIAkJCSAgIHMsIHNzZXVfc3Vi c2xpY2VzX3Blcl9zbGljZShzc2V1LCBzKSwKLQkJCSAgIHNzZXUtPnN1YnNsaWNlX21hc2tbc10p OworCQkJICAgc3Vic2xpY2VfcGVyX3NsaWNlX3N0cihidWYsIHNzZXUsIHMpKTsKIAogCQlmb3Ig KHNzID0gMDsgc3MgPCBzc2V1LT5tYXhfc3Vic2xpY2VzOyBzcysrKSB7CiAJCQl1MTYgZW5hYmxl ZF9ldXMgPSBzc2V1X2dldF9ldXMoc3NldSwgcywgc3MpOwpAQCAtMTQ4LDYgKzE3NCwxNyBAQCBz dGF0aWMgdTE2IGNvbXB1dGVfZXVfdG90YWwoY29uc3Qgc3RydWN0IHNzZXVfZGV2X2luZm8gKnNz ZXUpCiAJcmV0dXJuIHRvdGFsOwogfQogCitzdGF0aWMgdm9pZCBzZXRfc3NldV9pbmZvKHN0cnVj dCBzc2V1X2Rldl9pbmZvICpzc2V1LCB1OCBtYXhfc2xpY2VzLAorCQkJICAgdTggbWF4X3N1YnNs aWNlcywgdTggbWF4X2V1c19wZXJfc3Vic2xpY2UpCit7CisJc3NldS0+bWF4X3NsaWNlcyA9IG1h eF9zbGljZXM7CisJc3NldS0+bWF4X3N1YnNsaWNlcyA9IG1heF9zdWJzbGljZXM7CisJc3NldS0+ bWF4X2V1c19wZXJfc3Vic2xpY2UgPSBtYXhfZXVzX3Blcl9zdWJzbGljZTsKKworCXNzZXUtPnNz X3N0cmlkZSA9IEdFTl9TU0VVX1NUUklERShzc2V1LT5tYXhfc3Vic2xpY2VzKTsKKwlzc2V1LT5l dV9zdHJpZGUgPSBHRU5fU1NFVV9TVFJJREUoc3NldS0+bWF4X2V1c19wZXJfc3Vic2xpY2UpOwor fQorCiBzdGF0aWMgdm9pZCBnZW4xMV9zc2V1X2luZm9faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpCiB7CiAJc3RydWN0IHNzZXVfZGV2X2luZm8gKnNzZXUgPSAmUlVOVElN RV9JTkZPKGRldl9wcml2KS0+c3NldTsKQEAgLTE1NiwxNSArMTkzLDEwIEBAIHN0YXRpYyB2b2lk IGdlbjExX3NzZXVfaW5mb19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK IAl1OCBldV9lbjsKIAlpbnQgczsKIAotCWlmIChJU19FTEtIQVJUTEFLRShkZXZfcHJpdikpIHsK LQkJc3NldS0+bWF4X3NsaWNlcyA9IDE7Ci0JCXNzZXUtPm1heF9zdWJzbGljZXMgPSA0OwotCQlz c2V1LT5tYXhfZXVzX3Blcl9zdWJzbGljZSA9IDg7Ci0JfSBlbHNlIHsKLQkJc3NldS0+bWF4X3Ns aWNlcyA9IDE7Ci0JCXNzZXUtPm1heF9zdWJzbGljZXMgPSA4OwotCQlzc2V1LT5tYXhfZXVzX3Bl cl9zdWJzbGljZSA9IDg7Ci0JfQorCWlmIChJU19FTEtIQVJUTEFLRShkZXZfcHJpdikpCisJCXNl dF9zc2V1X2luZm8oc3NldSwgMSwgNCwgOCk7CisJZWxzZQorCQlzZXRfc3NldV9pbmZvKHNzZXUs IDEsIDgsIDgpOwogCiAJc19lbiA9IEk5MTVfUkVBRChHRU4xMV9HVF9TTElDRV9FTkFCTEUpICYg R0VOMTFfR1RfU19FTkFfTUFTSzsKIAlzc19lbiA9IH5JOTE1X1JFQUQoR0VOMTFfR1RfU1VCU0xJ Q0VfRElTQUJMRSk7CkBAIC0xNzcsOSArMjA5LDExIEBAIHN0YXRpYyB2b2lkIGdlbjExX3NzZXVf aW5mb19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJCWludCBzczsK IAogCQkJc3NldS0+c2xpY2VfbWFzayB8PSBCSVQocyk7Ci0JCQlzc2V1LT5zdWJzbGljZV9tYXNr W3NdID0gKHNzX2VuID4+IHNzX2lkeCkgJiBzc19lbl9tYXNrOworCQkJc3NldS0+c3Vic2xpY2Vf bWFza1tzICogc3NldS0+c3Nfc3RyaWRlXSA9CisJCQkJKHNzX2VuID4+IHNzX2lkeCkgJiBzc19l bl9tYXNrOwogCQkJZm9yIChzcyA9IDA7IHNzIDwgc3NldS0+bWF4X3N1YnNsaWNlczsgc3MrKykg ewotCQkJCWlmIChzc2V1LT5zdWJzbGljZV9tYXNrW3NdICYgQklUKHNzKSkKKwkJCQlpZiAoc3Nl dS0+c3Vic2xpY2VfbWFza1tzICogc3NldS0+c3Nfc3RyaWRlXSAmCisJCQkJICAgIEJJVChzcykp CiAJCQkJCXNzZXVfc2V0X2V1cyhzc2V1LCBzLCBzcywgZXVfZW4pOwogCQkJfQogCQl9CkBAIC0y MDEsMjMgKzIzNSwxMCBAQCBzdGF0aWMgdm9pZCBnZW4xMF9zc2V1X2luZm9faW5pdChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJY29uc3QgaW50IGV1X21hc2sgPSAweGZmOwog CXUzMiBzdWJzbGljZV9tYXNrLCBldV9lbjsKIAorCXNldF9zc2V1X2luZm8oc3NldSwgNiwgNCwg OCk7CisKIAlzc2V1LT5zbGljZV9tYXNrID0gKGZ1c2UyICYgR0VOMTBfRjJfU19FTkFfTUFTSykg Pj4KIAkJCSAgICBHRU4xMF9GMl9TX0VOQV9TSElGVDsKLQlzc2V1LT5tYXhfc2xpY2VzID0gNjsK LQlzc2V1LT5tYXhfc3Vic2xpY2VzID0gNDsKLQlzc2V1LT5tYXhfZXVzX3Blcl9zdWJzbGljZSA9 IDg7Ci0KLQlzdWJzbGljZV9tYXNrID0gKDEgPDwgNCkgLSAxOwotCXN1YnNsaWNlX21hc2sgJj0g figoZnVzZTIgJiBHRU4xMF9GMl9TU19ESVNfTUFTSykgPj4KLQkJCSAgIEdFTjEwX0YyX1NTX0RJ U19TSElGVCk7Ci0KLQkvKgotCSAqIFNsaWNlMCBjYW4gaGF2ZSB1cCB0byAzIHN1YnNsaWNlcywg YnV0IHRoZXJlIGFyZSBvbmx5IDIgaW4KLQkgKiBzbGljZTEvMi4KLQkgKi8KLQlzc2V1LT5zdWJz bGljZV9tYXNrWzBdID0gc3Vic2xpY2VfbWFzazsKLQlmb3IgKHMgPSAxOyBzIDwgc3NldS0+bWF4 X3NsaWNlczsgcysrKQotCQlzc2V1LT5zdWJzbGljZV9tYXNrW3NdID0gc3Vic2xpY2VfbWFzayAm IDB4MzsKIAogCS8qIFNsaWNlMCAqLwogCWV1X2VuID0gfkk5MTVfUkVBRChHRU44X0VVX0RJU0FC TEUwKTsKQEAgLTI0MiwxNCArMjYzLDIyIEBAIHN0YXRpYyB2b2lkIGdlbjEwX3NzZXVfaW5mb19p bml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlldV9lbiA9IH5JOTE1X1JF QUQoR0VOMTBfRVVfRElTQUJMRTMpOwogCXNzZXVfc2V0X2V1cyhzc2V1LCA1LCAxLCBldV9lbiAm IGV1X21hc2spOwogCi0JLyogRG8gYSBzZWNvbmQgcGFzcyB3aGVyZSB3ZSBtYXJrIHRoZSBzdWJz bGljZXMgZGlzYWJsZWQgaWYgYWxsIHRoZWlyCi0JICogZXVzIGFyZSBvZmYuCi0JICovCisJc3Vi c2xpY2VfbWFzayA9ICgxIDw8IDQpIC0gMTsKKwlzdWJzbGljZV9tYXNrICY9IH4oKGZ1c2UyICYg R0VOMTBfRjJfU1NfRElTX01BU0spID4+CisJCQkgICBHRU4xMF9GMl9TU19ESVNfU0hJRlQpOwor CiAJZm9yIChzID0gMDsgcyA8IHNzZXUtPm1heF9zbGljZXM7IHMrKykgewogCQlmb3IgKHNzID0g MDsgc3MgPCBzc2V1LT5tYXhfc3Vic2xpY2VzOyBzcysrKSB7CiAJCQlpZiAoc3NldV9nZXRfZXVz KHNzZXUsIHMsIHNzKSA9PSAwKQotCQkJCXNzZXUtPnN1YnNsaWNlX21hc2tbc10gJj0gfkJJVChz cyk7CisJCQkJc3Vic2xpY2VfbWFzayAmPSB+QklUKHNzKTsKIAkJfQorCisJCS8qCisJCSAqIFNs aWNlMCBjYW4gaGF2ZSB1cCB0byAzIHN1YnNsaWNlcywgYnV0IHRoZXJlIGFyZSBvbmx5IDIgaW4K KwkJICogc2xpY2UxLzIuCisJCSAqLworCQlzc2V1X3NldF9zdWJzbGljZXMoc3NldSwgcywgcyA9 PSAwID8gc3Vic2xpY2VfbWFzayA6CisJCQkJCQkgICAgIHN1YnNsaWNlX21hc2sgJiAweDMpOwog CX0KIAogCXNzZXUtPmV1X3RvdGFsID0gY29tcHV0ZV9ldV90b3RhbChzc2V1KTsKQEAgLTI3NCwx MyArMzAzLDEyIEBAIHN0YXRpYyB2b2lkIGNoZXJyeXZpZXdfc3NldV9pbmZvX2luaXQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewogCXN0cnVjdCBzc2V1X2Rldl9pbmZvICpz c2V1ID0gJlJVTlRJTUVfSU5GTyhkZXZfcHJpdiktPnNzZXU7CiAJdTMyIGZ1c2U7CisJdTggc3Vi c2xpY2VfbWFzazsKIAogCWZ1c2UgPSBJOTE1X1JFQUQoQ0hWX0ZVU0VfR1QpOwogCiAJc3NldS0+ c2xpY2VfbWFzayA9IEJJVCgwKTsKLQlzc2V1LT5tYXhfc2xpY2VzID0gMTsKLQlzc2V1LT5tYXhf c3Vic2xpY2VzID0gMjsKLQlzc2V1LT5tYXhfZXVzX3Blcl9zdWJzbGljZSA9IDg7CisJc2V0X3Nz ZXVfaW5mbyhzc2V1LCAxLCAyLCA4KTsKIAogCWlmICghKGZ1c2UgJiBDSFZfRkdUX0RJU0FCTEVf U1MwKSkgewogCQl1OCBkaXNhYmxlZF9tYXNrID0KQEAgLTI4OSw3ICszMTcsNyBAQCBzdGF0aWMg dm9pZCBjaGVycnl2aWV3X3NzZXVfaW5mb19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKIAkJCSgoKGZ1c2UgJiBDSFZfRkdUX0VVX0RJU19TUzBfUjFfTUFTSykgPj4KIAkJ CSAgQ0hWX0ZHVF9FVV9ESVNfU1MwX1IxX1NISUZUKSA8PCA0KTsKIAotCQlzc2V1LT5zdWJzbGlj ZV9tYXNrWzBdIHw9IEJJVCgwKTsKKwkJc3Vic2xpY2VfbWFzayB8PSBCSVQoMCk7CiAJCXNzZXVf c2V0X2V1cyhzc2V1LCAwLCAwLCB+ZGlzYWJsZWRfbWFzayk7CiAJfQogCkBAIC0zMDAsMTAgKzMy OCwxMiBAQCBzdGF0aWMgdm9pZCBjaGVycnl2aWV3X3NzZXVfaW5mb19pbml0KHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJCSgoKGZ1c2UgJiBDSFZfRkdUX0VVX0RJU19TUzFf UjFfTUFTSykgPj4KIAkJCSAgQ0hWX0ZHVF9FVV9ESVNfU1MxX1IxX1NISUZUKSA8PCA0KTsKIAot CQlzc2V1LT5zdWJzbGljZV9tYXNrWzBdIHw9IEJJVCgxKTsKKwkJc3Vic2xpY2VfbWFzayB8PSBC SVQoMSk7CiAJCXNzZXVfc2V0X2V1cyhzc2V1LCAwLCAxLCB+ZGlzYWJsZWRfbWFzayk7CiAJfQog CisJc3NldV9zZXRfc3Vic2xpY2VzKHNzZXUsIDAsIHN1YnNsaWNlX21hc2spOworCiAJc3NldS0+ ZXVfdG90YWwgPSBjb21wdXRlX2V1X3RvdGFsKHNzZXUpOwogCiAJLyoKQEAgLTMzNSw5ICszNjUs OCBAQCBzdGF0aWMgdm9pZCBnZW45X3NzZXVfaW5mb19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKIAlzc2V1LT5zbGljZV9tYXNrID0gKGZ1c2UyICYgR0VOOF9GMl9TX0VO QV9NQVNLKSA+PiBHRU44X0YyX1NfRU5BX1NISUZUOwogCiAJLyogQlhUIGhhcyBhIHNpbmdsZSBz bGljZSBhbmQgYXQgbW9zdCAzIHN1YnNsaWNlcy4gKi8KLQlzc2V1LT5tYXhfc2xpY2VzID0gSVNf R0VOOV9MUChkZXZfcHJpdikgPyAxIDogMzsKLQlzc2V1LT5tYXhfc3Vic2xpY2VzID0gSVNfR0VO OV9MUChkZXZfcHJpdikgPyAzIDogNDsKLQlzc2V1LT5tYXhfZXVzX3Blcl9zdWJzbGljZSA9IDg7 CisJc2V0X3NzZXVfaW5mbyhzc2V1LCBJU19HRU45X0xQKGRldl9wcml2KSA/IDEgOiAzLAorCQkg ICAgICBJU19HRU45X0xQKGRldl9wcml2KSA/IDMgOiA0LCA4KTsKIAogCS8qCiAJICogVGhlIHN1 YnNsaWNlIGRpc2FibGUgZmllbGQgaXMgZ2xvYmFsLCBpLmUuIGl0IGFwcGxpZXMKQEAgLTM1Niwx NCArMzg1LDE2IEBAIHN0YXRpYyB2b2lkIGdlbjlfc3NldV9pbmZvX2luaXQoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQkJLyogc2tpcCBkaXNhYmxlZCBzbGljZSAqLwogCQkJ Y29udGludWU7CiAKLQkJc3NldS0+c3Vic2xpY2VfbWFza1tzXSA9IHN1YnNsaWNlX21hc2s7CisJ CXNzZXVfc2V0X3N1YnNsaWNlcyhzc2V1LCBzLCBzdWJzbGljZV9tYXNrKTsKIAogCQlldV9kaXNh YmxlID0gSTkxNV9SRUFEKEdFTjlfRVVfRElTQUJMRShzKSk7CiAJCWZvciAoc3MgPSAwOyBzcyA8 IHNzZXUtPm1heF9zdWJzbGljZXM7IHNzKyspIHsKIAkJCWludCBldV9wZXJfc3M7CiAJCQl1OCBl dV9kaXNhYmxlZF9tYXNrOworCQkJdTggc3NfaWR4ID0gcyAqIHNzZXUtPnNzX3N0cmlkZSArIHNz IC8gQklUU19QRVJfQllURTsKIAotCQkJaWYgKCEoc3NldS0+c3Vic2xpY2VfbWFza1tzXSAmIEJJ VChzcykpKQorCQkJaWYgKCEoc3NldS0+c3Vic2xpY2VfbWFza1tzc19pZHhdICYKKwkJCSAgICAg IEJJVChzcyAlIEJJVFNfUEVSX0JZVEUpKSkKIAkJCQkvKiBza2lwIGRpc2FibGVkIHN1YnNsaWNl ICovCiAJCQkJY29udGludWU7CiAKQEAgLTQzNSw5ICs0NjYsNyBAQCBzdGF0aWMgdm9pZCBicm9h ZHdlbGxfc3NldV9pbmZvX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQog CiAJZnVzZTIgPSBJOTE1X1JFQUQoR0VOOF9GVVNFMik7CiAJc3NldS0+c2xpY2VfbWFzayA9IChm dXNlMiAmIEdFTjhfRjJfU19FTkFfTUFTSykgPj4gR0VOOF9GMl9TX0VOQV9TSElGVDsKLQlzc2V1 LT5tYXhfc2xpY2VzID0gMzsKLQlzc2V1LT5tYXhfc3Vic2xpY2VzID0gMzsKLQlzc2V1LT5tYXhf ZXVzX3Blcl9zdWJzbGljZSA9IDg7CisJc2V0X3NzZXVfaW5mbyhzc2V1LCAzLCAzLCA4KTsKIAog CS8qCiAJICogVGhlIHN1YnNsaWNlIGRpc2FibGUgZmllbGQgaXMgZ2xvYmFsLCBpLmUuIGl0IGFw cGxpZXMKQEAgLTQ2NCwxOCArNDkzLDIxIEBAIHN0YXRpYyB2b2lkIGJyb2Fkd2VsbF9zc2V1X2lu Zm9faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCQkvKiBza2lwIGRp c2FibGVkIHNsaWNlICovCiAJCQljb250aW51ZTsKIAotCQlzc2V1LT5zdWJzbGljZV9tYXNrW3Nd ID0gc3Vic2xpY2VfbWFzazsKKwkJc3NldV9zZXRfc3Vic2xpY2VzKHNzZXUsIHMsIHN1YnNsaWNl X21hc2spOwogCiAJCWZvciAoc3MgPSAwOyBzcyA8IHNzZXUtPm1heF9zdWJzbGljZXM7IHNzKysp IHsKIAkJCXU4IGV1X2Rpc2FibGVkX21hc2s7CisJCQl1OCBzc19pZHggPSBzICogc3NldS0+c3Nf c3RyaWRlICsgc3MgLyBCSVRTX1BFUl9CWVRFOwogCQkJdTMyIG5fZGlzYWJsZWQ7CiAKLQkJCWlm ICghKHNzZXUtPnN1YnNsaWNlX21hc2tbc10gJiBCSVQoc3MpKSkKKwkJCWlmICghKHNzZXUtPnN1 YnNsaWNlX21hc2tbc3NfaWR4XSAmCisJCQkgICAgICBCSVQoc3MgJSBCSVRTX1BFUl9CWVRFKSkp CiAJCQkJLyogc2tpcCBkaXNhYmxlZCBzdWJzbGljZSAqLwogCQkJCWNvbnRpbnVlOwogCiAJCQll dV9kaXNhYmxlZF9tYXNrID0KLQkJCQlldV9kaXNhYmxlW3NdID4+IChzcyAqIHNzZXUtPm1heF9l dXNfcGVyX3N1YnNsaWNlKTsKKwkJCQlldV9kaXNhYmxlW3NdID4+CisJCQkJCShzcyAqIHNzZXUt Pm1heF9ldXNfcGVyX3N1YnNsaWNlKTsKIAogCQkJc3NldV9zZXRfZXVzKHNzZXUsIHMsIHNzLCB+ ZXVfZGlzYWJsZWRfbWFzayk7CiAKQEAgLTUxNCw2ICs1NDYsNyBAQCBzdGF0aWMgdm9pZCBoYXN3 ZWxsX3NzZXVfaW5mb19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlz dHJ1Y3Qgc3NldV9kZXZfaW5mbyAqc3NldSA9ICZSVU5USU1FX0lORk8oZGV2X3ByaXYpLT5zc2V1 OwogCXUzMiBmdXNlMTsKIAlpbnQgcywgc3M7CisJdTMyIHN1YnNsaWNlX21hc2s7CiAKIAkvKgog CSAqIFRoZXJlIGlzbid0IGEgcmVnaXN0ZXIgdG8gdGVsbCB1cyBob3cgbWFueSBzbGljZXMvc3Vi c2xpY2VzLiBXZQpAQCAtNTI1LDIyICs1NTgsMTggQEAgc3RhdGljIHZvaWQgaGFzd2VsbF9zc2V1 X2luZm9faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCS8qIGZhbGwg dGhyb3VnaCAqLwogCWNhc2UgMToKIAkJc3NldS0+c2xpY2VfbWFzayA9IEJJVCgwKTsKLQkJc3Nl dS0+c3Vic2xpY2VfbWFza1swXSA9IEJJVCgwKTsKKwkJc3Vic2xpY2VfbWFzayA9IEJJVCgwKTsK IAkJYnJlYWs7CiAJY2FzZSAyOgogCQlzc2V1LT5zbGljZV9tYXNrID0gQklUKDApOwotCQlzc2V1 LT5zdWJzbGljZV9tYXNrWzBdID0gQklUKDApIHwgQklUKDEpOworCQlzdWJzbGljZV9tYXNrID0g QklUKDApIHwgQklUKDEpOwogCQlicmVhazsKIAljYXNlIDM6CiAJCXNzZXUtPnNsaWNlX21hc2sg PSBCSVQoMCkgfCBCSVQoMSk7Ci0JCXNzZXUtPnN1YnNsaWNlX21hc2tbMF0gPSBCSVQoMCkgfCBC SVQoMSk7Ci0JCXNzZXUtPnN1YnNsaWNlX21hc2tbMV0gPSBCSVQoMCkgfCBCSVQoMSk7CisJCXN1 YnNsaWNlX21hc2sgPSBCSVQoMCkgfCBCSVQoMSk7CiAJCWJyZWFrOwogCX0KIAotCXNzZXUtPm1h eF9zbGljZXMgPSBod2VpZ2h0OChzc2V1LT5zbGljZV9tYXNrKTsKLQlzc2V1LT5tYXhfc3Vic2xp Y2VzID0gaHdlaWdodDgoc3NldS0+c3Vic2xpY2VfbWFza1swXSk7Ci0KIAlmdXNlMSA9IEk5MTVf UkVBRChIU1dfUEFWUF9GVVNFMSk7CiAJc3dpdGNoICgoZnVzZTEgJiBIU1dfRjFfRVVfRElTX01B U0spID4+IEhTV19GMV9FVV9ESVNfU0hJRlQpIHsKIAlkZWZhdWx0OgpAQCAtNTU3LDkgKzU4Niwx NCBAQCBzdGF0aWMgdm9pZCBoYXN3ZWxsX3NzZXVfaW5mb19pbml0KHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKIAkJc3NldS0+ZXVfcGVyX3N1YnNsaWNlID0gNjsKIAkJYnJlYWs7 CiAJfQotCXNzZXUtPm1heF9ldXNfcGVyX3N1YnNsaWNlID0gc3NldS0+ZXVfcGVyX3N1YnNsaWNl OworCisJc2V0X3NzZXVfaW5mbyhzc2V1LCBod2VpZ2h0OChzc2V1LT5zbGljZV9tYXNrKSwKKwkJ ICAgICAgaHdlaWdodDgoc3Vic2xpY2VfbWFzayksCisJCSAgICAgIHNzZXUtPmV1X3Blcl9zdWJz bGljZSk7CiAKIAlmb3IgKHMgPSAwOyBzIDwgc3NldS0+bWF4X3NsaWNlczsgcysrKSB7CisJCXNz ZXVfc2V0X3N1YnNsaWNlcyhzc2V1LCBzLCBzdWJzbGljZV9tYXNrKTsKKwogCQlmb3IgKHNzID0g MDsgc3MgPCBzc2V1LT5tYXhfc3Vic2xpY2VzOyBzcysrKSB7CiAJCQlzc2V1X3NldF9ldXMoc3Nl dSwgcywgc3MsCiAJCQkJICAgICAoMVVMIDw8IHNzZXUtPmV1X3Blcl9zdWJzbGljZSkgLSAxKTsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5oCmluZGV4IDk4N2UwY2E2Zjlj Yy4uMWNmNjIyMDMxYWE3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k ZXZpY2VfaW5mby5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZv LmgKQEAgLTE0MiwxMCArMTQyLDExIEBAIGVudW0gaW50ZWxfcHBndHRfdHlwZSB7CiAjZGVmaW5l IEdFTl9NQVhfU0xJQ0VTCQkoNikgLyogQ05MIHVwcGVyIGJvdW5kICovCiAjZGVmaW5lIEdFTl9N QVhfU1VCU0xJQ0VTCSg4KSAvKiBJQ0wgdXBwZXIgYm91bmQgKi8KICNkZWZpbmUgR0VOX1NTRVVf U1RSSURFKGJpdHMpIERJVl9ST1VORF9VUChiaXRzLCBCSVRTX1BFUl9CWVRFKQorI2RlZmluZSBH RU5fTUFYX1NVQlNMSUNFX1NUUklERSBHRU5fU1NFVV9TVFJJREUoR0VOX01BWF9TVUJTTElDRVMp CiAKIHN0cnVjdCBzc2V1X2Rldl9pbmZvIHsKIAl1OCBzbGljZV9tYXNrOwotCXU4IHN1YnNsaWNl X21hc2tbR0VOX01BWF9TTElDRVNdOworCXU4IHN1YnNsaWNlX21hc2tbR0VOX01BWF9TTElDRVMg KiBHRU5fTUFYX1NVQlNMSUNFX1NUUklERV07CiAJdTE2IGV1X3RvdGFsOwogCXU4IGV1X3Blcl9z dWJzbGljZTsKIAl1OCBtaW5fZXVfaW5fcG9vbDsKQEAgLTE2MCw2ICsxNjEsOSBAQCBzdHJ1Y3Qg c3NldV9kZXZfaW5mbyB7CiAJdTggbWF4X3N1YnNsaWNlczsKIAl1OCBtYXhfZXVzX3Blcl9zdWJz bGljZTsKIAorCXU4IHNzX3N0cmlkZTsKKwl1OCBldV9zdHJpZGU7CisKIAkvKiBXZSBkb24ndCBo YXZlIG1vcmUgdGhhbiA4IGV1cyBwZXIgc3Vic2xpY2UgYXQgdGhlIG1vbWVudCBhbmQgYXMgd2UK IAkgKiBzdG9yZSBldXMgZW5hYmxlZCB1c2luZyBiaXRzLCBubyBuZWVkIHRvIG11bHRpcGx5IGJ5 IGV1cyBwZXIKIAkgKiBzdWJzbGljZS4KQEAgLTI1NSwxNyArMjU5LDQwIEBAIHN0YXRpYyBpbmxp bmUgdW5zaWduZWQgaW50IHNzZXVfc3Vic2xpY2VfdG90YWwoY29uc3Qgc3RydWN0IHNzZXVfZGV2 X2luZm8gKnNzZXUpCiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludAogc3NldV9zdWJzbGljZXNf cGVyX3NsaWNlKGNvbnN0IHN0cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1LCB1OCBzbGljZSkKIHsK LQlyZXR1cm4gaHdlaWdodDgoc3NldS0+c3Vic2xpY2VfbWFza1tzbGljZV0pOworCXVuc2lnbmVk IGludCBpLCB0b3RhbCA9IDA7CisKKwlmb3IgKGkgPSAwOyBpIDwgc3NldS0+c3Nfc3RyaWRlOyBp KyspCisJCXRvdGFsICs9IGh3ZWlnaHQ4KHNzZXUtPnN1YnNsaWNlX21hc2tbc2xpY2UgKiBzc2V1 LT5zc19zdHJpZGUgKworCQkJCQkJICAgICAgaV0pOworCisJcmV0dXJuIHRvdGFsOworfQorCitz dGF0aWMgaW5saW5lIHZvaWQgc3NldV9jb3B5X3N1YnNsaWNlcyhjb25zdCBzdHJ1Y3Qgc3NldV9k ZXZfaW5mbyAqc3NldSwKKwkJCQkgICAgICAgaW50IHNsaWNlLCB1OCAqdG9fbWFzaywKKwkJCQkg ICAgICAgY29uc3QgdTggKmZyb21fbWFzaykKK3sKKwlpbnQgb2Zmc2V0ID0gc2xpY2UgKiBzc2V1 LT5zc19zdHJpZGU7CisKKwltZW1jcHkoJnRvX21hc2tbb2Zmc2V0XSwgJmZyb21fbWFza1tvZmZz ZXRdLCBzc2V1LT5zc19zdHJpZGUpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgc3NldV9zZXRf c3Vic2xpY2VzKHN0cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1LAorCQkJCSAgICAgIGludCBzbGlj ZSwgdTMyIHNzX21hc2spCit7CisJaW50IGksIG9mZnNldCA9IHNsaWNlICogc3NldS0+c3Nfc3Ry aWRlOworCisJZm9yIChpID0gMDsgaSA8IHNzZXUtPnNzX3N0cmlkZTsgaSsrKQorCQlzc2V1LT5z dWJzbGljZV9tYXNrW29mZnNldCArIGldID0KKwkJCShzc19tYXNrID4+IChCSVRTX1BFUl9CWVRF ICogaSkpICYgMHhmZjsKIH0KIAogc3RhdGljIGlubGluZSBpbnQgc3NldV9ldV9pZHgoY29uc3Qg c3RydWN0IHNzZXVfZGV2X2luZm8gKnNzZXUsCiAJCQkgICAgICBpbnQgc2xpY2UsIGludCBzdWJz bGljZSkKIHsKLQlpbnQgc3Vic2xpY2Vfc3RyaWRlID0gRElWX1JPVU5EX1VQKHNzZXUtPm1heF9l dXNfcGVyX3N1YnNsaWNlLAotCQkJCQkgICBCSVRTX1BFUl9CWVRFKTsKLQlpbnQgc2xpY2Vfc3Ry aWRlID0gc3NldS0+bWF4X3N1YnNsaWNlcyAqIHN1YnNsaWNlX3N0cmlkZTsKKwlpbnQgc2xpY2Vf c3RyaWRlID0gc3NldS0+bWF4X3N1YnNsaWNlcyAqIHNzZXUtPmV1X3N0cmlkZTsKIAotCXJldHVy biBzbGljZSAqIHNsaWNlX3N0cmlkZSArIHN1YnNsaWNlICogc3Vic2xpY2Vfc3RyaWRlOworCXJl dHVybiBzbGljZSAqIHNsaWNlX3N0cmlkZSArIHN1YnNsaWNlICogc3NldS0+ZXVfc3RyaWRlOwog fQogCiBzdGF0aWMgaW5saW5lIHUxNiBzc2V1X2dldF9ldXMoY29uc3Qgc3RydWN0IHNzZXVfZGV2 X2luZm8gKnNzZXUsCkBAIC0yNzQsMTEgKzMwMSw5IEBAIHN0YXRpYyBpbmxpbmUgdTE2IHNzZXVf Z2V0X2V1cyhjb25zdCBzdHJ1Y3Qgc3NldV9kZXZfaW5mbyAqc3NldSwKIAlpbnQgaSwgb2Zmc2V0 ID0gc3NldV9ldV9pZHgoc3NldSwgc2xpY2UsIHN1YnNsaWNlKTsKIAl1MTYgZXVfbWFzayA9IDA7 CiAKLQlmb3IgKGkgPSAwOwotCSAgICAgaSA8IERJVl9ST1VORF9VUChzc2V1LT5tYXhfZXVzX3Bl cl9zdWJzbGljZSwgQklUU19QRVJfQllURSk7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBzc2V1 LT5ldV9zdHJpZGU7IGkrKykKIAkJZXVfbWFzayB8PSAoKHUxNikgc3NldS0+ZXVfbWFza1tvZmZz ZXQgKyBpXSkgPDwKIAkJCShpICogQklUU19QRVJfQllURSk7Ci0JfQogCiAJcmV0dXJuIGV1X21h c2s7CiB9CkBAIC0yODgsMTEgKzMxMyw5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzc2V1X3NldF9l dXMoc3RydWN0IHNzZXVfZGV2X2luZm8gKnNzZXUsCiB7CiAJaW50IGksIG9mZnNldCA9IHNzZXVf ZXVfaWR4KHNzZXUsIHNsaWNlLCBzdWJzbGljZSk7CiAKLQlmb3IgKGkgPSAwOwotCSAgICAgaSA8 IERJVl9ST1VORF9VUChzc2V1LT5tYXhfZXVzX3Blcl9zdWJzbGljZSwgQklUU19QRVJfQllURSk7 IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBzc2V1LT5ldV9zdHJpZGU7IGkrKykKIAkJc3NldS0+ ZXVfbWFza1tvZmZzZXQgKyBpXSA9CiAJCQkoZXVfbWFzayA+PiAoQklUU19QRVJfQllURSAqIGkp KSAmIDB4ZmY7Ci0JfQogfQogCiBjb25zdCBjaGFyICppbnRlbF9wbGF0Zm9ybV9uYW1lKGVudW0g aW50ZWxfcGxhdGZvcm0gcGxhdGZvcm0pOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZW5naW5lX2NzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVf Y3MuYwppbmRleCBlZWE5YmVjMDRmMWIuLjZlMGVmYjYxZWU0MSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZW5naW5lX2NzLmMKQEAgLTg4Niw3ICs4ODYsNyBAQCB1MzIgaW50ZWxfY2FsY3Vs YXRlX21jcl9zX3NzX3NlbGVjdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJ Y29uc3Qgc3RydWN0IHNzZXVfZGV2X2luZm8gKnNzZXUgPSAmUlVOVElNRV9JTkZPKGRldl9wcml2 KS0+c3NldTsKIAl1MzIgbWNyX3Nfc3Nfc2VsZWN0OwogCXUzMiBzbGljZSA9IGZscyhzc2V1LT5z bGljZV9tYXNrKTsKLQl1MzIgc3Vic2xpY2UgPSBmbHMoc3NldS0+c3Vic2xpY2VfbWFza1tzbGlj ZV0pOworCXUzMiBzdWJzbGljZSA9IGZscyhzc2V1LT5zdWJzbGljZV9tYXNrW3NsaWNlICogc3Nl dS0+c3Nfc3RyaWRlXSk7CiAKIAlpZiAoSVNfR0VOKGRldl9wcml2LCAxMCkpCiAJCW1jcl9zX3Nz X3NlbGVjdCA9IEdFTjhfTUNSX1NMSUNFKHNsaWNlKSB8CkBAIC05NjIsNiArOTYyLDcgQEAgdm9p ZCBpbnRlbF9lbmdpbmVfZ2V0X2luc3Rkb25lKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSwKIAkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfaW5zdGRvbmUgKmluc3Rkb25lKQogewogCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGVuZ2luZS0+aTkxNTsKKwlzdHJ1Y3Qgc3Nl dV9kZXZfaW5mbyAqc3NldSA9ICZSVU5USU1FX0lORk8oZGV2X3ByaXYpLT5zc2V1OwogCXN0cnVj dCBpbnRlbF91bmNvcmUgKnVuY29yZSA9IGVuZ2luZS0+dW5jb3JlOwogCXUzMiBtbWlvX2Jhc2Ug PSBlbmdpbmUtPm1taW9fYmFzZTsKIAlpbnQgc2xpY2U7CkBAIC05NzksNyArOTgwLDggQEAgdm9p ZCBpbnRlbF9lbmdpbmVfZ2V0X2luc3Rkb25lKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSwKIAogCQlpbnN0ZG9uZS0+c2xpY2VfY29tbW9uID0KIAkJCWludGVsX3VuY29yZV9yZWFkKHVu Y29yZSwgR0VON19TQ19JTlNURE9ORSk7Ci0JCWZvcl9lYWNoX2luc3Rkb25lX3NsaWNlX3N1YnNs aWNlKGRldl9wcml2LCBzbGljZSwgc3Vic2xpY2UpIHsKKwkJZm9yX2VhY2hfaW5zdGRvbmVfc2xp Y2Vfc3Vic2xpY2UoZGV2X3ByaXYsIHNzZXUsIHNsaWNlLAorCQkJCQkJIHN1YnNsaWNlKSB7CiAJ CQlpbnN0ZG9uZS0+c2FtcGxlcltzbGljZV1bc3Vic2xpY2VdID0KIAkJCQlyZWFkX3N1YnNsaWNl X3JlZyhkZXZfcHJpdiwgc2xpY2UsIHN1YnNsaWNlLAogCQkJCQkJICBHRU43X1NBTVBMRVJfSU5T VERPTkUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX3R5 cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfdHlwZXMuaAppbmRleCAx Zjk3MGM3NmI2YTYuLjAyMTUwZDJmMzAxZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZW5naW5lX3R5cGVzLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZW5naW5lX3R5cGVzLmgKQEAgLTUyNywyMCArNTI3LDIyIEBAIGludGVsX2VuZ2luZV9uZWVkc19i cmVhZGNydW1iX3Rhc2tsZXQoY29uc3Qgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQog CXJldHVybiBlbmdpbmUtPmZsYWdzICYgSTkxNV9FTkdJTkVfTkVFRFNfQlJFQURDUlVNQl9UQVNL TEVUOwogfQogCi0jZGVmaW5lIGluc3Rkb25lX3NsaWNlX21hc2soZGV2X3ByaXZfXykgXAotCShJ U19HRU4oZGV2X3ByaXZfXywgNykgPyBcCi0JIDEgOiBSVU5USU1FX0lORk8oZGV2X3ByaXZfXykt PnNzZXUuc2xpY2VfbWFzaykKLQotI2RlZmluZSBpbnN0ZG9uZV9zdWJzbGljZV9tYXNrKGRldl9w cml2X18pIFwKLQkoSVNfR0VOKGRldl9wcml2X18sIDcpID8gXAotCSAxIDogUlVOVElNRV9JTkZP KGRldl9wcml2X18pLT5zc2V1LnN1YnNsaWNlX21hc2tbMF0pCi0KLSNkZWZpbmUgZm9yX2VhY2hf aW5zdGRvbmVfc2xpY2Vfc3Vic2xpY2UoZGV2X3ByaXZfXywgc2xpY2VfXywgc3Vic2xpY2VfXykg XAotCWZvciAoKHNsaWNlX18pID0gMCwgKHN1YnNsaWNlX18pID0gMDsgXAotCSAgICAgKHNsaWNl X18pIDwgSTkxNV9NQVhfU0xJQ0VTOyBcCi0JICAgICAoc3Vic2xpY2VfXykgPSAoKHN1YnNsaWNl X18pICsgMSkgPCBJOTE1X01BWF9TVUJTTElDRVMgPyAoc3Vic2xpY2VfXykgKyAxIDogMCwgXAot CSAgICAgICAoc2xpY2VfXykgKz0gKChzdWJzbGljZV9fKSA9PSAwKSkgXAotCQlmb3JfZWFjaF9p ZigoQklUKHNsaWNlX18pICYgaW5zdGRvbmVfc2xpY2VfbWFzayhkZXZfcHJpdl9fKSkgJiYgXAot CQkJICAgIChCSVQoc3Vic2xpY2VfXykgJiBpbnN0ZG9uZV9zdWJzbGljZV9tYXNrKGRldl9wcml2 X18pKSkKKyNkZWZpbmUgaW5zdGRvbmVfaGFzX3NsaWNlKGRldl9wcml2X18sIHNzZXVfXywgc2xp Y2VfXykgXAorCSgoSVNfR0VOKGRldl9wcml2X18sIDcpID8gXAorCSAgMSA6IChzc2V1X18pLT5z bGljZV9tYXNrKSAmIFwKKwlCSVQoc2xpY2VfXykpIFwKKworI2RlZmluZSBpbnN0ZG9uZV9oYXNf c3Vic2xpY2UoZGV2X3ByaXZfXywgc3NldV9fLCBzbGljZV9fLCBzdWJzbGljZV9fKSBcCisJKChJ U19HRU4oZGV2X3ByaXZfXywgNykgPyBcCisJICAxIDogKHNzZXVfXyktPnN1YnNsaWNlX21hc2tb c2xpY2VfXyAqIChzc2V1X18pLT5zc19zdHJpZGUgKyBcCisJCQkJICAgICAgc3Vic2xpY2VfXyAv IEJJVFNfUEVSX0JZVEVdKSAmIFwKKwkgQklUKHN1YnNsaWNlX18gJSBCSVRTX1BFUl9CWVRFKSkg XAorCisjZGVmaW5lIGZvcl9lYWNoX2luc3Rkb25lX3NsaWNlX3N1YnNsaWNlKGRldl9wcml2Xywg c3NldV8sIHNsaWNlXywgc3Vic2xpY2VfKSBcCisJZm9yICgoc2xpY2VfKSA9IDAsIChzdWJzbGlj ZV8pID0gMDsgKHNsaWNlXykgPCBJOTE1X01BWF9TTElDRVM7IFwKKwkgICAgIChzdWJzbGljZV8p ID0gKChzdWJzbGljZV8pICsgMSkgPCBJOTE1X01BWF9TVUJTTElDRVMgPyAoc3Vic2xpY2VfKSAr IDEgOiAwLCBcCisJICAgICAgIChzbGljZV8pICs9ICgoc3Vic2xpY2VfKSA9PSAwKSkgXAorCQlm b3JfZWFjaF9pZihpbnN0ZG9uZV9oYXNfc2xpY2UoZGV2X3ByaXZfLCBzc2V1Xywgc2xpY2UpICYm IFwKKwkJCSAgICBpbnN0ZG9uZV9oYXNfc3Vic2xpY2UoZGV2X3ByaXZfLCBzc2V1Xywgc2xpY2Vf LCBzdWJzbGljZV8pKSBcCiAKICNlbmRpZiAvKiBfX0lOVEVMX0VOR0lORV9UWVBFU19IX18gKi8K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hhbmdjaGVjay5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGFuZ2NoZWNrLmMKaW5kZXggM2Q1MWVkMTQyOGQ0Li44 ZDk1MDRmMDgzYTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hhbmdj aGVjay5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hhbmdjaGVjay5jCkBAIC01 MCw2ICs1MCw3IEBAIHN0YXRpYyBib29sIGluc3Rkb25lX3VuY2hhbmdlZCh1MzIgY3VycmVudF9p bnN0ZG9uZSwgdTMyICpvbGRfaW5zdGRvbmUpCiBzdGF0aWMgYm9vbCBzdWJ1bml0c19zdHVjayhz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZW5naW5lLT5pOTE1OworCXN0cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1 ID0gJlJVTlRJTUVfSU5GTyhkZXZfcHJpdiktPnNzZXU7CiAJc3RydWN0IGludGVsX2luc3Rkb25l IGluc3Rkb25lOwogCXN0cnVjdCBpbnRlbF9pbnN0ZG9uZSAqYWNjdV9pbnN0ZG9uZSA9ICZlbmdp bmUtPmhhbmdjaGVjay5pbnN0ZG9uZTsKIAlib29sIHN0dWNrOwpAQCAtNzEsNyArNzIsNyBAQCBz dGF0aWMgYm9vbCBzdWJ1bml0c19zdHVjayhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUp CiAJc3R1Y2sgJj0gaW5zdGRvbmVfdW5jaGFuZ2VkKGluc3Rkb25lLnNsaWNlX2NvbW1vbiwKIAkJ CQkgICAgJmFjY3VfaW5zdGRvbmUtPnNsaWNlX2NvbW1vbik7CiAKLQlmb3JfZWFjaF9pbnN0ZG9u ZV9zbGljZV9zdWJzbGljZShkZXZfcHJpdiwgc2xpY2UsIHN1YnNsaWNlKSB7CisJZm9yX2VhY2hf aW5zdGRvbmVfc2xpY2Vfc3Vic2xpY2UoZGV2X3ByaXYsIHNzZXUsIHNsaWNlLCBzdWJzbGljZSkg ewogCQlzdHVjayAmPSBpbnN0ZG9uZV91bmNoYW5nZWQoaW5zdGRvbmUuc2FtcGxlcltzbGljZV1b c3Vic2xpY2VdLAogCQkJCQkgICAgJmFjY3VfaW5zdGRvbmUtPnNhbXBsZXJbc2xpY2VdW3N1YnNs aWNlXSk7CiAJCXN0dWNrICY9IGluc3Rkb25lX3VuY2hhbmdlZChpbnN0ZG9uZS5yb3dbc2xpY2Vd W3N1YnNsaWNlXSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3dvcmth cm91bmRzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF93b3JrYXJvdW5kcy5jCmluZGV4 IGIzY2JlZDFlZTFjOS4uZThkZGQ1NjkwNWRiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF93b3JrYXJvdW5kcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3dvcmthcm91bmRzLmMKQEAgLTc3MSw3ICs3NzEsNyBAQCB3YV9pbml0X21jcihzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqaTkxNSwgc3RydWN0IGk5MTVfd2FfbGlzdCAqd2FsKQogCQl1MzIgc2xp Y2UgPSBmbHMoc3NldS0+c2xpY2VfbWFzayk7CiAJCXUzMiBmdXNlMyA9CiAJCQlpbnRlbF91bmNv cmVfcmVhZCgmaTkxNS0+dW5jb3JlLCBHRU4xMF9NSVJST1JfRlVTRTMpOwotCQl1OCBzc19tYXNr ID0gc3NldS0+c3Vic2xpY2VfbWFza1tzbGljZV07CisJCXU4IHNzX21hc2sgPSBzc2V1LT5zdWJz bGljZV9tYXNrW3NsaWNlICogc3NldS0+c3Nfc3RyaWRlXTsKIAogCQl1OCBlbmFibGVkX21hc2sg PSAoc3NfbWFzayB8IHNzX21hc2sgPj4KIAkJCQkgICBHRU4xMF9MM0JBTktfUEFJUl9DT1VOVCkg JiBHRU4xMF9MM0JBTktfTUFTSzsKLS0gCjIuMjEuMC41LmdhZWI1ODJhOTgzCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=