From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Anholt Subject: [PATCH 2/7] drm/vc4: Use drm_print_regset32() for our debug register dumping. Date: Wed, 20 Feb 2019 13:03:38 -0800 Message-ID: <20190220210343.28157-2-eric@anholt.net> References: <20190220210343.28157-1-eric@anholt.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from anholt.net (anholt.net [50.246.234.109]) by gabe.freedesktop.org (Postfix) with ESMTP id E56D28930F for ; Wed, 20 Feb 2019 21:03:56 +0000 (UTC) In-Reply-To: <20190220210343.28157-1-eric@anholt.net> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: Paul Kocialkowski , Maxime Ripard , linux-kernel@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org VGhpcyByZW1vdmVzIGEgYnVuY2ggb2YgZHVwbGljYXRlZCBib2lsZXJwbGF0ZSBmb3IgdGhlIGRl YnVnZnMgdnMKcnVudGltZSBwcmludGsgZGVidWcgZHVtcGluZy4KClNpZ25lZC1vZmYtYnk6IEVy aWMgQW5ob2x0IDxlcmljQGFuaG9sdC5uZXQ+Ci0tLQogZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRf Y3J0Yy5jIHwgIDY4ICsrKysrKy0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2RwaS5j ICB8ICAyMyArKy0tLQogZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZHJ2LmggIHwgICA3ICsrCiBk cml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9kc2kuYyAgfCAxNTUgKysrKysrKysrKysrKy0tLS0tLS0t LS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2hkbWkuYyB8IDE1NiArKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfaHZzLmMgIHwgIDg3 ICsrKysrKysrLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF90eHAuYyAgfCAgMjgg KysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF92M2QuYyAgfCAxNzMgKysrKysrKysrKysr KysrKy0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF92ZWMuYyAgfCAg NjcgKysrKysrLS0tLS0tLQogOSBmaWxlcyBjaGFuZ2VkLCAzNTAgaW5zZXJ0aW9ucygrKSwgNDE0 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2NydGMu YyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2NydGMuYwppbmRleCA3MzAwMDhkM2RhNzYuLjZk NzA3MjAyNjA1NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfY3J0Yy5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2NydGMuYwpAQCAtMzUsNiArMzUsNyBAQAogI2lu Y2x1ZGUgPGRybS9kcm1fYXRvbWljLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVy Lmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfdWFwaS5oPgorI2luY2x1ZGUgPGRybS9kcm1f cHJpbnQuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBlci5oPgogI2luY2x1ZGUgPGxp bnV4L2Nsay5oPgogI2luY2x1ZGUgPGRybS9kcm1fZmJfY21hX2hlbHBlci5oPgpAQCAtNjcsNDMg KzY4LDI5IEBAIHRvX3ZjNF9jcnRjX3N0YXRlKHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSkKICNkZWZpbmUgQ1JUQ19XUklURShvZmZzZXQsIHZhbCkgd3JpdGVsKHZhbCwgdmM0X2Ny dGMtPnJlZ3MgKyAob2Zmc2V0KSkKICNkZWZpbmUgQ1JUQ19SRUFEKG9mZnNldCkgcmVhZGwodmM0 X2NydGMtPnJlZ3MgKyAob2Zmc2V0KSkKIAotI2RlZmluZSBDUlRDX1JFRyhyZWcpIHsgcmVnLCAj cmVnIH0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgewotCXUzMiByZWc7Ci0JY29uc3QgY2hhciAqbmFt ZTsKLX0gY3J0Y19yZWdzW10gPSB7Ci0JQ1JUQ19SRUcoUFZfQ09OVFJPTCksCi0JQ1JUQ19SRUco UFZfVl9DT05UUk9MKSwKLQlDUlRDX1JFRyhQVl9WU1lOQ0RfRVZFTiksCi0JQ1JUQ19SRUcoUFZf SE9SWkEpLAotCUNSVENfUkVHKFBWX0hPUlpCKSwKLQlDUlRDX1JFRyhQVl9WRVJUQSksCi0JQ1JU Q19SRUcoUFZfVkVSVEIpLAotCUNSVENfUkVHKFBWX1ZFUlRBX0VWRU4pLAotCUNSVENfUkVHKFBW X1ZFUlRCX0VWRU4pLAotCUNSVENfUkVHKFBWX0lOVEVOKSwKLQlDUlRDX1JFRyhQVl9JTlRTVEFU KSwKLQlDUlRDX1JFRyhQVl9TVEFUKSwKLQlDUlRDX1JFRyhQVl9IQUNUX0FDVCksCitzdGF0aWMg Y29uc3Qgc3RydWN0IGRlYnVnZnNfcmVnMzIgY3J0Y19yZWdzW10gPSB7CisJVkM0X1JFRzMyKFBW X0NPTlRST0wpLAorCVZDNF9SRUczMihQVl9WX0NPTlRST0wpLAorCVZDNF9SRUczMihQVl9WU1lO Q0RfRVZFTiksCisJVkM0X1JFRzMyKFBWX0hPUlpBKSwKKwlWQzRfUkVHMzIoUFZfSE9SWkIpLAor CVZDNF9SRUczMihQVl9WRVJUQSksCisJVkM0X1JFRzMyKFBWX1ZFUlRCKSwKKwlWQzRfUkVHMzIo UFZfVkVSVEFfRVZFTiksCisJVkM0X1JFRzMyKFBWX1ZFUlRCX0VWRU4pLAorCVZDNF9SRUczMihQ Vl9JTlRFTiksCisJVkM0X1JFRzMyKFBWX0lOVFNUQVQpLAorCVZDNF9SRUczMihQVl9TVEFUKSwK KwlWQzRfUkVHMzIoUFZfSEFDVF9BQ1QpLAogfTsKIAotc3RhdGljIHZvaWQgdmM0X2NydGNfZHVt cF9yZWdzKHN0cnVjdCB2YzRfY3J0YyAqdmM0X2NydGMpCi17Ci0JaW50IGk7Ci0KLQlmb3IgKGkg PSAwOyBpIDwgQVJSQVlfU0laRShjcnRjX3JlZ3MpOyBpKyspIHsKLQkJRFJNX0lORk8oIjB4JTA0 eCAoJXMpOiAweCUwOHhcbiIsCi0JCQkgY3J0Y19yZWdzW2ldLnJlZywgY3J0Y19yZWdzW2ldLm5h bWUsCi0JCQkgQ1JUQ19SRUFEKGNydGNfcmVnc1tpXS5yZWcpKTsKLQl9Ci19Ci0KICNpZmRlZiBD T05GSUdfREVCVUdfRlMKIGludCB2YzRfY3J0Y19kZWJ1Z2ZzX3JlZ3Moc3RydWN0IHNlcV9maWxl ICptLCB2b2lkICp1bnVzZWQpCiB7CiAJc3RydWN0IGRybV9pbmZvX25vZGUgKm5vZGUgPSAoc3Ry dWN0IGRybV9pbmZvX25vZGUgKiltLT5wcml2YXRlOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSBub2RlLT5taW5vci0+ZGV2OwogCWludCBjcnRjX2luZGV4ID0gKHVpbnRwdHJfdClub2RlLT5p bmZvX2VudC0+ZGF0YTsKKwlzdHJ1Y3QgZHJtX3ByaW50ZXIgcCA9IGRybV9zZXFfZmlsZV9wcmlu dGVyKG0pOwogCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKIAlzdHJ1Y3QgdmM0X2NydGMgKnZjNF9j cnRjOwogCWludCBpOwpAQCAtMTE4LDExICsxMDUsNyBAQCBpbnQgdmM0X2NydGNfZGVidWdmc19y ZWdzKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQogCQlyZXR1cm4gMDsKIAl2YzRf Y3J0YyA9IHRvX3ZjNF9jcnRjKGNydGMpOwogCi0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUo Y3J0Y19yZWdzKTsgaSsrKSB7Ci0JCXNlcV9wcmludGYobSwgIiVzICgweCUwNHgpOiAweCUwOHhc biIsCi0JCQkgICBjcnRjX3JlZ3NbaV0ubmFtZSwgY3J0Y19yZWdzW2ldLnJlZywKLQkJCSAgIENS VENfUkVBRChjcnRjX3JlZ3NbaV0ucmVnKSk7Ci0JfQorCWRybV9wcmludF9yZWdzZXQzMigmcCwg JnZjNF9jcnRjLT5yZWdzZXQpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC00MzQsOCArNDE3LDEwIEBA IHN0YXRpYyB2b2lkIHZjNF9jcnRjX21vZGVfc2V0X25vZmIoc3RydWN0IGRybV9jcnRjICpjcnRj KQogCWJvb2wgZGVidWdfZHVtcF9yZWdzID0gZmFsc2U7CiAKIAlpZiAoZGVidWdfZHVtcF9yZWdz KSB7Ci0JCURSTV9JTkZPKCJDUlRDICVkIHJlZ3MgYmVmb3JlOlxuIiwgZHJtX2NydGNfaW5kZXgo Y3J0YykpOwotCQl2YzRfY3J0Y19kdW1wX3JlZ3ModmM0X2NydGMpOworCQlzdHJ1Y3QgZHJtX3By aW50ZXIgcCA9IGRybV9pbmZvX3ByaW50ZXIoJnZjNF9jcnRjLT5wZGV2LT5kZXYpOworCQlkZXZf aW5mbygmdmM0X2NydGMtPnBkZXYtPmRldiwgIkNSVEMgJWQgcmVncyBiZWZvcmU6XG4iLAorCQkJ IGRybV9jcnRjX2luZGV4KGNydGMpKTsKKwkJZHJtX3ByaW50X3JlZ3NldDMyKCZwLCAmdmM0X2Ny dGMtPnJlZ3NldCk7CiAJfQogCiAJaWYgKHZjNF9jcnRjLT5jaGFubmVsID09IDIpIHsKQEAgLTQ3 Niw4ICs0NjEsMTAgQEAgc3RhdGljIHZvaWQgdmM0X2NydGNfbW9kZV9zZXRfbm9mYihzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMpCiAJdmM0X2NydGNfbHV0X2xvYWQoY3J0Yyk7CiAKIAlpZiAoZGVidWdf ZHVtcF9yZWdzKSB7Ci0JCURSTV9JTkZPKCJDUlRDICVkIHJlZ3MgYWZ0ZXI6XG4iLCBkcm1fY3J0 Y19pbmRleChjcnRjKSk7Ci0JCXZjNF9jcnRjX2R1bXBfcmVncyh2YzRfY3J0Yyk7CisJCXN0cnVj dCBkcm1fcHJpbnRlciBwID0gZHJtX2luZm9fcHJpbnRlcigmdmM0X2NydGMtPnBkZXYtPmRldik7 CisJCWRldl9pbmZvKCZ2YzRfY3J0Yy0+cGRldi0+ZGV2LCAiQ1JUQyAlZCByZWdzIGFmdGVyOlxu IiwKKwkJCSBkcm1fY3J0Y19pbmRleChjcnRjKSk7CisJCWRybV9wcmludF9yZWdzZXQzMigmcCwg JnZjNF9jcnRjLT5yZWdzZXQpOwogCX0KIH0KIApAQCAtMTE2OSwxMSArMTE1NiwxNiBAQCBzdGF0 aWMgaW50IHZjNF9jcnRjX2JpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICpt YXN0ZXIsIHZvaWQgKmRhdGEpCiAJaWYgKCFtYXRjaCkKIAkJcmV0dXJuIC1FTk9ERVY7CiAJdmM0 X2NydGMtPmRhdGEgPSBtYXRjaC0+ZGF0YTsKKwl2YzRfY3J0Yy0+cGRldiA9IHBkZXY7CiAKIAl2 YzRfY3J0Yy0+cmVncyA9IHZjNF9pb3JlbWFwX3JlZ3MocGRldiwgMCk7CiAJaWYgKElTX0VSUih2 YzRfY3J0Yy0+cmVncykpCiAJCXJldHVybiBQVFJfRVJSKHZjNF9jcnRjLT5yZWdzKTsKIAorCXZj NF9jcnRjLT5yZWdzZXQuYmFzZSA9IHZjNF9jcnRjLT5yZWdzOworCXZjNF9jcnRjLT5yZWdzZXQu cmVncyA9IGNydGNfcmVnczsKKwl2YzRfY3J0Yy0+cmVnc2V0Lm5yZWdzID0gQVJSQVlfU0laRShj cnRjX3JlZ3MpOworCiAJLyogRm9yIG5vdywgd2UgY3JlYXRlIGp1c3QgdGhlIHByaW1hcnkgYW5k IHRoZSBsZWdhY3kgY3Vyc29yCiAJICogcGxhbmVzLiAgV2Ugc2hvdWxkIGJlIGFibGUgdG8gc3Rh Y2sgbW9yZSBwbGFuZXMgb24gZWFzaWx5LAogCSAqIGJ1dCB0byBkbyB0aGF0IHdlIHdvdWxkIG5l ZWQgdG8gY29tcHV0ZSB0aGUgYmFuZHdpZHRoCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v dmM0L3ZjNF9kcGkuYyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2RwaS5jCmluZGV4IDE2OTUy MWU1NDdiYS4uOGJlMjI2NGY0OTZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmM0L3Zj NF9kcGkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9kcGkuYwpAQCAtMTAxLDYgKzEw MSw4IEBAIHN0cnVjdCB2YzRfZHBpIHsKIAogCXN0cnVjdCBjbGsgKnBpeGVsX2Nsb2NrOwogCXN0 cnVjdCBjbGsgKmNvcmVfY2xvY2s7CisKKwlzdHJ1Y3QgZGVidWdmc19yZWdzZXQzMiByZWdzZXQ7 CiB9OwogCiAjZGVmaW5lIERQSV9SRUFEKG9mZnNldCkgcmVhZGwoZHBpLT5yZWdzICsgKG9mZnNl dCkpCkBAIC0xMTgsMTMgKzEyMCw5IEBAIHRvX3ZjNF9kcGlfZW5jb2RlcihzdHJ1Y3QgZHJtX2Vu Y29kZXIgKmVuY29kZXIpCiAJcmV0dXJuIGNvbnRhaW5lcl9vZihlbmNvZGVyLCBzdHJ1Y3QgdmM0 X2RwaV9lbmNvZGVyLCBiYXNlLmJhc2UpOwogfQogCi0jZGVmaW5lIERQSV9SRUcocmVnKSB7IHJl ZywgI3JlZyB9Ci1zdGF0aWMgY29uc3Qgc3RydWN0IHsKLQl1MzIgcmVnOwotCWNvbnN0IGNoYXIg Km5hbWU7Ci19IGRwaV9yZWdzW10gPSB7Ci0JRFBJX1JFRyhEUElfQyksCi0JRFBJX1JFRyhEUElf SUQpLAorc3RhdGljIGNvbnN0IHN0cnVjdCBkZWJ1Z2ZzX3JlZzMyIGRwaV9yZWdzW10gPSB7CisJ VkM0X1JFRzMyKERQSV9DKSwKKwlWQzRfUkVHMzIoRFBJX0lEKSwKIH07CiAKICNpZmRlZiBDT05G SUdfREVCVUdfRlMKQEAgLTEzNCwxNiArMTMyLDEyIEBAIGludCB2YzRfZHBpX2RlYnVnZnNfcmVn cyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKIAlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2ID0gbm9kZS0+bWlub3ItPmRldjsKIAlzdHJ1Y3QgdmM0X2RldiAqdmM0ID0gdG9fdmM0X2Rl dihkZXYpOwogCXN0cnVjdCB2YzRfZHBpICpkcGkgPSB2YzQtPmRwaTsKLQlpbnQgaTsKKwlzdHJ1 Y3QgZHJtX3ByaW50ZXIgcCA9IGRybV9zZXFfZmlsZV9wcmludGVyKG0pOwogCiAJaWYgKCFkcGkp CiAJCXJldHVybiAwOwogCi0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZHBpX3JlZ3MpOyBp KyspIHsKLQkJc2VxX3ByaW50ZihtLCAiJXMgKDB4JTA0eCk6IDB4JTA4eFxuIiwKLQkJCSAgIGRw aV9yZWdzW2ldLm5hbWUsIGRwaV9yZWdzW2ldLnJlZywKLQkJCSAgIERQSV9SRUFEKGRwaV9yZWdz W2ldLnJlZykpOwotCX0KKwlkcm1fcHJpbnRfcmVnc2V0MzIoJnAsICZkcGktPnJlZ3NldCk7CiAK IAlyZXR1cm4gMDsKIH0KQEAgLTMxNCw2ICszMDgsOSBAQCBzdGF0aWMgaW50IHZjNF9kcGlfYmlu ZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3Rlciwgdm9pZCAqZGF0YSkK IAlkcGktPnJlZ3MgPSB2YzRfaW9yZW1hcF9yZWdzKHBkZXYsIDApOwogCWlmIChJU19FUlIoZHBp LT5yZWdzKSkKIAkJcmV0dXJuIFBUUl9FUlIoZHBpLT5yZWdzKTsKKwlkcGktPnJlZ3NldC5iYXNl ID0gZHBpLT5yZWdzOworCWRwaS0+cmVnc2V0LnJlZ3MgPSBkcGlfcmVnczsKKwlkcGktPnJlZ3Nl dC5ucmVncyA9IEFSUkFZX1NJWkUoZHBpX3JlZ3MpOwogCiAJaWYgKERQSV9SRUFEKERQSV9JRCkg IT0gRFBJX0lEX1ZBTFVFKSB7CiAJCWRldl9lcnIoZGV2LCAiUG9ydCByZXR1cm5lZCAweCUwOHgg Zm9yIElEIGluc3RlYWQgb2YgMHglMDh4XG4iLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3ZjNC92YzRfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9kcnYuaAppbmRleCBjZTFh ZjA2Y2MxOTcuLjUxMWFkODg0ZDljMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZjNC92 YzRfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZHJ2LmgKQEAgLTI4NSw2ICsy ODUsNyBAQCBzdHJ1Y3QgdmM0X3YzZCB7CiAJc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldjsK IAl2b2lkIF9faW9tZW0gKnJlZ3M7CiAJc3RydWN0IGNsayAqY2xrOworCXN0cnVjdCBkZWJ1Z2Zz X3JlZ3NldDMyIHJlZ3NldDsKIH07CiAKIHN0cnVjdCB2YzRfaHZzIHsKQEAgLTMwMSw2ICszMDIs NyBAQCBzdHJ1Y3QgdmM0X2h2cyB7CiAJc3BpbmxvY2tfdCBtbV9sb2NrOwogCiAJc3RydWN0IGRy bV9tbV9ub2RlIG1pdGNoZWxsX25ldHJhdmFsaV9maWx0ZXI7CisJc3RydWN0IGRlYnVnZnNfcmVn c2V0MzIgcmVnc2V0OwogfTsKIAogc3RydWN0IHZjNF9wbGFuZSB7CkBAIC00MTAsNiArNDEyLDcg QEAgc3RydWN0IHZjNF9jcnRjX2RhdGEgewogCiBzdHJ1Y3QgdmM0X2NydGMgewogCXN0cnVjdCBk cm1fY3J0YyBiYXNlOworCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXY7CiAJY29uc3Qgc3Ry dWN0IHZjNF9jcnRjX2RhdGEgKmRhdGE7CiAJdm9pZCBfX2lvbWVtICpyZWdzOwogCkBAIC00MjYs NiArNDI5LDggQEAgc3RydWN0IHZjNF9jcnRjIHsKIAl1MzIgY29iX3NpemU7CiAKIAlzdHJ1Y3Qg ZHJtX3BlbmRpbmdfdmJsYW5rX2V2ZW50ICpldmVudDsKKworCXN0cnVjdCBkZWJ1Z2ZzX3JlZ3Nl dDMyIHJlZ3NldDsKIH07CiAKIHN0YXRpYyBpbmxpbmUgc3RydWN0IHZjNF9jcnRjICoKQEAgLTQz OSw2ICs0NDQsOCBAQCB0b192YzRfY3J0YyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAjZGVmaW5l IEhWU19SRUFEKG9mZnNldCkgcmVhZGwodmM0LT5odnMtPnJlZ3MgKyBvZmZzZXQpCiAjZGVmaW5l IEhWU19XUklURShvZmZzZXQsIHZhbCkgd3JpdGVsKHZhbCwgdmM0LT5odnMtPnJlZ3MgKyBvZmZz ZXQpCiAKKyNkZWZpbmUgVkM0X1JFRzMyKHJlZykgeyAubmFtZSA9ICNyZWcsIC5vZmZzZXQgPSBy ZWcgfQorCiBzdHJ1Y3QgdmM0X2V4ZWNfaW5mbyB7CiAJLyogU2VxdWVuY2UgbnVtYmVyIGZvciB0 aGlzIGJpbi9yZW5kZXIgam9iLiAqLwogCXVpbnQ2NF90IHNlcW5vOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL3ZjNC92YzRfZHNpLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9kc2ku YwppbmRleCAxMTcwMmUxZDkwMTEuLjgwNmNmYWEyYTZhNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL3ZjNC92YzRfZHNpLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZHNpLmMK QEAgLTU0NSw2ICs1NDUsOCBAQCBzdHJ1Y3QgdmM0X2RzaSB7CiAKIAlzdHJ1Y3QgY29tcGxldGlv biB4ZmVyX2NvbXBsZXRpb247CiAJaW50IHhmZXJfcmVzdWx0OworCisJc3RydWN0IGRlYnVnZnNf cmVnc2V0MzIgcmVnc2V0OwogfTsKIAogI2RlZmluZSBob3N0X3RvX2RzaShob3N0KSBjb250YWlu ZXJfb2YoaG9zdCwgc3RydWN0IHZjNF9kc2ksIGRzaV9ob3N0KQpAQCAtNjA1LDgyICs2MDcsNTYg QEAgdG9fdmM0X2RzaV9lbmNvZGVyKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKIAlyZXR1 cm4gY29udGFpbmVyX29mKGVuY29kZXIsIHN0cnVjdCB2YzRfZHNpX2VuY29kZXIsIGJhc2UuYmFz ZSk7CiB9CiAKLSNkZWZpbmUgRFNJX1JFRyhyZWcpIHsgcmVnLCAjcmVnIH0KLXN0YXRpYyBjb25z dCBzdHJ1Y3QgewotCXUzMiByZWc7Ci0JY29uc3QgY2hhciAqbmFtZTsKLX0gZHNpMF9yZWdzW10g PSB7Ci0JRFNJX1JFRyhEU0kwX0NUUkwpLAotCURTSV9SRUcoRFNJMF9TVEFUKSwKLQlEU0lfUkVH KERTSTBfSFNUWF9UT19DTlQpLAotCURTSV9SRUcoRFNJMF9MUFJYX1RPX0NOVCksCi0JRFNJX1JF RyhEU0kwX1RBX1RPX0NOVCksCi0JRFNJX1JFRyhEU0kwX1BSX1RPX0NOVCksCi0JRFNJX1JFRyhE U0kwX0RJU1AwX0NUUkwpLAotCURTSV9SRUcoRFNJMF9ESVNQMV9DVFJMKSwKLQlEU0lfUkVHKERT STBfSU5UX1NUQVQpLAotCURTSV9SRUcoRFNJMF9JTlRfRU4pLAotCURTSV9SRUcoRFNJMF9QSFlD KSwKLQlEU0lfUkVHKERTSTBfSFNfQ0xUMCksCi0JRFNJX1JFRyhEU0kwX0hTX0NMVDEpLAotCURT SV9SRUcoRFNJMF9IU19DTFQyKSwKLQlEU0lfUkVHKERTSTBfSFNfRExUMyksCi0JRFNJX1JFRyhE U0kwX0hTX0RMVDQpLAotCURTSV9SRUcoRFNJMF9IU19ETFQ1KSwKLQlEU0lfUkVHKERTSTBfSFNf RExUNiksCi0JRFNJX1JFRyhEU0kwX0hTX0RMVDcpLAotCURTSV9SRUcoRFNJMF9QSFlfQUZFQzAp LAotCURTSV9SRUcoRFNJMF9QSFlfQUZFQzEpLAotCURTSV9SRUcoRFNJMF9JRCksCitzdGF0aWMg Y29uc3Qgc3RydWN0IGRlYnVnZnNfcmVnMzIgZHNpMF9yZWdzW10gPSB7CisJVkM0X1JFRzMyKERT STBfQ1RSTCksCisJVkM0X1JFRzMyKERTSTBfU1RBVCksCisJVkM0X1JFRzMyKERTSTBfSFNUWF9U T19DTlQpLAorCVZDNF9SRUczMihEU0kwX0xQUlhfVE9fQ05UKSwKKwlWQzRfUkVHMzIoRFNJMF9U QV9UT19DTlQpLAorCVZDNF9SRUczMihEU0kwX1BSX1RPX0NOVCksCisJVkM0X1JFRzMyKERTSTBf RElTUDBfQ1RSTCksCisJVkM0X1JFRzMyKERTSTBfRElTUDFfQ1RSTCksCisJVkM0X1JFRzMyKERT STBfSU5UX1NUQVQpLAorCVZDNF9SRUczMihEU0kwX0lOVF9FTiksCisJVkM0X1JFRzMyKERTSTBf UEhZQyksCisJVkM0X1JFRzMyKERTSTBfSFNfQ0xUMCksCisJVkM0X1JFRzMyKERTSTBfSFNfQ0xU MSksCisJVkM0X1JFRzMyKERTSTBfSFNfQ0xUMiksCisJVkM0X1JFRzMyKERTSTBfSFNfRExUMyks CisJVkM0X1JFRzMyKERTSTBfSFNfRExUNCksCisJVkM0X1JFRzMyKERTSTBfSFNfRExUNSksCisJ VkM0X1JFRzMyKERTSTBfSFNfRExUNiksCisJVkM0X1JFRzMyKERTSTBfSFNfRExUNyksCisJVkM0 X1JFRzMyKERTSTBfUEhZX0FGRUMwKSwKKwlWQzRfUkVHMzIoRFNJMF9QSFlfQUZFQzEpLAorCVZD NF9SRUczMihEU0kwX0lEKSwKIH07CiAKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgewotCXUzMiByZWc7 Ci0JY29uc3QgY2hhciAqbmFtZTsKLX0gZHNpMV9yZWdzW10gPSB7Ci0JRFNJX1JFRyhEU0kxX0NU UkwpLAotCURTSV9SRUcoRFNJMV9TVEFUKSwKLQlEU0lfUkVHKERTSTFfSFNUWF9UT19DTlQpLAot CURTSV9SRUcoRFNJMV9MUFJYX1RPX0NOVCksCi0JRFNJX1JFRyhEU0kxX1RBX1RPX0NOVCksCi0J RFNJX1JFRyhEU0kxX1BSX1RPX0NOVCksCi0JRFNJX1JFRyhEU0kxX0RJU1AwX0NUUkwpLAotCURT SV9SRUcoRFNJMV9ESVNQMV9DVFJMKSwKLQlEU0lfUkVHKERTSTFfSU5UX1NUQVQpLAotCURTSV9S RUcoRFNJMV9JTlRfRU4pLAotCURTSV9SRUcoRFNJMV9QSFlDKSwKLQlEU0lfUkVHKERTSTFfSFNf Q0xUMCksCi0JRFNJX1JFRyhEU0kxX0hTX0NMVDEpLAotCURTSV9SRUcoRFNJMV9IU19DTFQyKSwK LQlEU0lfUkVHKERTSTFfSFNfRExUMyksCi0JRFNJX1JFRyhEU0kxX0hTX0RMVDQpLAotCURTSV9S RUcoRFNJMV9IU19ETFQ1KSwKLQlEU0lfUkVHKERTSTFfSFNfRExUNiksCi0JRFNJX1JFRyhEU0kx X0hTX0RMVDcpLAotCURTSV9SRUcoRFNJMV9QSFlfQUZFQzApLAotCURTSV9SRUcoRFNJMV9QSFlf QUZFQzEpLAotCURTSV9SRUcoRFNJMV9JRCksCitzdGF0aWMgY29uc3Qgc3RydWN0IGRlYnVnZnNf cmVnMzIgZHNpMV9yZWdzW10gPSB7CisJVkM0X1JFRzMyKERTSTFfQ1RSTCksCisJVkM0X1JFRzMy KERTSTFfU1RBVCksCisJVkM0X1JFRzMyKERTSTFfSFNUWF9UT19DTlQpLAorCVZDNF9SRUczMihE U0kxX0xQUlhfVE9fQ05UKSwKKwlWQzRfUkVHMzIoRFNJMV9UQV9UT19DTlQpLAorCVZDNF9SRUcz MihEU0kxX1BSX1RPX0NOVCksCisJVkM0X1JFRzMyKERTSTFfRElTUDBfQ1RSTCksCisJVkM0X1JF RzMyKERTSTFfRElTUDFfQ1RSTCksCisJVkM0X1JFRzMyKERTSTFfSU5UX1NUQVQpLAorCVZDNF9S RUczMihEU0kxX0lOVF9FTiksCisJVkM0X1JFRzMyKERTSTFfUEhZQyksCisJVkM0X1JFRzMyKERT STFfSFNfQ0xUMCksCisJVkM0X1JFRzMyKERTSTFfSFNfQ0xUMSksCisJVkM0X1JFRzMyKERTSTFf SFNfQ0xUMiksCisJVkM0X1JFRzMyKERTSTFfSFNfRExUMyksCisJVkM0X1JFRzMyKERTSTFfSFNf RExUNCksCisJVkM0X1JFRzMyKERTSTFfSFNfRExUNSksCisJVkM0X1JFRzMyKERTSTFfSFNfRExU NiksCisJVkM0X1JFRzMyKERTSTFfSFNfRExUNyksCisJVkM0X1JFRzMyKERTSTFfUEhZX0FGRUMw KSwKKwlWQzRfUkVHMzIoRFNJMV9QSFlfQUZFQzEpLAorCVZDNF9SRUczMihEU0kxX0lEKSwKIH07 CiAKLXN0YXRpYyB2b2lkIHZjNF9kc2lfZHVtcF9yZWdzKHN0cnVjdCB2YzRfZHNpICpkc2kpCi17 Ci0JaW50IGk7Ci0KLQlpZiAoZHNpLT5wb3J0ID09IDApIHsKLQkJZm9yIChpID0gMDsgaSA8IEFS UkFZX1NJWkUoZHNpMF9yZWdzKTsgaSsrKSB7Ci0JCQlEUk1fSU5GTygiMHglMDR4ICglcyk6IDB4 JTA4eFxuIiwKLQkJCQkgZHNpMF9yZWdzW2ldLnJlZywgZHNpMF9yZWdzW2ldLm5hbWUsCi0JCQkJ IERTSV9SRUFEKGRzaTBfcmVnc1tpXS5yZWcpKTsKLQkJfQotCX0gZWxzZSB7Ci0JCWZvciAoaSA9 IDA7IGkgPCBBUlJBWV9TSVpFKGRzaTFfcmVncyk7IGkrKykgewotCQkJRFJNX0lORk8oIjB4JTA0 eCAoJXMpOiAweCUwOHhcbiIsCi0JCQkJIGRzaTFfcmVnc1tpXS5yZWcsIGRzaTFfcmVnc1tpXS5u YW1lLAotCQkJCSBEU0lfUkVBRChkc2kxX3JlZ3NbaV0ucmVnKSk7Ci0JCX0KLQl9Ci19Ci0KICNp ZmRlZiBDT05GSUdfREVCVUdfRlMKIGludCB2YzRfZHNpX2RlYnVnZnNfcmVncyhzdHJ1Y3Qgc2Vx X2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKIHsKQEAgLTY4OSwyNCArNjY1LDEyIEBAIGludCB2YzRf ZHNpX2RlYnVnZnNfcmVncyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKIAlzdHJ1 Y3QgdmM0X2RldiAqdmM0ID0gdG9fdmM0X2Rldihkcm0pOwogCWludCBkc2lfaW5kZXggPSAodWlu dHB0cl90KW5vZGUtPmluZm9fZW50LT5kYXRhOwogCXN0cnVjdCB2YzRfZHNpICpkc2kgPSAoZHNp X2luZGV4ID09IDEgPyB2YzQtPmRzaTEgOiBOVUxMKTsKLQlpbnQgaTsKKwlzdHJ1Y3QgZHJtX3By aW50ZXIgcCA9IGRybV9zZXFfZmlsZV9wcmludGVyKG0pOwogCiAJaWYgKCFkc2kpCiAJCXJldHVy biAwOwogCi0JaWYgKGRzaS0+cG9ydCA9PSAwKSB7Ci0JCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9T SVpFKGRzaTBfcmVncyk7IGkrKykgewotCQkJc2VxX3ByaW50ZihtLCAiMHglMDR4ICglcyk6IDB4 JTA4eFxuIiwKLQkJCQkgICBkc2kwX3JlZ3NbaV0ucmVnLCBkc2kwX3JlZ3NbaV0ubmFtZSwKLQkJ CQkgICBEU0lfUkVBRChkc2kwX3JlZ3NbaV0ucmVnKSk7Ci0JCX0KLQl9IGVsc2UgewotCQlmb3Ig KGkgPSAwOyBpIDwgQVJSQVlfU0laRShkc2kxX3JlZ3MpOyBpKyspIHsKLQkJCXNlcV9wcmludGYo bSwgIjB4JTA0eCAoJXMpOiAweCUwOHhcbiIsCi0JCQkJICAgZHNpMV9yZWdzW2ldLnJlZywgZHNp MV9yZWdzW2ldLm5hbWUsCi0JCQkJICAgRFNJX1JFQUQoZHNpMV9yZWdzW2ldLnJlZykpOwotCQl9 Ci0JfQorCWRybV9wcmludF9yZWdzZXQzMigmcCwgJmRzaS0+cmVnc2V0KTsKIAogCXJldHVybiAw OwogfQpAQCAtOTAwLDggKzg2NCw5IEBAIHN0YXRpYyB2b2lkIHZjNF9kc2lfZW5jb2Rlcl9lbmFi bGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQogCX0KIAogCWlmIChkZWJ1Z19kdW1wX3Jl Z3MpIHsKLQkJRFJNX0lORk8oIkRTSSByZWdzIGJlZm9yZTpcbiIpOwotCQl2YzRfZHNpX2R1bXBf cmVncyhkc2kpOworCQlzdHJ1Y3QgZHJtX3ByaW50ZXIgcCA9IGRybV9pbmZvX3ByaW50ZXIoJmRz aS0+cGRldi0+ZGV2KTsKKwkJZGV2X2luZm8oJmRzaS0+cGRldi0+ZGV2LCAiRFNJIHJlZ3MgYmVm b3JlOlxuIik7CisJCWRybV9wcmludF9yZWdzZXQzMigmcCwgJmRzaS0+cmVnc2V0KTsKIAl9CiAK IAkvKiBSb3VuZCB1cCB0aGUgY2xrX3NldF9yYXRlKCkgcmVxdWVzdCBzbGlnaHRseSwgc2luY2UK QEAgLTExMzUsOCArMTEwMCw5IEBAIHN0YXRpYyB2b2lkIHZjNF9kc2lfZW5jb2Rlcl9lbmFibGUo c3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQogCWRybV9icmlkZ2VfZW5hYmxlKGRzaS0+YnJp ZGdlKTsKIAogCWlmIChkZWJ1Z19kdW1wX3JlZ3MpIHsKLQkJRFJNX0lORk8oIkRTSSByZWdzIGFm dGVyOlxuIik7Ci0JCXZjNF9kc2lfZHVtcF9yZWdzKGRzaSk7CisJCXN0cnVjdCBkcm1fcHJpbnRl ciBwID0gZHJtX2luZm9fcHJpbnRlcigmZHNpLT5wZGV2LT5kZXYpOworCQlkZXZfaW5mbygmZHNp LT5wZGV2LT5kZXYsICJEU0kgcmVncyBhZnRlcjpcbiIpOworCQlkcm1fcHJpbnRfcmVnc2V0MzIo JnAsICZkc2ktPnJlZ3NldCk7CiAJfQogfQogCkBAIC0xNTI3LDYgKzE0OTMsMTUgQEAgc3RhdGlj IGludCB2YzRfZHNpX2JpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0 ZXIsIHZvaWQgKmRhdGEpCiAJaWYgKElTX0VSUihkc2ktPnJlZ3MpKQogCQlyZXR1cm4gUFRSX0VS Uihkc2ktPnJlZ3MpOwogCisJZHNpLT5yZWdzZXQuYmFzZSA9IGRzaS0+cmVnczsKKwlpZiAoZHNp LT5wb3J0ID09IDApIHsKKwkJZHNpLT5yZWdzZXQucmVncyA9IGRzaTBfcmVnczsKKwkJZHNpLT5y ZWdzZXQubnJlZ3MgPSBBUlJBWV9TSVpFKGRzaTBfcmVncyk7CisJfSBlbHNlIHsKKwkJZHNpLT5y ZWdzZXQucmVncyA9IGRzaTFfcmVnczsKKwkJZHNpLT5yZWdzZXQubnJlZ3MgPSBBUlJBWV9TSVpF KGRzaTFfcmVncyk7CisJfQorCiAJaWYgKERTSV9QT1JUX1JFQUQoSUQpICE9IERTSV9JRF9WQUxV RSkgewogCQlkZXZfZXJyKGRldiwgIlBvcnQgcmV0dXJuZWQgMHglMDh4IGZvciBJRCBpbnN0ZWFk IG9mIDB4JTA4eFxuIiwKIAkJCURTSV9QT1JUX1JFQUQoSUQpLCBEU0lfSURfVkFMVUUpOwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfaGRtaS5jIGIvZHJpdmVycy9ncHUvZHJt L3ZjNC92YzRfaGRtaS5jCmluZGV4IDg4ZmQ1ZGY3ZTdkYy4uMzhjOTE3MmNmZTUyIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9oZG1pLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L3ZjNC92YzRfaGRtaS5jCkBAIC05Nyw2ICs5Nyw5IEBAIHN0cnVjdCB2YzRfaGRtaSB7CiAKIAlz dHJ1Y3QgY2xrICpwaXhlbF9jbG9jazsKIAlzdHJ1Y3QgY2xrICpoc21fY2xvY2s7CisKKwlzdHJ1 Y3QgZGVidWdmc19yZWdzZXQzMiBoZG1pX3JlZ3NldDsKKwlzdHJ1Y3QgZGVidWdmc19yZWdzZXQz MiBoZF9yZWdzZXQ7CiB9OwogCiAjZGVmaW5lIEhETUlfUkVBRChvZmZzZXQpIHJlYWRsKHZjNC0+ aGRtaS0+aGRtaWNvcmVfcmVncyArIG9mZnNldCkKQEAgLTEzNCw2MSArMTM3LDU0IEBAIHRvX3Zj NF9oZG1pX2Nvbm5lY3RvcihzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCXJldHVy biBjb250YWluZXJfb2YoY29ubmVjdG9yLCBzdHJ1Y3QgdmM0X2hkbWlfY29ubmVjdG9yLCBiYXNl KTsKIH0KIAotI2RlZmluZSBIRE1JX1JFRyhyZWcpIHsgcmVnLCAjcmVnIH0KLXN0YXRpYyBjb25z dCBzdHJ1Y3QgewotCXUzMiByZWc7Ci0JY29uc3QgY2hhciAqbmFtZTsKLX0gaGRtaV9yZWdzW10g PSB7Ci0JSERNSV9SRUcoVkM0X0hETUlfQ09SRV9SRVYpLAotCUhETUlfUkVHKFZDNF9IRE1JX1NX X1JFU0VUX0NPTlRST0wpLAotCUhETUlfUkVHKFZDNF9IRE1JX0hPVFBMVUdfSU5UKSwKLQlIRE1J X1JFRyhWQzRfSERNSV9IT1RQTFVHKSwKLQlIRE1JX1JFRyhWQzRfSERNSV9NQUlfQ0hBTk5FTF9N QVApLAotCUhETUlfUkVHKFZDNF9IRE1JX01BSV9DT05GSUcpLAotCUhETUlfUkVHKFZDNF9IRE1J X01BSV9GT1JNQVQpLAotCUhETUlfUkVHKFZDNF9IRE1JX0FVRElPX1BBQ0tFVF9DT05GSUcpLAot CUhETUlfUkVHKFZDNF9IRE1JX1JBTV9QQUNLRVRfQ09ORklHKSwKLQlIRE1JX1JFRyhWQzRfSERN SV9IT1JaQSksCi0JSERNSV9SRUcoVkM0X0hETUlfSE9SWkIpLAotCUhETUlfUkVHKFZDNF9IRE1J X0ZJRk9fQ1RMKSwKLQlIRE1JX1JFRyhWQzRfSERNSV9TQ0hFRFVMRVJfQ09OVFJPTCksCi0JSERN SV9SRUcoVkM0X0hETUlfVkVSVEEwKSwKLQlIRE1JX1JFRyhWQzRfSERNSV9WRVJUQTEpLAotCUhE TUlfUkVHKFZDNF9IRE1JX1ZFUlRCMCksCi0JSERNSV9SRUcoVkM0X0hETUlfVkVSVEIxKSwKLQlI RE1JX1JFRyhWQzRfSERNSV9UWF9QSFlfUkVTRVRfQ1RMKSwKLQlIRE1JX1JFRyhWQzRfSERNSV9U WF9QSFlfQ1RMMCksCi0KLQlIRE1JX1JFRyhWQzRfSERNSV9DRUNfQ05UUkxfMSksCi0JSERNSV9S RUcoVkM0X0hETUlfQ0VDX0NOVFJMXzIpLAotCUhETUlfUkVHKFZDNF9IRE1JX0NFQ19DTlRSTF8z KSwKLQlIRE1JX1JFRyhWQzRfSERNSV9DRUNfQ05UUkxfNCksCi0JSERNSV9SRUcoVkM0X0hETUlf Q0VDX0NOVFJMXzUpLAotCUhETUlfUkVHKFZDNF9IRE1JX0NQVV9TVEFUVVMpLAotCUhETUlfUkVH KFZDNF9IRE1JX0NQVV9NQVNLX1NUQVRVUyksCi0KLQlIRE1JX1JFRyhWQzRfSERNSV9DRUNfUlhf REFUQV8xKSwKLQlIRE1JX1JFRyhWQzRfSERNSV9DRUNfUlhfREFUQV8yKSwKLQlIRE1JX1JFRyhW QzRfSERNSV9DRUNfUlhfREFUQV8zKSwKLQlIRE1JX1JFRyhWQzRfSERNSV9DRUNfUlhfREFUQV80 KSwKLQlIRE1JX1JFRyhWQzRfSERNSV9DRUNfVFhfREFUQV8xKSwKLQlIRE1JX1JFRyhWQzRfSERN SV9DRUNfVFhfREFUQV8yKSwKLQlIRE1JX1JFRyhWQzRfSERNSV9DRUNfVFhfREFUQV8zKSwKLQlI RE1JX1JFRyhWQzRfSERNSV9DRUNfVFhfREFUQV80KSwKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGVi dWdmc19yZWczMiBoZG1pX3JlZ3NbXSA9IHsKKwlWQzRfUkVHMzIoVkM0X0hETUlfQ09SRV9SRVYp LAorCVZDNF9SRUczMihWQzRfSERNSV9TV19SRVNFVF9DT05UUk9MKSwKKwlWQzRfUkVHMzIoVkM0 X0hETUlfSE9UUExVR19JTlQpLAorCVZDNF9SRUczMihWQzRfSERNSV9IT1RQTFVHKSwKKwlWQzRf UkVHMzIoVkM0X0hETUlfTUFJX0NIQU5ORUxfTUFQKSwKKwlWQzRfUkVHMzIoVkM0X0hETUlfTUFJ X0NPTkZJRyksCisJVkM0X1JFRzMyKFZDNF9IRE1JX01BSV9GT1JNQVQpLAorCVZDNF9SRUczMihW QzRfSERNSV9BVURJT19QQUNLRVRfQ09ORklHKSwKKwlWQzRfUkVHMzIoVkM0X0hETUlfUkFNX1BB Q0tFVF9DT05GSUcpLAorCVZDNF9SRUczMihWQzRfSERNSV9IT1JaQSksCisJVkM0X1JFRzMyKFZD NF9IRE1JX0hPUlpCKSwKKwlWQzRfUkVHMzIoVkM0X0hETUlfRklGT19DVEwpLAorCVZDNF9SRUcz MihWQzRfSERNSV9TQ0hFRFVMRVJfQ09OVFJPTCksCisJVkM0X1JFRzMyKFZDNF9IRE1JX1ZFUlRB MCksCisJVkM0X1JFRzMyKFZDNF9IRE1JX1ZFUlRBMSksCisJVkM0X1JFRzMyKFZDNF9IRE1JX1ZF UlRCMCksCisJVkM0X1JFRzMyKFZDNF9IRE1JX1ZFUlRCMSksCisJVkM0X1JFRzMyKFZDNF9IRE1J X1RYX1BIWV9SRVNFVF9DVEwpLAorCVZDNF9SRUczMihWQzRfSERNSV9UWF9QSFlfQ1RMMCksCisK KwlWQzRfUkVHMzIoVkM0X0hETUlfQ0VDX0NOVFJMXzEpLAorCVZDNF9SRUczMihWQzRfSERNSV9D RUNfQ05UUkxfMiksCisJVkM0X1JFRzMyKFZDNF9IRE1JX0NFQ19DTlRSTF8zKSwKKwlWQzRfUkVH MzIoVkM0X0hETUlfQ0VDX0NOVFJMXzQpLAorCVZDNF9SRUczMihWQzRfSERNSV9DRUNfQ05UUkxf NSksCisJVkM0X1JFRzMyKFZDNF9IRE1JX0NQVV9TVEFUVVMpLAorCVZDNF9SRUczMihWQzRfSERN SV9DUFVfTUFTS19TVEFUVVMpLAorCisJVkM0X1JFRzMyKFZDNF9IRE1JX0NFQ19SWF9EQVRBXzEp LAorCVZDNF9SRUczMihWQzRfSERNSV9DRUNfUlhfREFUQV8yKSwKKwlWQzRfUkVHMzIoVkM0X0hE TUlfQ0VDX1JYX0RBVEFfMyksCisJVkM0X1JFRzMyKFZDNF9IRE1JX0NFQ19SWF9EQVRBXzQpLAor CVZDNF9SRUczMihWQzRfSERNSV9DRUNfVFhfREFUQV8xKSwKKwlWQzRfUkVHMzIoVkM0X0hETUlf Q0VDX1RYX0RBVEFfMiksCisJVkM0X1JFRzMyKFZDNF9IRE1JX0NFQ19UWF9EQVRBXzMpLAorCVZD NF9SRUczMihWQzRfSERNSV9DRUNfVFhfREFUQV80KSwKIH07CiAKLXN0YXRpYyBjb25zdCBzdHJ1 Y3QgewotCXUzMiByZWc7Ci0JY29uc3QgY2hhciAqbmFtZTsKLX0gaGRfcmVnc1tdID0gewotCUhE TUlfUkVHKFZDNF9IRF9NX0NUTCksCi0JSERNSV9SRUcoVkM0X0hEX01BSV9DVEwpLAotCUhETUlf UkVHKFZDNF9IRF9NQUlfVEhSKSwKLQlIRE1JX1JFRyhWQzRfSERfTUFJX0ZNVCksCi0JSERNSV9S RUcoVkM0X0hEX01BSV9TTVApLAotCUhETUlfUkVHKFZDNF9IRF9WSURfQ1RMKSwKLQlIRE1JX1JF RyhWQzRfSERfQ1NDX0NUTCksCi0JSERNSV9SRUcoVkM0X0hEX0ZSQU1FX0NPVU5UKSwKK3N0YXRp YyBjb25zdCBzdHJ1Y3QgZGVidWdmc19yZWczMiBoZF9yZWdzW10gPSB7CisJVkM0X1JFRzMyKFZD NF9IRF9NX0NUTCksCisJVkM0X1JFRzMyKFZDNF9IRF9NQUlfQ1RMKSwKKwlWQzRfUkVHMzIoVkM0 X0hEX01BSV9USFIpLAorCVZDNF9SRUczMihWQzRfSERfTUFJX0ZNVCksCisJVkM0X1JFRzMyKFZD NF9IRF9NQUlfU01QKSwKKwlWQzRfUkVHMzIoVkM0X0hEX1ZJRF9DVEwpLAorCVZDNF9SRUczMihW QzRfSERfQ1NDX0NUTCksCisJVkM0X1JFRzMyKFZDNF9IRF9GUkFNRV9DT1VOVCksCiB9OwogCiAj aWZkZWYgQ09ORklHX0RFQlVHX0ZTCkBAIC0xOTcsNDEgKzE5MywxNiBAQCBpbnQgdmM0X2hkbWlf ZGVidWdmc19yZWdzKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQogCXN0cnVjdCBk cm1faW5mb19ub2RlICpub2RlID0gKHN0cnVjdCBkcm1faW5mb19ub2RlICopbS0+cHJpdmF0ZTsK IAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gbm9kZS0+bWlub3ItPmRldjsKIAlzdHJ1Y3QgdmM0 X2RldiAqdmM0ID0gdG9fdmM0X2RldihkZXYpOwotCWludCBpOwotCi0JZm9yIChpID0gMDsgaSA8 IEFSUkFZX1NJWkUoaGRtaV9yZWdzKTsgaSsrKSB7Ci0JCXNlcV9wcmludGYobSwgIiVzICgweCUw NHgpOiAweCUwOHhcbiIsCi0JCQkgICBoZG1pX3JlZ3NbaV0ubmFtZSwgaGRtaV9yZWdzW2ldLnJl ZywKLQkJCSAgIEhETUlfUkVBRChoZG1pX3JlZ3NbaV0ucmVnKSk7Ci0JfQorCXN0cnVjdCB2YzRf aGRtaSAqaGRtaSA9IHZjNC0+aGRtaTsKKwlzdHJ1Y3QgZHJtX3ByaW50ZXIgcCA9IGRybV9zZXFf ZmlsZV9wcmludGVyKG0pOwogCi0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoaGRfcmVncyk7 IGkrKykgewotCQlzZXFfcHJpbnRmKG0sICIlcyAoMHglMDR4KTogMHglMDh4XG4iLAotCQkJICAg aGRfcmVnc1tpXS5uYW1lLCBoZF9yZWdzW2ldLnJlZywKLQkJCSAgIEhEX1JFQUQoaGRfcmVnc1tp XS5yZWcpKTsKLQl9CisJZHJtX3ByaW50X3JlZ3NldDMyKCZwLCAmaGRtaS0+aGRtaV9yZWdzZXQp OworCWRybV9wcmludF9yZWdzZXQzMigmcCwgJmhkbWktPmhkX3JlZ3NldCk7CiAKIAlyZXR1cm4g MDsKIH0KICNlbmRpZiAvKiBDT05GSUdfREVCVUdfRlMgKi8KIAotc3RhdGljIHZvaWQgdmM0X2hk bWlfZHVtcF9yZWdzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCi17Ci0Jc3RydWN0IHZjNF9kZXYg KnZjNCA9IHRvX3ZjNF9kZXYoZGV2KTsKLQlpbnQgaTsKLQotCWZvciAoaSA9IDA7IGkgPCBBUlJB WV9TSVpFKGhkbWlfcmVncyk7IGkrKykgewotCQlEUk1fSU5GTygiMHglMDR4ICglcyk6IDB4JTA4 eFxuIiwKLQkJCSBoZG1pX3JlZ3NbaV0ucmVnLCBoZG1pX3JlZ3NbaV0ubmFtZSwKLQkJCSBIRE1J X1JFQUQoaGRtaV9yZWdzW2ldLnJlZykpOwotCX0KLQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0la RShoZF9yZWdzKTsgaSsrKSB7Ci0JCURSTV9JTkZPKCIweCUwNHggKCVzKTogMHglMDh4XG4iLAot CQkJIGhkX3JlZ3NbaV0ucmVnLCBoZF9yZWdzW2ldLm5hbWUsCi0JCQkgSERfUkVBRChoZF9yZWdz W2ldLnJlZykpOwotCX0KLX0KLQogc3RhdGljIGVudW0gZHJtX2Nvbm5lY3Rvcl9zdGF0dXMKIHZj NF9oZG1pX2Nvbm5lY3Rvcl9kZXRlY3Qoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rvciwg Ym9vbCBmb3JjZSkKIHsKQEAgLTU2MSw4ICs1MzIsMTEgQEAgc3RhdGljIHZvaWQgdmM0X2hkbWlf ZW5jb2Rlcl9lbmFibGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQogCUhETUlfV1JJVEUo VkM0X0hETUlfVFhfUEhZX1JFU0VUX0NUTCwgMCk7CiAKIAlpZiAoZGVidWdfZHVtcF9yZWdzKSB7 Ci0JCURSTV9JTkZPKCJIRE1JIHJlZ3MgYmVmb3JlOlxuIik7Ci0JCXZjNF9oZG1pX2R1bXBfcmVn cyhkZXYpOworCQlzdHJ1Y3QgZHJtX3ByaW50ZXIgcCA9IGRybV9pbmZvX3ByaW50ZXIoJmhkbWkt PnBkZXYtPmRldik7CisKKwkJZGV2X2luZm8oJmhkbWktPnBkZXYtPmRldiwgIkhETUkgcmVncyBi ZWZvcmU6XG4iKTsKKwkJZHJtX3ByaW50X3JlZ3NldDMyKCZwLCAmaGRtaS0+aGRtaV9yZWdzZXQp OworCQlkcm1fcHJpbnRfcmVnc2V0MzIoJnAsICZoZG1pLT5oZF9yZWdzZXQpOwogCX0KIAogCUhE X1dSSVRFKFZDNF9IRF9WSURfQ1RMLCAwKTsKQEAgLTYzNyw4ICs2MTEsMTEgQEAgc3RhdGljIHZv aWQgdmM0X2hkbWlfZW5jb2Rlcl9lbmFibGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQog CUhETUlfV1JJVEUoVkM0X0hETUlfRklGT19DVEwsIFZDNF9IRE1JX0ZJRk9fQ1RMX01BU1RFUl9T TEFWRV9OKTsKIAogCWlmIChkZWJ1Z19kdW1wX3JlZ3MpIHsKLQkJRFJNX0lORk8oIkhETUkgcmVn cyBhZnRlcjpcbiIpOwotCQl2YzRfaGRtaV9kdW1wX3JlZ3MoZGV2KTsKKwkJc3RydWN0IGRybV9w cmludGVyIHAgPSBkcm1faW5mb19wcmludGVyKCZoZG1pLT5wZGV2LT5kZXYpOworCisJCWRldl9p bmZvKCZoZG1pLT5wZGV2LT5kZXYsICJIRE1JIHJlZ3MgYWZ0ZXI6XG4iKTsKKwkJZHJtX3ByaW50 X3JlZ3NldDMyKCZwLCAmaGRtaS0+aGRtaV9yZWdzZXQpOworCQlkcm1fcHJpbnRfcmVnc2V0MzIo JnAsICZoZG1pLT5oZF9yZWdzZXQpOwogCX0KIAogCUhEX1dSSVRFKFZDNF9IRF9WSURfQ1RMLApA QCAtMTMzMyw2ICsxMzEwLDEzIEBAIHN0YXRpYyBpbnQgdmM0X2hkbWlfYmluZChzdHJ1Y3QgZGV2 aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3Rlciwgdm9pZCAqZGF0YSkKIAlpZiAoSVNfRVJS KGhkbWktPmhkX3JlZ3MpKQogCQlyZXR1cm4gUFRSX0VSUihoZG1pLT5oZF9yZWdzKTsKIAorCWhk bWktPmhkbWlfcmVnc2V0LmJhc2UgPSBoZG1pLT5oZG1pY29yZV9yZWdzOworCWhkbWktPmhkbWlf cmVnc2V0LnJlZ3MgPSBoZG1pX3JlZ3M7CisJaGRtaS0+aGRtaV9yZWdzZXQubnJlZ3MgPSBBUlJB WV9TSVpFKGhkbWlfcmVncyk7CisJaGRtaS0+aGRfcmVnc2V0LmJhc2UgPSBoZG1pLT5oZF9yZWdz OworCWhkbWktPmhkX3JlZ3NldC5yZWdzID0gaGRfcmVnczsKKwloZG1pLT5oZF9yZWdzZXQubnJl Z3MgPSBBUlJBWV9TSVpFKGhkX3JlZ3MpOworCiAJaGRtaS0+cGl4ZWxfY2xvY2sgPSBkZXZtX2Ns a19nZXQoZGV2LCAicGl4ZWwiKTsKIAlpZiAoSVNfRVJSKGhkbWktPnBpeGVsX2Nsb2NrKSkgewog CQlEUk1fRVJST1IoIkZhaWxlZCB0byBnZXQgcGl4ZWwgY2xvY2tcbiIpOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfaHZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9o dnMuYwppbmRleCA1ZDhjNzQ5Yzk3NDkuLjQ1NDA1Zjc2Y2Q0MCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3ZjNC92YzRfaHZzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfaHZz LmMKQEAgLTI2LDU0ICsyNiw0NyBAQAogI2luY2x1ZGUgInZjNF9kcnYuaCIKICNpbmNsdWRlICJ2 YzRfcmVncy5oIgogCi0jZGVmaW5lIEhWU19SRUcocmVnKSB7IHJlZywgI3JlZyB9Ci1zdGF0aWMg Y29uc3Qgc3RydWN0IHsKLQl1MzIgcmVnOwotCWNvbnN0IGNoYXIgKm5hbWU7Ci19IGh2c19yZWdz W10gPSB7Ci0JSFZTX1JFRyhTQ0FMRVJfRElTUENUUkwpLAotCUhWU19SRUcoU0NBTEVSX0RJU1BT VEFUKSwKLQlIVlNfUkVHKFNDQUxFUl9ESVNQSUQpLAotCUhWU19SRUcoU0NBTEVSX0RJU1BFQ1RS TCksCi0JSFZTX1JFRyhTQ0FMRVJfRElTUFBST0YpLAotCUhWU19SRUcoU0NBTEVSX0RJU1BESVRI RVIpLAotCUhWU19SRUcoU0NBTEVSX0RJU1BFT0xOKSwKLQlIVlNfUkVHKFNDQUxFUl9ESVNQTElT VDApLAotCUhWU19SRUcoU0NBTEVSX0RJU1BMSVNUMSksCi0JSFZTX1JFRyhTQ0FMRVJfRElTUExJ U1QyKSwKLQlIVlNfUkVHKFNDQUxFUl9ESVNQTFNUQVQpLAotCUhWU19SRUcoU0NBTEVSX0RJU1BM QUNUMCksCi0JSFZTX1JFRyhTQ0FMRVJfRElTUExBQ1QxKSwKLQlIVlNfUkVHKFNDQUxFUl9ESVNQ TEFDVDIpLAotCUhWU19SRUcoU0NBTEVSX0RJU1BDVFJMMCksCi0JSFZTX1JFRyhTQ0FMRVJfRElT UEJLR05EMCksCi0JSFZTX1JFRyhTQ0FMRVJfRElTUFNUQVQwKSwKLQlIVlNfUkVHKFNDQUxFUl9E SVNQQkFTRTApLAotCUhWU19SRUcoU0NBTEVSX0RJU1BDVFJMMSksCi0JSFZTX1JFRyhTQ0FMRVJf RElTUEJLR05EMSksCi0JSFZTX1JFRyhTQ0FMRVJfRElTUFNUQVQxKSwKLQlIVlNfUkVHKFNDQUxF Ul9ESVNQQkFTRTEpLAotCUhWU19SRUcoU0NBTEVSX0RJU1BDVFJMMiksCi0JSFZTX1JFRyhTQ0FM RVJfRElTUEJLR05EMiksCi0JSFZTX1JFRyhTQ0FMRVJfRElTUFNUQVQyKSwKLQlIVlNfUkVHKFND QUxFUl9ESVNQQkFTRTIpLAotCUhWU19SRUcoU0NBTEVSX0RJU1BBTFBIQTIpLAotCUhWU19SRUco U0NBTEVSX09MRURPRkZTKSwKLQlIVlNfUkVHKFNDQUxFUl9PTEVEQ09FRjApLAotCUhWU19SRUco U0NBTEVSX09MRURDT0VGMSksCi0JSFZTX1JFRyhTQ0FMRVJfT0xFRENPRUYyKSwKK3N0YXRpYyBj b25zdCBzdHJ1Y3QgZGVidWdmc19yZWczMiBodnNfcmVnc1tdID0geworCVZDNF9SRUczMihTQ0FM RVJfRElTUENUUkwpLAorCVZDNF9SRUczMihTQ0FMRVJfRElTUFNUQVQpLAorCVZDNF9SRUczMihT Q0FMRVJfRElTUElEKSwKKwlWQzRfUkVHMzIoU0NBTEVSX0RJU1BFQ1RSTCksCisJVkM0X1JFRzMy KFNDQUxFUl9ESVNQUFJPRiksCisJVkM0X1JFRzMyKFNDQUxFUl9ESVNQRElUSEVSKSwKKwlWQzRf UkVHMzIoU0NBTEVSX0RJU1BFT0xOKSwKKwlWQzRfUkVHMzIoU0NBTEVSX0RJU1BMSVNUMCksCisJ VkM0X1JFRzMyKFNDQUxFUl9ESVNQTElTVDEpLAorCVZDNF9SRUczMihTQ0FMRVJfRElTUExJU1Qy KSwKKwlWQzRfUkVHMzIoU0NBTEVSX0RJU1BMU1RBVCksCisJVkM0X1JFRzMyKFNDQUxFUl9ESVNQ TEFDVDApLAorCVZDNF9SRUczMihTQ0FMRVJfRElTUExBQ1QxKSwKKwlWQzRfUkVHMzIoU0NBTEVS X0RJU1BMQUNUMiksCisJVkM0X1JFRzMyKFNDQUxFUl9ESVNQQ1RSTDApLAorCVZDNF9SRUczMihT Q0FMRVJfRElTUEJLR05EMCksCisJVkM0X1JFRzMyKFNDQUxFUl9ESVNQU1RBVDApLAorCVZDNF9S RUczMihTQ0FMRVJfRElTUEJBU0UwKSwKKwlWQzRfUkVHMzIoU0NBTEVSX0RJU1BDVFJMMSksCisJ VkM0X1JFRzMyKFNDQUxFUl9ESVNQQktHTkQxKSwKKwlWQzRfUkVHMzIoU0NBTEVSX0RJU1BTVEFU MSksCisJVkM0X1JFRzMyKFNDQUxFUl9ESVNQQkFTRTEpLAorCVZDNF9SRUczMihTQ0FMRVJfRElT UENUUkwyKSwKKwlWQzRfUkVHMzIoU0NBTEVSX0RJU1BCS0dORDIpLAorCVZDNF9SRUczMihTQ0FM RVJfRElTUFNUQVQyKSwKKwlWQzRfUkVHMzIoU0NBTEVSX0RJU1BCQVNFMiksCisJVkM0X1JFRzMy KFNDQUxFUl9ESVNQQUxQSEEyKSwKKwlWQzRfUkVHMzIoU0NBTEVSX09MRURPRkZTKSwKKwlWQzRf UkVHMzIoU0NBTEVSX09MRURDT0VGMCksCisJVkM0X1JFRzMyKFNDQUxFUl9PTEVEQ09FRjEpLAor CVZDNF9SRUczMihTQ0FMRVJfT0xFRENPRUYyKSwKIH07CiAKIHZvaWQgdmM0X2h2c19kdW1wX3N0 YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IHZjNF9kZXYgKnZjNCA9IHRv X3ZjNF9kZXYoZGV2KTsKKwlzdHJ1Y3QgZHJtX3ByaW50ZXIgcCA9IGRybV9pbmZvX3ByaW50ZXIo JnZjNC0+aHZzLT5wZGV2LT5kZXYpOwogCWludCBpOwogCi0JZm9yIChpID0gMDsgaSA8IEFSUkFZ X1NJWkUoaHZzX3JlZ3MpOyBpKyspIHsKLQkJRFJNX0lORk8oIjB4JTA0eCAoJXMpOiAweCUwOHhc biIsCi0JCQkgaHZzX3JlZ3NbaV0ucmVnLCBodnNfcmVnc1tpXS5uYW1lLAotCQkJIEhWU19SRUFE KGh2c19yZWdzW2ldLnJlZykpOwotCX0KKwlkcm1fcHJpbnRfcmVnc2V0MzIoJnAsICZ2YzQtPmh2 cy0+cmVnc2V0KTsKIAogCURSTV9JTkZPKCJIVlMgY3R4OlxuIik7CiAJZm9yIChpID0gMDsgaSA8 IDY0OyBpICs9IDQpIHsKQEAgLTkyLDEzICs4NSw5IEBAIGludCB2YzRfaHZzX2RlYnVnZnNfcmVn cyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKIAlzdHJ1Y3QgZHJtX2luZm9fbm9k ZSAqbm9kZSA9IChzdHJ1Y3QgZHJtX2luZm9fbm9kZSAqKW0tPnByaXZhdGU7CiAJc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IG5vZGUtPm1pbm9yLT5kZXY7CiAJc3RydWN0IHZjNF9kZXYgKnZjNCA9 IHRvX3ZjNF9kZXYoZGV2KTsKLQlpbnQgaTsKKwlzdHJ1Y3QgZHJtX3ByaW50ZXIgcCA9IGRybV9z ZXFfZmlsZV9wcmludGVyKG0pOwogCi0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoaHZzX3Jl Z3MpOyBpKyspIHsKLQkJc2VxX3ByaW50ZihtLCAiJXMgKDB4JTA0eCk6IDB4JTA4eFxuIiwKLQkJ CSAgIGh2c19yZWdzW2ldLm5hbWUsIGh2c19yZWdzW2ldLnJlZywKLQkJCSAgIEhWU19SRUFEKGh2 c19yZWdzW2ldLnJlZykpOwotCX0KKwlkcm1fcHJpbnRfcmVnc2V0MzIoJnAsICZ2YzQtPmh2cy0+ cmVnc2V0KTsKIAogCXJldHVybiAwOwogfQpAQCAtMTg1LDYgKzE3NCwxMCBAQCBzdGF0aWMgaW50 IHZjNF9odnNfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3Rlciwg dm9pZCAqZGF0YSkKIAlpZiAoSVNfRVJSKGh2cy0+cmVncykpCiAJCXJldHVybiBQVFJfRVJSKGh2 cy0+cmVncyk7CiAKKwlodnMtPnJlZ3NldC5iYXNlID0gaHZzLT5yZWdzOworCWh2cy0+cmVnc2V0 LnJlZ3MgPSBodnNfcmVnczsKKwlodnMtPnJlZ3NldC5ucmVncyA9IEFSUkFZX1NJWkUoaHZzX3Jl Z3MpOworCiAJaHZzLT5kbGlzdCA9IGh2cy0+cmVncyArIFNDQUxFUl9ETElTVF9TVEFSVDsKIAog CXNwaW5fbG9ja19pbml0KCZodnMtPm1tX2xvY2spOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3ZjNC92YzRfdHhwLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF90eHAuYwppbmRleCBh ZmIxYzRlYzRmMTguLmM4ZjgwMDY0YzE3OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Zj NC92YzRfdHhwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfdHhwLmMKQEAgLTE0OCw2 ICsxNDgsNyBAQCBzdHJ1Y3QgdmM0X3R4cCB7CiAJc3RydWN0IGRybV93cml0ZWJhY2tfY29ubmVj dG9yIGNvbm5lY3RvcjsKIAogCXZvaWQgX19pb21lbSAqcmVnczsKKwlzdHJ1Y3QgZGVidWdmc19y ZWdzZXQzMiByZWdzZXQ7CiB9OwogCiBzdGF0aWMgaW5saW5lIHN0cnVjdCB2YzRfdHhwICplbmNv ZGVyX3RvX3ZjNF90eHAoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQpAQCAtMTYwLDE2ICsx NjEsMTIgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgdmM0X3R4cCAqY29ubmVjdG9yX3RvX3ZjNF90 eHAoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm4pCiAJcmV0dXJuIGNvbnRhaW5lcl9vZihjb25u LCBzdHJ1Y3QgdmM0X3R4cCwgY29ubmVjdG9yLmJhc2UpOwogfQogCi0jZGVmaW5lIFRYUF9SRUco cmVnKSB7IHJlZywgI3JlZyB9Ci1zdGF0aWMgY29uc3Qgc3RydWN0IHsKLQl1MzIgcmVnOwotCWNv bnN0IGNoYXIgKm5hbWU7Ci19IHR4cF9yZWdzW10gPSB7Ci0JVFhQX1JFRyhUWFBfRFNUX1BUUiks Ci0JVFhQX1JFRyhUWFBfRFNUX1BJVENIKSwKLQlUWFBfUkVHKFRYUF9ESU0pLAotCVRYUF9SRUco VFhQX0RTVF9DVFJMKSwKLQlUWFBfUkVHKFRYUF9QUk9HUkVTUyksCitzdGF0aWMgY29uc3Qgc3Ry dWN0IGRlYnVnZnNfcmVnMzIgdHhwX3JlZ3NbXSA9IHsKKwlWQzRfUkVHMzIoVFhQX0RTVF9QVFIp LAorCVZDNF9SRUczMihUWFBfRFNUX1BJVENIKSwKKwlWQzRfUkVHMzIoVFhQX0RJTSksCisJVkM0 X1JFRzMyKFRYUF9EU1RfQ1RSTCksCisJVkM0X1JFRzMyKFRYUF9QUk9HUkVTUyksCiB9OwogCiAj aWZkZWYgQ09ORklHX0RFQlVHX0ZTCkBAIC0xNzksMTYgKzE3NiwxMiBAQCBpbnQgdmM0X3R4cF9k ZWJ1Z2ZzX3JlZ3Moc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCiAJc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IG5vZGUtPm1pbm9yLT5kZXY7CiAJc3RydWN0IHZjNF9kZXYgKnZjNCA9 IHRvX3ZjNF9kZXYoZGV2KTsKIAlzdHJ1Y3QgdmM0X3R4cCAqdHhwID0gdmM0LT50eHA7Ci0JaW50 IGk7CisJc3RydWN0IGRybV9wcmludGVyIHAgPSBkcm1fc2VxX2ZpbGVfcHJpbnRlcihtKTsKIAog CWlmICghdHhwKQogCQlyZXR1cm4gMDsKIAotCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHR4 cF9yZWdzKTsgaSsrKSB7Ci0JCXNlcV9wcmludGYobSwgIiVzICgweCUwNHgpOiAweCUwOHhcbiIs Ci0JCQkgICB0eHBfcmVnc1tpXS5uYW1lLCB0eHBfcmVnc1tpXS5yZWcsCi0JCQkgICBUWFBfUkVB RCh0eHBfcmVnc1tpXS5yZWcpKTsKLQl9CisJZHJtX3ByaW50X3JlZ3NldDMyKCZwLCAmdHhwLT5y ZWdzZXQpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC00MTAsNiArNDAzLDkgQEAgc3RhdGljIGludCB2 YzRfdHhwX2JpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsIHZv aWQgKmRhdGEpCiAJdHhwLT5yZWdzID0gdmM0X2lvcmVtYXBfcmVncyhwZGV2LCAwKTsKIAlpZiAo SVNfRVJSKHR4cC0+cmVncykpCiAJCXJldHVybiBQVFJfRVJSKHR4cC0+cmVncyk7CisJdHhwLT5y ZWdzZXQuYmFzZSA9IHR4cC0+cmVnczsKKwl0eHAtPnJlZ3NldC5yZWdzID0gdHhwX3JlZ3M7CisJ dHhwLT5yZWdzZXQubnJlZ3MgPSBBUlJBWV9TSVpFKHR4cF9yZWdzKTsKIAogCWRybV9jb25uZWN0 b3JfaGVscGVyX2FkZCgmdHhwLT5jb25uZWN0b3IuYmFzZSwKIAkJCQkgJnZjNF90eHBfY29ubmVj dG9yX2hlbHBlcl9mdW5jcyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF92 M2QuYyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X3YzZC5jCmluZGV4IGU0N2UyOTQyNjA3OC4u ZTFlNzI4ZTk1NTYyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF92M2QuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF92M2QuYwpAQCAtMjMsODkgKzIzLDg1IEBACiAj aW5jbHVkZSAidmM0X3JlZ3MuaCIKIAogI2lmZGVmIENPTkZJR19ERUJVR19GUwotI2RlZmluZSBS RUdERUYocmVnKSB7IHJlZywgI3JlZyB9Ci1zdGF0aWMgY29uc3Qgc3RydWN0IHsKLQl1aW50MzJf dCByZWc7Ci0JY29uc3QgY2hhciAqbmFtZTsKLX0gdmM0X3JlZ19kZWZzW10gPSB7Ci0JUkVHREVG KFYzRF9JREVOVDApLAotCVJFR0RFRihWM0RfSURFTlQxKSwKLQlSRUdERUYoVjNEX0lERU5UMiks Ci0JUkVHREVGKFYzRF9TQ1JBVENIKSwKLQlSRUdERUYoVjNEX0wyQ0FDVEwpLAotCVJFR0RFRihW M0RfU0xDQUNUTCksCi0JUkVHREVGKFYzRF9JTlRDVEwpLAotCVJFR0RFRihWM0RfSU5URU5BKSwK LQlSRUdERUYoVjNEX0lOVERJUyksCi0JUkVHREVGKFYzRF9DVDBDUyksCi0JUkVHREVGKFYzRF9D VDFDUyksCi0JUkVHREVGKFYzRF9DVDBFQSksCi0JUkVHREVGKFYzRF9DVDFFQSksCi0JUkVHREVG KFYzRF9DVDBDQSksCi0JUkVHREVGKFYzRF9DVDFDQSksCi0JUkVHREVGKFYzRF9DVDAwUkEwKSwK LQlSRUdERUYoVjNEX0NUMDFSQTApLAotCVJFR0RFRihWM0RfQ1QwTEMpLAotCVJFR0RFRihWM0Rf Q1QxTEMpLAotCVJFR0RFRihWM0RfQ1QwUEMpLAotCVJFR0RFRihWM0RfQ1QxUEMpLAotCVJFR0RF RihWM0RfUENTKSwKLQlSRUdERUYoVjNEX0JGQyksCi0JUkVHREVGKFYzRF9SRkMpLAotCVJFR0RF RihWM0RfQlBDQSksCi0JUkVHREVGKFYzRF9CUENTKSwKLQlSRUdERUYoVjNEX0JQT0EpLAotCVJF R0RFRihWM0RfQlBPUyksCi0JUkVHREVGKFYzRF9CWENGKSwKLQlSRUdERUYoVjNEX1NRUlNWMCks Ci0JUkVHREVGKFYzRF9TUVJTVjEpLAotCVJFR0RFRihWM0RfU1FDTlRMKSwKLQlSRUdERUYoVjNE X1NSUVBDKSwKLQlSRUdERUYoVjNEX1NSUVVBKSwKLQlSRUdERUYoVjNEX1NSUVVMKSwKLQlSRUdE RUYoVjNEX1NSUUNTKSwKLQlSRUdERUYoVjNEX1ZQQUNOVEwpLAotCVJFR0RFRihWM0RfVlBNQkFT RSksCi0JUkVHREVGKFYzRF9QQ1RSQyksCi0JUkVHREVGKFYzRF9QQ1RSRSksCi0JUkVHREVGKFYz RF9QQ1RSKDApKSwKLQlSRUdERUYoVjNEX1BDVFJTKDApKSwKLQlSRUdERUYoVjNEX1BDVFIoMSkp LAotCVJFR0RFRihWM0RfUENUUlMoMSkpLAotCVJFR0RFRihWM0RfUENUUigyKSksCi0JUkVHREVG KFYzRF9QQ1RSUygyKSksCi0JUkVHREVGKFYzRF9QQ1RSKDMpKSwKLQlSRUdERUYoVjNEX1BDVFJT KDMpKSwKLQlSRUdERUYoVjNEX1BDVFIoNCkpLAotCVJFR0RFRihWM0RfUENUUlMoNCkpLAotCVJF R0RFRihWM0RfUENUUig1KSksCi0JUkVHREVGKFYzRF9QQ1RSUyg1KSksCi0JUkVHREVGKFYzRF9Q Q1RSKDYpKSwKLQlSRUdERUYoVjNEX1BDVFJTKDYpKSwKLQlSRUdERUYoVjNEX1BDVFIoNykpLAot CVJFR0RFRihWM0RfUENUUlMoNykpLAotCVJFR0RFRihWM0RfUENUUig4KSksCi0JUkVHREVGKFYz RF9QQ1RSUyg4KSksCi0JUkVHREVGKFYzRF9QQ1RSKDkpKSwKLQlSRUdERUYoVjNEX1BDVFJTKDkp KSwKLQlSRUdERUYoVjNEX1BDVFIoMTApKSwKLQlSRUdERUYoVjNEX1BDVFJTKDEwKSksCi0JUkVH REVGKFYzRF9QQ1RSKDExKSksCi0JUkVHREVGKFYzRF9QQ1RSUygxMSkpLAotCVJFR0RFRihWM0Rf UENUUigxMikpLAotCVJFR0RFRihWM0RfUENUUlMoMTIpKSwKLQlSRUdERUYoVjNEX1BDVFIoMTMp KSwKLQlSRUdERUYoVjNEX1BDVFJTKDEzKSksCi0JUkVHREVGKFYzRF9QQ1RSKDE0KSksCi0JUkVH REVGKFYzRF9QQ1RSUygxNCkpLAotCVJFR0RFRihWM0RfUENUUigxNSkpLAotCVJFR0RFRihWM0Rf UENUUlMoMTUpKSwKLQlSRUdERUYoVjNEX0RCR0UpLAotCVJFR0RFRihWM0RfRkRCR08pLAotCVJF R0RFRihWM0RfRkRCR0IpLAotCVJFR0RFRihWM0RfRkRCR1IpLAotCVJFR0RFRihWM0RfRkRCR1Mp LAotCVJFR0RFRihWM0RfRVJSU1RBVCksCitzdGF0aWMgY29uc3Qgc3RydWN0IGRlYnVnZnNfcmVn MzIgdjNkX3JlZ3NbXSA9IHsKKwlWQzRfUkVHMzIoVjNEX0lERU5UMCksCisJVkM0X1JFRzMyKFYz RF9JREVOVDEpLAorCVZDNF9SRUczMihWM0RfSURFTlQyKSwKKwlWQzRfUkVHMzIoVjNEX1NDUkFU Q0gpLAorCVZDNF9SRUczMihWM0RfTDJDQUNUTCksCisJVkM0X1JFRzMyKFYzRF9TTENBQ1RMKSwK KwlWQzRfUkVHMzIoVjNEX0lOVENUTCksCisJVkM0X1JFRzMyKFYzRF9JTlRFTkEpLAorCVZDNF9S RUczMihWM0RfSU5URElTKSwKKwlWQzRfUkVHMzIoVjNEX0NUMENTKSwKKwlWQzRfUkVHMzIoVjNE X0NUMUNTKSwKKwlWQzRfUkVHMzIoVjNEX0NUMEVBKSwKKwlWQzRfUkVHMzIoVjNEX0NUMUVBKSwK KwlWQzRfUkVHMzIoVjNEX0NUMENBKSwKKwlWQzRfUkVHMzIoVjNEX0NUMUNBKSwKKwlWQzRfUkVH MzIoVjNEX0NUMDBSQTApLAorCVZDNF9SRUczMihWM0RfQ1QwMVJBMCksCisJVkM0X1JFRzMyKFYz RF9DVDBMQyksCisJVkM0X1JFRzMyKFYzRF9DVDFMQyksCisJVkM0X1JFRzMyKFYzRF9DVDBQQyks CisJVkM0X1JFRzMyKFYzRF9DVDFQQyksCisJVkM0X1JFRzMyKFYzRF9QQ1MpLAorCVZDNF9SRUcz MihWM0RfQkZDKSwKKwlWQzRfUkVHMzIoVjNEX1JGQyksCisJVkM0X1JFRzMyKFYzRF9CUENBKSwK KwlWQzRfUkVHMzIoVjNEX0JQQ1MpLAorCVZDNF9SRUczMihWM0RfQlBPQSksCisJVkM0X1JFRzMy KFYzRF9CUE9TKSwKKwlWQzRfUkVHMzIoVjNEX0JYQ0YpLAorCVZDNF9SRUczMihWM0RfU1FSU1Yw KSwKKwlWQzRfUkVHMzIoVjNEX1NRUlNWMSksCisJVkM0X1JFRzMyKFYzRF9TUUNOVEwpLAorCVZD NF9SRUczMihWM0RfU1JRUEMpLAorCVZDNF9SRUczMihWM0RfU1JRVUEpLAorCVZDNF9SRUczMihW M0RfU1JRVUwpLAorCVZDNF9SRUczMihWM0RfU1JRQ1MpLAorCVZDNF9SRUczMihWM0RfVlBBQ05U TCksCisJVkM0X1JFRzMyKFYzRF9WUE1CQVNFKSwKKwlWQzRfUkVHMzIoVjNEX1BDVFJDKSwKKwlW QzRfUkVHMzIoVjNEX1BDVFJFKSwKKwlWQzRfUkVHMzIoVjNEX1BDVFIoMCkpLAorCVZDNF9SRUcz MihWM0RfUENUUlMoMCkpLAorCVZDNF9SRUczMihWM0RfUENUUigxKSksCisJVkM0X1JFRzMyKFYz RF9QQ1RSUygxKSksCisJVkM0X1JFRzMyKFYzRF9QQ1RSKDIpKSwKKwlWQzRfUkVHMzIoVjNEX1BD VFJTKDIpKSwKKwlWQzRfUkVHMzIoVjNEX1BDVFIoMykpLAorCVZDNF9SRUczMihWM0RfUENUUlMo MykpLAorCVZDNF9SRUczMihWM0RfUENUUig0KSksCisJVkM0X1JFRzMyKFYzRF9QQ1RSUyg0KSks CisJVkM0X1JFRzMyKFYzRF9QQ1RSKDUpKSwKKwlWQzRfUkVHMzIoVjNEX1BDVFJTKDUpKSwKKwlW QzRfUkVHMzIoVjNEX1BDVFIoNikpLAorCVZDNF9SRUczMihWM0RfUENUUlMoNikpLAorCVZDNF9S RUczMihWM0RfUENUUig3KSksCisJVkM0X1JFRzMyKFYzRF9QQ1RSUyg3KSksCisJVkM0X1JFRzMy KFYzRF9QQ1RSKDgpKSwKKwlWQzRfUkVHMzIoVjNEX1BDVFJTKDgpKSwKKwlWQzRfUkVHMzIoVjNE X1BDVFIoOSkpLAorCVZDNF9SRUczMihWM0RfUENUUlMoOSkpLAorCVZDNF9SRUczMihWM0RfUENU UigxMCkpLAorCVZDNF9SRUczMihWM0RfUENUUlMoMTApKSwKKwlWQzRfUkVHMzIoVjNEX1BDVFIo MTEpKSwKKwlWQzRfUkVHMzIoVjNEX1BDVFJTKDExKSksCisJVkM0X1JFRzMyKFYzRF9QQ1RSKDEy KSksCisJVkM0X1JFRzMyKFYzRF9QQ1RSUygxMikpLAorCVZDNF9SRUczMihWM0RfUENUUigxMykp LAorCVZDNF9SRUczMihWM0RfUENUUlMoMTMpKSwKKwlWQzRfUkVHMzIoVjNEX1BDVFIoMTQpKSwK KwlWQzRfUkVHMzIoVjNEX1BDVFJTKDE0KSksCisJVkM0X1JFRzMyKFYzRF9QQ1RSKDE1KSksCisJ VkM0X1JFRzMyKFYzRF9QQ1RSUygxNSkpLAorCVZDNF9SRUczMihWM0RfREJHRSksCisJVkM0X1JF RzMyKFYzRF9GREJHTyksCisJVkM0X1JFRzMyKFYzRF9GREJHQiksCisJVkM0X1JFRzMyKFYzRF9G REJHUiksCisJVkM0X1JFRzMyKFYzRF9GREJHUyksCisJVkM0X1JFRzMyKFYzRF9FUlJTVEFUKSwK IH07CiAKIGludCB2YzRfdjNkX2RlYnVnZnNfcmVncyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQg KnVudXNlZCkKQEAgLTExMywxMyArMTA5LDkgQEAgaW50IHZjNF92M2RfZGVidWdmc19yZWdzKHN0 cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQogCXN0cnVjdCBkcm1faW5mb19ub2RlICpu b2RlID0gKHN0cnVjdCBkcm1faW5mb19ub2RlICopbS0+cHJpdmF0ZTsKIAlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gbm9kZS0+bWlub3ItPmRldjsKIAlzdHJ1Y3QgdmM0X2RldiAqdmM0ID0gdG9f dmM0X2RldihkZXYpOwotCWludCBpOworCXN0cnVjdCBkcm1fcHJpbnRlciBwID0gZHJtX3NlcV9m aWxlX3ByaW50ZXIobSk7CiAKLQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRSh2YzRfcmVnX2Rl ZnMpOyBpKyspIHsKLQkJc2VxX3ByaW50ZihtLCAiJXMgKDB4JTA0eCk6IDB4JTA4eFxuIiwKLQkJ CSAgIHZjNF9yZWdfZGVmc1tpXS5uYW1lLCB2YzRfcmVnX2RlZnNbaV0ucmVnLAotCQkJICAgVjNE X1JFQUQodmM0X3JlZ19kZWZzW2ldLnJlZykpOwotCX0KKwlkcm1fcHJpbnRfcmVnc2V0MzIoJnAs ICZ2YzQtPnYzZC0+cmVnc2V0KTsKIAogCXJldHVybiAwOwogfQpAQCAtMzU0LDYgKzM0Niw5IEBA IHN0YXRpYyBpbnQgdmM0X3YzZF9iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmlj ZSAqbWFzdGVyLCB2b2lkICpkYXRhKQogCXYzZC0+cmVncyA9IHZjNF9pb3JlbWFwX3JlZ3MocGRl diwgMCk7CiAJaWYgKElTX0VSUih2M2QtPnJlZ3MpKQogCQlyZXR1cm4gUFRSX0VSUih2M2QtPnJl Z3MpOworCXYzZC0+cmVnc2V0LmJhc2UgPSB2M2QtPnJlZ3M7CisJdjNkLT5yZWdzZXQucmVncyA9 IHYzZF9yZWdzOworCXYzZC0+cmVnc2V0Lm5yZWdzID0gQVJSQVlfU0laRSh2M2RfcmVncyk7CiAK IAl2YzQtPnYzZCA9IHYzZDsKIAl2M2QtPnZjNCA9IHZjNDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS92YzQvdmM0X3ZlYy5jIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfdmVjLmMKaW5k ZXggODU4YzNhNDgzMjI5Li44MzIyN2QyNDQwYWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS92YzQvdmM0X3ZlYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X3ZlYy5jCkBAIC0x NzYsNiArMTc2LDggQEAgc3RydWN0IHZjNF92ZWMgewogCXN0cnVjdCBjbGsgKmNsb2NrOwogCiAJ Y29uc3Qgc3RydWN0IHZjNF92ZWNfdHZfbW9kZSAqdHZfbW9kZTsKKworCXN0cnVjdCBkZWJ1Z2Zz X3JlZ3NldDMyIHJlZ3NldDsKIH07CiAKICNkZWZpbmUgVkVDX1JFQUQob2Zmc2V0KSByZWFkbCh2 ZWMtPnJlZ3MgKyAob2Zmc2V0KSkKQEAgLTIyMywzNSArMjI1LDMxIEBAIHN0cnVjdCB2YzRfdmVj X3R2X21vZGUgewogCXZvaWQgKCptb2RlX3NldCkoc3RydWN0IHZjNF92ZWMgKnZlYyk7CiB9Owog Ci0jZGVmaW5lIFZFQ19SRUcocmVnKSB7IHJlZywgI3JlZyB9Ci1zdGF0aWMgY29uc3Qgc3RydWN0 IHsKLQl1MzIgcmVnOwotCWNvbnN0IGNoYXIgKm5hbWU7Ci19IHZlY19yZWdzW10gPSB7Ci0JVkVD X1JFRyhWRUNfV1NFX0NPTlRST0wpLAotCVZFQ19SRUcoVkVDX1dTRV9XU1NfREFUQSksCi0JVkVD X1JFRyhWRUNfV1NFX1ZQU19EQVRBMSksCi0JVkVDX1JFRyhWRUNfV1NFX1ZQU19DT05UUk9MKSwK LQlWRUNfUkVHKFZFQ19SRVZJRCksCi0JVkVDX1JFRyhWRUNfQ09ORklHMCksCi0JVkVDX1JFRyhW RUNfU0NIUEgpLAotCVZFQ19SRUcoVkVDX0NMTVAwX1NUQVJUKSwKLQlWRUNfUkVHKFZFQ19DTE1Q MF9FTkQpLAotCVZFQ19SRUcoVkVDX0ZSRVEzXzIpLAotCVZFQ19SRUcoVkVDX0ZSRVExXzApLAot CVZFQ19SRUcoVkVDX0NPTkZJRzEpLAotCVZFQ19SRUcoVkVDX0NPTkZJRzIpLAotCVZFQ19SRUco VkVDX0lOVEVSUlVQVF9DT05UUk9MKSwKLQlWRUNfUkVHKFZFQ19JTlRFUlJVUFRfU1RBVFVTKSwK LQlWRUNfUkVHKFZFQ19GQ1dfU0VDQU1fQiksCi0JVkVDX1JFRyhWRUNfU0VDQU1fR0FJTl9WQUwp LAotCVZFQ19SRUcoVkVDX0NPTkZJRzMpLAotCVZFQ19SRUcoVkVDX1NUQVRVUzApLAotCVZFQ19S RUcoVkVDX01BU0swKSwKLQlWRUNfUkVHKFZFQ19DRkcpLAotCVZFQ19SRUcoVkVDX0RBQ19URVNU KSwKLQlWRUNfUkVHKFZFQ19EQUNfQ09ORklHKSwKLQlWRUNfUkVHKFZFQ19EQUNfTUlTQyksCitz dGF0aWMgY29uc3Qgc3RydWN0IGRlYnVnZnNfcmVnMzIgdmVjX3JlZ3NbXSA9IHsKKwlWQzRfUkVH MzIoVkVDX1dTRV9DT05UUk9MKSwKKwlWQzRfUkVHMzIoVkVDX1dTRV9XU1NfREFUQSksCisJVkM0 X1JFRzMyKFZFQ19XU0VfVlBTX0RBVEExKSwKKwlWQzRfUkVHMzIoVkVDX1dTRV9WUFNfQ09OVFJP TCksCisJVkM0X1JFRzMyKFZFQ19SRVZJRCksCisJVkM0X1JFRzMyKFZFQ19DT05GSUcwKSwKKwlW QzRfUkVHMzIoVkVDX1NDSFBIKSwKKwlWQzRfUkVHMzIoVkVDX0NMTVAwX1NUQVJUKSwKKwlWQzRf UkVHMzIoVkVDX0NMTVAwX0VORCksCisJVkM0X1JFRzMyKFZFQ19GUkVRM18yKSwKKwlWQzRfUkVH MzIoVkVDX0ZSRVExXzApLAorCVZDNF9SRUczMihWRUNfQ09ORklHMSksCisJVkM0X1JFRzMyKFZF Q19DT05GSUcyKSwKKwlWQzRfUkVHMzIoVkVDX0lOVEVSUlVQVF9DT05UUk9MKSwKKwlWQzRfUkVH MzIoVkVDX0lOVEVSUlVQVF9TVEFUVVMpLAorCVZDNF9SRUczMihWRUNfRkNXX1NFQ0FNX0IpLAor CVZDNF9SRUczMihWRUNfU0VDQU1fR0FJTl9WQUwpLAorCVZDNF9SRUczMihWRUNfQ09ORklHMyks CisJVkM0X1JFRzMyKFZFQ19TVEFUVVMwKSwKKwlWQzRfUkVHMzIoVkVDX01BU0swKSwKKwlWQzRf UkVHMzIoVkVDX0NGRyksCisJVkM0X1JFRzMyKFZFQ19EQUNfVEVTVCksCisJVkM0X1JFRzMyKFZF Q19EQUNfQ09ORklHKSwKKwlWQzRfUkVHMzIoVkVDX0RBQ19NSVNDKSwKIH07CiAKICNpZmRlZiBD T05GSUdfREVCVUdfRlMKQEAgLTI2MSwxNiArMjU5LDEyIEBAIGludCB2YzRfdmVjX2RlYnVnZnNf cmVncyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKIAlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gbm9kZS0+bWlub3ItPmRldjsKIAlzdHJ1Y3QgdmM0X2RldiAqdmM0ID0gdG9fdmM0 X2RldihkZXYpOwogCXN0cnVjdCB2YzRfdmVjICp2ZWMgPSB2YzQtPnZlYzsKLQlpbnQgaTsKKwlz dHJ1Y3QgZHJtX3ByaW50ZXIgcCA9IGRybV9zZXFfZmlsZV9wcmludGVyKG0pOwogCiAJaWYgKCF2 ZWMpCiAJCXJldHVybiAwOwogCi0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUodmVjX3JlZ3Mp OyBpKyspIHsKLQkJc2VxX3ByaW50ZihtLCAiJXMgKDB4JTA0eCk6IDB4JTA4eFxuIiwKLQkJCSAg IHZlY19yZWdzW2ldLm5hbWUsIHZlY19yZWdzW2ldLnJlZywKLQkJCSAgIFZFQ19SRUFEKHZlY19y ZWdzW2ldLnJlZykpOwotCX0KKwlkcm1fcHJpbnRfcmVnc2V0MzIoJnAsICZ2ZWMtPnJlZ3NldCk7 CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTU4Nyw2ICs1ODEsOSBAQCBzdGF0aWMgaW50IHZjNF92ZWNf YmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3Rlciwgdm9pZCAqZGF0 YSkKIAl2ZWMtPnJlZ3MgPSB2YzRfaW9yZW1hcF9yZWdzKHBkZXYsIDApOwogCWlmIChJU19FUlIo dmVjLT5yZWdzKSkKIAkJcmV0dXJuIFBUUl9FUlIodmVjLT5yZWdzKTsKKwl2ZWMtPnJlZ3NldC5i YXNlID0gdmVjLT5yZWdzOworCXZlYy0+cmVnc2V0LnJlZ3MgPSB2ZWNfcmVnczsKKwl2ZWMtPnJl Z3NldC5ucmVncyA9IEFSUkFZX1NJWkUodmVjX3JlZ3MpOwogCiAJdmVjLT5jbG9jayA9IGRldm1f Y2xrX2dldChkZXYsIE5VTEwpOwogCWlmIChJU19FUlIodmVjLT5jbG9jaykpIHsKLS0gCjIuMjAu MQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRl dmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs