From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andy Shevchenko Subject: [PATCH v1] ACPI: Switch to use generic UUID API Date: Thu, 4 May 2017 12:21:51 +0300 Message-ID: <20170504092151.88646-1-andriy.shevchenko@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: linux-acpi@vger.kernel.org, tpmdd-devel@lists.sourceforge.net, intel-gfx@lists.freedesktop.org, nouveau@lists.freedesktop.org, linux-input@vger.kernel.org, iommu@lists.linux-foundation.org, linux-mmc@vger.kernel.org, netdev@vger.kernel.org, linux-pci@vger.kernel.org, linux-usb@vger.kernel.org, alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org Cc: Felipe Balbi , Borislav Petkov , Mathias Nyman , Yisen Zhuang , Joerg Roedel , Amir Goldstein , "Rafael J . Wysocki" , Adrian Hunter , Jarkko Sakkinen , Liam Girdwood , Benjamin Tissoires , Heikki Krogerus , Mark Brown , Bjorn Helgaas , Dan Williams , Andy Shevchenko , Mika Westerberg , Zhang Rui , Ben Skeggs List-Id: tpmdd-devel@lists.sourceforge.net YWNwaV9ldmFsdWF0ZV9kc20oKSBhbmQgZnJpZW5kcyB0YWtlIGEgcG9pbnRlciB0byBhIHJhdyBi dWZmZXIgb2YgMTYKYnl0ZXMuIEluc3RlYWQgd2UgY29udmVydCB0aGVtIHRvIHVzZSB1dWlkX2xl IHR5cGUuIEF0IHRoZSBzYW1lIHRpbWUgd2UKY29udmVydCBjdXJyZW50IHVzZXJzLgoKYWNwaV9z dHJfdG9fdXVpZCgpIGJlY29tZXMgdXNlbGVzcyBhZnRlciB0aGUgY29udmVyc2lvbiBhbmQgaXQn cyBzYWZlIHRvCmdldCByaWQgb2YgaXQuCgpUaGUgY29udmVyc2lvbiBmaXhlcyBhIHBvdGVudGlh bCBidWcgaW4gaW50MzQweF90aGVybWFsIGFzIHdlbGwgc2luY2UKd2UgaGF2ZSB0byB1c2UgbWVt Y21wKCkgb24gYmluYXJ5IGRhdGEuCgpDYzogUmFmYWVsIEouIFd5c29ja2kgPHJqd0Byand5c29j a2kubmV0PgpDYzogTWlrYSBXZXN0ZXJiZXJnIDxtaWthLndlc3RlcmJlcmdAbGludXguaW50ZWwu Y29tPgpDYzogQm9yaXNsYXYgUGV0a292IDxicEBzdXNlLmRlPgpDYzogRGFuIFdpbGxpYW1zIDxk YW4uai53aWxsaWFtc0BpbnRlbC5jb20+CkNjOiBBbWlyIEdvbGRzdGVpbiA8YW1pcjczaWxAZ21h aWwuY29tPgpDYzogSmFya2tvIFNha2tpbmVuIDxqYXJra28uc2Fra2luZW5AbGludXguaW50ZWwu Y29tPgpDYzogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGxpbnV4LmludGVsLmNvbT4KQ2M6IEJl biBTa2VnZ3MgPGJza2VnZ3NAcmVkaGF0LmNvbT4KQ2M6IEJlbmphbWluIFRpc3NvaXJlcyA8YmVu amFtaW4udGlzc29pcmVzQHJlZGhhdC5jb20+CkNjOiBKb2VyZyBSb2VkZWwgPGpvcm9AOGJ5dGVz Lm9yZz4KQ2M6IEFkcmlhbiBIdW50ZXIgPGFkcmlhbi5odW50ZXJAaW50ZWwuY29tPgpDYzogWWlz ZW4gWmh1YW5nIDx5aXNlbi56aHVhbmdAaHVhd2VpLmNvbT4KQ2M6IEJqb3JuIEhlbGdhYXMgPGJo ZWxnYWFzQGdvb2dsZS5jb20+CkNjOiBaaGFuZyBSdWkgPHJ1aS56aGFuZ0BpbnRlbC5jb20+CkNj OiBGZWxpcGUgQmFsYmkgPGJhbGJpQGtlcm5lbC5vcmc+CkNjOiBNYXRoaWFzIE55bWFuIDxtYXRo aWFzLm55bWFuQGludGVsLmNvbT4KQ2M6IEhlaWtraSBLcm9nZXJ1cyA8aGVpa2tpLmtyb2dlcnVz QGxpbnV4LmludGVsLmNvbT4KQ2M6IExpYW0gR2lyZHdvb2QgPGxnaXJkd29vZEBnbWFpbC5jb20+ CkNjOiBNYXJrIEJyb3duIDxicm9vbmllQGtlcm5lbC5vcmc+ClNpZ25lZC1vZmYtYnk6IEFuZHkg U2hldmNoZW5rbyA8YW5kcml5LnNoZXZjaGVua29AbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZl cnMvYWNwaS9hY3BpX2V4dGxvZy5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTAgKysrLS0t CiBkcml2ZXJzL2FjcGkvYnVzLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDI5 ICsrLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvYWNwaS9uZml0L2NvcmUuYyAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgNDAgKysrKysrKysrKystLS0tLS0tLS0tLQogZHJpdmVycy9hY3BpL25m aXQvbmZpdC5oICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMyArLQogZHJpdmVycy9hY3Bp L3V0aWxzLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArLS0KIGRyaXZlcnMv Y2hhci90cG0vdHBtX2NyYi5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDkgKysrLS0KIGRy aXZlcnMvY2hhci90cG0vdHBtX3BwaS5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjAgKysr KystLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2FjcGkuYyAgICAgICAgICAgICAg ICAgIHwgMTQgKysrLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYWNwaS5j ICAgICAgICAgICAgIHwgMjAgKysrKystLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252 a20vc3ViZGV2L214bS9iYXNlLmMgICAgIHwgIDkgKysrLS0KIGRyaXZlcnMvaGlkL2kyYy1oaWQv aTJjLWhpZC5jICAgICAgICAgICAgICAgICAgICAgIHwgIDkgKysrLS0KIGRyaXZlcnMvaW9tbXUv ZG1hci5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTEgKysrLS0tCiBkcml2ZXJz L21tYy9ob3N0L3NkaGNpLXBjaS1jb3JlLmMgICAgICAgICAgICAgICAgICB8ICA5ICsrKy0tCiBk cml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zL2huc19kc2FmX21pc2MuYyB8IDE1ICsr KystLS0tCiBkcml2ZXJzL3BjaS9wY2ktYWNwaS5jICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IDExICsrKy0tLQogZHJpdmVycy9wY2kvcGNpLWxhYmVsLmMgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgNCArLS0KIGRyaXZlcnMvdGhlcm1hbC9pbnQzNDB4X3RoZXJtYWwvaW50MzQw MF90aGVybWFsLmMgIHwgIDggKystLS0KIGRyaXZlcnMvdXNiL2R3YzMvZHdjMy1wY2kuYyAgICAg ICAgICAgICAgICAgICAgICAgIHwgIDYgKystLQogZHJpdmVycy91c2IvaG9zdC94aGNpLXBjaS5j ICAgICAgICAgICAgICAgICAgICAgICAgfCAgOSArKystLQogZHJpdmVycy91c2IvbWlzYy91Y3Np LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogZHJpdmVycy91c2IvdHlwZWMv dHlwZWNfd2NvdmUuYyAgICAgICAgICAgICAgICAgICAgfCAgNCArLS0KIGluY2x1ZGUvYWNwaS9h Y3BpX2J1cy5oICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDkgKystLS0KIGluY2x1ZGUv bGludXgvYWNwaS5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQgKy0tCiBpbmNs dWRlL2xpbnV4L3BjaS1hY3BpLmggICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBz b3VuZC9zb2MvaW50ZWwvc2t5bGFrZS9za2wtbmhsdC5jICAgICAgICAgICAgICAgICB8ICA3ICsr LS0KIHRvb2xzL3Rlc3RpbmcvbnZkaW1tL3Rlc3QvaW9tYXAuYyAgICAgICAgICAgICAgICAgIHwg IDIgKy0KIHRvb2xzL3Rlc3RpbmcvbnZkaW1tL3Rlc3QvbmZpdC5jICAgICAgICAgICAgICAgICAg IHwgIDIgKy0KIDI3IGZpbGVzIGNoYW5nZWQsIDExNiBpbnNlcnRpb25zKCspLCAxNTYgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY3BpL2FjcGlfZXh0bG9nLmMgYi9kcml2ZXJz L2FjcGkvYWNwaV9leHRsb2cuYwppbmRleCA1MDJlYTRkYzIwODAuLjY5ZDYxNDBiNmFmYSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9hY3BpL2FjcGlfZXh0bG9nLmMKKysrIGIvZHJpdmVycy9hY3BpL2Fj cGlfZXh0bG9nLmMKQEAgLTE4MiwxNyArMTgyLDE3IEBAIHN0YXRpYyBpbnQgZXh0bG9nX3ByaW50 KHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIsIHVuc2lnbmVkIGxvbmcgdmFsLAogCiBzdGF0aWMg Ym9vbCBfX2luaXQgZXh0bG9nX2dldF9sMWFkZHIodm9pZCkKIHsKLQl1OCB1dWlkWzE2XTsKKwl1 dWlkX2xlIHV1aWQ7CiAJYWNwaV9oYW5kbGUgaGFuZGxlOwogCXVuaW9uIGFjcGlfb2JqZWN0ICpv Ymo7CiAKLQlhY3BpX3N0cl90b191dWlkKGV4dGxvZ19kc21fdXVpZCwgdXVpZCk7Ci0KKwlpZiAo dXVpZF9sZV90b19iaW4oZXh0bG9nX2RzbV91dWlkLCAmdXVpZCkpCisJCXJldHVybiBmYWxzZTsK IAlpZiAoQUNQSV9GQUlMVVJFKGFjcGlfZ2V0X2hhbmRsZShOVUxMLCAiXFxfU0IiLCAmaGFuZGxl KSkpCiAJCXJldHVybiBmYWxzZTsKLQlpZiAoIWFjcGlfY2hlY2tfZHNtKGhhbmRsZSwgdXVpZCwg RVhUTE9HX0RTTV9SRVYsIDEgPDwgRVhUTE9HX0ZOX0FERFIpKQorCWlmICghYWNwaV9jaGVja19k c20oaGFuZGxlLCAmdXVpZCwgRVhUTE9HX0RTTV9SRVYsIDEgPDwgRVhUTE9HX0ZOX0FERFIpKQog CQlyZXR1cm4gZmFsc2U7Ci0Jb2JqID0gYWNwaV9ldmFsdWF0ZV9kc21fdHlwZWQoaGFuZGxlLCB1 dWlkLCBFWFRMT0dfRFNNX1JFViwKKwlvYmogPSBhY3BpX2V2YWx1YXRlX2RzbV90eXBlZChoYW5k bGUsICZ1dWlkLCBFWFRMT0dfRFNNX1JFViwKIAkJCQkgICAgICBFWFRMT0dfRk5fQUREUiwgTlVM TCwgQUNQSV9UWVBFX0lOVEVHRVIpOwogCWlmICghb2JqKSB7CiAJCXJldHVybiBmYWxzZTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvYWNwaS9idXMuYyBiL2RyaXZlcnMvYWNwaS9idXMuYwppbmRleCA3 ODRiZGE2NjNkMTYuLmU4MTMwYTQ4NzNlOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9hY3BpL2J1cy5j CisrKyBiL2RyaXZlcnMvYWNwaS9idXMuYwpAQCAtMTk2LDQyICsxOTYsMTkgQEAgc3RhdGljIHZv aWQgYWNwaV9wcmludF9vc2NfZXJyb3IoYWNwaV9oYW5kbGUgaGFuZGxlLAogCXByX2RlYnVnKCJc biIpOwogfQogCi1hY3BpX3N0YXR1cyBhY3BpX3N0cl90b191dWlkKGNoYXIgKnN0ciwgdTggKnV1 aWQpCi17Ci0JaW50IGk7Ci0Jc3RhdGljIGludCBvcGNfbWFwX3RvX3V1aWRbMTZdID0gezYsIDQs IDIsIDAsIDExLCA5LCAxNiwgMTQsIDE5LCAyMSwKLQkJMjQsIDI2LCAyOCwgMzAsIDMyLCAzNH07 Ci0KLQlpZiAoc3RybGVuKHN0cikgIT0gMzYpCi0JCXJldHVybiBBRV9CQURfUEFSQU1FVEVSOwot CWZvciAoaSA9IDA7IGkgPCAzNjsgaSsrKSB7Ci0JCWlmIChpID09IDggfHwgaSA9PSAxMyB8fCBp ID09IDE4IHx8IGkgPT0gMjMpIHsKLQkJCWlmIChzdHJbaV0gIT0gJy0nKQotCQkJCXJldHVybiBB RV9CQURfUEFSQU1FVEVSOwotCQl9IGVsc2UgaWYgKCFpc3hkaWdpdChzdHJbaV0pKQotCQkJcmV0 dXJuIEFFX0JBRF9QQVJBTUVURVI7Ci0JfQotCWZvciAoaSA9IDA7IGkgPCAxNjsgaSsrKSB7Ci0J CXV1aWRbaV0gPSBoZXhfdG9fYmluKHN0cltvcGNfbWFwX3RvX3V1aWRbaV1dKSA8PCA0OwotCQl1 dWlkW2ldIHw9IGhleF90b19iaW4oc3RyW29wY19tYXBfdG9fdXVpZFtpXSArIDFdKTsKLQl9Ci0J cmV0dXJuIEFFX09LOwotfQotRVhQT1JUX1NZTUJPTF9HUEwoYWNwaV9zdHJfdG9fdXVpZCk7Ci0K IGFjcGlfc3RhdHVzIGFjcGlfcnVuX29zYyhhY3BpX2hhbmRsZSBoYW5kbGUsIHN0cnVjdCBhY3Bp X29zY19jb250ZXh0ICpjb250ZXh0KQogewogCWFjcGlfc3RhdHVzIHN0YXR1czsKIAlzdHJ1Y3Qg YWNwaV9vYmplY3RfbGlzdCBpbnB1dDsKIAl1bmlvbiBhY3BpX29iamVjdCBpbl9wYXJhbXNbNF07 CiAJdW5pb24gYWNwaV9vYmplY3QgKm91dF9vYmo7Ci0JdTggdXVpZFsxNl07CisJdXVpZF9sZSB1 dWlkOwogCXUzMiBlcnJvcnM7CiAJc3RydWN0IGFjcGlfYnVmZmVyIG91dHB1dCA9IHtBQ1BJX0FM TE9DQVRFX0JVRkZFUiwgTlVMTH07CiAKIAlpZiAoIWNvbnRleHQpCiAJCXJldHVybiBBRV9FUlJP UjsKLQlpZiAoQUNQSV9GQUlMVVJFKGFjcGlfc3RyX3RvX3V1aWQoY29udGV4dC0+dXVpZF9zdHIs IHV1aWQpKSkKKwlpZiAodXVpZF9sZV90b19iaW4oY29udGV4dC0+dXVpZF9zdHIsICZ1dWlkKSkK IAkJcmV0dXJuIEFFX0VSUk9SOwogCWNvbnRleHQtPnJldC5sZW5ndGggPSBBQ1BJX0FMTE9DQVRF X0JVRkZFUjsKIAljb250ZXh0LT5yZXQucG9pbnRlciA9IE5VTEw7CkBAIC0yNDEsNyArMjE4LDcg QEAgYWNwaV9zdGF0dXMgYWNwaV9ydW5fb3NjKGFjcGlfaGFuZGxlIGhhbmRsZSwgc3RydWN0IGFj cGlfb3NjX2NvbnRleHQgKmNvbnRleHQpCiAJaW5wdXQucG9pbnRlciA9IGluX3BhcmFtczsKIAlp bl9wYXJhbXNbMF0udHlwZSAJCT0gQUNQSV9UWVBFX0JVRkZFUjsKIAlpbl9wYXJhbXNbMF0uYnVm ZmVyLmxlbmd0aCAJPSAxNjsKLQlpbl9wYXJhbXNbMF0uYnVmZmVyLnBvaW50ZXIJPSB1dWlkOwor CWluX3BhcmFtc1swXS5idWZmZXIucG9pbnRlcgk9ICh1OCAqKSZ1dWlkOwogCWluX3BhcmFtc1sx XS50eXBlIAkJPSBBQ1BJX1RZUEVfSU5URUdFUjsKIAlpbl9wYXJhbXNbMV0uaW50ZWdlci52YWx1 ZSAJPSBjb250ZXh0LT5yZXY7CiAJaW5fcGFyYW1zWzJdLnR5cGUgCQk9IEFDUElfVFlQRV9JTlRF R0VSOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY3BpL25maXQvY29yZS5jIGIvZHJpdmVycy9hY3Bp L25maXQvY29yZS5jCmluZGV4IDBmNzk4MmExY2FhZi4uYmQzZTQ1ZWRlMDU2IDEwMDY0NAotLS0g YS9kcml2ZXJzL2FjcGkvbmZpdC9jb3JlLmMKKysrIGIvZHJpdmVycy9hY3BpL25maXQvY29yZS5j CkBAIC03NCwxMSArNzQsMTEgQEAgc3RydWN0IG5maXRfdGFibGVfcHJldiB7CiAJc3RydWN0IGxp c3RfaGVhZCBmbHVzaGVzOwogfTsKIAotc3RhdGljIHU4IG5maXRfdXVpZFtORklUX1VVSURfTUFY XVsxNl07CitzdGF0aWMgdXVpZF9sZSBuZml0X3V1aWRbTkZJVF9VVUlEX01BWF07CiAKLWNvbnN0 IHU4ICp0b19uZml0X3V1aWQoZW51bSBuZml0X3V1aWRzIGlkKQorY29uc3QgdXVpZF9sZSAqdG9f bmZpdF91dWlkKGVudW0gbmZpdF91dWlkcyBpZCkKIHsKLQlyZXR1cm4gbmZpdF91dWlkW2lkXTsK KwlyZXR1cm4gJm5maXRfdXVpZFtpZF07CiB9CiBFWFBPUlRfU1lNQk9MKHRvX25maXRfdXVpZCk7 CiAKQEAgLTIwNyw3ICsyMDcsNyBAQCBpbnQgYWNwaV9uZml0X2N0bChzdHJ1Y3QgbnZkaW1tX2J1 c19kZXNjcmlwdG9yICpuZF9kZXNjLCBzdHJ1Y3QgbnZkaW1tICpudmRpbW0sCiAJdTMyIG9mZnNl dCwgZndfc3RhdHVzID0gMDsKIAlhY3BpX2hhbmRsZSBoYW5kbGU7CiAJdW5zaWduZWQgaW50IGZ1 bmM7Ci0JY29uc3QgdTggKnV1aWQ7CisJY29uc3QgdXVpZF9sZSAqdXVpZDsKIAlpbnQgcmMsIGk7 CiAKIAlmdW5jID0gY21kOwpAQCAtMzk0LDcgKzM5NCw3IEBAIGludCBuZml0X3NwYV90eXBlKHN0 cnVjdCBhY3BpX25maXRfc3lzdGVtX2FkZHJlc3MgKnNwYSkKIAlpbnQgaTsKIAogCWZvciAoaSA9 IDA7IGkgPCBORklUX1VVSURfTUFYOyBpKyspCi0JCWlmIChtZW1jbXAodG9fbmZpdF91dWlkKGkp LCBzcGEtPnJhbmdlX2d1aWQsIDE2KSA9PSAwKQorCQlpZiAoIXV1aWRfbGVfY21wX3BwKHRvX25m aXRfdXVpZChpKSwgKHV1aWRfbGUgKilzcGEtPnJhbmdlX2d1aWQpKQogCQkJcmV0dXJuIGk7CiAJ cmV0dXJuIC0xOwogfQpAQCAtMTQwMCw3ICsxNDAwLDcgQEAgc3RhdGljIGludCBhY3BpX25maXRf YWRkX2RpbW0oc3RydWN0IGFjcGlfbmZpdF9kZXNjICphY3BpX2Rlc2MsCiAJc3RydWN0IGFjcGlf ZGV2aWNlICphZGV2LCAqYWRldl9kaW1tOwogCXN0cnVjdCBkZXZpY2UgKmRldiA9IGFjcGlfZGVz Yy0+ZGV2OwogCXVuc2lnbmVkIGxvbmcgZHNtX21hc2s7Ci0JY29uc3QgdTggKnV1aWQ7CisJY29u c3QgdXVpZF9sZSAqdXVpZCA9IHRvX25maXRfdXVpZChORklUX0RFVl9ESU1NKTsKIAlpbnQgaTsK IAlpbnQgZmFtaWx5ID0gLTE7CiAKQEAgLTE1OTYsNyArMTU5Niw3IEBAIHN0YXRpYyBpbnQgYWNw aV9uZml0X3JlZ2lzdGVyX2RpbW1zKHN0cnVjdCBhY3BpX25maXRfZGVzYyAqYWNwaV9kZXNjKQog c3RhdGljIHZvaWQgYWNwaV9uZml0X2luaXRfZHNtcyhzdHJ1Y3QgYWNwaV9uZml0X2Rlc2MgKmFj cGlfZGVzYykKIHsKIAlzdHJ1Y3QgbnZkaW1tX2J1c19kZXNjcmlwdG9yICpuZF9kZXNjID0gJmFj cGlfZGVzYy0+bmRfZGVzYzsKLQljb25zdCB1OCAqdXVpZCA9IHRvX25maXRfdXVpZChORklUX0RF Vl9CVVMpOworCWNvbnN0IHV1aWRfbGUgKnV1aWQgPSB0b19uZml0X3V1aWQoTkZJVF9ERVZfQlVT KTsKIAlzdHJ1Y3QgYWNwaV9kZXZpY2UgKmFkZXY7CiAJaW50IGk7CiAKQEAgLTMwMzYsMTkgKzMw MzYsMTkgQEAgc3RhdGljIF9faW5pdCBpbnQgbmZpdF9pbml0KHZvaWQpCiAJQlVJTERfQlVHX09O KHNpemVvZihzdHJ1Y3QgYWNwaV9uZml0X2NvbnRyb2xfcmVnaW9uKSAhPSA4MCk7CiAJQlVJTERf QlVHX09OKHNpemVvZihzdHJ1Y3QgYWNwaV9uZml0X2RhdGFfcmVnaW9uKSAhPSA0MCk7CiAKLQlh Y3BpX3N0cl90b191dWlkKFVVSURfVk9MQVRJTEVfTUVNT1JZLCBuZml0X3V1aWRbTkZJVF9TUEFf Vk9MQVRJTEVdKTsKLQlhY3BpX3N0cl90b191dWlkKFVVSURfUEVSU0lTVEVOVF9NRU1PUlksIG5m aXRfdXVpZFtORklUX1NQQV9QTV0pOwotCWFjcGlfc3RyX3RvX3V1aWQoVVVJRF9DT05UUk9MX1JF R0lPTiwgbmZpdF91dWlkW05GSVRfU1BBX0RDUl0pOwotCWFjcGlfc3RyX3RvX3V1aWQoVVVJRF9E QVRBX1JFR0lPTiwgbmZpdF91dWlkW05GSVRfU1BBX0JEV10pOwotCWFjcGlfc3RyX3RvX3V1aWQo VVVJRF9WT0xBVElMRV9WSVJUVUFMX0RJU0ssIG5maXRfdXVpZFtORklUX1NQQV9WRElTS10pOwot CWFjcGlfc3RyX3RvX3V1aWQoVVVJRF9WT0xBVElMRV9WSVJUVUFMX0NELCBuZml0X3V1aWRbTkZJ VF9TUEFfVkNEXSk7Ci0JYWNwaV9zdHJfdG9fdXVpZChVVUlEX1BFUlNJU1RFTlRfVklSVFVBTF9E SVNLLCBuZml0X3V1aWRbTkZJVF9TUEFfUERJU0tdKTsKLQlhY3BpX3N0cl90b191dWlkKFVVSURf UEVSU0lTVEVOVF9WSVJUVUFMX0NELCBuZml0X3V1aWRbTkZJVF9TUEFfUENEXSk7Ci0JYWNwaV9z dHJfdG9fdXVpZChVVUlEX05GSVRfQlVTLCBuZml0X3V1aWRbTkZJVF9ERVZfQlVTXSk7Ci0JYWNw aV9zdHJfdG9fdXVpZChVVUlEX05GSVRfRElNTSwgbmZpdF91dWlkW05GSVRfREVWX0RJTU1dKTsK LQlhY3BpX3N0cl90b191dWlkKFVVSURfTkZJVF9ESU1NX05fSFBFMSwgbmZpdF91dWlkW05GSVRf REVWX0RJTU1fTl9IUEUxXSk7Ci0JYWNwaV9zdHJfdG9fdXVpZChVVUlEX05GSVRfRElNTV9OX0hQ RTIsIG5maXRfdXVpZFtORklUX0RFVl9ESU1NX05fSFBFMl0pOwotCWFjcGlfc3RyX3RvX3V1aWQo VVVJRF9ORklUX0RJTU1fTl9NU0ZULCBuZml0X3V1aWRbTkZJVF9ERVZfRElNTV9OX01TRlRdKTsK Kwl1dWlkX2xlX3RvX2JpbihVVUlEX1ZPTEFUSUxFX01FTU9SWSwgJm5maXRfdXVpZFtORklUX1NQ QV9WT0xBVElMRV0pOworCXV1aWRfbGVfdG9fYmluKFVVSURfUEVSU0lTVEVOVF9NRU1PUlksICZu Zml0X3V1aWRbTkZJVF9TUEFfUE1dKTsKKwl1dWlkX2xlX3RvX2JpbihVVUlEX0NPTlRST0xfUkVH SU9OLCAmbmZpdF91dWlkW05GSVRfU1BBX0RDUl0pOworCXV1aWRfbGVfdG9fYmluKFVVSURfREFU QV9SRUdJT04sICZuZml0X3V1aWRbTkZJVF9TUEFfQkRXXSk7CisJdXVpZF9sZV90b19iaW4oVVVJ RF9WT0xBVElMRV9WSVJUVUFMX0RJU0ssICZuZml0X3V1aWRbTkZJVF9TUEFfVkRJU0tdKTsKKwl1 dWlkX2xlX3RvX2JpbihVVUlEX1ZPTEFUSUxFX1ZJUlRVQUxfQ0QsICZuZml0X3V1aWRbTkZJVF9T UEFfVkNEXSk7CisJdXVpZF9sZV90b19iaW4oVVVJRF9QRVJTSVNURU5UX1ZJUlRVQUxfRElTSywg Jm5maXRfdXVpZFtORklUX1NQQV9QRElTS10pOworCXV1aWRfbGVfdG9fYmluKFVVSURfUEVSU0lT VEVOVF9WSVJUVUFMX0NELCAmbmZpdF91dWlkW05GSVRfU1BBX1BDRF0pOworCXV1aWRfbGVfdG9f YmluKFVVSURfTkZJVF9CVVMsICZuZml0X3V1aWRbTkZJVF9ERVZfQlVTXSk7CisJdXVpZF9sZV90 b19iaW4oVVVJRF9ORklUX0RJTU0sICZuZml0X3V1aWRbTkZJVF9ERVZfRElNTV0pOworCXV1aWRf bGVfdG9fYmluKFVVSURfTkZJVF9ESU1NX05fSFBFMSwgJm5maXRfdXVpZFtORklUX0RFVl9ESU1N X05fSFBFMV0pOworCXV1aWRfbGVfdG9fYmluKFVVSURfTkZJVF9ESU1NX05fSFBFMiwgJm5maXRf dXVpZFtORklUX0RFVl9ESU1NX05fSFBFMl0pOworCXV1aWRfbGVfdG9fYmluKFVVSURfTkZJVF9E SU1NX05fTVNGVCwgJm5maXRfdXVpZFtORklUX0RFVl9ESU1NX05fTVNGVF0pOwogCiAJbmZpdF93 cSA9IGNyZWF0ZV9zaW5nbGV0aHJlYWRfd29ya3F1ZXVlKCJuZml0Iik7CiAJaWYgKCFuZml0X3dx KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY3BpL25maXQvbmZpdC5oIGIvZHJpdmVycy9hY3BpL25m aXQvbmZpdC5oCmluZGV4IDU4ZmI3ZDY4ZTA0YS4uMmYyMzNiMjg3MDlmIDEwMDY0NAotLS0gYS9k cml2ZXJzL2FjcGkvbmZpdC9uZml0LmgKKysrIGIvZHJpdmVycy9hY3BpL25maXQvbmZpdC5oCkBA IC0xOCw3ICsxOCw2IEBACiAjaW5jbHVkZSA8bGludXgvbGlibnZkaW1tLmg+CiAjaW5jbHVkZSA8 bGludXgvbmRjdGwuaD4KICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgotI2luY2x1ZGUgPGxpbnV4 L3V1aWQuaD4KICNpbmNsdWRlIDxsaW51eC9hY3BpLmg+CiAjaW5jbHVkZSA8YWNwaS9hY3V1aWQu aD4KIApAQCAtMjM3LDcgKzIzNiw3IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGFjcGlfbmZpdF9k ZXNjICp0b19hY3BpX2Rlc2MoCiAJcmV0dXJuIGNvbnRhaW5lcl9vZihuZF9kZXNjLCBzdHJ1Y3Qg YWNwaV9uZml0X2Rlc2MsIG5kX2Rlc2MpOwogfQogCi1jb25zdCB1OCAqdG9fbmZpdF91dWlkKGVu dW0gbmZpdF91dWlkcyBpZCk7Citjb25zdCB1dWlkX2xlICp0b19uZml0X3V1aWQoZW51bSBuZml0 X3V1aWRzIGlkKTsKIGludCBhY3BpX25maXRfaW5pdChzdHJ1Y3QgYWNwaV9uZml0X2Rlc2MgKmFj cGlfZGVzYywgdm9pZCAqbmZpdCwgYWNwaV9zaXplIHN6KTsKIHZvaWQgYWNwaV9uZml0X3NodXRk b3duKHZvaWQgKmRhdGEpOwogdm9pZCBfX2FjcGlfbmZpdF9ub3RpZnkoc3RydWN0IGRldmljZSAq ZGV2LCBhY3BpX2hhbmRsZSBoYW5kbGUsIHUzMiBldmVudCk7CmRpZmYgLS1naXQgYS9kcml2ZXJz L2FjcGkvdXRpbHMuYyBiL2RyaXZlcnMvYWNwaS91dGlscy5jCmluZGV4IDI3ZDBkY2ZjZjQ3ZC4u YmJlOGE5NTBlNTA4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2FjcGkvdXRpbHMuYworKysgYi9kcml2 ZXJzL2FjcGkvdXRpbHMuYwpAQCAtNjI1LDcgKzYyNSw3IEBAIGFjcGlfc3RhdHVzIGFjcGlfZXZh bHVhdGVfbGNrKGFjcGlfaGFuZGxlIGhhbmRsZSwgaW50IGxvY2spCiAgKiBzb21lIG9sZCBCSU9T ZXMgZG8gZXhwZWN0IGEgYnVmZmVyIG9yIGFuIGludGVnZXIgZXRjLgogICovCiB1bmlvbiBhY3Bp X29iamVjdCAqCi1hY3BpX2V2YWx1YXRlX2RzbShhY3BpX2hhbmRsZSBoYW5kbGUsIGNvbnN0IHU4 ICp1dWlkLCB1NjQgcmV2LCB1NjQgZnVuYywKK2FjcGlfZXZhbHVhdGVfZHNtKGFjcGlfaGFuZGxl IGhhbmRsZSwgY29uc3QgdXVpZF9sZSAqdXVpZCwgdTY0IHJldiwgdTY0IGZ1bmMsCiAJCSAgdW5p b24gYWNwaV9vYmplY3QgKmFyZ3Y0KQogewogCWFjcGlfc3RhdHVzIHJldDsKQEAgLTY3NCw3ICs2 NzQsNyBAQCBFWFBPUlRfU1lNQk9MKGFjcGlfZXZhbHVhdGVfZHNtKTsKICAqIGZ1bmN0aW9ucy4g Q3VycmVudGx5IG9ubHkgc3VwcG9ydCA2NCBmdW5jdGlvbnMgYXQgbWF4aW11bSwgc2hvdWxkIGJl CiAgKiBlbm91Z2ggZm9yIG5vdy4KICAqLwotYm9vbCBhY3BpX2NoZWNrX2RzbShhY3BpX2hhbmRs ZSBoYW5kbGUsIGNvbnN0IHU4ICp1dWlkLCB1NjQgcmV2LCB1NjQgZnVuY3MpCitib29sIGFjcGlf Y2hlY2tfZHNtKGFjcGlfaGFuZGxlIGhhbmRsZSwgY29uc3QgdXVpZF9sZSAqdXVpZCwgdTY0IHJl diwgdTY0IGZ1bmNzKQogewogCWludCBpOwogCXU2NCBtYXNrID0gMDsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvY2hhci90cG0vdHBtX2NyYi5jIGIvZHJpdmVycy9jaGFyL3RwbS90cG1fY3JiLmMKaW5k ZXggYjkxN2I5ZDVmNzEwLi5mNzg5ZjdlNWExN2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci90 cG0vdHBtX2NyYi5jCisrKyBiL2RyaXZlcnMvY2hhci90cG0vdHBtX2NyYi5jCkBAIC0yNywxMCAr MjcsOSBAQAogCiAjZGVmaW5lIEFDUElfU0lHX1RQTTIgIlRQTTIiCiAKLXN0YXRpYyBjb25zdCB1 OCBDUkJfQUNQSV9TVEFSVF9VVUlEW10gPSB7Ci0JLyogMDAwMCAqLyAweEFCLCAweDZDLCAweEJG LCAweDZCLCAweDYzLCAweDU0LCAweDE0LCAweDQ3LAotCS8qIDAwMDggKi8gMHhCNywgMHhDRCwg MHhGMCwgMHgyMCwgMHgzQywgMHgwMywgMHg2OCwgMHhENAotfTsKK3N0YXRpYyBjb25zdCB1dWlk X2xlIGNyYl9hY3BpX3N0YXJ0X3V1aWQgPQorCVVVSURfTEUoMHg2QkJGNkNBQiwgMHg1NDYzLCAw eDQ3MTQsCisJCTB4QjcsIDB4Q0QsIDB4RjAsIDB4MjAsIDB4M0MsIDB4MDMsIDB4NjgsIDB4RDQp OwogCiBlbnVtIGNyYl9kZWZhdWx0cyB7CiAJQ1JCX0FDUElfU1RBUlRfUkVWSVNJT05fSUQgPSAx LApAQCAtMjY2LDcgKzI2NSw3IEBAIHN0YXRpYyBpbnQgY3JiX2RvX2FjcGlfc3RhcnQoc3RydWN0 IHRwbV9jaGlwICpjaGlwKQogCWludCByYzsKIAogCW9iaiA9IGFjcGlfZXZhbHVhdGVfZHNtKGNo aXAtPmFjcGlfZGV2X2hhbmRsZSwKLQkJCQlDUkJfQUNQSV9TVEFSVF9VVUlELAorCQkJCSZjcmJf YWNwaV9zdGFydF91dWlkLAogCQkJCUNSQl9BQ1BJX1NUQVJUX1JFVklTSU9OX0lELAogCQkJCUNS Ql9BQ1BJX1NUQVJUX0lOREVYLAogCQkJCU5VTEwpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFy L3RwbS90cG1fcHBpLmMgYi9kcml2ZXJzL2NoYXIvdHBtL3RwbV9wcGkuYwppbmRleCA2OTJhMmM2 YWUwMzYuLjdjZjY4MjQyNjM2MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL3RwbS90cG1fcHBp LmMKKysrIGIvZHJpdmVycy9jaGFyL3RwbS90cG1fcHBpLmMKQEAgLTMyLDIwICszMiwxNiBAQAog I2RlZmluZSBQUElfVlNfUkVRX1NUQVJUCTEyOAogI2RlZmluZSBQUElfVlNfUkVRX0VORAkJMjU1 CiAKLXN0YXRpYyBjb25zdCB1OCB0cG1fcHBpX3V1aWRbXSA9IHsKLQkweEE2LCAweEZBLCAweERE LCAweDNELAotCTB4MUIsIDB4MzYsCi0JMHhCNCwgMHg0RSwKLQkweEE0LCAweDI0LAotCTB4OEQs IDB4MTAsIDB4MDgsIDB4OUQsIDB4MTYsIDB4NTMKLX07CitzdGF0aWMgY29uc3QgdXVpZF9sZSB0 cG1fcHBpX3V1aWQgPQorCVVVSURfTEUoMHgzRERERkFBNiwgMHgzNjFCLCAweDRFQjQsCisJCTB4 QTQsIDB4MjQsIDB4OEQsIDB4MTAsIDB4MDgsIDB4OUQsIDB4MTYsIDB4NTMpOwogCiBzdGF0aWMg aW5saW5lIHVuaW9uIGFjcGlfb2JqZWN0ICoKIHRwbV9ldmFsX2RzbShhY3BpX2hhbmRsZSBwcGlf aGFuZGxlLCBpbnQgZnVuYywgYWNwaV9vYmplY3RfdHlwZSB0eXBlLAogCSAgICAgdW5pb24gYWNw aV9vYmplY3QgKmFyZ3Y0KQogewogCUJVR19PTighcHBpX2hhbmRsZSk7Ci0JcmV0dXJuIGFjcGlf ZXZhbHVhdGVfZHNtX3R5cGVkKHBwaV9oYW5kbGUsIHRwbV9wcGlfdXVpZCwKKwlyZXR1cm4gYWNw aV9ldmFsdWF0ZV9kc21fdHlwZWQocHBpX2hhbmRsZSwgJnRwbV9wcGlfdXVpZCwKIAkJCQkgICAg ICAgVFBNX1BQSV9SRVZJU0lPTl9JRCwKIAkJCQkgICAgICAgZnVuYywgYXJndjQsIHR5cGUpOwog fQpAQCAtMTA3LDcgKzEwMyw3IEBAIHN0YXRpYyBzc2l6ZV90IHRwbV9zdG9yZV9wcGlfcmVxdWVz dChzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJICogaXMgdXBkYXRlZCB3aXRoIGZ1bmN0aW9uIGluZGV4 IGZyb20gU1VCUkVRIHRvIFNVQlJFUTIgc2luY2UgUFBJCiAJICogdmVyc2lvbiAxLjEKIAkgKi8K LQlpZiAoYWNwaV9jaGVja19kc20oY2hpcC0+YWNwaV9kZXZfaGFuZGxlLCB0cG1fcHBpX3V1aWQs CisJaWYgKGFjcGlfY2hlY2tfZHNtKGNoaXAtPmFjcGlfZGV2X2hhbmRsZSwgJnRwbV9wcGlfdXVp ZCwKIAkJCSAgIFRQTV9QUElfUkVWSVNJT05fSUQsIDEgPDwgVFBNX1BQSV9GTl9TVUJSRVEyKSkK IAkJZnVuYyA9IFRQTV9QUElfRk5fU1VCUkVRMjsKIApAQCAtMjY4LDcgKzI2NCw3IEBAIHN0YXRp YyBzc2l6ZV90IHNob3dfcHBpX29wZXJhdGlvbnMoYWNwaV9oYW5kbGUgZGV2X2hhbmRsZSwgY2hh ciAqYnVmLCB1MzIgc3RhcnQsCiAJCSJVc2VyIG5vdCByZXF1aXJlZCIsCiAJfTsKIAotCWlmICgh YWNwaV9jaGVja19kc20oZGV2X2hhbmRsZSwgdHBtX3BwaV91dWlkLCBUUE1fUFBJX1JFVklTSU9O X0lELAorCWlmICghYWNwaV9jaGVja19kc20oZGV2X2hhbmRsZSwgJnRwbV9wcGlfdXVpZCwgVFBN X1BQSV9SRVZJU0lPTl9JRCwKIAkJCSAgICAxIDw8IFRQTV9QUElfRk5fR0VUT1BSKSkKIAkJcmV0 dXJuIC1FUEVSTTsKIApAQCAtMzQxLDEyICszMzcsMTIgQEAgdm9pZCB0cG1fYWRkX3BwaShzdHJ1 Y3QgdHBtX2NoaXAgKmNoaXApCiAJaWYgKCFjaGlwLT5hY3BpX2Rldl9oYW5kbGUpCiAJCXJldHVy bjsKIAotCWlmICghYWNwaV9jaGVja19kc20oY2hpcC0+YWNwaV9kZXZfaGFuZGxlLCB0cG1fcHBp X3V1aWQsCisJaWYgKCFhY3BpX2NoZWNrX2RzbShjaGlwLT5hY3BpX2Rldl9oYW5kbGUsICZ0cG1f cHBpX3V1aWQsCiAJCQkgICAgVFBNX1BQSV9SRVZJU0lPTl9JRCwgMSA8PCBUUE1fUFBJX0ZOX1ZF UlNJT04pKQogCQlyZXR1cm47CiAKIAkvKiBDYWNoZSBQUEkgdmVyc2lvbiBzdHJpbmcuICovCi0J b2JqID0gYWNwaV9ldmFsdWF0ZV9kc21fdHlwZWQoY2hpcC0+YWNwaV9kZXZfaGFuZGxlLCB0cG1f cHBpX3V1aWQsCisJb2JqID0gYWNwaV9ldmFsdWF0ZV9kc21fdHlwZWQoY2hpcC0+YWNwaV9kZXZf aGFuZGxlLCAmdHBtX3BwaV91dWlkLAogCQkJCSAgICAgIFRQTV9QUElfUkVWSVNJT05fSUQsIFRQ TV9QUElfRk5fVkVSU0lPTiwKIAkJCQkgICAgICBOVUxMLCBBQ1BJX1RZUEVfU1RSSU5HKTsKIAlp ZiAob2JqKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hY3BpLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hY3BpLmMKaW5kZXggZWI2MzhhMWU2OWQyLi43 MmJmZTZjZWFkZjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2FjcGku YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hY3BpLmMKQEAgLTE1LDEzICsxNSw5 IEBAIHN0YXRpYyBzdHJ1Y3QgaW50ZWxfZHNtX3ByaXYgewogCWFjcGlfaGFuZGxlIGRoYW5kbGU7 CiB9IGludGVsX2RzbV9wcml2OwogCi1zdGF0aWMgY29uc3QgdTggaW50ZWxfZHNtX2d1aWRbXSA9 IHsKLQkweGQzLCAweDczLCAweGQ4LCAweDdlLAotCTB4ZDAsIDB4YzIsCi0JMHg0ZiwgMHg0ZSwK LQkweGE4LCAweDU0LAotCTB4MGYsIDB4MTMsIDB4MTcsIDB4YjAsIDB4MWMsIDB4MmMKLX07Citz dGF0aWMgY29uc3QgdXVpZF9sZSBpbnRlbF9kc21fZ3VpZCA9CisJVVVJRF9MRSgweDdlZDg3M2Qz LCAweGMyZDAsIDB4NGU0ZiwKKwkJMHhhOCwgMHg1NCwgMHgwZiwgMHgxMywgMHgxNywgMHhiMCwg MHgxYywgMHgyYyk7CiAKIHN0YXRpYyBjaGFyICppbnRlbF9kc21fcG9ydF9uYW1lKHU4IGlkKQog ewpAQCAtODAsNyArNzYsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kc21fcGxhdGZvcm1fbXV4X2lu Zm8odm9pZCkKIAlpbnQgaTsKIAl1bmlvbiBhY3BpX29iamVjdCAqcGtnLCAqY29ubmVjdG9yX2Nv dW50OwogCi0JcGtnID0gYWNwaV9ldmFsdWF0ZV9kc21fdHlwZWQoaW50ZWxfZHNtX3ByaXYuZGhh bmRsZSwgaW50ZWxfZHNtX2d1aWQsCisJcGtnID0gYWNwaV9ldmFsdWF0ZV9kc21fdHlwZWQoaW50 ZWxfZHNtX3ByaXYuZGhhbmRsZSwgJmludGVsX2RzbV9ndWlkLAogCQkJSU5URUxfRFNNX1JFVklT SU9OX0lELCBJTlRFTF9EU01fRk5fUExBVEZPUk1fTVVYX0lORk8sCiAJCQlOVUxMLCBBQ1BJX1RZ UEVfUEFDS0FHRSk7CiAJaWYgKCFwa2cpIHsKQEAgLTExOCw3ICsxMTQsNyBAQCBzdGF0aWMgYm9v bCBpbnRlbF9kc21fcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogCWlmICghZGhhbmRs ZSkKIAkJcmV0dXJuIGZhbHNlOwogCi0JaWYgKCFhY3BpX2NoZWNrX2RzbShkaGFuZGxlLCBpbnRl bF9kc21fZ3VpZCwgSU5URUxfRFNNX1JFVklTSU9OX0lELAorCWlmICghYWNwaV9jaGVja19kc20o ZGhhbmRsZSwgJmludGVsX2RzbV9ndWlkLCBJTlRFTF9EU01fUkVWSVNJT05fSUQsCiAJCQkgICAg MSA8PCBJTlRFTF9EU01fRk5fUExBVEZPUk1fTVVYX0lORk8pKSB7CiAJCURSTV9ERUJVR19LTVMo Im5vIF9EU00gbWV0aG9kIGZvciBpbnRlbCBkZXZpY2VcbiIpOwogCQlyZXR1cm4gZmFsc2U7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2FjcGkuYyBiL2RyaXZl cnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYWNwaS5jCmluZGV4IDM5NDY4YzIxODAyNy4uZmFl YTIzMjc2ZDRhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Fj cGkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2FjcGkuYwpAQCAtNjAs MTUgKzYwLDEzIEBAIGJvb2wgbm91dmVhdV9pc192MV9kc20odm9pZCkgewogfQogCiAjaWZkZWYg Q09ORklHX1ZHQV9TV0lUQ0hFUk9PCi1zdGF0aWMgY29uc3QgY2hhciBub3V2ZWF1X2RzbV9tdWlk W10gPSB7Ci0JMHhBMCwgMHhBMCwgMHg5NSwgMHg5RCwgMHg2MCwgMHgwMCwgMHg0OCwgMHg0RCwK LQkweEIzLCAweDRELCAweDdFLCAweDVGLCAweEVBLCAweDEyLCAweDlGLCAweEQ0LAotfTsKK3N0 YXRpYyBjb25zdCB1dWlkX2xlIG5vdXZlYXVfZHNtX211aWQgPQorCVVVSURfTEUoMHg5RDk1QTBB MCwgMHgwMDYwLCAweDRENDgsCisJCTB4QjMsIDB4NEQsIDB4N0UsIDB4NUYsIDB4RUEsIDB4MTIs IDB4OUYsIDB4RDQpOwogCi1zdGF0aWMgY29uc3QgY2hhciBub3V2ZWF1X29wX2RzbV9tdWlkW10g PSB7Ci0JMHhGOCwgMHhEOCwgMHg4NiwgMHhBNCwgMHhEQSwgMHgwQiwgMHgxQiwgMHg0NywKLQkw eEE3LCAweDJCLCAweDYwLCAweDQyLCAweEE2LCAweEI1LCAweEJFLCAweEUwLAotfTsKK3N0YXRp YyBjb25zdCB1dWlkX2xlIG5vdXZlYXVfb3BfZHNtX211aWQgPQorCVVVSURfTEUoMHhBNDg2RDhG OCwgMHgwQkRBLCAweDQ3MUIsCisJCTB4QTcsIDB4MkIsIDB4NjAsIDB4NDIsIDB4QTYsIDB4QjUs IDB4QkUsIDB4RTApOwogCiBzdGF0aWMgaW50IG5vdXZlYXVfb3B0aW11c19kc20oYWNwaV9oYW5k bGUgaGFuZGxlLCBpbnQgZnVuYywgaW50IGFyZywgdWludDMyX3QgKnJlc3VsdCkKIHsKQEAgLTg2 LDcgKzg0LDcgQEAgc3RhdGljIGludCBub3V2ZWF1X29wdGltdXNfZHNtKGFjcGlfaGFuZGxlIGhh bmRsZSwgaW50IGZ1bmMsIGludCBhcmcsIHVpbnQzMl90ICoKIAkJYXJnc19idWZmW2ldID0gKGFy ZyA+PiBpICogOCkgJiAweEZGOwogCiAJKnJlc3VsdCA9IDA7Ci0Jb2JqID0gYWNwaV9ldmFsdWF0 ZV9kc21fdHlwZWQoaGFuZGxlLCBub3V2ZWF1X29wX2RzbV9tdWlkLCAweDAwMDAwMTAwLAorCW9i aiA9IGFjcGlfZXZhbHVhdGVfZHNtX3R5cGVkKGhhbmRsZSwgJm5vdXZlYXVfb3BfZHNtX211aWQs IDB4MDAwMDAxMDAsCiAJCQkJICAgICAgZnVuYywgJmFyZ3Y0LCBBQ1BJX1RZUEVfQlVGRkVSKTsK IAlpZiAoIW9iaikgewogCQlhY3BpX2hhbmRsZV9pbmZvKGhhbmRsZSwgImZhaWxlZCB0byBldmFs dWF0ZSBfRFNNXG4iKTsKQEAgLTEzOCw3ICsxMzYsNyBAQCBzdGF0aWMgaW50IG5vdXZlYXVfZHNt KGFjcGlfaGFuZGxlIGhhbmRsZSwgaW50IGZ1bmMsIGludCBhcmcpCiAJCS5pbnRlZ2VyLnZhbHVl ID0gYXJnLAogCX07CiAKLQlvYmogPSBhY3BpX2V2YWx1YXRlX2RzbV90eXBlZChoYW5kbGUsIG5v dXZlYXVfZHNtX211aWQsIDB4MDAwMDAxMDIsCisJb2JqID0gYWNwaV9ldmFsdWF0ZV9kc21fdHlw ZWQoaGFuZGxlLCAmbm91dmVhdV9kc21fbXVpZCwgMHgwMDAwMDEwMiwKIAkJCQkgICAgICBmdW5j LCAmYXJndjQsIEFDUElfVFlQRV9JTlRFR0VSKTsKIAlpZiAoIW9iaikgewogCQlhY3BpX2hhbmRs ZV9pbmZvKGhhbmRsZSwgImZhaWxlZCB0byBldmFsdWF0ZSBfRFNNXG4iKTsKQEAgLTI1OSw3ICsy NTcsNyBAQCBzdGF0aWMgdm9pZCBub3V2ZWF1X2RzbV9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYg KnBkZXYsIGFjcGlfaGFuZGxlICpkaGFuZGxlX291dAogCWlmICghYWNwaV9oYXNfbWV0aG9kKGRo YW5kbGUsICJfRFNNIikpCiAJCXJldHVybjsKIAotCXN1cHBvcnRzX211eCA9IGFjcGlfY2hlY2tf ZHNtKGRoYW5kbGUsIG5vdXZlYXVfZHNtX211aWQsIDB4MDAwMDAxMDIsCisJc3VwcG9ydHNfbXV4 ID0gYWNwaV9jaGVja19kc20oZGhhbmRsZSwgJm5vdXZlYXVfZHNtX211aWQsIDB4MDAwMDAxMDIs CiAJCQkJICAgICAgMSA8PCBOT1VWRUFVX0RTTV9QT1dFUik7CiAJb3B0aW11c19mdW5jcyA9IG5v dXZlYXVfZHNtX2dldF9vcHRpbXVzX2Z1bmN0aW9ucyhkaGFuZGxlKTsKIApkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9zdWJkZXYvbXhtL2Jhc2UuYyBiL2RyaXZlcnMv Z3B1L2RybS9ub3V2ZWF1L252a20vc3ViZGV2L214bS9iYXNlLmMKaW5kZXggZTNlMmY1ZTgzODE1 Li5jYzk1YjgxNTBhODYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20v c3ViZGV2L214bS9iYXNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9zdWJk ZXYvbXhtL2Jhc2UuYwpAQCAtODEsMTAgKzgxLDkgQEAgbXhtX3NoYWRvd19kc20oc3RydWN0IG52 a21fbXhtICpteG0sIHU4IHZlcnNpb24pCiB7CiAJc3RydWN0IG52a21fc3ViZGV2ICpzdWJkZXYg PSAmbXhtLT5zdWJkZXY7CiAJc3RydWN0IG52a21fZGV2aWNlICpkZXZpY2UgPSBzdWJkZXYtPmRl dmljZTsKLQlzdGF0aWMgY2hhciBtdWlkW10gPSB7Ci0JCTB4MDAsIDB4QTQsIDB4MDQsIDB4NDAs IDB4N0QsIDB4OTEsIDB4RjIsIDB4NEMsCi0JCTB4QjgsIDB4OUMsIDB4NzksIDB4QjYsIDB4MkYs IDB4RDUsIDB4NTYsIDB4NjUKLQl9OworCXN0YXRpYyB1dWlkX2xlIG11aWQgPQorCQlVVUlEX0xF KDB4NDAwNEE0MDAsIDB4OTE3RCwgMHg0Q0YyLAorCQkJMHhCOCwgMHg5QywgMHg3OSwgMHhCNiwg MHgyRiwgMHhENSwgMHg1NiwgMHg2NSk7CiAJdTMyIG14bXNfYXJnc1tdID0geyAweDAwMDAwMDAw IH07CiAJdW5pb24gYWNwaV9vYmplY3QgYXJndjQgPSB7CiAJCS5idWZmZXIudHlwZSA9IEFDUElf VFlQRV9CVUZGRVIsCkBAIC0xMDUsNyArMTA0LDcgQEAgbXhtX3NoYWRvd19kc20oc3RydWN0IG52 a21fbXhtICpteG0sIHU4IHZlcnNpb24pCiAJICogdW5sZXNzIHlvdSBwYXNzIGluIGV4YWN0bHkg dGhlIHZlcnNpb24gaXQgc3VwcG9ydHMuLgogCSAqLwogCXJldiA9ICh2ZXJzaW9uICYgMHhmMCkg PDwgNCB8ICh2ZXJzaW9uICYgMHgwZik7Ci0Jb2JqID0gYWNwaV9ldmFsdWF0ZV9kc20oaGFuZGxl LCBtdWlkLCByZXYsIDB4MDAwMDAwMTAsICZhcmd2NCk7CisJb2JqID0gYWNwaV9ldmFsdWF0ZV9k c20oaGFuZGxlLCAmbXVpZCwgcmV2LCAweDAwMDAwMDEwLCAmYXJndjQpOwogCWlmICghb2JqKSB7 CiAJCW52a21fZGVidWcoc3ViZGV2LCAiRFNNIE1YTVMgZmFpbGVkXG4iKTsKIAkJcmV0dXJuIGZh bHNlOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9oaWQvaTJjLWhpZC9pMmMtaGlkLmMgYi9kcml2ZXJz L2hpZC9pMmMtaGlkL2kyYy1oaWQuYwppbmRleCA4ZGFhOGNlNjRlYmIuLmY4M2JkNzE3Y2RkNSAx MDA2NDQKLS0tIGEvZHJpdmVycy9oaWQvaTJjLWhpZC9pMmMtaGlkLmMKKysrIGIvZHJpdmVycy9o aWQvaTJjLWhpZC9pMmMtaGlkLmMKQEAgLTg3MiwxMCArODcyLDkgQEAgc3RhdGljIGludCBpMmNf aGlkX2ZldGNoX2hpZF9kZXNjcmlwdG9yKHN0cnVjdCBpMmNfaGlkICppaGlkKQogc3RhdGljIGlu dCBpMmNfaGlkX2FjcGlfcGRhdGEoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwKIAkJc3RydWN0 IGkyY19oaWRfcGxhdGZvcm1fZGF0YSAqcGRhdGEpCiB7Ci0Jc3RhdGljIHU4IGkyY19oaWRfZ3Vp ZFtdID0gewotCQkweEY3LCAweEY2LCAweERGLCAweDNDLCAweDY3LCAweDQyLCAweDU1LCAweDQ1 LAotCQkweEFELCAweDA1LCAweEIzLCAweDBBLCAweDNELCAweDg5LCAweDM4LCAweERFLAotCX07 CisJc3RhdGljIHV1aWRfbGUgaTJjX2hpZF9ndWlkID0KKwkJVVVJRF9MRSgweDNDREZGNkY3LCAw eDQyNjcsIDB4NDU1NSwKKwkJCTB4QUQsIDB4MDUsIDB4QjMsIDB4MEEsIDB4M0QsIDB4ODksIDB4 MzgsIDB4REUpOwogCXVuaW9uIGFjcGlfb2JqZWN0ICpvYmo7CiAJc3RydWN0IGFjcGlfZGV2aWNl ICphZGV2OwogCWFjcGlfaGFuZGxlIGhhbmRsZTsKQEAgLTg4NCw3ICs4ODMsNyBAQCBzdGF0aWMg aW50IGkyY19oaWRfYWNwaV9wZGF0YShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LAogCWlmICgh aGFuZGxlIHx8IGFjcGlfYnVzX2dldF9kZXZpY2UoaGFuZGxlLCAmYWRldikpCiAJCXJldHVybiAt RU5PREVWOwogCi0Jb2JqID0gYWNwaV9ldmFsdWF0ZV9kc21fdHlwZWQoaGFuZGxlLCBpMmNfaGlk X2d1aWQsIDEsIDEsIE5VTEwsCisJb2JqID0gYWNwaV9ldmFsdWF0ZV9kc21fdHlwZWQoaGFuZGxl LCAmaTJjX2hpZF9ndWlkLCAxLCAxLCBOVUxMLAogCQkJCSAgICAgIEFDUElfVFlQRV9JTlRFR0VS KTsKIAlpZiAoIW9iaikgewogCQlkZXZfZXJyKCZjbGllbnQtPmRldiwgImRldmljZSBfRFNNIGV4 ZWN1dGlvbiBmYWlsZWRcbiIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pb21tdS9kbWFyLmMgYi9k cml2ZXJzL2lvbW11L2RtYXIuYwppbmRleCBjYmY3NzYzZDgwOTEuLjQyMGQ1MWIyODZhZCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9pb21tdS9kbWFyLmMKKysrIGIvZHJpdmVycy9pb21tdS9kbWFyLmMK QEAgLTE4MDgsMTAgKzE4MDgsOSBAQCBJT01NVV9JTklUX1BPU1QoZGV0ZWN0X2ludGVsX2lvbW11 KTsKICAqIGZvciBEaXJlY3RlZC1JTyBBcmNoaXRlY3R1cmUgU3BlY2lmaWN0aW9uLCBSZXYgMi4y LCBTZWN0aW9uIDguOAogICogIlJlbWFwcGluZyBIYXJkd2FyZSBVbml0IEhvdCBQbHVnIi4KICAq Lwotc3RhdGljIHU4IGRtYXJfaHBfdXVpZFtdID0gewotCS8qIDAwMDAgKi8gICAgMHhBNiwgMHhB MywgMHhDMSwgMHhEOCwgMHg5QiwgMHhCRSwgMHg5QiwgMHg0QywKLQkvKiAwMDA4ICovICAgIDB4 OTEsIDB4QkYsIDB4QzMsIDB4Q0IsIDB4ODEsIDB4RkMsIDB4NUQsIDB4QUYKLX07CitzdGF0aWMg dXVpZF9sZSBkbWFyX2hwX3V1aWQgPQorCVVVSURfTEUoMHhEOEMxQTNBNiwgMHhCRTlCLCAweDRD OUIsCisJCTB4OTEsIDB4QkYsIDB4QzMsIDB4Q0IsIDB4ODEsIDB4RkMsIDB4NUQsIDB4QUYpOwog CiAvKgogICogQ3VycmVudGx5IHRoZXJlJ3Mgb25seSBvbmUgcmV2aXNpb24gYW5kIEJJT1Mgd2ls bCBub3QgY2hlY2sgdGhlIHJldmlzaW9uIGlkLApAQCAtMTgyNCw3ICsxODIzLDcgQEAgc3RhdGlj IHU4IGRtYXJfaHBfdXVpZFtdID0gewogCiBzdGF0aWMgaW5saW5lIGJvb2wgZG1hcl9kZXRlY3Rf ZHNtKGFjcGlfaGFuZGxlIGhhbmRsZSwgaW50IGZ1bmMpCiB7Ci0JcmV0dXJuIGFjcGlfY2hlY2tf ZHNtKGhhbmRsZSwgZG1hcl9ocF91dWlkLCBETUFSX0RTTV9SRVZfSUQsIDEgPDwgZnVuYyk7CisJ cmV0dXJuIGFjcGlfY2hlY2tfZHNtKGhhbmRsZSwgJmRtYXJfaHBfdXVpZCwgRE1BUl9EU01fUkVW X0lELCAxIDw8IGZ1bmMpOwogfQogCiBzdGF0aWMgaW50IGRtYXJfd2Fsa19kc21fcmVzb3VyY2Uo YWNwaV9oYW5kbGUgaGFuZGxlLCBpbnQgZnVuYywKQEAgLTE4NDMsNyArMTg0Miw3IEBAIHN0YXRp YyBpbnQgZG1hcl93YWxrX2RzbV9yZXNvdXJjZShhY3BpX2hhbmRsZSBoYW5kbGUsIGludCBmdW5j LAogCWlmICghZG1hcl9kZXRlY3RfZHNtKGhhbmRsZSwgZnVuYykpCiAJCXJldHVybiAwOwogCi0J b2JqID0gYWNwaV9ldmFsdWF0ZV9kc21fdHlwZWQoaGFuZGxlLCBkbWFyX2hwX3V1aWQsIERNQVJf RFNNX1JFVl9JRCwKKwlvYmogPSBhY3BpX2V2YWx1YXRlX2RzbV90eXBlZChoYW5kbGUsICZkbWFy X2hwX3V1aWQsIERNQVJfRFNNX1JFVl9JRCwKIAkJCQkgICAgICBmdW5jLCBOVUxMLCBBQ1BJX1RZ UEVfQlVGRkVSKTsKIAlpZiAoIW9iaikKIAkJcmV0dXJuIC1FTk9ERVY7CmRpZmYgLS1naXQgYS9k cml2ZXJzL21tYy9ob3N0L3NkaGNpLXBjaS1jb3JlLmMgYi9kcml2ZXJzL21tYy9ob3N0L3NkaGNp LXBjaS1jb3JlLmMKaW5kZXggOTJmYzNmN2M1MzhkLi4yNjJiOGMzMjBkN2MgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvbW1jL2hvc3Qvc2RoY2ktcGNpLWNvcmUuYworKysgYi9kcml2ZXJzL21tYy9ob3N0 L3NkaGNpLXBjaS1jb3JlLmMKQEAgLTQwNCwxMCArNDA0LDkgQEAgc3RydWN0IGludGVsX2hvc3Qg ewogCWJvb2wJZDNfcmV0dW5lOwogfTsKIAotY29uc3QgdTggaW50ZWxfZHNtX3V1aWRbXSA9IHsK LQkweEE1LCAweDNFLCAweEMxLCAweEY2LCAweENELCAweDY1LCAweDFGLCAweDQ2LAotCTB4QUIs IDB4N0EsIDB4MjksIDB4RjcsIDB4RTgsIDB4RDUsIDB4QkQsIDB4NjEsCi19OworY29uc3QgdXVp ZF9sZSBpbnRlbF9kc21fdXVpZCA9CisJVVVJRF9MRSgweEY2QzEzRUE1LCAweDY1Q0QsIDB4NDYx RiwKKwkJMHhBQiwgMHg3QSwgMHgyOSwgMHhGNywgMHhFOCwgMHhENSwgMHhCRCwgMHg2MSk7CiAK IHN0YXRpYyBpbnQgX19pbnRlbF9kc20oc3RydWN0IGludGVsX2hvc3QgKmludGVsX2hvc3QsIHN0 cnVjdCBkZXZpY2UgKmRldiwKIAkJICAgICAgIHVuc2lnbmVkIGludCBmbiwgdTMyICpyZXN1bHQp CkBAIC00MTYsNyArNDE1LDcgQEAgc3RhdGljIGludCBfX2ludGVsX2RzbShzdHJ1Y3QgaW50ZWxf aG9zdCAqaW50ZWxfaG9zdCwgc3RydWN0IGRldmljZSAqZGV2LAogCWludCBlcnIgPSAwOwogCXNp emVfdCBsZW47CiAKLQlvYmogPSBhY3BpX2V2YWx1YXRlX2RzbShBQ1BJX0hBTkRMRShkZXYpLCBp bnRlbF9kc21fdXVpZCwgMCwgZm4sIE5VTEwpOworCW9iaiA9IGFjcGlfZXZhbHVhdGVfZHNtKEFD UElfSEFORExFKGRldiksICZpbnRlbF9kc21fdXVpZCwgMCwgZm4sIE5VTEwpOwogCWlmICghb2Jq KQogCQlyZXR1cm4gLUVPUE5PVFNVUFA7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2hpc2lsaWNvbi9obnMvaG5zX2RzYWZfbWlzYy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv aGlzaWxpY29uL2hucy9obnNfZHNhZl9taXNjLmMKaW5kZXggZTEzYWEwNjRhOGU5Li4wMjg0MmZl N2YxZDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMvaG5z X2RzYWZfbWlzYy5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMvaG5z X2RzYWZfbWlzYy5jCkBAIC0yOSwxMCArMjksOSBAQCBlbnVtIF9kc21fcnN0X3R5cGUgewogCUhO U19ST0NFX1JFU0VUX0ZVTkMgICAgID0gMHg3LAogfTsKIAotY29uc3QgdTggaG5zX2RzYWZfYWNw aV9kc21fdXVpZFtdID0gewotCTB4MUEsIDB4QUEsIDB4ODUsIDB4MUEsIDB4OTMsIDB4RTIsIDB4 NUUsIDB4NDEsCi0JMHg4RSwgMHgyOCwgMHg4RCwgMHg2OSwgMHgwQSwgMHgwRiwgMHg4MiwgMHgw QQotfTsKK2NvbnN0IHV1aWRfbGUgaG5zX2RzYWZfYWNwaV9kc21fdXVpZCA9CisJVVVJRF9MRSgw eDFBODVBQTFBLCAweEUyOTMsIDB4NDE1RSwKKwkJMHg4RSwgMHgyOCwgMHg4RCwgMHg2OSwgMHgw QSwgMHgwRiwgMHg4MiwgMHgwQSk7CiAKIHN0YXRpYyB2b2lkIGRzYWZfd3JpdGVfc3ViKHN0cnVj dCBkc2FmX2RldmljZSAqZHNhZl9kZXYsIHUzMiByZWcsIHUzMiB2YWwpCiB7CkBAIC0xNTEsNyAr MTUwLDcgQEAgc3RhdGljIHZvaWQgaG5zX2RzYWZfYWNwaV9zcnN0X2J5X3BvcnQoc3RydWN0IGRz YWZfZGV2aWNlICpkc2FmX2RldiwgdTggb3BfdHlwZSwKIAlhcmd2NC5wYWNrYWdlLmVsZW1lbnRz ID0gb2JqX2FyZ3M7CiAKIAlvYmogPSBhY3BpX2V2YWx1YXRlX2RzbShBQ1BJX0hBTkRMRShkc2Fm X2Rldi0+ZGV2KSwKLQkJCQlobnNfZHNhZl9hY3BpX2RzbV91dWlkLCAwLCBvcF90eXBlLCAmYXJn djQpOworCQkJCSZobnNfZHNhZl9hY3BpX2RzbV91dWlkLCAwLCBvcF90eXBlLCAmYXJndjQpOwog CWlmICghb2JqKSB7CiAJCWRldl93YXJuKGRzYWZfZGV2LT5kZXYsICJyZXNldCBwb3J0X3R5cGUl ZCBwb3J0JWQgZmFpbCEiLAogCQkJIHBvcnRfdHlwZSwgcG9ydCk7CkBAIC00MzQsNyArNDMzLDcg QEAgc3RhdGljIHBoeV9pbnRlcmZhY2VfdCBobnNfbWFjX2dldF9waHlfaWZfYWNwaShzdHJ1Y3Qg aG5zX21hY19jYiAqbWFjX2NiKQogCWFyZ3Y0LnBhY2thZ2UuZWxlbWVudHMgPSAmb2JqX2FyZ3Ms CiAKIAlvYmogPSBhY3BpX2V2YWx1YXRlX2RzbShBQ1BJX0hBTkRMRShtYWNfY2ItPmRldiksCi0J CQkJaG5zX2RzYWZfYWNwaV9kc21fdXVpZCwgMCwKKwkJCQkmaG5zX2RzYWZfYWNwaV9kc21fdXVp ZCwgMCwKIAkJCQlITlNfT1BfR0VUX1BPUlRfVFlQRV9GVU5DLCAmYXJndjQpOwogCiAJaWYgKCFv YmogfHwgb2JqLT50eXBlICE9IEFDUElfVFlQRV9JTlRFR0VSKQpAQCAtNDc0LDcgKzQ3Myw3IEBA IGludCBobnNfbWFjX2dldF9zZnBfcHJzbnRfYWNwaShzdHJ1Y3QgaG5zX21hY19jYiAqbWFjX2Ni LCBpbnQgKnNmcF9wcnNudCkKIAlhcmd2NC5wYWNrYWdlLmVsZW1lbnRzID0gJm9ial9hcmdzLAog CiAJb2JqID0gYWNwaV9ldmFsdWF0ZV9kc20oQUNQSV9IQU5ETEUobWFjX2NiLT5kZXYpLAotCQkJ CWhuc19kc2FmX2FjcGlfZHNtX3V1aWQsIDAsCisJCQkJJmhuc19kc2FmX2FjcGlfZHNtX3V1aWQs IDAsCiAJCQkJSE5TX09QX0dFVF9TRlBfU1RBVF9GVU5DLCAmYXJndjQpOwogCiAJaWYgKCFvYmog fHwgb2JqLT50eXBlICE9IEFDUElfVFlQRV9JTlRFR0VSKQpAQCAtNTY1LDcgKzU2NCw3IEBAIGhu c19tYWNfY29uZmlnX3Nkc19sb29wYmFja19hY3BpKHN0cnVjdCBobnNfbWFjX2NiICptYWNfY2Is IGJvb2wgZW4pCiAJYXJndjQucGFja2FnZS5lbGVtZW50cyA9IG9ial9hcmdzOwogCiAJb2JqID0g YWNwaV9ldmFsdWF0ZV9kc20oQUNQSV9IQU5ETEUobWFjX2NiLT5kc2FmX2Rldi0+ZGV2KSwKLQkJ CQlobnNfZHNhZl9hY3BpX2RzbV91dWlkLCAwLAorCQkJCSZobnNfZHNhZl9hY3BpX2RzbV91dWlk LCAwLAogCQkJCUhOU19PUF9TRVJERVNfTFBfRlVOQywgJmFyZ3Y0KTsKIAlpZiAoIW9iaikgewog CQlkZXZfd2FybihtYWNfY2ItPmRzYWZfZGV2LT5kZXYsICJzZXQgcG9ydCVkIHNlcmRlcyBscCBm YWlsISIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9wY2ktYWNwaS5jIGIvZHJpdmVycy9wY2kv cGNpLWFjcGkuYwppbmRleCAwMDE4NjAzNjE0MzQuLmViNjEyMTIzZTBkZCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9wY2kvcGNpLWFjcGkuYworKysgYi9kcml2ZXJzL3BjaS9wY2ktYWNwaS5jCkBAIC0y NCwxMCArMjQsOSBAQAogICogVGhlIFVVSUQgaXMgZGVmaW5lZCBpbiB0aGUgUENJIEZpcm13YXJl IFNwZWNpZmljYXRpb24gYXZhaWxhYmxlIGhlcmU6CiAgKiBodHRwczovL3d3dy5wY2lzaWcuY29t L21lbWJlcnMvZG93bmxvYWRzL3BjaWZ3X3IzXzFfMTNEZWMxMC5wZGYKICAqLwotY29uc3QgdTgg cGNpX2FjcGlfZHNtX3V1aWRbXSA9IHsKLQkweGQwLCAweDM3LCAweGM5LCAweGU1LCAweDUzLCAw eDM1LCAweDdhLCAweDRkLAotCTB4OTEsIDB4MTcsIDB4ZWEsIDB4NGQsIDB4MTksIDB4YzMsIDB4 NDMsIDB4NGQKLX07Citjb25zdCB1dWlkX2xlIHBjaV9hY3BpX2RzbV91dWlkID0KKwlVVUlEX0xF KDB4ZTVjOTM3ZDAsIDB4MzU1MywgMHg0ZDdhLAorCQkweDkxLCAweDE3LCAweGVhLCAweDRkLCAw eDE5LCAweGMzLCAweDQzLCAweDRkKTsKIAogI2lmIGRlZmluZWQoQ09ORklHX1BDSV9RVUlSS1Mp ICYmIGRlZmluZWQoQ09ORklHX0FSTTY0KQogc3RhdGljIGludCBhY3BpX2dldF9yY19hZGRyKHN0 cnVjdCBhY3BpX2RldmljZSAqYWRldiwgc3RydWN0IHJlc291cmNlICpyZXMpCkBAIC02ODAsNyAr Njc5LDcgQEAgdm9pZCBhY3BpX3BjaV9hZGRfYnVzKHN0cnVjdCBwY2lfYnVzICpidXMpCiAJaWYg KCFwY2lfaXNfcm9vdF9idXMoYnVzKSkKIAkJcmV0dXJuOwogCi0Jb2JqID0gYWNwaV9ldmFsdWF0 ZV9kc20oQUNQSV9IQU5ETEUoYnVzLT5icmlkZ2UpLCBwY2lfYWNwaV9kc21fdXVpZCwgMywKKwlv YmogPSBhY3BpX2V2YWx1YXRlX2RzbShBQ1BJX0hBTkRMRShidXMtPmJyaWRnZSksICZwY2lfYWNw aV9kc21fdXVpZCwgMywKIAkJCQlSRVNFVF9ERUxBWV9EU00sIE5VTEwpOwogCWlmICghb2JqKQog CQlyZXR1cm47CkBAIC03NDUsNyArNzQ0LDcgQEAgc3RhdGljIHZvaWQgcGNpX2FjcGlfb3B0aW1p emVfZGVsYXkoc3RydWN0IHBjaV9kZXYgKnBkZXYsCiAJaWYgKGJyaWRnZS0+aWdub3JlX3Jlc2V0 X2RlbGF5KQogCQlwZGV2LT5kM2NvbGRfZGVsYXkgPSAwOwogCi0Jb2JqID0gYWNwaV9ldmFsdWF0 ZV9kc20oaGFuZGxlLCBwY2lfYWNwaV9kc21fdXVpZCwgMywKKwlvYmogPSBhY3BpX2V2YWx1YXRl X2RzbShoYW5kbGUsICZwY2lfYWNwaV9kc21fdXVpZCwgMywKIAkJCQlGVU5DVElPTl9ERUxBWV9E U00sIE5VTEwpOwogCWlmICghb2JqKQogCQlyZXR1cm47CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Bj aS9wY2ktbGFiZWwuYyBiL2RyaXZlcnMvcGNpL3BjaS1sYWJlbC5jCmluZGV4IDUxMzU3Mzc3ZWZi Yy4uYTJjMDQyMjlmMWRjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9wY2ktbGFiZWwuYworKysg Yi9kcml2ZXJzL3BjaS9wY2ktbGFiZWwuYwpAQCAtMTcyLDcgKzE3Miw3IEBAIHN0YXRpYyBpbnQg ZHNtX2dldF9sYWJlbChzdHJ1Y3QgZGV2aWNlICpkZXYsIGNoYXIgKmJ1ZiwKIAlpZiAoIWhhbmRs ZSkKIAkJcmV0dXJuIC0xOwogCi0Jb2JqID0gYWNwaV9ldmFsdWF0ZV9kc20oaGFuZGxlLCBwY2lf YWNwaV9kc21fdXVpZCwgMHgyLAorCW9iaiA9IGFjcGlfZXZhbHVhdGVfZHNtKGhhbmRsZSwgJnBj aV9hY3BpX2RzbV91dWlkLCAweDIsCiAJCQkJREVWSUNFX0xBQkVMX0RTTSwgTlVMTCk7CiAJaWYg KCFvYmopCiAJCXJldHVybiAtMTsKQEAgLTIxMiw3ICsyMTIsNyBAQCBzdGF0aWMgYm9vbCBkZXZp Y2VfaGFzX2RzbShzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJaWYgKCFoYW5kbGUpCiAJCXJldHVybiBm YWxzZTsKIAotCXJldHVybiAhIWFjcGlfY2hlY2tfZHNtKGhhbmRsZSwgcGNpX2FjcGlfZHNtX3V1 aWQsIDB4MiwKKwlyZXR1cm4gISFhY3BpX2NoZWNrX2RzbShoYW5kbGUsICZwY2lfYWNwaV9kc21f dXVpZCwgMHgyLAogCQkJCTEgPDwgREVWSUNFX0xBQkVMX0RTTSk7CiB9CiAKZGlmZiAtLWdpdCBh L2RyaXZlcnMvdGhlcm1hbC9pbnQzNDB4X3RoZXJtYWwvaW50MzQwMF90aGVybWFsLmMgYi9kcml2 ZXJzL3RoZXJtYWwvaW50MzQweF90aGVybWFsL2ludDM0MDBfdGhlcm1hbC5jCmluZGV4IDk0MTNj NGFiZjBiOS4uYzBlYjNiYjE5YjIzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3RoZXJtYWwvaW50MzQw eF90aGVybWFsL2ludDM0MDBfdGhlcm1hbC5jCisrKyBiL2RyaXZlcnMvdGhlcm1hbC9pbnQzNDB4 X3RoZXJtYWwvaW50MzQwMF90aGVybWFsLmMKQEAgLTIzLDcgKzIzLDcgQEAgZW51bSBpbnQzNDAw X3RoZXJtYWxfdXVpZCB7CiAJSU5UMzQwMF9USEVSTUFMX01BWElNVU1fVVVJRCwKIH07CiAKLXN0 YXRpYyB1OCAqaW50MzQwMF90aGVybWFsX3V1aWRzW0lOVDM0MDBfVEhFUk1BTF9NQVhJTVVNX1VV SURdID0geworc3RhdGljIGNvbnN0IGNoYXIgKmludDM0MDBfdGhlcm1hbF91dWlkc1tJTlQzNDAw X1RIRVJNQUxfTUFYSU1VTV9VVUlEXSA9IHsKIAkiNDJBNDQxRDYtQUU2QS00NjJiLUE4NEItNEE4 Q0U3OTAyN0QzIiwKIAkiM0E5NUMzODktRTRCOC00NjI5LUE1MjYtQzUyQzg4NjI2QkFFIiwKIAki OTdDNjhBRTctMTVGQS00OTljLUI4QzktNURBODFENjA2RTBBIiwKQEAgLTE0MSwxMCArMTQxLDEw IEBAIHN0YXRpYyBpbnQgaW50MzQwMF90aGVybWFsX2dldF91dWlkcyhzdHJ1Y3QgaW50MzQwMF90 aGVybWFsX3ByaXYgKnByaXYpCiAJCX0KIAogCQlmb3IgKGogPSAwOyBqIDwgSU5UMzQwMF9USEVS TUFMX01BWElNVU1fVVVJRDsgaisrKSB7Ci0JCQl1OCB1dWlkWzE2XTsKKwkJCXV1aWRfbGUgdTsK IAotCQkJYWNwaV9zdHJfdG9fdXVpZChpbnQzNDAwX3RoZXJtYWxfdXVpZHNbal0sIHV1aWQpOwot CQkJaWYgKCFzdHJuY21wKHV1aWQsIG9iamItPmJ1ZmZlci5wb2ludGVyLCAxNikpIHsKKwkJCXV1 aWRfbGVfdG9fYmluKGludDM0MDBfdGhlcm1hbF91dWlkc1tqXSwgJnUpOworCQkJaWYgKCF1dWlk X2xlX2NtcCgqKHV1aWRfbGUgKilvYmpiLT5idWZmZXIucG9pbnRlciksIHUpIHsKIAkJCQlwcml2 LT51dWlkX2JpdG1hcCB8PSAoMSA8PCBqKTsKIAkJCQlicmVhazsKIAkJCX0KZGlmZiAtLWdpdCBh L2RyaXZlcnMvdXNiL2R3YzMvZHdjMy1wY2kuYyBiL2RyaXZlcnMvdXNiL2R3YzMvZHdjMy1wY2ku YwppbmRleCBhMTVlYzcxZDA0MjMuLjZiNTI4NGVjNzZkZiAxMDA2NDQKLS0tIGEvZHJpdmVycy91 c2IvZHdjMy9kd2MzLXBjaS5jCisrKyBiL2RyaXZlcnMvdXNiL2R3YzMvZHdjMy1wY2kuYwpAQCAt NTYsNyArNTYsNyBAQCBzdHJ1Y3QgZHdjM19wY2kgewogCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ug KmR3YzM7CiAJc3RydWN0IHBjaV9kZXYgKnBjaTsKIAotCXU4IHV1aWRbMTZdOworCXV1aWRfbGUg dXVpZDsKIAogCXVuc2lnbmVkIGludCBoYXNfZHNtX2Zvcl9wbToxOwogfTsKQEAgLTExOCw3ICsx MTgsNyBAQCBzdGF0aWMgaW50IGR3YzNfcGNpX3F1aXJrcyhzdHJ1Y3QgZHdjM19wY2kgKmR3YykK IAogCQlpZiAocGRldi0+ZGV2aWNlID09IFBDSV9ERVZJQ0VfSURfSU5URUxfQlhUIHx8CiAJCQkJ cGRldi0+ZGV2aWNlID09IFBDSV9ERVZJQ0VfSURfSU5URUxfQlhUX00pIHsKLQkJCWFjcGlfc3Ry X3RvX3V1aWQoUENJX0lOVEVMX0JYVF9EU01fVVVJRCwgZHdjLT51dWlkKTsKKwkJCXV1aWRfbGVf dG9fYmluKFBDSV9JTlRFTF9CWFRfRFNNX1VVSUQsICZkd2MtPnV1aWQpOwogCQkJZHdjLT5oYXNf ZHNtX2Zvcl9wbSA9IHRydWU7CiAJCX0KIApAQCAtMjg4LDcgKzI4OCw3IEBAIHN0YXRpYyBpbnQg ZHdjM19wY2lfZHNtKHN0cnVjdCBkd2MzX3BjaSAqZHdjLCBpbnQgcGFyYW0pCiAJdG1wLnR5cGUg PSBBQ1BJX1RZUEVfSU5URUdFUjsKIAl0bXAuaW50ZWdlci52YWx1ZSA9IHBhcmFtOwogCi0Jb2Jq ID0gYWNwaV9ldmFsdWF0ZV9kc20oQUNQSV9IQU5ETEUoJmR3Yy0+cGNpLT5kZXYpLCBkd2MtPnV1 aWQsCisJb2JqID0gYWNwaV9ldmFsdWF0ZV9kc20oQUNQSV9IQU5ETEUoJmR3Yy0+cGNpLT5kZXYp LCAmZHdjLT51dWlkLAogCQkJMSwgUENJX0lOVEVMX0JYVF9GVU5DX1BNVV9QV1IsICZhcmd2NCk7 CiAJaWYgKCFvYmopIHsKIAkJZGV2X2VycigmZHdjLT5wY2ktPmRldiwgImZhaWxlZCB0byBldmFs dWF0ZSBfRFNNXG4iKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3QveGhjaS1wY2kuYyBi L2RyaXZlcnMvdXNiL2hvc3QveGhjaS1wY2kuYwppbmRleCA3Yjg2NTA4YWM4Y2YuLjkzYjRmMGRl OTQxOCAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvaG9zdC94aGNpLXBjaS5jCisrKyBiL2RyaXZl cnMvdXNiL2hvc3QveGhjaS1wY2kuYwpAQCAtMjEwLDEzICsyMTAsMTIgQEAgc3RhdGljIHZvaWQg eGhjaV9wY2lfcXVpcmtzKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHhoY2lfaGNkICp4aGNp KQogI2lmZGVmIENPTkZJR19BQ1BJCiBzdGF0aWMgdm9pZCB4aGNpX3BtZV9hY3BpX3J0ZDNfZW5h YmxlKHN0cnVjdCBwY2lfZGV2ICpkZXYpCiB7Ci0Jc3RhdGljIGNvbnN0IHU4IGludGVsX2RzbV91 dWlkW10gPSB7Ci0JCTB4YjcsIDB4MGMsIDB4MzQsIDB4YWMsCTB4MDEsIDB4ZTksIDB4YmYsIDB4 NDUsCi0JCTB4YjcsIDB4ZTYsIDB4MmIsIDB4MzQsIDB4ZWMsIDB4OTMsIDB4MWUsIDB4MjMsCi0J fTsKKwlzdGF0aWMgY29uc3QgdXVpZF9sZSBpbnRlbF9kc21fdXVpZCA9CisJCVVVSURfTEUoMHhh YzM0MGNiNywgMHhlOTAxLCAweDQ1YmYsCisJCQkweGI3LCAweGU2LCAweDJiLCAweDM0LCAweGVj LCAweDkzLCAweDFlLCAweDIzKTsKIAl1bmlvbiBhY3BpX29iamVjdCAqb2JqOwogCi0Jb2JqID0g YWNwaV9ldmFsdWF0ZV9kc20oQUNQSV9IQU5ETEUoJmRldi0+ZGV2KSwgaW50ZWxfZHNtX3V1aWQs IDMsIDEsCisJb2JqID0gYWNwaV9ldmFsdWF0ZV9kc20oQUNQSV9IQU5ETEUoJmRldi0+ZGV2KSwg JmludGVsX2RzbV91dWlkLCAzLCAxLAogCQkJCU5VTEwpOwogCUFDUElfRlJFRShvYmopOwogfQpk aWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvbWlzYy91Y3NpLmMgYi9kcml2ZXJzL3VzYi9taXNjL3Vj c2kuYwppbmRleCAwNzM5N2JkZGVmYTMuLjQ5ZTMyZmZiZTU5ZiAxMDA2NDQKLS0tIGEvZHJpdmVy cy91c2IvbWlzYy91Y3NpLmMKKysrIGIvZHJpdmVycy91c2IvbWlzYy91Y3NpLmMKQEAgLTYxLDcg KzYxLDcgQEAgc3RhdGljIGludCB1Y3NpX2FjcGlfY21kKHN0cnVjdCB1Y3NpICp1Y3NpLCBzdHJ1 Y3QgdWNzaV9jb250cm9sICpjdHJsKQogCiAJdWNzaS0+ZGF0YS0+Y3RybC5yYXdfY21kID0gY3Ry bC0+cmF3X2NtZDsKIAotCW9iaiA9IGFjcGlfZXZhbHVhdGVfZHNtKEFDUElfSEFORExFKHVjc2kt PmRldiksIHV1aWQuYiwgMSwgMSwgTlVMTCk7CisJb2JqID0gYWNwaV9ldmFsdWF0ZV9kc20oQUNQ SV9IQU5ETEUodWNzaS0+ZGV2KSwgJnV1aWQsIDEsIDEsIE5VTEwpOwogCWlmICghb2JqKSB7CiAJ CWRldl9lcnIodWNzaS0+ZGV2LCAiJXM6IGZhaWxlZCB0byBldmFsdWF0ZSBfRFNNXG4iLCBfX2Z1 bmNfXyk7CiAJCXJldHVybiAtRUlPOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvdHlwZWMvdHlw ZWNfd2NvdmUuYyBiL2RyaXZlcnMvdXNiL3R5cGVjL3R5cGVjX3djb3ZlLmMKaW5kZXggZDVhN2Iy MWZhM2YxLi41Y2U5M2UwYTE1Y2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3R5cGVjL3R5cGVj X3djb3ZlLmMKKysrIGIvZHJpdmVycy91c2IvdHlwZWMvdHlwZWNfd2NvdmUuYwpAQCAtMTE4LDcg KzExOCw3IEBAIHN0YXRpYyBpbnQgd2NvdmVfdHlwZWNfZnVuYyhzdHJ1Y3Qgd2NvdmVfdHlwZWMg Kndjb3ZlLAogCXRtcC50eXBlID0gQUNQSV9UWVBFX0lOVEVHRVI7CiAJdG1wLmludGVnZXIudmFs dWUgPSBwYXJhbTsKIAotCW9iaiA9IGFjcGlfZXZhbHVhdGVfZHNtKEFDUElfSEFORExFKHdjb3Zl LT5kZXYpLCB1dWlkLmIsIDEsIGZ1bmMsCisJb2JqID0gYWNwaV9ldmFsdWF0ZV9kc20oQUNQSV9I QU5ETEUod2NvdmUtPmRldiksICZ1dWlkLCAxLCBmdW5jLAogCQkJCSZhcmd2NCk7CiAJaWYgKCFv YmopIHsKIAkJZGV2X2Vycih3Y292ZS0+ZGV2LCAiJXM6IGZhaWxlZCB0byBldmFsdWF0ZSBfRFNN XG4iLCBfX2Z1bmNfXyk7CkBAIC0zMTQsNyArMzE0LDcgQEAgc3RhdGljIGludCB3Y292ZV90eXBl Y19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCWlmIChyZXQpCiAJCXJldHVy biByZXQ7CiAKLQlpZiAoIWFjcGlfY2hlY2tfZHNtKEFDUElfSEFORExFKCZwZGV2LT5kZXYpLCB1 dWlkLmIsIDAsIDB4MWYpKSB7CisJaWYgKCFhY3BpX2NoZWNrX2RzbShBQ1BJX0hBTkRMRSgmcGRl di0+ZGV2KSwgJnV1aWQsIDAsIDB4MWYpKSB7CiAJCWRldl9lcnIoJnBkZXYtPmRldiwgIk1pc3Np bmcgX0RTTSBmdW5jdGlvbnNcbiIpOwogCQlyZXR1cm4gLUVOT0RFVjsKIAl9CmRpZmYgLS1naXQg YS9pbmNsdWRlL2FjcGkvYWNwaV9idXMuaCBiL2luY2x1ZGUvYWNwaS9hY3BpX2J1cy5oCmluZGV4 IDE5N2YzZmZmYzlhNy4uMDY4Mjk0MmQ2YTc2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FjcGkvYWNw aV9idXMuaAorKysgYi9pbmNsdWRlL2FjcGkvYWNwaV9idXMuaApAQCAtNjEsMTMgKzYxLDE0IEBA IGJvb2wgYWNwaV9hdGFfbWF0Y2goYWNwaV9oYW5kbGUgaGFuZGxlKTsKIGJvb2wgYWNwaV9iYXlf bWF0Y2goYWNwaV9oYW5kbGUgaGFuZGxlKTsKIGJvb2wgYWNwaV9kb2NrX21hdGNoKGFjcGlfaGFu ZGxlIGhhbmRsZSk7CiAKLWJvb2wgYWNwaV9jaGVja19kc20oYWNwaV9oYW5kbGUgaGFuZGxlLCBj b25zdCB1OCAqdXVpZCwgdTY0IHJldiwgdTY0IGZ1bmNzKTsKLXVuaW9uIGFjcGlfb2JqZWN0ICph Y3BpX2V2YWx1YXRlX2RzbShhY3BpX2hhbmRsZSBoYW5kbGUsIGNvbnN0IHU4ICp1dWlkLAorYm9v bCBhY3BpX2NoZWNrX2RzbShhY3BpX2hhbmRsZSBoYW5kbGUsIGNvbnN0IHV1aWRfbGUgKnV1aWQs IHU2NCByZXYsIHU2NCBmdW5jcyk7Cit1bmlvbiBhY3BpX29iamVjdCAqYWNwaV9ldmFsdWF0ZV9k c20oYWNwaV9oYW5kbGUgaGFuZGxlLCBjb25zdCB1dWlkX2xlICp1dWlkLAogCQkJdTY0IHJldiwg dTY0IGZ1bmMsIHVuaW9uIGFjcGlfb2JqZWN0ICphcmd2NCk7CiAKIHN0YXRpYyBpbmxpbmUgdW5p b24gYWNwaV9vYmplY3QgKgotYWNwaV9ldmFsdWF0ZV9kc21fdHlwZWQoYWNwaV9oYW5kbGUgaGFu ZGxlLCBjb25zdCB1OCAqdXVpZCwgdTY0IHJldiwgdTY0IGZ1bmMsCi0JCQl1bmlvbiBhY3BpX29i amVjdCAqYXJndjQsIGFjcGlfb2JqZWN0X3R5cGUgdHlwZSkKK2FjcGlfZXZhbHVhdGVfZHNtX3R5 cGVkKGFjcGlfaGFuZGxlIGhhbmRsZSwgY29uc3QgdXVpZF9sZSAqdXVpZCwgdTY0IHJldiwKKwkJ CXU2NCBmdW5jLCB1bmlvbiBhY3BpX29iamVjdCAqYXJndjQsCisJCQlhY3BpX29iamVjdF90eXBl IHR5cGUpCiB7CiAJdW5pb24gYWNwaV9vYmplY3QgKm9iajsKIApkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9saW51eC9hY3BpLmggYi9pbmNsdWRlL2xpbnV4L2FjcGkuaAppbmRleCAxMzdlNGEzZDg5YzUu LjY2ZDEzNTAwMzc4MCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9hY3BpLmgKKysrIGIvaW5j bHVkZS9saW51eC9hY3BpLmgKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlIDxsaW51eC9keW5h bWljX2RlYnVnLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgv bXV0ZXguaD4KKyNpbmNsdWRlIDxsaW51eC91dWlkLmg+CiAKICNpbmNsdWRlIDxhY3BpL2FjcGlf YnVzLmg+CiAjaW5jbHVkZSA8YWNwaS9hY3BpX2RyaXZlcnMuaD4KQEAgLTQ1Nyw3ICs0NTgsNiBA QCBzdHJ1Y3QgYWNwaV9vc2NfY29udGV4dCB7CiAJc3RydWN0IGFjcGlfYnVmZmVyIHJldDsJCS8q IGZyZWUgYnkgY2FsbGVyIGlmIHN1Y2Nlc3MgKi8KIH07CiAKLWFjcGlfc3RhdHVzIGFjcGlfc3Ry X3RvX3V1aWQoY2hhciAqc3RyLCB1OCAqdXVpZCk7CiBhY3BpX3N0YXR1cyBhY3BpX3J1bl9vc2Mo YWNwaV9oYW5kbGUgaGFuZGxlLCBzdHJ1Y3QgYWNwaV9vc2NfY29udGV4dCAqY29udGV4dCk7CiAK IC8qIEluZGV4ZXMgaW50byBfT1NDIENhcGFiaWxpdGllcyBCdWZmZXIgKERXT1JEcyAyICYgMyBh cmUgZGV2aWNlLXNwZWNpZmljKSAqLwpAQCAtNzQxLDcgKzc0MSw3IEBAIHN0YXRpYyBpbmxpbmUg Ym9vbCBhY3BpX2RyaXZlcl9tYXRjaF9kZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2LAogfQogCiBz dGF0aWMgaW5saW5lIHVuaW9uIGFjcGlfb2JqZWN0ICphY3BpX2V2YWx1YXRlX2RzbShhY3BpX2hh bmRsZSBoYW5kbGUsCi0JCQkJCQkgICBjb25zdCB1OCAqdXVpZCwKKwkJCQkJCSAgIGNvbnN0IHV1 aWRfbGUgKnV1aWQsCiAJCQkJCQkgICBpbnQgcmV2LCBpbnQgZnVuYywKIAkJCQkJCSAgIHVuaW9u IGFjcGlfb2JqZWN0ICphcmd2NCkKIHsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcGNpLWFj cGkuaCBiL2luY2x1ZGUvbGludXgvcGNpLWFjcGkuaAppbmRleCA3YTRlODNhOGM4OWMuLjkxN2E2 YWQwZjI0ZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9wY2ktYWNwaS5oCisrKyBiL2luY2x1 ZGUvbGludXgvcGNpLWFjcGkuaApAQCAtMTA1LDcgKzEwNSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9p ZCBhY3BpcGhwX3JlbW92ZV9zbG90cyhzdHJ1Y3QgcGNpX2J1cyAqYnVzKSB7IH0KIHN0YXRpYyBp bmxpbmUgdm9pZCBhY3BpcGhwX2NoZWNrX2hvc3RfYnJpZGdlKHN0cnVjdCBhY3BpX2RldmljZSAq YWRldikgeyB9CiAjZW5kaWYKIAotZXh0ZXJuIGNvbnN0IHU4IHBjaV9hY3BpX2RzbV91dWlkW107 CitleHRlcm4gY29uc3QgdXVpZF9sZSBwY2lfYWNwaV9kc21fdXVpZDsKICNkZWZpbmUgREVWSUNF X0xBQkVMX0RTTQkweDA3CiAjZGVmaW5lIFJFU0VUX0RFTEFZX0RTTQkJMHgwOAogI2RlZmluZSBG VU5DVElPTl9ERUxBWV9EU00JMHgwOQpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2ludGVsL3NreWxh a2Uvc2tsLW5obHQuYyBiL3NvdW5kL3NvYy9pbnRlbC9za3lsYWtlL3NrbC1uaGx0LmMKaW5kZXgg ZTNmMDY2NzJmZDZkLi5iOTVmNjU5ZGNlZDUgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9pbnRlbC9z a3lsYWtlL3NrbC1uaGx0LmMKKysrIGIvc291bmQvc29jL2ludGVsL3NreWxha2Uvc2tsLW5obHQu YwpAQCAtMjEsOCArMjEsOSBAQAogI2luY2x1ZGUgInNrbC5oIgogCiAvKiBVbmlxdWUgaWRlbnRp ZmljYXRpb24gZm9yIGdldHRpbmcgTkhMVCBibG9icyAqLwotc3RhdGljIHU4IE9TQ19VVUlEWzE2 XSA9IHsweDZFLCAweDg4LCAweDlGLCAweEE2LCAweEVCLCAweDZDLCAweDk0LCAweDQ1LAotCQkJ CTB4QTQsIDB4MUYsIDB4N0IsIDB4NUQsIDB4Q0UsIDB4MjQsIDB4QzUsIDB4NTN9Oworc3RhdGlj IHV1aWRfbGUgb3NjX3V1aWQgPQorCVVVSURfTEUoMHhBNjlGODg2RSwgMHg2Q0VCLCAweDQ1OTQs CisJCTB4QTQsIDB4MUYsIDB4N0IsIDB4NUQsIDB4Q0UsIDB4MjQsIDB4QzUsIDB4NTMpOwogCiBz dHJ1Y3QgbmhsdF9hY3BpX3RhYmxlICpza2xfbmhsdF9pbml0KHN0cnVjdCBkZXZpY2UgKmRldikK IHsKQEAgLTM3LDcgKzM4LDcgQEAgc3RydWN0IG5obHRfYWNwaV90YWJsZSAqc2tsX25obHRfaW5p dChzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJCXJldHVybiBOVUxMOwogCX0KIAotCW9iaiA9IGFjcGlf ZXZhbHVhdGVfZHNtKGhhbmRsZSwgT1NDX1VVSUQsIDEsIDEsIE5VTEwpOworCW9iaiA9IGFjcGlf ZXZhbHVhdGVfZHNtKGhhbmRsZSwgJm9zY191dWlkLCAxLCAxLCBOVUxMKTsKIAlpZiAob2JqICYm IG9iai0+dHlwZSA9PSBBQ1BJX1RZUEVfQlVGRkVSKSB7CiAJCW5obHRfcHRyID0gKHN0cnVjdCBu aGx0X3Jlc291cmNlX2Rlc2MgICopb2JqLT5idWZmZXIucG9pbnRlcjsKIAkJbmhsdF90YWJsZSA9 IChzdHJ1Y3QgbmhsdF9hY3BpX3RhYmxlICopCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL252 ZGltbS90ZXN0L2lvbWFwLmMgYi90b29scy90ZXN0aW5nL252ZGltbS90ZXN0L2lvbWFwLmMKaW5k ZXggNjRjYWUxYTVkZWZmLi5mMTkwZjIyYzUzZGQgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcv bnZkaW1tL3Rlc3QvaW9tYXAuYworKysgYi90b29scy90ZXN0aW5nL252ZGltbS90ZXN0L2lvbWFw LmMKQEAgLTM3MCw3ICszNzAsNyBAQCBhY3BpX3N0YXR1cyBfX3dyYXBfYWNwaV9ldmFsdWF0ZV9v YmplY3QoYWNwaV9oYW5kbGUgaGFuZGxlLCBhY3BpX3N0cmluZyBwYXRoLAogfQogRVhQT1JUX1NZ TUJPTChfX3dyYXBfYWNwaV9ldmFsdWF0ZV9vYmplY3QpOwogCi11bmlvbiBhY3BpX29iamVjdCAq IF9fd3JhcF9hY3BpX2V2YWx1YXRlX2RzbShhY3BpX2hhbmRsZSBoYW5kbGUsIGNvbnN0IHU4ICp1 dWlkLAordW5pb24gYWNwaV9vYmplY3QgKiBfX3dyYXBfYWNwaV9ldmFsdWF0ZV9kc20oYWNwaV9o YW5kbGUgaGFuZGxlLCBjb25zdCB1dWlkX2xlICp1dWlkLAogCQl1NjQgcmV2LCB1NjQgZnVuYywg dW5pb24gYWNwaV9vYmplY3QgKmFyZ3Y0KQogewogCXVuaW9uIGFjcGlfb2JqZWN0ICpvYmogPSBF UlJfUFRSKC1FTlhJTyk7CmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL252ZGltbS90ZXN0L25m aXQuYyBiL3Rvb2xzL3Rlc3RpbmcvbnZkaW1tL3Rlc3QvbmZpdC5jCmluZGV4IGMyMTg3MTc4ZmIx My4uMTQ1ZjZlZTAyMzRmIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL252ZGltbS90ZXN0L25m aXQuYworKysgYi90b29scy90ZXN0aW5nL252ZGltbS90ZXN0L25maXQuYwpAQCAtMTU1OSw3ICsx NTU5LDcgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgbmZpdF9jdGxfaGFuZGxlOwogdW5pb24gYWNw aV9vYmplY3QgKnJlc3VsdDsKIAogc3RhdGljIHVuaW9uIGFjcGlfb2JqZWN0ICpuZml0X3Rlc3Rf ZXZhbHVhdGVfZHNtKGFjcGlfaGFuZGxlIGhhbmRsZSwKLQkJY29uc3QgdTggKnV1aWQsIHU2NCBy ZXYsIHU2NCBmdW5jLCB1bmlvbiBhY3BpX29iamVjdCAqYXJndjQpCisJCWNvbnN0IHV1aWRfbGUg KnV1aWQsIHU2NCByZXYsIHU2NCBmdW5jLCB1bmlvbiBhY3BpX29iamVjdCAqYXJndjQpCiB7CiAJ aWYgKGhhbmRsZSAhPSAmbmZpdF9jdGxfaGFuZGxlKQogCQlyZXR1cm4gRVJSX1BUUigtRU5YSU8p OwotLSAKMi4xMS4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n ZngK