From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stuart Summers Subject: [PATCH 5/5] drm/i915: Expand subslice mask Date: Thu, 25 Apr 2019 09:29:04 -0700 Message-ID: <20190425162904.17095-6-stuart.summers@intel.com> References: <20190419000006.10819-1-stuart.summers@intel.com> <20190425162904.17095-1-stuart.summers@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id AC00089208 for ; Thu, 25 Apr 2019 16:29:07 +0000 (UTC) In-Reply-To: <20190425162904.17095-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 ZSArIHN1YnNsaWNlIGluZGV4IC8gOAoKdjI6IGZpeCBzcGFjaW5nIGluIHNldF9zc2V1X2luZm8g YXJncwogICAgdXNlIHNldF9zc2V1X2luZm8gdG8gaW5pdGlhbGl6ZSBzc2V1IGRhdGEgd2hlbiBi dWlsZGluZwogICAgZGV2aWNlIHN0YXR1cyBpbiBkZWJ1Z2ZzCiAgICByZW5hbWUgdmFyaWFibGVz IGluIGludGVsX2VuZ2luZV90eXBlcy5oIHRvIGF2b2lkIGNoZWNrcGF0Y2gKICAgIHdhcm5pbmdz CgpDYzogRGFuaWVsZSBDZXJhb2xvIFNwdXJpbyA8ZGFuaWVsZS5jZXJhb2xvc3B1cmlvQGludGVs LmNvbT4KU2lnbmVkLW9mZi1ieTogU3R1YXJ0IFN1bW1lcnMgPHN0dWFydC5zdW1tZXJzQGludGVs LmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAgICAgICB8ICA0 MyArKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jICAgICAgICAgICB8ICAg NiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYyAgICAgfCAgIDUgKy0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcXVlcnkuYyAgICAgICAgIHwgIDEwICstCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5jICB8IDEzOSArKysrKysrKysrKysr LS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYyAgICB8ICAg NiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX3R5cGVzLmggfCAgMzIgKyst LS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hhbmdjaGVjay5jICAgIHwgICAzICstCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zc2V1LmggICAgICAgICB8ICA0NCArKysrKystCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF93b3JrYXJvdW5kcy5jICB8ICAgMiArLQogMTAgZmls ZXMgY2hhbmdlZCwgMTgyIGluc2VydGlvbnMoKyksIDEwOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZGVidWdmcy5jCmluZGV4IDE5NzQ2MjQ5ZDU3Yi4uOWJkMzA0YjgzZGUzIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwpAQCAtMTI1MCw2ICsxMjUwLDcgQEAgc3Rh dGljIHZvaWQgaTkxNV9pbnN0ZG9uZV9pbmZvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKIAkJCSAgICAgICBzdHJ1Y3Qgc2VxX2ZpbGUgKm0sCiAJCQkgICAgICAgc3RydWN0IGlu dGVsX2luc3Rkb25lICppbnN0ZG9uZSkKIHsKKwlzdHJ1Y3Qgc3NldV9kZXZfaW5mbyAqc3NldSA9 ICZSVU5USU1FX0lORk8oZGV2X3ByaXYpLT5zc2V1OwogCWludCBzbGljZTsKIAlpbnQgc3Vic2xp Y2U7CiAKQEAgLTEyNjUsMTEgKzEyNjYsMTEgQEAgc3RhdGljIHZvaWQgaTkxNV9pbnN0ZG9uZV9p bmZvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAlpZiAoSU5URUxfR0VOKGRl dl9wcml2KSA8PSA2KQogCQlyZXR1cm47CiAKLQlmb3JfZWFjaF9pbnN0ZG9uZV9zbGljZV9zdWJz bGljZShkZXZfcHJpdiwgc2xpY2UsIHN1YnNsaWNlKQorCWZvcl9lYWNoX2luc3Rkb25lX3NsaWNl X3N1YnNsaWNlKGRldl9wcml2LCBzc2V1LCBzbGljZSwgc3Vic2xpY2UpCiAJCXNlcV9wcmludGYo bSwgIlx0XHRTQU1QTEVSX0lOU1RET05FWyVkXVslZF06IDB4JTA4eFxuIiwKIAkJCSAgIHNsaWNl LCBzdWJzbGljZSwgaW5zdGRvbmUtPnNhbXBsZXJbc2xpY2VdW3N1YnNsaWNlXSk7CiAKLQlmb3Jf ZWFjaF9pbnN0ZG9uZV9zbGljZV9zdWJzbGljZShkZXZfcHJpdiwgc2xpY2UsIHN1YnNsaWNlKQor CWZvcl9lYWNoX2luc3Rkb25lX3NsaWNlX3N1YnNsaWNlKGRldl9wcml2LCBzc2V1LCBzbGljZSwg c3Vic2xpY2UpCiAJCXNlcV9wcmludGYobSwgIlx0XHRST1dfSU5TVERPTkVbJWRdWyVkXTogMHgl MDh4XG4iLAogCQkJICAgc2xpY2UsIHN1YnNsaWNlLCBpbnN0ZG9uZS0+cm93W3NsaWNlXVtzdWJz bGljZV0pOwogfQpAQCAtNDA3Miw3ICs0MDczLDkgQEAgc3RhdGljIHZvaWQgZ2VuMTBfc3NldV9k ZXZpY2Vfc3RhdHVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCWNvbnRp bnVlOwogCiAJCXNzZXUtPnNsaWNlX21hc2sgfD0gQklUKHMpOwotCQlzc2V1LT5zdWJzbGljZV9t YXNrW3NdID0gaW5mby0+c3NldS5zdWJzbGljZV9tYXNrW3NdOworCQlzc2V1X2NvcHlfc3Vic2xp Y2VzKCZpbmZvLT5zc2V1LCBzLAorCQkJCSAgICBzc2V1LT5zdWJzbGljZV9tYXNrLAorCQkJCSAg ICBpbmZvLT5zc2V1LnN1YnNsaWNlX21hc2spOwogCiAJCWZvciAoc3MgPSAwOyBzcyA8IGluZm8t PnNzZXUubWF4X3N1YnNsaWNlczsgc3MrKykgewogCQkJdW5zaWduZWQgaW50IGV1X2NudDsKQEAg LTQxMjMsMTggKzQxMjYsMjIgQEAgc3RhdGljIHZvaWQgZ2VuOV9zc2V1X2RldmljZV9zdGF0dXMo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQlzc2V1LT5zbGljZV9tYXNrIHw9 IEJJVChzKTsKIAogCQlpZiAoSVNfR0VOOV9CQyhkZXZfcHJpdikpCi0JCQlzc2V1LT5zdWJzbGlj ZV9tYXNrW3NdID0KLQkJCQlSVU5USU1FX0lORk8oZGV2X3ByaXYpLT5zc2V1LnN1YnNsaWNlX21h c2tbc107CisJCQlzc2V1X2NvcHlfc3Vic2xpY2VzKCZpbmZvLT5zc2V1LCBzLAorCQkJCQkgICAg c3NldS0+c3Vic2xpY2VfbWFzaywKKwkJCQkJICAgIGluZm8tPnNzZXUuc3Vic2xpY2VfbWFzayk7 CiAKIAkJZm9yIChzcyA9IDA7IHNzIDwgaW5mby0+c3NldS5tYXhfc3Vic2xpY2VzOyBzcysrKSB7 CiAJCQl1bnNpZ25lZCBpbnQgZXVfY250OworCQkJdTggc3NfaWR4ID0gcyAqIGluZm8tPnNzZXUu c3Nfc3RyaWRlICsKKwkJCQkgICAgc3MgLyBCSVRTX1BFUl9CWVRFOwogCiAJCQlpZiAoSVNfR0VO OV9MUChkZXZfcHJpdikpIHsKIAkJCQlpZiAoIShzX3JlZ1tzXSAmIChHRU45X1BHQ1RMX1NTX0FD SyhzcykpKSkKIAkJCQkJLyogc2tpcCBkaXNhYmxlZCBzdWJzbGljZSAqLwogCQkJCQljb250aW51 ZTsKIAotCQkJCXNzZXUtPnN1YnNsaWNlX21hc2tbc10gfD0gQklUKHNzKTsKKwkJCQlzc2V1LT5z dWJzbGljZV9tYXNrW3NzX2lkeF0gfD0KKwkJCQkJQklUKHNzICUgQklUU19QRVJfQllURSk7CiAJ CQl9CiAKIAkJCWV1X2NudCA9IDIgKiBod2VpZ2h0MzIoZXVfcmVnWzIqcyArIHNzLzJdICYKQEAg LTQxNTEsMjUgKzQxNTgsMjQgQEAgc3RhdGljIHZvaWQgZ2VuOV9zc2V1X2RldmljZV9zdGF0dXMo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogc3RhdGljIHZvaWQgYnJvYWR3ZWxs X3NzZXVfZGV2aWNlX3N0YXR1cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJ CQkJCSBzdHJ1Y3Qgc3NldV9kZXZfaW5mbyAqc3NldSkKIHsKKwlzdHJ1Y3QgaW50ZWxfcnVudGlt ZV9pbmZvICppbmZvID0gUlVOVElNRV9JTkZPKGRldl9wcml2KTsKIAl1MzIgc2xpY2VfaW5mbyA9 IEk5MTVfUkVBRChHRU44X0dUX1NMSUNFX0lORk8pOwogCWludCBzOwogCiAJc3NldS0+c2xpY2Vf bWFzayA9IHNsaWNlX2luZm8gJiBHRU44X0xTTElDRVNUQVRfTUFTSzsKIAogCWlmIChzc2V1LT5z bGljZV9tYXNrKSB7Ci0JCXNzZXUtPmV1X3Blcl9zdWJzbGljZSA9Ci0JCQlSVU5USU1FX0lORk8o ZGV2X3ByaXYpLT5zc2V1LmV1X3Blcl9zdWJzbGljZTsKLQkJZm9yIChzID0gMDsgcyA8IGZscyhz c2V1LT5zbGljZV9tYXNrKTsgcysrKSB7Ci0JCQlzc2V1LT5zdWJzbGljZV9tYXNrW3NdID0KLQkJ CQlSVU5USU1FX0lORk8oZGV2X3ByaXYpLT5zc2V1LnN1YnNsaWNlX21hc2tbc107Ci0JCX0KKwkJ c3NldS0+ZXVfcGVyX3N1YnNsaWNlID0gaW5mby0+c3NldS5ldV9wZXJfc3Vic2xpY2U7CisJCWZv ciAocyA9IDA7IHMgPCBmbHMoc3NldS0+c2xpY2VfbWFzayk7IHMrKykKKwkJCXNzZXVfY29weV9z dWJzbGljZXMoJmluZm8tPnNzZXUsIHMsCisJCQkJCSAgICBzc2V1LT5zdWJzbGljZV9tYXNrLAor CQkJCQkgICAgaW5mby0+c3NldS5zdWJzbGljZV9tYXNrKTsKIAkJc3NldS0+ZXVfdG90YWwgPSBz c2V1LT5ldV9wZXJfc3Vic2xpY2UgKgogCQkJCSBzc2V1X3N1YnNsaWNlX3RvdGFsKHNzZXUpOwog CiAJCS8qIHN1YnRyYWN0IGZ1c2VkIG9mZiBFVShzKSBmcm9tIGVuYWJsZWQgc2xpY2UocykgKi8K IAkJZm9yIChzID0gMDsgcyA8IGZscyhzc2V1LT5zbGljZV9tYXNrKTsgcysrKSB7Ci0JCQl1OCBz dWJzbGljZV83ZXUgPQotCQkJCVJVTlRJTUVfSU5GTyhkZXZfcHJpdiktPnNzZXUuc3Vic2xpY2Vf N2V1W3NdOworCQkJdTggc3Vic2xpY2VfN2V1ID0gaW5mby0+c3NldS5zdWJzbGljZV83ZXVbc107 CiAKIAkJCXNzZXUtPmV1X3RvdGFsIC09IGh3ZWlnaHQ4KHN1YnNsaWNlXzdldSk7CiAJCX0KQEAg LTQyMTYsNiArNDIyMiw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfcHJpbnRfc3NldV9pbmZvKHN0cnVj dCBzZXFfZmlsZSAqbSwgYm9vbCBpc19hdmFpbGFibGVfaW5mbywKIHN0YXRpYyBpbnQgaTkxNV9z c2V1X3N0YXR1cyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKIHsKIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBub2RlX3RvX2k5MTUobS0+cHJpdmF0ZSk7CisJ Y29uc3Qgc3RydWN0IGludGVsX3J1bnRpbWVfaW5mbyAqaW5mbyA9IFJVTlRJTUVfSU5GTyhkZXZf cHJpdik7CiAJc3RydWN0IHNzZXVfZGV2X2luZm8gc3NldTsKIAlpbnRlbF93YWtlcmVmX3Qgd2Fr ZXJlZjsKIApAQCAtNDIyMywxNCArNDIzMCwxMiBAQCBzdGF0aWMgaW50IGk5MTVfc3NldV9zdGF0 dXMoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCiAJCXJldHVybiAtRU5PREVWOwog CiAJc2VxX3B1dHMobSwgIlNTRVUgRGV2aWNlIEluZm9cbiIpOwotCWk5MTVfcHJpbnRfc3NldV9p bmZvKG0sIHRydWUsICZSVU5USU1FX0lORk8oZGV2X3ByaXYpLT5zc2V1KTsKKwlpOTE1X3ByaW50 X3NzZXVfaW5mbyhtLCB0cnVlLCAmaW5mby0+c3NldSk7CiAKIAlzZXFfcHV0cyhtLCAiU1NFVSBE ZXZpY2UgU3RhdHVzXG4iKTsKIAltZW1zZXQoJnNzZXUsIDAsIHNpemVvZihzc2V1KSk7Ci0Jc3Nl dS5tYXhfc2xpY2VzID0gUlVOVElNRV9JTkZPKGRldl9wcml2KS0+c3NldS5tYXhfc2xpY2VzOwot CXNzZXUubWF4X3N1YnNsaWNlcyA9IFJVTlRJTUVfSU5GTyhkZXZfcHJpdiktPnNzZXUubWF4X3N1 YnNsaWNlczsKLQlzc2V1Lm1heF9ldXNfcGVyX3N1YnNsaWNlID0KLQkJUlVOVElNRV9JTkZPKGRl dl9wcml2KS0+c3NldS5tYXhfZXVzX3Blcl9zdWJzbGljZTsKKwlzZXRfc3NldV9pbmZvKCZzc2V1 LCBpbmZvLT5zc2V1Lm1heF9zbGljZXMsIGluZm8tPnNzZXUubWF4X3N1YnNsaWNlcywKKwkJICAg ICAgaW5mby0+c3NldS5tYXhfZXVzX3Blcl9zdWJzbGljZSk7CiAKIAl3aXRoX2ludGVsX3J1bnRp bWVfcG0oZGV2X3ByaXYsIHdha2VyZWYpIHsKIAkJaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYp KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKaW5kZXggMjcwMjFhNzU0NmEyLi5hNDUyNWNiNWZkMjgg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwpAQCAtMzIxLDcgKzMyMSw3IEBAIHN0YXRpYyBpbnQg aTkxNV9nZXRwYXJhbV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAog CXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gZGV2X3ByaXYtPmRybS5wZGV2OwogCXN0cnVjdCBzc2V1 X2Rldl9pbmZvICpzc2V1ID0gJlJVTlRJTUVfSU5GTyhkZXZfcHJpdiktPnNzZXU7CiAJZHJtX2k5 MTVfZ2V0cGFyYW1fdCAqcGFyYW0gPSBkYXRhOwotCWludCB2YWx1ZTsKKwlpbnQgdmFsdWUgPSAw OwogCiAJc3dpdGNoIChwYXJhbS0+cGFyYW0pIHsKIAljYXNlIEk5MTVfUEFSQU1fSVJRX0FDVElW RToKQEAgLTQ1MCw3ICs0NTAsOSBAQCBzdGF0aWMgaW50IGk5MTVfZ2V0cGFyYW1faW9jdGwoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJCXJldHVybiAtRU5PREVWOwogCQli cmVhazsKIAljYXNlIEk5MTVfUEFSQU1fU1VCU0xJQ0VfTUFTSzoKLQkJdmFsdWUgPSBzc2V1LT5z dWJzbGljZV9tYXNrWzBdOworCQkvKiBPbmx5IGNvcHkgYml0cyBmcm9tIHRoZSBmaXJzdCBzdWJz bGljZSAqLworCQltZW1jcHkoJnZhbHVlLCBzc2V1LT5zdWJzbGljZV9tYXNrLAorCQkgICAgICAg bWluKHNzZXUtPnNzX3N0cmlkZSwgKHU4KXNpemVvZih2YWx1ZSkpKTsKIAkJaWYgKCF2YWx1ZSkK IAkJCXJldHVybiAtRU5PREVWOwogCQlicmVhazsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9l cnJvci5jCmluZGV4IGY1MWZmNjgzZGQyZS4uOWRhNDExOGFkNDNhIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ3B1X2Vycm9yLmMKQEAgLTQwNSw2ICs0MDUsNyBAQCBzdGF0aWMgdm9pZCBwcmlu dF9lcnJvcl9idWZmZXJzKHN0cnVjdCBkcm1faTkxNV9lcnJvcl9zdGF0ZV9idWYgKm0sCiBzdGF0 aWMgdm9pZCBlcnJvcl9wcmludF9pbnN0ZG9uZShzdHJ1Y3QgZHJtX2k5MTVfZXJyb3Jfc3RhdGVf YnVmICptLAogCQkJCSBjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfZXJyb3JfZW5naW5lICplZSkKIHsK KwlzdHJ1Y3Qgc3NldV9kZXZfaW5mbyAqc3NldSA9ICZSVU5USU1FX0lORk8obS0+aTkxNSktPnNz ZXU7CiAJaW50IHNsaWNlOwogCWludCBzdWJzbGljZTsKIApAQCAtNDIwLDEyICs0MjEsMTIgQEAg c3RhdGljIHZvaWQgZXJyb3JfcHJpbnRfaW5zdGRvbmUoc3RydWN0IGRybV9pOTE1X2Vycm9yX3N0 YXRlX2J1ZiAqbSwKIAlpZiAoSU5URUxfR0VOKG0tPmk5MTUpIDw9IDYpCiAJCXJldHVybjsKIAot CWZvcl9lYWNoX2luc3Rkb25lX3NsaWNlX3N1YnNsaWNlKG0tPmk5MTUsIHNsaWNlLCBzdWJzbGlj ZSkKKwlmb3JfZWFjaF9pbnN0ZG9uZV9zbGljZV9zdWJzbGljZShtLT5pOTE1LCBzc2V1LCBzbGlj ZSwgc3Vic2xpY2UpCiAJCWVycl9wcmludGYobSwgIiAgU0FNUExFUl9JTlNURE9ORVslZF1bJWRd OiAweCUwOHhcbiIsCiAJCQkgICBzbGljZSwgc3Vic2xpY2UsCiAJCQkgICBlZS0+aW5zdGRvbmUu c2FtcGxlcltzbGljZV1bc3Vic2xpY2VdKTsKIAotCWZvcl9lYWNoX2luc3Rkb25lX3NsaWNlX3N1 YnNsaWNlKG0tPmk5MTUsIHNsaWNlLCBzdWJzbGljZSkKKwlmb3JfZWFjaF9pbnN0ZG9uZV9zbGlj ZV9zdWJzbGljZShtLT5pOTE1LCBzc2V1LCBzbGljZSwgc3Vic2xpY2UpCiAJCWVycl9wcmludGYo bSwgIiAgUk9XX0lOU1RET05FWyVkXVslZF06IDB4JTA4eFxuIiwKIAkJCSAgIHNsaWNlLCBzdWJz bGljZSwKIAkJCSAgIGVlLT5pbnN0ZG9uZS5yb3dbc2xpY2VdW3N1YnNsaWNlXSk7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3F1ZXJ5LmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3F1ZXJ5LmMKaW5kZXggN2MxNzA4YzIyODExLi4wMDBkY2IxNDVjZTAgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcXVlcnkuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3F1ZXJ5LmMKQEAgLTM3LDggKzM3LDYgQEAgc3RhdGljIGludCBxdWVy eV90b3BvbG9neV9pbmZvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAljb25z dCBzdHJ1Y3Qgc3NldV9kZXZfaW5mbyAqc3NldSA9ICZSVU5USU1FX0lORk8oZGV2X3ByaXYpLT5z c2V1OwogCXN0cnVjdCBkcm1faTkxNV9xdWVyeV90b3BvbG9neV9pbmZvIHRvcG87CiAJdTMyIHNs aWNlX2xlbmd0aCwgc3Vic2xpY2VfbGVuZ3RoLCBldV9sZW5ndGgsIHRvdGFsX2xlbmd0aDsKLQl1 OCBzdWJzbGljZV9zdHJpZGUgPSBHRU5fU1NFVV9TVFJJREUoc3NldS0+bWF4X3N1YnNsaWNlcyk7 Ci0JdTggZXVfc3RyaWRlID0gR0VOX1NTRVVfU1RSSURFKHNzZXUtPm1heF9ldXNfcGVyX3N1YnNs aWNlKTsKIAlpbnQgcmV0OwogCiAJaWYgKHF1ZXJ5X2l0ZW0tPmZsYWdzICE9IDApCkBAIC01MCw4 ICs0OCw4IEBAIHN0YXRpYyBpbnQgcXVlcnlfdG9wb2xvZ3lfaW5mbyhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCiAJQlVJTERfQlVHX09OKHNpemVvZih1OCkgIT0gc2l6ZW9mKHNz ZXUtPnNsaWNlX21hc2spKTsKIAogCXNsaWNlX2xlbmd0aCA9IHNpemVvZihzc2V1LT5zbGljZV9t YXNrKTsKLQlzdWJzbGljZV9sZW5ndGggPSBzc2V1LT5tYXhfc2xpY2VzICogc3Vic2xpY2Vfc3Ry aWRlOwotCWV1X2xlbmd0aCA9IHNzZXUtPm1heF9zbGljZXMgKiBzc2V1LT5tYXhfc3Vic2xpY2Vz ICogZXVfc3RyaWRlOworCXN1YnNsaWNlX2xlbmd0aCA9IHNzZXUtPm1heF9zbGljZXMgKiBzc2V1 LT5zc19zdHJpZGU7CisJZXVfbGVuZ3RoID0gc3NldS0+bWF4X3NsaWNlcyAqIHNzZXUtPm1heF9z dWJzbGljZXMgKiBzc2V1LT5ldV9zdHJpZGU7CiAJdG90YWxfbGVuZ3RoID0gc2l6ZW9mKHRvcG8p ICsgc2xpY2VfbGVuZ3RoICsgc3Vic2xpY2VfbGVuZ3RoICsKIAkJICAgICAgIGV1X2xlbmd0aDsK IApAQCAtNjksOSArNjcsOSBAQCBzdGF0aWMgaW50IHF1ZXJ5X3RvcG9sb2d5X2luZm8oc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCXRvcG8ubWF4X2V1c19wZXJfc3Vic2xpY2Ug PSBzc2V1LT5tYXhfZXVzX3Blcl9zdWJzbGljZTsKIAogCXRvcG8uc3Vic2xpY2Vfb2Zmc2V0ID0g c2xpY2VfbGVuZ3RoOwotCXRvcG8uc3Vic2xpY2Vfc3RyaWRlID0gc3Vic2xpY2Vfc3RyaWRlOwor CXRvcG8uc3Vic2xpY2Vfc3RyaWRlID0gc3NldS0+c3Nfc3RyaWRlOwogCXRvcG8uZXVfb2Zmc2V0 ID0gc2xpY2VfbGVuZ3RoICsgc3Vic2xpY2VfbGVuZ3RoOwotCXRvcG8uZXVfc3RyaWRlID0gZXVf c3RyaWRlOworCXRvcG8uZXVfc3RyaWRlID0gc3NldS0+ZXVfc3RyaWRlOwogCiAJaWYgKF9fY29w eV90b191c2VyKHU2NF90b191c2VyX3B0cihxdWVyeV9pdGVtLT5kYXRhX3B0ciksCiAJCQkgICAm dG9wbywgc2l6ZW9mKHRvcG8pKSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RldmljZV9pbmZvLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5m by5jCmluZGV4IDU1OWNmMGQwNjI4ZS4uMWNjNzJiZWI4NmVlIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RldmljZV9pbmZvLmMKQEAgLTg0LDE3ICs4NCw0MiBAQCB2b2lkIGludGVsX2Rl dmljZV9pbmZvX2R1bXBfZmxhZ3MoY29uc3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZvICppbmZv LAogI3VuZGVmIFBSSU5UX0ZMQUcKIH0KIAorI2RlZmluZSBTU19TVFJfTUFYX1NJWkUgKEdFTl9N QVhfU1VCU0xJQ0VfU1RSSURFICogMikKKworc3RhdGljIHU4ICoKK3N1YnNsaWNlX3Blcl9zbGlj ZV9zdHIodTggKmJ1ZiwgY29uc3Qgc3RydWN0IHNzZXVfZGV2X2luZm8gKnNzZXUsIHU4IHNsaWNl KQoreworCWludCBpOworCXU4IHNzX29mZnNldCA9IHNsaWNlICogc3NldS0+c3Nfc3RyaWRlOwor CisJR0VNX0JVR19PTihzbGljZSA+PSBzc2V1LT5tYXhfc2xpY2VzKTsKKworCW1lbXNldChidWYs IDAsIFNTX1NUUl9NQVhfU0laRSk7CisKKwkvKgorCSAqIFByaW50IHN1YnNsaWNlIGluZm9ybWF0 aW9uIGluIHJldmVyc2Ugb3JkZXIgdG8gbWF0Y2gKKwkgKiB1c2Vyc3BhY2UgZXhwZWN0YXRpb25z LgorCSAqLworCWZvciAoaSA9IDA7IGkgPCBzc2V1LT5zc19zdHJpZGU7IGkrKykKKwkJc3ByaW50 ZigmYnVmW2kgKiAyXSwgIiUwMngiLAorCQkJc3NldS0+c3Vic2xpY2VfbWFza1tzc19vZmZzZXQg KyBzc2V1LT5zc19zdHJpZGUgLQorCQkJCQkgICAgKGkgKyAxKV0pOworCisJcmV0dXJuIGJ1ZjsK K30KKwogc3RhdGljIHZvaWQgc3NldV9kdW1wKGNvbnN0IHN0cnVjdCBzc2V1X2Rldl9pbmZvICpz c2V1LCBzdHJ1Y3QgZHJtX3ByaW50ZXIgKnApCiB7CiAJaW50IHM7CisJdTggYnVmW1NTX1NUUl9N QVhfU0laRV07CiAKIAlkcm1fcHJpbnRmKHAsICJzbGljZSB0b3RhbDogJXUsIG1hc2s9JTA0eFxu IiwKIAkJICAgaHdlaWdodDgoc3NldS0+c2xpY2VfbWFzayksIHNzZXUtPnNsaWNlX21hc2spOwog CWRybV9wcmludGYocCwgInN1YnNsaWNlIHRvdGFsOiAldVxuIiwgc3NldV9zdWJzbGljZV90b3Rh bChzc2V1KSk7CiAJZm9yIChzID0gMDsgcyA8IHNzZXUtPm1heF9zbGljZXM7IHMrKykgewotCQlk cm1fcHJpbnRmKHAsICJzbGljZSVkOiAldSBzdWJzbGljZXMsIG1hc2s9JTA0eFxuIiwKKwkJZHJt X3ByaW50ZihwLCAic2xpY2UlZDogJXUgc3Vic2xpY2VzLCBtYXNrPSVzXG4iLAogCQkJICAgcywg c3NldV9zdWJzbGljZXNfcGVyX3NsaWNlKHNzZXUsIHMpLAotCQkJICAgc3NldS0+c3Vic2xpY2Vf bWFza1tzXSk7CisJCQkgICBzdWJzbGljZV9wZXJfc2xpY2Vfc3RyKGJ1Ziwgc3NldSwgcykpOwog CX0KIAlkcm1fcHJpbnRmKHAsICJFVSB0b3RhbDogJXVcbiIsIHNzZXUtPmV1X3RvdGFsKTsKIAlk cm1fcHJpbnRmKHAsICJFVSBwZXIgc3Vic2xpY2U6ICV1XG4iLCBzc2V1LT5ldV9wZXJfc3Vic2xp Y2UpOwpAQCAtMTE4LDYgKzE0Myw3IEBAIHZvaWQgaW50ZWxfZGV2aWNlX2luZm9fZHVtcF90b3Bv bG9neShjb25zdCBzdHJ1Y3Qgc3NldV9kZXZfaW5mbyAqc3NldSwKIAkJCQkgICAgIHN0cnVjdCBk cm1fcHJpbnRlciAqcCkKIHsKIAlpbnQgcywgc3M7CisJdTggYnVmW1NTX1NUUl9NQVhfU0laRV07 CiAKIAlpZiAoc3NldS0+bWF4X3NsaWNlcyA9PSAwKSB7CiAJCWRybV9wcmludGYocCwgIlVuYXZh aWxhYmxlXG4iKTsKQEAgLTEyNSw5ICsxNTEsOSBAQCB2b2lkIGludGVsX2RldmljZV9pbmZvX2R1 bXBfdG9wb2xvZ3koY29uc3Qgc3RydWN0IHNzZXVfZGV2X2luZm8gKnNzZXUsCiAJfQogCiAJZm9y IChzID0gMDsgcyA8IHNzZXUtPm1heF9zbGljZXM7IHMrKykgewotCQlkcm1fcHJpbnRmKHAsICJz bGljZSVkOiAldSBzdWJzbGljZShzKSAoMHglaGh4KTpcbiIsCisJCWRybV9wcmludGYocCwgInNs aWNlJWQ6ICV1IHN1YnNsaWNlKHMpICgweCVzKTpcbiIsCiAJCQkgICBzLCBzc2V1X3N1YnNsaWNl c19wZXJfc2xpY2Uoc3NldSwgcyksCi0JCQkgICBzc2V1LT5zdWJzbGljZV9tYXNrW3NdKTsKKwkJ CSAgIHN1YnNsaWNlX3Blcl9zbGljZV9zdHIoYnVmLCBzc2V1LCBzKSk7CiAKIAkJZm9yIChzcyA9 IDA7IHNzIDwgc3NldS0+bWF4X3N1YnNsaWNlczsgc3MrKykgewogCQkJdTE2IGVuYWJsZWRfZXVz ID0gc3NldV9nZXRfZXVzKHNzZXUsIHMsIHNzKTsKQEAgLTE1NiwxNSArMTgyLDEwIEBAIHN0YXRp YyB2b2lkIGdlbjExX3NzZXVfaW5mb19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKIAl1OCBldV9lbjsKIAlpbnQgczsKIAotCWlmIChJU19FTEtIQVJUTEFLRShkZXZfcHJp dikpIHsKLQkJc3NldS0+bWF4X3NsaWNlcyA9IDE7Ci0JCXNzZXUtPm1heF9zdWJzbGljZXMgPSA0 OwotCQlzc2V1LT5tYXhfZXVzX3Blcl9zdWJzbGljZSA9IDg7Ci0JfSBlbHNlIHsKLQkJc3NldS0+ bWF4X3NsaWNlcyA9IDE7Ci0JCXNzZXUtPm1heF9zdWJzbGljZXMgPSA4OwotCQlzc2V1LT5tYXhf ZXVzX3Blcl9zdWJzbGljZSA9IDg7Ci0JfQorCWlmIChJU19FTEtIQVJUTEFLRShkZXZfcHJpdikp CisJCXNldF9zc2V1X2luZm8oc3NldSwgMSwgNCwgOCk7CisJZWxzZQorCQlzZXRfc3NldV9pbmZv KHNzZXUsIDEsIDgsIDgpOwogCiAJc19lbiA9IEk5MTVfUkVBRChHRU4xMV9HVF9TTElDRV9FTkFC TEUpICYgR0VOMTFfR1RfU19FTkFfTUFTSzsKIAlzc19lbiA9IH5JOTE1X1JFQUQoR0VOMTFfR1Rf U1VCU0xJQ0VfRElTQUJMRSk7CkBAIC0xNzcsOSArMTk4LDExIEBAIHN0YXRpYyB2b2lkIGdlbjEx X3NzZXVfaW5mb19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJCWlu dCBzczsKIAogCQkJc3NldS0+c2xpY2VfbWFzayB8PSBCSVQocyk7Ci0JCQlzc2V1LT5zdWJzbGlj ZV9tYXNrW3NdID0gKHNzX2VuID4+IHNzX2lkeCkgJiBzc19lbl9tYXNrOworCQkJc3NldS0+c3Vi c2xpY2VfbWFza1tzICogc3NldS0+c3Nfc3RyaWRlXSA9CisJCQkJKHNzX2VuID4+IHNzX2lkeCkg JiBzc19lbl9tYXNrOwogCQkJZm9yIChzcyA9IDA7IHNzIDwgc3NldS0+bWF4X3N1YnNsaWNlczsg c3MrKykgewotCQkJCWlmIChzc2V1LT5zdWJzbGljZV9tYXNrW3NdICYgQklUKHNzKSkKKwkJCQlp ZiAoc3NldS0+c3Vic2xpY2VfbWFza1tzICogc3NldS0+c3Nfc3RyaWRlXSAmCisJCQkJICAgIEJJ VChzcykpCiAJCQkJCXNzZXVfc2V0X2V1cyhzc2V1LCBzLCBzcywgZXVfZW4pOwogCQkJfQogCQl9 CkBAIC0yMDEsMjMgKzIyNCwxMCBAQCBzdGF0aWMgdm9pZCBnZW4xMF9zc2V1X2luZm9faW5pdChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJY29uc3QgaW50IGV1X21hc2sgPSAw eGZmOwogCXUzMiBzdWJzbGljZV9tYXNrLCBldV9lbjsKIAorCXNldF9zc2V1X2luZm8oc3NldSwg NiwgNCwgOCk7CisKIAlzc2V1LT5zbGljZV9tYXNrID0gKGZ1c2UyICYgR0VOMTBfRjJfU19FTkFf TUFTSykgPj4KIAkJCSAgICBHRU4xMF9GMl9TX0VOQV9TSElGVDsKLQlzc2V1LT5tYXhfc2xpY2Vz ID0gNjsKLQlzc2V1LT5tYXhfc3Vic2xpY2VzID0gNDsKLQlzc2V1LT5tYXhfZXVzX3Blcl9zdWJz bGljZSA9IDg7Ci0KLQlzdWJzbGljZV9tYXNrID0gKDEgPDwgNCkgLSAxOwotCXN1YnNsaWNlX21h c2sgJj0gfigoZnVzZTIgJiBHRU4xMF9GMl9TU19ESVNfTUFTSykgPj4KLQkJCSAgIEdFTjEwX0Yy X1NTX0RJU19TSElGVCk7Ci0KLQkvKgotCSAqIFNsaWNlMCBjYW4gaGF2ZSB1cCB0byAzIHN1YnNs aWNlcywgYnV0IHRoZXJlIGFyZSBvbmx5IDIgaW4KLQkgKiBzbGljZTEvMi4KLQkgKi8KLQlzc2V1 LT5zdWJzbGljZV9tYXNrWzBdID0gc3Vic2xpY2VfbWFzazsKLQlmb3IgKHMgPSAxOyBzIDwgc3Nl dS0+bWF4X3NsaWNlczsgcysrKQotCQlzc2V1LT5zdWJzbGljZV9tYXNrW3NdID0gc3Vic2xpY2Vf bWFzayAmIDB4MzsKIAogCS8qIFNsaWNlMCAqLwogCWV1X2VuID0gfkk5MTVfUkVBRChHRU44X0VV X0RJU0FCTEUwKTsKQEAgLTI0MiwxNCArMjUyLDIyIEBAIHN0YXRpYyB2b2lkIGdlbjEwX3NzZXVf aW5mb19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlldV9lbiA9IH5J OTE1X1JFQUQoR0VOMTBfRVVfRElTQUJMRTMpOwogCXNzZXVfc2V0X2V1cyhzc2V1LCA1LCAxLCBl dV9lbiAmIGV1X21hc2spOwogCi0JLyogRG8gYSBzZWNvbmQgcGFzcyB3aGVyZSB3ZSBtYXJrIHRo ZSBzdWJzbGljZXMgZGlzYWJsZWQgaWYgYWxsIHRoZWlyCi0JICogZXVzIGFyZSBvZmYuCi0JICov CisJc3Vic2xpY2VfbWFzayA9ICgxIDw8IDQpIC0gMTsKKwlzdWJzbGljZV9tYXNrICY9IH4oKGZ1 c2UyICYgR0VOMTBfRjJfU1NfRElTX01BU0spID4+CisJCQkgICBHRU4xMF9GMl9TU19ESVNfU0hJ RlQpOworCiAJZm9yIChzID0gMDsgcyA8IHNzZXUtPm1heF9zbGljZXM7IHMrKykgewogCQlmb3Ig KHNzID0gMDsgc3MgPCBzc2V1LT5tYXhfc3Vic2xpY2VzOyBzcysrKSB7CiAJCQlpZiAoc3NldV9n ZXRfZXVzKHNzZXUsIHMsIHNzKSA9PSAwKQotCQkJCXNzZXUtPnN1YnNsaWNlX21hc2tbc10gJj0g fkJJVChzcyk7CisJCQkJc3Vic2xpY2VfbWFzayAmPSB+QklUKHNzKTsKIAkJfQorCisJCS8qCisJ CSAqIFNsaWNlMCBjYW4gaGF2ZSB1cCB0byAzIHN1YnNsaWNlcywgYnV0IHRoZXJlIGFyZSBvbmx5 IDIgaW4KKwkJICogc2xpY2UxLzIuCisJCSAqLworCQlzc2V1X3NldF9zdWJzbGljZXMoc3NldSwg cywgcyA9PSAwID8gc3Vic2xpY2VfbWFzayA6CisJCQkJCQkgICAgIHN1YnNsaWNlX21hc2sgJiAw eDMpOwogCX0KIAogCXNzZXUtPmV1X3RvdGFsID0gY29tcHV0ZV9ldV90b3RhbChzc2V1KTsKQEAg LTI3NCwxMyArMjkyLDEyIEBAIHN0YXRpYyB2b2lkIGNoZXJyeXZpZXdfc3NldV9pbmZvX2luaXQo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewogCXN0cnVjdCBzc2V1X2Rldl9p bmZvICpzc2V1ID0gJlJVTlRJTUVfSU5GTyhkZXZfcHJpdiktPnNzZXU7CiAJdTMyIGZ1c2U7CisJ dTggc3Vic2xpY2VfbWFzazsKIAogCWZ1c2UgPSBJOTE1X1JFQUQoQ0hWX0ZVU0VfR1QpOwogCiAJ c3NldS0+c2xpY2VfbWFzayA9IEJJVCgwKTsKLQlzc2V1LT5tYXhfc2xpY2VzID0gMTsKLQlzc2V1 LT5tYXhfc3Vic2xpY2VzID0gMjsKLQlzc2V1LT5tYXhfZXVzX3Blcl9zdWJzbGljZSA9IDg7CisJ c2V0X3NzZXVfaW5mbyhzc2V1LCAxLCAyLCA4KTsKIAogCWlmICghKGZ1c2UgJiBDSFZfRkdUX0RJ U0FCTEVfU1MwKSkgewogCQl1OCBkaXNhYmxlZF9tYXNrID0KQEAgLTI4OSw3ICszMDYsNyBAQCBz dGF0aWMgdm9pZCBjaGVycnl2aWV3X3NzZXVfaW5mb19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKIAkJCSgoKGZ1c2UgJiBDSFZfRkdUX0VVX0RJU19TUzBfUjFfTUFTSykg Pj4KIAkJCSAgQ0hWX0ZHVF9FVV9ESVNfU1MwX1IxX1NISUZUKSA8PCA0KTsKIAotCQlzc2V1LT5z dWJzbGljZV9tYXNrWzBdIHw9IEJJVCgwKTsKKwkJc3Vic2xpY2VfbWFzayB8PSBCSVQoMCk7CiAJ CXNzZXVfc2V0X2V1cyhzc2V1LCAwLCAwLCB+ZGlzYWJsZWRfbWFzayk7CiAJfQogCkBAIC0zMDAs MTAgKzMxNywxMiBAQCBzdGF0aWMgdm9pZCBjaGVycnl2aWV3X3NzZXVfaW5mb19pbml0KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJCSgoKGZ1c2UgJiBDSFZfRkdUX0VVX0RJ U19TUzFfUjFfTUFTSykgPj4KIAkJCSAgQ0hWX0ZHVF9FVV9ESVNfU1MxX1IxX1NISUZUKSA8PCA0 KTsKIAotCQlzc2V1LT5zdWJzbGljZV9tYXNrWzBdIHw9IEJJVCgxKTsKKwkJc3Vic2xpY2VfbWFz ayB8PSBCSVQoMSk7CiAJCXNzZXVfc2V0X2V1cyhzc2V1LCAwLCAxLCB+ZGlzYWJsZWRfbWFzayk7 CiAJfQogCisJc3NldV9zZXRfc3Vic2xpY2VzKHNzZXUsIDAsIHN1YnNsaWNlX21hc2spOworCiAJ c3NldS0+ZXVfdG90YWwgPSBjb21wdXRlX2V1X3RvdGFsKHNzZXUpOwogCiAJLyoKQEAgLTMzNSw5 ICszNTQsOCBAQCBzdGF0aWMgdm9pZCBnZW45X3NzZXVfaW5mb19pbml0KHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKIAlzc2V1LT5zbGljZV9tYXNrID0gKGZ1c2UyICYgR0VOOF9G Ml9TX0VOQV9NQVNLKSA+PiBHRU44X0YyX1NfRU5BX1NISUZUOwogCiAJLyogQlhUIGhhcyBhIHNp bmdsZSBzbGljZSBhbmQgYXQgbW9zdCAzIHN1YnNsaWNlcy4gKi8KLQlzc2V1LT5tYXhfc2xpY2Vz ID0gSVNfR0VOOV9MUChkZXZfcHJpdikgPyAxIDogMzsKLQlzc2V1LT5tYXhfc3Vic2xpY2VzID0g SVNfR0VOOV9MUChkZXZfcHJpdikgPyAzIDogNDsKLQlzc2V1LT5tYXhfZXVzX3Blcl9zdWJzbGlj ZSA9IDg7CisJc2V0X3NzZXVfaW5mbyhzc2V1LCBJU19HRU45X0xQKGRldl9wcml2KSA/IDEgOiAz LAorCQkgICAgICBJU19HRU45X0xQKGRldl9wcml2KSA/IDMgOiA0LCA4KTsKIAogCS8qCiAJICog VGhlIHN1YnNsaWNlIGRpc2FibGUgZmllbGQgaXMgZ2xvYmFsLCBpLmUuIGl0IGFwcGxpZXMKQEAg LTM1NiwxNCArMzc0LDE2IEBAIHN0YXRpYyB2b2lkIGdlbjlfc3NldV9pbmZvX2luaXQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQkJLyogc2tpcCBkaXNhYmxlZCBzbGljZSAq LwogCQkJY29udGludWU7CiAKLQkJc3NldS0+c3Vic2xpY2VfbWFza1tzXSA9IHN1YnNsaWNlX21h c2s7CisJCXNzZXVfc2V0X3N1YnNsaWNlcyhzc2V1LCBzLCBzdWJzbGljZV9tYXNrKTsKIAogCQll dV9kaXNhYmxlID0gSTkxNV9SRUFEKEdFTjlfRVVfRElTQUJMRShzKSk7CiAJCWZvciAoc3MgPSAw OyBzcyA8IHNzZXUtPm1heF9zdWJzbGljZXM7IHNzKyspIHsKIAkJCWludCBldV9wZXJfc3M7CiAJ CQl1OCBldV9kaXNhYmxlZF9tYXNrOworCQkJdTggc3NfaWR4ID0gcyAqIHNzZXUtPnNzX3N0cmlk ZSArIHNzIC8gQklUU19QRVJfQllURTsKIAotCQkJaWYgKCEoc3NldS0+c3Vic2xpY2VfbWFza1tz XSAmIEJJVChzcykpKQorCQkJaWYgKCEoc3NldS0+c3Vic2xpY2VfbWFza1tzc19pZHhdICYKKwkJ CSAgICAgIEJJVChzcyAlIEJJVFNfUEVSX0JZVEUpKSkKIAkJCQkvKiBza2lwIGRpc2FibGVkIHN1 YnNsaWNlICovCiAJCQkJY29udGludWU7CiAKQEAgLTQzNSw5ICs0NTUsNyBAQCBzdGF0aWMgdm9p ZCBicm9hZHdlbGxfc3NldV9pbmZvX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQogCiAJZnVzZTIgPSBJOTE1X1JFQUQoR0VOOF9GVVNFMik7CiAJc3NldS0+c2xpY2VfbWFz ayA9IChmdXNlMiAmIEdFTjhfRjJfU19FTkFfTUFTSykgPj4gR0VOOF9GMl9TX0VOQV9TSElGVDsK LQlzc2V1LT5tYXhfc2xpY2VzID0gMzsKLQlzc2V1LT5tYXhfc3Vic2xpY2VzID0gMzsKLQlzc2V1 LT5tYXhfZXVzX3Blcl9zdWJzbGljZSA9IDg7CisJc2V0X3NzZXVfaW5mbyhzc2V1LCAzLCAzLCA4 KTsKIAogCS8qCiAJICogVGhlIHN1YnNsaWNlIGRpc2FibGUgZmllbGQgaXMgZ2xvYmFsLCBpLmUu IGl0IGFwcGxpZXMKQEAgLTQ2NCwxOCArNDgyLDIxIEBAIHN0YXRpYyB2b2lkIGJyb2Fkd2VsbF9z c2V1X2luZm9faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCQkvKiBz a2lwIGRpc2FibGVkIHNsaWNlICovCiAJCQljb250aW51ZTsKIAotCQlzc2V1LT5zdWJzbGljZV9t YXNrW3NdID0gc3Vic2xpY2VfbWFzazsKKwkJc3NldV9zZXRfc3Vic2xpY2VzKHNzZXUsIHMsIHN1 YnNsaWNlX21hc2spOwogCiAJCWZvciAoc3MgPSAwOyBzcyA8IHNzZXUtPm1heF9zdWJzbGljZXM7 IHNzKyspIHsKIAkJCXU4IGV1X2Rpc2FibGVkX21hc2s7CisJCQl1OCBzc19pZHggPSBzICogc3Nl dS0+c3Nfc3RyaWRlICsgc3MgLyBCSVRTX1BFUl9CWVRFOwogCQkJdTMyIG5fZGlzYWJsZWQ7CiAK LQkJCWlmICghKHNzZXUtPnN1YnNsaWNlX21hc2tbc10gJiBCSVQoc3MpKSkKKwkJCWlmICghKHNz ZXUtPnN1YnNsaWNlX21hc2tbc3NfaWR4XSAmCisJCQkgICAgICBCSVQoc3MgJSBCSVRTX1BFUl9C WVRFKSkpCiAJCQkJLyogc2tpcCBkaXNhYmxlZCBzdWJzbGljZSAqLwogCQkJCWNvbnRpbnVlOwog CiAJCQlldV9kaXNhYmxlZF9tYXNrID0KLQkJCQlldV9kaXNhYmxlW3NdID4+IChzcyAqIHNzZXUt Pm1heF9ldXNfcGVyX3N1YnNsaWNlKTsKKwkJCQlldV9kaXNhYmxlW3NdID4+CisJCQkJCShzcyAq IHNzZXUtPm1heF9ldXNfcGVyX3N1YnNsaWNlKTsKIAogCQkJc3NldV9zZXRfZXVzKHNzZXUsIHMs IHNzLCB+ZXVfZGlzYWJsZWRfbWFzayk7CiAKQEAgLTUxNCw2ICs1MzUsNyBAQCBzdGF0aWMgdm9p ZCBoYXN3ZWxsX3NzZXVfaW5mb19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKIAlzdHJ1Y3Qgc3NldV9kZXZfaW5mbyAqc3NldSA9ICZSVU5USU1FX0lORk8oZGV2X3ByaXYp LT5zc2V1OwogCXUzMiBmdXNlMTsKIAlpbnQgcywgc3M7CisJdTMyIHN1YnNsaWNlX21hc2s7CiAK IAkvKgogCSAqIFRoZXJlIGlzbid0IGEgcmVnaXN0ZXIgdG8gdGVsbCB1cyBob3cgbWFueSBzbGlj ZXMvc3Vic2xpY2VzLiBXZQpAQCAtNTI1LDIyICs1NDcsMTggQEAgc3RhdGljIHZvaWQgaGFzd2Vs bF9zc2V1X2luZm9faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCS8q IGZhbGwgdGhyb3VnaCAqLwogCWNhc2UgMToKIAkJc3NldS0+c2xpY2VfbWFzayA9IEJJVCgwKTsK LQkJc3NldS0+c3Vic2xpY2VfbWFza1swXSA9IEJJVCgwKTsKKwkJc3Vic2xpY2VfbWFzayA9IEJJ VCgwKTsKIAkJYnJlYWs7CiAJY2FzZSAyOgogCQlzc2V1LT5zbGljZV9tYXNrID0gQklUKDApOwot CQlzc2V1LT5zdWJzbGljZV9tYXNrWzBdID0gQklUKDApIHwgQklUKDEpOworCQlzdWJzbGljZV9t YXNrID0gQklUKDApIHwgQklUKDEpOwogCQlicmVhazsKIAljYXNlIDM6CiAJCXNzZXUtPnNsaWNl X21hc2sgPSBCSVQoMCkgfCBCSVQoMSk7Ci0JCXNzZXUtPnN1YnNsaWNlX21hc2tbMF0gPSBCSVQo MCkgfCBCSVQoMSk7Ci0JCXNzZXUtPnN1YnNsaWNlX21hc2tbMV0gPSBCSVQoMCkgfCBCSVQoMSk7 CisJCXN1YnNsaWNlX21hc2sgPSBCSVQoMCkgfCBCSVQoMSk7CiAJCWJyZWFrOwogCX0KIAotCXNz ZXUtPm1heF9zbGljZXMgPSBod2VpZ2h0OChzc2V1LT5zbGljZV9tYXNrKTsKLQlzc2V1LT5tYXhf c3Vic2xpY2VzID0gaHdlaWdodDgoc3NldS0+c3Vic2xpY2VfbWFza1swXSk7Ci0KIAlmdXNlMSA9 IEk5MTVfUkVBRChIU1dfUEFWUF9GVVNFMSk7CiAJc3dpdGNoICgoZnVzZTEgJiBIU1dfRjFfRVVf RElTX01BU0spID4+IEhTV19GMV9FVV9ESVNfU0hJRlQpIHsKIAlkZWZhdWx0OgpAQCAtNTU3LDkg KzU3NSwxNCBAQCBzdGF0aWMgdm9pZCBoYXN3ZWxsX3NzZXVfaW5mb19pbml0KHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJc3NldS0+ZXVfcGVyX3N1YnNsaWNlID0gNjsKIAkJ YnJlYWs7CiAJfQotCXNzZXUtPm1heF9ldXNfcGVyX3N1YnNsaWNlID0gc3NldS0+ZXVfcGVyX3N1 YnNsaWNlOworCisJc2V0X3NzZXVfaW5mbyhzc2V1LCBod2VpZ2h0OChzc2V1LT5zbGljZV9tYXNr KSwKKwkJICAgICAgaHdlaWdodDgoc3Vic2xpY2VfbWFzayksCisJCSAgICAgIHNzZXUtPmV1X3Bl cl9zdWJzbGljZSk7CiAKIAlmb3IgKHMgPSAwOyBzIDwgc3NldS0+bWF4X3NsaWNlczsgcysrKSB7 CisJCXNzZXVfc2V0X3N1YnNsaWNlcyhzc2V1LCBzLCBzdWJzbGljZV9tYXNrKTsKKwogCQlmb3Ig KHNzID0gMDsgc3MgPCBzc2V1LT5tYXhfc3Vic2xpY2VzOyBzcysrKSB7CiAJCQlzc2V1X3NldF9l dXMoc3NldSwgcywgc3MsCiAJCQkJICAgICAoMVVMIDw8IHNzZXUtPmV1X3Blcl9zdWJzbGljZSkg LSAxKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMKaW5kZXggMjAyYjRiN2Ey NGYxLi4yMmM5Nzg3Yzk0MjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2VuZ2luZV9jcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5j CkBAIC04OTAsNyArODkwLDcgQEAgdTMyIGludGVsX2NhbGN1bGF0ZV9tY3Jfc19zc19zZWxlY3Qo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCWNvbnN0IHN0cnVjdCBzc2V1X2Rl dl9pbmZvICpzc2V1ID0gJlJVTlRJTUVfSU5GTyhkZXZfcHJpdiktPnNzZXU7CiAJdTMyIG1jcl9z X3NzX3NlbGVjdDsKIAl1MzIgc2xpY2UgPSBmbHMoc3NldS0+c2xpY2VfbWFzayk7Ci0JdTMyIHN1 YnNsaWNlID0gZmxzKHNzZXUtPnN1YnNsaWNlX21hc2tbc2xpY2VdKTsKKwl1MzIgc3Vic2xpY2Ug PSBmbHMoc3NldS0+c3Vic2xpY2VfbWFza1tzbGljZSAqIHNzZXUtPnNzX3N0cmlkZV0pOwogCiAJ aWYgKElTX0dFTihkZXZfcHJpdiwgMTApKQogCQltY3Jfc19zc19zZWxlY3QgPSBHRU44X01DUl9T TElDRShzbGljZSkgfApAQCAtOTY2LDYgKzk2Niw3IEBAIHZvaWQgaW50ZWxfZW5naW5lX2dldF9p bnN0ZG9uZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJCQkgICAgICAgc3RydWN0 IGludGVsX2luc3Rkb25lICppbnN0ZG9uZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBlbmdpbmUtPmk5MTU7CisJc3RydWN0IHNzZXVfZGV2X2luZm8gKnNzZXUgPSAm UlVOVElNRV9JTkZPKGRldl9wcml2KS0+c3NldTsKIAlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNv cmUgPSBlbmdpbmUtPnVuY29yZTsKIAl1MzIgbW1pb19iYXNlID0gZW5naW5lLT5tbWlvX2Jhc2U7 CiAJaW50IHNsaWNlOwpAQCAtOTgzLDcgKzk4NCw4IEBAIHZvaWQgaW50ZWxfZW5naW5lX2dldF9p bnN0ZG9uZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAKIAkJaW5zdGRvbmUtPnNs aWNlX2NvbW1vbiA9CiAJCQlpbnRlbF91bmNvcmVfcmVhZCh1bmNvcmUsIEdFTjdfU0NfSU5TVERP TkUpOwotCQlmb3JfZWFjaF9pbnN0ZG9uZV9zbGljZV9zdWJzbGljZShkZXZfcHJpdiwgc2xpY2Us IHN1YnNsaWNlKSB7CisJCWZvcl9lYWNoX2luc3Rkb25lX3NsaWNlX3N1YnNsaWNlKGRldl9wcml2 LCBzc2V1LCBzbGljZSwKKwkJCQkJCSBzdWJzbGljZSkgewogCQkJaW5zdGRvbmUtPnNhbXBsZXJb c2xpY2VdW3N1YnNsaWNlXSA9CiAJCQkJcmVhZF9zdWJzbGljZV9yZWcoZGV2X3ByaXYsIHNsaWNl LCBzdWJzbGljZSwKIAkJCQkJCSAgR0VON19TQU1QTEVSX0lOU1RET05FKTsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV90eXBlcy5oIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZW5naW5lX3R5cGVzLmgKaW5kZXggZDA3YTAxYjNlZDBiLi5lNDhjZmVj ODA2OTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV90eXBl cy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV90eXBlcy5oCkBAIC01 MzAsMjAgKzUzMCwyMiBAQCBpbnRlbF9lbmdpbmVfbmVlZHNfYnJlYWRjcnVtYl90YXNrbGV0KGNv bnN0IHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAlyZXR1cm4gZW5naW5lLT5mbGFn cyAmIEk5MTVfRU5HSU5FX05FRURTX0JSRUFEQ1JVTUJfVEFTS0xFVDsKIH0KIAotI2RlZmluZSBp bnN0ZG9uZV9zbGljZV9tYXNrKGRldl9wcml2X18pIFwKLQkoSVNfR0VOKGRldl9wcml2X18sIDcp ID8gXAotCSAxIDogUlVOVElNRV9JTkZPKGRldl9wcml2X18pLT5zc2V1LnNsaWNlX21hc2spCi0K LSNkZWZpbmUgaW5zdGRvbmVfc3Vic2xpY2VfbWFzayhkZXZfcHJpdl9fKSBcCi0JKElTX0dFTihk ZXZfcHJpdl9fLCA3KSA/IFwKLQkgMSA6IFJVTlRJTUVfSU5GTyhkZXZfcHJpdl9fKS0+c3NldS5z dWJzbGljZV9tYXNrWzBdKQotCi0jZGVmaW5lIGZvcl9lYWNoX2luc3Rkb25lX3NsaWNlX3N1YnNs aWNlKGRldl9wcml2X18sIHNsaWNlX18sIHN1YnNsaWNlX18pIFwKLQlmb3IgKChzbGljZV9fKSA9 IDAsIChzdWJzbGljZV9fKSA9IDA7IFwKLQkgICAgIChzbGljZV9fKSA8IEk5MTVfTUFYX1NMSUNF UzsgXAotCSAgICAgKHN1YnNsaWNlX18pID0gKChzdWJzbGljZV9fKSArIDEpIDwgSTkxNV9NQVhf U1VCU0xJQ0VTID8gKHN1YnNsaWNlX18pICsgMSA6IDAsIFwKLQkgICAgICAgKHNsaWNlX18pICs9 ICgoc3Vic2xpY2VfXykgPT0gMCkpIFwKLQkJZm9yX2VhY2hfaWYoKEJJVChzbGljZV9fKSAmIGlu c3Rkb25lX3NsaWNlX21hc2soZGV2X3ByaXZfXykpICYmIFwKLQkJCSAgICAoQklUKHN1YnNsaWNl X18pICYgaW5zdGRvbmVfc3Vic2xpY2VfbWFzayhkZXZfcHJpdl9fKSkpCisjZGVmaW5lIGluc3Rk b25lX2hhc19zbGljZShkZXZfcHJpdl9fXywgc3NldV9fXywgc2xpY2VfX18pIFwKKwkoKElTX0dF TihkZXZfcHJpdl9fXywgNykgPyBcCisJICAxIDogKHNzZXVfX18pLT5zbGljZV9tYXNrKSAmIFwK KwlCSVQoc2xpY2VfX18pKSBcCisKKyNkZWZpbmUgaW5zdGRvbmVfaGFzX3N1YnNsaWNlKGRldl9w cml2X18sIHNzZXVfXywgc2xpY2VfXywgc3Vic2xpY2VfXykgXAorCSgoSVNfR0VOKGRldl9wcml2 X18sIDcpID8gXAorCSAgMSA6IChzc2V1X18pLT5zdWJzbGljZV9tYXNrW3NsaWNlX18gKiAoc3Nl dV9fKS0+c3Nfc3RyaWRlICsgXAorCQkJCSAgICAgIHN1YnNsaWNlX18gLyBCSVRTX1BFUl9CWVRF XSkgJiBcCisJIEJJVChzdWJzbGljZV9fICUgQklUU19QRVJfQllURSkpIFwKKworI2RlZmluZSBm b3JfZWFjaF9pbnN0ZG9uZV9zbGljZV9zdWJzbGljZShkZXZfcHJpdl8sIHNzZXVfLCBzbGljZV8s IHN1YnNsaWNlXykgXAorCWZvciAoKHNsaWNlXykgPSAwLCAoc3Vic2xpY2VfKSA9IDA7IChzbGlj ZV8pIDwgSTkxNV9NQVhfU0xJQ0VTOyBcCisJICAgICAoc3Vic2xpY2VfKSA9ICgoc3Vic2xpY2Vf KSArIDEpIDwgSTkxNV9NQVhfU1VCU0xJQ0VTID8gKHN1YnNsaWNlXykgKyAxIDogMCwgXAorCSAg ICAgICAoc2xpY2VfKSArPSAoKHN1YnNsaWNlXykgPT0gMCkpIFwKKwkJZm9yX2VhY2hfaWYoaW5z dGRvbmVfaGFzX3NsaWNlKGRldl9wcml2Xywgc3NldV8sIHNsaWNlKSAmJiBcCisJCQkgICAgaW5z dGRvbmVfaGFzX3N1YnNsaWNlKGRldl9wcml2Xywgc3NldV8sIHNsaWNlXywgc3Vic2xpY2VfKSkg XAogCiAjZW5kaWYgLyogX19JTlRFTF9FTkdJTkVfVFlQRVNfSF9fICovCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oYW5nY2hlY2suYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2hhbmdjaGVjay5jCmluZGV4IDNkNTFlZDE0MjhkNC4uOGQ5NTA0ZjA4M2E2IDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oYW5nY2hlY2suYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oYW5nY2hlY2suYwpAQCAtNTAsNiArNTAsNyBAQCBz dGF0aWMgYm9vbCBpbnN0ZG9uZV91bmNoYW5nZWQodTMyIGN1cnJlbnRfaW5zdGRvbmUsIHUzMiAq b2xkX2luc3Rkb25lKQogc3RhdGljIGJvb2wgc3VidW5pdHNfc3R1Y2soc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IGVuZ2luZS0+aTkxNTsKKwlzdHJ1Y3Qgc3NldV9kZXZfaW5mbyAqc3NldSA9ICZSVU5USU1FX0lO Rk8oZGV2X3ByaXYpLT5zc2V1OwogCXN0cnVjdCBpbnRlbF9pbnN0ZG9uZSBpbnN0ZG9uZTsKIAlz dHJ1Y3QgaW50ZWxfaW5zdGRvbmUgKmFjY3VfaW5zdGRvbmUgPSAmZW5naW5lLT5oYW5nY2hlY2su aW5zdGRvbmU7CiAJYm9vbCBzdHVjazsKQEAgLTcxLDcgKzcyLDcgQEAgc3RhdGljIGJvb2wgc3Vi dW5pdHNfc3R1Y2soc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCXN0dWNrICY9IGlu c3Rkb25lX3VuY2hhbmdlZChpbnN0ZG9uZS5zbGljZV9jb21tb24sCiAJCQkJICAgICZhY2N1X2lu c3Rkb25lLT5zbGljZV9jb21tb24pOwogCi0JZm9yX2VhY2hfaW5zdGRvbmVfc2xpY2Vfc3Vic2xp Y2UoZGV2X3ByaXYsIHNsaWNlLCBzdWJzbGljZSkgeworCWZvcl9lYWNoX2luc3Rkb25lX3NsaWNl X3N1YnNsaWNlKGRldl9wcml2LCBzc2V1LCBzbGljZSwgc3Vic2xpY2UpIHsKIAkJc3R1Y2sgJj0g aW5zdGRvbmVfdW5jaGFuZ2VkKGluc3Rkb25lLnNhbXBsZXJbc2xpY2VdW3N1YnNsaWNlXSwKIAkJ CQkJICAgICZhY2N1X2luc3Rkb25lLT5zYW1wbGVyW3NsaWNlXVtzdWJzbGljZV0pOwogCQlzdHVj ayAmPSBpbnN0ZG9uZV91bmNoYW5nZWQoaW5zdGRvbmUucm93W3NsaWNlXVtzdWJzbGljZV0sCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zc2V1LmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9zc2V1LmgKaW5kZXggMGRmYmVkNTQ3ZGE1Li5hNjU5YTgyN2Y2NDAg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3NzZXUuaAorKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zc2V1LmgKQEAgLTE0LDEwICsxNCwxMSBAQCBzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZTsKICNkZWZpbmUgR0VOX01BWF9TTElDRVMJCSg2KSAvKiBDTkwgdXBw ZXIgYm91bmQgKi8KICNkZWZpbmUgR0VOX01BWF9TVUJTTElDRVMJKDgpIC8qIElDTCB1cHBlciBi b3VuZCAqLwogI2RlZmluZSBHRU5fU1NFVV9TVFJJREUoYml0cykgRElWX1JPVU5EX1VQKGJpdHMs IEJJVFNfUEVSX0JZVEUpCisjZGVmaW5lIEdFTl9NQVhfU1VCU0xJQ0VfU1RSSURFIEdFTl9TU0VV X1NUUklERShHRU5fTUFYX1NVQlNMSUNFUykKIAogc3RydWN0IHNzZXVfZGV2X2luZm8gewogCXU4 IHNsaWNlX21hc2s7Ci0JdTggc3Vic2xpY2VfbWFza1tHRU5fTUFYX1NMSUNFU107CisJdTggc3Vi c2xpY2VfbWFza1tHRU5fTUFYX1NMSUNFUyAqIEdFTl9NQVhfU1VCU0xJQ0VfU1RSSURFXTsKIAl1 MTYgZXVfdG90YWw7CiAJdTggZXVfcGVyX3N1YnNsaWNlOwogCXU4IG1pbl9ldV9pbl9wb29sOwpA QCAtMzIsNiArMzMsOSBAQCBzdHJ1Y3Qgc3NldV9kZXZfaW5mbyB7CiAJdTggbWF4X3N1YnNsaWNl czsKIAl1OCBtYXhfZXVzX3Blcl9zdWJzbGljZTsKIAorCXU4IHNzX3N0cmlkZTsKKwl1OCBldV9z dHJpZGU7CisKIAkvKiBXZSBkb24ndCBoYXZlIG1vcmUgdGhhbiA4IGV1cyBwZXIgc3Vic2xpY2Ug YXQgdGhlIG1vbWVudCBhbmQgYXMgd2UKIAkgKiBzdG9yZSBldXMgZW5hYmxlZCB1c2luZyBiaXRz LCBubyBuZWVkIHRvIG11bHRpcGx5IGJ5IGV1cyBwZXIKIAkgKiBzdWJzbGljZS4KQEAgLTYyLDYg KzY2LDE3IEBAIGludGVsX3NzZXVfZnJvbV9kZXZpY2VfaW5mbyhjb25zdCBzdHJ1Y3Qgc3NldV9k ZXZfaW5mbyAqc3NldSkKIAlyZXR1cm4gdmFsdWU7CiB9CiAKK3N0YXRpYyBpbmxpbmUgdm9pZCBz ZXRfc3NldV9pbmZvKHN0cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1LCB1OCBtYXhfc2xpY2VzLAor CQkJCSB1OCBtYXhfc3Vic2xpY2VzLCB1OCBtYXhfZXVzX3Blcl9zdWJzbGljZSkKK3sKKwlzc2V1 LT5tYXhfc2xpY2VzID0gbWF4X3NsaWNlczsKKwlzc2V1LT5tYXhfc3Vic2xpY2VzID0gbWF4X3N1 YnNsaWNlczsKKwlzc2V1LT5tYXhfZXVzX3Blcl9zdWJzbGljZSA9IG1heF9ldXNfcGVyX3N1YnNs aWNlOworCisJc3NldS0+c3Nfc3RyaWRlID0gR0VOX1NTRVVfU1RSSURFKHNzZXUtPm1heF9zdWJz bGljZXMpOworCXNzZXUtPmV1X3N0cmlkZSA9IEdFTl9TU0VVX1NUUklERShzc2V1LT5tYXhfZXVz X3Blcl9zdWJzbGljZSk7Cit9CisKIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IHNzZXVfc3Vi c2xpY2VfdG90YWwoY29uc3Qgc3RydWN0IHNzZXVfZGV2X2luZm8gKnNzZXUpCiB7CiAJdW5zaWdu ZWQgaW50IGksIHRvdGFsID0gMDsKQEAgLTc1LDcgKzkwLDMyIEBAIHN0YXRpYyBpbmxpbmUgdW5z aWduZWQgaW50IHNzZXVfc3Vic2xpY2VfdG90YWwoY29uc3Qgc3RydWN0IHNzZXVfZGV2X2luZm8g KnNzZXUpCiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludAogc3NldV9zdWJzbGljZXNfcGVyX3Ns aWNlKGNvbnN0IHN0cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1LCB1OCBzbGljZSkKIHsKLQlyZXR1 cm4gaHdlaWdodDgoc3NldS0+c3Vic2xpY2VfbWFza1tzbGljZV0pOworCXVuc2lnbmVkIGludCBp LCB0b3RhbCA9IDA7CisKKwlmb3IgKGkgPSAwOyBpIDwgc3NldS0+c3Nfc3RyaWRlOyBpKyspCisJ CXRvdGFsICs9IGh3ZWlnaHQ4KHNzZXUtPnN1YnNsaWNlX21hc2tbc2xpY2UgKiBzc2V1LT5zc19z dHJpZGUgKworCQkJCQkJICAgICAgaV0pOworCisJcmV0dXJuIHRvdGFsOworfQorCitzdGF0aWMg aW5saW5lIHZvaWQgc3NldV9jb3B5X3N1YnNsaWNlcyhjb25zdCBzdHJ1Y3Qgc3NldV9kZXZfaW5m byAqc3NldSwKKwkJCQkgICAgICAgaW50IHNsaWNlLCB1OCAqdG9fbWFzaywKKwkJCQkgICAgICAg Y29uc3QgdTggKmZyb21fbWFzaykKK3sKKwlpbnQgb2Zmc2V0ID0gc2xpY2UgKiBzc2V1LT5zc19z dHJpZGU7CisKKwltZW1jcHkoJnRvX21hc2tbb2Zmc2V0XSwgJmZyb21fbWFza1tvZmZzZXRdLCBz c2V1LT5zc19zdHJpZGUpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgc3NldV9zZXRfc3Vic2xp Y2VzKHN0cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1LAorCQkJCSAgICAgIGludCBzbGljZSwgdTMy IHNzX21hc2spCit7CisJaW50IGksIG9mZnNldCA9IHNsaWNlICogc3NldS0+c3Nfc3RyaWRlOwor CisJZm9yIChpID0gMDsgaSA8IHNzZXUtPnNzX3N0cmlkZTsgaSsrKQorCQlzc2V1LT5zdWJzbGlj ZV9tYXNrW29mZnNldCArIGldID0KKwkJCShzc19tYXNrID4+IChCSVRTX1BFUl9CWVRFICogaSkp ICYgMHhmZjsKIH0KIAogc3RhdGljIGlubGluZSBpbnQgc3NldV9ldV9pZHgoY29uc3Qgc3RydWN0 IHNzZXVfZGV2X2luZm8gKnNzZXUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF93b3JrYXJvdW5kcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfd29ya2Fyb3Vu ZHMuYwppbmRleCBiM2NiZWQxZWUxYzkuLmU4ZGRkNTY5MDVkYiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfd29ya2Fyb3VuZHMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF93b3JrYXJvdW5kcy5jCkBAIC03NzEsNyArNzcxLDcgQEAgd2FfaW5pdF9tY3Io c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIHN0cnVjdCBpOTE1X3dhX2xpc3QgKndhbCkK IAkJdTMyIHNsaWNlID0gZmxzKHNzZXUtPnNsaWNlX21hc2spOwogCQl1MzIgZnVzZTMgPQogCQkJ aW50ZWxfdW5jb3JlX3JlYWQoJmk5MTUtPnVuY29yZSwgR0VOMTBfTUlSUk9SX0ZVU0UzKTsKLQkJ dTggc3NfbWFzayA9IHNzZXUtPnN1YnNsaWNlX21hc2tbc2xpY2VdOworCQl1OCBzc19tYXNrID0g c3NldS0+c3Vic2xpY2VfbWFza1tzbGljZSAqIHNzZXUtPnNzX3N0cmlkZV07CiAKIAkJdTggZW5h YmxlZF9tYXNrID0gKHNzX21hc2sgfCBzc19tYXNrID4+CiAJCQkJICAgR0VOMTBfTDNCQU5LX1BB SVJfQ09VTlQpICYgR0VOMTBfTDNCQU5LX01BU0s7Ci0tIAoyLjIxLjAuNS5nYWViNTgyYTk4MwoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4