From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id B7B7789255 for ; Thu, 25 Apr 2019 20:59:44 +0000 (UTC) From: Daniel Mrzyglod Date: Thu, 25 Apr 2019 22:58:21 +0200 Message-Id: <20190425205822.8995-6-daniel.t.mrzyglod@intel.com> In-Reply-To: <20190425205822.8995-1-daniel.t.mrzyglod@intel.com> References: <20190425205822.8995-1-daniel.t.mrzyglod@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v4 5/6] lib/intel_mmio: remove igt_global_mmio and move it to mmio_data List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org List-ID: dGhpcyBwYXRjaCByZW1vdmUgbmVlZCBmb3IgaWd0X2dsb2JhbF9tbWlvIGZyb20gbGlicmFyeSBz cGFjZS4KVGhlIHJlYXNvbiB0aGF0IGl0IHdhcyBtb3ZlZCBpcyB0aGUgaWRlYSB0byBzdXBwb3J0 IG11bHRpcGxlCmRldmljZXMgYXQgb25jZS4KClNpZ25lZC1vZmYtYnk6IERhbmllbCBNcnp5Z2xv ZCA8ZGFuaWVsLnQubXJ6eWdsb2RAaW50ZWwuY29tPgotLS0KIGJlbmNobWFya3MvZ2VtX2xhdGVu Y3kuYyAgICAgIHwgICA1ICstCiBiZW5jaG1hcmtzL2dlbV93c2ltLmMgICAgICAgICB8ICAgNiAr LQogbGliL2ludGVsX2lvLmggICAgICAgICAgICAgICAgfCAgNzggKysrKysrKysrKysrKy0tLS0t LS0tCiBsaWIvaW50ZWxfaW9zZi5jICAgICAgICAgICAgICB8ICA3NCArKysrKysrKysrKy0tLS0t LS0tLQogbGliL2ludGVsX21taW8uYyAgICAgICAgICAgICAgfCAxMjUgKysrKysrKysrKysrKysr Ky0tLS0tLS0tLS0tLS0tLS0tLQogdGVzdHMvaTkxNS9nZW1fZXhlY19sYXRlbmN5LmMgfCAgIDcg Ky0KIHRlc3RzL2k5MTUvZ2VtX2V4ZWNfcGFyc2UuYyAgIHwgIDE0ICsrLS0KIHRlc3RzL2k5MTUv aTkxNV9wbV9scHNwLmMgICAgIHwgICA3ICstCiB0b29scy9pbnRlbF9hdWRpb19kdW1wLmMgICAg ICB8ICAgNyArLQogdG9vbHMvaW50ZWxfYmFja2xpZ2h0LmMgICAgICAgfCAgIDUgKy0KIHRvb2xz L2ludGVsX2Rpc3BsYXlfcG9sbGVyLmMgIHwgICA3ICstCiB0b29scy9pbnRlbF9mb3JjZXdha2Vk LmMgICAgICB8ICAxNCArKy0tCiB0b29scy9pbnRlbF9ncHVfdGltZS5jICAgICAgICB8ICAgNSAr LQogdG9vbHMvaW50ZWxfaW5mb2ZyYW1lcy5jICAgICAgfCAgIDcgKy0KIHRvb2xzL2ludGVsX2wz X3Bhcml0eS5jICAgICAgIHwgIDE0ICsrLS0KIHRvb2xzL2ludGVsX2xpZC5jICAgICAgICAgICAg IHwgICA2ICstCiB0b29scy9pbnRlbF9wYW5lbF9maXR0ZXIuYyAgICB8ICAgNyArLQogdG9vbHMv aW50ZWxfcGVyZl9jb3VudGVycy5jICAgfCAgMTcgKysrLS0KIHRvb2xzL2ludGVsX3JlZy5jICAg ICAgICAgICAgIHwgIDMxICsrKysrKy0tLQogdG9vbHMvaW50ZWxfcmVnX2NoZWNrZXIuYyAgICAg fCAgIDYgKy0KIHRvb2xzL2ludGVsX3dhdGVybWFyay5jICAgICAgIHwgIDQ0ICsrKysrKystLS0t LQogMjEgZmlsZXMgY2hhbmdlZCwgMjkzIGluc2VydGlvbnMoKyksIDE5MyBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9iZW5jaG1hcmtzL2dlbV9sYXRlbmN5LmMgYi9iZW5jaG1hcmtzL2dlbV9s YXRlbmN5LmMKaW5kZXggYzNmYzRiZjAuLmJjYWFlY2VmIDEwMDY0NAotLS0gYS9iZW5jaG1hcmtz L2dlbV9sYXRlbmN5LmMKKysrIGIvYmVuY2htYXJrcy9nZW1fbGF0ZW5jeS5jCkBAIC01NSw2ICs1 NSw4IEBACiBzdGF0aWMgaW50IGRvbmU7CiBzdGF0aWMgaW50IGZkOwogc3RhdGljIHZvbGF0aWxl IHVpbnQzMl90ICp0aW1lc3RhbXBfcmVnOwordm9pZCAqaWd0X2dsb2JhbF9tbWlvOworc3RhdGlj IHN0cnVjdCBfbW1pb19kYXRhIG1taW9fZGF0YTsKIAogI2RlZmluZSBSRUcoeCkgKHZvbGF0aWxl IHVpbnQzMl90ICopKCh2b2xhdGlsZSBjaGFyICopaWd0X2dsb2JhbF9tbWlvICsgeCkKICNkZWZp bmUgUkVHX09GRlNFVCh4KSAoKHZvbGF0aWxlIGNoYXIgKikoeCkgLSAodm9sYXRpbGUgY2hhciAq KWlndF9nbG9iYWxfbW1pbykKQEAgLTQ1Niw3ICs0NTgsOCBAQCBzdGF0aWMgaW50IHJ1bihpbnQg c2Vjb25kcywKIAlpZiAoZ2VuIDwgNikKIAkJcmV0dXJuIElHVF9FWElUX1NLSVA7IC8qIE5lZWRz IEJDUyB0aW1lc3RhbXAgKi8KIAotCWludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0KGludGVsX2dl dF9wY2lfZGV2aWNlKCksIGZhbHNlLCBmZCk7CisJaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQo Jm1taW9fZGF0YSwgaW50ZWxfZ2V0X3BjaV9kZXZpY2UoKSwgZmFsc2UsIGZkKTsKKwlpZ3RfZ2xv YmFsX21taW8gPSBtbWlvX2RhdGEuaWd0X21taW87CiAKIAlpZiAoZ2VuID09IDYpCiAJCXRpbWVz dGFtcF9yZWcgPSBSRUcoUkNTX1RJTUVTVEFNUCk7CmRpZmYgLS1naXQgYS9iZW5jaG1hcmtzL2dl bV93c2ltLmMgYi9iZW5jaG1hcmtzL2dlbV93c2ltLmMKaW5kZXggYWZiOTY0NGQuLjg2YWY1OGNi IDEwMDY0NAotLS0gYS9iZW5jaG1hcmtzL2dlbV93c2ltLmMKKysrIGIvYmVuY2htYXJrcy9nZW1f d3NpbS5jCkBAIC0yMDYsNiArMjA2LDkgQEAgc3RydWN0IHdvcmtsb2FkCiAJfSBidXN5X2JhbGFu Y2VyOwogfTsKIAordm9pZCAqaWd0X2dsb2JhbF9tbWlvOworc3RhdGljIHN0cnVjdCBfbW1pb19k YXRhIG1taW9fZGF0YTsKKwogc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBub3BfY2FsaWJyYXRp b25fdXMgPSAxMDAwOwogc3RhdGljIHVuc2lnbmVkIGxvbmcgbm9wX2NhbGlicmF0aW9uOwogCkBA IC0yMjIzLDcgKzIyMjYsOCBAQCBzdGF0aWMgdm9pZCBpbml0X2Nsb2Nrcyh2b2lkKQogCXVpbnQz Ml90IHJjc19zdGFydCwgcmNzX2VuZDsKIAlkb3VibGUgb3ZlcmhlYWQsIHQ7CiAKLQlpbnRlbF9y ZWdpc3Rlcl9hY2Nlc3NfaW5pdChpbnRlbF9nZXRfcGNpX2RldmljZSgpLCBmYWxzZSwgZmQpOwor CWludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0KCZtbWlvX2RhdGEsIGludGVsX2dldF9wY2lfZGV2 aWNlKCksIGZhbHNlLCBmZCk7CisJaWd0X2dsb2JhbF9tbWlvID0gbW1pb19kYXRhLmlndF9tbWlv OwogCiAJaWYgKHZlcmJvc2UgPD0gMSkKIAkJcmV0dXJuOwpkaWZmIC0tZ2l0IGEvbGliL2ludGVs X2lvLmggYi9saWIvaW50ZWxfaW8uaAppbmRleCAyN2Y3ZTc2Ni4uZDk4Mzk3YWYgMTAwNjQ0Ci0t LSBhL2xpYi9pbnRlbF9pby5oCisrKyBiL2xpYi9pbnRlbF9pby5oCkBAIC0zMCwxNyArMzAsNDEg QEAKIAogI2luY2x1ZGUgPHN0ZGludC5oPgogI2luY2x1ZGUgPHBjaWFjY2Vzcy5oPgorI2luY2x1 ZGUgPHN0ZGJvb2wuaD4KIAogLyogcmVnaXN0ZXIgYWNjZXNzIGhlbHBlcnMgZnJvbSBpbnRlbF9t bWlvLmMgKi8KLWV4dGVybiB2b2lkICppZ3RfZ2xvYmFsX21taW87Ci12b2lkIGludGVsX21taW9f dXNlX3BjaV9iYXIoc3RydWN0IHBjaV9kZXZpY2UgKnBjaV9kZXYsIGludCBmZCk7Ci12b2lkIGlu dGVsX21taW9fdXNlX2R1bXBfZmlsZShjaGFyICpmaWxlKTsKK3N0cnVjdCBpbnRlbF9yZWdpc3Rl cl9yYW5nZSB7CisJdWludDMyX3QgYmFzZTsKKwl1aW50MzJfdCBzaXplOworCXVpbnQzMl90IGZs YWdzOworfTsKKworc3RydWN0IGludGVsX3JlZ2lzdGVyX21hcCB7CisJc3RydWN0IGludGVsX3Jl Z2lzdGVyX3JhbmdlICptYXA7CisJdWludDMyX3QgdG9wOworCXVpbnQzMl90IGFsaWdubWVudF9t YXNrOworfTsKKworc3RydWN0IF9tbWlvX2RhdGEgeworCWludCBpbml0ZWQ7CisJYm9vbCBzYWZl OworCXVpbnQzMl90IGk5MTVfZGV2aWQ7CisJc3RydWN0IGludGVsX3JlZ2lzdGVyX21hcCBtYXA7 CisJaW50IGtleTsKKwl2b2lkICppZ3RfbW1pbzsKK307CisKK3ZvaWQgaW50ZWxfbW1pb191c2Vf cGNpX2JhcihzdHJ1Y3QgX21taW9fZGF0YSAqbW1pb19kYXRhLAorCQkJICAgIHN0cnVjdCBwY2lf ZGV2aWNlICpwY2lfZGV2LCBpbnQgZmQpOwordm9pZCBpbnRlbF9tbWlvX3VzZV9kdW1wX2ZpbGUo c3RydWN0IF9tbWlvX2RhdGEgKm1taW9fZGF0YSwgY2hhciAqZmlsZSk7CiAKLWludCBpbnRlbF9y ZWdpc3Rlcl9hY2Nlc3NfaW5pdChzdHJ1Y3QgcGNpX2RldmljZSAqcGNpX2RldiwgaW50IHNhZmUs IGludCBmZCk7Ci12b2lkIGludGVsX3JlZ2lzdGVyX2FjY2Vzc19maW5pKHZvaWQpOwotdWludDMy X3QgaW50ZWxfcmVnaXN0ZXJfcmVhZCh1aW50MzJfdCByZWcpOwotdm9pZCBpbnRlbF9yZWdpc3Rl cl93cml0ZSh1aW50MzJfdCByZWcsIHVpbnQzMl90IHZhbCk7Ci1pbnQgaW50ZWxfcmVnaXN0ZXJf YWNjZXNzX25lZWRzX2Zha2V3YWtlKHZvaWQpOworaW50IGludGVsX3JlZ2lzdGVyX2FjY2Vzc19p bml0KHN0cnVjdCBfbW1pb19kYXRhICptbWlvX2RhdGEsCisJCQkgICAgICAgc3RydWN0IHBjaV9k ZXZpY2UgKnBjaV9kZXYsIGludCBzYWZlLCBpbnQgZmQpOwordm9pZCBpbnRlbF9yZWdpc3Rlcl9h Y2Nlc3NfZmluaShzdHJ1Y3QgX21taW9fZGF0YSAqbW1pb19kYXRhKTsKK3VpbnQzMl90IGludGVs X3JlZ2lzdGVyX3JlYWQoc3RydWN0IF9tbWlvX2RhdGEgKm1taW9fZGF0YSwgdWludDMyX3QgcmVn KTsKK3ZvaWQgaW50ZWxfcmVnaXN0ZXJfd3JpdGUoc3RydWN0IF9tbWlvX2RhdGEgKm1taW9fZGF0 YSwgdWludDMyX3QgcmVnLAorCQkJICB1aW50MzJfdCB2YWwpOworaW50IGludGVsX3JlZ2lzdGVy X2FjY2Vzc19uZWVkc19mYWtld2FrZShzdHJ1Y3QgX21taW9fZGF0YSAqbW1pb19kYXRhKTsKIAog dWludDMyX3QgSU5SRUcodm9pZCAqaWd0X21taW8sIHVpbnQzMl90IHJlZyk7CiB1aW50MTZfdCBJ TlJFRzE2KHZvaWQgKmlndF9tbWlvLCB1aW50MzJfdCByZWcpOwpAQCAtNTAsMTcgKzc0LDI0IEBA IHZvaWQgT1VUUkVHMTYodm9pZCAqaWd0X21taW8sIHVpbnQzMl90IHJlZywgdWludDE2X3QgdmFs KTsKIHZvaWQgT1VUUkVHOCh2b2lkICppZ3RfbW1pbywgdWludDMyX3QgcmVnLCB1aW50OF90IHZh bCk7CiAKIC8qIHNpZGViYW5kIGFjY2VzcyBmdW5jdGlvbnMgZnJvbSBpbnRlbF9pb3NmLmMgKi8K LXVpbnQzMl90IGludGVsX2RwaW9fcmVnX3JlYWQodWludDMyX3QgcmVnLCBpbnQgcGh5KTsKLXZv aWQgaW50ZWxfZHBpb19yZWdfd3JpdGUodWludDMyX3QgcmVnLCB1aW50MzJfdCB2YWwsIGludCBw aHkpOwotdWludDMyX3QgaW50ZWxfZmxpc2RzaV9yZWdfcmVhZCh1aW50MzJfdCByZWcpOwotdm9p ZCBpbnRlbF9mbGlzZHNpX3JlZ193cml0ZSh1aW50MzJfdCByZWcsIHVpbnQzMl90IHZhbCk7Ci11 aW50MzJfdCBpbnRlbF9pb3NmX3NiX3JlYWQodWludDMyX3QgcG9ydCwgdWludDMyX3QgcmVnKTsK LXZvaWQgaW50ZWxfaW9zZl9zYl93cml0ZSh1aW50MzJfdCBwb3J0LCB1aW50MzJfdCByZWcsIHVp bnQzMl90IHZhbCk7Cit1aW50MzJfdCBpbnRlbF9kcGlvX3JlZ19yZWFkKHN0cnVjdCBfbW1pb19k YXRhICptbWlvX2RhdGEsIHVpbnQzMl90IHJlZywKKwkJCSAgICAgaW50IHBoeSk7Cit2b2lkIGlu dGVsX2RwaW9fcmVnX3dyaXRlKHN0cnVjdCBfbW1pb19kYXRhICptbWlvX2RhdGEsIHVpbnQzMl90 IHJlZywKKwkJCSAgdWludDMyX3QgdmFsLCBpbnQgcGh5KTsKK3VpbnQzMl90IGludGVsX2ZsaXNk c2lfcmVnX3JlYWQoc3RydWN0IF9tbWlvX2RhdGEgKm1taW9fZGF0YSwgdWludDMyX3QgcmVnKTsK K3ZvaWQgaW50ZWxfZmxpc2RzaV9yZWdfd3JpdGUoc3RydWN0IF9tbWlvX2RhdGEgKm1taW9fZGF0 YSwgdWludDMyX3QgcmVnLAorCQkJICAgICB1aW50MzJfdCB2YWwpOwordWludDMyX3QgaW50ZWxf aW9zZl9zYl9yZWFkKHN0cnVjdCBfbW1pb19kYXRhICptbWlvX2RhdGEsIHVpbnQzMl90IHBvcnQs CisJCQkgICAgdWludDMyX3QgcmVnKTsKK3ZvaWQgaW50ZWxfaW9zZl9zYl93cml0ZShzdHJ1Y3Qg X21taW9fZGF0YSAqbW1pb19kYXRhLCB1aW50MzJfdCBwb3J0LAorCQkJIHVpbnQzMl90IHJlZywg dWludDMyX3QgdmFsKTsKIAotaW50IGludGVsX3B1bml0X3JlYWQodWludDMyX3QgYWRkciwgdWlu dDMyX3QgKnZhbCk7Ci1pbnQgaW50ZWxfcHVuaXRfd3JpdGUodWludDMyX3QgYWRkciwgdWludDMy X3QgdmFsKTsKLWludCBpbnRlbF9uY19yZWFkKHVpbnQzMl90IGFkZHIsIHVpbnQzMl90ICp2YWwp OwotaW50IGludGVsX25jX3dyaXRlKHVpbnQzMl90IGFkZHIsIHVpbnQzMl90IHZhbCk7CitpbnQg aW50ZWxfcHVuaXRfcmVhZChzdHJ1Y3QgX21taW9fZGF0YSAqbW1pb19kYXRhLCB1aW50MzJfdCBh ZGRyLAorCQkgICAgIHVpbnQzMl90ICp2YWwpOworaW50IGludGVsX3B1bml0X3dyaXRlKHN0cnVj dCBfbW1pb19kYXRhICptbWlvX2RhdGEsIHVpbnQzMl90IGFkZHIsCisJCSAgICAgIHVpbnQzMl90 IHZhbCk7CitpbnQgaW50ZWxfbmNfcmVhZChzdHJ1Y3QgX21taW9fZGF0YSAqbW1pb19kYXRhLCB1 aW50MzJfdCBhZGRyLCB1aW50MzJfdCAqdmFsKTsKK2ludCBpbnRlbF9uY193cml0ZShzdHJ1Y3Qg X21taW9fZGF0YSAqbW1pb19kYXRhLCB1aW50MzJfdCBhZGRyLCB1aW50MzJfdCB2YWwpOwogCiAv KiByZWdpc3RlciBtYXBzIGZyb20gaW50ZWxfcmVnX21hcC5jICovCiAjaWZuZGVmIF9fR1RLX0RP Q19JR05PUkVfXwpAQCAtNzEsMTcgKzEwMiw4IEBAIGludCBpbnRlbF9uY193cml0ZSh1aW50MzJf dCBhZGRyLCB1aW50MzJfdCB2YWwpOwogI2RlZmluZSBJTlRFTF9SQU5HRV9SVwkJKElOVEVMX1JB TkdFX1JFQUQgfCBJTlRFTF9SQU5HRV9XUklURSkKICNkZWZpbmUgSU5URUxfUkFOR0VfRU5ECQko MTw8MzEpCiAKLXN0cnVjdCBpbnRlbF9yZWdpc3Rlcl9yYW5nZSB7Ci0JdWludDMyX3QgYmFzZTsK LQl1aW50MzJfdCBzaXplOwotCXVpbnQzMl90IGZsYWdzOwotfTsKIAotc3RydWN0IGludGVsX3Jl Z2lzdGVyX21hcCB7Ci0Jc3RydWN0IGludGVsX3JlZ2lzdGVyX3JhbmdlICptYXA7Ci0JdWludDMy X3QgdG9wOwotCXVpbnQzMl90IGFsaWdubWVudF9tYXNrOwotfTsKKy8vc3RhdGljIHN0cnVjdCBf bW1pb19kYXRhIG1taW9fZGF0YTsKIHN0cnVjdCBpbnRlbF9yZWdpc3Rlcl9tYXAgaW50ZWxfZ2V0 X3JlZ2lzdGVyX21hcCh1aW50MzJfdCBkZXZpZCk7CiBzdHJ1Y3QgaW50ZWxfcmVnaXN0ZXJfcmFu Z2UgKmludGVsX2dldF9yZWdpc3Rlcl9yYW5nZShzdHJ1Y3QgaW50ZWxfcmVnaXN0ZXJfbWFwIG1h cCwgdWludDMyX3Qgb2Zmc2V0LCB1aW50MzJfdCBtb2RlKTsKICNlbmRpZiAvKiBfX0dUS19ET0Nf SUdOT1JFX18gKi8KZGlmZiAtLWdpdCBhL2xpYi9pbnRlbF9pb3NmLmMgYi9saWIvaW50ZWxfaW9z Zi5jCmluZGV4IDNiNWExMzcwLi4yZTIzZGQyOSAxMDA2NDQKLS0tIGEvbGliL2ludGVsX2lvc2Yu YworKysgYi9saWIvaW50ZWxfaW9zZi5jCkBAIC0xOSw4ICsxOSw4IEBACiAvKiBQcml2YXRlIHJl Z2lzdGVyIHdyaXRlLCBkb3VibGUtd29yZCBhZGRyZXNzaW5nLCBub24tcG9zdGVkICovCiAjZGVm aW5lIFNCX0NSV1JEQV9OUCAgIDB4MDcKIAotc3RhdGljIGludCB2bHZfc2lkZWJhbmRfcncodWlu dDMyX3QgcG9ydCwgdWludDhfdCBvcGNvZGUsIHVpbnQzMl90IGFkZHIsCi0JCQkgICB1aW50MzJf dCAqdmFsKQorc3RhdGljIGludCB2bHZfc2lkZWJhbmRfcncoc3RydWN0IF9tbWlvX2RhdGEgKm1t aW9fZGF0YSwgdWludDMyX3QgcG9ydCwKKwkJCSAgIHVpbnQ4X3Qgb3Bjb2RlLCB1aW50MzJfdCBh ZGRyLCB1aW50MzJfdCAqdmFsKQogewogCWludCB0aW1lb3V0ID0gMDsKIAl1aW50MzJfdCBjbWQs IGRldmZuLCBiZSwgYmFyOwpAQCAtMzQsMjIgKzM0LDI0IEBAIHN0YXRpYyBpbnQgdmx2X3NpZGVi YW5kX3J3KHVpbnQzMl90IHBvcnQsIHVpbnQ4X3Qgb3Bjb2RlLCB1aW50MzJfdCBhZGRyLAogCQko cG9ydCA8PCBJT1NGX1BPUlRfU0hJRlQpIHwgKGJlIDw8IElPU0ZfQllURV9FTkFCTEVTX1NISUZU KSB8CiAJCShiYXIgPDwgSU9TRl9CQVJfU0hJRlQpOwogCi0JaWYgKGludGVsX3JlZ2lzdGVyX3Jl YWQoVkxWX0lPU0ZfRE9PUkJFTExfUkVRKSAmIElPU0ZfU0JfQlVTWSkgeworCWlmIChpbnRlbF9y ZWdpc3Rlcl9yZWFkKG1taW9fZGF0YSwgVkxWX0lPU0ZfRE9PUkJFTExfUkVRKSAmCisJICAgIElP U0ZfU0JfQlVTWSkgewogCQlpZ3Rfd2Fybigid2FybmluZzogcGNvZGUgKCVzKSBtYWlsYm94IGFj Y2VzcyBmYWlsZWRcbiIsIGlzX3JlYWQgPyAicmVhZCIgOiAid3JpdGUiKTsKIAkJcmV0dXJuIC1F QUdBSU47CiAJfQogCi0JaW50ZWxfcmVnaXN0ZXJfd3JpdGUoVkxWX0lPU0ZfQUREUiwgYWRkcik7 CisJaW50ZWxfcmVnaXN0ZXJfd3JpdGUobW1pb19kYXRhLCBWTFZfSU9TRl9BRERSLCBhZGRyKTsK IAlpZiAoIWlzX3JlYWQpCi0JCWludGVsX3JlZ2lzdGVyX3dyaXRlKFZMVl9JT1NGX0RBVEEsICp2 YWwpOworCQlpbnRlbF9yZWdpc3Rlcl93cml0ZShtbWlvX2RhdGEsIFZMVl9JT1NGX0RBVEEsICp2 YWwpOwogCi0JaW50ZWxfcmVnaXN0ZXJfd3JpdGUoVkxWX0lPU0ZfRE9PUkJFTExfUkVRLCBjbWQp OworCWludGVsX3JlZ2lzdGVyX3dyaXRlKG1taW9fZGF0YSwgVkxWX0lPU0ZfRE9PUkJFTExfUkVR LCBjbWQpOwogCiAJZG8gewogCQl1c2xlZXAoMSk7CiAJCXRpbWVvdXQrKzsKLQl9IHdoaWxlIChp bnRlbF9yZWdpc3Rlcl9yZWFkKFZMVl9JT1NGX0RPT1JCRUxMX1JFUSkgJiBJT1NGX1NCX0JVU1kg JiYKLQkJIHRpbWVvdXQgPCBUSU1FT1VUX1VTKTsKKwl9IHdoaWxlIChpbnRlbF9yZWdpc3Rlcl9y ZWFkKG1taW9fZGF0YS0+aWd0X21taW8sCisJCQkJICAgICBWTFZfSU9TRl9ET09SQkVMTF9SRVEp ICYKKwkJSU9TRl9TQl9CVVNZICYmIHRpbWVvdXQgPCBUSU1FT1VUX1VTKTsKIAogCWlmICh0aW1l b3V0ID49IFRJTUVPVVRfVVMpIHsKIAkJaWd0X3dhcm4oInRpbWVvdXQgd2FpdGluZyBmb3IgcGNv ZGUgJXMgKCVkKSB0byBmaW5pc2hcbiIsIGlzX3JlYWQgPyAicmVhZCIgOiAid3JpdGUiLCBhZGRy KTsKQEAgLTU3LDggKzU5LDggQEAgc3RhdGljIGludCB2bHZfc2lkZWJhbmRfcncodWludDMyX3Qg cG9ydCwgdWludDhfdCBvcGNvZGUsIHVpbnQzMl90IGFkZHIsCiAJfQogCiAJaWYgKGlzX3JlYWQp Ci0JCSp2YWwgPSBpbnRlbF9yZWdpc3Rlcl9yZWFkKFZMVl9JT1NGX0RBVEEpOwotCWludGVsX3Jl Z2lzdGVyX3dyaXRlKFZMVl9JT1NGX0RBVEEsIDApOworCQkqdmFsID0gaW50ZWxfcmVnaXN0ZXJf cmVhZChtbWlvX2RhdGEtPmlndF9tbWlvLCBWTFZfSU9TRl9EQVRBKTsKKwlpbnRlbF9yZWdpc3Rl cl93cml0ZShtbWlvX2RhdGEtPmlndF9tbWlvLCBWTFZfSU9TRl9EQVRBLCAwKTsKIAogCXJldHVy biAwOwogfQpAQCAtNzMsOSArNzUsMTAgQEAgc3RhdGljIGludCB2bHZfc2lkZWJhbmRfcncodWlu dDMyX3QgcG9ydCwgdWludDhfdCBvcGNvZGUsIHVpbnQzMl90IGFkZHIsCiAgKiBSZXR1cm5zOgog ICogMCB3aGVuIHRoZSByZWdpc3RlciBhY2Nlc3Mgc3VjY2VlZGVkLCBuZWdhdGl2ZSBlcnJubyBj b2RlIG9uIGZhaWx1cmUuCiAgKi8KLWludCBpbnRlbF9wdW5pdF9yZWFkKHVpbnQzMl90IGFkZHIs IHVpbnQzMl90ICp2YWwpCitpbnQgaW50ZWxfcHVuaXRfcmVhZChzdHJ1Y3QgX21taW9fZGF0YSAq bW1pb19kYXRhLCB1aW50MzJfdCBhZGRyLCB1aW50MzJfdCAqdmFsKQogewotCXJldHVybiB2bHZf c2lkZWJhbmRfcncoSU9TRl9QT1JUX1BVTklULCBTQl9DUlJEREFfTlAsIGFkZHIsIHZhbCk7CisJ cmV0dXJuIHZsdl9zaWRlYmFuZF9ydyhtbWlvX2RhdGEsIElPU0ZfUE9SVF9QVU5JVCwgU0JfQ1JS RERBX05QLCBhZGRyLAorCQkJICAgICAgIHZhbCk7CiB9CiAKIC8qKgpAQCAtODgsOSArOTEsMTAg QEAgaW50IGludGVsX3B1bml0X3JlYWQodWludDMyX3QgYWRkciwgdWludDMyX3QgKnZhbCkKICAq IFJldHVybnM6CiAgKiAwIHdoZW4gdGhlIHJlZ2lzdGVyIGFjY2VzcyBzdWNjZWVkZWQsIG5lZ2F0 aXZlIGVycm5vIGNvZGUgb24gZmFpbHVyZS4KICAqLwotaW50IGludGVsX3B1bml0X3dyaXRlKHVp bnQzMl90IGFkZHIsIHVpbnQzMl90IHZhbCkKK2ludCBpbnRlbF9wdW5pdF93cml0ZShzdHJ1Y3Qg X21taW9fZGF0YSAqbW1pb19kYXRhLCB1aW50MzJfdCBhZGRyLCB1aW50MzJfdCB2YWwpCiB7Ci0J cmV0dXJuIHZsdl9zaWRlYmFuZF9ydyhJT1NGX1BPUlRfUFVOSVQsIFNCX0NSV1JEQV9OUCwgYWRk ciwgJnZhbCk7CisJcmV0dXJuIHZsdl9zaWRlYmFuZF9ydyhtbWlvX2RhdGEsIElPU0ZfUE9SVF9Q VU5JVCwgU0JfQ1JXUkRBX05QLCBhZGRyLAorCQkJICAgICAgICZ2YWwpOwogfQogCiAvKioKQEAg LTEwMyw5ICsxMDcsMTAgQEAgaW50IGludGVsX3B1bml0X3dyaXRlKHVpbnQzMl90IGFkZHIsIHVp bnQzMl90IHZhbCkKICAqIFJldHVybnM6CiAgKiAwIHdoZW4gdGhlIHJlZ2lzdGVyIGFjY2VzcyBz dWNjZWVkZWQsIG5lZ2F0aXZlIGVycm5vIGNvZGUgb24gZmFpbHVyZS4KICAqLwotaW50IGludGVs X25jX3JlYWQodWludDMyX3QgYWRkciwgdWludDMyX3QgKnZhbCkKK2ludCBpbnRlbF9uY19yZWFk KHN0cnVjdCBfbW1pb19kYXRhICptbWlvX2RhdGEsIHVpbnQzMl90IGFkZHIsIHVpbnQzMl90ICp2 YWwpCiB7Ci0JcmV0dXJuIHZsdl9zaWRlYmFuZF9ydyhJT1NGX1BPUlRfTkMsIFNCX0NSUkREQV9O UCwgYWRkciwgdmFsKTsKKwlyZXR1cm4gdmx2X3NpZGViYW5kX3J3KG1taW9fZGF0YSwgSU9TRl9Q T1JUX05DLCBTQl9DUlJEREFfTlAsIGFkZHIsCisJCQkgICAgICAgdmFsKTsKIH0KIAogLyoqCkBA IC0xMTgsOSArMTIzLDEwIEBAIGludCBpbnRlbF9uY19yZWFkKHVpbnQzMl90IGFkZHIsIHVpbnQz Ml90ICp2YWwpCiAgKiBSZXR1cm5zOgogICogMCB3aGVuIHRoZSByZWdpc3RlciBhY2Nlc3Mgc3Vj Y2VlZGVkLCBuZWdhdGl2ZSBlcnJubyBjb2RlIG9uIGZhaWx1cmUuCiAgKi8KLWludCBpbnRlbF9u Y193cml0ZSh1aW50MzJfdCBhZGRyLCB1aW50MzJfdCB2YWwpCitpbnQgaW50ZWxfbmNfd3JpdGUo c3RydWN0IF9tbWlvX2RhdGEgKm1taW9fZGF0YSwgdWludDMyX3QgYWRkciwgdWludDMyX3QgdmFs KQogewotCXJldHVybiB2bHZfc2lkZWJhbmRfcncoSU9TRl9QT1JUX05DLCBTQl9DUldSREFfTlAs IGFkZHIsICZ2YWwpOworCXJldHVybiB2bHZfc2lkZWJhbmRfcncobW1pb19kYXRhLCBJT1NGX1BP UlRfTkMsIFNCX0NSV1JEQV9OUCwgYWRkciwKKwkJCSAgICAgICAmdmFsKTsKIH0KIAogLyoqCkBA IC0xMzMsMTQgKzEzOSwxNiBAQCBpbnQgaW50ZWxfbmNfd3JpdGUodWludDMyX3QgYWRkciwgdWlu dDMyX3QgdmFsKQogICogUmV0dXJuczoKICAqIFRoZSB2YWx1ZSByZWFkIGZyb20gdGhlIHJlZ2lz dGVyLgogICovCi11aW50MzJfdCBpbnRlbF9kcGlvX3JlZ19yZWFkKHVpbnQzMl90IHJlZywgaW50 IHBoeSkKK3VpbnQzMl90IGludGVsX2RwaW9fcmVnX3JlYWQoc3RydWN0IF9tbWlvX2RhdGEgKm1t aW9fZGF0YSwgdWludDMyX3QgcmVnLCBpbnQgcGh5KQogewogCXVpbnQzMl90IHZhbDsKIAogCWlm IChwaHkgPT0gMCkKLQkJdmx2X3NpZGViYW5kX3J3KElPU0ZfUE9SVF9EUElPLCBTQl9NUkRfTlAs IHJlZywgJnZhbCk7CisJCXZsdl9zaWRlYmFuZF9ydyhtbWlvX2RhdGEsIElPU0ZfUE9SVF9EUElP LCBTQl9NUkRfTlAsIHJlZywKKwkJCQkmdmFsKTsKIAllbHNlCi0JCXZsdl9zaWRlYmFuZF9ydyhJ T1NGX1BPUlRfRFBJT18yLCBTQl9NUkRfTlAsIHJlZywgJnZhbCk7CisJCXZsdl9zaWRlYmFuZF9y dyhtbWlvX2RhdGEsIElPU0ZfUE9SVF9EUElPXzIsIFNCX01SRF9OUCwgcmVnLAorCQkJCSZ2YWwp OwogCXJldHVybiB2YWw7CiB9CiAKQEAgLTE1MiwzOCArMTYwLDQwIEBAIHVpbnQzMl90IGludGVs X2RwaW9fcmVnX3JlYWQodWludDMyX3QgcmVnLCBpbnQgcGh5KQogICoKICAqIDMyLWJpdCB3cml0 ZSBvZiB0aGUgcmVnaXN0ZXIgYXQgQG9mZnNldCB0aHJvdWdoIHRoZSBEUElPIHNpZGViYW5kIHBv cnQuCiAgKi8KLXZvaWQgaW50ZWxfZHBpb19yZWdfd3JpdGUodWludDMyX3QgcmVnLCB1aW50MzJf dCB2YWwsIGludCBwaHkpCit2b2lkIGludGVsX2RwaW9fcmVnX3dyaXRlKHN0cnVjdCBfbW1pb19k YXRhICptbWlvX2RhdGEsIHVpbnQzMl90IHJlZywgdWludDMyX3QgdmFsLCBpbnQgcGh5KQogewog CWlmIChwaHkgPT0gMCkKLQkJdmx2X3NpZGViYW5kX3J3KElPU0ZfUE9SVF9EUElPLCBTQl9NV1Jf TlAsIHJlZywgJnZhbCk7CisJCXZsdl9zaWRlYmFuZF9ydyhtbWlvX2RhdGEsIElPU0ZfUE9SVF9E UElPLCBTQl9NV1JfTlAsIHJlZywgJnZhbCk7CiAJZWxzZQotCQl2bHZfc2lkZWJhbmRfcncoSU9T Rl9QT1JUX0RQSU9fMiwgU0JfTVdSX05QLCByZWcsICZ2YWwpOworCQl2bHZfc2lkZWJhbmRfcnco bW1pb19kYXRhLCBJT1NGX1BPUlRfRFBJT18yLCBTQl9NV1JfTlAsIHJlZywKKwkJCQkmdmFsKTsK IH0KIAotdWludDMyX3QgaW50ZWxfZmxpc2RzaV9yZWdfcmVhZCh1aW50MzJfdCByZWcpCit1aW50 MzJfdCBpbnRlbF9mbGlzZHNpX3JlZ19yZWFkKHN0cnVjdCBfbW1pb19kYXRhICptbWlvX2RhdGEs IHVpbnQzMl90IHJlZykKIHsKIAl1aW50MzJfdCB2YWwgPSAwOwogCi0Jdmx2X3NpZGViYW5kX3J3 KElPU0ZfUE9SVF9GTElTRFNJLCBTQl9DUlJEREFfTlAsIHJlZywgJnZhbCk7CisJdmx2X3NpZGVi YW5kX3J3KG1taW9fZGF0YSwgSU9TRl9QT1JUX0ZMSVNEU0ksIFNCX0NSUkREQV9OUCwgcmVnLCAm dmFsKTsKIAogCXJldHVybiB2YWw7CiB9CiAKLXZvaWQgaW50ZWxfZmxpc2RzaV9yZWdfd3JpdGUo dWludDMyX3QgcmVnLCB1aW50MzJfdCB2YWwpCit2b2lkIGludGVsX2ZsaXNkc2lfcmVnX3dyaXRl KHN0cnVjdCBfbW1pb19kYXRhICptbWlvX2RhdGEsIHVpbnQzMl90IHJlZywgdWludDMyX3QgdmFs KQogewotCXZsdl9zaWRlYmFuZF9ydyhJT1NGX1BPUlRfRkxJU0RTSSwgU0JfQ1JXUkRBX05QLCBy ZWcsICZ2YWwpOworCXZsdl9zaWRlYmFuZF9ydyhtbWlvX2RhdGEsIElPU0ZfUE9SVF9GTElTRFNJ LCBTQl9DUldSREFfTlAsIHJlZywgJnZhbCk7CiB9CiAKLXVpbnQzMl90IGludGVsX2lvc2Zfc2Jf cmVhZCh1aW50MzJfdCBwb3J0LCB1aW50MzJfdCByZWcpCit1aW50MzJfdCBpbnRlbF9pb3NmX3Ni X3JlYWQoc3RydWN0IF9tbWlvX2RhdGEgKm1taW9fZGF0YSwgdWludDMyX3QgcG9ydCwgdWludDMy X3QgcmVnKQogewogCXVpbnQzMl90IHZhbDsKIAotCXZsdl9zaWRlYmFuZF9ydyhwb3J0LCBTQl9D UlJEREFfTlAsIHJlZywgJnZhbCk7CisJdmx2X3NpZGViYW5kX3J3KG1taW9fZGF0YSwgcG9ydCwg U0JfQ1JSRERBX05QLCByZWcsICZ2YWwpOwogCiAJcmV0dXJuIHZhbDsKIH0KIAotdm9pZCBpbnRl bF9pb3NmX3NiX3dyaXRlKHVpbnQzMl90IHBvcnQsIHVpbnQzMl90IHJlZywgdWludDMyX3QgdmFs KQordm9pZCBpbnRlbF9pb3NmX3NiX3dyaXRlKHN0cnVjdCBfbW1pb19kYXRhICptbWlvX2RhdGEs IHVpbnQzMl90IHBvcnQsCisJCQkgdWludDMyX3QgcmVnLCB1aW50MzJfdCB2YWwpCiB7Ci0Jdmx2 X3NpZGViYW5kX3J3KHBvcnQsIFNCX0NSV1JEQV9OUCwgcmVnLCAmdmFsKTsKKwl2bHZfc2lkZWJh bmRfcncobW1pb19kYXRhLCBwb3J0LCBTQl9DUldSREFfTlAsIHJlZywgJnZhbCk7CiB9CmRpZmYg LS1naXQgYS9saWIvaW50ZWxfbW1pby5jIGIvbGliL2ludGVsX21taW8uYwppbmRleCA4YmE2MGQ4 NS4uMTA3YzI3OTkgMTAwNjQ0Ci0tLSBhL2xpYi9pbnRlbF9tbWlvLmMKKysrIGIvbGliL2ludGVs X21taW8uYwpAQCAtNjYsMzIgKzY2LDE3IEBACiAKICNkZWZpbmUgRkFLRUtFWSAweDI0NjhhY2Uw CiAKLS8qKgotICogaWd0X2dsb2JhbF9tbWlvOgotICoKLSAqIFBvaW50ZXIgdG8gdGhlIHJlZ2lz dGVyIHJhbmdlLCBpbml0aWFsaXplZCB1c2luZyBpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfaW5pdCgp Ci0gKiBvciBpbnRlbF9tbWlvX3VzZV9kdW1wX2ZpbGUoKS4gSXQgaXMgbm90IHJlY29tbWVuZGVk IHRvIHVzZSB0aGlzIGRpcmVjdGx5LgotICovCi12b2lkICppZ3RfZ2xvYmFsX21taW87Ci0KLXN0 YXRpYyBzdHJ1Y3QgX21taW9fZGF0YSB7Ci0JaW50IGluaXRlZDsKLQlib29sIHNhZmU7Ci0JdWlu dDMyX3QgaTkxNV9kZXZpZDsKLQlzdHJ1Y3QgaW50ZWxfcmVnaXN0ZXJfbWFwIG1hcDsKLQlpbnQg a2V5OwotfSBtbWlvX2RhdGE7Ci0KIC8qKgogICogaW50ZWxfbW1pb191c2VfZHVtcF9maWxlOgor ICogQG1taW9fZGF0YTogIG1taW8gc3RydWN0dXJlIGZvciBJTyBvcGVyYXRpb25zCiAgKiBAZmls ZTogbmFtZSBvZiB0aGUgcmVnaXN0ZXIgZHVtcCBmaWxlIHRvIG9wZW4KICAqCi0gKiBTZXRzIHVw ICNpZ3RfZ2xvYmFsX21taW8gdG8gcG9pbnQgYXQgdGhlIGRhdGEgY29udGFpbmVkIGluIEBmaWxl LiBUaGlzIGFsbG93cwotICogdGhlIHNhbWUgY29kZSB0byBnZXQgcmV1c2VkIGZvciBkdW1waW5n IGFuZCBkZWNvZGluZyBmcm9tIHJ1bm5pbmcgaGFyZHdhcmUgYXMKLSAqIGZyb20gcmVnaXN0ZXIg ZHVtcHMuCisgKiBTZXRzIGFsc28gdXAgbW1pb19kYXRhLT5pZ3RfbW1pbyB0byBwb2ludCBhdCB0 aGUgZGF0YSBjb250YWluZWQKKyAqIGluIEBmaWxlLiBUaGlzIGFsbG93cyB0aGUgc2FtZSBjb2Rl IHRvIGdldCByZXVzZWQgZm9yIGR1bXBpbmcgYW5kIGRlY29kaW5nCisgKiBmcm9tIHJ1bm5pbmcg aGFyZHdhcmUgYXMgZnJvbSByZWdpc3RlciBkdW1wcy4KICAqLwogdm9pZAotaW50ZWxfbW1pb191 c2VfZHVtcF9maWxlKGNoYXIgKmZpbGUpCitpbnRlbF9tbWlvX3VzZV9kdW1wX2ZpbGUoc3RydWN0 IF9tbWlvX2RhdGEgKm1taW9fZGF0YSwgY2hhciAqZmlsZSkKIHsKIAlpbnQgZmQ7CiAJc3RydWN0 IHN0YXQgc3Q7CkBAIC0xMDEsMjIgKzg2LDIzIEBAIGludGVsX21taW9fdXNlX2R1bXBfZmlsZShj aGFyICpmaWxlKQogCQkgICAgICAiQ291bGRuJ3Qgb3BlbiAlc1xuIiwgZmlsZSk7CiAKIAlmc3Rh dChmZCwgJnN0KTsKLQlpZ3RfZ2xvYmFsX21taW8gPSBtbWFwKE5VTEwsIHN0LnN0X3NpemUsIFBS T1RfUkVBRHxQUk9UX1dSSVRFLCBNQVBfUFJJVkFURSwgZmQsIDApOwotCWlndF9mYWlsX29uX2Yo aWd0X2dsb2JhbF9tbWlvID09IE1BUF9GQUlMRUQsCisJbW1pb19kYXRhLT5pZ3RfbW1pbyA9IG1t YXAoTlVMTCwgc3Quc3Rfc2l6ZSwgUFJPVF9SRUFEfFBST1RfV1JJVEUsIE1BUF9QUklWQVRFLCBm ZCwgMCk7CisJaWd0X2ZhaWxfb25fZihtbWlvX2RhdGEtPmlndF9tbWlvID09IE1BUF9GQUlMRUQs CiAJCSAgICAgICJDb3VsZG4ndCBtbWFwICVzXG4iLCBmaWxlKTsKIAljbG9zZShmZCk7CiB9CiAK IC8qKgogICogaW50ZWxfbW1pb191c2VfcGNpX2JhcjoKKyAqIEBtbWlvX2RhdGE6ICBtbWlvIHN0 cnVjdHVyZSBmb3IgSU8gb3BlcmF0aW9ucwogICogQHBjaV9kZXY6IGludGVsIGdyYWNwaGlzIHBj aSBkZXZpY2UKICAqCi0gKiBTZXRzIHVwICNpZ3RfZ2xvYmFsX21taW8gdG8gcG9pbnQgYXQgdGhl IG1taW8gYmFyLgorICogRmlsbCBhIG1taW9fZGF0YSBzdHVjdHVyZSB3aXRoIGlndF9tbWlvIHRv IHBvaW50IGF0IHRoZSBtbWlvIGJhci4KICAqCiAgKiBAcGNpX2RldiBjYW4gYmUgb2J0YWluZWQg ZnJvbSBpbnRlbF9nZXRfcGNpX2RldmljZSgpLgogICovCiB2b2lkCi1pbnRlbF9tbWlvX3VzZV9w Y2lfYmFyKHN0cnVjdCBwY2lfZGV2aWNlICpwY2lfZGV2LCBpbnQgZmQpCitpbnRlbF9tbWlvX3Vz ZV9wY2lfYmFyKHN0cnVjdCBfbW1pb19kYXRhICptbWlvX2RhdGEgLHN0cnVjdCBwY2lfZGV2aWNl ICpwY2lfZGV2LCBpbnQgZmQpCiB7CiAJdWludDMyX3QgZGV2aWQsIGdlbjsKIAlpbnQgbW1pb19i YXIsIG1taW9fc2l6ZTsKQEAgLTE0NSwxNCArMTMxLDE0IEBAIGludGVsX21taW9fdXNlX3BjaV9i YXIoc3RydWN0IHBjaV9kZXZpY2UgKnBjaV9kZXYsIGludCBmZCkKIAkJCQkJICAgICBwY2lfZGV2 LT5yZWdpb25zW21taW9fYmFyXS5iYXNlX2FkZHIsCiAJCQkJCSAgICAgbW1pb19zaXplLAogCQkJ CQkgICAgIFBDSV9ERVZfTUFQX0ZMQUdfV1JJVEFCTEUsCi0JCQkJCSAgICAgJmlndF9nbG9iYWxf bW1pbyk7CisJCQkJCSAgICAgJm1taW9fZGF0YS0+aWd0X21taW8pOwogCiAJCWlndF9mYWlsX29u X2YoZXJyb3IgIT0gMCwgIkNvdWxkbid0IG1hcCBNTUlPIHJlZ2lvblxuIik7CiAJfSBlbHNlIHsK IAkJLyogVGhpcyBtZXRob2QgaXMgbXVjaCBtb3JlIGNvbnZlbmllbnQgd2hlbiB3ZSBoYXZlIG1h bnkKIAkJICogY29uY3VycmVudCBQQ0kgZGV2aWNlcwogCQkgKi8KLQkJaWd0X2dsb2JhbF9tbWlv ID0gaWd0X2RldmljZV9tYXBfcGNpX2Jhcl9yZWdpb24oZmQsIG1taW9fYmFyLAorCQltbWlvX2Rh dGEtPmlndF9tbWlvID0gaWd0X2RldmljZV9tYXBfcGNpX2Jhcl9yZWdpb24oZmQsIG1taW9fYmFy LAogCQkJCQkJCQltbWlvX3NpemUpOwogCQlpZ3RfZmFpbF9vbl9mKG1taW9fZGF0YS0+aWd0X21t aW8gPT0gTUFQX0ZBSUxFRCwKIAkJCSAgICAgICJDb3VsZG4ndCBtYXAgTU1JTyByZWdpb25cbiIp OwpAQCAtMTY4LDYgKzE1NCw3IEBAIHJlbGVhc2VfZm9yY2V3YWtlX2xvY2soaW50IGZkKQogCiAv KioKICAqIGludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0OgorICogQG1taW9fZGF0YTogIG1taW8g c3RydWN0dXJlIGZvciBJTyBvcGVyYXRpb25zCiAgKiBAcGNpX2RldjogaW50ZWwgZ3JhcGhpY3Mg cGNpIGRldmljZQogICogQHNhZmU6IHVzZSBzYWZlIHJlZ2lzdGVyIGFjY2VzcyB0YWJsZXMKICAq CkBAIC0xNzUsNzYgKzE2Miw3OSBAQCByZWxlYXNlX2ZvcmNld2FrZV9sb2NrKGludCBmZCkKICAq IGhhbmRsaW5nIGFuZCBhbHNvIGFsbG93cyByZWdpc3RlciBhY2Nlc3MgdG8gYmUgY2hlY2tlZCB3 aXRoIGFuIGV4cGxpY2l0CiAgKiB3aGl0ZWxpc3QuCiAgKgotICogSXQgYWxzbyBpbml0aWFsaXpl cyAjaWd0X2dsb2JhbF9tbWlvIGxpa2UgaW50ZWxfbW1pb191c2VfcGNpX2JhcigpLgorICogSXQg YWxzbyBpbml0aWFsaXplcyBtbWlvX2RhdGEtPmlndF9tbWlvIGxpa2UgaW50ZWxfbW1pb191c2Vf cGNpX2JhcigpLgogICoKICAqIEBwY2lfZGV2IGNhbiBiZSBvYnRhaW5lZCBmcm9tIGludGVsX2dl dF9wY2lfZGV2aWNlKCkuCiAgKi8KIGludAotaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQoc3Ry dWN0IHBjaV9kZXZpY2UgKnBjaV9kZXYsIGludCBzYWZlLCBpbnQgZmQpCitpbnRlbF9yZWdpc3Rl cl9hY2Nlc3NfaW5pdChzdHJ1Y3QgX21taW9fZGF0YSAqbW1pb19kYXRhLCBzdHJ1Y3QgcGNpX2Rl dmljZSAqcGNpX2RldiwgaW50IHNhZmUsIGludCBmZCkKIHsKIAlpbnQgcmV0OwogCiAJLyogYWZ0 ZXIgb2xkIEFQSSBpcyBkZXByZWNhdGVkLCByZW1vdmUgdGhpcyAqLwotCWlmIChpZ3RfZ2xvYmFs X21taW8gPT0gTlVMTCkKLQkJaW50ZWxfbW1pb191c2VfcGNpX2JhcihwY2lfZGV2LCBmZCk7CisJ aWYgKG1taW9fZGF0YS0+aWd0X21taW8gPT0gTlVMTCkKKwkJaW50ZWxfbW1pb191c2VfcGNpX2Jh cihtbWlvX2RhdGEsIHBjaV9kZXYsIGZkKTsKIAotCWlndF9hc3NlcnQoaWd0X2dsb2JhbF9tbWlv ICE9IE5VTEwpOworCWlndF9hc3NlcnQobW1pb19kYXRhLT5pZ3RfbW1pbyAhPSBOVUxMKTsKIAot CWlmIChtbWlvX2RhdGEuaW5pdGVkKQorCWlmIChtbWlvX2RhdGEtPmluaXRlZCkKIAkJcmV0dXJu IC0xOwogCi0JbW1pb19kYXRhLnNhZmUgPSAoc2FmZSAhPSAwICYmCisJbW1pb19kYXRhLT5zYWZl ID0gKHNhZmUgIT0gMCAmJgogCQkJaW50ZWxfZ2VuKHBjaV9kZXYtPmRldmljZV9pZCkgPj0gNCkg PyB0cnVlIDogZmFsc2U7Ci0JbW1pb19kYXRhLmk5MTVfZGV2aWQgPSBwY2lfZGV2LT5kZXZpY2Vf aWQ7Ci0JaWYgKG1taW9fZGF0YS5zYWZlKQotCQltbWlvX2RhdGEubWFwID0gaW50ZWxfZ2V0X3Jl Z2lzdGVyX21hcChtbWlvX2RhdGEuaTkxNV9kZXZpZCk7CisJbW1pb19kYXRhLT5pOTE1X2Rldmlk ID0gcGNpX2Rldi0+ZGV2aWNlX2lkOworCWlmIChtbWlvX2RhdGEtPnNhZmUpCisJCW1taW9fZGF0 YS0+bWFwID0gaW50ZWxfZ2V0X3JlZ2lzdGVyX21hcChtbWlvX2RhdGEtPmk5MTVfZGV2aWQpOwog CiAJLyogRmluZCB3aGVyZSB0aGUgZm9yY2V3YWtlIGxvY2sgaXMuIEZvcmNld2FrZSBkb2Vzbid0 IGV4aXN0CiAJICogZ2VuIDwgNiwgYnV0IHRoZSBkZWJ1Z2ZzIHNob3VsZCBkbyB0aGUgcmlnaHQg dGhpbmdzIGZvciB1cy4KIAkgKi8KIAlyZXQgPSBpZ3Rfb3Blbl9mb3JjZXdha2VfaGFuZGxlKGZk KTsKIAlpZiAocmV0ID09IC0xKQotCQltbWlvX2RhdGEua2V5ID0gRkFLRUtFWTsKKwkJbW1pb19k YXRhLT5rZXkgPSBGQUtFS0VZOwogCWVsc2UKLQkJbW1pb19kYXRhLmtleSA9IHJldDsKKwkJbW1p b19kYXRhLT5rZXkgPSByZXQ7CiAKLQltbWlvX2RhdGEuaW5pdGVkKys7CisJbW1pb19kYXRhLT5p bml0ZWQrKzsKIAlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGludAotaW50ZWxfcmVnaXN0ZXJfYWNj ZXNzX25lZWRzX3dha2Uodm9pZCkKK2ludGVsX3JlZ2lzdGVyX2FjY2Vzc19uZWVkc193YWtlKHN0 cnVjdCBfbW1pb19kYXRhICptbWlvX2RhdGEpCiB7Ci0JcmV0dXJuIG1taW9fZGF0YS5rZXkgIT0g RkFLRUtFWTsKKwlyZXR1cm4gbW1pb19kYXRhLT5rZXkgIT0gRkFLRUtFWTsKIH0KIAogLyoqCiAg KiBpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfbmVlZHNfZmFrZXdha2U6CisgKiBAbW1pb19kYXRhOiAg bW1pbyBzdHJ1Y3R1cmUgZm9yIElPIG9wZXJhdGlvbnMKICAqCiAgKiBSZXR1cm5zOgogICogTm9u LXplcm8gd2hlbiBmb3JjZXdha2UgaW5pdGlhbGl6YXRpb24gZmFpbGVkLgogICovCi1pbnQgaW50 ZWxfcmVnaXN0ZXJfYWNjZXNzX25lZWRzX2Zha2V3YWtlKHZvaWQpCitpbnQgaW50ZWxfcmVnaXN0 ZXJfYWNjZXNzX25lZWRzX2Zha2V3YWtlKHN0cnVjdCBfbW1pb19kYXRhICptbWlvX2RhdGEpCiB7 Ci0JcmV0dXJuIG1taW9fZGF0YS5rZXkgPT0gRkFLRUtFWTsKKwlyZXR1cm4gbW1pb19kYXRhLT5r ZXkgPT0gRkFLRUtFWTsKIH0KIAogLyoqCiAgKiBpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfZmluaToK KyAqIEBtbWlvX2RhdGE6ICBtbWlvIHN0cnVjdHVyZSBmb3IgSU8gb3BlcmF0aW9ucwogICoKICAq IENsZWFuIHVwIHRoZSByZWdpc3RlciBhY2Nlc3MgaGVscGVyIGluaXRpYWxpemVkIHdpdGgKICAq IGludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0KCkuCiAgKi8KIHZvaWQKLWludGVsX3JlZ2lzdGVy X2FjY2Vzc19maW5pKHZvaWQpCitpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfZmluaShzdHJ1Y3QgX21t aW9fZGF0YSAqbW1pb19kYXRhKQogewotCWlmIChtbWlvX2RhdGEua2V5ICYmIGludGVsX3JlZ2lz dGVyX2FjY2Vzc19uZWVkc193YWtlKCkpCi0JCXJlbGVhc2VfZm9yY2V3YWtlX2xvY2sobW1pb19k YXRhLmtleSk7Ci0JbW1pb19kYXRhLmluaXRlZC0tOworCWlmIChtbWlvX2RhdGEtPmtleSAmJiBp bnRlbF9yZWdpc3Rlcl9hY2Nlc3NfbmVlZHNfd2FrZShtbWlvX2RhdGEpKQorCQlyZWxlYXNlX2Zv cmNld2FrZV9sb2NrKG1taW9fZGF0YS0+a2V5KTsKKwltbWlvX2RhdGEtPmluaXRlZC0tOwogfQog CiAvKioKICAqIGludGVsX3JlZ2lzdGVyX3JlYWQ6CisgKiBAbW1pb19kYXRhOiAgbW1pbyBzdHJ1 Y3R1cmUgZm9yIElPIG9wZXJhdGlvbnMKICAqIEByZWc6IHJlZ2lzdGVyIG9mZnNldAogICoKICAq IDMyLWJpdCByZWFkIG9mIHRoZSByZWdpc3RlciBhdCBAb2Zmc2V0LiBUaGlzIGZ1bmN0aW9uIG9u bHkgd29ya3Mgd2hlbiB0aGUgbmV3CkBAIC0yNTcsMjAgKzI0NywyMCBAQCBpbnRlbF9yZWdpc3Rl cl9hY2Nlc3NfZmluaSh2b2lkKQogICogVGhlIHZhbHVlIHJlYWQgZnJvbSB0aGUgcmVnaXN0ZXIu CiAgKi8KIHVpbnQzMl90Ci1pbnRlbF9yZWdpc3Rlcl9yZWFkKHVpbnQzMl90IHJlZykKK2ludGVs X3JlZ2lzdGVyX3JlYWQoc3RydWN0IF9tbWlvX2RhdGEgKm1taW9fZGF0YSwgdWludDMyX3QgcmVn KQogewogCXN0cnVjdCBpbnRlbF9yZWdpc3Rlcl9yYW5nZSAqcmFuZ2U7CiAJdWludDMyX3QgcmV0 OwogCi0JaWd0X2Fzc2VydChtbWlvX2RhdGEuaW5pdGVkKTsKKwlpZ3RfYXNzZXJ0KG1taW9fZGF0 YS0+aW5pdGVkKTsKIAotCWlmIChpbnRlbF9nZW4obW1pb19kYXRhLmk5MTVfZGV2aWQpID49IDYp Ci0JCWlndF9hc3NlcnQobW1pb19kYXRhLmtleSAhPSAtMSk7CisJaWYgKGludGVsX2dlbihtbWlv X2RhdGEtPmk5MTVfZGV2aWQpID49IDYpCisJCWlndF9hc3NlcnQobW1pb19kYXRhLT5rZXkgIT0g LTEpOwogCi0JaWYgKCFtbWlvX2RhdGEuc2FmZSkKKwlpZiAoIW1taW9fZGF0YS0+c2FmZSkKIAkJ Z290byByZWFkX291dDsKIAotCXJhbmdlID0gaW50ZWxfZ2V0X3JlZ2lzdGVyX3JhbmdlKG1taW9f ZGF0YS5tYXAsCisJcmFuZ2UgPSBpbnRlbF9nZXRfcmVnaXN0ZXJfcmFuZ2UobW1pb19kYXRhLT5t YXAsCiAJCQkJCSByZWcsCiAJCQkJCSBJTlRFTF9SQU5HRV9SRUFEKTsKIApAQCAtMjgxLDEzICsy NzEsMTQgQEAgaW50ZWxfcmVnaXN0ZXJfcmVhZCh1aW50MzJfdCByZWcpCiAJfQogCiByZWFkX291 dDoKLQlyZXQgPSAqKHZvbGF0aWxlIHVpbnQzMl90ICopKCh2b2xhdGlsZSBjaGFyICopaWd0X2ds b2JhbF9tbWlvICsgcmVnKTsKKwlyZXQgPSAqKHZvbGF0aWxlIHVpbnQzMl90ICopKCh2b2xhdGls ZSBjaGFyICopbW1pb19kYXRhLT5pZ3RfbW1pbyArIHJlZyk7CiBvdXQ6CiAJcmV0dXJuIHJldDsK IH0KIAogLyoqCiAgKiBpbnRlbF9yZWdpc3Rlcl93cml0ZToKKyAqIEBtbWlvX2RhdGE6ICBtbWlv IHN0cnVjdHVyZSBmb3IgSU8gb3BlcmF0aW9ucwogICogQHJlZzogcmVnaXN0ZXIgb2Zmc2V0CiAg KiBAdmFsOiB2YWx1ZSB0byB3cml0ZQogICoKQEAgLTI5OCwxOSArMjg5LDE5IEBAIG91dDoKICAq IHdoaXRlIGxpc3RzLgogICovCiB2b2lkCi1pbnRlbF9yZWdpc3Rlcl93cml0ZSh1aW50MzJfdCBy ZWcsIHVpbnQzMl90IHZhbCkKK2ludGVsX3JlZ2lzdGVyX3dyaXRlKHN0cnVjdCBfbW1pb19kYXRh ICptbWlvX2RhdGEsIHVpbnQzMl90IHJlZywgdWludDMyX3QgdmFsKQogewogCXN0cnVjdCBpbnRl bF9yZWdpc3Rlcl9yYW5nZSAqcmFuZ2U7CiAKLQlpZ3RfYXNzZXJ0KG1taW9fZGF0YS5pbml0ZWQp OworCWlndF9hc3NlcnQobW1pb19kYXRhLT5pbml0ZWQpOwogCi0JaWYgKGludGVsX2dlbihtbWlv X2RhdGEuaTkxNV9kZXZpZCkgPj0gNikKLQkJaWd0X2Fzc2VydChtbWlvX2RhdGEua2V5ICE9IC0x KTsKKwlpZiAoaW50ZWxfZ2VuKG1taW9fZGF0YS0+aTkxNV9kZXZpZCkgPj0gNikKKwkJaWd0X2Fz c2VydChtbWlvX2RhdGEtPmtleSAhPSAtMSk7CiAKLQlpZiAoIW1taW9fZGF0YS5zYWZlKQorCWlm ICghbW1pb19kYXRhLT5zYWZlKQogCQlnb3RvIHdyaXRlX291dDsKIAotCXJhbmdlID0gaW50ZWxf Z2V0X3JlZ2lzdGVyX3JhbmdlKG1taW9fZGF0YS5tYXAsCisJcmFuZ2UgPSBpbnRlbF9nZXRfcmVn aXN0ZXJfcmFuZ2UobW1pb19kYXRhLT5tYXAsCiAJCQkJCSByZWcsCiAJCQkJCSBJTlRFTF9SQU5H RV9XUklURSk7CiAKQEAgLTMxOCw3ICszMDksNyBAQCBpbnRlbF9yZWdpc3Rlcl93cml0ZSh1aW50 MzJfdCByZWcsIHVpbnQzMl90IHZhbCkKIAkJICAgICAgIlJlZ2lzdGVyIHdyaXRlIGJsb2NrZWQg Zm9yIHNhZmV0eSAiIigqMHglMDh4ID0gMHgleClcbiIsIHJlZywgdmFsKTsKIAogd3JpdGVfb3V0 OgotCSoodm9sYXRpbGUgdWludDMyX3QgKikoKHZvbGF0aWxlIGNoYXIgKilpZ3RfZ2xvYmFsX21t aW8gKyByZWcpID0gdmFsOworCSoodm9sYXRpbGUgdWludDMyX3QgKikoKHZvbGF0aWxlIGNoYXIg KiltbWlvX2RhdGEtPmlndF9tbWlvICsgcmVnKSA9IHZhbDsKIH0KIAogCkBAIC0zMzAsNyArMzIx LDcgQEAgd3JpdGVfb3V0OgogICogMzItYml0IHJlYWQgb2YgdGhlIHJlZ2lzdGVyIGF0IG9mZnNl dCBAcmVnLiBUaGlzIGZ1bmN0aW9uIG9ubHkgd29ya3Mgd2hlbiB0aGUKICAqIG5ldyByZWdpc3Rl ciBhY2Nlc3MgaGVscGVyIGlzIGluaXRpYWxpemVkIHdpdGggaW50ZWxfcmVnaXN0ZXJfYWNjZXNz X2luaXQoKS4KICAqCi0gKiBUaGlzIGZ1bmN0aW9uIGRpcmVjdGx5IGFjY2Vzc2VzIHRoZSAjaWd0 X2dsb2JhbF9tbWlvIHdpdGhvdXQgc2FmZXR5IGNoZWNrcy4KKyAqIFRoaXMgZnVuY3Rpb24gZGly ZWN0bHkgYWNjZXNzZXMgdGhlIGlndF9tbWlvIHdpdGhvdXQgc2FmZXR5IGNoZWNrcy4KICAqCiAg KiBSZXR1cm5zOgogICogVGhlIHZhbHVlIHJlYWQgZnJvbSB0aGUgcmVnaXN0ZXIuCkBAIC0zNDgs NyArMzM5LDcgQEAgdWludDMyX3QgSU5SRUcodm9pZCAqaWd0X21taW8sIHVpbnQzMl90IHJlZykK ICAqIDE2LWJpdCByZWFkIG9mIHRoZSByZWdpc3RlciBhdCBvZmZzZXQgQHJlZy4gVGhpcyBmdW5j dGlvbiBvbmx5IHdvcmtzIHdoZW4gdGhlCiAgKiBuZXcgcmVnaXN0ZXIgYWNjZXNzIGhlbHBlciBp cyBpbml0aWFsaXplZCB3aXRoIGludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0KCkuCiAgKgotICog VGhpcyBmdW5jdGlvbiBkaXJlY3RseSBhY2Nlc3NlcyB0aGUgI2lndF9nbG9iYWxfbW1pbyB3aXRo b3V0IHNhZmV0eSBjaGVja3MuCisgKiBUaGlzIGZ1bmN0aW9uIGRpcmVjdGx5IGFjY2Vzc2VzIHRo ZSBpZ3RfbW1pbyB3aXRob3V0IHNhZmV0eSBjaGVja3MuCiAgKgogICogUmV0dXJuczoKICAqIFRo ZSB2YWx1ZSByZWFkIGZyb20gdGhlIHJlZ2lzdGVyLgpAQCAtMzY2LDcgKzM1Nyw3IEBAIHVpbnQx Nl90IElOUkVHMTYodm9pZCAqaWd0X21taW8sIHVpbnQzMl90IHJlZykKICAqIDgtYml0IHJlYWQg b2YgdGhlIHJlZ2lzdGVyIGF0IG9mZnNldCBAcmVnLiBUaGlzIGZ1bmN0aW9uIG9ubHkgd29ya3Mg d2hlbiB0aGUKICAqIG5ldyByZWdpc3RlciBhY2Nlc3MgaGVscGVyIGlzIGluaXRpYWxpemVkIHdp dGggaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQoKS4KICAqCi0gKiBUaGlzIGZ1bmN0aW9uIGRp cmVjdGx5IGFjY2Vzc2VzIHRoZSAjaWd0X2dsb2JhbF9tbWlvIHdpdGhvdXQgc2FmZXR5IGNoZWNr cy4KKyAqIFRoaXMgZnVuY3Rpb24gZGlyZWN0bHkgYWNjZXNzZXMgdGhlIGlndF9tbWlvIHdpdGhv dXQgc2FmZXR5IGNoZWNrcy4KICAqCiAgKiBSZXR1cm5zOgogICogVGhlIHZhbHVlIHJlYWQgZnJv bSB0aGUgcmVnaXN0ZXIuCkBAIC0zODYsNyArMzc3LDcgQEAgdWludDhfdCBJTlJFRzgodm9pZCAq aWd0X21taW8sIHVpbnQzMl90IHJlZykKICAqIHdoZW4gdGhlIG5ldyByZWdpc3RlciBhY2Nlc3Mg aGVscGVyIGlzIGluaXRpYWxpemVkIHdpdGgKICAqIGludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0 KCkuCiAgKgotICogVGhpcyBmdW5jdGlvbiBkaXJlY3RseSBhY2Nlc3NlcyB0aGUgI2lndF9nbG9i YWxfbW1pbyB3aXRob3V0IHNhZmV0eSBjaGVja3MuCisgKiBUaGlzIGZ1bmN0aW9uIGRpcmVjdGx5 IGFjY2Vzc2VzIHRoZSBpZ3RfbW1pbyB3aXRob3V0IHNhZmV0eSBjaGVja3MuCiAgKi8KIHZvaWQg T1VUUkVHKHZvaWQgKmlndF9tbWlvLCB1aW50MzJfdCByZWcsIHVpbnQzMl90IHZhbCkKIHsKQEAg LTQwMiw3ICszOTMsNyBAQCB2b2lkIE9VVFJFRyh2b2lkICppZ3RfbW1pbywgdWludDMyX3QgcmVn LCB1aW50MzJfdCB2YWwpCiAgKiB3aGVuIHRoZSBuZXcgcmVnaXN0ZXIgYWNjZXNzIGhlbHBlciBp cyBpbml0aWFsaXplZCB3aXRoCiAgKiBpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfaW5pdCgpLgogICoK LSAqIFRoaXMgZnVuY3Rpb24gZGlyZWN0bHkgYWNjZXNzZXMgdGhlICNpZ3RfZ2xvYmFsX21taW8g d2l0aG91dCBzYWZldHkgY2hlY2tzLgorICogVGhpcyBmdW5jdGlvbiBkaXJlY3RseSBhY2Nlc3Nl cyB0aGUgaWd0X21taW8gd2l0aG91dCBzYWZldHkgY2hlY2tzLgogICovCiB2b2lkIE9VVFJFRzE2 KHZvaWQgKmlndF9tbWlvLCB1aW50MzJfdCByZWcsIHVpbnQxNl90IHZhbCkKIHsKQEAgLTQxOSw3 ICs0MTAsNyBAQCB2b2lkIE9VVFJFRzE2KHZvaWQgKmlndF9tbWlvLCB1aW50MzJfdCByZWcsIHVp bnQxNl90IHZhbCkKICAqIHdoZW4gdGhlIG5ldyByZWdpc3RlciBhY2Nlc3MgaGVscGVyIGlzIGlu aXRpYWxpemVkIHdpdGgKICAqIGludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0KCkuCiAgKgotICog VGhpcyBmdW5jdGlvbiBkaXJlY3RseSBhY2Nlc3NlcyB0aGUgI2lndF9nbG9iYWxfbW1pbyB3aXRo b3V0IHNhZmV0eSBjaGVja3MuCisgKiBUaGlzIGZ1bmN0aW9uIGRpcmVjdGx5IGFjY2Vzc2VzIHRo ZSBpZ3RfbW1pbyB3aXRob3V0IHNhZmV0eSBjaGVja3MuCiAgKi8KIHZvaWQgT1VUUkVHOCh2b2lk ICppZ3RfbW1pbywgdWludDMyX3QgcmVnLCB1aW50OF90IHZhbCkKIHsKZGlmZiAtLWdpdCBhL3Rl c3RzL2k5MTUvZ2VtX2V4ZWNfbGF0ZW5jeS5jIGIvdGVzdHMvaTkxNS9nZW1fZXhlY19sYXRlbmN5 LmMKaW5kZXggZTU2ZDYyNzguLjYzNzllZGFlIDEwMDY0NAotLS0gYS90ZXN0cy9pOTE1L2dlbV9l eGVjX2xhdGVuY3kuYworKysgYi90ZXN0cy9pOTE1L2dlbV9leGVjX2xhdGVuY3kuYwpAQCAtNjIs NiArNjIsOSBAQAogc3RhdGljIHVuc2lnbmVkIGludCByaW5nX3NpemU7CiBzdGF0aWMgZG91Ymxl IHJjc19jbG9jazsKIAordm9pZCAqaWd0X2dsb2JhbF9tbWlvOworc3RhdGljIHN0cnVjdCBfbW1p b19kYXRhIG1taW9fZGF0YTsKKwogc3RhdGljIHZvaWQKIHBvbGxfcmluZyhpbnQgZmQsIHVuc2ln bmVkIHJpbmcsIGNvbnN0IGNoYXIgKm5hbWUpCiB7CkBAIC02NjcsNyArNjcwLDkgQEAgaWd0X21h aW4KIAkJaWYgKHJpbmdfc2l6ZSA+IDEwMjQpCiAJCQlyaW5nX3NpemUgPSAxMDI0OwogCi0JCWlu dGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0KGludGVsX2dldF9wY2lfZGV2aWNlKCksIGZhbHNlLCBk ZXZpY2UpOworCQlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfaW5pdCgmbW1pb19kYXRhLCBpbnRlbF9n ZXRfcGNpX2RldmljZSgpLCBmYWxzZSwgZGV2aWNlKTsKKwkJaWd0X2dsb2JhbF9tbWlvID0gbW1p b19kYXRhLmlndF9tbWlvOworCiAJCXJjc19jbG9jayA9IGNsb2NrcmF0ZShkZXZpY2UsIFJDU19U SU1FU1RBTVApOwogCQlpZ3RfaW5mbygiUkNTIHRpbWVzdGFtcCBjbG9jazogJS4wZktIeiwgJS4x Zm5zXG4iLAogCQkJIHJjc19jbG9jayAvIDFlMywgMWU5IC8gcmNzX2Nsb2NrKTsKZGlmZiAtLWdp dCBhL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfcGFyc2UuYyBiL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfcGFy c2UuYwppbmRleCA2MmU4ZDBhNS4uOThiMDUyNjcgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2k5MTUvZ2Vt X2V4ZWNfcGFyc2UuYworKysgYi90ZXN0cy9pOTE1L2dlbV9leGVjX3BhcnNlLmMKQEAgLTU4LDYg KzU4LDkgQEAKIAogc3RhdGljIGludCBwYXJzZXJfdmVyc2lvbjsKIAordm9pZCAqaWd0X2dsb2Jh bF9tbWlvOworc3RhdGljIHN0cnVjdCBfbW1pb19kYXRhIG1taW9fZGF0YTsKKwogc3RhdGljIGlu dCBjb21tYW5kX3BhcnNlcl92ZXJzaW9uKGludCBmZCkKIHsKIAlpbnQgdmVyc2lvbiA9IC0xOwpA QCAtMjg0LDkgKzI4Nyw5IEBAIHRlc3RfbHJpKGludCBmZCwgdWludDMyX3QgaGFuZGxlLCBzdHJ1 Y3QgdGVzdF9scmkgKnRlc3QpCiAJCSAgdGVzdC0+bmFtZSwgdGVzdC0+cmVnLCB0ZXN0LT50ZXN0 X3ZhbCwKIAkJICBleHBlY3RlZF9lcnJubywgZXhwZWN0KTsKIAotCWludGVsX3JlZ2lzdGVyX3dy aXRlKHRlc3QtPnJlZywgdGVzdC0+aW5pdF92YWwpOworCWludGVsX3JlZ2lzdGVyX3dyaXRlKCZt bWlvX2RhdGEsIHRlc3QtPnJlZywgdGVzdC0+aW5pdF92YWwpOwogCi0JaWd0X2Fzc2VydF9lcV91 MzIoKGludGVsX3JlZ2lzdGVyX3JlYWQodGVzdC0+cmVnKSAmCisJaWd0X2Fzc2VydF9lcV91MzIo KGludGVsX3JlZ2lzdGVyX3JlYWQoJm1taW9fZGF0YSwgdGVzdC0+cmVnKSAmCiAJCQkgICB0ZXN0 LT5yZWFkX21hc2spLAogCQkJICB0ZXN0LT5pbml0X3ZhbCk7CiAKQEAgLTI5Niw3ICsyOTksNyBA QCB0ZXN0X2xyaShpbnQgZmQsIHVpbnQzMl90IGhhbmRsZSwgc3RydWN0IHRlc3RfbHJpICp0ZXN0 KQogCQkgICBleHBlY3RlZF9lcnJubyk7CiAJZ2VtX3N5bmMoZmQsIGhhbmRsZSk7CiAKLQlpZ3Rf YXNzZXJ0X2VxX3UzMigoaW50ZWxfcmVnaXN0ZXJfcmVhZCh0ZXN0LT5yZWcpICYKKwlpZ3RfYXNz ZXJ0X2VxX3UzMigoaW50ZWxfcmVnaXN0ZXJfcmVhZCgmbW1pb19kYXRhLCB0ZXN0LT5yZWcpICYK IAkJCSAgIHRlc3QtPnJlYWRfbWFzayksCiAJCQkgIGV4cGVjdCk7CiB9CkBAIC01MzAsNyArNTMz LDggQEAgaWd0X21haW4KICN1bmRlZiBSRUcKIAogCQlpZ3RfZml4dHVyZSB7Ci0JCQlpbnRlbF9y ZWdpc3Rlcl9hY2Nlc3NfaW5pdChpbnRlbF9nZXRfcGNpX2RldmljZSgpLCAwLCBmZCk7CisJCQlp bnRlbF9yZWdpc3Rlcl9hY2Nlc3NfaW5pdCgmbW1pb19kYXRhLCBpbnRlbF9nZXRfcGNpX2Rldmlj ZSgpLCAwLCBmZCk7CisJCQlpZ3RfZ2xvYmFsX21taW8gPSBtbWlvX2RhdGEuaWd0X21taW87CiAJ CX0KIAogCQlmb3IgKGludCBpID0gMDsgaSA8IEFSUkFZX1NJWkUobHJpcyk7IGkrKykgewpAQCAt NTQzLDcgKzU0Nyw3IEBAIGlndF9tYWluCiAJCX0KIAogCQlpZ3RfZml4dHVyZSB7Ci0JCQlpbnRl bF9yZWdpc3Rlcl9hY2Nlc3NfZmluaSgpOworCQkJaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2Zpbmko Jm1taW9fZGF0YSk7CiAJCX0KIAl9CiAKZGlmZiAtLWdpdCBhL3Rlc3RzL2k5MTUvaTkxNV9wbV9s cHNwLmMgYi90ZXN0cy9pOTE1L2k5MTVfcG1fbHBzcC5jCmluZGV4IGY2OWM4OGY2Li5jYmJlNmE0 YiAxMDA2NDQKLS0tIGEvdGVzdHMvaTkxNS9pOTE1X3BtX2xwc3AuYworKysgYi90ZXN0cy9pOTE1 L2k5MTVfcG1fbHBzcC5jCkBAIC0zMCw2ICszMCw4IEBACiAjaW5jbHVkZSA8ZmNudGwuaD4KICNp bmNsdWRlIDx1bmlzdGQuaD4KIAordm9pZCAqaWd0X2dsb2JhbF9tbWlvOworc3RhdGljIHN0cnVj dCBfbW1pb19kYXRhIG1taW9fZGF0YTsKIAogc3RhdGljIGJvb2wgc3VwcG9ydHNfbHBzcCh1aW50 MzJfdCBkZXZpZCkKIHsKQEAgLTIxMCw3ICsyMTIsOCBAQCBpZ3RfbWFpbgogCiAJCWlndF9yZXF1 aXJlKHN1cHBvcnRzX2xwc3AoZGV2aWQpKTsKIAotCQlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfaW5p dChpbnRlbF9nZXRfcGNpX2RldmljZSgpLCAwLCBkcm1fZmQpOworCQlpbnRlbF9yZWdpc3Rlcl9h Y2Nlc3NfaW5pdCgmbW1pb19kYXRhLCBpbnRlbF9nZXRfcGNpX2RldmljZSgpLCAwLCBkcm1fZmQp OworCQlpZ3RfZ2xvYmFsX21taW8gPSBtbWlvX2RhdGEuaWd0X21taW87CiAKIAkJa21zdGVzdF9z ZXRfdnRfZ3JhcGhpY3NfbW9kZSgpOwogCX0KQEAgLTIyNyw3ICsyMzAsNyBAQCBpZ3RfbWFpbgog CWlndF9maXh0dXJlIHsKIAkJaW50IGk7CiAKLQkJaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2Zpbmko KTsKKwkJaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2ZpbmkoJm1taW9fZGF0YSk7CiAJCWZvciAoaSA9 IDA7IGkgPCBkcm1fcmVzLT5jb3VudF9jb25uZWN0b3JzOyBpKyspCiAJCQlkcm1Nb2RlRnJlZUNv bm5lY3Rvcihkcm1fY29ubmVjdG9yc1tpXSk7CiAJCWRybU1vZGVGcmVlUmVzb3VyY2VzKGRybV9y ZXMpOwpkaWZmIC0tZ2l0IGEvdG9vbHMvaW50ZWxfYXVkaW9fZHVtcC5jIGIvdG9vbHMvaW50ZWxf YXVkaW9fZHVtcC5jCmluZGV4IDg2NjY0NDc4Li45ODRjN2RhNCAxMDA2NDQKLS0tIGEvdG9vbHMv aW50ZWxfYXVkaW9fZHVtcC5jCisrKyBiL3Rvb2xzL2ludGVsX2F1ZGlvX2R1bXAuYwpAQCAtNDEs NiArNDEsOCBAQCBzdGF0aWMgdWludDMyX3QgZGV2aWQ7CiAKIHN0YXRpYyBpbnQgYXVkX3JlZ19i YXNlID0gMDsJLyogYmFzZSBhZGRyZXNzIG9mIGF1ZGlvIHJlZ2lzdGVycyAqLwogc3RhdGljIGlu dCBkaXNwX3JlZ19iYXNlID0gMDsJLyogYmFzZSBhZGRyZXNzIG9mIGRpc3BsYXkgcmVnaXN0ZXJz ICovCit2b2lkICppZ3RfZ2xvYmFsX21taW87CitzdGF0aWMgc3RydWN0IF9tbWlvX2RhdGEgbW1p b19kYXRhOwogCiAjZGVmaW5lIElTX0hBU1dFTExfUExVUyhkZXZpZCkgIChJU19IQVNXRUxMKGRl dmlkKSB8fCBJU19CUk9BRFdFTEwoZGV2aWQpKQogCkBAIC0yNDk4LDkgKzI1MDAsMTAgQEAgaW50 IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCWRvX3NlbGZfdGVzdHMoKTsKIAogCWlmIChh cmdjID09IDIpCi0JCWludGVsX21taW9fdXNlX2R1bXBfZmlsZShhcmd2WzFdKTsKKwkJaW50ZWxf bW1pb191c2VfZHVtcF9maWxlKCZtbWlvX2RhdGEsIGFyZ3ZbMV0pOwogCWVsc2UKLQkJaW50ZWxf bW1pb191c2VfcGNpX2JhcihwY2lfZGV2LCAtMSk7CisJCWludGVsX21taW9fdXNlX3BjaV9iYXIo Jm1taW9fZGF0YSwgcGNpX2RldiwgLTEpOworCWlndF9nbG9iYWxfbW1pbyA9IG1taW9fZGF0YS5p Z3RfbW1pbzsKIAogCXByaW50ZigiJXMgYXVkaW8gcmVnaXN0ZXJzOlxuXG4iLCBpbnRlbF9nZXRf ZGV2aWNlX2luZm8oZGV2aWQpLT5jb2RlbmFtZSk7CiAJaWYgKElTX1ZBTExFWVZJRVcoZGV2aWQp KSB7CmRpZmYgLS1naXQgYS90b29scy9pbnRlbF9iYWNrbGlnaHQuYyBiL3Rvb2xzL2ludGVsX2Jh Y2tsaWdodC5jCmluZGV4IDg1ZDA5OWQ3Li40ZTZhZDRiYiAxMDA2NDQKLS0tIGEvdG9vbHMvaW50 ZWxfYmFja2xpZ2h0LmMKKysrIGIvdG9vbHMvaW50ZWxfYmFja2xpZ2h0LmMKQEAgLTM1LDEyICsz NSwxNSBAQAogI2luY2x1ZGUgImludGVsX3JlZy5oIgogCiAvKiBYWFggUENIIG9ubHkgdG9kYXkg Ki8KK3N0YXRpYyBzdHJ1Y3QgX21taW9fZGF0YSBtbWlvX2RhdGE7Cit2b2lkICppZ3RfZ2xvYmFs X21taW87CiAKIGludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKIHsKIAl1aW50MzJfdCBj dXJyZW50LCBtYXg7CiAKLQlpbnRlbF9tbWlvX3VzZV9wY2lfYmFyKGludGVsX2dldF9wY2lfZGV2 aWNlKCksIC0xKTsKKwlpbnRlbF9tbWlvX3VzZV9wY2lfYmFyKCZtbWlvX2RhdGEsIGludGVsX2dl dF9wY2lfZGV2aWNlKCksIC0xKTsKKwlpZ3RfZ2xvYmFsX21taW8gPSBtbWlvX2RhdGEuaWd0X21t aW87CiAKIAljdXJyZW50ID0gSU5SRUcoaWd0X2dsb2JhbF9tbWlvLCBCTENfUFdNX0NQVV9DVEwp ICYgQkFDS0xJR0hUX0RVVFlfQ1lDTEVfTUFTSzsKIAltYXggPSBJTlJFRyhpZ3RfZ2xvYmFsX21t aW8sIEJMQ19QV01fUENIX0NUTDIpID4+IDE2OwpkaWZmIC0tZ2l0IGEvdG9vbHMvaW50ZWxfZGlz cGxheV9wb2xsZXIuYyBiL3Rvb2xzL2ludGVsX2Rpc3BsYXlfcG9sbGVyLmMKaW5kZXggZTEwOTRk MzkuLmFmN2U0MGNjIDEwMDY0NAotLS0gYS90b29scy9pbnRlbF9kaXNwbGF5X3BvbGxlci5jCisr KyBiL3Rvb2xzL2ludGVsX2Rpc3BsYXlfcG9sbGVyLmMKQEAgLTU5LDYgKzU5LDggQEAgZW51bSB0 ZXN0IHsKIAogc3RhdGljIHVpbnQzMl90IHZsdl9vZmZzZXQ7CiBzdGF0aWMgdWludDE2X3QgcGlw ZV9vZmZzZXRbM10gPSB7IDAsIDB4MTAwMCwgMHgyMDAwLCB9Owordm9pZCAqaWd0X2dsb2JhbF9t bWlvOworc3RhdGljIHN0cnVjdCBfbW1pb19kYXRhIG1taW9fZGF0YTsKIAogI2RlZmluZSBQSVBF X1JFRyhwaXBlLCByZWdfYSkgKHBpcGVfb2Zmc2V0WyhwaXBlKV0gKyAocmVnX2EpKQogCkBAIC0x MTg3LDcgKzExODksOCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCQlicmVh azsKIAl9CiAKLQlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfaW5pdChpbnRlbF9nZXRfcGNpX2Rldmlj ZSgpLCAwLCAtMSk7CisJaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQoJm1taW9fZGF0YSwgaW50 ZWxfZ2V0X3BjaV9kZXZpY2UoKSwgMCwgLTEpOworCWlndF9nbG9iYWxfbW1pbyA9IG1taW9fZGF0 YS5pZ3RfbW1pbzsKIAogCXByaW50ZigiJXM/XG4iLCB0ZXN0X25hbWUodGVzdCwgcGlwZSwgYml0 LCB0ZXN0X3BpeGVsY291bnQpKTsKIApAQCAtMTI2Miw3ICsxMjY1LDcgQEAgaW50IG1haW4oaW50 IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAkJYXNzZXJ0KDApOwogCX0KIAotCWludGVsX3JlZ2lzdGVy X2FjY2Vzc19maW5pKCk7CisJaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2ZpbmkoJm1taW9fZGF0YSk7 CiAKIAlpZiAocXVpdCkKIAkJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS90b29scy9pbnRlbF9mb3Jj ZXdha2VkLmMgYi90b29scy9pbnRlbF9mb3JjZXdha2VkLmMKaW5kZXggMDJmYmY4ODguLmU1MmRi NWVkIDEwMDY0NAotLS0gYS90b29scy9pbnRlbF9mb3JjZXdha2VkLmMKKysrIGIvdG9vbHMvaW50 ZWxfZm9yY2V3YWtlZC5jCkBAIC0zOSw2ICszOSw4IEBACiAjaW5jbHVkZSAiZHJtdGVzdC5oIgog CiBib29sIGRhZW1vbml6ZWQ7Cit2b2lkICppZ3RfZ2xvYmFsX21taW87CitzdGF0aWMgc3RydWN0 IF9tbWlvX2RhdGEgbW1pb19kYXRhOwogCiAjZGVmaW5lIElORk9fUFJJTlQoLi4uKSBcCiAJZG8g eyBcCkBAIC01OSw3ICs2MSw3IEBAIGhlbHAoY2hhciAqcHJvZykgewogc3RhdGljIGludAogaXNf YWxpdmUodm9pZCkgewogCS8qIFJlYWQgdGhlIHRpbWVzdGFtcCwgd2hpY2ggc2hvdWxkICphbG1v c3QqIGFsd2F5cyBiZSAhMCAqLwotCXJldHVybiAoaW50ZWxfcmVnaXN0ZXJfcmVhZCgweDIzNTgp ICE9IDApOworCXJldHVybiAoaW50ZWxfcmVnaXN0ZXJfcmVhZCgmbW1pb19kYXRhLCAweDIzNTgp ICE9IDApOwogfQogCiBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQpAQCAtODAsNyAr ODIsOCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCQlJTkZPX1BSSU5UKCJz dGFydGVkIGRhZW1vbiIpOwogCX0KIAotCXJldCA9IGludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0 KGludGVsX2dldF9wY2lfZGV2aWNlKCksIDEsIC0xKTsKKwlyZXQgPSBpbnRlbF9yZWdpc3Rlcl9h Y2Nlc3NfaW5pdCgmbW1pb19kYXRhLCBpbnRlbF9nZXRfcGNpX2RldmljZSgpLCAxLCAtMSk7CisJ aWd0X2dsb2JhbF9tbWlvID0gbW1pb19kYXRhLmlndF9tbWlvOwogCWlmIChyZXQpIHsKIAkJSU5G T19QUklOVCgiQ291bGRuJ3QgaW5pdCByZWdpc3RlciBhY2Nlc3NcbiIpOwogCQlleGl0KDEpOwpA QCAtOTAsMTQgKzkzLDE1IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJd2hp bGUoMSkgewogCQlpZiAoIWlzX2FsaXZlKCkpIHsKIAkJCUlORk9fUFJJTlQoImdwdSByZXNldD8g cmVzdGFydGluZyBkYWVtb25cbiIpOwotCQkJaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2ZpbmkoKTsK LQkJCXJldCA9IGludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0KGludGVsX2dldF9wY2lfZGV2aWNl KCksIDEsIC0xKTsKKwkJCWludGVsX3JlZ2lzdGVyX2FjY2Vzc19maW5pKCZtbWlvX2RhdGEpOwor CQkJcmV0ID0gaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQoJm1taW9fZGF0YSwgaW50ZWxfZ2V0 X3BjaV9kZXZpY2UoKSwgMSwgLTEpOworCQkJaWd0X2dsb2JhbF9tbWlvID0gbW1pb19kYXRhLmln dF9tbWlvOwogCQkJaWYgKHJldCkKIAkJCQlJTkZPX1BSSU5UKCJSZWcgYWNjZXNzIGluaXQgZmFp bFxuIik7CiAJCX0KIAkJc2xlZXAoMSk7CiAJfQotCWludGVsX3JlZ2lzdGVyX2FjY2Vzc19maW5p KCk7CisJaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2ZpbmkoJm1taW9fZGF0YSk7CiAJSU5GT19QUklO VCgiRm9yY2V3YWtlIHVubG9ja1xuIik7CiAKIAlpZiAoZGFlbW9uaXplZCkgewpkaWZmIC0tZ2l0 IGEvdG9vbHMvaW50ZWxfZ3B1X3RpbWUuYyBiL3Rvb2xzL2ludGVsX2dwdV90aW1lLmMKaW5kZXgg ZDkwYjgxNmEuLmQ3YWNmZDJiIDEwMDY0NAotLS0gYS90b29scy9pbnRlbF9ncHVfdGltZS5jCisr KyBiL3Rvb2xzL2ludGVsX2dwdV90aW1lLmMKQEAgLTQxLDYgKzQxLDggQEAKICNkZWZpbmUgU0FN UExFU19QRVJfU0VDICAgICAgICAgICAgIDEwMDAwCiAKIHN0YXRpYyB2b2xhdGlsZSBpbnQgZ29k ZG87Cit2b2lkICppZ3RfZ2xvYmFsX21taW87CitzdGF0aWMgc3RydWN0IF9tbWlvX2RhdGEgbW1p b19kYXRhOwogCiBzdGF0aWMgcGlkX3Qgc3Bhd24oY2hhciAqKmFyZ3YpCiB7CkBAIC02Nyw3ICs2 OSw4IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAlzdGF0aWMgc3RydWN0IHJ1 c2FnZSBydXNhZ2U7CiAJaW50IHN0YXR1czsKIAotCWludGVsX21taW9fdXNlX3BjaV9iYXIoaW50 ZWxfZ2V0X3BjaV9kZXZpY2UoKSwgLTEpOworCWludGVsX21taW9fdXNlX3BjaV9iYXIoJm1taW9f ZGF0YSwgaW50ZWxfZ2V0X3BjaV9kZXZpY2UoKSwgLTEpOworCWlndF9nbG9iYWxfbW1pbyA9IG1t aW9fZGF0YS5pZ3RfbW1pbzsKIAogCWlmIChhcmdjID09IDEpIHsKIAkJZnByaW50ZihzdGRlcnIs ICJ1c2FnZTogJXMgY21kIFthcmdzLi4uXVxuIiwgYXJndlswXSk7CmRpZmYgLS1naXQgYS90b29s cy9pbnRlbF9pbmZvZnJhbWVzLmMgYi90b29scy9pbnRlbF9pbmZvZnJhbWVzLmMKaW5kZXggNjg5 ZjVmYWEuLjYzM2E1ZTEwIDEwMDY0NAotLS0gYS90b29scy9pbnRlbF9pbmZvZnJhbWVzLmMKKysr IGIvdG9vbHMvaW50ZWxfaW5mb2ZyYW1lcy5jCkBAIC0yNjIsNiArMjYyLDggQEAgY29uc3QgY2hh ciAqZGlwX2ZyZXF1ZW5jeV9uYW1lc1tdID0gewogCSJyZXNlcnZlZCAoaW52YWxpZCkiCiB9Owog Cit2b2lkICppZ3RfZ2xvYmFsX21taW87CitzdGF0aWMgc3RydWN0IF9tbWlvX2RhdGEgbW1pb19k YXRhOwogc3RydWN0IHBjaV9kZXZpY2UgKnBjaV9kZXY7CiBpbnQgZ2VuID0gMDsKIApAQCAtMTEw OCw3ICsxMTEwLDggQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAkgICAgICAg IiBwZXJmZWN0bHk6IHRoZSBLZXJuZWwgbWlnaHQgdW5kbyBvdXIgY2hhbmdlcy5cbiIpOwogCiAJ cGNpX2RldiA9IGludGVsX2dldF9wY2lfZGV2aWNlKCk7Ci0JaW50ZWxfcmVnaXN0ZXJfYWNjZXNz X2luaXQocGNpX2RldiwgMCwgLTEpOworCWludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0KCZtbWlv X2RhdGEsIHBjaV9kZXYsIDAsIC0xKTsKKwlpZ3RfZ2xvYmFsX21taW8gPSBtbWlvX2RhdGEuaWd0 X21taW87CiAJaW50ZWxfY2hlY2tfcGNoKCk7CiAKIAlpZiAoSVNfR0VONChwY2lfZGV2LT5kZXZp Y2VfaWQpKQpAQCAtMTI1Niw2ICsxMjU5LDYgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFy Z3ZbXSkKIAl9CiAKIG91dDoKLQlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfZmluaSgpOworCWludGVs X3JlZ2lzdGVyX2FjY2Vzc19maW5pKCZtbWlvX2RhdGEpOwogCXJldHVybiByZXQ7CiB9CmRpZmYg LS1naXQgYS90b29scy9pbnRlbF9sM19wYXJpdHkuYyBiL3Rvb2xzL2ludGVsX2wzX3Bhcml0eS5j CmluZGV4IGQ4Yzk5N2FmLi43YTQ2MWE1NCAxMDA2NDQKLS0tIGEvdG9vbHMvaW50ZWxfbDNfcGFy aXR5LmMKKysrIGIvdG9vbHMvaW50ZWxfbDNfcGFyaXR5LmMKQEAgLTQ0LDYgKzQ0LDggQEAKICNp bmNsdWRlICJpbnRlbF9sM19wYXJpdHkuaCIKIAogc3RhdGljIHVuc2lnbmVkIGludCBkZXZpZDsK K3ZvaWQgKmlndF9nbG9iYWxfbW1pbzsKK3N0YXRpYyBzdHJ1Y3QgX21taW9fZGF0YSBtbWlvX2Rh dGE7CiAvKiBMMyBzaXplIGlzIGFsd2F5cyBhIGZ1bmN0aW9uIG9mIGJhbmtzLiBUaGUgbnVtYmVy IG9mIGJhbmtzIGNhbm5vdCBiZQogICogZGV0ZXJtaW5lZCBieSBudW1iZXIgb2Ygc2xpY2VzIGhv d2V2ZXIgKi8KIHN0YXRpYyBpbmxpbmUgaW50IG51bV9iYW5rcyh2b2lkKSB7CkBAIC0xODksNyAr MTkxLDggQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAlpZiAoaW50ZWxfZ2Vu KGRldmlkKSA8IDcgfHwgSVNfVkFMTEVZVklFVyhkZXZpZCkpCiAJCWV4aXQoNzcpOwogCi0JYXNz ZXJ0KGludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0KGludGVsX2dldF9wY2lfZGV2aWNlKCksIDAs IGRldmljZSkgPT0gMCk7CisJYXNzZXJ0KGludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0KCZtbWlv X2RhdGEsIGludGVsX2dldF9wY2lfZGV2aWNlKCksIDAsIGRldmljZSkgPT0gMCk7CisJaWd0X2ds b2JhbF9tbWlvID0gbW1pb19kYXRhLmlndF9tbWlvOwogCiAJZGlyID0gaWd0X3N5c2ZzX29wZW4o ZGV2aWNlKTsKIApAQCAtMjExLDcgKzIxNCw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICph cmd2W10pCiAJICogbm93LiBKdXN0IGJlIGF3YXJlIG9mIHRoaXMgaWYgZm9yIHNvbWUgcmVhc29u IGEgaGFuZyBpcyByZXBvcnRlZAogCSAqIHdoZW4gdXNpbmcgdGhpcyB0b29sLgogCSAqLwotCWRm dCA9IGludGVsX3JlZ2lzdGVyX3JlYWQoMHhiMDM4KTsKKwlkZnQgPSBpbnRlbF9yZWdpc3Rlcl9y ZWFkKCZtbWlvX2RhdGEsIDB4YjAzOCk7CiAKIAl3aGlsZSAoMSkgewogCQlpbnQgYywgb3B0aW9u X2luZGV4ID0gMDsKQEAgLTM1NywxMCArMzYwLDExIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFy ICphcmd2W10pCiAJCQkJYXNzZXJ0KGkgPCAyKTsKIAkJCQlkZnQgfD0gaSA8PCAxOyAvKiBzbGlj ZSAqLwogCQkJCWRmdCB8PSAxIDw8IDA7IC8qIGVuYWJsZSAqLwotCQkJCWludGVsX3JlZ2lzdGVy X3dyaXRlKDB4YjAzOCwgZGZ0KTsKKwkJCQlpbnRlbF9yZWdpc3Rlcl93cml0ZSgmbW1pb19kYXRh LCAweGIwMzgsIGRmdCk7CiAJCQkJYnJlYWs7CiAJCQljYXNlICd1JzoKLQkJCQlpbnRlbF9yZWdp c3Rlcl93cml0ZSgweGIwMzgsIGRmdCAmIH4oMTw8MCkpOworCQkJCWludGVsX3JlZ2lzdGVyX3dy aXRlKCZtbWlvX2RhdGEsIDB4YjAzOCwgZGZ0ICYKKwkJCQkJCSAgICAgfigxIDw8IDApKTsKIAkJ CQlicmVhazsKIAkJCWNhc2UgJ0wnOgogCQkJCWJyZWFrOwpAQCAtMzY5LDcgKzM3Myw3IEBAIGlu dCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJCX0KIAl9CiAKLQlpbnRlbF9yZWdpc3Rl cl9hY2Nlc3NfZmluaSgpOworCWludGVsX3JlZ2lzdGVyX2FjY2Vzc19maW5pKCZtbWlvX2RhdGEp OwogCWlmIChhY3Rpb24gPT0gJ2wnKQogCQlleGl0KEVYSVRfU1VDQ0VTUyk7CiAKZGlmZiAtLWdp dCBhL3Rvb2xzL2ludGVsX2xpZC5jIGIvdG9vbHMvaW50ZWxfbGlkLmMKaW5kZXggYTQxMzJkNTYu LmM1ODk4MjJiIDEwMDY0NAotLS0gYS90b29scy9pbnRlbF9saWQuYworKysgYi90b29scy9pbnRl bF9saWQuYwpAQCAtNTIsNiArNTIsOSBAQCBlbnVtIGxpZF9zdGF0dXMgewogI2RlZmluZSBBQ1BJ X0JVVFRPTiAiL3Byb2MvYWNwaS9idXR0b24vIgogI2RlZmluZSBBQ1BJX0xJRCAiL3Byb2MvYWNw aS9idXR0b24vbGlkLyIKIAordm9pZCAqaWd0X2dsb2JhbF9tbWlvOworc3RhdGljIHN0cnVjdCBf bW1pb19kYXRhIG1taW9fZGF0YTsKKwogc3RhdGljIGludCBpODMwX2x2ZHNfYWNwaV9saWRfc3Rh dGUodm9pZCkKIHsKIAlpbnQgZmQ7CkBAIC0xMTksNyArMTIyLDggQEAgaW50IG1haW4oaW50IGFy Z2MsIGNoYXIgKiphcmd2KQogewogCWludCBzd2YxNCwgYWNwaV9saWQ7CiAKLQlpbnRlbF9tbWlv X3VzZV9wY2lfYmFyKGludGVsX2dldF9wY2lfZGV2aWNlKCksIC0xKTsKKwlpbnRlbF9tbWlvX3Vz ZV9wY2lfYmFyKCZtbWlvX2RhdGEsIGludGVsX2dldF9wY2lfZGV2aWNlKCksIC0xKTsKKwlpZ3Rf Z2xvYmFsX21taW8gPSBtbWlvX2RhdGEuaWd0X21taW87CiAKIAl3aGlsZSAoMSkgewogCQlzd2Yx NCA9IElOUkVHKGlndF9nbG9iYWxfbW1pbywgU1dGMTQpOwpkaWZmIC0tZ2l0IGEvdG9vbHMvaW50 ZWxfcGFuZWxfZml0dGVyLmMgYi90b29scy9pbnRlbF9wYW5lbF9maXR0ZXIuYwppbmRleCAyNjg0 M2Q3Yy4uOTY2M2QwY2MgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2ludGVsX3BhbmVsX2ZpdHRlci5jCisr KyBiL3Rvb2xzL2ludGVsX3BhbmVsX2ZpdHRlci5jCkBAIC0zNSw2ICszNSw4IEBACiAjaW5jbHVk ZSAiaW50ZWxfcmVnLmgiCiAjaW5jbHVkZSAiZHJtdGVzdC5oIgogCit2b2lkICppZ3RfZ2xvYmFs X21taW87CitzdGF0aWMgc3RydWN0IF9tbWlvX2RhdGEgbW1pb19kYXRhOwogaW50IGdlbjsKIAog dWludDMyX3QgSFRPVEFMW10gICAgID0geyAweDYwMDAwLCAweDYxMDAwLCAweDYyMDAwIH07CkBA IC0yODAsNyArMjgyLDggQEAgaW50IG1haW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJICAg ICAgICJzb2x1dGlvbiB0aGF0IG1heSBvciBtYXkgbm90IHdvcmsuIFVzZSBpdCBhdCB5b3VyIG93 biByaXNrLlxuIik7CiAKIAlwY2lfZGV2ID0gaW50ZWxfZ2V0X3BjaV9kZXZpY2UoKTsKLQlpbnRl bF9yZWdpc3Rlcl9hY2Nlc3NfaW5pdChwY2lfZGV2LCAwLCAtMSk7CisJaW50ZWxfcmVnaXN0ZXJf YWNjZXNzX2luaXQoJm1taW9fZGF0YSwgcGNpX2RldiwgMCwgLTEpOworCWlndF9nbG9iYWxfbW1p byA9IG1taW9fZGF0YS5pZ3RfbW1pbzsKIAlkZXZpZCA9IHBjaV9kZXYtPmRldmljZV9pZDsKIAog CWlmICghSEFTX1BDSF9TUExJVChkZXZpZCkpIHsKQEAgLTM0Miw2ICszNDUsNiBAQCBpbnQgbWFp biAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAl9CiAKIG91dDoKLQlpbnRlbF9yZWdpc3Rlcl9h Y2Nlc3NfZmluaSgpOworCWludGVsX3JlZ2lzdGVyX2FjY2Vzc19maW5pKCZtbWlvX2RhdGEpOwog CXJldHVybiByZXQ7CiB9CmRpZmYgLS1naXQgYS90b29scy9pbnRlbF9wZXJmX2NvdW50ZXJzLmMg Yi90b29scy9pbnRlbF9wZXJmX2NvdW50ZXJzLmMKaW5kZXggNTBjNGJjZTYuLjM4ZjcxNDE5IDEw MDY0NAotLS0gYS90b29scy9pbnRlbF9wZXJmX2NvdW50ZXJzLmMKKysrIGIvdG9vbHMvaW50ZWxf cGVyZl9jb3VudGVycy5jCkBAIC0zMDAsNiArMzAwLDggQEAgdWludDMyX3QgKnRvdGFsczsKIHVp bnQzMl90ICpsYXN0X2NvdW50ZXI7CiBzdGF0aWMgZHJtX2ludGVsX2J1Zm1nciAqYnVmbWdyOwog c3RydWN0IGludGVsX2JhdGNoYnVmZmVyICpiYXRjaDsKK3ZvaWQgKmlndF9nbG9iYWxfbW1pbzsK K3N0YXRpYyBzdHJ1Y3QgX21taW9fZGF0YSBtbWlvX2RhdGE7CiAKIC8qIERXMCAqLwogI2RlZmlu ZSBHRU41X01JX1JFUE9SVF9QRVJGX0NPVU5UICgoMHgyNiA8PCAyMykgfCAoMyAtIDIpKQpAQCAt NDgzLDEyICs0ODUsMTUgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAKIAlpZiAob2Fj b250cm9sKSB7CiAJCS8qIEZvcmNld2FrZSAqLwotCQlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfaW5p dChpbnRlbF9nZXRfcGNpX2RldmljZSgpLCAwLCBmZCk7CisJCWludGVsX3JlZ2lzdGVyX2FjY2Vz c19pbml0KCZtbWlvX2RhdGEsIGludGVsX2dldF9wY2lfZGV2aWNlKCksCisJCQkJCSAgIDAsIGZk KTsKKwkJaWd0X2dsb2JhbF9tbWlvID0gbW1pb19kYXRhLmlndF9tbWlvOwogCiAJCS8qIEVuYWJs ZSBwZXJmb3JtYW5jZSBjb3VudGVycyAqLwotCQlpbnRlbF9yZWdpc3Rlcl93cml0ZShPQUNPTlRS T0wsCi0JCQljb3VudGVyX2Zvcm1hdCA8PCBPQUNPTlRST0xfQ09VTlRFUl9TRUxFQ1RfU0hJRlQg fAotCQkJUEVSRk9STUFOQ0VfQ09VTlRFUl9FTkFCTEUpOworCQlpbnRlbF9yZWdpc3Rlcl93cml0 ZSgmbW1pb19kYXRhLCBPQUNPTlRST0wsCisJCQkJICAgICBjb3VudGVyX2Zvcm1hdCA8PAorCQkJ CSAgICAgT0FDT05UUk9MX0NPVU5URVJfU0VMRUNUX1NISUZUIHwKKwkJCQkgICAgIFBFUkZPUk1B TkNFX0NPVU5URVJfRU5BQkxFKTsKIAl9CiAKIAl0b3RhbHMgPSBjYWxsb2MoY291bnRlcl9jb3Vu dCwgc2l6ZW9mKHVpbnQzMl90KSk7CkBAIC01MjAsMTAgKzUyNSwxMCBAQCBtYWluKGludCBhcmdj LCBjaGFyICoqYXJndikKIAogCWlmIChvYWNvbnRyb2wpIHsKIAkJLyogRGlzYWJsZSBwZXJmb3Jt YW5jZSBjb3VudGVycyAqLwotCQlpbnRlbF9yZWdpc3Rlcl93cml0ZShPQUNPTlRST0wsIDApOwor CQlpbnRlbF9yZWdpc3Rlcl93cml0ZSgmbW1pb19kYXRhLCBPQUNPTlRST0wsIDApOwogCiAJCS8q IEZvcmNld2FrZSAqLwotCQlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfZmluaSgpOworCQlpbnRlbF9y ZWdpc3Rlcl9hY2Nlc3NfZmluaSgmbW1pb19kYXRhKTsKIAl9CiAKIAlmcmVlKHRvdGFscyk7CmRp ZmYgLS1naXQgYS90b29scy9pbnRlbF9yZWcuYyBiL3Rvb2xzL2ludGVsX3JlZy5jCmluZGV4IDI0 NzUzNmU3Li4yYzMyNzk2NyAxMDA2NDQKLS0tIGEvdG9vbHMvaW50ZWxfcmVnLmMKKysrIGIvdG9v bHMvaW50ZWxfcmVnLmMKQEAgLTg0LDYgKzg0LDkgQEAgc3RydWN0IGNvbmZpZyB7CiAJaW50IHZl cmJvc2l0eTsKIH07CiAKK3ZvaWQgKmlndF9nbG9iYWxfbW1pbzsKK3N0YXRpYyBzdHJ1Y3QgX21t aW9fZGF0YSBtbWlvX2RhdGE7CisKIC8qIHBvcnQgZGVzYyBtdXN0IGhhdmUgYmVlbiBzZXQgKi8K IHN0YXRpYyBpbnQgc2V0X3JlZ19ieV9hZGRyKHN0cnVjdCBjb25maWcgKmNvbmZpZywgc3RydWN0 IHJlZyAqcmVnLAogCQkJICAgdWludDMyX3QgYWRkcikKQEAgLTM5MCw3ICszOTMsOCBAQCBzdGF0 aWMgaW50IHJlYWRfcmVnaXN0ZXIoc3RydWN0IGNvbmZpZyAqY29uZmlnLCBzdHJ1Y3QgcmVnICpy ZWcsIHVpbnQzMl90ICp2YWxwKQogCQkJCXJlZy0+cG9ydF9kZXNjLm5hbWUpOwogCQkJcmV0dXJu IC0xOwogCQl9Ci0JCXZhbCA9IGludGVsX2lvc2Zfc2JfcmVhZChyZWctPnBvcnRfZGVzYy5wb3J0 LCByZWctPmFkZHIpOworCQl2YWwgPSBpbnRlbF9pb3NmX3NiX3JlYWQoJm1taW9fZGF0YSwgcmVn LT5wb3J0X2Rlc2MucG9ydCwKKwkJCQkJIHJlZy0+YWRkcik7CiAJCWJyZWFrOwogCWRlZmF1bHQ6 CiAJCWZwcmludGYoc3RkZXJyLCAicG9ydCAlZCBub3Qgc3VwcG9ydGVkXG4iLCByZWctPnBvcnRf ZGVzYy5wb3J0KTsKQEAgLTQ2Miw3ICs0NjYsOCBAQCBzdGF0aWMgaW50IHdyaXRlX3JlZ2lzdGVy KHN0cnVjdCBjb25maWcgKmNvbmZpZywgc3RydWN0IHJlZyAqcmVnLCB1aW50MzJfdCB2YWwpCiAJ CQkJcmVnLT5wb3J0X2Rlc2MubmFtZSk7CiAJCQlyZXR1cm4gLTE7CiAJCX0KLQkJaW50ZWxfaW9z Zl9zYl93cml0ZShyZWctPnBvcnRfZGVzYy5wb3J0LCByZWctPmFkZHIsIHZhbCk7CisJCWludGVs X2lvc2Zfc2Jfd3JpdGUoJm1taW9fZGF0YSwgcmVnLT5wb3J0X2Rlc2MucG9ydCwgcmVnLT5hZGRy LAorCQkJCSAgICB2YWwpOwogCQlicmVhazsKIAlkZWZhdWx0OgogCQlmcHJpbnRmKHN0ZGVyciwg InBvcnQgJWQgbm90IHN1cHBvcnRlZFxuIiwgcmVnLT5wb3J0X2Rlc2MucG9ydCk7CkBAIC01NTYs OSArNTYxLDEwIEBAIHN0YXRpYyBpbnQgaW50ZWxfcmVnX3JlYWQoc3RydWN0IGNvbmZpZyAqY29u ZmlnLCBpbnQgYXJnYywgY2hhciAqYXJndltdKQogCX0KIAogCWlmIChjb25maWctPm1taW9maWxl KQotCQlpbnRlbF9tbWlvX3VzZV9kdW1wX2ZpbGUoY29uZmlnLT5tbWlvZmlsZSk7CisJCWludGVs X21taW9fdXNlX2R1bXBfZmlsZSgmbW1pb19kYXRhLCBjb25maWctPm1taW9maWxlKTsKIAllbHNl Ci0JCWludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0KGNvbmZpZy0+cGNpX2RldiwgMCwgLTEpOwor CQlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfaW5pdCgmbW1pb19kYXRhLCBjb25maWctPnBjaV9kZXYs IDAsIC0xKTsKKwlpZ3RfZ2xvYmFsX21taW8gPSBtbWlvX2RhdGEuaWd0X21taW87CiAKIAlmb3Ig KGkgPSAxOyBpIDwgYXJnYzsgaSsrKSB7CiAJCXN0cnVjdCByZWcgcmVnOwpAQCAtNTc0LDcgKzU4 MCw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfcmVnX3JlYWQoc3RydWN0IGNvbmZpZyAqY29uZmlnLCBp bnQgYXJnYywgY2hhciAqYXJndltdKQogCQl9CiAJfQogCi0JaW50ZWxfcmVnaXN0ZXJfYWNjZXNz X2ZpbmkoKTsKKwlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfZmluaSgmbW1pb19kYXRhKTsKIAogCXJl dHVybiBFWElUX1NVQ0NFU1M7CiB9CkBAIC01ODgsNyArNTk0LDggQEAgc3RhdGljIGludCBpbnRl bF9yZWdfd3JpdGUoc3RydWN0IGNvbmZpZyAqY29uZmlnLCBpbnQgYXJnYywgY2hhciAqYXJndltd KQogCQlyZXR1cm4gRVhJVF9GQUlMVVJFOwogCX0KIAotCWludGVsX3JlZ2lzdGVyX2FjY2Vzc19p bml0KGNvbmZpZy0+cGNpX2RldiwgMCwgLTEpOworCWludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0 KCZtbWlvX2RhdGEsIGNvbmZpZy0+cGNpX2RldiwgMCwgLTEpOworCWlndF9nbG9iYWxfbW1pbyA9 IG1taW9fZGF0YS5pZ3RfbW1pbzsKIAogCWZvciAoaSA9IDE7IGkgPCBhcmdjOyBpICs9IDIpIHsK IAkJc3RydWN0IHJlZyByZWc7CkBAIC02MTMsNyArNjIwLDcgQEAgc3RhdGljIGludCBpbnRlbF9y ZWdfd3JpdGUoc3RydWN0IGNvbmZpZyAqY29uZmlnLCBpbnQgYXJnYywgY2hhciAqYXJndltdKQog CQl3cml0ZV9yZWdpc3Rlcihjb25maWcsICZyZWcsIHZhbCk7CiAJfQogCi0JaW50ZWxfcmVnaXN0 ZXJfYWNjZXNzX2ZpbmkoKTsKKwlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfZmluaSgmbW1pb19kYXRh KTsKIAogCXJldHVybiBFWElUX1NVQ0NFU1M7CiB9CkBAIC02MjQsOSArNjMxLDEwIEBAIHN0YXRp YyBpbnQgaW50ZWxfcmVnX2R1bXAoc3RydWN0IGNvbmZpZyAqY29uZmlnLCBpbnQgYXJnYywgY2hh ciAqYXJndltdKQogCWludCBpOwogCiAJaWYgKGNvbmZpZy0+bW1pb2ZpbGUpCi0JCWludGVsX21t aW9fdXNlX2R1bXBfZmlsZShjb25maWctPm1taW9maWxlKTsKKwkJaW50ZWxfbW1pb191c2VfZHVt cF9maWxlKCZtbWlvX2RhdGEsIGNvbmZpZy0+bW1pb2ZpbGUpOwogCWVsc2UKLQkJaW50ZWxfcmVn aXN0ZXJfYWNjZXNzX2luaXQoY29uZmlnLT5wY2lfZGV2LCAwLCAtMSk7CisJCWludGVsX3JlZ2lz dGVyX2FjY2Vzc19pbml0KCZtbWlvX2RhdGEsIGNvbmZpZy0+cGNpX2RldiwgMCwgLTEpOworCWln dF9nbG9iYWxfbW1pbyA9IG1taW9fZGF0YS5pZ3RfbW1pbzsKIAogCWZvciAoaSA9IDA7IGkgPCBj b25maWctPnJlZ2NvdW50OyBpKyspIHsKIAkJcmVnID0gJmNvbmZpZy0+cmVnc1tpXTsKQEAgLTYz OCw3ICs2NDYsNyBAQCBzdGF0aWMgaW50IGludGVsX3JlZ19kdW1wKHN0cnVjdCBjb25maWcgKmNv bmZpZywgaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAkJZHVtcF9yZWdpc3Rlcihjb25maWcsICZj b25maWctPnJlZ3NbaV0pOwogCX0KIAotCWludGVsX3JlZ2lzdGVyX2FjY2Vzc19maW5pKCk7CisJ aW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2ZpbmkoJm1taW9fZGF0YSk7CiAKIAlyZXR1cm4gRVhJVF9T VUNDRVNTOwogfQpAQCAtNjUyLDcgKzY2MCw4IEBAIHN0YXRpYyBpbnQgaW50ZWxfcmVnX3NuYXBz aG90KHN0cnVjdCBjb25maWcgKmNvbmZpZywgaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAkJcmV0 dXJuIEVYSVRfRkFJTFVSRTsKIAl9CiAKLQlpbnRlbF9tbWlvX3VzZV9wY2lfYmFyKGNvbmZpZy0+ cGNpX2RldiwgLTEpOworCWludGVsX21taW9fdXNlX3BjaV9iYXIoJm1taW9fZGF0YSwgY29uZmln LT5wY2lfZGV2LCAtMSk7CisJaWd0X2dsb2JhbF9tbWlvID0gbW1pb19kYXRhLmlndF9tbWlvOwog CiAJLyogWFhYOiBlcnJvciBoYW5kbGluZyAqLwogCWlmICh3cml0ZSgxLCBpZ3RfZ2xvYmFsX21t aW8sIGNvbmZpZy0+cGNpX2Rldi0+cmVnaW9uc1ttbWlvX2Jhcl0uc2l6ZSkgPT0gLTEpCmRpZmYg LS1naXQgYS90b29scy9pbnRlbF9yZWdfY2hlY2tlci5jIGIvdG9vbHMvaW50ZWxfcmVnX2NoZWNr ZXIuYwppbmRleCAxZDQwY2Q4Mi4uMWNjOWZhNzYgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2ludGVsX3Jl Z19jaGVja2VyLmMKKysrIGIvdG9vbHMvaW50ZWxfcmVnX2NoZWNrZXIuYwpAQCAtMzIsNiArMzIs OSBAQAogc3RhdGljIHVpbnQzMl90IGRldmlkOwogc3RhdGljIGludCBnZW47CiAKK3N0YXRpYyBz dHJ1Y3QgX21taW9fZGF0YSBtbWlvX2RhdGE7Cit2b2lkICppZ3RfZ2xvYmFsX21taW87CisKIHN0 YXRpYyB1aW50MzJfdAogcmVhZF9hbmRfcHJpbnRfcmVnKGNvbnN0IGNoYXIgKm5hbWUsIHVpbnQz Ml90IHJlZykKIHsKQEAgLTM0NSw3ICszNDgsOCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhcioq IGFyZ3YpCiAKIAlkZXYgPSBpbnRlbF9nZXRfcGNpX2RldmljZSgpOwogCWRldmlkID0gZGV2LT5k ZXZpY2VfaWQ7Ci0JaW50ZWxfbW1pb191c2VfcGNpX2JhcihkZXYsIC0xKTsKKwlpbnRlbF9tbWlv X3VzZV9wY2lfYmFyKCZtbWlvX2RhdGEsIGRldiwgLTEpOworCWlndF9nbG9iYWxfbW1pbyA9IG1t aW9fZGF0YS5pZ3RfbW1pbzsKIAogCWlmIChJU19HRU43KGRldmlkKSkKIAkJZ2VuID0gNzsKZGlm ZiAtLWdpdCBhL3Rvb2xzL2ludGVsX3dhdGVybWFyay5jIGIvdG9vbHMvaW50ZWxfd2F0ZXJtYXJr LmMKaW5kZXggMDBiZGQxMjAuLjNmMjY3ZmE2IDEwMDY0NAotLS0gYS90b29scy9pbnRlbF93YXRl cm1hcmsuYworKysgYi90b29scy9pbnRlbF93YXRlcm1hcmsuYwpAQCAtMzUsNiArMzUsOCBAQAog CiBzdGF0aWMgdWludDMyX3QgZGlzcGxheV9iYXNlOwogc3RhdGljIHVpbnQzMl90IGRldmlkOwor dm9pZCAqaWd0X2dsb2JhbF9tbWlvOworc3RhdGljIHN0cnVjdCBfbW1pb19kYXRhIG1taW9fZGF0 YTsKIAogc3RhdGljIHVpbnQzMl90IHJlYWRfcmVnKHVpbnQzMl90IGFkZHIpCiB7CkBAIC0yNDks NyArMjUxLDggQEAgc3RhdGljIHZvaWQgc2tsX3dtX2R1bXAodm9pZCkKIAl1aW50MzJfdCBwbGFu ZV9jdGxbbnVtX3BpcGVzXVttYXhfcGxhbmVzXTsKIAl1aW50MzJfdCB3bV9saW5ldGltZVtudW1f cGlwZXNdOwogCi0JaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQoaW50ZWxfZ2V0X3BjaV9kZXZp Y2UoKSwgMCwgLTEpOworCWludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0KCZtbWlvX2RhdGEsIGlu dGVsX2dldF9wY2lfZGV2aWNlKCksIDAsIC0xKTsKKwlpZ3RfZ2xvYmFsX21taW8gPSBtbWlvX2Rh dGEuaWd0X21taW87CiAKIAlmb3IgKHBpcGUgPSAwOyBwaXBlIDwgbnVtX3BpcGVzOyBwaXBlKysp IHsKIAkJaW50IG51bV9wbGFuZXMgPSBza2xfbnVtX3BsYW5lcyhkZXZpZCwgcGlwZSk7CkBAIC00 NjksNyArNDcyLDggQEAgc3RhdGljIHZvaWQgaWxrX3dtX2R1bXAodm9pZCkKIAlpbnQgbnVtX3Bp cGVzID0gaW50ZWxfZ2VuKGRldmlkKSA+PSA3ID8gMyA6IDI7CiAJc3RydWN0IGlsa193bSB3bSA9 IHt9OwogCi0JaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQoaW50ZWxfZ2V0X3BjaV9kZXZpY2Uo KSwgMCwgLTEpOworCWludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0KCZtbWlvX2RhdGEsIGludGVs X2dldF9wY2lfZGV2aWNlKCksIDAsIC0xKTsKKwlpZ3RfZ2xvYmFsX21taW8gPSBtbWlvX2RhdGEu aWd0X21taW87CiAKIAlmb3IgKGkgPSAwOyBpIDwgbnVtX3BpcGVzOyBpKyspIHsKIAkJZHNwY250 cltpXSA9IHJlYWRfcmVnKDB4NzAxODAgKyBpICogMHgxMDAwKTsKQEAgLTUwNSw3ICs1MDksNyBA QCBzdGF0aWMgdm9pZCBpbGtfd21fZHVtcCh2b2lkKQogCWlmIChJU19CUk9BRFdFTEwoZGV2aWQp IHx8IElTX0hBU1dFTEwoZGV2aWQpKQogCQl3bV9taXNjID0gcmVhZF9yZWcoMHg0NTI2MCk7CiAK LQlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfZmluaSgpOworCWludGVsX3JlZ2lzdGVyX2FjY2Vzc19m aW5pKCZtbWlvX2RhdGEpOwogCiAJZm9yIChpID0gMDsgaSA8IG51bV9waXBlczsgaSsrKQogCQlw cmludGYoIiAgICBXTV9QSVBFXyVjID0gMHglMDh4XG4iLCBwaXBlX25hbWUoaSksIHdtX3BpcGVb aV0pOwpAQCAtNjE5LDcgKzYyMyw4IEBAIHN0YXRpYyB2b2lkIHZsdl93bV9kdW1wKHZvaWQpCiAJ dWludDMyX3QgZHNwX3NzX3BtLCBkZHJfc2V0dXAyOwogCXN0cnVjdCBnbWNoX3dtIHdtc1tNQVhf UExBTkVdID0ge307CiAKLQlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfaW5pdChpbnRlbF9nZXRfcGNp X2RldmljZSgpLCAwLCAtMSk7CisJaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQoJm1taW9fZGF0 YSwgaW50ZWxfZ2V0X3BjaV9kZXZpY2UoKSwgMCwgLTEpOworCWlndF9nbG9iYWxfbW1pbyA9IG1t aW9fZGF0YS5pZ3RfbW1pbzsKIAogCWRzcGFyYiA9IHJlYWRfcmVnKDB4NzAwMzApOwogCWRzcGFy YjIgPSByZWFkX3JlZygweDcwMDYwKTsKQEAgLTY1MCwxMyArNjU1LDEzIEBAIHN0YXRpYyB2b2lk IHZsdl93bV9kdW1wKHZvaWQpCiAKIAkJZGRsMyA9IHJlYWRfcmVnKDB4NzAwNTgpOwogCi0JCWlu dGVsX3B1bml0X3JlYWQoMHgzNiwgJmRzcF9zc19wbSk7Ci0JCWludGVsX3B1bml0X3JlYWQoMHgx MzksICZkZHJfc2V0dXAyKTsKKwkJaW50ZWxfcHVuaXRfcmVhZCgmbW1pb19kYXRhLCAweDM2LCAm ZHNwX3NzX3BtKTsKKwkJaW50ZWxfcHVuaXRfcmVhZCgmbW1pb19kYXRhLCAweDEzOSwgJmRkcl9z ZXR1cDIpOwogCX0gZWxzZSB7CiAJCWZ3NyA9IHJlYWRfcmVnKDB4NzAwN2MpOwogCX0KIAotCWlu dGVsX3JlZ2lzdGVyX2FjY2Vzc19maW5pKCk7CisJaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2Zpbmko Jm1taW9fZGF0YSk7CiAKIAlwcmludGYoIiAgICAgICAgRlcxID0gMHglMDh4XG4iLCBmdzEpOwog CXByaW50ZigiICAgICAgICBGVzIgPSAweCUwOHhcbiIsIGZ3Mik7CkBAIC04MzUsNyArODQwLDgg QEAgc3RhdGljIHZvaWQgZzR4X3dtX2R1bXAodm9pZCkKIAl1aW50MzJfdCBtaV9hcmJfc3RhdGU7 CiAJc3RydWN0IGdtY2hfd20gd21zW01BWF9QTEFORV0gPSB7fTsKIAotCWludGVsX3JlZ2lzdGVy X2FjY2Vzc19pbml0KGludGVsX2dldF9wY2lfZGV2aWNlKCksIDAsIC0xKTsKKwlpbnRlbF9yZWdp c3Rlcl9hY2Nlc3NfaW5pdCgmbW1pb19kYXRhLCBpbnRlbF9nZXRfcGNpX2RldmljZSgpLCAwLCAt MSk7CisJaWd0X2dsb2JhbF9tbWlvID0gbW1pb19kYXRhLmlndF9tbWlvOwogCiAJZHNwYWNudHIg PSByZWFkX3JlZygweDcwMTgwKTsKIAlkc3BiY250ciA9IHJlYWRfcmVnKDB4NzExODApOwpAQCAt ODQ2LDcgKzg1Miw3IEBAIHN0YXRpYyB2b2lkIGc0eF93bV9kdW1wKHZvaWQpCiAJbWlfZGlzcGxh eV9wb3dlcl9kb3duID0gcmVhZF9yZWcoMHgyMGUwKTsKIAltaV9hcmJfc3RhdGUgPSByZWFkX3Jl ZygweDIwZTQpOwogCi0JaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2ZpbmkoKTsKKwlpbnRlbF9yZWdp c3Rlcl9hY2Nlc3NfZmluaSgmbW1pb19kYXRhKTsKIAogCXByaW50ZigiICAgICAgICAgICAgIERT UEFDTlRSID0gMHglMDh4XG4iLCBkc3BhY250cik7CiAJcHJpbnRmKCIgICAgICAgICAgICAgRFNQ QkNOVFIgPSAweCUwOHhcbiIsIGRzcGJjbnRyKTsKQEAgLTkyMSw3ICs5MjcsOCBAQCBzdGF0aWMg dm9pZCBnZW40X3dtX2R1bXAodm9pZCkKIAl1aW50MzJfdCBtaV9hcmJfc3RhdGU7CiAJc3RydWN0 IGdtY2hfd20gd21zW01BWF9QTEFORV0gPSB7fTsKIAotCWludGVsX3JlZ2lzdGVyX2FjY2Vzc19p bml0KGludGVsX2dldF9wY2lfZGV2aWNlKCksIDAsIC0xKTsKKwlpbnRlbF9yZWdpc3Rlcl9hY2Nl c3NfaW5pdCgmbW1pb19kYXRhLCBpbnRlbF9nZXRfcGNpX2RldmljZSgpLCAwLCAtMSk7CisJaWd0 X2dsb2JhbF9tbWlvID0gbW1pb19kYXRhLmlndF9tbWlvOwogCiAJZHNwYXJiID0gcmVhZF9yZWco MHg3MDAzMCk7CiAJZncxID0gcmVhZF9yZWcoMHg3MDAzNCk7CkBAIC05MzAsNyArOTM3LDcgQEAg c3RhdGljIHZvaWQgZ2VuNF93bV9kdW1wKHZvaWQpCiAJbWlfZGlzcGxheV9wb3dlcl9kb3duID0g cmVhZF9yZWcoMHgyMGUwKTsKIAltaV9hcmJfc3RhdGUgPSByZWFkX3JlZygweDIwZTQpOwogCi0J aW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2ZpbmkoKTsKKwlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfZmlu aSgmbW1pb19kYXRhKTsKIAogCXByaW50ZigiICAgICAgICAgICAgICAgICAgRlcxID0gMHglMDh4 XG4iLCBmdzEpOwogCXByaW50ZigiICAgICAgICAgICAgICAgICAgRlcyID0gMHglMDh4XG4iLCBm dzIpOwpAQCAtOTkyLDcgKzk5OSw4IEBAIHN0YXRpYyB2b2lkIHBudl93bV9kdW1wKHZvaWQpCiAJ dWludDMyX3QgY2JyOwogCXN0cnVjdCBnbWNoX3dtIHdtc1tNQVhfUExBTkVdID0ge307CiAKLQlp bnRlbF9yZWdpc3Rlcl9hY2Nlc3NfaW5pdChpbnRlbF9nZXRfcGNpX2RldmljZSgpLCAwLCAtMSk7 CisJaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQoJm1taW9fZGF0YSwgaW50ZWxfZ2V0X3BjaV9k ZXZpY2UoKSwgMCwgLTEpOworCWlndF9nbG9iYWxfbW1pbyA9IG1taW9fZGF0YS5pZ3RfbW1pbzsK IAogCWRzcGFyYiA9IHJlYWRfcmVnKDB4NzAwMzApOwogCWZ3MSA9IHJlYWRfcmVnKDB4NzAwMzQp OwpAQCAtMTAwMiw3ICsxMDEwLDcgQEAgc3RhdGljIHZvaWQgcG52X3dtX2R1bXAodm9pZCkKIAlt aV9kaXNwbGF5X3Bvd2VyX2Rvd24gPSByZWFkX3JlZygweDIwZTApOwogCW1pX2FyYl9zdGF0ZSA9 IHJlYWRfcmVnKDB4MjBlNCk7CiAKLQlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfZmluaSgpOworCWlu dGVsX3JlZ2lzdGVyX2FjY2Vzc19maW5pKCZtbWlvX2RhdGEpOwogCiAJcHJpbnRmKCIgICAgICAg ICAgICAgICBEU1BBUkIgPSAweCUwOHhcbiIsIGRzcGFyYik7CiAJcHJpbnRmKCIgICAgICAgICAg ICAgICAgICBGVzEgPSAweCUwOHhcbiIsIGZ3MSk7CkBAIC0xMDgyLDcgKzEwOTAsOCBAQCBzdGF0 aWMgdm9pZCBnZW4zX3dtX2R1bXAodm9pZCkKIAl1aW50MzJfdCBtaV9hcmJfc3RhdGU7CiAJc3Ry dWN0IGdtY2hfd20gd21zW01BWF9QTEFORV0gPSB7fTsKIAotCWludGVsX3JlZ2lzdGVyX2FjY2Vz c19pbml0KGludGVsX2dldF9wY2lfZGV2aWNlKCksIDAsIC0xKTsKKwlpbnRlbF9yZWdpc3Rlcl9h Y2Nlc3NfaW5pdCgmbW1pb19kYXRhLCBpbnRlbF9nZXRfcGNpX2RldmljZSgpLCAwLCAtMSk7CisJ aWd0X2dsb2JhbF9tbWlvID0gbW1pb19kYXRhLmlndF9tbWlvOwogCiAJZHNwYXJiID0gcmVhZF9y ZWcoMHg3MDAzMCk7CiAJaW5zdHBtID0gcmVhZF9yZWcoMHgyMGMwKTsKQEAgLTEwOTAsNyArMTA5 OSw3IEBAIHN0YXRpYyB2b2lkIGdlbjNfd21fZHVtcCh2b2lkKQogCWZ3X2JsY19zZWxmID0gcmVh ZF9yZWcoMHgyMGUwKTsKIAltaV9hcmJfc3RhdGUgPSByZWFkX3JlZygweDIwZTQpOwogCi0JaW50 ZWxfcmVnaXN0ZXJfYWNjZXNzX2ZpbmkoKTsKKwlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfZmluaSgm bW1pb19kYXRhKTsKIAogCXByaW50ZigiICAgICAgRFNQQVJCID0gMHglMDh4XG4iLCBkc3BhcmIp OwogCXByaW50ZigiICAgICAgRldfQkxDID0gMHglMDE2IiBQUkl4NjQgIlxuIiwgZndfYmxjKTsK QEAgLTExNTEsNyArMTE2MCw4IEBAIHN0YXRpYyB2b2lkIGdlbjJfd21fZHVtcCh2b2lkKQogCXVp bnQzMl90IG1pX3N0YXRlOwogCXN0cnVjdCBnbWNoX3dtIHdtc1tNQVhfUExBTkVdID0ge307CiAK LQlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfaW5pdChpbnRlbF9nZXRfcGNpX2RldmljZSgpLCAwLCAt MSk7CisJaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQoJm1taW9fZGF0YSwgaW50ZWxfZ2V0X3Bj aV9kZXZpY2UoKSwgMCwgLTEpOworCWlndF9nbG9iYWxfbW1pbyA9IG1taW9fZGF0YS5pZ3RfbW1p bzsKIAogCWRzcGFyYiA9IHJlYWRfcmVnKDB4NzAwMzApOwogCW1lbV9tb2RlID0gcmVhZF9yZWco MHgyMGNjKTsKQEAgLTExNTksNyArMTE2OSw3IEBAIHN0YXRpYyB2b2lkIGdlbjJfd21fZHVtcCh2 b2lkKQogCWZ3X2JsY19zZWxmID0gcmVhZF9yZWcoMHgyMGUwKTsKIAltaV9zdGF0ZSA9IHJlYWRf cmVnKDB4MjBlNCk7CiAKLQlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfZmluaSgpOworCWludGVsX3Jl Z2lzdGVyX2FjY2Vzc19maW5pKCZtbWlvX2RhdGEpOwogCiAJcHJpbnRmKCIgICAgIERTUEFSQiA9 IDB4JTA4eFxuIiwgZHNwYXJiKTsKIAlwcmludGYoIiAgIE1FTV9NT0RFID0gMHglMDh4XG4iLCBt ZW1fbW9kZSk7Ci0tIAoyLjIwLjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0 LWRldg==