From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Grytsov Subject: [PATCH v6 01/13] libxl: add generic function to add device Date: Tue, 12 Sep 2017 16:48:06 +0300 Message-ID: <1505224098-19330-2-git-send-email-al1img@gmail.com> References: <1505224098-19330-1-git-send-email-al1img@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1drlYD-0005SV-TZ for xen-devel@lists.xenproject.org; Tue, 12 Sep 2017 13:48:30 +0000 Received: by mail-lf0-f67.google.com with SMTP id c8so5379521lfe.2 for ; Tue, 12 Sep 2017 06:48:26 -0700 (PDT) In-Reply-To: <1505224098-19330-1-git-send-email-al1img@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: ian.jackson@eu.citrix.com, wei.liu2@citrix.com, Oleksandr Grytsov List-Id: xen-devel@lists.xenproject.org RnJvbTogT2xla3NhbmRyIEdyeXRzb3YgPG9sZWtzYW5kcl9ncnl0c292QGVwYW0uY29tPgoKQWRk IGxpYnhsX19kZXZpY2VfYWRkIHRvIHNpbXBsZSB3cml0ZSBYZW5TdG9yZSBkZXZpY2UgY29uaWZn CmFuZCBsaWJ4bF9fZGV2aWNlX2FkZF9hc3luYyB0byB1cGRhdGUgZG9tYWluIGNvbmZpZ3VyYXRp b24KYW5kIHdyaXRlIFhlblN0b3JlIGRldmljZSBjb25maWcgYXN5bmNocm9uaW91c2x5LgpBbG1v c3QgYWxsIGRldmljZXMgaGF2ZSBzaW1pbGFyIGxpYnhsX19kZXZpY2VfeHh4eF9hZGQgZnVuY3Rp b24uClRoaXMgZ2VuZXJpYyBmdW5jdGlvbnMgaW1wbGVtZW50IHNhbWUgZnVuY3Rpb25hbGl0eSBi dXQKdXNpbmcgdGhlIGRldmljZSBoYW5kbGluZyBmcmFtZXdvcmsuIFRoIGRldmljZSBzcGVjaWZp YwpwYXJ0IHN1Y2ggYXMgc2V0dGluZyB4ZW4gc3RvcmUgY29uZmlndXJhdGlvbmlzIG1vdmVkCnRv IHNldF94ZW5zdG9yZV9jb25maWcgY2FsbGJhY2sgb2YgdGhlIGRldmljZSBmcmFtZXdvcmsuCgpT aWduZWQtb2ZmLWJ5OiBPbGVrc2FuZHIgR3J5dHNvdiA8b2xla3NhbmRyX2dyeXRzb3ZAZXBhbS5j b20+CkFja2VkLWJ5OiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgotLS0KIHRvb2xzL2xp YnhsL2xpYnhsXzlwZnMuYyAgICAgfCAgIDkgKy0KIHRvb2xzL2xpYnhsL2xpYnhsX2NvbnNvbGUu YyAgfCAgMjAgKystLS0KIHRvb2xzL2xpYnhsL2xpYnhsX2NyZWF0ZS5jICAgfCAgIDYgKy0KIHRv b2xzL2xpYnhsL2xpYnhsX2RldmljZS5jICAgfCAxOTcgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKwogdG9vbHMvbGlieGwvbGlieGxfZGlzay5jICAgICB8ICAxNSAr Ky0tCiB0b29scy9saWJ4bC9saWJ4bF9kbS5jICAgICAgIHwgICAyICstCiB0b29scy9saWJ4bC9s aWJ4bF9pbnRlcm5hbC5oIHwgIDQ1ICsrKysrKysrLS0KIHRvb2xzL2xpYnhsL2xpYnhsX25pYy5j ICAgICAgfCAgMTggKystLQogdG9vbHMvbGlieGwvbGlieGxfcGNpLmMgICAgICB8ICAgNyArLQog dG9vbHMvbGlieGwvbGlieGxfdXNiLmMgICAgICB8ICAzNSArKysrLS0tLQogdG9vbHMvbGlieGwv bGlieGxfdnRwbS5jICAgICB8ICAxNSArKy0tCiAxMSBmaWxlcyBjaGFuZ2VkLCAzMDEgaW5zZXJ0 aW9ucygrKSwgNjggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxf OXBmcy5jIGIvdG9vbHMvbGlieGwvbGlieGxfOXBmcy5jCmluZGV4IDA3ZTNlNWYuLjU0NDNmN2Eg MTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsXzlwZnMuYworKysgYi90b29scy9saWJ4bC9s aWJ4bF85cGZzLmMKQEAgLTM5LDYgKzM5LDcgQEAgc3RhdGljIGludCBsaWJ4bF9fZGV2aWNlX2Zy b21fcDkobGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQsCiAgICByZXR1cm4gMDsKIH0KIAor c3RhdGljIExJQlhMX0RFRklORV9VUERBVEVfREVWSUQocDksICI5cGZzIikKIAogaW50IGxpYnhs X19kZXZpY2VfcDlfYWRkKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAogICAgICAgICAg ICAgICAgICAgICAgICAgIGxpYnhsX2RldmljZV9wOSAqcDkpCkBAIC01NCwxMiArNTUsOCBAQCBp bnQgbGlieGxfX2RldmljZV9wOV9hZGQobGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQsCiAg ICAgZnJvbnQgPSBmbGV4YXJyYXlfbWFrZShnYywgMTYsIDEpOwogICAgIGJhY2sgPSBmbGV4YXJy YXlfbWFrZShnYywgMTYsIDEpOwogCi0gICAgaWYgKHA5LT5kZXZpZCA9PSAtMSkgewotICAgICAg ICBpZiAoKHA5LT5kZXZpZCA9IGxpYnhsX19kZXZpY2VfbmV4dGlkKGdjLCBkb21pZCwgIjlwZnMi KSkgPCAwKSB7Ci0gICAgICAgICAgICByYyA9IEVSUk9SX0ZBSUw7Ci0gICAgICAgICAgICBnb3Rv IG91dDsKLSAgICAgICAgfQotICAgIH0KKyAgICByYyA9IGxpYnhsX19kZXZpY2VfcDlfdXBkYXRl X2RldmlkKGdjLCBkb21pZCwgcDkpOworICAgIGlmIChyYykgZ290byBvdXQ7CiAKICAgICByYyA9 IGxpYnhsX19kZXZpY2VfZnJvbV9wOShnYywgZG9taWQsIHA5LCAmZGV2aWNlKTsKICAgICBpZiAo cmMgIT0gMCkgZ290byBvdXQ7CmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9jb25zb2xl LmMgYi90b29scy9saWJ4bC9saWJ4bF9jb25zb2xlLmMKaW5kZXggNDQ2ZTc2Ni4uNjE4MWIwNSAx MDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfY29uc29sZS5jCisrKyBiL3Rvb2xzL2xpYnhs L2xpYnhsX2NvbnNvbGUuYwpAQCAtNjIxLDYgKzYyMSw4IEBAIG91dDoKICAgICByZXR1cm4gQU9f SU5QUk9HUkVTUzsKIH0KIAorc3RhdGljIExJQlhMX0RFRklORV9VUERBVEVfREVWSUQodmtiLCAi dmtiIikKKwogaW50IGxpYnhsX19kZXZpY2VfdmtiX2FkZChsaWJ4bF9fZ2MgKmdjLCB1aW50MzJf dCBkb21pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGV2aWNlX3ZrYiAqdmti KQogewpAQCAtNjM1LDEyICs2MzcsOCBAQCBpbnQgbGlieGxfX2RldmljZV92a2JfYWRkKGxpYnhs X19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAogICAgIGZyb250ID0gZmxleGFycmF5X21ha2UoZ2Ms IDE2LCAxKTsKICAgICBiYWNrID0gZmxleGFycmF5X21ha2UoZ2MsIDE2LCAxKTsKIAotICAgIGlm ICh2a2ItPmRldmlkID09IC0xKSB7Ci0gICAgICAgIGlmICgodmtiLT5kZXZpZCA9IGxpYnhsX19k ZXZpY2VfbmV4dGlkKGdjLCBkb21pZCwgInZrYiIpKSA8IDApIHsKLSAgICAgICAgICAgIHJjID0g RVJST1JfRkFJTDsKLSAgICAgICAgICAgIGdvdG8gb3V0OwotICAgICAgICB9Ci0gICAgfQorICAg IHJjID0gbGlieGxfX2RldmljZV92a2JfdXBkYXRlX2RldmlkKGdjLCBkb21pZCwgdmtiKTsKKyAg ICBpZiAocmMpIGdvdG8gb3V0OwogCiAgICAgcmMgPSBsaWJ4bF9fZGV2aWNlX2Zyb21fdmtiKGdj LCBkb21pZCwgdmtiLCAmZGV2aWNlKTsKICAgICBpZiAocmMgIT0gMCkgZ290byBvdXQ7CkBAIC03 MTksNiArNzE3LDggQEAgb3V0OgogICAgIHJldHVybiBBT19JTlBST0dSRVNTOwogfQogCitzdGF0 aWMgTElCWExfREVGSU5FX1VQREFURV9ERVZJRCh2ZmIsICJ2ZmIiKQorCiBpbnQgbGlieGxfX2Rl dmljZV92ZmJfYWRkKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLCBsaWJ4bF9kZXZpY2Vf dmZiICp2ZmIpCiB7CiAgICAgZmxleGFycmF5X3QgKmZyb250OwpAQCAtNzMyLDEyICs3MzIsOCBA QCBpbnQgbGlieGxfX2RldmljZV92ZmJfYWRkKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlk LCBsaWJ4bF9kZXZpY2VfdmZiICp2ZmIpCiAgICAgZnJvbnQgPSBmbGV4YXJyYXlfbWFrZShnYywg MTYsIDEpOwogICAgIGJhY2sgPSBmbGV4YXJyYXlfbWFrZShnYywgMTYsIDEpOwogCi0gICAgaWYg KHZmYi0+ZGV2aWQgPT0gLTEpIHsKLSAgICAgICAgaWYgKCh2ZmItPmRldmlkID0gbGlieGxfX2Rl dmljZV9uZXh0aWQoZ2MsIGRvbWlkLCAidmZiIikpIDwgMCkgewotICAgICAgICAgICAgcmMgPSBF UlJPUl9GQUlMOwotICAgICAgICAgICAgZ290byBvdXQ7Ci0gICAgICAgIH0KLSAgICB9CisgICAg cmMgPSBsaWJ4bF9fZGV2aWNlX3ZmYl91cGRhdGVfZGV2aWQoZ2MsIGRvbWlkLCB2ZmIpOworICAg IGlmIChyYykgZ290byBvdXQ7CiAKICAgICByYyA9IGxpYnhsX19kZXZpY2VfZnJvbV92ZmIoZ2Ms IGRvbWlkLCB2ZmIsICZkZXZpY2UpOwogICAgIGlmIChyYyAhPSAwKSBnb3RvIG91dDsKZGlmZiAt LWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2NyZWF0ZS5jIGIvdG9vbHMvbGlieGwvbGlieGxfY3Jl YXRlLmMKaW5kZXggOTEyMzU4NS4uZWZkMTQ1OSAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGli eGxfY3JlYXRlLmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfY3JlYXRlLmMKQEAgLTkzOCw3ICs5 MzgsOCBAQCBzdGF0aWMgdm9pZCBpbml0aWF0ZV9kb21haW5fY3JlYXRlKGxpYnhsX19lZ2MgKmVn YywKICAgICBzdG9yZV9saWJ4bF9lbnRyeShnYywgZG9taWQsICZkX2NvbmZpZy0+Yl9pbmZvKTsK IAogICAgIGZvciAoaSA9IDA7IGkgPCBkX2NvbmZpZy0+bnVtX2Rpc2tzOyBpKyspIHsKLSAgICAg ICAgcmV0ID0gbGlieGxfX2RldmljZV9kaXNrX3NldGRlZmF1bHQoZ2MsICZkX2NvbmZpZy0+ZGlz a3NbaV0sIGRvbWlkKTsKKyAgICAgICAgcmV0ID0gbGlieGxfX2RldmljZV9kaXNrX3NldGRlZmF1 bHQoZ2MsIGRvbWlkLCAmZF9jb25maWctPmRpc2tzW2ldLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSk7CiAgICAgICAgIGlmIChyZXQpIHsKICAgICAg ICAgICAgIExPR0QoRVJST1IsIGRvbWlkLCAiVW5hYmxlIHRvIHNldCBkaXNrIGRlZmF1bHRzIGZv ciBkaXNrICVkIiwgaSk7CiAgICAgICAgICAgICBnb3RvIGVycm9yX291dDsKQEAgLTE0MzIsNiAr MTQzMyw5IEBAIG91dDoKIAogI2RlZmluZSBsaWJ4bF9kZXZpY2VfZHRkZXZfbGlzdCBOVUxMCiAj ZGVmaW5lIGxpYnhsX2RldmljZV9kdGRldl9jb21wYXJlIE5VTEwKKyNkZWZpbmUgbGlieGxfX2Rl dmljZV9mcm9tX2R0ZGV2IE5VTEwKKyNkZWZpbmUgbGlieGxfX2RldmljZV9kdGRldl9zZXRkZWZh dWx0IE5VTEwKKyNkZWZpbmUgbGlieGxfX2RldmljZV9kdGRldl91cGRhdGVfZGV2aWQgTlVMTAog c3RhdGljIERFRklORV9ERVZJQ0VfVFlQRV9TVFJVQ1QoZHRkZXYpOwogCiBjb25zdCBzdHJ1Y3Qg bGlieGxfZGV2aWNlX3R5cGUgKmRldmljZV90eXBlX3RibFtdID0gewpkaWZmIC0tZ2l0IGEvdG9v bHMvbGlieGwvbGlieGxfZGV2aWNlLmMgYi90b29scy9saWJ4bC9saWJ4bF9kZXZpY2UuYwppbmRl eCAwMDM1NmFmLi4zMjk2ZTgzIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9kZXZpY2Uu YworKysgYi90b29scy9saWJ4bC9saWJ4bF9kZXZpY2UuYwpAQCAtMTc5Myw2ICsxNzkzLDIwMyBA QCBvdXQ6CiAgICAgcmV0dXJuIEFPX0NSRUFURV9GQUlMKHJjKTsKIH0KIAorc3RhdGljIHZvaWQg ZGV2aWNlX2FkZF9kb21haW5fY29uZmlnKGxpYnhsX19nYyAqZ2MsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGlieGxfZG9tYWluX2NvbmZpZyAqZF9jb25maWcsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGxpYnhsX2Rldmlj ZV90eXBlICpkdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICp0 eXBlKQoreworICAgIGludCAqbnVtX2RldjsKKyAgICB1bnNpZ25lZCBpbnQgaTsKKyAgICB2b2lk ICppdGVtID0gTlVMTDsKKworICAgIG51bV9kZXYgPSBsaWJ4bF9fZGV2aWNlX3R5cGVfZ2V0X251 bShkdCwgZF9jb25maWcpOworCisgICAgLyogQ2hlY2sgZm9yIGV4aXN0aW5nIGRldmljZSAqLwor ICAgIGZvciAoaSA9IDA7IGkgPCAqbnVtX2RldjsgaSsrKSB7CisgICAgICAgIGlmIChkdC0+Y29t cGFyZShsaWJ4bF9fZGV2aWNlX3R5cGVfZ2V0X2VsZW0oZHQsIGRfY29uZmlnLCBpKSwgdHlwZSkp IHsKKyAgICAgICAgICAgIGl0ZW0gPSBsaWJ4bF9fZGV2aWNlX3R5cGVfZ2V0X2VsZW0oZHQsIGRf Y29uZmlnLCBpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICghaXRlbSkgeworICAgICAg ICB2b2lkICoqZGV2cyA9IGxpYnhsX19kZXZpY2VfdHlwZV9nZXRfcHRyKGR0LCBkX2NvbmZpZyk7 CisgICAgICAgICpkZXZzID0gbGlieGxfX3JlYWxsb2MoTk9HQywgKmRldnMsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZHQtPmRldl9lbGVtX3NpemUgKiAoKm51bV9kZXYgKyAxKSk7 CisgICAgICAgIGl0ZW0gPSBsaWJ4bF9fZGV2aWNlX3R5cGVfZ2V0X2VsZW0oZHQsIGRfY29uZmln LCAqbnVtX2Rldik7CisgICAgICAgICgqbnVtX2RldikrKzsKKyAgICB9IGVsc2UgeworICAgICAg ICBkdC0+ZGlzcG9zZShpdGVtKTsKKyAgICB9CisKKyAgICBkdC0+aW5pdChpdGVtKTsKKyAgICBk dC0+Y29weShDVFgsIGl0ZW0sIHR5cGUpOworfQorCit2b2lkIGxpYnhsX19kZXZpY2VfYWRkX2Fz eW5jKGxpYnhsX19lZ2MgKmVnYywgdWludDMyX3QgZG9taWQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IHN0cnVjdCBsaWJ4bF9kZXZpY2VfdHlwZSAqZHQsIHZvaWQgKnR5cGUs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19hb19kZXZpY2UgKmFvZGV2KQor eworICAgIFNUQVRFX0FPX0dDKGFvZGV2LT5hbyk7CisgICAgZmxleGFycmF5X3QgKmJhY2s7Cisg ICAgZmxleGFycmF5X3QgKmZyb250LCAqcm9fZnJvbnQ7CisgICAgbGlieGxfX2RldmljZSAqZGV2 aWNlOworICAgIHhzX3RyYW5zYWN0aW9uX3QgdCA9IFhCVF9OVUxMOworICAgIGxpYnhsX2RvbWFp bl9jb25maWcgZF9jb25maWc7CisgICAgdm9pZCAqdHlwZV9zYXZlZDsKKyAgICBsaWJ4bF9fZG9t YWluX3VzZXJkYXRhX2xvY2sgKmxvY2sgPSBOVUxMOworICAgIGludCByYzsKKworICAgIGxpYnhs X2RvbWFpbl9jb25maWdfaW5pdCgmZF9jb25maWcpOworCisgICAgdHlwZV9zYXZlZCA9IGxpYnhs X19tYWxsb2MoZ2MsIGR0LT5kZXZfZWxlbV9zaXplKTsKKworICAgIGR0LT5pbml0KHR5cGVfc2F2 ZWQpOworICAgIGR0LT5jb3B5KENUWCwgdHlwZV9zYXZlZCwgdHlwZSk7CisKKyAgICBpZiAoZHQt PnNldF9kZWZhdWx0KSB7CisgICAgICAgIHJjID0gZHQtPnNldF9kZWZhdWx0KGdjLCBkb21pZCwg dHlwZSwgYW9kZXYtPnVwZGF0ZV9qc29uKTsKKyAgICAgICAgaWYgKHJjKSBnb3RvIG91dDsKKyAg ICB9CisKKyAgICBpZiAoZHQtPnVwZGF0ZV9kZXZpZCkgeworICAgICAgICByYyA9IGR0LT51cGRh dGVfZGV2aWQoZ2MsIGRvbWlkLCB0eXBlKTsKKyAgICAgICAgaWYgKHJjKSBnb3RvIG91dDsKKyAg ICB9CisKKyAgICBpZiAoZHQtPnVwZGF0ZV9jb25maWcpCisgICAgICAgIGR0LT51cGRhdGVfY29u ZmlnKGdjLCB0eXBlX3NhdmVkLCB0eXBlKTsKKworICAgIEdDTkVXKGRldmljZSk7CisgICAgcmMg PSBkdC0+dG9fZGV2aWNlKGdjLCBkb21pZCwgdHlwZSwgZGV2aWNlKTsKKyAgICBpZiAocmMpIGdv dG8gb3V0OworCisgICAgaWYgKGFvZGV2LT51cGRhdGVfanNvbikgeworICAgICAgICBsb2NrID0g bGlieGxfX2xvY2tfZG9tYWluX3VzZXJkYXRhKGdjLCBkb21pZCk7CisgICAgICAgIGlmICghbG9j aykgeworICAgICAgICAgICAgcmMgPSBFUlJPUl9MT0NLX0ZBSUw7CisgICAgICAgICAgICBnb3Rv IG91dDsKKyAgICAgICAgfQorCisgICAgICAgIHJjID0gbGlieGxfX2dldF9kb21haW5fY29uZmln dXJhdGlvbihnYywgZG9taWQsICZkX2NvbmZpZyk7CisgICAgICAgIGlmIChyYykgZ290byBvdXQ7 CisKKyAgICAgICAgZGV2aWNlX2FkZF9kb21haW5fY29uZmlnKGdjLCAmZF9jb25maWcsIGR0LCB0 eXBlX3NhdmVkKTsKKworICAgICAgICByYyA9IGxpYnhsX19kbV9jaGVja19zdGFydChnYywgJmRf Y29uZmlnLCBkb21pZCk7CisgICAgICAgIGlmIChyYykgZ290byBvdXQ7CisgICAgfQorCisgICAg YmFjayA9IGZsZXhhcnJheV9tYWtlKGdjLCAxNiwgMSk7CisgICAgZnJvbnQgPSBmbGV4YXJyYXlf bWFrZShnYywgMTYsIDEpOworICAgIHJvX2Zyb250ID0gZmxleGFycmF5X21ha2UoZ2MsIDE2LCAx KTsKKworICAgIGZsZXhhcnJheV9hcHBlbmRfcGFpcihiYWNrLCAiZnJvbnRlbmQtaWQiLCBHQ1NQ UklOVEYoIiVkIiwgZG9taWQpKTsKKyAgICBmbGV4YXJyYXlfYXBwZW5kX3BhaXIoYmFjaywgIm9u bGluZSIsICIxIik7CisgICAgZmxleGFycmF5X2FwcGVuZF9wYWlyKGJhY2ssICJzdGF0ZSIsCisg ICAgICAgICAgICAgICAgICAgICAgICAgIEdDU1BSSU5URigiJWQiLCBYZW5idXNTdGF0ZUluaXRp YWxpc2luZykpOworCisgICAgZmxleGFycmF5X2FwcGVuZF9wYWlyKGZyb250LCAiYmFja2VuZC1p ZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIEdDU1BSSU5URigiJWQiLCBkZXZpY2UtPmJh Y2tlbmRfZG9taWQpKTsKKyAgICBmbGV4YXJyYXlfYXBwZW5kX3BhaXIoZnJvbnQsICJzdGF0ZSIs CisgICAgICAgICAgICAgICAgICAgICAgICAgIEdDU1BSSU5URigiJWQiLCBYZW5idXNTdGF0ZUlu aXRpYWxpc2luZykpOworCisgICAgaWYgKGR0LT5zZXRfeGVuc3RvcmVfY29uZmlnKQorICAgICAg ICBkdC0+c2V0X3hlbnN0b3JlX2NvbmZpZyhnYywgZG9taWQsIHR5cGUsIGJhY2ssIGZyb250LCBy b19mcm9udCk7CisKKyAgICBmb3IgKDs7KSB7CisgICAgICAgIHJjID0gbGlieGxfX3hzX3RyYW5z YWN0aW9uX3N0YXJ0KGdjLCAmdCk7CisgICAgICAgIGlmIChyYykgZ290byBvdXQ7CisKKyAgICAg ICAgcmMgPSBsaWJ4bF9fZGV2aWNlX2V4aXN0cyhnYywgdCwgZGV2aWNlKTsKKyAgICAgICAgaWYg KHJjIDwgMCkgZ290byBvdXQ7CisgICAgICAgIGlmIChyYyA9PSAxKSB7ICAgICAgICAgICAgICAv KiBhbHJlYWR5IGV4aXN0cyBpbiB4ZW5zdG9yZSAqLworICAgICAgICAgICAgTE9HRChFUlJPUiwg ZG9taWQsICJkZXZpY2UgYWxyZWFkeSBleGlzdHMgaW4geGVuc3RvcmUiKTsKKyAgICAgICAgICAg IGFvZGV2LT5hY3Rpb24gPSBMSUJYTF9fREVWSUNFX0FDVElPTl9BREQ7IC8qIGZvciBlcnJvciBt ZXNzYWdlICovCisgICAgICAgICAgICByYyA9IEVSUk9SX0RFVklDRV9FWElTVFM7CisgICAgICAg ICAgICBnb3RvIG91dDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChhb2Rldi0+dXBkYXRlX2pz b24pIHsKKyAgICAgICAgICAgIHJjID0gbGlieGxfX3NldF9kb21haW5fY29uZmlndXJhdGlvbihn YywgZG9taWQsICZkX2NvbmZpZyk7CisgICAgICAgICAgICBpZiAocmMpIGdvdG8gb3V0OworICAg ICAgICB9CisKKyAgICAgICAgbGlieGxfX2RldmljZV9nZW5lcmljX2FkZChnYywgdCwgZGV2aWNl LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX194c19rdnNfb2ZfZmxl eGFycmF5KGdjLCBiYWNrKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4 bF9feHNfa3ZzX29mX2ZsZXhhcnJheShnYywgZnJvbnQpLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxpYnhsX194c19rdnNfb2ZfZmxleGFycmF5KGdjLCByb19mcm9udCkpOwor CisgICAgICAgIHJjID0gbGlieGxfX3hzX3RyYW5zYWN0aW9uX2NvbW1pdChnYywgJnQpOworICAg ICAgICBpZiAoIXJjKSBicmVhazsKKyAgICAgICAgaWYgKHJjIDwgMCkgZ290byBvdXQ7CisgICAg fQorCisgICAgYW9kZXYtPmRldiA9IGRldmljZTsKKyAgICBhb2Rldi0+YWN0aW9uID0gTElCWExf X0RFVklDRV9BQ1RJT05fQUREOworICAgIGxpYnhsX193YWl0X2RldmljZV9jb25uZWN0aW9uKGVn YywgYW9kZXYpOworCisgICAgcmMgPSAwOworCitvdXQ6CisgICAgbGlieGxfX3hzX3RyYW5zYWN0 aW9uX2Fib3J0KGdjLCAmdCk7CisgICAgaWYgKGxvY2spIGxpYnhsX191bmxvY2tfZG9tYWluX3Vz ZXJkYXRhKGxvY2spOworICAgIGR0LT5kaXNwb3NlKHR5cGVfc2F2ZWQpOworICAgIGxpYnhsX2Rv bWFpbl9jb25maWdfZGlzcG9zZSgmZF9jb25maWcpOworICAgIGFvZGV2LT5yYyA9IHJjOworICAg IGlmIChyYykgYW9kZXYtPmNhbGxiYWNrKGVnYywgYW9kZXYpOworICAgIHJldHVybjsKK30KKwor aW50IGxpYnhsX19kZXZpY2VfYWRkKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAorICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBsaWJ4bF9kZXZpY2VfdHlwZSAqZHQsIHZv aWQgKnR5cGUpCit7CisgICAgZmxleGFycmF5X3QgKmJhY2s7CisgICAgZmxleGFycmF5X3QgKmZy b250LCAqcm9fZnJvbnQ7CisgICAgbGlieGxfX2RldmljZSAqZGV2aWNlOworICAgIGludCByYzsK KworICAgIGlmIChkdC0+c2V0X2RlZmF1bHQpIHsKKyAgICAgICAgcmMgPSBkdC0+c2V0X2RlZmF1 bHQoZ2MsIGRvbWlkLCB0eXBlLCBmYWxzZSk7CisgICAgICAgIGlmIChyYykgZ290byBvdXQ7Cisg ICAgfQorCisgICAgaWYgKGR0LT51cGRhdGVfZGV2aWQpIHsKKyAgICAgICAgcmMgPSBkdC0+dXBk YXRlX2RldmlkKGdjLCBkb21pZCwgdHlwZSk7CisgICAgICAgIGlmIChyYykgZ290byBvdXQ7Cisg ICAgfQorCisgICAgR0NORVcoZGV2aWNlKTsKKyAgICByYyA9IGR0LT50b19kZXZpY2UoZ2MsIGRv bWlkLCB0eXBlLCBkZXZpY2UpOworICAgIGlmIChyYykgZ290byBvdXQ7CisKKyAgICBiYWNrID0g ZmxleGFycmF5X21ha2UoZ2MsIDE2LCAxKTsKKyAgICBmcm9udCA9IGZsZXhhcnJheV9tYWtlKGdj LCAxNiwgMSk7CisgICAgcm9fZnJvbnQgPSBmbGV4YXJyYXlfbWFrZShnYywgMTYsIDEpOworCisg ICAgZmxleGFycmF5X2FwcGVuZF9wYWlyKGJhY2ssICJmcm9udGVuZC1pZCIsIEdDU1BSSU5URigi JWQiLCBkb21pZCkpOworICAgIGZsZXhhcnJheV9hcHBlbmRfcGFpcihiYWNrLCAib25saW5lIiwg IjEiKTsKKyAgICBmbGV4YXJyYXlfYXBwZW5kX3BhaXIoYmFjaywgInN0YXRlIiwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgR0NTUFJJTlRGKCIlZCIsIFhlbmJ1c1N0YXRlSW5pdGlhbGlzaW5n KSk7CisgICAgZmxleGFycmF5X2FwcGVuZF9wYWlyKGZyb250LCAiYmFja2VuZC1pZCIsCisgICAg ICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19zcHJpbnRmKGdjLCAiJWQiLCBkZXZpY2UtPmJh Y2tlbmRfZG9taWQpKTsKKyAgICBmbGV4YXJyYXlfYXBwZW5kX3BhaXIoZnJvbnQsICJzdGF0ZSIs CisgICAgICAgICAgICAgICAgICAgICAgICAgIEdDU1BSSU5URigiJWQiLCBYZW5idXNTdGF0ZUlu aXRpYWxpc2luZykpOworCisgICAgaWYgKGR0LT5zZXRfeGVuc3RvcmVfY29uZmlnKQorICAgICAg ICBkdC0+c2V0X3hlbnN0b3JlX2NvbmZpZyhnYywgZG9taWQsIHR5cGUsIGJhY2ssIGZyb250LCBy b19mcm9udCk7CisKKyAgICByYyA9IGxpYnhsX19kZXZpY2VfZ2VuZXJpY19hZGQoZ2MsIFhCVF9O VUxMLCBkZXZpY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX194 c19rdnNfb2ZfZmxleGFycmF5KGdjLCBiYWNrKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGlieGxfX3hzX2t2c19vZl9mbGV4YXJyYXkoZ2MsIGZyb250KSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX3hzX2t2c19vZl9mbGV4YXJyYXkoZ2Ms IHJvX2Zyb250KSk7CisgICAgaWYgKHJjKSBnb3RvIG91dDsKKworICAgIHJjID0gMDsKKworb3V0 OgorICAgIHJldHVybiByYzsKK30KKwogLyoKICAqIExvY2FsIHZhcmlhYmxlczoKICAqIG1vZGU6 IEMKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2Rpc2suYyBiL3Rvb2xzL2xpYnhsL2xp YnhsX2Rpc2suYwppbmRleCA2M2RlNzVjLi45MWM3N2FkIDEwMDY0NAotLS0gYS90b29scy9saWJ4 bC9saWJ4bF9kaXNrLmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfZGlzay5jCkBAIC0xNTIsOCAr MTUyLDggQEAgdm9pZCBsaWJ4bF9ldmRpc2FibGVfZGlza19lamVjdChsaWJ4bF9jdHggKmN0eCwg bGlieGxfZXZnZW5fZGlza19lamVjdCAqZXZnKSB7CiAgICAgR0NfRlJFRTsKIH0KIAotaW50IGxp YnhsX19kZXZpY2VfZGlza19zZXRkZWZhdWx0KGxpYnhsX19nYyAqZ2MsIGxpYnhsX2RldmljZV9k aXNrICpkaXNrLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGRv bWlkKQoraW50IGxpYnhsX19kZXZpY2VfZGlza19zZXRkZWZhdWx0KGxpYnhsX19nYyAqZ2MsIHVp bnQzMl90IGRvbWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX2Rl dmljZV9kaXNrICpkaXNrLCBib29sIGhvdHBsdWcpCiB7CiAgICAgaW50IHJjOwogCkBAIC0yOTYs NyArMjk2LDcgQEAgc3RhdGljIHZvaWQgZGV2aWNlX2Rpc2tfYWRkKGxpYnhsX19lZ2MgKmVnYywg dWludDMyX3QgZG9taWQsCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICByYyA9 IGxpYnhsX19kZXZpY2VfZGlza19zZXRkZWZhdWx0KGdjLCBkaXNrLCBkb21pZCk7CisgICAgICAg IHJjID0gbGlieGxfX2RldmljZV9kaXNrX3NldGRlZmF1bHQoZ2MsIGRvbWlkLCBkaXNrLCBhb2Rl di0+dXBkYXRlX2pzb24pOwogICAgICAgICBpZiAocmMpIGdvdG8gb3V0OwogCiAgICAgICAgIGZy b250ID0gZmxleGFycmF5X21ha2UoZ2MsIDE2LCAxKTsKQEAgLTc1MSw3ICs3NTEsNyBAQCBpbnQg bGlieGxfY2Ryb21faW5zZXJ0KGxpYnhsX2N0eCAqY3R4LCB1aW50MzJfdCBkb21pZCwgbGlieGxf ZGV2aWNlX2Rpc2sgKmRpc2ssCiAgICAgZGlza19lbXB0eS52ZGV2ID0gbGlieGxfX3N0cmR1cChO T0dDLCBkaXNrLT52ZGV2KTsKICAgICBkaXNrX2VtcHR5LnBkZXZfcGF0aCA9IGxpYnhsX19zdHJk dXAoTk9HQywgIiIpOwogICAgIGRpc2tfZW1wdHkuaXNfY2Ryb20gPSAxOwotICAgIGxpYnhsX19k ZXZpY2VfZGlza19zZXRkZWZhdWx0KGdjLCAmZGlza19lbXB0eSwgZG9taWQpOworICAgIGxpYnhs X19kZXZpY2VfZGlza19zZXRkZWZhdWx0KGdjLCBkb21pZCwgJmRpc2tfZW1wdHksIGZhbHNlKTsK IAogICAgIGxpYnhsX2RvbWFpbl90eXBlIHR5cGUgPSBsaWJ4bF9fZG9tYWluX3R5cGUoZ2MsIGRv bWlkKTsKICAgICBpZiAodHlwZSA9PSBMSUJYTF9ET01BSU5fVFlQRV9JTlZBTElEKSB7CkBAIC03 OTgsNyArNzk4LDcgQEAgaW50IGxpYnhsX2Nkcm9tX2luc2VydChsaWJ4bF9jdHggKmN0eCwgdWlu dDMyX3QgZG9taWQsIGxpYnhsX2RldmljZV9kaXNrICpkaXNrLAogICAgICAgICBnb3RvIG91dDsK ICAgICB9CiAKLSAgICByYyA9IGxpYnhsX19kZXZpY2VfZGlza19zZXRkZWZhdWx0KGdjLCBkaXNr LCBkb21pZCk7CisgICAgcmMgPSBsaWJ4bF9fZGV2aWNlX2Rpc2tfc2V0ZGVmYXVsdChnYywgZG9t aWQsIGRpc2ssIGZhbHNlKTsKICAgICBpZiAocmMpIGdvdG8gb3V0OwogCiAgICAgaWYgKCFkaXNr LT5wZGV2X3BhdGgpIHsKQEAgLTEwNzMsNyArMTA3Myw4IEBAIHZvaWQgbGlieGxfX2RldmljZV9k aXNrX2xvY2FsX2luaXRpYXRlX2F0dGFjaChsaWJ4bF9fZWdjICplZ2MsCiAgICAgICAgICAgICBk aXNrLT5zY3JpcHQgPSBsaWJ4bF9fc3RyZHVwKGdjLCBpbl9kaXNrLT5zY3JpcHQpOwogICAgICAg ICBkaXNrLT52ZGV2ID0gTlVMTDsKIAotICAgICAgICByYyA9IGxpYnhsX19kZXZpY2VfZGlza19z ZXRkZWZhdWx0KGdjLCBkaXNrLCBMSUJYTF9UT09MU1RBQ0tfRE9NSUQpOworICAgICAgICByYyA9 IGxpYnhsX19kZXZpY2VfZGlza19zZXRkZWZhdWx0KGdjLCBMSUJYTF9UT09MU1RBQ0tfRE9NSUQs IGRpc2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2Up OwogICAgICAgICBpZiAocmMpIGdvdG8gb3V0OwogCiAgICAgICAgIGxpYnhsX19wcmVwYXJlX2Fv X2RldmljZShhbywgJmRscy0+YW9kZXYpOwpAQCAtMTI0NCw2ICsxMjQ1LDggQEAgc3RhdGljIGlu dCBsaWJ4bF9kZXZpY2VfZGlza19kbV9uZWVkZWQodm9pZCAqZSwgdW5zaWduZWQgZG9taWQpCiAg ICAgICAgICAgIGVsZW0tPmJhY2tlbmRfZG9taWQgPT0gZG9taWQ7CiB9CiAKKyNkZWZpbmUgbGli eGxfX2RldmljZV9kaXNrX3VwZGF0ZV9kZXZpZCBOVUxMCisKIERFRklORV9ERVZJQ0VfVFlQRV9T VFJVQ1QoZGlzaywKICAgICAubWVyZ2UgICAgICAgPSBsaWJ4bF9kZXZpY2VfZGlza19tZXJnZSwK ICAgICAuZG1fbmVlZGVkICAgPSBsaWJ4bF9kZXZpY2VfZGlza19kbV9uZWVkZWQsCmRpZmYgLS1n aXQgYS90b29scy9saWJ4bC9saWJ4bF9kbS5jIGIvdG9vbHMvbGlieGwvbGlieGxfZG0uYwppbmRl eCBlMGU2YTk5Li5lZTIwOTMwIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9kbS5jCisr KyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2RtLmMKQEAgLTE5NzUsNyArMTk3NSw3IEBAIHN0YXRpYyB2 b2lkIHNwYXduX3N0dWJfbGF1bmNoX2RtKGxpYnhsX19lZ2MgKmVnYywKICAgICAgICAgICogY2Fs bGVkIGxpYnhsX2RldmljZV9uaWNfYWRkIGF0IHRoaXMgcG9pbnQsIGJ1dCBxZW11IG5lZWRzCiAg ICAgICAgICAqIHRoZSBuaWMgaW5mb3JtYXRpb24gdG8gYmUgY29tcGxldGUuCiAgICAgICAgICAq LwotICAgICAgICByZXQgPSBsaWJ4bF9fZGV2aWNlX25pY19zZXRkZWZhdWx0KGdjLCAmZG1fY29u ZmlnLT5uaWNzW2ldLCBkbV9kb21pZCwKKyAgICAgICAgcmV0ID0gbGlieGxfX2RldmljZV9uaWNf c2V0ZGVmYXVsdChnYywgZG1fZG9taWQsICZkbV9jb25maWctPm5pY3NbaV0sCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpOwogICAgICAgICBpZiAocmV0 KQogICAgICAgICAgICAgZ290byBvdXQ7CmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9p bnRlcm5hbC5oIGIvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaAppbmRleCA3MjQ3NTA5Li5j OTllZjNiIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oCisrKyBiL3Rv b2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmgKQEAgLTEyNDIsMTQgKzEyNDIsMTMgQEAgX2hpZGRl biBpbnQgbGlieGxfX2RvbWFpbl9jcmVhdGVfaW5mb19zZXRkZWZhdWx0KGxpYnhsX19nYyAqZ2Ms CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZG9tYWluX2Ny ZWF0ZV9pbmZvICpjX2luZm8pOwogX2hpZGRlbiBpbnQgbGlieGxfX2RvbWFpbl9idWlsZF9pbmZv X3NldGRlZmF1bHQobGlieGxfX2djICpnYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsaWJ4bF9kb21haW5fYnVpbGRfaW5mbyAqYl9pbmZvKTsKLV9oaWRkZW4gaW50 IGxpYnhsX19kZXZpY2VfZGlza19zZXRkZWZhdWx0KGxpYnhsX19nYyAqZ2MsCitfaGlkZGVuIGlu dCBsaWJ4bF9fZGV2aWNlX2Rpc2tfc2V0ZGVmYXVsdChsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBk b21pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX2Rl dmljZV9kaXNrICpkaXNrLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdWludDMyX3QgZG9taWQpOwotX2hpZGRlbiBpbnQgbGlieGxfX2RldmljZV9uaWNfc2V0ZGVm YXVsdChsaWJ4bF9fZ2MgKmdjLCBsaWJ4bF9kZXZpY2VfbmljICpuaWMsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGRvbWlkLCBib29sIGhvdHBsdWcp OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBob3RwbHVn KTsKK19oaWRkZW4gaW50IGxpYnhsX19kZXZpY2VfbmljX3NldGRlZmF1bHQobGlieGxfX2djICpn YywgdWludDMyX3QgZG9taWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxpYnhsX2RldmljZV9uaWMgKm5pYywgYm9vbCBob3RwbHVnKTsKIF9oaWRkZW4gaW50IGxp YnhsX19kZXZpY2VfdmZiX3NldGRlZmF1bHQobGlieGxfX2djICpnYywgbGlieGxfZGV2aWNlX3Zm YiAqdmZiKTsKIF9oaWRkZW4gaW50IGxpYnhsX19kZXZpY2VfdmtiX3NldGRlZmF1bHQobGlieGxf X2djICpnYywgbGlieGxfZGV2aWNlX3ZrYiAqdmtiKTsKLV9oaWRkZW4gaW50IGxpYnhsX19kZXZp Y2VfcGNpX3NldGRlZmF1bHQobGlieGxfX2djICpnYywgbGlieGxfZGV2aWNlX3BjaSAqcGNpKTsK IF9oaWRkZW4gdm9pZCBsaWJ4bF9fcmRtX3NldGRlZmF1bHQobGlieGxfX2djICpnYywKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZG9tYWluX2J1aWxkX2luZm8gKmJf aW5mbyk7CiBfaGlkZGVuIGludCBsaWJ4bF9fZGV2aWNlX3A5X3NldGRlZmF1bHQobGlieGxfX2dj ICpnYywKQEAgLTM0NjcsNiArMzQ2NiwxOCBAQCBfaGlkZGVuIHZvaWQgbGlieGxfX2Jvb3Rsb2Fk ZXJfcnVuKGxpYnhsX19lZ2MqLCBsaWJ4bF9fYm9vdGxvYWRlcl9zdGF0ZSAqc3QpOwogICAgICAg ICByZXR1cm4gQU9fSU5QUk9HUkVTUzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAogICAgIH0KIAorI2RlZmluZSBMSUJYTF9ERUZJTkVfVVBEQVRFX0RFVklEKHR5 cGUsIG5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGludCBsaWJ4bF9fZGV2 aWNlXyMjdHlwZSMjX3VwZGF0ZV9kZXZpZChsaWJ4bF9fZ2MgKmdjLCAgICAgICAgICAgICAgXAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBkb21p ZCwgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsaWJ4bF9kZXZpY2VfIyN0eXBlICp0eXBlKSAgXAorICAgIHsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAg ICAgICBpZiAodHlwZS0+ZGV2aWQgPT0gLTEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAorICAgICAgICAgICAgdHlwZS0+ZGV2aWQgPSBsaWJ4bF9fZGV2aWNlX25l eHRpZChnYywgZG9taWQsIG5hbWUpOyAgICAgICAgXAorICAgICAgICBpZiAodHlwZS0+ZGV2aWQg PCAwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAg ICAgICAgcmV0dXJuIEVSUk9SX0ZBSUw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAorICAgICAgICByZXR1cm4gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0KKwogI2RlZmluZSBMSUJYTF9ERUZJ TkVfREVWSUNFX1JFTU9WRSh0eXBlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAog ICAgIExJQlhMX0RFRklORV9ERVZJQ0VfUkVNT1ZFX0VYVCh0eXBlLCBnZW5lcmljLCByZW1vdmUs IDApICAgICAgICAgICAgXAogICAgIExJQlhMX0RFRklORV9ERVZJQ0VfUkVNT1ZFX0VYVCh0eXBl LCBnZW5lcmljLCBkZXN0cm95LCAxKQpAQCAtMzQ4NCwxMSArMzQ5NSwxOCBAQCBzdHJ1Y3QgbGli eGxfZGV2aWNlX3R5cGUgewogICAgIHZvaWQgKCphZGQpKGxpYnhsX19lZ2MgKiwgbGlieGxfX2Fv ICosIHVpbnQzMl90LCBsaWJ4bF9kb21haW5fY29uZmlnICosCiAgICAgICAgICAgICAgICAgbGli eGxfX211bHRpZGV2ICopOwogICAgIHZvaWQgKigqbGlzdCkobGlieGxfY3R4ICosIHVpbnQzMl90 LCBpbnQgKik7CisgICAgaW50ICgqc2V0X2RlZmF1bHQpKGxpYnhsX19nYyAqLCB1aW50MzJfdCwg dm9pZCAqLCBib29sKTsKKyAgICBpbnQgKCp0b19kZXZpY2UpKGxpYnhsX19nYyAqLCB1aW50MzJf dCwgdm9pZCAqLCBsaWJ4bF9fZGV2aWNlICopOworICAgIHZvaWQgKCppbml0KSh2b2lkICopOwor ICAgIHZvaWQgKCpjb3B5KShsaWJ4bF9jdHggKiwgdm9pZCAqLCB2b2lkICopOwogICAgIHZvaWQg KCpkaXNwb3NlKSh2b2lkICopOwogICAgIGludCAoKmNvbXBhcmUpKHZvaWQgKiwgdm9pZCAqKTsK ICAgICB2b2lkICgqbWVyZ2UpKGxpYnhsX2N0eCAqLCB2b2lkICosIHZvaWQgKik7CiAgICAgaW50 ICgqZG1fbmVlZGVkKSh2b2lkICosIHVuc2lnbmVkKTsKICAgICB2b2lkICgqdXBkYXRlX2NvbmZp ZykobGlieGxfX2djICosIHZvaWQgKiwgdm9pZCAqKTsKKyAgICBpbnQgKCp1cGRhdGVfZGV2aWQp KGxpYnhsX19nYyAqLCB1aW50MzJfdCwgdm9pZCAqKTsKKyAgICBpbnQgKCpzZXRfeGVuc3RvcmVf Y29uZmlnKShsaWJ4bF9fZ2MgKiwgdWludDMyX3QsIHZvaWQgKiwgZmxleGFycmF5X3QgKiwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4YXJyYXlfdCAqLCBmbGV4YXJyYXlfdCAq KTsKIH07CiAKICNkZWZpbmUgREVGSU5FX0RFVklDRV9UWVBFX1NUUlVDVF9YKG5hbWUsIHNuYW1l LCAuLi4pICAgICAgICAgICAgICAgICAgICAgICAgICBcCkBAIC0zNTAwLDkgKzM1MTgsMTkgQEAg c3RydWN0IGxpYnhsX2RldmljZV90eXBlIHsKICAgICAgICAgLmFkZCAgICAgICAgICAgPSBsaWJ4 bF9fYWRkXyAjIyBuYW1lICMjIHMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAg ICAgIC5saXN0ICAgICAgICAgID0gKHZvaWQgKigqKShsaWJ4bF9jdHggKiwgdWludDMyX3QsIGlu dCAqKSkgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX2Rldmlj ZV8gIyMgc25hbWUgIyMgX2xpc3QsICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgLnNl dF9kZWZhdWx0ICAgPSAoaW50ICgqKShsaWJ4bF9fZ2MgKiwgdWludDMyX3QsIHZvaWQgKiwgYm9v bCkpXAorICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19kZXZpY2VfICMjIHNuYW1lICMj IF9zZXRkZWZhdWx0LCAgICAgICAgICAgICAgIFwKKyAgICAgICAgLnRvX2RldmljZSAgICAgPSAo aW50ICgqKShsaWJ4bF9fZ2MgKiwgdWludDMyX3QsICAgICAgICAgICAgICAgICAgICAgICBcCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqLCBsaWJ4bF9fZGV2aWNlICop KSAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19k ZXZpY2VfZnJvbV8gIyMgbmFtZSwgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAg LmluaXQgICAgICAgICAgPSAodm9pZCAoKikodm9pZCAqKSlsaWJ4bF9kZXZpY2VfICMjIHNuYW1l ICMjIF9pbml0LCAgICBcCisgICAgICAgIC5jb3B5ICAgICAgICAgID0gKHZvaWQgKCopKGxpYnhs X2N0eCAqLCB2b2lkICosIHZvaWQgKikpICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAg ICAgICAgICAgIGxpYnhsX2RldmljZV8gIyMgc25hbWUgIyMgX2NvcHksICAgICAgICAgICAgICAg ICAgICAgIFwKICAgICAgICAgLmRpc3Bvc2UgICAgICAgPSAodm9pZCAoKikodm9pZCAqKSlsaWJ4 bF9kZXZpY2VfICMjIHNuYW1lICMjIF9kaXNwb3NlLCBcCiAgICAgICAgIC5jb21wYXJlICAgICAg ID0gKGludCAoKikodm9pZCAqLCB2b2lkICopKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAogICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX2RldmljZV8gIyMgc25hbWUgIyMgX2Nv bXBhcmUsICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgLnVwZGF0ZV9kZXZpZCAgPSAoaW50 ICgqKShsaWJ4bF9fZ2MgKiwgdWludDMyX3QsIHZvaWQgKikpICAgICAgICAgICAgICBcCisgICAg ICAgICAgICAgICAgICAgICAgICAgbGlieGxfX2RldmljZV8gIyMgc25hbWUgIyMgX3VwZGF0ZV9k ZXZpZCwgICAgICAgICAgICAgXAogICAgICAgICBfX1ZBX0FSR1NfXyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICB9CiAKQEAg LTQzNTAsNiArNDM3OCwxMyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgbGlieGxfX2FjcGlfZGVmYm9v bF92YWwoY29uc3QgbGlieGxfZG9tYWluX2J1aWxkX2luZm8gKmJfaW5mbwogICAgIHJldHVybiBs aWJ4bF9kZWZib29sX3ZhbChiX2luZm8tPmFjcGkpICYmCiAgICAgICAgICAgIGxpYnhsX2RlZmJv b2xfdmFsKGJfaW5mby0+dS5odm0uYWNwaSk7CiB9CisKK3ZvaWQgbGlieGxfX2RldmljZV9hZGRf YXN5bmMobGlieGxfX2VnYyAqZWdjLCB1aW50MzJfdCBkb21pZCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3Qgc3RydWN0IGxpYnhsX2RldmljZV90eXBlICpkdCwgdm9pZCAqdHlw ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX2FvX2RldmljZSAqYW9kZXYp OworaW50IGxpYnhsX19kZXZpY2VfYWRkKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAor ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBsaWJ4bF9kZXZpY2VfdHlwZSAqZHQs IHZvaWQgKnR5cGUpOworCiAjZW5kaWYKIAogLyoKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xp YnhsX25pYy5jIGIvdG9vbHMvbGlieGwvbGlieGxfbmljLmMKaW5kZXggNGI2ZThjMC4uZTc3OTJi YSAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfbmljLmMKKysrIGIvdG9vbHMvbGlieGwv bGlieGxfbmljLmMKQEAgLTUyLDggKzUyLDggQEAgaW50IGxpYnhsX21hY190b19kZXZpY2Vfbmlj KGxpYnhsX2N0eCAqY3R4LCB1aW50MzJfdCBkb21pZCwKICAgICByZXR1cm4gcmM7CiB9CiAKLWlu dCBsaWJ4bF9fZGV2aWNlX25pY19zZXRkZWZhdWx0KGxpYnhsX19nYyAqZ2MsIGxpYnhsX2Rldmlj ZV9uaWMgKm5pYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGRv bWlkLCBib29sIGhvdHBsdWcpCitpbnQgbGlieGxfX2RldmljZV9uaWNfc2V0ZGVmYXVsdChsaWJ4 bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxpYnhsX2RldmljZV9uaWMgKm5pYywgYm9vbCBob3RwbHVnKQogewogICAgIGludCByYzsK IApAQCAtMTM4LDYgKzEzOCw4IEBAIHN0YXRpYyB2b2lkIGxpYnhsX191cGRhdGVfY29uZmlnX25p YyhsaWJ4bF9fZ2MgKmdjLCBsaWJ4bF9kZXZpY2VfbmljICpkc3QsCiAgICAgbGlieGxfbWFjX2Nv cHkoQ1RYLCAmZHN0LT5tYWMsICZzcmMtPm1hYyk7CiB9CiAKK3N0YXRpYyBMSUJYTF9ERUZJTkVf VVBEQVRFX0RFVklEKG5pYywgInZpZiIpCisKIHN0YXRpYyB2b2lkIGxpYnhsX19kZXZpY2Vfbmlj X2FkZChsaWJ4bF9fZWdjICplZ2MsIHVpbnQzMl90IGRvbWlkLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxpYnhsX2RldmljZV9uaWMgKm5pYywKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsaWJ4bF9fYW9fZGV2aWNlICphb2RldikKQEAgLTE1NiwxOCArMTU4 LDE0IEBAIHN0YXRpYyB2b2lkIGxpYnhsX19kZXZpY2VfbmljX2FkZChsaWJ4bF9fZWdjICplZ2Ms IHVpbnQzMl90IGRvbWlkLAogICAgIGxpYnhsX2RldmljZV9uaWNfaW5pdCgmbmljX3NhdmVkKTsK ICAgICBsaWJ4bF9kZXZpY2VfbmljX2NvcHkoQ1RYLCAmbmljX3NhdmVkLCBuaWMpOwogCi0gICAg cmMgPSBsaWJ4bF9fZGV2aWNlX25pY19zZXRkZWZhdWx0KGdjLCBuaWMsIGRvbWlkLCBhb2Rldi0+ dXBkYXRlX2pzb24pOworICAgIHJjID0gbGlieGxfX2RldmljZV9uaWNfc2V0ZGVmYXVsdChnYywg ZG9taWQsIG5pYywgYW9kZXYtPnVwZGF0ZV9qc29uKTsKICAgICBpZiAocmMpIGdvdG8gb3V0Owog CiAgICAgZnJvbnQgPSBmbGV4YXJyYXlfbWFrZShnYywgMTYsIDEpOwogICAgIGJhY2sgPSBmbGV4 YXJyYXlfbWFrZShnYywgMTgsIDEpOwogCi0gICAgaWYgKG5pYy0+ZGV2aWQgPT0gLTEpIHsKLSAg ICAgICAgaWYgKChuaWMtPmRldmlkID0gbGlieGxfX2RldmljZV9uZXh0aWQoZ2MsIGRvbWlkLCAi dmlmIikpIDwgMCkgewotICAgICAgICAgICAgcmMgPSBFUlJPUl9GQUlMOwotICAgICAgICAgICAg Z290byBvdXQ7Ci0gICAgICAgIH0KLSAgICB9CisgICAgcmMgPSBsaWJ4bF9fZGV2aWNlX25pY191 cGRhdGVfZGV2aWQoZ2MsIGRvbWlkLCBuaWMpOworICAgIGlmIChyYykgZ290byBvdXQ7CiAKICAg ICBsaWJ4bF9fdXBkYXRlX2NvbmZpZ19uaWMoZ2MsICZuaWNfc2F2ZWQsIG5pYyk7CiAKQEAgLTY0 Niw3ICs2NDQsNyBAQCBpbnQgbGlieGxfX2RldmljZV9uaWNfc2V0X2RldmlkcyhsaWJ4bF9fZ2Mg KmdjLCBsaWJ4bF9kb21haW5fY29uZmlnICpkX2NvbmZpZywKICAgICAgICAgICogY2FsbGVkIGxp YnhsX2RldmljZV9uaWNfYWRkIHdoZW4gZG9tY3JlYXRlX2xhdW5jaF9kbSBnZXRzIGNhbGxlZCwK ICAgICAgICAgICogYnV0IHFlbXUgbmVlZHMgdGhlIG5pYyBpbmZvcm1hdGlvbiB0byBiZSBjb21w bGV0ZS4KICAgICAgICAgICovCi0gICAgICAgIHJldCA9IGxpYnhsX19kZXZpY2VfbmljX3NldGRl ZmF1bHQoZ2MsICZkX2NvbmZpZy0+bmljc1tpXSwgZG9taWQsCisgICAgICAgIHJldCA9IGxpYnhs X19kZXZpY2VfbmljX3NldGRlZmF1bHQoZ2MsIGRvbWlkLCAmZF9jb25maWctPm5pY3NbaV0sCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpOwogICAgICAg ICBpZiAocmV0KSB7CiAgICAgICAgICAgICBMT0dEKEVSUk9SLCBkb21pZCwgIlVuYWJsZSB0byBz ZXQgbmljIGRlZmF1bHRzIGZvciBuaWMgJWQiLCBpKTsKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhs L2xpYnhsX3BjaS5jIGIvdG9vbHMvbGlieGwvbGlieGxfcGNpLmMKaW5kZXggNjVhZDVlNS4uN2Ey ZDQyZiAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfcGNpLmMKKysrIGIvdG9vbHMvbGli eGwvbGlieGxfcGNpLmMKQEAgLTExNDQsNyArMTE0NCw4IEBAIHN0YXRpYyBpbnQgbGlieGxfX2Rl dmljZV9wY2lfcmVzZXQobGlieGxfX2djICpnYywgdW5zaWduZWQgaW50IGRvbWFpbiwgdW5zaWdu ZWQKICAgICByZXR1cm4gLTE7CiB9CiAKLWludCBsaWJ4bF9fZGV2aWNlX3BjaV9zZXRkZWZhdWx0 KGxpYnhsX19nYyAqZ2MsIGxpYnhsX2RldmljZV9wY2kgKnBjaSkKK3N0YXRpYyBpbnQgbGlieGxf X2RldmljZV9wY2lfc2V0ZGVmYXVsdChsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kZXZpY2VfcGNpICpw Y2ksIGJvb2wgaG90cGx1ZykKIHsKICAgICAvKiBXZSdkIGxpa2UgdG8gZm9yY2UgcmVzZXJ2ZSBy ZG0gc3BlY2lmaWMgdG8gYSBkZXZpY2UgYnkgZGVmYXVsdC4qLwogICAgIGlmIChwY2ktPnJkbV9w b2xpY3kgPT0gTElCWExfUkRNX1JFU0VSVkVfUE9MSUNZX0lOVkFMSUQpCkBAIC0xMjAwLDcgKzEy MDEsNyBAQCBpbnQgbGlieGxfX2RldmljZV9wY2lfYWRkKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90 IGRvbWlkLCBsaWJ4bF9kZXZpY2VfcGNpICpwY2lkZQogICAgICAgICB9CiAgICAgfQogCi0gICAg cmMgPSBsaWJ4bF9fZGV2aWNlX3BjaV9zZXRkZWZhdWx0KGdjLCBwY2lkZXYpOworICAgIHJjID0g bGlieGxfX2RldmljZV9wY2lfc2V0ZGVmYXVsdChnYywgZG9taWQsIHBjaWRldiwgZmFsc2UpOwog ICAgIGlmIChyYykgZ290byBvdXQ7CiAKICAgICBpZiAocGNpZGV2LT5zZWl6ZSAmJiAhcGNpYmFj a19kZXZfaXNfYXNzaWduZWQoZ2MsIHBjaWRldikpIHsKQEAgLTE2NzgsNiArMTY3OSw4IEBAIHN0 YXRpYyBpbnQgbGlieGxfZGV2aWNlX3BjaV9jb21wYXJlKGxpYnhsX2RldmljZV9wY2kgKmQxLAog ICAgIHJldHVybiBDT01QQVJFX1BDSShkMSwgZDIpOwogfQogCisjZGVmaW5lIGxpYnhsX19kZXZp Y2VfcGNpX3VwZGF0ZV9kZXZpZCBOVUxMCisKIERFRklORV9ERVZJQ0VfVFlQRV9TVFJVQ1RfWChw Y2lkZXYsIHBjaSk7CiAKIC8qCmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF91c2IuYyBi L3Rvb2xzL2xpYnhsL2xpYnhsX3VzYi5jCmluZGV4IGQ4OTQ4ZDUuLjdmNzhmNGUgMTAwNjQ0Ci0t LSBhL3Rvb2xzL2xpYnhsL2xpYnhsX3VzYi5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX3VzYi5j CkBAIC0zOSw3ICszOSw4IEBAIHN0YXRpYyBpbnQgdXNiYmFja19pc19sb2FkZWQobGlieGxfX2dj ICpnYykKIH0KIAogc3RhdGljIGludCBsaWJ4bF9fZGV2aWNlX3VzYmN0cmxfc2V0ZGVmYXVsdChs aWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGlieGxfZGV2aWNlX3VzYmN0cmwgKnVzYmN0cmwpCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX2RldmljZV91c2JjdHJs ICp1c2JjdHJsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi b29sIGhvdHBsdWcpCiB7CiAgICAgaW50IHJjOwogICAgIGxpYnhsX2RvbWFpbl90eXBlIGRvbXR5 cGUgPSBsaWJ4bF9fZG9tYWluX3R5cGUoZ2MsIGRvbWlkKTsKQEAgLTQyOSw2ICs0MzAsOCBAQCBz dGF0aWMgaW50IGxpYnhsX19kZXZpY2VfdXNiZGV2X2RlbF9odm0obGlieGxfX2djICpnYywgdWlu dDMyX3QgZG9taWQsCiAgICAgcmV0dXJuIGxpYnhsX19xbXBfcnVuX2NvbW1hbmRfZmxleGFycmF5 KGdjLCBkb21pZCwgImRldmljZV9kZWwiLCBxbXBfYXJncyk7CiB9CiAKK3N0YXRpYyBMSUJYTF9E RUZJTkVfVVBEQVRFX0RFVklEKHVzYmN0cmwsICJ2dXNiIikKKwogLyogQU8gb3BlcmF0aW9uIHRv IGFkZCBhIHVzYiBjb250cm9sbGVyLgogICoKICAqIEdlbmVyYWxseSwgaXQgZG9lczoKQEAgLTQ0 OSwxNiArNDUyLDEyIEBAIHN0YXRpYyB2b2lkIGxpYnhsX19kZXZpY2VfdXNiY3RybF9hZGQobGli eGxfX2VnYyAqZWdjLCB1aW50MzJfdCBkb21pZCwKICAgICBsaWJ4bF9fZGV2aWNlICpkZXZpY2U7 CiAgICAgaW50IHJjOwogCi0gICAgcmMgPSBsaWJ4bF9fZGV2aWNlX3VzYmN0cmxfc2V0ZGVmYXVs dChnYywgZG9taWQsIHVzYmN0cmwpOworICAgIHJjID0gbGlieGxfX2RldmljZV91c2JjdHJsX3Nl dGRlZmF1bHQoZ2MsIGRvbWlkLCB1c2JjdHJsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYW9kZXYtPnVwZGF0ZV9qc29uKTsKICAgICBpZiAocmMgPCAwKSBnb3Rv IG91dDsKIAotICAgIGlmICh1c2JjdHJsLT5kZXZpZCA9PSAtMSkgewotICAgICAgICB1c2JjdHJs LT5kZXZpZCA9IGxpYnhsX19kZXZpY2VfbmV4dGlkKGdjLCBkb21pZCwgInZ1c2IiKTsKLSAgICAg ICAgaWYgKHVzYmN0cmwtPmRldmlkIDwgMCkgewotICAgICAgICAgICAgcmMgPSBFUlJPUl9GQUlM OwotICAgICAgICAgICAgZ290byBvdXQ7Ci0gICAgICAgIH0KLSAgICB9CisgICAgcmMgPSBsaWJ4 bF9fZGV2aWNlX3VzYmN0cmxfdXBkYXRlX2RldmlkKGdjLCBkb21pZCwgdXNiY3RybCk7CisgICAg aWYgKHJjKSBnb3RvIG91dDsKIAogICAgIHJjID0gbGlieGxfX2RldmljZV91c2JjdHJsX2FkZF94 ZW5zdG9yZShnYywgZG9taWQsIHVzYmN0cmwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFvZGV2LT51cGRhdGVfanNvbik7CkBAIC0xMDc5LDE2ICsxMDc4LDEy IEBAIHN0YXRpYyBpbnQgbGlieGxfX2RldmljZV91c2JkZXZfc2V0ZGVmYXVsdChsaWJ4bF9fZ2Mg KmdjLAogCiAgICAgICAgICAgICBHQ05FVyh1c2JjdHJsKTsKICAgICAgICAgICAgIGxpYnhsX2Rl dmljZV91c2JjdHJsX2luaXQodXNiY3RybCk7Ci0gICAgICAgICAgICByYyA9IGxpYnhsX19kZXZp Y2VfdXNiY3RybF9zZXRkZWZhdWx0KGdjLCBkb21pZCwgdXNiY3RybCk7CisgICAgICAgICAgICBy YyA9IGxpYnhsX19kZXZpY2VfdXNiY3RybF9zZXRkZWZhdWx0KGdjLCBkb21pZCwgdXNiY3RybCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRl X2pzb24pOwogICAgICAgICAgICAgaWYgKHJjIDwgMCkgZ290byBvdXQ7CiAKLSAgICAgICAgICAg IGlmICh1c2JjdHJsLT5kZXZpZCA9PSAtMSkgewotICAgICAgICAgICAgICAgIHVzYmN0cmwtPmRl dmlkID0gbGlieGxfX2RldmljZV9uZXh0aWQoZ2MsIGRvbWlkLCAidnVzYiIpOwotICAgICAgICAg ICAgICAgIGlmICh1c2JjdHJsLT5kZXZpZCA8IDApIHsKLSAgICAgICAgICAgICAgICAgICAgcmMg PSBFUlJPUl9GQUlMOwotICAgICAgICAgICAgICAgICAgICBnb3RvIG91dDsKLSAgICAgICAgICAg ICAgICB9Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICByYyA9IGxpYnhsX19kZXZpY2VfdXNi Y3RybF91cGRhdGVfZGV2aWQoZ2MsIGRvbWlkLCB1c2JjdHJsKTsKKyAgICAgICAgICAgIGlmIChy YykgZ290byBvdXQ7CiAKICAgICAgICAgICAgIHJjID0gbGlieGxfX2RldmljZV91c2JjdHJsX2Fk ZF94ZW5zdG9yZShnYywgZG9taWQsIHVzYmN0cmwsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlX2pzb24pOwpAQCAtMTk2NSw5ICsxOTYw LDE1IEBAIHZvaWQgbGlieGxfZGV2aWNlX3VzYmRldl9saXN0X2ZyZWUobGlieGxfZGV2aWNlX3Vz YmRldiAqbGlzdCwgaW50IG5yKQogICAgZnJlZShsaXN0KTsKIH0KIAorI2RlZmluZSBsaWJ4bF9f ZGV2aWNlX3VzYmN0cmxfdXBkYXRlX2RldmlkIE5VTEwKKwogREVGSU5FX0RFVklDRV9UWVBFX1NU UlVDVCh1c2JjdHJsLAogICAgIC5kbV9uZWVkZWQgPSBsaWJ4bF9kZXZpY2VfdXNiY3RybF9kbV9u ZWVkZWQKICk7CisKKyNkZWZpbmUgbGlieGxfX2RldmljZV9mcm9tX3VzYmRldiBOVUxMCisjZGVm aW5lIGxpYnhsX19kZXZpY2VfdXNiZGV2X3VwZGF0ZV9kZXZpZCBOVUxMCisKIERFRklORV9ERVZJ Q0VfVFlQRV9TVFJVQ1QodXNiZGV2KTsKIAogLyoKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xp YnhsX3Z0cG0uYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX3Z0cG0uYwppbmRleCA5ZWU4Y2NlLi4zZWNh MzhlIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF92dHBtLmMKKysrIGIvdG9vbHMvbGli eGwvbGlieGxfdnRwbS5jCkBAIC0xNyw3ICsxNyw4IEBACiAKICNpbmNsdWRlICJsaWJ4bF9pbnRl cm5hbC5oIgogCi1zdGF0aWMgaW50IGxpYnhsX19kZXZpY2VfdnRwbV9zZXRkZWZhdWx0KGxpYnhs X19nYyAqZ2MsIGxpYnhsX2RldmljZV92dHBtICp2dHBtKQorc3RhdGljIGludCBsaWJ4bF9fZGV2 aWNlX3Z0cG1fc2V0ZGVmYXVsdChsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGV2aWNlX3Z0cG0gKnZ0 cG0sIGJvb2wgaG90cGx1ZykKIHsKICAgICBpbnQgcmM7CiAgICAgaWYgKGxpYnhsX3V1aWRfaXNf bmlsKCZ2dHBtLT51dWlkKSkgewpAQCAtNDgsNiArNDksOCBAQCBzdGF0aWMgdm9pZCBsaWJ4bF9f dXBkYXRlX2NvbmZpZ192dHBtKGxpYnhsX19nYyAqZ2MsIGxpYnhsX2RldmljZV92dHBtICpkc3Qs CiAgICAgbGlieGxfdXVpZF9jb3B5KENUWCwgJmRzdC0+dXVpZCwgJnNyYy0+dXVpZCk7CiB9CiAK K3N0YXRpYyBMSUJYTF9ERUZJTkVfVVBEQVRFX0RFVklEKHZ0cG0sICJ2dHBtIikKKwogc3RhdGlj IHZvaWQgbGlieGxfX2RldmljZV92dHBtX2FkZChsaWJ4bF9fZWdjICplZ2MsIHVpbnQzMl90IGRv bWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kZXZpY2VfdnRw bSAqdnRwbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX2FvX2Rl dmljZSAqYW9kZXYpCkBAIC02NiwxOCArNjksMTQgQEAgc3RhdGljIHZvaWQgbGlieGxfX2Rldmlj ZV92dHBtX2FkZChsaWJ4bF9fZWdjICplZ2MsIHVpbnQzMl90IGRvbWlkLAogICAgIGxpYnhsX2Rl dmljZV92dHBtX2luaXQoJnZ0cG1fc2F2ZWQpOwogICAgIGxpYnhsX2RldmljZV92dHBtX2NvcHko Q1RYLCAmdnRwbV9zYXZlZCwgdnRwbSk7CiAKLSAgICByYyA9IGxpYnhsX19kZXZpY2VfdnRwbV9z ZXRkZWZhdWx0KGdjLCB2dHBtKTsKKyAgICByYyA9IGxpYnhsX19kZXZpY2VfdnRwbV9zZXRkZWZh dWx0KGdjLCBkb21pZCwgdnRwbSwgYW9kZXYtPnVwZGF0ZV9qc29uKTsKICAgICBpZiAocmMpIGdv dG8gb3V0OwogCiAgICAgZnJvbnQgPSBmbGV4YXJyYXlfbWFrZShnYywgMTYsIDEpOwogICAgIGJh Y2sgPSBmbGV4YXJyYXlfbWFrZShnYywgMTYsIDEpOwogCi0gICAgaWYgKHZ0cG0tPmRldmlkID09 IC0xKSB7Ci0gICAgICAgIGlmICgodnRwbS0+ZGV2aWQgPSBsaWJ4bF9fZGV2aWNlX25leHRpZChn YywgZG9taWQsICJ2dHBtIikpIDwgMCkgewotICAgICAgICAgICAgcmMgPSBFUlJPUl9GQUlMOwot ICAgICAgICAgICAgZ290byBvdXQ7Ci0gICAgICAgIH0KLSAgICB9CisgICAgcmMgPSBsaWJ4bF9f ZGV2aWNlX3Z0cG1fdXBkYXRlX2RldmlkKGdjLCBkb21pZCwgdnRwbSk7CisgICAgaWYgKHJjKSBn b3RvIG91dDsKIAogICAgIGxpYnhsX191cGRhdGVfY29uZmlnX3Z0cG0oZ2MsICZ2dHBtX3NhdmVk LCB2dHBtKTsKIAotLSAKMi43LjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4u b3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK