From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andy Shevchenko Subject: [PATCH v3 5/5] ACPI: Switch to use generic guid_t in acpi_evaluate_dsm() Date: Mon, 5 Jun 2017 19:40:46 +0300 Message-ID: <20170605164046.82676-6-andriy.shevchenko@linux.intel.com> References: <20170605164046.82676-1-andriy.shevchenko@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170605164046.82676-1-andriy.shevchenko@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Christoph Hellwig , linux-kernel@vger.kernel.org, "Rafael J . Wysocki" , linux-acpi@vger.kernel.org, Dan Williams , Mika Westerberg , Borislav Petkov , intel-gfx@lists.freedesktop.org Cc: Yisen Zhuang , Andy Shevchenko , Amir Goldstein , Ben Skeggs List-Id: linux-acpi@vger.kernel.org YWNwaV9ldmFsdWF0ZV9kc20oKSBhbmQgZnJpZW5kcyB0YWtlIGEgcG9pbnRlciB0byBhIHJhdyBi dWZmZXIgb2YgMTYKYnl0ZXMuIEluc3RlYWQgd2UgY29udmVydCB0aGVtIHRvIHVzZSBndWlkX3Qg dHlwZS4gQXQgdGhlIHNhbWUgdGltZSB3ZQpjb252ZXJ0IGN1cnJlbnQgdXNlcnMuCgphY3BpX3N0 cl90b191dWlkKCkgYmVjb21lcyB1c2VsZXNzIGFmdGVyIHRoZSBjb252ZXJzaW9uIGFuZCBpdCdz IHNhZmUgdG8KZ2V0IHJpZCBvZiBpdC4KCkFja2VkLWJ5OiBSYWZhZWwgSi4gV3lzb2NraSA8cmFm YWVsLmoud3lzb2NraUBpbnRlbC5jb20+CkNjOiBCb3Jpc2xhdiBQZXRrb3YgPGJwQHN1c2UuZGU+ CkFja2VkLWJ5OiBEYW4gV2lsbGlhbXMgPGRhbi5qLndpbGxpYW1zQGludGVsLmNvbT4KQ2M6IEFt aXIgR29sZHN0ZWluIDxhbWlyNzNpbEBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBKYXJra28gU2Fr a2luZW4gPGphcmtrby5zYWtraW5lbkBsaW51eC5pbnRlbC5jb20+ClJldmlld2VkLWJ5OiBKYW5p IE5pa3VsYSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPgpBY2tlZC1ieTogSmFuaSBOaWt1bGEgPGph bmkubmlrdWxhQGludGVsLmNvbT4KQ2M6IEJlbiBTa2VnZ3MgPGJza2VnZ3NAcmVkaGF0LmNvbT4K QWNrZWQtYnk6IEJlbmphbWluIFRpc3NvaXJlcyA8YmVuamFtaW4udGlzc29pcmVzQHJlZGhhdC5j b20+CkFja2VkLWJ5OiBKb2VyZyBSb2VkZWwgPGpyb2VkZWxAc3VzZS5kZT4KQWNrZWQtYnk6IEFk cmlhbiBIdW50ZXIgPGFkcmlhbi5odW50ZXJAaW50ZWwuY29tPgpDYzogWWlzZW4gWmh1YW5nIDx5 aXNlbi56aHVhbmdAaHVhd2VpLmNvbT4KQWNrZWQtYnk6IEJqb3JuIEhlbGdhYXMgPGJoZWxnYWFz QGdvb2dsZS5jb20+CkFja2VkLWJ5OiBGZWxpcGUgQmFsYmkgPGZlbGlwZS5iYWxiaUBsaW51eC5p bnRlbC5jb20+CkFja2VkLWJ5OiBNYXRoaWFzIE55bWFuIDxtYXRoaWFzLm55bWFuQGxpbnV4Lmlu dGVsLmNvbT4KUmV2aWV3ZWQtYnk6IEhlaWtraSBLcm9nZXJ1cyA8aGVpa2tpLmtyb2dlcnVzQGxp bnV4LmludGVsLmNvbT4KQWNrZWQtYnk6IE1hcmsgQnJvd24gPGJyb29uaWVAa2VybmVsLm9yZz4K U2lnbmVkLW9mZi1ieTogQW5keSBTaGV2Y2hlbmtvIDxhbmRyaXkuc2hldmNoZW5rb0BsaW51eC5p bnRlbC5jb20+Ci0tLQogZHJpdmVycy9hY3BpL2FjcGlfZXh0bG9nLmMgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgNCArKy0tCiBkcml2ZXJzL2FjcGkvYnVzLmMgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8IDIzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvYWNwaS9u Zml0L2NvcmUuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDYgKysrLS0tCiBkcml2ZXJz L2FjcGkvdXRpbHMuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE2ICsrKysrKyst LS0tLS0tLQogZHJpdmVycy9jaGFyL3RwbS90cG1fY3JiLmMgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgOSArKysrLS0tLS0KIGRyaXZlcnMvY2hhci90cG0vdHBtX3BwaS5jICAgICAgICAgICAg ICAgICAgICAgICAgIHwgMjAgKysrKysrKystLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfYWNwaS5jICAgICAgICAgICAgICAgICAgfCAxNCArKysrKy0tLS0tLS0tCiBkcml2 ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2FjcGkuYyAgICAgICAgICAgICB8IDIwICsrKysr KysrKy0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vc3ViZGV2L214bS9i YXNlLmMgICAgIHwgIDkgKysrKy0tLS0tCiBkcml2ZXJzL2hpZC9pMmMtaGlkL2kyYy1oaWQuYyAg ICAgICAgICAgICAgICAgICAgICB8ICA5ICsrKystLS0tLQogZHJpdmVycy9pb21tdS9kbWFyLmMg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMSArKysrKy0tLS0tLQogZHJpdmVycy9t bWMvaG9zdC9zZGhjaS1wY2ktY29yZS5jICAgICAgICAgICAgICAgICAgfCAgOSArKysrLS0tLS0K IGRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMvaG5zX2RzYWZfbWlzYy5jIHwgMTUg KysrKysrKy0tLS0tLS0KIGRyaXZlcnMvcGNpL3BjaS1hY3BpLmMgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgMTMgKysrKysrLS0tLS0tCiBkcml2ZXJzL3BjaS9wY2ktbGFiZWwuYyAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICsrLS0KIGRyaXZlcnMvdXNiL2R3YzMvZHdjMy1w Y2kuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgMTAgKysrKystLS0tLQogZHJpdmVycy91c2Iv aG9zdC94aGNpLXBjaS5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgOSArKysrLS0tLS0KIGRy aXZlcnMvdXNiL21pc2MvdWNzaS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDYgKysr LS0tCiBkcml2ZXJzL3VzYi90eXBlYy90eXBlY193Y292ZS5jICAgICAgICAgICAgICAgICAgICB8 ICA4ICsrKystLS0tCiBpbmNsdWRlL2FjcGkvYWNwaV9idXMuaCAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IDExICsrKysrKy0tLS0tCiBpbmNsdWRlL2xpbnV4L2FjcGkuaCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAzICstLQogaW5jbHVkZS9saW51eC9wY2ktYWNwaS5oICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogc291bmQvc29jL2ludGVsL3NreWxha2Uv c2tsLW5obHQuYyAgICAgICAgICAgICAgICAgfCAgNyArKysrLS0tCiB0b29scy90ZXN0aW5nL252 ZGltbS90ZXN0L2lvbWFwLmMgICAgICAgICAgICAgICAgICB8ICA2ICsrKy0tLQogdG9vbHMvdGVz dGluZy9udmRpbW0vdGVzdC9uZml0LmMgICAgICAgICAgICAgICAgICAgfCAgMiArLQogMjUgZmls ZXMgY2hhbmdlZCwgMTAzIGluc2VydGlvbnMoKyksIDE0MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2FjcGkvYWNwaV9leHRsb2cuYyBiL2RyaXZlcnMvYWNwaS9hY3BpX2V4dGxv Zy5jCmluZGV4IDE5MzUyOTQxN2NjMy4uNTYwZmRhZThjYzU5IDEwMDY0NAotLS0gYS9kcml2ZXJz L2FjcGkvYWNwaV9leHRsb2cuYworKysgYi9kcml2ZXJzL2FjcGkvYWNwaV9leHRsb2cuYwpAQCAt MTkwLDkgKzE5MCw5IEBAIHN0YXRpYyBib29sIF9faW5pdCBleHRsb2dfZ2V0X2wxYWRkcih2b2lk KQogCQlyZXR1cm4gZmFsc2U7CiAJaWYgKEFDUElfRkFJTFVSRShhY3BpX2dldF9oYW5kbGUoTlVM TCwgIlxcX1NCIiwgJmhhbmRsZSkpKQogCQlyZXR1cm4gZmFsc2U7Ci0JaWYgKCFhY3BpX2NoZWNr X2RzbShoYW5kbGUsIGd1aWQuYiwgRVhUTE9HX0RTTV9SRVYsIDEgPDwgRVhUTE9HX0ZOX0FERFIp KQorCWlmICghYWNwaV9jaGVja19kc20oaGFuZGxlLCAmZ3VpZCwgRVhUTE9HX0RTTV9SRVYsIDEg PDwgRVhUTE9HX0ZOX0FERFIpKQogCQlyZXR1cm4gZmFsc2U7Ci0Jb2JqID0gYWNwaV9ldmFsdWF0 ZV9kc21fdHlwZWQoaGFuZGxlLCBndWlkLmIsIEVYVExPR19EU01fUkVWLAorCW9iaiA9IGFjcGlf ZXZhbHVhdGVfZHNtX3R5cGVkKGhhbmRsZSwgJmd1aWQsIEVYVExPR19EU01fUkVWLAogCQkJCSAg ICAgIEVYVExPR19GTl9BRERSLCBOVUxMLCBBQ1BJX1RZUEVfSU5URUdFUik7CiAJaWYgKCFvYmop IHsKIAkJcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY3BpL2J1cy5jIGIvZHJp dmVycy9hY3BpL2J1cy5jCmluZGV4IDA0MmNkMTYyNjViMy4uNWE2ZmJlMGZjYWYyIDEwMDY0NAot LS0gYS9kcml2ZXJzL2FjcGkvYnVzLmMKKysrIGIvZHJpdmVycy9hY3BpL2J1cy5jCkBAIC0xOTYs MjkgKzE5Niw2IEBAIHN0YXRpYyB2b2lkIGFjcGlfcHJpbnRfb3NjX2Vycm9yKGFjcGlfaGFuZGxl IGhhbmRsZSwKIAlwcl9kZWJ1ZygiXG4iKTsKIH0KIAotYWNwaV9zdGF0dXMgYWNwaV9zdHJfdG9f dXVpZChjaGFyICpzdHIsIHU4ICp1dWlkKQotewotCWludCBpOwotCXN0YXRpYyBpbnQgb3BjX21h cF90b191dWlkWzE2XSA9IHs2LCA0LCAyLCAwLCAxMSwgOSwgMTYsIDE0LCAxOSwgMjEsCi0JCTI0 LCAyNiwgMjgsIDMwLCAzMiwgMzR9OwotCi0JaWYgKHN0cmxlbihzdHIpICE9IDM2KQotCQlyZXR1 cm4gQUVfQkFEX1BBUkFNRVRFUjsKLQlmb3IgKGkgPSAwOyBpIDwgMzY7IGkrKykgewotCQlpZiAo aSA9PSA4IHx8IGkgPT0gMTMgfHwgaSA9PSAxOCB8fCBpID09IDIzKSB7Ci0JCQlpZiAoc3RyW2ld ICE9ICctJykKLQkJCQlyZXR1cm4gQUVfQkFEX1BBUkFNRVRFUjsKLQkJfSBlbHNlIGlmICghaXN4 ZGlnaXQoc3RyW2ldKSkKLQkJCXJldHVybiBBRV9CQURfUEFSQU1FVEVSOwotCX0KLQlmb3IgKGkg PSAwOyBpIDwgMTY7IGkrKykgewotCQl1dWlkW2ldID0gaGV4X3RvX2JpbihzdHJbb3BjX21hcF90 b191dWlkW2ldXSkgPDwgNDsKLQkJdXVpZFtpXSB8PSBoZXhfdG9fYmluKHN0cltvcGNfbWFwX3Rv X3V1aWRbaV0gKyAxXSk7Ci0JfQotCXJldHVybiBBRV9PSzsKLX0KLUVYUE9SVF9TWU1CT0xfR1BM KGFjcGlfc3RyX3RvX3V1aWQpOwotCiBhY3BpX3N0YXR1cyBhY3BpX3J1bl9vc2MoYWNwaV9oYW5k bGUgaGFuZGxlLCBzdHJ1Y3QgYWNwaV9vc2NfY29udGV4dCAqY29udGV4dCkKIHsKIAlhY3BpX3N0 YXR1cyBzdGF0dXM7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2FjcGkvbmZpdC9jb3JlLmMgYi9kcml2 ZXJzL2FjcGkvbmZpdC9jb3JlLmMKaW5kZXggZDliMzlkMGU5ZDZhLi4wOTdlZmYwYjk2M2QgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvYWNwaS9uZml0L2NvcmUuYworKysgYi9kcml2ZXJzL2FjcGkvbmZp dC9jb3JlLmMKQEAgLTI4OSw3ICsyODksNyBAQCBpbnQgYWNwaV9uZml0X2N0bChzdHJ1Y3QgbnZk aW1tX2J1c19kZXNjcmlwdG9yICpuZF9kZXNjLCBzdHJ1Y3QgbnZkaW1tICpudmRpbW0sCiAJCQlp bl9idWYuYnVmZmVyLnBvaW50ZXIsCiAJCQltaW5fdCh1MzIsIDI1NiwgaW5fYnVmLmJ1ZmZlci5s ZW5ndGgpLCB0cnVlKTsKIAotCW91dF9vYmogPSBhY3BpX2V2YWx1YXRlX2RzbShoYW5kbGUsIGd1 aWQuYiwgMSwgZnVuYywgJmluX29iaik7CisJb3V0X29iaiA9IGFjcGlfZXZhbHVhdGVfZHNtKGhh bmRsZSwgZ3VpZCwgMSwgZnVuYywgJmluX29iaik7CiAJaWYgKCFvdXRfb2JqKSB7CiAJCWRldl9k YmcoZGV2LCAiJXM6JXMgX0RTTSBmYWlsZWQgY21kOiAlc1xuIiwgX19mdW5jX18sIGRpbW1fbmFt ZSwKIAkJCQljbWRfbmFtZSk7CkBAIC0xNDc2LDcgKzE0NzYsNyBAQCBzdGF0aWMgaW50IGFjcGlf bmZpdF9hZGRfZGltbShzdHJ1Y3QgYWNwaV9uZml0X2Rlc2MgKmFjcGlfZGVzYywKIAogCWd1aWQg PSB0b19uZml0X3V1aWQobmZpdF9tZW0tPmZhbWlseSk7CiAJZm9yX2VhY2hfc2V0X2JpdChpLCAm ZHNtX21hc2ssIEJJVFNfUEVSX0xPTkcpCi0JCWlmIChhY3BpX2NoZWNrX2RzbShhZGV2X2RpbW0t PmhhbmRsZSwgZ3VpZC5iLCAxLCAxVUxMIDw8IGkpKQorCQlpZiAoYWNwaV9jaGVja19kc20oYWRl dl9kaW1tLT5oYW5kbGUsIGd1aWQsIDEsIDFVTEwgPDwgaSkpCiAJCQlzZXRfYml0KGksICZuZml0 X21lbS0+ZHNtX21hc2spOwogCiAJcmV0dXJuIDA7CkBAIC0xNjIxLDcgKzE2MjEsNyBAQCBzdGF0 aWMgdm9pZCBhY3BpX25maXRfaW5pdF9kc21zKHN0cnVjdCBhY3BpX25maXRfZGVzYyAqYWNwaV9k ZXNjKQogCQlyZXR1cm47CiAKIAlmb3IgKGkgPSBORF9DTURfQVJTX0NBUDsgaSA8PSBORF9DTURf Q0xFQVJfRVJST1I7IGkrKykKLQkJaWYgKGFjcGlfY2hlY2tfZHNtKGFkZXYtPmhhbmRsZSwgZ3Vp ZC5iLCAxLCAxVUxMIDw8IGkpKQorCQlpZiAoYWNwaV9jaGVja19kc20oYWRldi0+aGFuZGxlLCBn dWlkLCAxLCAxVUxMIDw8IGkpKQogCQkJc2V0X2JpdChpLCAmbmRfZGVzYy0+Y21kX21hc2spOwog fQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2FjcGkvdXRpbHMuYyBiL2RyaXZlcnMvYWNwaS91dGls cy5jCmluZGV4IDI3ZDBkY2ZjZjQ3ZC4uNTJkZWM3YTIwZDNmIDEwMDY0NAotLS0gYS9kcml2ZXJz L2FjcGkvdXRpbHMuYworKysgYi9kcml2ZXJzL2FjcGkvdXRpbHMuYwpAQCAtNjEzLDE5ICs2MTMs MTkgQEAgYWNwaV9zdGF0dXMgYWNwaV9ldmFsdWF0ZV9sY2soYWNwaV9oYW5kbGUgaGFuZGxlLCBp bnQgbG9jaykKIC8qKgogICogYWNwaV9ldmFsdWF0ZV9kc20gLSBldmFsdWF0ZSBkZXZpY2UncyBf RFNNIG1ldGhvZAogICogQGhhbmRsZTogQUNQSSBkZXZpY2UgaGFuZGxlCi0gKiBAdXVpZDogVVVJ RCBvZiByZXF1ZXN0ZWQgZnVuY3Rpb25zLCBzaG91bGQgYmUgMTYgYnl0ZXMKKyAqIEBndWlkOiBH VUlEIG9mIHJlcXVlc3RlZCBmdW5jdGlvbnMsIHNob3VsZCBiZSAxNiBieXRlcwogICogQHJldjog cmV2aXNpb24gbnVtYmVyIG9mIHJlcXVlc3RlZCBmdW5jdGlvbgogICogQGZ1bmM6IHJlcXVlc3Rl ZCBmdW5jdGlvbiBudW1iZXIKICAqIEBhcmd2NDogdGhlIGZ1bmN0aW9uIHNwZWNpZmljIHBhcmFt ZXRlcgogICoKLSAqIEV2YWx1YXRlIGRldmljZSdzIF9EU00gbWV0aG9kIHdpdGggc3BlY2lmaWVk IFVVSUQsIHJldmlzaW9uIGlkIGFuZAorICogRXZhbHVhdGUgZGV2aWNlJ3MgX0RTTSBtZXRob2Qg d2l0aCBzcGVjaWZpZWQgR1VJRCwgcmV2aXNpb24gaWQgYW5kCiAgKiBmdW5jdGlvbiBudW1iZXIu IENhbGxlciBuZWVkcyB0byBmcmVlIHRoZSByZXR1cm5lZCBvYmplY3QuCiAgKgogICogVGhvdWdo IEFDUEkgZGVmaW5lcyB0aGUgZm91cnRoIHBhcmFtZXRlciBmb3IgX0RTTSBzaG91bGQgYmUgYSBw YWNrYWdlLAogICogc29tZSBvbGQgQklPU2VzIGRvIGV4cGVjdCBhIGJ1ZmZlciBvciBhbiBpbnRl Z2VyIGV0Yy4KICAqLwogdW5pb24gYWNwaV9vYmplY3QgKgotYWNwaV9ldmFsdWF0ZV9kc20oYWNw aV9oYW5kbGUgaGFuZGxlLCBjb25zdCB1OCAqdXVpZCwgdTY0IHJldiwgdTY0IGZ1bmMsCithY3Bp X2V2YWx1YXRlX2RzbShhY3BpX2hhbmRsZSBoYW5kbGUsIGNvbnN0IGd1aWRfdCAqZ3VpZCwgdTY0 IHJldiwgdTY0IGZ1bmMsCiAJCSAgdW5pb24gYWNwaV9vYmplY3QgKmFyZ3Y0KQogewogCWFjcGlf c3RhdHVzIHJldDsKQEAgLTYzOCw3ICs2MzgsNyBAQCBhY3BpX2V2YWx1YXRlX2RzbShhY3BpX2hh bmRsZSBoYW5kbGUsIGNvbnN0IHU4ICp1dWlkLCB1NjQgcmV2LCB1NjQgZnVuYywKIAogCXBhcmFt c1swXS50eXBlID0gQUNQSV9UWVBFX0JVRkZFUjsKIAlwYXJhbXNbMF0uYnVmZmVyLmxlbmd0aCA9 IDE2OwotCXBhcmFtc1swXS5idWZmZXIucG9pbnRlciA9IChjaGFyICopdXVpZDsKKwlwYXJhbXNb MF0uYnVmZmVyLnBvaW50ZXIgPSAodTggKikmZ3VpZDsKIAlwYXJhbXNbMV0udHlwZSA9IEFDUElf VFlQRV9JTlRFR0VSOwogCXBhcmFtc1sxXS5pbnRlZ2VyLnZhbHVlID0gcmV2OwogCXBhcmFtc1sy XS50eXBlID0gQUNQSV9UWVBFX0lOVEVHRVI7CkBAIC02NjYsNyArNjY2LDcgQEAgRVhQT1JUX1NZ TUJPTChhY3BpX2V2YWx1YXRlX2RzbSk7CiAvKioKICAqIGFjcGlfY2hlY2tfZHNtIC0gY2hlY2sg aWYgX0RTTSBtZXRob2Qgc3VwcG9ydHMgcmVxdWVzdGVkIGZ1bmN0aW9ucy4KICAqIEBoYW5kbGU6 IEFDUEkgZGV2aWNlIGhhbmRsZQotICogQHV1aWQ6IFVVSUQgb2YgcmVxdWVzdGVkIGZ1bmN0aW9u cywgc2hvdWxkIGJlIDE2IGJ5dGVzIGF0IGxlYXN0CisgKiBAZ3VpZDogR1VJRCBvZiByZXF1ZXN0 ZWQgZnVuY3Rpb25zLCBzaG91bGQgYmUgMTYgYnl0ZXMgYXQgbGVhc3QKICAqIEByZXY6IHJldmlz aW9uIG51bWJlciBvZiByZXF1ZXN0ZWQgZnVuY3Rpb25zCiAgKiBAZnVuY3M6IGJpdG1hcCBvZiBy ZXF1ZXN0ZWQgZnVuY3Rpb25zCiAgKgpAQCAtNjc0LDcgKzY3NCw3IEBAIEVYUE9SVF9TWU1CT0wo YWNwaV9ldmFsdWF0ZV9kc20pOwogICogZnVuY3Rpb25zLiBDdXJyZW50bHkgb25seSBzdXBwb3J0 IDY0IGZ1bmN0aW9ucyBhdCBtYXhpbXVtLCBzaG91bGQgYmUKICAqIGVub3VnaCBmb3Igbm93Lgog ICovCi1ib29sIGFjcGlfY2hlY2tfZHNtKGFjcGlfaGFuZGxlIGhhbmRsZSwgY29uc3QgdTggKnV1 aWQsIHU2NCByZXYsIHU2NCBmdW5jcykKK2Jvb2wgYWNwaV9jaGVja19kc20oYWNwaV9oYW5kbGUg aGFuZGxlLCBjb25zdCBndWlkX3QgKmd1aWQsIHU2NCByZXYsIHU2NCBmdW5jcykKIHsKIAlpbnQg aTsKIAl1NjQgbWFzayA9IDA7CkBAIC02ODMsNyArNjgzLDcgQEAgYm9vbCBhY3BpX2NoZWNrX2Rz bShhY3BpX2hhbmRsZSBoYW5kbGUsIGNvbnN0IHU4ICp1dWlkLCB1NjQgcmV2LCB1NjQgZnVuY3Mp CiAJaWYgKGZ1bmNzID09IDApCiAJCXJldHVybiBmYWxzZTsKIAotCW9iaiA9IGFjcGlfZXZhbHVh dGVfZHNtKGhhbmRsZSwgdXVpZCwgcmV2LCAwLCBOVUxMKTsKKwlvYmogPSBhY3BpX2V2YWx1YXRl X2RzbShoYW5kbGUsIGd1aWQsIHJldiwgMCwgTlVMTCk7CiAJaWYgKCFvYmopCiAJCXJldHVybiBm YWxzZTsKIApAQCAtNjk3LDcgKzY5Nyw3IEBAIGJvb2wgYWNwaV9jaGVja19kc20oYWNwaV9oYW5k bGUgaGFuZGxlLCBjb25zdCB1OCAqdXVpZCwgdTY0IHJldiwgdTY0IGZ1bmNzKQogCiAJLyoKIAkg KiBCaXQgMCBpbmRpY2F0ZXMgd2hldGhlciB0aGVyZSdzIHN1cHBvcnQgZm9yIGFueSBmdW5jdGlv bnMgb3RoZXIgdGhhbgotCSAqIGZ1bmN0aW9uIDAgZm9yIHRoZSBzcGVjaWZpZWQgVVVJRCBhbmQg cmV2aXNpb24uCisJICogZnVuY3Rpb24gMCBmb3IgdGhlIHNwZWNpZmllZCBHVUlEIGFuZCByZXZp c2lvbi4KIAkgKi8KIAlpZiAoKG1hc2sgJiAweDEpICYmIChtYXNrICYgZnVuY3MpID09IGZ1bmNz KQogCQlyZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci90cG0vdHBtX2NyYi5j IGIvZHJpdmVycy9jaGFyL3RwbS90cG1fY3JiLmMKaW5kZXggYjkxN2I5ZDVmNzEwLi4yNDVkODJm MGJkYmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci90cG0vdHBtX2NyYi5jCisrKyBiL2RyaXZl cnMvY2hhci90cG0vdHBtX2NyYi5jCkBAIC0yNywxMCArMjcsOSBAQAogCiAjZGVmaW5lIEFDUElf U0lHX1RQTTIgIlRQTTIiCiAKLXN0YXRpYyBjb25zdCB1OCBDUkJfQUNQSV9TVEFSVF9VVUlEW10g PSB7Ci0JLyogMDAwMCAqLyAweEFCLCAweDZDLCAweEJGLCAweDZCLCAweDYzLCAweDU0LCAweDE0 LCAweDQ3LAotCS8qIDAwMDggKi8gMHhCNywgMHhDRCwgMHhGMCwgMHgyMCwgMHgzQywgMHgwMywg MHg2OCwgMHhENAotfTsKK3N0YXRpYyBjb25zdCBndWlkX3QgY3JiX2FjcGlfc3RhcnRfZ3VpZCA9 CisJR1VJRCgweDZCQkY2Q0FCLCAweDU0NjMsIDB4NDcxNCwKKwkgICAgIDB4QjcsIDB4Q0QsIDB4 RjAsIDB4MjAsIDB4M0MsIDB4MDMsIDB4NjgsIDB4RDQpOwogCiBlbnVtIGNyYl9kZWZhdWx0cyB7 CiAJQ1JCX0FDUElfU1RBUlRfUkVWSVNJT05fSUQgPSAxLApAQCAtMjY2LDcgKzI2NSw3IEBAIHN0 YXRpYyBpbnQgY3JiX2RvX2FjcGlfc3RhcnQoc3RydWN0IHRwbV9jaGlwICpjaGlwKQogCWludCBy YzsKIAogCW9iaiA9IGFjcGlfZXZhbHVhdGVfZHNtKGNoaXAtPmFjcGlfZGV2X2hhbmRsZSwKLQkJ CQlDUkJfQUNQSV9TVEFSVF9VVUlELAorCQkJCSZjcmJfYWNwaV9zdGFydF9ndWlkLAogCQkJCUNS Ql9BQ1BJX1NUQVJUX1JFVklTSU9OX0lELAogCQkJCUNSQl9BQ1BJX1NUQVJUX0lOREVYLAogCQkJ CU5VTEwpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL3RwbS90cG1fcHBpLmMgYi9kcml2ZXJz L2NoYXIvdHBtL3RwbV9wcGkuYwppbmRleCA2OTJhMmM2YWUwMzYuLmMzYjcwNDMxYzA2YiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9jaGFyL3RwbS90cG1fcHBpLmMKKysrIGIvZHJpdmVycy9jaGFyL3Rw bS90cG1fcHBpLmMKQEAgLTMyLDIwICszMiwxNiBAQAogI2RlZmluZSBQUElfVlNfUkVRX1NUQVJU CTEyOAogI2RlZmluZSBQUElfVlNfUkVRX0VORAkJMjU1CiAKLXN0YXRpYyBjb25zdCB1OCB0cG1f cHBpX3V1aWRbXSA9IHsKLQkweEE2LCAweEZBLCAweERELCAweDNELAotCTB4MUIsIDB4MzYsCi0J MHhCNCwgMHg0RSwKLQkweEE0LCAweDI0LAotCTB4OEQsIDB4MTAsIDB4MDgsIDB4OUQsIDB4MTYs IDB4NTMKLX07CitzdGF0aWMgY29uc3QgZ3VpZF90IHRwbV9wcGlfZ3VpZCA9CisJR1VJRCgweDNE RERGQUE2LCAweDM2MUIsIDB4NEVCNCwKKwkgICAgIDB4QTQsIDB4MjQsIDB4OEQsIDB4MTAsIDB4 MDgsIDB4OUQsIDB4MTYsIDB4NTMpOwogCiBzdGF0aWMgaW5saW5lIHVuaW9uIGFjcGlfb2JqZWN0 ICoKIHRwbV9ldmFsX2RzbShhY3BpX2hhbmRsZSBwcGlfaGFuZGxlLCBpbnQgZnVuYywgYWNwaV9v YmplY3RfdHlwZSB0eXBlLAogCSAgICAgdW5pb24gYWNwaV9vYmplY3QgKmFyZ3Y0KQogewogCUJV R19PTighcHBpX2hhbmRsZSk7Ci0JcmV0dXJuIGFjcGlfZXZhbHVhdGVfZHNtX3R5cGVkKHBwaV9o YW5kbGUsIHRwbV9wcGlfdXVpZCwKKwlyZXR1cm4gYWNwaV9ldmFsdWF0ZV9kc21fdHlwZWQocHBp X2hhbmRsZSwgJnRwbV9wcGlfZ3VpZCwKIAkJCQkgICAgICAgVFBNX1BQSV9SRVZJU0lPTl9JRCwK IAkJCQkgICAgICAgZnVuYywgYXJndjQsIHR5cGUpOwogfQpAQCAtMTA3LDcgKzEwMyw3IEBAIHN0 YXRpYyBzc2l6ZV90IHRwbV9zdG9yZV9wcGlfcmVxdWVzdChzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJ ICogaXMgdXBkYXRlZCB3aXRoIGZ1bmN0aW9uIGluZGV4IGZyb20gU1VCUkVRIHRvIFNVQlJFUTIg c2luY2UgUFBJCiAJICogdmVyc2lvbiAxLjEKIAkgKi8KLQlpZiAoYWNwaV9jaGVja19kc20oY2hp cC0+YWNwaV9kZXZfaGFuZGxlLCB0cG1fcHBpX3V1aWQsCisJaWYgKGFjcGlfY2hlY2tfZHNtKGNo aXAtPmFjcGlfZGV2X2hhbmRsZSwgJnRwbV9wcGlfZ3VpZCwKIAkJCSAgIFRQTV9QUElfUkVWSVNJ T05fSUQsIDEgPDwgVFBNX1BQSV9GTl9TVUJSRVEyKSkKIAkJZnVuYyA9IFRQTV9QUElfRk5fU1VC UkVRMjsKIApAQCAtMjY4LDcgKzI2NCw3IEBAIHN0YXRpYyBzc2l6ZV90IHNob3dfcHBpX29wZXJh dGlvbnMoYWNwaV9oYW5kbGUgZGV2X2hhbmRsZSwgY2hhciAqYnVmLCB1MzIgc3RhcnQsCiAJCSJV c2VyIG5vdCByZXF1aXJlZCIsCiAJfTsKIAotCWlmICghYWNwaV9jaGVja19kc20oZGV2X2hhbmRs ZSwgdHBtX3BwaV91dWlkLCBUUE1fUFBJX1JFVklTSU9OX0lELAorCWlmICghYWNwaV9jaGVja19k c20oZGV2X2hhbmRsZSwgJnRwbV9wcGlfZ3VpZCwgVFBNX1BQSV9SRVZJU0lPTl9JRCwKIAkJCSAg ICAxIDw8IFRQTV9QUElfRk5fR0VUT1BSKSkKIAkJcmV0dXJuIC1FUEVSTTsKIApAQCAtMzQxLDEy ICszMzcsMTIgQEAgdm9pZCB0cG1fYWRkX3BwaShzdHJ1Y3QgdHBtX2NoaXAgKmNoaXApCiAJaWYg KCFjaGlwLT5hY3BpX2Rldl9oYW5kbGUpCiAJCXJldHVybjsKIAotCWlmICghYWNwaV9jaGVja19k c20oY2hpcC0+YWNwaV9kZXZfaGFuZGxlLCB0cG1fcHBpX3V1aWQsCisJaWYgKCFhY3BpX2NoZWNr X2RzbShjaGlwLT5hY3BpX2Rldl9oYW5kbGUsICZ0cG1fcHBpX2d1aWQsCiAJCQkgICAgVFBNX1BQ SV9SRVZJU0lPTl9JRCwgMSA8PCBUUE1fUFBJX0ZOX1ZFUlNJT04pKQogCQlyZXR1cm47CiAKIAkv KiBDYWNoZSBQUEkgdmVyc2lvbiBzdHJpbmcuICovCi0Jb2JqID0gYWNwaV9ldmFsdWF0ZV9kc21f dHlwZWQoY2hpcC0+YWNwaV9kZXZfaGFuZGxlLCB0cG1fcHBpX3V1aWQsCisJb2JqID0gYWNwaV9l dmFsdWF0ZV9kc21fdHlwZWQoY2hpcC0+YWNwaV9kZXZfaGFuZGxlLCAmdHBtX3BwaV9ndWlkLAog CQkJCSAgICAgIFRQTV9QUElfUkVWSVNJT05fSUQsIFRQTV9QUElfRk5fVkVSU0lPTiwKIAkJCQkg ICAgICBOVUxMLCBBQ1BJX1RZUEVfU1RSSU5HKTsKIAlpZiAob2JqKSB7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hY3BpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9hY3BpLmMKaW5kZXggZWI2MzhhMWU2OWQyLi5jODg4ZWE1NWI2MWYgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2FjcGkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9hY3BpLmMKQEAgLTE1LDEzICsxNSw5IEBAIHN0YXRpYyBzdHJ1Y3QgaW50ZWxf ZHNtX3ByaXYgewogCWFjcGlfaGFuZGxlIGRoYW5kbGU7CiB9IGludGVsX2RzbV9wcml2OwogCi1z dGF0aWMgY29uc3QgdTggaW50ZWxfZHNtX2d1aWRbXSA9IHsKLQkweGQzLCAweDczLCAweGQ4LCAw eDdlLAotCTB4ZDAsIDB4YzIsCi0JMHg0ZiwgMHg0ZSwKLQkweGE4LCAweDU0LAotCTB4MGYsIDB4 MTMsIDB4MTcsIDB4YjAsIDB4MWMsIDB4MmMKLX07CitzdGF0aWMgY29uc3QgZ3VpZF90IGludGVs X2RzbV9ndWlkID0KKwlHVUlEKDB4N2VkODczZDMsIDB4YzJkMCwgMHg0ZTRmLAorCSAgICAgMHhh OCwgMHg1NCwgMHgwZiwgMHgxMywgMHgxNywgMHhiMCwgMHgxYywgMHgyYyk7CiAKIHN0YXRpYyBj aGFyICppbnRlbF9kc21fcG9ydF9uYW1lKHU4IGlkKQogewpAQCAtODAsNyArNzYsNyBAQCBzdGF0 aWMgdm9pZCBpbnRlbF9kc21fcGxhdGZvcm1fbXV4X2luZm8odm9pZCkKIAlpbnQgaTsKIAl1bmlv biBhY3BpX29iamVjdCAqcGtnLCAqY29ubmVjdG9yX2NvdW50OwogCi0JcGtnID0gYWNwaV9ldmFs dWF0ZV9kc21fdHlwZWQoaW50ZWxfZHNtX3ByaXYuZGhhbmRsZSwgaW50ZWxfZHNtX2d1aWQsCisJ cGtnID0gYWNwaV9ldmFsdWF0ZV9kc21fdHlwZWQoaW50ZWxfZHNtX3ByaXYuZGhhbmRsZSwgJmlu dGVsX2RzbV9ndWlkLAogCQkJSU5URUxfRFNNX1JFVklTSU9OX0lELCBJTlRFTF9EU01fRk5fUExB VEZPUk1fTVVYX0lORk8sCiAJCQlOVUxMLCBBQ1BJX1RZUEVfUEFDS0FHRSk7CiAJaWYgKCFwa2cp IHsKQEAgLTExOCw3ICsxMTQsNyBAQCBzdGF0aWMgYm9vbCBpbnRlbF9kc21fcGNpX3Byb2JlKHN0 cnVjdCBwY2lfZGV2ICpwZGV2KQogCWlmICghZGhhbmRsZSkKIAkJcmV0dXJuIGZhbHNlOwogCi0J aWYgKCFhY3BpX2NoZWNrX2RzbShkaGFuZGxlLCBpbnRlbF9kc21fZ3VpZCwgSU5URUxfRFNNX1JF VklTSU9OX0lELAorCWlmICghYWNwaV9jaGVja19kc20oZGhhbmRsZSwgJmludGVsX2RzbV9ndWlk LCBJTlRFTF9EU01fUkVWSVNJT05fSUQsCiAJCQkgICAgMSA8PCBJTlRFTF9EU01fRk5fUExBVEZP Uk1fTVVYX0lORk8pKSB7CiAJCURSTV9ERUJVR19LTVMoIm5vIF9EU00gbWV0aG9kIGZvciBpbnRl bCBkZXZpY2VcbiIpOwogCQlyZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vbm91dmVhdS9ub3V2ZWF1X2FjcGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZl YXVfYWNwaS5jCmluZGV4IDM5NDY4YzIxODAyNy4uMGMwNGFiMjI5Y2RiIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2FjcGkuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vbm91dmVhdS9ub3V2ZWF1X2FjcGkuYwpAQCAtNjAsMTUgKzYwLDEzIEBAIGJvb2wgbm91dmVh dV9pc192MV9kc20odm9pZCkgewogfQogCiAjaWZkZWYgQ09ORklHX1ZHQV9TV0lUQ0hFUk9PCi1z dGF0aWMgY29uc3QgY2hhciBub3V2ZWF1X2RzbV9tdWlkW10gPSB7Ci0JMHhBMCwgMHhBMCwgMHg5 NSwgMHg5RCwgMHg2MCwgMHgwMCwgMHg0OCwgMHg0RCwKLQkweEIzLCAweDRELCAweDdFLCAweDVG LCAweEVBLCAweDEyLCAweDlGLCAweEQ0LAotfTsKK3N0YXRpYyBjb25zdCBndWlkX3Qgbm91dmVh dV9kc21fbXVpZCA9CisJR1VJRCgweDlEOTVBMEEwLCAweDAwNjAsIDB4NEQ0OCwKKwkgICAgIDB4 QjMsIDB4NEQsIDB4N0UsIDB4NUYsIDB4RUEsIDB4MTIsIDB4OUYsIDB4RDQpOwogCi1zdGF0aWMg Y29uc3QgY2hhciBub3V2ZWF1X29wX2RzbV9tdWlkW10gPSB7Ci0JMHhGOCwgMHhEOCwgMHg4Niwg MHhBNCwgMHhEQSwgMHgwQiwgMHgxQiwgMHg0NywKLQkweEE3LCAweDJCLCAweDYwLCAweDQyLCAw eEE2LCAweEI1LCAweEJFLCAweEUwLAotfTsKK3N0YXRpYyBjb25zdCBndWlkX3Qgbm91dmVhdV9v cF9kc21fbXVpZCA9CisJR1VJRCgweEE0ODZEOEY4LCAweDBCREEsIDB4NDcxQiwKKwkgICAgIDB4 QTcsIDB4MkIsIDB4NjAsIDB4NDIsIDB4QTYsIDB4QjUsIDB4QkUsIDB4RTApOwogCiBzdGF0aWMg aW50IG5vdXZlYXVfb3B0aW11c19kc20oYWNwaV9oYW5kbGUgaGFuZGxlLCBpbnQgZnVuYywgaW50 IGFyZywgdWludDMyX3QgKnJlc3VsdCkKIHsKQEAgLTg2LDcgKzg0LDcgQEAgc3RhdGljIGludCBu b3V2ZWF1X29wdGltdXNfZHNtKGFjcGlfaGFuZGxlIGhhbmRsZSwgaW50IGZ1bmMsIGludCBhcmcs IHVpbnQzMl90ICoKIAkJYXJnc19idWZmW2ldID0gKGFyZyA+PiBpICogOCkgJiAweEZGOwogCiAJ KnJlc3VsdCA9IDA7Ci0Jb2JqID0gYWNwaV9ldmFsdWF0ZV9kc21fdHlwZWQoaGFuZGxlLCBub3V2 ZWF1X29wX2RzbV9tdWlkLCAweDAwMDAwMTAwLAorCW9iaiA9IGFjcGlfZXZhbHVhdGVfZHNtX3R5 cGVkKGhhbmRsZSwgJm5vdXZlYXVfb3BfZHNtX211aWQsIDB4MDAwMDAxMDAsCiAJCQkJICAgICAg ZnVuYywgJmFyZ3Y0LCBBQ1BJX1RZUEVfQlVGRkVSKTsKIAlpZiAoIW9iaikgewogCQlhY3BpX2hh bmRsZV9pbmZvKGhhbmRsZSwgImZhaWxlZCB0byBldmFsdWF0ZSBfRFNNXG4iKTsKQEAgLTEzOCw3 ICsxMzYsNyBAQCBzdGF0aWMgaW50IG5vdXZlYXVfZHNtKGFjcGlfaGFuZGxlIGhhbmRsZSwgaW50 IGZ1bmMsIGludCBhcmcpCiAJCS5pbnRlZ2VyLnZhbHVlID0gYXJnLAogCX07CiAKLQlvYmogPSBh Y3BpX2V2YWx1YXRlX2RzbV90eXBlZChoYW5kbGUsIG5vdXZlYXVfZHNtX211aWQsIDB4MDAwMDAx MDIsCisJb2JqID0gYWNwaV9ldmFsdWF0ZV9kc21fdHlwZWQoaGFuZGxlLCAmbm91dmVhdV9kc21f bXVpZCwgMHgwMDAwMDEwMiwKIAkJCQkgICAgICBmdW5jLCAmYXJndjQsIEFDUElfVFlQRV9JTlRF R0VSKTsKIAlpZiAoIW9iaikgewogCQlhY3BpX2hhbmRsZV9pbmZvKGhhbmRsZSwgImZhaWxlZCB0 byBldmFsdWF0ZSBfRFNNXG4iKTsKQEAgLTI1OSw3ICsyNTcsNyBAQCBzdGF0aWMgdm9pZCBub3V2 ZWF1X2RzbV9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGFjcGlfaGFuZGxlICpkaGFu ZGxlX291dAogCWlmICghYWNwaV9oYXNfbWV0aG9kKGRoYW5kbGUsICJfRFNNIikpCiAJCXJldHVy bjsKIAotCXN1cHBvcnRzX211eCA9IGFjcGlfY2hlY2tfZHNtKGRoYW5kbGUsIG5vdXZlYXVfZHNt X211aWQsIDB4MDAwMDAxMDIsCisJc3VwcG9ydHNfbXV4ID0gYWNwaV9jaGVja19kc20oZGhhbmRs ZSwgJm5vdXZlYXVfZHNtX211aWQsIDB4MDAwMDAxMDIsCiAJCQkJICAgICAgMSA8PCBOT1VWRUFV X0RTTV9QT1dFUik7CiAJb3B0aW11c19mdW5jcyA9IG5vdXZlYXVfZHNtX2dldF9vcHRpbXVzX2Z1 bmN0aW9ucyhkaGFuZGxlKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUv bnZrbS9zdWJkZXYvbXhtL2Jhc2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vc3Vi ZGV2L214bS9iYXNlLmMKaW5kZXggZTNlMmY1ZTgzODE1Li5kNjViMjgwNGU5MDUgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vc3ViZGV2L214bS9iYXNlLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9zdWJkZXYvbXhtL2Jhc2UuYwpAQCAtODEsMTAg KzgxLDkgQEAgbXhtX3NoYWRvd19kc20oc3RydWN0IG52a21fbXhtICpteG0sIHU4IHZlcnNpb24p CiB7CiAJc3RydWN0IG52a21fc3ViZGV2ICpzdWJkZXYgPSAmbXhtLT5zdWJkZXY7CiAJc3RydWN0 IG52a21fZGV2aWNlICpkZXZpY2UgPSBzdWJkZXYtPmRldmljZTsKLQlzdGF0aWMgY2hhciBtdWlk W10gPSB7Ci0JCTB4MDAsIDB4QTQsIDB4MDQsIDB4NDAsIDB4N0QsIDB4OTEsIDB4RjIsIDB4NEMs Ci0JCTB4QjgsIDB4OUMsIDB4NzksIDB4QjYsIDB4MkYsIDB4RDUsIDB4NTYsIDB4NjUKLQl9Owor CXN0YXRpYyBndWlkX3QgbXVpZCA9CisJCUdVSUQoMHg0MDA0QTQwMCwgMHg5MTdELCAweDRDRjIs CisJCSAgICAgMHhCOCwgMHg5QywgMHg3OSwgMHhCNiwgMHgyRiwgMHhENSwgMHg1NiwgMHg2NSk7 CiAJdTMyIG14bXNfYXJnc1tdID0geyAweDAwMDAwMDAwIH07CiAJdW5pb24gYWNwaV9vYmplY3Qg YXJndjQgPSB7CiAJCS5idWZmZXIudHlwZSA9IEFDUElfVFlQRV9CVUZGRVIsCkBAIC0xMDUsNyAr MTA0LDcgQEAgbXhtX3NoYWRvd19kc20oc3RydWN0IG52a21fbXhtICpteG0sIHU4IHZlcnNpb24p CiAJICogdW5sZXNzIHlvdSBwYXNzIGluIGV4YWN0bHkgdGhlIHZlcnNpb24gaXQgc3VwcG9ydHMu LgogCSAqLwogCXJldiA9ICh2ZXJzaW9uICYgMHhmMCkgPDwgNCB8ICh2ZXJzaW9uICYgMHgwZik7 Ci0Jb2JqID0gYWNwaV9ldmFsdWF0ZV9kc20oaGFuZGxlLCBtdWlkLCByZXYsIDB4MDAwMDAwMTAs ICZhcmd2NCk7CisJb2JqID0gYWNwaV9ldmFsdWF0ZV9kc20oaGFuZGxlLCAmbXVpZCwgcmV2LCAw eDAwMDAwMDEwLCAmYXJndjQpOwogCWlmICghb2JqKSB7CiAJCW52a21fZGVidWcoc3ViZGV2LCAi RFNNIE1YTVMgZmFpbGVkXG4iKTsKIAkJcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9oaWQvaTJjLWhpZC9pMmMtaGlkLmMgYi9kcml2ZXJzL2hpZC9pMmMtaGlkL2kyYy1oaWQuYwpp bmRleCA4ZGFhOGNlNjRlYmIuLmQxMGZmNDhlNjEzYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9oaWQv aTJjLWhpZC9pMmMtaGlkLmMKKysrIGIvZHJpdmVycy9oaWQvaTJjLWhpZC9pMmMtaGlkLmMKQEAg LTg3MiwxMCArODcyLDkgQEAgc3RhdGljIGludCBpMmNfaGlkX2ZldGNoX2hpZF9kZXNjcmlwdG9y KHN0cnVjdCBpMmNfaGlkICppaGlkKQogc3RhdGljIGludCBpMmNfaGlkX2FjcGlfcGRhdGEoc3Ry dWN0IGkyY19jbGllbnQgKmNsaWVudCwKIAkJc3RydWN0IGkyY19oaWRfcGxhdGZvcm1fZGF0YSAq cGRhdGEpCiB7Ci0Jc3RhdGljIHU4IGkyY19oaWRfZ3VpZFtdID0gewotCQkweEY3LCAweEY2LCAw eERGLCAweDNDLCAweDY3LCAweDQyLCAweDU1LCAweDQ1LAotCQkweEFELCAweDA1LCAweEIzLCAw eDBBLCAweDNELCAweDg5LCAweDM4LCAweERFLAotCX07CisJc3RhdGljIGd1aWRfdCBpMmNfaGlk X2d1aWQgPQorCQlHVUlEKDB4M0NERkY2RjcsIDB4NDI2NywgMHg0NTU1LAorCQkgICAgIDB4QUQs IDB4MDUsIDB4QjMsIDB4MEEsIDB4M0QsIDB4ODksIDB4MzgsIDB4REUpOwogCXVuaW9uIGFjcGlf b2JqZWN0ICpvYmo7CiAJc3RydWN0IGFjcGlfZGV2aWNlICphZGV2OwogCWFjcGlfaGFuZGxlIGhh bmRsZTsKQEAgLTg4NCw3ICs4ODMsNyBAQCBzdGF0aWMgaW50IGkyY19oaWRfYWNwaV9wZGF0YShz dHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LAogCWlmICghaGFuZGxlIHx8IGFjcGlfYnVzX2dldF9k ZXZpY2UoaGFuZGxlLCAmYWRldikpCiAJCXJldHVybiAtRU5PREVWOwogCi0Jb2JqID0gYWNwaV9l dmFsdWF0ZV9kc21fdHlwZWQoaGFuZGxlLCBpMmNfaGlkX2d1aWQsIDEsIDEsIE5VTEwsCisJb2Jq ID0gYWNwaV9ldmFsdWF0ZV9kc21fdHlwZWQoaGFuZGxlLCAmaTJjX2hpZF9ndWlkLCAxLCAxLCBO VUxMLAogCQkJCSAgICAgIEFDUElfVFlQRV9JTlRFR0VSKTsKIAlpZiAoIW9iaikgewogCQlkZXZf ZXJyKCZjbGllbnQtPmRldiwgImRldmljZSBfRFNNIGV4ZWN1dGlvbiBmYWlsZWRcbiIpOwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9pb21tdS9kbWFyLmMgYi9kcml2ZXJzL2lvbW11L2RtYXIuYwppbmRl eCBjYmY3NzYzZDgwOTEuLjFiOGFmNGZhZDc4YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pb21tdS9k bWFyLmMKKysrIGIvZHJpdmVycy9pb21tdS9kbWFyLmMKQEAgLTE4MDgsMTAgKzE4MDgsOSBAQCBJ T01NVV9JTklUX1BPU1QoZGV0ZWN0X2ludGVsX2lvbW11KTsKICAqIGZvciBEaXJlY3RlZC1JTyBB cmNoaXRlY3R1cmUgU3BlY2lmaWN0aW9uLCBSZXYgMi4yLCBTZWN0aW9uIDguOAogICogIlJlbWFw cGluZyBIYXJkd2FyZSBVbml0IEhvdCBQbHVnIi4KICAqLwotc3RhdGljIHU4IGRtYXJfaHBfdXVp ZFtdID0gewotCS8qIDAwMDAgKi8gICAgMHhBNiwgMHhBMywgMHhDMSwgMHhEOCwgMHg5QiwgMHhC RSwgMHg5QiwgMHg0QywKLQkvKiAwMDA4ICovICAgIDB4OTEsIDB4QkYsIDB4QzMsIDB4Q0IsIDB4 ODEsIDB4RkMsIDB4NUQsIDB4QUYKLX07CitzdGF0aWMgZ3VpZF90IGRtYXJfaHBfZ3VpZCA9CisJ R1VJRCgweEQ4QzFBM0E2LCAweEJFOUIsIDB4NEM5QiwKKwkgICAgIDB4OTEsIDB4QkYsIDB4QzMs IDB4Q0IsIDB4ODEsIDB4RkMsIDB4NUQsIDB4QUYpOwogCiAvKgogICogQ3VycmVudGx5IHRoZXJl J3Mgb25seSBvbmUgcmV2aXNpb24gYW5kIEJJT1Mgd2lsbCBub3QgY2hlY2sgdGhlIHJldmlzaW9u IGlkLApAQCAtMTgyNCw3ICsxODIzLDcgQEAgc3RhdGljIHU4IGRtYXJfaHBfdXVpZFtdID0gewog CiBzdGF0aWMgaW5saW5lIGJvb2wgZG1hcl9kZXRlY3RfZHNtKGFjcGlfaGFuZGxlIGhhbmRsZSwg aW50IGZ1bmMpCiB7Ci0JcmV0dXJuIGFjcGlfY2hlY2tfZHNtKGhhbmRsZSwgZG1hcl9ocF91dWlk LCBETUFSX0RTTV9SRVZfSUQsIDEgPDwgZnVuYyk7CisJcmV0dXJuIGFjcGlfY2hlY2tfZHNtKGhh bmRsZSwgJmRtYXJfaHBfZ3VpZCwgRE1BUl9EU01fUkVWX0lELCAxIDw8IGZ1bmMpOwogfQogCiBz dGF0aWMgaW50IGRtYXJfd2Fsa19kc21fcmVzb3VyY2UoYWNwaV9oYW5kbGUgaGFuZGxlLCBpbnQg ZnVuYywKQEAgLTE4NDMsNyArMTg0Miw3IEBAIHN0YXRpYyBpbnQgZG1hcl93YWxrX2RzbV9yZXNv dXJjZShhY3BpX2hhbmRsZSBoYW5kbGUsIGludCBmdW5jLAogCWlmICghZG1hcl9kZXRlY3RfZHNt KGhhbmRsZSwgZnVuYykpCiAJCXJldHVybiAwOwogCi0Jb2JqID0gYWNwaV9ldmFsdWF0ZV9kc21f dHlwZWQoaGFuZGxlLCBkbWFyX2hwX3V1aWQsIERNQVJfRFNNX1JFVl9JRCwKKwlvYmogPSBhY3Bp X2V2YWx1YXRlX2RzbV90eXBlZChoYW5kbGUsICZkbWFyX2hwX2d1aWQsIERNQVJfRFNNX1JFVl9J RCwKIAkJCQkgICAgICBmdW5jLCBOVUxMLCBBQ1BJX1RZUEVfQlVGRkVSKTsKIAlpZiAoIW9iaikK IAkJcmV0dXJuIC1FTk9ERVY7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21tYy9ob3N0L3NkaGNpLXBj aS1jb3JlLmMgYi9kcml2ZXJzL21tYy9ob3N0L3NkaGNpLXBjaS1jb3JlLmMKaW5kZXggOTJmYzNm N2M1MzhkLi5jOTQyZWMxMDJjNmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbW1jL2hvc3Qvc2RoY2kt cGNpLWNvcmUuYworKysgYi9kcml2ZXJzL21tYy9ob3N0L3NkaGNpLXBjaS1jb3JlLmMKQEAgLTQw NCwxMCArNDA0LDkgQEAgc3RydWN0IGludGVsX2hvc3QgewogCWJvb2wJZDNfcmV0dW5lOwogfTsK IAotY29uc3QgdTggaW50ZWxfZHNtX3V1aWRbXSA9IHsKLQkweEE1LCAweDNFLCAweEMxLCAweEY2 LCAweENELCAweDY1LCAweDFGLCAweDQ2LAotCTB4QUIsIDB4N0EsIDB4MjksIDB4RjcsIDB4RTgs IDB4RDUsIDB4QkQsIDB4NjEsCi19OworY29uc3QgZ3VpZF90IGludGVsX2RzbV9ndWlkID0KKwlH VUlEKDB4RjZDMTNFQTUsIDB4NjVDRCwgMHg0NjFGLAorCSAgICAgMHhBQiwgMHg3QSwgMHgyOSwg MHhGNywgMHhFOCwgMHhENSwgMHhCRCwgMHg2MSk7CiAKIHN0YXRpYyBpbnQgX19pbnRlbF9kc20o c3RydWN0IGludGVsX2hvc3QgKmludGVsX2hvc3QsIHN0cnVjdCBkZXZpY2UgKmRldiwKIAkJICAg ICAgIHVuc2lnbmVkIGludCBmbiwgdTMyICpyZXN1bHQpCkBAIC00MTYsNyArNDE1LDcgQEAgc3Rh dGljIGludCBfX2ludGVsX2RzbShzdHJ1Y3QgaW50ZWxfaG9zdCAqaW50ZWxfaG9zdCwgc3RydWN0 IGRldmljZSAqZGV2LAogCWludCBlcnIgPSAwOwogCXNpemVfdCBsZW47CiAKLQlvYmogPSBhY3Bp X2V2YWx1YXRlX2RzbShBQ1BJX0hBTkRMRShkZXYpLCBpbnRlbF9kc21fdXVpZCwgMCwgZm4sIE5V TEwpOworCW9iaiA9IGFjcGlfZXZhbHVhdGVfZHNtKEFDUElfSEFORExFKGRldiksICZpbnRlbF9k c21fZ3VpZCwgMCwgZm4sIE5VTEwpOwogCWlmICghb2JqKQogCQlyZXR1cm4gLUVPUE5PVFNVUFA7 CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMvaG5zX2Rz YWZfbWlzYy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hucy9obnNfZHNhZl9t aXNjLmMKaW5kZXggZTEzYWEwNjRhOGU5Li5mYjUxODc3YzRkZTIgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMvaG5zX2RzYWZfbWlzYy5jCisrKyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMvaG5zX2RzYWZfbWlzYy5jCkBAIC0yOSwxMCAr MjksOSBAQCBlbnVtIF9kc21fcnN0X3R5cGUgewogCUhOU19ST0NFX1JFU0VUX0ZVTkMgICAgID0g MHg3LAogfTsKIAotY29uc3QgdTggaG5zX2RzYWZfYWNwaV9kc21fdXVpZFtdID0gewotCTB4MUEs IDB4QUEsIDB4ODUsIDB4MUEsIDB4OTMsIDB4RTIsIDB4NUUsIDB4NDEsCi0JMHg4RSwgMHgyOCwg MHg4RCwgMHg2OSwgMHgwQSwgMHgwRiwgMHg4MiwgMHgwQQotfTsKK2NvbnN0IGd1aWRfdCBobnNf ZHNhZl9hY3BpX2RzbV9ndWlkID0KKwlHVUlEKDB4MUE4NUFBMUEsIDB4RTI5MywgMHg0MTVFLAor CSAgICAgMHg4RSwgMHgyOCwgMHg4RCwgMHg2OSwgMHgwQSwgMHgwRiwgMHg4MiwgMHgwQSk7CiAK IHN0YXRpYyB2b2lkIGRzYWZfd3JpdGVfc3ViKHN0cnVjdCBkc2FmX2RldmljZSAqZHNhZl9kZXYs IHUzMiByZWcsIHUzMiB2YWwpCiB7CkBAIC0xNTEsNyArMTUwLDcgQEAgc3RhdGljIHZvaWQgaG5z X2RzYWZfYWNwaV9zcnN0X2J5X3BvcnQoc3RydWN0IGRzYWZfZGV2aWNlICpkc2FmX2RldiwgdTgg b3BfdHlwZSwKIAlhcmd2NC5wYWNrYWdlLmVsZW1lbnRzID0gb2JqX2FyZ3M7CiAKIAlvYmogPSBh Y3BpX2V2YWx1YXRlX2RzbShBQ1BJX0hBTkRMRShkc2FmX2Rldi0+ZGV2KSwKLQkJCQlobnNfZHNh Zl9hY3BpX2RzbV91dWlkLCAwLCBvcF90eXBlLCAmYXJndjQpOworCQkJCSZobnNfZHNhZl9hY3Bp X2RzbV9ndWlkLCAwLCBvcF90eXBlLCAmYXJndjQpOwogCWlmICghb2JqKSB7CiAJCWRldl93YXJu KGRzYWZfZGV2LT5kZXYsICJyZXNldCBwb3J0X3R5cGUlZCBwb3J0JWQgZmFpbCEiLAogCQkJIHBv cnRfdHlwZSwgcG9ydCk7CkBAIC00MzQsNyArNDMzLDcgQEAgc3RhdGljIHBoeV9pbnRlcmZhY2Vf dCBobnNfbWFjX2dldF9waHlfaWZfYWNwaShzdHJ1Y3QgaG5zX21hY19jYiAqbWFjX2NiKQogCWFy Z3Y0LnBhY2thZ2UuZWxlbWVudHMgPSAmb2JqX2FyZ3MsCiAKIAlvYmogPSBhY3BpX2V2YWx1YXRl X2RzbShBQ1BJX0hBTkRMRShtYWNfY2ItPmRldiksCi0JCQkJaG5zX2RzYWZfYWNwaV9kc21fdXVp ZCwgMCwKKwkJCQkmaG5zX2RzYWZfYWNwaV9kc21fZ3VpZCwgMCwKIAkJCQlITlNfT1BfR0VUX1BP UlRfVFlQRV9GVU5DLCAmYXJndjQpOwogCiAJaWYgKCFvYmogfHwgb2JqLT50eXBlICE9IEFDUElf VFlQRV9JTlRFR0VSKQpAQCAtNDc0LDcgKzQ3Myw3IEBAIGludCBobnNfbWFjX2dldF9zZnBfcHJz bnRfYWNwaShzdHJ1Y3QgaG5zX21hY19jYiAqbWFjX2NiLCBpbnQgKnNmcF9wcnNudCkKIAlhcmd2 NC5wYWNrYWdlLmVsZW1lbnRzID0gJm9ial9hcmdzLAogCiAJb2JqID0gYWNwaV9ldmFsdWF0ZV9k c20oQUNQSV9IQU5ETEUobWFjX2NiLT5kZXYpLAotCQkJCWhuc19kc2FmX2FjcGlfZHNtX3V1aWQs IDAsCisJCQkJJmhuc19kc2FmX2FjcGlfZHNtX2d1aWQsIDAsCiAJCQkJSE5TX09QX0dFVF9TRlBf U1RBVF9GVU5DLCAmYXJndjQpOwogCiAJaWYgKCFvYmogfHwgb2JqLT50eXBlICE9IEFDUElfVFlQ RV9JTlRFR0VSKQpAQCAtNTY1LDcgKzU2NCw3IEBAIGhuc19tYWNfY29uZmlnX3Nkc19sb29wYmFj a19hY3BpKHN0cnVjdCBobnNfbWFjX2NiICptYWNfY2IsIGJvb2wgZW4pCiAJYXJndjQucGFja2Fn ZS5lbGVtZW50cyA9IG9ial9hcmdzOwogCiAJb2JqID0gYWNwaV9ldmFsdWF0ZV9kc20oQUNQSV9I QU5ETEUobWFjX2NiLT5kc2FmX2Rldi0+ZGV2KSwKLQkJCQlobnNfZHNhZl9hY3BpX2RzbV91dWlk LCAwLAorCQkJCSZobnNfZHNhZl9hY3BpX2RzbV9ndWlkLCAwLAogCQkJCUhOU19PUF9TRVJERVNf TFBfRlVOQywgJmFyZ3Y0KTsKIAlpZiAoIW9iaikgewogCQlkZXZfd2FybihtYWNfY2ItPmRzYWZf ZGV2LT5kZXYsICJzZXQgcG9ydCVkIHNlcmRlcyBscCBmYWlsISIsCmRpZmYgLS1naXQgYS9kcml2 ZXJzL3BjaS9wY2ktYWNwaS5jIGIvZHJpdmVycy9wY2kvcGNpLWFjcGkuYwppbmRleCAwMDE4NjAz NjE0MzQuLjBmYWZiNzFkYzhjZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvcGNpLWFjcGkuYwor KysgYi9kcml2ZXJzL3BjaS9wY2ktYWNwaS5jCkBAIC0yMSwxMyArMjEsMTIgQEAKICNpbmNsdWRl ICJwY2kuaCIKIAogLyoKLSAqIFRoZSBVVUlEIGlzIGRlZmluZWQgaW4gdGhlIFBDSSBGaXJtd2Fy ZSBTcGVjaWZpY2F0aW9uIGF2YWlsYWJsZSBoZXJlOgorICogVGhlIEdVSUQgaXMgZGVmaW5lZCBp biB0aGUgUENJIEZpcm13YXJlIFNwZWNpZmljYXRpb24gYXZhaWxhYmxlIGhlcmU6CiAgKiBodHRw czovL3d3dy5wY2lzaWcuY29tL21lbWJlcnMvZG93bmxvYWRzL3BjaWZ3X3IzXzFfMTNEZWMxMC5w ZGYKICAqLwotY29uc3QgdTggcGNpX2FjcGlfZHNtX3V1aWRbXSA9IHsKLQkweGQwLCAweDM3LCAw eGM5LCAweGU1LCAweDUzLCAweDM1LCAweDdhLCAweDRkLAotCTB4OTEsIDB4MTcsIDB4ZWEsIDB4 NGQsIDB4MTksIDB4YzMsIDB4NDMsIDB4NGQKLX07Citjb25zdCBndWlkX3QgcGNpX2FjcGlfZHNt X2d1aWQgPQorCUdVSUQoMHhlNWM5MzdkMCwgMHgzNTUzLCAweDRkN2EsCisJICAgICAweDkxLCAw eDE3LCAweGVhLCAweDRkLCAweDE5LCAweGMzLCAweDQzLCAweDRkKTsKIAogI2lmIGRlZmluZWQo Q09ORklHX1BDSV9RVUlSS1MpICYmIGRlZmluZWQoQ09ORklHX0FSTTY0KQogc3RhdGljIGludCBh Y3BpX2dldF9yY19hZGRyKHN0cnVjdCBhY3BpX2RldmljZSAqYWRldiwgc3RydWN0IHJlc291cmNl ICpyZXMpCkBAIC02ODAsNyArNjc5LDcgQEAgdm9pZCBhY3BpX3BjaV9hZGRfYnVzKHN0cnVjdCBw Y2lfYnVzICpidXMpCiAJaWYgKCFwY2lfaXNfcm9vdF9idXMoYnVzKSkKIAkJcmV0dXJuOwogCi0J b2JqID0gYWNwaV9ldmFsdWF0ZV9kc20oQUNQSV9IQU5ETEUoYnVzLT5icmlkZ2UpLCBwY2lfYWNw aV9kc21fdXVpZCwgMywKKwlvYmogPSBhY3BpX2V2YWx1YXRlX2RzbShBQ1BJX0hBTkRMRShidXMt PmJyaWRnZSksICZwY2lfYWNwaV9kc21fZ3VpZCwgMywKIAkJCQlSRVNFVF9ERUxBWV9EU00sIE5V TEwpOwogCWlmICghb2JqKQogCQlyZXR1cm47CkBAIC03NDUsNyArNzQ0LDcgQEAgc3RhdGljIHZv aWQgcGNpX2FjcGlfb3B0aW1pemVfZGVsYXkoc3RydWN0IHBjaV9kZXYgKnBkZXYsCiAJaWYgKGJy aWRnZS0+aWdub3JlX3Jlc2V0X2RlbGF5KQogCQlwZGV2LT5kM2NvbGRfZGVsYXkgPSAwOwogCi0J b2JqID0gYWNwaV9ldmFsdWF0ZV9kc20oaGFuZGxlLCBwY2lfYWNwaV9kc21fdXVpZCwgMywKKwlv YmogPSBhY3BpX2V2YWx1YXRlX2RzbShoYW5kbGUsICZwY2lfYWNwaV9kc21fZ3VpZCwgMywKIAkJ CQlGVU5DVElPTl9ERUxBWV9EU00sIE5VTEwpOwogCWlmICghb2JqKQogCQlyZXR1cm47CmRpZmYg LS1naXQgYS9kcml2ZXJzL3BjaS9wY2ktbGFiZWwuYyBiL2RyaXZlcnMvcGNpL3BjaS1sYWJlbC5j CmluZGV4IDUxMzU3Mzc3ZWZiYy4uMmQ4ZGIzZWFkNmU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Bj aS9wY2ktbGFiZWwuYworKysgYi9kcml2ZXJzL3BjaS9wY2ktbGFiZWwuYwpAQCAtMTcyLDcgKzE3 Miw3IEBAIHN0YXRpYyBpbnQgZHNtX2dldF9sYWJlbChzdHJ1Y3QgZGV2aWNlICpkZXYsIGNoYXIg KmJ1ZiwKIAlpZiAoIWhhbmRsZSkKIAkJcmV0dXJuIC0xOwogCi0Jb2JqID0gYWNwaV9ldmFsdWF0 ZV9kc20oaGFuZGxlLCBwY2lfYWNwaV9kc21fdXVpZCwgMHgyLAorCW9iaiA9IGFjcGlfZXZhbHVh dGVfZHNtKGhhbmRsZSwgJnBjaV9hY3BpX2RzbV9ndWlkLCAweDIsCiAJCQkJREVWSUNFX0xBQkVM X0RTTSwgTlVMTCk7CiAJaWYgKCFvYmopCiAJCXJldHVybiAtMTsKQEAgLTIxMiw3ICsyMTIsNyBA QCBzdGF0aWMgYm9vbCBkZXZpY2VfaGFzX2RzbShzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJaWYgKCFo YW5kbGUpCiAJCXJldHVybiBmYWxzZTsKIAotCXJldHVybiAhIWFjcGlfY2hlY2tfZHNtKGhhbmRs ZSwgcGNpX2FjcGlfZHNtX3V1aWQsIDB4MiwKKwlyZXR1cm4gISFhY3BpX2NoZWNrX2RzbShoYW5k bGUsICZwY2lfYWNwaV9kc21fZ3VpZCwgMHgyLAogCQkJCTEgPDwgREVWSUNFX0xBQkVMX0RTTSk7 CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2R3YzMvZHdjMy1wY2kuYyBiL2RyaXZlcnMv dXNiL2R3YzMvZHdjMy1wY2kuYwppbmRleCA4NGEyY2ViZmM3MTIuLmZlODUxNTQ0ZDdmYiAxMDA2 NDQKLS0tIGEvZHJpdmVycy91c2IvZHdjMy9kd2MzLXBjaS5jCisrKyBiL2RyaXZlcnMvdXNiL2R3 YzMvZHdjMy1wY2kuYwpAQCAtNDIsNyArNDIsNyBAQAogI2RlZmluZSBQQ0lfREVWSUNFX0lEX0lO VEVMX0NOUExQCQkweDlkZWUKICNkZWZpbmUgUENJX0RFVklDRV9JRF9JTlRFTF9DTlBICQkweGEz NmUKIAotI2RlZmluZSBQQ0lfSU5URUxfQlhUX0RTTV9VVUlECQkiNzMyYjg1ZDUtYjdhNy00YTFi LTliYTAtNGJiZDAwZmZkNTExIgorI2RlZmluZSBQQ0lfSU5URUxfQlhUX0RTTV9HVUlECQkiNzMy Yjg1ZDUtYjdhNy00YTFiLTliYTAtNGJiZDAwZmZkNTExIgogI2RlZmluZSBQQ0lfSU5URUxfQlhU X0ZVTkNfUE1VX1BXUgk0CiAjZGVmaW5lIFBDSV9JTlRFTF9CWFRfU1RBVEVfRDAJCTAKICNkZWZp bmUgUENJX0lOVEVMX0JYVF9TVEFURV9EMwkJMwpAQCAtNTEsMTQgKzUxLDE0IEBACiAgKiBzdHJ1 Y3QgZHdjM19wY2kgLSBEcml2ZXIgcHJpdmF0ZSBzdHJ1Y3R1cmUKICAqIEBkd2MzOiBjaGlsZCBk d2MzIHBsYXRmb3JtX2RldmljZQogICogQHBjaTogb3VyIGxpbmsgdG8gUENJIGJ1cwotICogQHV1 aWQ6IF9EU00gVVVJRAorICogQGd1aWQ6IF9EU00gR1VJRAogICogQGhhc19kc21fZm9yX3BtOiB0 cnVlIGZvciBkZXZpY2VzIHdoaWNoIG5lZWQgdG8gcnVuIF9EU00gb24gcnVudGltZSBQTQogICov CiBzdHJ1Y3QgZHdjM19wY2kgewogCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmR3YzM7CiAJc3Ry dWN0IHBjaV9kZXYgKnBjaTsKIAotCXU4IHV1aWRbMTZdOworCWd1aWRfdCBndWlkOwogCiAJdW5z aWduZWQgaW50IGhhc19kc21fZm9yX3BtOjE7CiB9OwpAQCAtMTIwLDcgKzEyMCw3IEBAIHN0YXRp YyBpbnQgZHdjM19wY2lfcXVpcmtzKHN0cnVjdCBkd2MzX3BjaSAqZHdjKQogCiAJCWlmIChwZGV2 LT5kZXZpY2UgPT0gUENJX0RFVklDRV9JRF9JTlRFTF9CWFQgfHwKIAkJCQlwZGV2LT5kZXZpY2Ug PT0gUENJX0RFVklDRV9JRF9JTlRFTF9CWFRfTSkgewotCQkJYWNwaV9zdHJfdG9fdXVpZChQQ0lf SU5URUxfQlhUX0RTTV9VVUlELCBkd2MtPnV1aWQpOworCQkJZ3VpZF9wYXJzZShQQ0lfSU5URUxf QlhUX0RTTV9HVUlELCAmZHdjLT5ndWlkKTsKIAkJCWR3Yy0+aGFzX2RzbV9mb3JfcG0gPSB0cnVl OwogCQl9CiAKQEAgLTI5Miw3ICsyOTIsNyBAQCBzdGF0aWMgaW50IGR3YzNfcGNpX2RzbShzdHJ1 Y3QgZHdjM19wY2kgKmR3YywgaW50IHBhcmFtKQogCXRtcC50eXBlID0gQUNQSV9UWVBFX0lOVEVH RVI7CiAJdG1wLmludGVnZXIudmFsdWUgPSBwYXJhbTsKIAotCW9iaiA9IGFjcGlfZXZhbHVhdGVf ZHNtKEFDUElfSEFORExFKCZkd2MtPnBjaS0+ZGV2KSwgZHdjLT51dWlkLAorCW9iaiA9IGFjcGlf ZXZhbHVhdGVfZHNtKEFDUElfSEFORExFKCZkd2MtPnBjaS0+ZGV2KSwgJmR3Yy0+Z3VpZCwKIAkJ CTEsIFBDSV9JTlRFTF9CWFRfRlVOQ19QTVVfUFdSLCAmYXJndjQpOwogCWlmICghb2JqKSB7CiAJ CWRldl9lcnIoJmR3Yy0+cGNpLT5kZXYsICJmYWlsZWQgdG8gZXZhbHVhdGUgX0RTTVxuIik7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9ob3N0L3hoY2ktcGNpLmMgYi9kcml2ZXJzL3VzYi9ob3N0 L3hoY2ktcGNpLmMKaW5kZXggZmNmMWYzZjYzZTdhLi45NTRkYjg2NmFmZjUgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvdXNiL2hvc3QveGhjaS1wY2kuYworKysgYi9kcml2ZXJzL3VzYi9ob3N0L3hoY2kt cGNpLmMKQEAgLTIxMywxMyArMjEzLDEyIEBAIHN0YXRpYyB2b2lkIHhoY2lfcGNpX3F1aXJrcyhz dHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCB4aGNpX2hjZCAqeGhjaSkKICNpZmRlZiBDT05GSUdf QUNQSQogc3RhdGljIHZvaWQgeGhjaV9wbWVfYWNwaV9ydGQzX2VuYWJsZShzdHJ1Y3QgcGNpX2Rl diAqZGV2KQogewotCXN0YXRpYyBjb25zdCB1OCBpbnRlbF9kc21fdXVpZFtdID0gewotCQkweGI3 LCAweDBjLCAweDM0LCAweGFjLAkweDAxLCAweGU5LCAweGJmLCAweDQ1LAotCQkweGI3LCAweGU2 LCAweDJiLCAweDM0LCAweGVjLCAweDkzLCAweDFlLCAweDIzLAotCX07CisJc3RhdGljIGNvbnN0 IGd1aWRfdCBpbnRlbF9kc21fZ3VpZCA9CisJCUdVSUQoMHhhYzM0MGNiNywgMHhlOTAxLCAweDQ1 YmYsCisJCSAgICAgMHhiNywgMHhlNiwgMHgyYiwgMHgzNCwgMHhlYywgMHg5MywgMHgxZSwgMHgy Myk7CiAJdW5pb24gYWNwaV9vYmplY3QgKm9iajsKIAotCW9iaiA9IGFjcGlfZXZhbHVhdGVfZHNt KEFDUElfSEFORExFKCZkZXYtPmRldiksIGludGVsX2RzbV91dWlkLCAzLCAxLAorCW9iaiA9IGFj cGlfZXZhbHVhdGVfZHNtKEFDUElfSEFORExFKCZkZXYtPmRldiksICZpbnRlbF9kc21fZ3VpZCwg MywgMSwKIAkJCQlOVUxMKTsKIAlBQ1BJX0ZSRUUob2JqKTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZl cnMvdXNiL21pc2MvdWNzaS5jIGIvZHJpdmVycy91c2IvbWlzYy91Y3NpLmMKaW5kZXggMDczOTdi ZGRlZmEzLi5hOTk0OWZjNjBmYzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL21pc2MvdWNzaS5j CisrKyBiL2RyaXZlcnMvdXNiL21pc2MvdWNzaS5jCkBAIC01NSwxMyArNTUsMTMgQEAgc3RydWN0 IHVjc2kgewogCiBzdGF0aWMgaW50IHVjc2lfYWNwaV9jbWQoc3RydWN0IHVjc2kgKnVjc2ksIHN0 cnVjdCB1Y3NpX2NvbnRyb2wgKmN0cmwpCiB7Ci0JdXVpZF9sZSB1dWlkID0gVVVJRF9MRSgweDZm ODM5OGMyLCAweDdjYTQsIDB4MTFlNCwKLQkJCSAgICAgICAweGFkLCAweDM2LCAweDYzLCAweDEw LCAweDQyLCAweGI1LCAweDAwLCAweDhmKTsKKwlndWlkX3QgZ3VpZCA9IEdVSUQoMHg2ZjgzOThj MiwgMHg3Y2E0LCAweDExZTQsCisJCQkgICAweGFkLCAweDM2LCAweDYzLCAweDEwLCAweDQyLCAw eGI1LCAweDAwLCAweDhmKTsKIAl1bmlvbiBhY3BpX29iamVjdCAqb2JqOwogCiAJdWNzaS0+ZGF0 YS0+Y3RybC5yYXdfY21kID0gY3RybC0+cmF3X2NtZDsKIAotCW9iaiA9IGFjcGlfZXZhbHVhdGVf ZHNtKEFDUElfSEFORExFKHVjc2ktPmRldiksIHV1aWQuYiwgMSwgMSwgTlVMTCk7CisJb2JqID0g YWNwaV9ldmFsdWF0ZV9kc20oQUNQSV9IQU5ETEUodWNzaS0+ZGV2KSwgJmd1aWQsIDEsIDEsIE5V TEwpOwogCWlmICghb2JqKSB7CiAJCWRldl9lcnIodWNzaS0+ZGV2LCAiJXM6IGZhaWxlZCB0byBl dmFsdWF0ZSBfRFNNXG4iLCBfX2Z1bmNfXyk7CiAJCXJldHVybiAtRUlPOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy91c2IvdHlwZWMvdHlwZWNfd2NvdmUuYyBiL2RyaXZlcnMvdXNiL3R5cGVjL3R5cGVj X3djb3ZlLmMKaW5kZXggZDVhN2IyMWZhM2YxLi42MmNlOTg4ZmFlMjEgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvdXNiL3R5cGVjL3R5cGVjX3djb3ZlLmMKKysrIGIvZHJpdmVycy91c2IvdHlwZWMvdHlw ZWNfd2NvdmUuYwpAQCAtMTA1LDggKzEwNSw4IEBAIGVudW0gd2NvdmVfdHlwZWNfcm9sZSB7CiAJ V0NPVkVfUk9MRV9ERVZJQ0UsCiB9OwogCi1zdGF0aWMgdXVpZF9sZSB1dWlkID0gVVVJRF9MRSgw eDQ4MjM4M2YwLCAweDI4NzYsIDB4NGU0OSwKLQkJCSAgICAgIDB4ODYsIDB4ODUsIDB4ZGIsIDB4 NjYsIDB4MjEsIDB4MWEsIDB4ZjAsIDB4MzcpOworc3RhdGljIGd1aWRfdCBndWlkID0gR1VJRCgw eDQ4MjM4M2YwLCAweDI4NzYsIDB4NGU0OSwKKwkJCSAgMHg4NiwgMHg4NSwgMHhkYiwgMHg2Niwg MHgyMSwgMHgxYSwgMHhmMCwgMHgzNyk7CiAKIHN0YXRpYyBpbnQgd2NvdmVfdHlwZWNfZnVuYyhz dHJ1Y3Qgd2NvdmVfdHlwZWMgKndjb3ZlLAogCQkJICAgIGVudW0gd2NvdmVfdHlwZWNfZnVuYyBm dW5jLCBpbnQgcGFyYW0pCkBAIC0xMTgsNyArMTE4LDcgQEAgc3RhdGljIGludCB3Y292ZV90eXBl Y19mdW5jKHN0cnVjdCB3Y292ZV90eXBlYyAqd2NvdmUsCiAJdG1wLnR5cGUgPSBBQ1BJX1RZUEVf SU5URUdFUjsKIAl0bXAuaW50ZWdlci52YWx1ZSA9IHBhcmFtOwogCi0Jb2JqID0gYWNwaV9ldmFs dWF0ZV9kc20oQUNQSV9IQU5ETEUod2NvdmUtPmRldiksIHV1aWQuYiwgMSwgZnVuYywKKwlvYmog PSBhY3BpX2V2YWx1YXRlX2RzbShBQ1BJX0hBTkRMRSh3Y292ZS0+ZGV2KSwgJmd1aWQsIDEsIGZ1 bmMsCiAJCQkJJmFyZ3Y0KTsKIAlpZiAoIW9iaikgewogCQlkZXZfZXJyKHdjb3ZlLT5kZXYsICIl czogZmFpbGVkIHRvIGV2YWx1YXRlIF9EU01cbiIsIF9fZnVuY19fKTsKQEAgLTMxNCw3ICszMTQs NyBAQCBzdGF0aWMgaW50IHdjb3ZlX3R5cGVjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ug KnBkZXYpCiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAotCWlmICghYWNwaV9jaGVja19kc20o QUNQSV9IQU5ETEUoJnBkZXYtPmRldiksIHV1aWQuYiwgMCwgMHgxZikpIHsKKwlpZiAoIWFjcGlf Y2hlY2tfZHNtKEFDUElfSEFORExFKCZwZGV2LT5kZXYpLCAmZ3VpZCwgMCwgMHgxZikpIHsKIAkJ ZGV2X2VycigmcGRldi0+ZGV2LCAiTWlzc2luZyBfRFNNIGZ1bmN0aW9uc1xuIik7CiAJCXJldHVy biAtRU5PREVWOwogCX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYWNwaS9hY3BpX2J1cy5oIGIvaW5j bHVkZS9hY3BpL2FjcGlfYnVzLmgKaW5kZXggMTk3ZjNmZmZjOWE3Li5lYTdkZjE2ZTcxYTcgMTAw NjQ0Ci0tLSBhL2luY2x1ZGUvYWNwaS9hY3BpX2J1cy5oCisrKyBiL2luY2x1ZGUvYWNwaS9hY3Bp X2J1cy5oCkBAIC02MSwxNyArNjEsMTggQEAgYm9vbCBhY3BpX2F0YV9tYXRjaChhY3BpX2hhbmRs ZSBoYW5kbGUpOwogYm9vbCBhY3BpX2JheV9tYXRjaChhY3BpX2hhbmRsZSBoYW5kbGUpOwogYm9v bCBhY3BpX2RvY2tfbWF0Y2goYWNwaV9oYW5kbGUgaGFuZGxlKTsKIAotYm9vbCBhY3BpX2NoZWNr X2RzbShhY3BpX2hhbmRsZSBoYW5kbGUsIGNvbnN0IHU4ICp1dWlkLCB1NjQgcmV2LCB1NjQgZnVu Y3MpOwotdW5pb24gYWNwaV9vYmplY3QgKmFjcGlfZXZhbHVhdGVfZHNtKGFjcGlfaGFuZGxlIGhh bmRsZSwgY29uc3QgdTggKnV1aWQsCitib29sIGFjcGlfY2hlY2tfZHNtKGFjcGlfaGFuZGxlIGhh bmRsZSwgY29uc3QgZ3VpZF90ICpndWlkLCB1NjQgcmV2LCB1NjQgZnVuY3MpOwordW5pb24gYWNw aV9vYmplY3QgKmFjcGlfZXZhbHVhdGVfZHNtKGFjcGlfaGFuZGxlIGhhbmRsZSwgY29uc3QgZ3Vp ZF90ICpndWlkLAogCQkJdTY0IHJldiwgdTY0IGZ1bmMsIHVuaW9uIGFjcGlfb2JqZWN0ICphcmd2 NCk7CiAKIHN0YXRpYyBpbmxpbmUgdW5pb24gYWNwaV9vYmplY3QgKgotYWNwaV9ldmFsdWF0ZV9k c21fdHlwZWQoYWNwaV9oYW5kbGUgaGFuZGxlLCBjb25zdCB1OCAqdXVpZCwgdTY0IHJldiwgdTY0 IGZ1bmMsCi0JCQl1bmlvbiBhY3BpX29iamVjdCAqYXJndjQsIGFjcGlfb2JqZWN0X3R5cGUgdHlw ZSkKK2FjcGlfZXZhbHVhdGVfZHNtX3R5cGVkKGFjcGlfaGFuZGxlIGhhbmRsZSwgY29uc3QgZ3Vp ZF90ICpndWlkLCB1NjQgcmV2LAorCQkJdTY0IGZ1bmMsIHVuaW9uIGFjcGlfb2JqZWN0ICphcmd2 NCwKKwkJCWFjcGlfb2JqZWN0X3R5cGUgdHlwZSkKIHsKIAl1bmlvbiBhY3BpX29iamVjdCAqb2Jq OwogCi0Jb2JqID0gYWNwaV9ldmFsdWF0ZV9kc20oaGFuZGxlLCB1dWlkLCByZXYsIGZ1bmMsIGFy Z3Y0KTsKKwlvYmogPSBhY3BpX2V2YWx1YXRlX2RzbShoYW5kbGUsIGd1aWQsIHJldiwgZnVuYywg YXJndjQpOwogCWlmIChvYmogJiYgb2JqLT50eXBlICE9IHR5cGUpIHsKIAkJQUNQSV9GUkVFKG9i aik7CiAJCW9iaiA9IE5VTEw7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2FjcGkuaCBiL2lu Y2x1ZGUvbGludXgvYWNwaS5oCmluZGV4IGIwZTE2MzZjYTVjMy4uYWIxOTM2NWM5MDVmIDEwMDY0 NAotLS0gYS9pbmNsdWRlL2xpbnV4L2FjcGkuaAorKysgYi9pbmNsdWRlL2xpbnV4L2FjcGkuaApA QCAtNDU4LDcgKzQ1OCw2IEBAIHN0cnVjdCBhY3BpX29zY19jb250ZXh0IHsKIAlzdHJ1Y3QgYWNw aV9idWZmZXIgcmV0OwkJLyogZnJlZSBieSBjYWxsZXIgaWYgc3VjY2VzcyAqLwogfTsKIAotYWNw aV9zdGF0dXMgYWNwaV9zdHJfdG9fdXVpZChjaGFyICpzdHIsIHU4ICp1dWlkKTsKIGFjcGlfc3Rh dHVzIGFjcGlfcnVuX29zYyhhY3BpX2hhbmRsZSBoYW5kbGUsIHN0cnVjdCBhY3BpX29zY19jb250 ZXh0ICpjb250ZXh0KTsKIAogLyogSW5kZXhlcyBpbnRvIF9PU0MgQ2FwYWJpbGl0aWVzIEJ1ZmZl ciAoRFdPUkRzIDIgJiAzIGFyZSBkZXZpY2Utc3BlY2lmaWMpICovCkBAIC03NDIsNyArNzQxLDcg QEAgc3RhdGljIGlubGluZSBib29sIGFjcGlfZHJpdmVyX21hdGNoX2RldmljZShzdHJ1Y3QgZGV2 aWNlICpkZXYsCiB9CiAKIHN0YXRpYyBpbmxpbmUgdW5pb24gYWNwaV9vYmplY3QgKmFjcGlfZXZh bHVhdGVfZHNtKGFjcGlfaGFuZGxlIGhhbmRsZSwKLQkJCQkJCSAgIGNvbnN0IHU4ICp1dWlkLAor CQkJCQkJICAgY29uc3QgZ3VpZF90ICpndWlkLAogCQkJCQkJICAgaW50IHJldiwgaW50IGZ1bmMs CiAJCQkJCQkgICB1bmlvbiBhY3BpX29iamVjdCAqYXJndjQpCiB7CmRpZmYgLS1naXQgYS9pbmNs dWRlL2xpbnV4L3BjaS1hY3BpLmggYi9pbmNsdWRlL2xpbnV4L3BjaS1hY3BpLmgKaW5kZXggN2E0 ZTgzYThjODljLi5kZDg2Yzk3ZjI0NTQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvcGNpLWFj cGkuaAorKysgYi9pbmNsdWRlL2xpbnV4L3BjaS1hY3BpLmgKQEAgLTEwNSw3ICsxMDUsNyBAQCBz dGF0aWMgaW5saW5lIHZvaWQgYWNwaXBocF9yZW1vdmVfc2xvdHMoc3RydWN0IHBjaV9idXMgKmJ1 cykgeyB9CiBzdGF0aWMgaW5saW5lIHZvaWQgYWNwaXBocF9jaGVja19ob3N0X2JyaWRnZShzdHJ1 Y3QgYWNwaV9kZXZpY2UgKmFkZXYpIHsgfQogI2VuZGlmCiAKLWV4dGVybiBjb25zdCB1OCBwY2lf YWNwaV9kc21fdXVpZFtdOworZXh0ZXJuIGNvbnN0IGd1aWRfdCBwY2lfYWNwaV9kc21fZ3VpZDsK ICNkZWZpbmUgREVWSUNFX0xBQkVMX0RTTQkweDA3CiAjZGVmaW5lIFJFU0VUX0RFTEFZX0RTTQkJ MHgwOAogI2RlZmluZSBGVU5DVElPTl9ERUxBWV9EU00JMHgwOQpkaWZmIC0tZ2l0IGEvc291bmQv c29jL2ludGVsL3NreWxha2Uvc2tsLW5obHQuYyBiL3NvdW5kL3NvYy9pbnRlbC9za3lsYWtlL3Nr bC1uaGx0LmMKaW5kZXggZTNmMDY2NzJmZDZkLi41NTQwNjVkZDUxOGMgMTAwNjQ0Ci0tLSBhL3Nv dW5kL3NvYy9pbnRlbC9za3lsYWtlL3NrbC1uaGx0LmMKKysrIGIvc291bmQvc29jL2ludGVsL3Nr eWxha2Uvc2tsLW5obHQuYwpAQCAtMjEsOCArMjEsOSBAQAogI2luY2x1ZGUgInNrbC5oIgogCiAv KiBVbmlxdWUgaWRlbnRpZmljYXRpb24gZm9yIGdldHRpbmcgTkhMVCBibG9icyAqLwotc3RhdGlj IHU4IE9TQ19VVUlEWzE2XSA9IHsweDZFLCAweDg4LCAweDlGLCAweEE2LCAweEVCLCAweDZDLCAw eDk0LCAweDQ1LAotCQkJCTB4QTQsIDB4MUYsIDB4N0IsIDB4NUQsIDB4Q0UsIDB4MjQsIDB4QzUs IDB4NTN9Oworc3RhdGljIGd1aWRfdCBvc2NfZ3VpZCA9CisJR1VJRCgweEE2OUY4ODZFLCAweDZD RUIsIDB4NDU5NCwKKwkgICAgIDB4QTQsIDB4MUYsIDB4N0IsIDB4NUQsIDB4Q0UsIDB4MjQsIDB4 QzUsIDB4NTMpOwogCiBzdHJ1Y3QgbmhsdF9hY3BpX3RhYmxlICpza2xfbmhsdF9pbml0KHN0cnVj dCBkZXZpY2UgKmRldikKIHsKQEAgLTM3LDcgKzM4LDcgQEAgc3RydWN0IG5obHRfYWNwaV90YWJs ZSAqc2tsX25obHRfaW5pdChzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJCXJldHVybiBOVUxMOwogCX0K IAotCW9iaiA9IGFjcGlfZXZhbHVhdGVfZHNtKGhhbmRsZSwgT1NDX1VVSUQsIDEsIDEsIE5VTEwp OworCW9iaiA9IGFjcGlfZXZhbHVhdGVfZHNtKGhhbmRsZSwgJm9zY19ndWlkLCAxLCAxLCBOVUxM KTsKIAlpZiAob2JqICYmIG9iai0+dHlwZSA9PSBBQ1BJX1RZUEVfQlVGRkVSKSB7CiAJCW5obHRf cHRyID0gKHN0cnVjdCBuaGx0X3Jlc291cmNlX2Rlc2MgICopb2JqLT5idWZmZXIucG9pbnRlcjsK IAkJbmhsdF90YWJsZSA9IChzdHJ1Y3QgbmhsdF9hY3BpX3RhYmxlICopCmRpZmYgLS1naXQgYS90 b29scy90ZXN0aW5nL252ZGltbS90ZXN0L2lvbWFwLmMgYi90b29scy90ZXN0aW5nL252ZGltbS90 ZXN0L2lvbWFwLmMKaW5kZXggNjRjYWUxYTVkZWZmLi5lMWY3NWExOTE0YTEgMTAwNjQ0Ci0tLSBh L3Rvb2xzL3Rlc3RpbmcvbnZkaW1tL3Rlc3QvaW9tYXAuYworKysgYi90b29scy90ZXN0aW5nL252 ZGltbS90ZXN0L2lvbWFwLmMKQEAgLTM3MCw3ICszNzAsNyBAQCBhY3BpX3N0YXR1cyBfX3dyYXBf YWNwaV9ldmFsdWF0ZV9vYmplY3QoYWNwaV9oYW5kbGUgaGFuZGxlLCBhY3BpX3N0cmluZyBwYXRo LAogfQogRVhQT1JUX1NZTUJPTChfX3dyYXBfYWNwaV9ldmFsdWF0ZV9vYmplY3QpOwogCi11bmlv biBhY3BpX29iamVjdCAqIF9fd3JhcF9hY3BpX2V2YWx1YXRlX2RzbShhY3BpX2hhbmRsZSBoYW5k bGUsIGNvbnN0IHU4ICp1dWlkLAordW5pb24gYWNwaV9vYmplY3QgKiBfX3dyYXBfYWNwaV9ldmFs dWF0ZV9kc20oYWNwaV9oYW5kbGUgaGFuZGxlLCBjb25zdCBndWlkX3QgKmd1aWQsCiAJCXU2NCBy ZXYsIHU2NCBmdW5jLCB1bmlvbiBhY3BpX29iamVjdCAqYXJndjQpCiB7CiAJdW5pb24gYWNwaV9v YmplY3QgKm9iaiA9IEVSUl9QVFIoLUVOWElPKTsKQEAgLTM3OSwxMSArMzc5LDExIEBAIHVuaW9u IGFjcGlfb2JqZWN0ICogX193cmFwX2FjcGlfZXZhbHVhdGVfZHNtKGFjcGlfaGFuZGxlIGhhbmRs ZSwgY29uc3QgdTggKnV1aWQsCiAJcmN1X3JlYWRfbG9jaygpOwogCW9wcyA9IGxpc3RfZmlyc3Rf b3JfbnVsbF9yY3UoJmlvbWFwX2hlYWQsIHR5cGVvZigqb3BzKSwgbGlzdCk7CiAJaWYgKG9wcykK LQkJb2JqID0gb3BzLT5ldmFsdWF0ZV9kc20oaGFuZGxlLCB1dWlkLCByZXYsIGZ1bmMsIGFyZ3Y0 KTsKKwkJb2JqID0gb3BzLT5ldmFsdWF0ZV9kc20oaGFuZGxlLCBndWlkLCByZXYsIGZ1bmMsIGFy Z3Y0KTsKIAlyY3VfcmVhZF91bmxvY2soKTsKIAogCWlmIChJU19FUlIob2JqKSkKLQkJcmV0dXJu IGFjcGlfZXZhbHVhdGVfZHNtKGhhbmRsZSwgdXVpZCwgcmV2LCBmdW5jLCBhcmd2NCk7CisJCXJl dHVybiBhY3BpX2V2YWx1YXRlX2RzbShoYW5kbGUsIGd1aWQsIHJldiwgZnVuYywgYXJndjQpOwog CXJldHVybiBvYmo7CiB9CiBFWFBPUlRfU1lNQk9MKF9fd3JhcF9hY3BpX2V2YWx1YXRlX2RzbSk7 CmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL252ZGltbS90ZXN0L25maXQuYyBiL3Rvb2xzL3Rl c3RpbmcvbnZkaW1tL3Rlc3QvbmZpdC5jCmluZGV4IGMyMTg3MTc4ZmIxMy4uMjg4NTlkYTc4ZWRm IDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL252ZGltbS90ZXN0L25maXQuYworKysgYi90b29s cy90ZXN0aW5nL252ZGltbS90ZXN0L25maXQuYwpAQCAtMTU1OSw3ICsxNTU5LDcgQEAgc3RhdGlj IHVuc2lnbmVkIGxvbmcgbmZpdF9jdGxfaGFuZGxlOwogdW5pb24gYWNwaV9vYmplY3QgKnJlc3Vs dDsKIAogc3RhdGljIHVuaW9uIGFjcGlfb2JqZWN0ICpuZml0X3Rlc3RfZXZhbHVhdGVfZHNtKGFj cGlfaGFuZGxlIGhhbmRsZSwKLQkJY29uc3QgdTggKnV1aWQsIHU2NCByZXYsIHU2NCBmdW5jLCB1 bmlvbiBhY3BpX29iamVjdCAqYXJndjQpCisJCWNvbnN0IGd1aWRfdCAqZ3VpZCwgdTY0IHJldiwg dTY0IGZ1bmMsIHVuaW9uIGFjcGlfb2JqZWN0ICphcmd2NCkKIHsKIAlpZiAoaGFuZGxlICE9ICZu Zml0X2N0bF9oYW5kbGUpCiAJCXJldHVybiBFUlJfUFRSKC1FTlhJTyk7Ci0tIAoyLjExLjAKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=