From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Grytsov Subject: [PATCH v5 01/12] libxl: add generic function to add device Date: Mon, 11 Sep 2017 20:14:51 +0300 Message-ID: <1505150102-30806-2-git-send-email-al1img@gmail.com> References: <1505150102-30806-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 1drSIs-0001t5-Vg for xen-devel@lists.xenproject.org; Mon, 11 Sep 2017 17:15:23 +0000 Received: by mail-lf0-f65.google.com with SMTP id q132so4222756lfe.4 for ; Mon, 11 Sep 2017 10:15:20 -0700 (PDT) In-Reply-To: <1505150102-30806-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+Ci0tLQogdG9vbHMvbGlieGwvbGlieGxfOXBmcy5jICAgICB8ICAgOSArLQogdG9vbHMvbGli eGwvbGlieGxfY29uc29sZS5jICB8ICAyMCArKy0tLQogdG9vbHMvbGlieGwvbGlieGxfY3JlYXRl LmMgICB8ICAgNiArLQogdG9vbHMvbGlieGwvbGlieGxfZGV2aWNlLmMgICB8IDE5NyArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiB0b29scy9saWJ4bC9saWJ4bF9k aXNrLmMgICAgIHwgIDE1ICsrLS0KIHRvb2xzL2xpYnhsL2xpYnhsX2RtLmMgICAgICAgfCAgIDIg Ky0KIHRvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmggfCAgNDUgKysrKysrKystLQogdG9vbHMv bGlieGwvbGlieGxfbmljLmMgICAgICB8ICAxOCArKy0tCiB0b29scy9saWJ4bC9saWJ4bF9wY2ku YyAgICAgIHwgICA3ICstCiB0b29scy9saWJ4bC9saWJ4bF91c2IuYyAgICAgIHwgIDM1ICsrKyst LS0tCiB0b29scy9saWJ4bC9saWJ4bF92dHBtLmMgICAgIHwgIDE1ICsrLS0KIDExIGZpbGVzIGNo YW5nZWQsIDMwMSBpbnNlcnRpb25zKCspLCA2OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90 b29scy9saWJ4bC9saWJ4bF85cGZzLmMgYi90b29scy9saWJ4bC9saWJ4bF85cGZzLmMKaW5kZXgg MDdlM2U1Zi4uNTQ0M2Y3YSAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfOXBmcy5jCisr KyBiL3Rvb2xzL2xpYnhsL2xpYnhsXzlwZnMuYwpAQCAtMzksNiArMzksNyBAQCBzdGF0aWMgaW50 IGxpYnhsX19kZXZpY2VfZnJvbV9wOShsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwKICAg IHJldHVybiAwOwogfQogCitzdGF0aWMgTElCWExfREVGSU5FX1VQREFURV9ERVZJRChwOSwgIjlw ZnMiKQogCiBpbnQgbGlieGxfX2RldmljZV9wOV9hZGQobGlieGxfX2djICpnYywgdWludDMyX3Qg ZG9taWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGV2aWNlX3A5ICpwOSkKQEAg LTU0LDEyICs1NSw4IEBAIGludCBsaWJ4bF9fZGV2aWNlX3A5X2FkZChsaWJ4bF9fZ2MgKmdjLCB1 aW50MzJfdCBkb21pZCwKICAgICBmcm9udCA9IGZsZXhhcnJheV9tYWtlKGdjLCAxNiwgMSk7CiAg ICAgYmFjayA9IGZsZXhhcnJheV9tYWtlKGdjLCAxNiwgMSk7CiAKLSAgICBpZiAocDktPmRldmlk ID09IC0xKSB7Ci0gICAgICAgIGlmICgocDktPmRldmlkID0gbGlieGxfX2RldmljZV9uZXh0aWQo Z2MsIGRvbWlkLCAiOXBmcyIpKSA8IDApIHsKLSAgICAgICAgICAgIHJjID0gRVJST1JfRkFJTDsK LSAgICAgICAgICAgIGdvdG8gb3V0OwotICAgICAgICB9Ci0gICAgfQorICAgIHJjID0gbGlieGxf X2RldmljZV9wOV91cGRhdGVfZGV2aWQoZ2MsIGRvbWlkLCBwOSk7CisgICAgaWYgKHJjKSBnb3Rv IG91dDsKIAogICAgIHJjID0gbGlieGxfX2RldmljZV9mcm9tX3A5KGdjLCBkb21pZCwgcDksICZk ZXZpY2UpOwogICAgIGlmIChyYyAhPSAwKSBnb3RvIG91dDsKZGlmZiAtLWdpdCBhL3Rvb2xzL2xp YnhsL2xpYnhsX2NvbnNvbGUuYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2NvbnNvbGUuYwppbmRleCA0 NDZlNzY2Li42MTgxYjA1IDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9jb25zb2xlLmMK KysrIGIvdG9vbHMvbGlieGwvbGlieGxfY29uc29sZS5jCkBAIC02MjEsNiArNjIxLDggQEAgb3V0 OgogICAgIHJldHVybiBBT19JTlBST0dSRVNTOwogfQogCitzdGF0aWMgTElCWExfREVGSU5FX1VQ REFURV9ERVZJRCh2a2IsICJ2a2IiKQorCiBpbnQgbGlieGxfX2RldmljZV92a2JfYWRkKGxpYnhs X19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4 bF9kZXZpY2VfdmtiICp2a2IpCiB7CkBAIC02MzUsMTIgKzYzNyw4IEBAIGludCBsaWJ4bF9fZGV2 aWNlX3ZrYl9hZGQobGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQsCiAgICAgZnJvbnQgPSBm bGV4YXJyYXlfbWFrZShnYywgMTYsIDEpOwogICAgIGJhY2sgPSBmbGV4YXJyYXlfbWFrZShnYywg MTYsIDEpOwogCi0gICAgaWYgKHZrYi0+ZGV2aWQgPT0gLTEpIHsKLSAgICAgICAgaWYgKCh2a2It PmRldmlkID0gbGlieGxfX2RldmljZV9uZXh0aWQoZ2MsIGRvbWlkLCAidmtiIikpIDwgMCkgewot ICAgICAgICAgICAgcmMgPSBFUlJPUl9GQUlMOwotICAgICAgICAgICAgZ290byBvdXQ7Ci0gICAg ICAgIH0KLSAgICB9CisgICAgcmMgPSBsaWJ4bF9fZGV2aWNlX3ZrYl91cGRhdGVfZGV2aWQoZ2Ms IGRvbWlkLCB2a2IpOworICAgIGlmIChyYykgZ290byBvdXQ7CiAKICAgICByYyA9IGxpYnhsX19k ZXZpY2VfZnJvbV92a2IoZ2MsIGRvbWlkLCB2a2IsICZkZXZpY2UpOwogICAgIGlmIChyYyAhPSAw KSBnb3RvIG91dDsKQEAgLTcxOSw2ICs3MTcsOCBAQCBvdXQ6CiAgICAgcmV0dXJuIEFPX0lOUFJP R1JFU1M7CiB9CiAKK3N0YXRpYyBMSUJYTF9ERUZJTkVfVVBEQVRFX0RFVklEKHZmYiwgInZmYiIp CisKIGludCBsaWJ4bF9fZGV2aWNlX3ZmYl9hZGQobGlieGxfX2djICpnYywgdWludDMyX3QgZG9t aWQsIGxpYnhsX2RldmljZV92ZmIgKnZmYikKIHsKICAgICBmbGV4YXJyYXlfdCAqZnJvbnQ7CkBA IC03MzIsMTIgKzczMiw4IEBAIGludCBsaWJ4bF9fZGV2aWNlX3ZmYl9hZGQobGlieGxfX2djICpn YywgdWludDMyX3QgZG9taWQsIGxpYnhsX2RldmljZV92ZmIgKnZmYikKICAgICBmcm9udCA9IGZs ZXhhcnJheV9tYWtlKGdjLCAxNiwgMSk7CiAgICAgYmFjayA9IGZsZXhhcnJheV9tYWtlKGdjLCAx NiwgMSk7CiAKLSAgICBpZiAodmZiLT5kZXZpZCA9PSAtMSkgewotICAgICAgICBpZiAoKHZmYi0+ ZGV2aWQgPSBsaWJ4bF9fZGV2aWNlX25leHRpZChnYywgZG9taWQsICJ2ZmIiKSkgPCAwKSB7Ci0g ICAgICAgICAgICByYyA9IEVSUk9SX0ZBSUw7Ci0gICAgICAgICAgICBnb3RvIG91dDsKLSAgICAg ICAgfQotICAgIH0KKyAgICByYyA9IGxpYnhsX19kZXZpY2VfdmZiX3VwZGF0ZV9kZXZpZChnYywg ZG9taWQsIHZmYik7CisgICAgaWYgKHJjKSBnb3RvIG91dDsKIAogICAgIHJjID0gbGlieGxfX2Rl dmljZV9mcm9tX3ZmYihnYywgZG9taWQsIHZmYiwgJmRldmljZSk7CiAgICAgaWYgKHJjICE9IDAp IGdvdG8gb3V0OwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfY3JlYXRlLmMgYi90b29s cy9saWJ4bC9saWJ4bF9jcmVhdGUuYwppbmRleCA5MTIzNTg1Li5lZmQxNDU5IDEwMDY0NAotLS0g YS90b29scy9saWJ4bC9saWJ4bF9jcmVhdGUuYworKysgYi90b29scy9saWJ4bC9saWJ4bF9jcmVh dGUuYwpAQCAtOTM4LDcgKzkzOCw4IEBAIHN0YXRpYyB2b2lkIGluaXRpYXRlX2RvbWFpbl9jcmVh dGUobGlieGxfX2VnYyAqZWdjLAogICAgIHN0b3JlX2xpYnhsX2VudHJ5KGdjLCBkb21pZCwgJmRf Y29uZmlnLT5iX2luZm8pOwogCiAgICAgZm9yIChpID0gMDsgaSA8IGRfY29uZmlnLT5udW1fZGlz a3M7IGkrKykgewotICAgICAgICByZXQgPSBsaWJ4bF9fZGV2aWNlX2Rpc2tfc2V0ZGVmYXVsdChn YywgJmRfY29uZmlnLT5kaXNrc1tpXSwgZG9taWQpOworICAgICAgICByZXQgPSBsaWJ4bF9fZGV2 aWNlX2Rpc2tfc2V0ZGVmYXVsdChnYywgZG9taWQsICZkX2NvbmZpZy0+ZGlza3NbaV0sCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKTsKICAgICAgICAg aWYgKHJldCkgewogICAgICAgICAgICAgTE9HRChFUlJPUiwgZG9taWQsICJVbmFibGUgdG8gc2V0 IGRpc2sgZGVmYXVsdHMgZm9yIGRpc2sgJWQiLCBpKTsKICAgICAgICAgICAgIGdvdG8gZXJyb3Jf b3V0OwpAQCAtMTQzMiw2ICsxNDMzLDkgQEAgb3V0OgogCiAjZGVmaW5lIGxpYnhsX2RldmljZV9k dGRldl9saXN0IE5VTEwKICNkZWZpbmUgbGlieGxfZGV2aWNlX2R0ZGV2X2NvbXBhcmUgTlVMTAor I2RlZmluZSBsaWJ4bF9fZGV2aWNlX2Zyb21fZHRkZXYgTlVMTAorI2RlZmluZSBsaWJ4bF9fZGV2 aWNlX2R0ZGV2X3NldGRlZmF1bHQgTlVMTAorI2RlZmluZSBsaWJ4bF9fZGV2aWNlX2R0ZGV2X3Vw ZGF0ZV9kZXZpZCBOVUxMCiBzdGF0aWMgREVGSU5FX0RFVklDRV9UWVBFX1NUUlVDVChkdGRldik7 CiAKIGNvbnN0IHN0cnVjdCBsaWJ4bF9kZXZpY2VfdHlwZSAqZGV2aWNlX3R5cGVfdGJsW10gPSB7 CmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9kZXZpY2UuYyBiL3Rvb2xzL2xpYnhsL2xp YnhsX2RldmljZS5jCmluZGV4IDAwMzU2YWYuLjMyOTZlODMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xp YnhsL2xpYnhsX2RldmljZS5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2RldmljZS5jCkBAIC0x NzkzLDYgKzE3OTMsMjAzIEBAIG91dDoKICAgICByZXR1cm4gQU9fQ1JFQVRFX0ZBSUwocmMpOwog fQogCitzdGF0aWMgdm9pZCBkZXZpY2VfYWRkX2RvbWFpbl9jb25maWcobGlieGxfX2djICpnYywK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kb21haW5fY29uZmln ICpkX2NvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBz dHJ1Y3QgbGlieGxfZGV2aWNlX3R5cGUgKmR0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHZvaWQgKnR5cGUpCit7CisgICAgaW50ICpudW1fZGV2OworICAgIHVuc2lnbmVk IGludCBpOworICAgIHZvaWQgKml0ZW0gPSBOVUxMOworCisgICAgbnVtX2RldiA9IGxpYnhsX19k ZXZpY2VfdHlwZV9nZXRfbnVtKGR0LCBkX2NvbmZpZyk7CisKKyAgICAvKiBDaGVjayBmb3IgZXhp c3RpbmcgZGV2aWNlICovCisgICAgZm9yIChpID0gMDsgaSA8ICpudW1fZGV2OyBpKyspIHsKKyAg ICAgICAgaWYgKGR0LT5jb21wYXJlKGxpYnhsX19kZXZpY2VfdHlwZV9nZXRfZWxlbShkdCwgZF9j b25maWcsIGkpLCB0eXBlKSkgeworICAgICAgICAgICAgaXRlbSA9IGxpYnhsX19kZXZpY2VfdHlw ZV9nZXRfZWxlbShkdCwgZF9jb25maWcsIGkpOworICAgICAgICB9CisgICAgfQorCisgICAgaWYg KCFpdGVtKSB7CisgICAgICAgIHZvaWQgKipkZXZzID0gbGlieGxfX2RldmljZV90eXBlX2dldF9w dHIoZHQsIGRfY29uZmlnKTsKKyAgICAgICAgKmRldnMgPSBsaWJ4bF9fcmVhbGxvYyhOT0dDLCAq ZGV2cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkdC0+ZGV2X2VsZW1fc2l6ZSAq ICgqbnVtX2RldiArIDEpKTsKKyAgICAgICAgaXRlbSA9IGxpYnhsX19kZXZpY2VfdHlwZV9nZXRf ZWxlbShkdCwgZF9jb25maWcsICpudW1fZGV2KTsKKyAgICAgICAgKCpudW1fZGV2KSsrOworICAg IH0gZWxzZSB7CisgICAgICAgIGR0LT5kaXNwb3NlKGl0ZW0pOworICAgIH0KKworICAgIGR0LT5p bml0KGl0ZW0pOworICAgIGR0LT5jb3B5KENUWCwgaXRlbSwgdHlwZSk7Cit9CisKK3ZvaWQgbGli eGxfX2RldmljZV9hZGRfYXN5bmMobGlieGxfX2VnYyAqZWdjLCB1aW50MzJfdCBkb21pZCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGxpYnhsX2RldmljZV90eXBl ICpkdCwgdm9pZCAqdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX2Fv X2RldmljZSAqYW9kZXYpCit7CisgICAgU1RBVEVfQU9fR0MoYW9kZXYtPmFvKTsKKyAgICBmbGV4 YXJyYXlfdCAqYmFjazsKKyAgICBmbGV4YXJyYXlfdCAqZnJvbnQsICpyb19mcm9udDsKKyAgICBs aWJ4bF9fZGV2aWNlICpkZXZpY2U7CisgICAgeHNfdHJhbnNhY3Rpb25fdCB0ID0gWEJUX05VTEw7 CisgICAgbGlieGxfZG9tYWluX2NvbmZpZyBkX2NvbmZpZzsKKyAgICB2b2lkICp0eXBlX3NhdmVk OworICAgIGxpYnhsX19kb21haW5fdXNlcmRhdGFfbG9jayAqbG9jayA9IE5VTEw7CisgICAgaW50 IHJjOworCisgICAgbGlieGxfZG9tYWluX2NvbmZpZ19pbml0KCZkX2NvbmZpZyk7CisKKyAgICB0 eXBlX3NhdmVkID0gbGlieGxfX21hbGxvYyhnYywgZHQtPmRldl9lbGVtX3NpemUpOworCisgICAg ZHQtPmluaXQodHlwZV9zYXZlZCk7CisgICAgZHQtPmNvcHkoQ1RYLCB0eXBlX3NhdmVkLCB0eXBl KTsKKworICAgIGlmIChkdC0+c2V0X2RlZmF1bHQpIHsKKyAgICAgICAgcmMgPSBkdC0+c2V0X2Rl ZmF1bHQoZ2MsIGRvbWlkLCB0eXBlLCBhb2Rldi0+dXBkYXRlX2pzb24pOworICAgICAgICBpZiAo cmMpIGdvdG8gb3V0OworICAgIH0KKworICAgIGlmIChkdC0+dXBkYXRlX2RldmlkKSB7CisgICAg ICAgIHJjID0gZHQtPnVwZGF0ZV9kZXZpZChnYywgZG9taWQsIHR5cGUpOworICAgICAgICBpZiAo cmMpIGdvdG8gb3V0OworICAgIH0KKworICAgIGlmIChkdC0+dXBkYXRlX2NvbmZpZykKKyAgICAg ICAgZHQtPnVwZGF0ZV9jb25maWcoZ2MsIHR5cGVfc2F2ZWQsIHR5cGUpOworCisgICAgR0NORVco ZGV2aWNlKTsKKyAgICByYyA9IGR0LT50b19kZXZpY2UoZ2MsIGRvbWlkLCB0eXBlLCBkZXZpY2Up OworICAgIGlmIChyYykgZ290byBvdXQ7CisKKyAgICBpZiAoYW9kZXYtPnVwZGF0ZV9qc29uKSB7 CisgICAgICAgIGxvY2sgPSBsaWJ4bF9fbG9ja19kb21haW5fdXNlcmRhdGEoZ2MsIGRvbWlkKTsK KyAgICAgICAgaWYgKCFsb2NrKSB7CisgICAgICAgICAgICByYyA9IEVSUk9SX0xPQ0tfRkFJTDsK KyAgICAgICAgICAgIGdvdG8gb3V0OworICAgICAgICB9CisKKyAgICAgICAgcmMgPSBsaWJ4bF9f Z2V0X2RvbWFpbl9jb25maWd1cmF0aW9uKGdjLCBkb21pZCwgJmRfY29uZmlnKTsKKyAgICAgICAg aWYgKHJjKSBnb3RvIG91dDsKKworICAgICAgICBkZXZpY2VfYWRkX2RvbWFpbl9jb25maWcoZ2Ms ICZkX2NvbmZpZywgZHQsIHR5cGVfc2F2ZWQpOworCisgICAgICAgIHJjID0gbGlieGxfX2RtX2No ZWNrX3N0YXJ0KGdjLCAmZF9jb25maWcsIGRvbWlkKTsKKyAgICAgICAgaWYgKHJjKSBnb3RvIG91 dDsKKyAgICB9CisKKyAgICBiYWNrID0gZmxleGFycmF5X21ha2UoZ2MsIDE2LCAxKTsKKyAgICBm cm9udCA9IGZsZXhhcnJheV9tYWtlKGdjLCAxNiwgMSk7CisgICAgcm9fZnJvbnQgPSBmbGV4YXJy YXlfbWFrZShnYywgMTYsIDEpOworCisgICAgZmxleGFycmF5X2FwcGVuZF9wYWlyKGJhY2ssICJm cm9udGVuZC1pZCIsIEdDU1BSSU5URigiJWQiLCBkb21pZCkpOworICAgIGZsZXhhcnJheV9hcHBl bmRfcGFpcihiYWNrLCAib25saW5lIiwgIjEiKTsKKyAgICBmbGV4YXJyYXlfYXBwZW5kX3BhaXIo YmFjaywgInN0YXRlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgR0NTUFJJTlRGKCIlZCIs IFhlbmJ1c1N0YXRlSW5pdGlhbGlzaW5nKSk7CisKKyAgICBmbGV4YXJyYXlfYXBwZW5kX3BhaXIo ZnJvbnQsICJiYWNrZW5kLWlkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgR0NTUFJJTlRG KCIlZCIsIGRldmljZS0+YmFja2VuZF9kb21pZCkpOworICAgIGZsZXhhcnJheV9hcHBlbmRfcGFp cihmcm9udCwgInN0YXRlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgR0NTUFJJTlRGKCIl ZCIsIFhlbmJ1c1N0YXRlSW5pdGlhbGlzaW5nKSk7CisKKyAgICBpZiAoZHQtPnNldF94ZW5zdG9y ZV9jb25maWcpCisgICAgICAgIGR0LT5zZXRfeGVuc3RvcmVfY29uZmlnKGdjLCBkb21pZCwgdHlw ZSwgYmFjaywgZnJvbnQsIHJvX2Zyb250KTsKKworICAgIGZvciAoOzspIHsKKyAgICAgICAgcmMg PSBsaWJ4bF9feHNfdHJhbnNhY3Rpb25fc3RhcnQoZ2MsICZ0KTsKKyAgICAgICAgaWYgKHJjKSBn b3RvIG91dDsKKworICAgICAgICByYyA9IGxpYnhsX19kZXZpY2VfZXhpc3RzKGdjLCB0LCBkZXZp Y2UpOworICAgICAgICBpZiAocmMgPCAwKSBnb3RvIG91dDsKKyAgICAgICAgaWYgKHJjID09IDEp IHsgICAgICAgICAgICAgIC8qIGFscmVhZHkgZXhpc3RzIGluIHhlbnN0b3JlICovCisgICAgICAg ICAgICBMT0dEKEVSUk9SLCBkb21pZCwgImRldmljZSBhbHJlYWR5IGV4aXN0cyBpbiB4ZW5zdG9y ZSIpOworICAgICAgICAgICAgYW9kZXYtPmFjdGlvbiA9IExJQlhMX19ERVZJQ0VfQUNUSU9OX0FE RDsgLyogZm9yIGVycm9yIG1lc3NhZ2UgKi8KKyAgICAgICAgICAgIHJjID0gRVJST1JfREVWSUNF X0VYSVNUUzsKKyAgICAgICAgICAgIGdvdG8gb3V0OworICAgICAgICB9CisKKyAgICAgICAgaWYg KGFvZGV2LT51cGRhdGVfanNvbikgeworICAgICAgICAgICAgcmMgPSBsaWJ4bF9fc2V0X2RvbWFp bl9jb25maWd1cmF0aW9uKGdjLCBkb21pZCwgJmRfY29uZmlnKTsKKyAgICAgICAgICAgIGlmIChy YykgZ290byBvdXQ7CisgICAgICAgIH0KKworICAgICAgICBsaWJ4bF9fZGV2aWNlX2dlbmVyaWNf YWRkKGdjLCB0LCBkZXZpY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGli eGxfX3hzX2t2c19vZl9mbGV4YXJyYXkoZ2MsIGJhY2spLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxpYnhsX194c19rdnNfb2ZfZmxleGFycmF5KGdjLCBmcm9udCksCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX3hzX2t2c19vZl9mbGV4YXJyYXko Z2MsIHJvX2Zyb250KSk7CisKKyAgICAgICAgcmMgPSBsaWJ4bF9feHNfdHJhbnNhY3Rpb25fY29t bWl0KGdjLCAmdCk7CisgICAgICAgIGlmICghcmMpIGJyZWFrOworICAgICAgICBpZiAocmMgPCAw KSBnb3RvIG91dDsKKyAgICB9CisKKyAgICBhb2Rldi0+ZGV2ID0gZGV2aWNlOworICAgIGFvZGV2 LT5hY3Rpb24gPSBMSUJYTF9fREVWSUNFX0FDVElPTl9BREQ7CisgICAgbGlieGxfX3dhaXRfZGV2 aWNlX2Nvbm5lY3Rpb24oZWdjLCBhb2Rldik7CisKKyAgICByYyA9IDA7CisKK291dDoKKyAgICBs aWJ4bF9feHNfdHJhbnNhY3Rpb25fYWJvcnQoZ2MsICZ0KTsKKyAgICBpZiAobG9jaykgbGlieGxf X3VubG9ja19kb21haW5fdXNlcmRhdGEobG9jayk7CisgICAgZHQtPmRpc3Bvc2UodHlwZV9zYXZl ZCk7CisgICAgbGlieGxfZG9tYWluX2NvbmZpZ19kaXNwb3NlKCZkX2NvbmZpZyk7CisgICAgYW9k ZXYtPnJjID0gcmM7CisgICAgaWYgKHJjKSBhb2Rldi0+Y2FsbGJhY2soZWdjLCBhb2Rldik7Cisg ICAgcmV0dXJuOworfQorCitpbnQgbGlieGxfX2RldmljZV9hZGQobGlieGxfX2djICpnYywgdWlu dDMyX3QgZG9taWQsCisgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGxpYnhsX2Rl dmljZV90eXBlICpkdCwgdm9pZCAqdHlwZSkKK3sKKyAgICBmbGV4YXJyYXlfdCAqYmFjazsKKyAg ICBmbGV4YXJyYXlfdCAqZnJvbnQsICpyb19mcm9udDsKKyAgICBsaWJ4bF9fZGV2aWNlICpkZXZp Y2U7CisgICAgaW50IHJjOworCisgICAgaWYgKGR0LT5zZXRfZGVmYXVsdCkgeworICAgICAgICBy YyA9IGR0LT5zZXRfZGVmYXVsdChnYywgZG9taWQsIHR5cGUsIGZhbHNlKTsKKyAgICAgICAgaWYg KHJjKSBnb3RvIG91dDsKKyAgICB9CisKKyAgICBpZiAoZHQtPnVwZGF0ZV9kZXZpZCkgeworICAg ICAgICByYyA9IGR0LT51cGRhdGVfZGV2aWQoZ2MsIGRvbWlkLCB0eXBlKTsKKyAgICAgICAgaWYg KHJjKSBnb3RvIG91dDsKKyAgICB9CisKKyAgICBHQ05FVyhkZXZpY2UpOworICAgIHJjID0gZHQt PnRvX2RldmljZShnYywgZG9taWQsIHR5cGUsIGRldmljZSk7CisgICAgaWYgKHJjKSBnb3RvIG91 dDsKKworICAgIGJhY2sgPSBmbGV4YXJyYXlfbWFrZShnYywgMTYsIDEpOworICAgIGZyb250ID0g ZmxleGFycmF5X21ha2UoZ2MsIDE2LCAxKTsKKyAgICByb19mcm9udCA9IGZsZXhhcnJheV9tYWtl KGdjLCAxNiwgMSk7CisKKyAgICBmbGV4YXJyYXlfYXBwZW5kX3BhaXIoYmFjaywgImZyb250ZW5k LWlkIiwgR0NTUFJJTlRGKCIlZCIsIGRvbWlkKSk7CisgICAgZmxleGFycmF5X2FwcGVuZF9wYWly KGJhY2ssICJvbmxpbmUiLCAiMSIpOworICAgIGZsZXhhcnJheV9hcHBlbmRfcGFpcihiYWNrLCAi c3RhdGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICBHQ1NQUklOVEYoIiVkIiwgWGVuYnVz U3RhdGVJbml0aWFsaXNpbmcpKTsKKyAgICBmbGV4YXJyYXlfYXBwZW5kX3BhaXIoZnJvbnQsICJi YWNrZW5kLWlkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX3NwcmludGYoZ2Ms ICIlZCIsIGRldmljZS0+YmFja2VuZF9kb21pZCkpOworICAgIGZsZXhhcnJheV9hcHBlbmRfcGFp cihmcm9udCwgInN0YXRlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgR0NTUFJJTlRGKCIl ZCIsIFhlbmJ1c1N0YXRlSW5pdGlhbGlzaW5nKSk7CisKKyAgICBpZiAoZHQtPnNldF94ZW5zdG9y ZV9jb25maWcpCisgICAgICAgIGR0LT5zZXRfeGVuc3RvcmVfY29uZmlnKGdjLCBkb21pZCwgdHlw ZSwgYmFjaywgZnJvbnQsIHJvX2Zyb250KTsKKworICAgIHJjID0gbGlieGxfX2RldmljZV9nZW5l cmljX2FkZChnYywgWEJUX05VTEwsIGRldmljZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGlieGxfX3hzX2t2c19vZl9mbGV4YXJyYXkoZ2MsIGJhY2spLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9feHNfa3ZzX29mX2ZsZXhhcnJheShnYywg ZnJvbnQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9feHNfa3Zz X29mX2ZsZXhhcnJheShnYywgcm9fZnJvbnQpKTsKKyAgICBpZiAocmMpIGdvdG8gb3V0OworCisg ICAgcmMgPSAwOworCitvdXQ6CisgICAgcmV0dXJuIHJjOworfQorCiAvKgogICogTG9jYWwgdmFy aWFibGVzOgogICogbW9kZTogQwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfZGlzay5j IGIvdG9vbHMvbGlieGwvbGlieGxfZGlzay5jCmluZGV4IDYzZGU3NWMuLjkxYzc3YWQgMTAwNjQ0 Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX2Rpc2suYworKysgYi90b29scy9saWJ4bC9saWJ4bF9k aXNrLmMKQEAgLTE1Miw4ICsxNTIsOCBAQCB2b2lkIGxpYnhsX2V2ZGlzYWJsZV9kaXNrX2VqZWN0 KGxpYnhsX2N0eCAqY3R4LCBsaWJ4bF9ldmdlbl9kaXNrX2VqZWN0ICpldmcpIHsKICAgICBHQ19G UkVFOwogfQogCi1pbnQgbGlieGxfX2RldmljZV9kaXNrX3NldGRlZmF1bHQobGlieGxfX2djICpn YywgbGlieGxfZGV2aWNlX2Rpc2sgKmRpc2ssCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdWludDMyX3QgZG9taWQpCitpbnQgbGlieGxfX2RldmljZV9kaXNrX3NldGRlZmF1bHQo bGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGlieGxfZGV2aWNlX2Rpc2sgKmRpc2ssIGJvb2wgaG90cGx1ZykKIHsKICAgICBp bnQgcmM7CiAKQEAgLTI5Niw3ICsyOTYsNyBAQCBzdGF0aWMgdm9pZCBkZXZpY2VfZGlza19hZGQo bGlieGxfX2VnYyAqZWdjLCB1aW50MzJfdCBkb21pZCwKICAgICAgICAgICAgIH0KICAgICAgICAg fQogCi0gICAgICAgIHJjID0gbGlieGxfX2RldmljZV9kaXNrX3NldGRlZmF1bHQoZ2MsIGRpc2ss IGRvbWlkKTsKKyAgICAgICAgcmMgPSBsaWJ4bF9fZGV2aWNlX2Rpc2tfc2V0ZGVmYXVsdChnYywg ZG9taWQsIGRpc2ssIGFvZGV2LT51cGRhdGVfanNvbik7CiAgICAgICAgIGlmIChyYykgZ290byBv dXQ7CiAKICAgICAgICAgZnJvbnQgPSBmbGV4YXJyYXlfbWFrZShnYywgMTYsIDEpOwpAQCAtNzUx LDcgKzc1MSw3IEBAIGludCBsaWJ4bF9jZHJvbV9pbnNlcnQobGlieGxfY3R4ICpjdHgsIHVpbnQz Ml90IGRvbWlkLCBsaWJ4bF9kZXZpY2VfZGlzayAqZGlzaywKICAgICBkaXNrX2VtcHR5LnZkZXYg PSBsaWJ4bF9fc3RyZHVwKE5PR0MsIGRpc2stPnZkZXYpOwogICAgIGRpc2tfZW1wdHkucGRldl9w YXRoID0gbGlieGxfX3N0cmR1cChOT0dDLCAiIik7CiAgICAgZGlza19lbXB0eS5pc19jZHJvbSA9 IDE7Ci0gICAgbGlieGxfX2RldmljZV9kaXNrX3NldGRlZmF1bHQoZ2MsICZkaXNrX2VtcHR5LCBk b21pZCk7CisgICAgbGlieGxfX2RldmljZV9kaXNrX3NldGRlZmF1bHQoZ2MsIGRvbWlkLCAmZGlz a19lbXB0eSwgZmFsc2UpOwogCiAgICAgbGlieGxfZG9tYWluX3R5cGUgdHlwZSA9IGxpYnhsX19k b21haW5fdHlwZShnYywgZG9taWQpOwogICAgIGlmICh0eXBlID09IExJQlhMX0RPTUFJTl9UWVBF X0lOVkFMSUQpIHsKQEAgLTc5OCw3ICs3OTgsNyBAQCBpbnQgbGlieGxfY2Ryb21faW5zZXJ0KGxp YnhsX2N0eCAqY3R4LCB1aW50MzJfdCBkb21pZCwgbGlieGxfZGV2aWNlX2Rpc2sgKmRpc2ssCiAg ICAgICAgIGdvdG8gb3V0OwogICAgIH0KIAotICAgIHJjID0gbGlieGxfX2RldmljZV9kaXNrX3Nl dGRlZmF1bHQoZ2MsIGRpc2ssIGRvbWlkKTsKKyAgICByYyA9IGxpYnhsX19kZXZpY2VfZGlza19z ZXRkZWZhdWx0KGdjLCBkb21pZCwgZGlzaywgZmFsc2UpOwogICAgIGlmIChyYykgZ290byBvdXQ7 CiAKICAgICBpZiAoIWRpc2stPnBkZXZfcGF0aCkgewpAQCAtMTA3Myw3ICsxMDczLDggQEAgdm9p ZCBsaWJ4bF9fZGV2aWNlX2Rpc2tfbG9jYWxfaW5pdGlhdGVfYXR0YWNoKGxpYnhsX19lZ2MgKmVn YywKICAgICAgICAgICAgIGRpc2stPnNjcmlwdCA9IGxpYnhsX19zdHJkdXAoZ2MsIGluX2Rpc2st PnNjcmlwdCk7CiAgICAgICAgIGRpc2stPnZkZXYgPSBOVUxMOwogCi0gICAgICAgIHJjID0gbGli eGxfX2RldmljZV9kaXNrX3NldGRlZmF1bHQoZ2MsIGRpc2ssIExJQlhMX1RPT0xTVEFDS19ET01J RCk7CisgICAgICAgIHJjID0gbGlieGxfX2RldmljZV9kaXNrX3NldGRlZmF1bHQoZ2MsIExJQlhM X1RPT0xTVEFDS19ET01JRCwgZGlzaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBmYWxzZSk7CiAgICAgICAgIGlmIChyYykgZ290byBvdXQ7CiAKICAgICAgICAg bGlieGxfX3ByZXBhcmVfYW9fZGV2aWNlKGFvLCAmZGxzLT5hb2Rldik7CkBAIC0xMjQ0LDYgKzEy NDUsOCBAQCBzdGF0aWMgaW50IGxpYnhsX2RldmljZV9kaXNrX2RtX25lZWRlZCh2b2lkICplLCB1 bnNpZ25lZCBkb21pZCkKICAgICAgICAgICAgZWxlbS0+YmFja2VuZF9kb21pZCA9PSBkb21pZDsK IH0KIAorI2RlZmluZSBsaWJ4bF9fZGV2aWNlX2Rpc2tfdXBkYXRlX2RldmlkIE5VTEwKKwogREVG SU5FX0RFVklDRV9UWVBFX1NUUlVDVChkaXNrLAogICAgIC5tZXJnZSAgICAgICA9IGxpYnhsX2Rl dmljZV9kaXNrX21lcmdlLAogICAgIC5kbV9uZWVkZWQgICA9IGxpYnhsX2RldmljZV9kaXNrX2Rt X25lZWRlZCwKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2RtLmMgYi90b29scy9saWJ4 bC9saWJ4bF9kbS5jCmluZGV4IGUwZTZhOTkuLmVlMjA5MzAgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xp YnhsL2xpYnhsX2RtLmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfZG0uYwpAQCAtMTk3NSw3ICsx OTc1LDcgQEAgc3RhdGljIHZvaWQgc3Bhd25fc3R1Yl9sYXVuY2hfZG0obGlieGxfX2VnYyAqZWdj LAogICAgICAgICAgKiBjYWxsZWQgbGlieGxfZGV2aWNlX25pY19hZGQgYXQgdGhpcyBwb2ludCwg YnV0IHFlbXUgbmVlZHMKICAgICAgICAgICogdGhlIG5pYyBpbmZvcm1hdGlvbiB0byBiZSBjb21w bGV0ZS4KICAgICAgICAgICovCi0gICAgICAgIHJldCA9IGxpYnhsX19kZXZpY2VfbmljX3NldGRl ZmF1bHQoZ2MsICZkbV9jb25maWctPm5pY3NbaV0sIGRtX2RvbWlkLAorICAgICAgICByZXQgPSBs aWJ4bF9fZGV2aWNlX25pY19zZXRkZWZhdWx0KGdjLCBkbV9kb21pZCwgJmRtX2NvbmZpZy0+bmlj c1tpXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSk7 CiAgICAgICAgIGlmIChyZXQpCiAgICAgICAgICAgICBnb3RvIG91dDsKZGlmZiAtLWdpdCBhL3Rv b2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmggYi90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5o CmluZGV4IDcyNDc1MDkuLmM5OWVmM2IgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX2lu dGVybmFsLmgKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaApAQCAtMTI0MiwxNCAr MTI0MiwxMyBAQCBfaGlkZGVuIGludCBsaWJ4bF9fZG9tYWluX2NyZWF0ZV9pbmZvX3NldGRlZmF1 bHQobGlieGxfX2djICpnYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsaWJ4bF9kb21haW5fY3JlYXRlX2luZm8gKmNfaW5mbyk7CiBfaGlkZGVuIGludCBsaWJ4bF9f ZG9tYWluX2J1aWxkX2luZm9fc2V0ZGVmYXVsdChsaWJ4bF9fZ2MgKmdjLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX2RvbWFpbl9idWlsZF9pbmZvICpiX2lu Zm8pOwotX2hpZGRlbiBpbnQgbGlieGxfX2RldmljZV9kaXNrX3NldGRlZmF1bHQobGlieGxfX2dj ICpnYywKK19oaWRkZW4gaW50IGxpYnhsX19kZXZpY2VfZGlza19zZXRkZWZhdWx0KGxpYnhsX19n YyAqZ2MsIHVpbnQzMl90IGRvbWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGlieGxfZGV2aWNlX2Rpc2sgKmRpc2ssCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBkb21pZCk7Ci1faGlkZGVuIGludCBsaWJ4bF9f ZGV2aWNlX25pY19zZXRkZWZhdWx0KGxpYnhsX19nYyAqZ2MsIGxpYnhsX2RldmljZV9uaWMgKm5p YywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgZG9t aWQsIGJvb2wgaG90cGx1Zyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBib29sIGhvdHBsdWcpOworX2hpZGRlbiBpbnQgbGlieGxfX2RldmljZV9uaWNfc2V0ZGVm YXVsdChsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGV2aWNlX25pYyAqbmljLCBib29sIGhvdHBsdWcp OwogX2hpZGRlbiBpbnQgbGlieGxfX2RldmljZV92ZmJfc2V0ZGVmYXVsdChsaWJ4bF9fZ2MgKmdj LCBsaWJ4bF9kZXZpY2VfdmZiICp2ZmIpOwogX2hpZGRlbiBpbnQgbGlieGxfX2RldmljZV92a2Jf c2V0ZGVmYXVsdChsaWJ4bF9fZ2MgKmdjLCBsaWJ4bF9kZXZpY2VfdmtiICp2a2IpOwotX2hpZGRl biBpbnQgbGlieGxfX2RldmljZV9wY2lfc2V0ZGVmYXVsdChsaWJ4bF9fZ2MgKmdjLCBsaWJ4bF9k ZXZpY2VfcGNpICpwY2kpOwogX2hpZGRlbiB2b2lkIGxpYnhsX19yZG1fc2V0ZGVmYXVsdChsaWJ4 bF9fZ2MgKmdjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kb21h aW5fYnVpbGRfaW5mbyAqYl9pbmZvKTsKIF9oaWRkZW4gaW50IGxpYnhsX19kZXZpY2VfcDlfc2V0 ZGVmYXVsdChsaWJ4bF9fZ2MgKmdjLApAQCAtMzQ2Nyw2ICszNDY2LDE4IEBAIF9oaWRkZW4gdm9p ZCBsaWJ4bF9fYm9vdGxvYWRlcl9ydW4obGlieGxfX2VnYyosIGxpYnhsX19ib290bG9hZGVyX3N0 YXRlICpzdCk7CiAgICAgICAgIHJldHVybiBBT19JTlBST0dSRVNTOyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgfQogCisjZGVmaW5lIExJQlhMX0RFRklO RV9VUERBVEVfREVWSUQodHlwZSwgbmFtZSkgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg ICAgaW50IGxpYnhsX19kZXZpY2VfIyN0eXBlIyNfdXBkYXRlX2RldmlkKGxpYnhsX19nYyAqZ2Ms ICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVpbnQzMl90IGRvbWlkLCAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX2RldmljZV8jI3R5cGUgKnR5cGUpICBcCisgICAg eyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCisgICAgICAgIGlmICh0eXBlLT5kZXZpZCA9PSAtMSkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICB0eXBlLT5kZXZpZCA9 IGxpYnhsX19kZXZpY2VfbmV4dGlkKGdjLCBkb21pZCwgbmFtZSk7ICAgICAgICBcCisgICAgICAg IGlmICh0eXBlLT5kZXZpZCA8IDApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCisgICAgICAgICAgICByZXR1cm4gRVJST1JfRkFJTDsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHJldHVybiAwOyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfQorCiAj ZGVmaW5lIExJQlhMX0RFRklORV9ERVZJQ0VfUkVNT1ZFKHR5cGUpICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCiAgICAgTElCWExfREVGSU5FX0RFVklDRV9SRU1PVkVfRVhUKHR5cGUs IGdlbmVyaWMsIHJlbW92ZSwgMCkgICAgICAgICAgICBcCiAgICAgTElCWExfREVGSU5FX0RFVklD RV9SRU1PVkVfRVhUKHR5cGUsIGdlbmVyaWMsIGRlc3Ryb3ksIDEpCkBAIC0zNDg0LDExICszNDk1 LDE4IEBAIHN0cnVjdCBsaWJ4bF9kZXZpY2VfdHlwZSB7CiAgICAgdm9pZCAoKmFkZCkobGlieGxf X2VnYyAqLCBsaWJ4bF9fYW8gKiwgdWludDMyX3QsIGxpYnhsX2RvbWFpbl9jb25maWcgKiwKICAg ICAgICAgICAgICAgICBsaWJ4bF9fbXVsdGlkZXYgKik7CiAgICAgdm9pZCAqKCpsaXN0KShsaWJ4 bF9jdHggKiwgdWludDMyX3QsIGludCAqKTsKKyAgICBpbnQgKCpzZXRfZGVmYXVsdCkobGlieGxf X2djICosIHVpbnQzMl90LCB2b2lkICosIGJvb2wpOworICAgIGludCAoKnRvX2RldmljZSkobGli eGxfX2djICosIHVpbnQzMl90LCB2b2lkICosIGxpYnhsX19kZXZpY2UgKik7CisgICAgdm9pZCAo KmluaXQpKHZvaWQgKik7CisgICAgdm9pZCAoKmNvcHkpKGxpYnhsX2N0eCAqLCB2b2lkICosIHZv aWQgKik7CiAgICAgdm9pZCAoKmRpc3Bvc2UpKHZvaWQgKik7CiAgICAgaW50ICgqY29tcGFyZSko dm9pZCAqLCB2b2lkICopOwogICAgIHZvaWQgKCptZXJnZSkobGlieGxfY3R4ICosIHZvaWQgKiwg dm9pZCAqKTsKICAgICBpbnQgKCpkbV9uZWVkZWQpKHZvaWQgKiwgdW5zaWduZWQpOwogICAgIHZv aWQgKCp1cGRhdGVfY29uZmlnKShsaWJ4bF9fZ2MgKiwgdm9pZCAqLCB2b2lkICopOworICAgIGlu dCAoKnVwZGF0ZV9kZXZpZCkobGlieGxfX2djICosIHVpbnQzMl90LCB2b2lkICopOworICAgIGlu dCAoKnNldF94ZW5zdG9yZV9jb25maWcpKGxpYnhsX19nYyAqLCB1aW50MzJfdCwgdm9pZCAqLCBm bGV4YXJyYXlfdCAqLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXhhcnJheV90 ICosIGZsZXhhcnJheV90ICopOwogfTsKIAogI2RlZmluZSBERUZJTkVfREVWSUNFX1RZUEVfU1RS VUNUX1gobmFtZSwgc25hbWUsIC4uLikgICAgICAgICAgICAgICAgICAgICAgICAgIFwKQEAgLTM1 MDAsOSArMzUxOCwxOSBAQCBzdHJ1Y3QgbGlieGxfZGV2aWNlX3R5cGUgewogICAgICAgICAuYWRk ICAgICAgICAgICA9IGxpYnhsX19hZGRfICMjIG5hbWUgIyMgcywgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKICAgICAgICAgLmxpc3QgICAgICAgICAgPSAodm9pZCAqKCopKGxpYnhsX2N0 eCAqLCB1aW50MzJfdCwgaW50ICopKSAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAg ICAgICAgbGlieGxfZGV2aWNlXyAjIyBzbmFtZSAjIyBfbGlzdCwgICAgICAgICAgICAgICAgICAg ICAgXAorICAgICAgICAuc2V0X2RlZmF1bHQgICA9IChpbnQgKCopKGxpYnhsX19nYyAqLCB1aW50 MzJfdCwgdm9pZCAqLCBib29sKSlcCisgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX2Rl dmljZV8gIyMgc25hbWUgIyMgX3NldGRlZmF1bHQsICAgICAgICAgICAgICAgXAorICAgICAgICAu dG9fZGV2aWNlICAgICA9IChpbnQgKCopKGxpYnhsX19nYyAqLCB1aW50MzJfdCwgICAgICAgICAg ICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICos IGxpYnhsX19kZXZpY2UgKikpICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAg ICAgICAgICAgbGlieGxfX2RldmljZV9mcm9tXyAjIyBuYW1lLCAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorICAgICAgICAuaW5pdCAgICAgICAgICA9ICh2b2lkICgqKSh2b2lkICopKWxpYnhs X2RldmljZV8gIyMgc25hbWUgIyMgX2luaXQsICAgIFwKKyAgICAgICAgLmNvcHkgICAgICAgICAg PSAodm9pZCAoKikobGlieGxfY3R4ICosIHZvaWQgKiwgdm9pZCAqKSkgICAgICAgICAgICAgICBc CisgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGV2aWNlXyAjIyBzbmFtZSAjIyBfY29w eSwgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAuZGlzcG9zZSAgICAgICA9ICh2b2lk ICgqKSh2b2lkICopKWxpYnhsX2RldmljZV8gIyMgc25hbWUgIyMgX2Rpc3Bvc2UsIFwKICAgICAg ICAgLmNvbXBhcmUgICAgICAgPSAoaW50ICgqKSh2b2lkICosIHZvaWQgKikpICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGV2aWNl XyAjIyBzbmFtZSAjIyBfY29tcGFyZSwgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAudXBk YXRlX2RldmlkICA9IChpbnQgKCopKGxpYnhsX19nYyAqLCB1aW50MzJfdCwgdm9pZCAqKSkgICAg ICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fZGV2aWNlXyAjIyBz bmFtZSAjIyBfdXBkYXRlX2RldmlkLCAgICAgICAgICAgICBcCiAgICAgICAgIF9fVkFfQVJHU19f ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAogICAgIH0KIApAQCAtNDM1MCw2ICs0Mzc4LDEzIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBs aWJ4bF9fYWNwaV9kZWZib29sX3ZhbChjb25zdCBsaWJ4bF9kb21haW5fYnVpbGRfaW5mbyAqYl9p bmZvCiAgICAgcmV0dXJuIGxpYnhsX2RlZmJvb2xfdmFsKGJfaW5mby0+YWNwaSkgJiYKICAgICAg ICAgICAgbGlieGxfZGVmYm9vbF92YWwoYl9pbmZvLT51Lmh2bS5hY3BpKTsKIH0KKwordm9pZCBs aWJ4bF9fZGV2aWNlX2FkZF9hc3luYyhsaWJ4bF9fZWdjICplZ2MsIHVpbnQzMl90IGRvbWlkLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgbGlieGxfZGV2aWNlX3R5 cGUgKmR0LCB2b2lkICp0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9f YW9fZGV2aWNlICphb2Rldik7CitpbnQgbGlieGxfX2RldmljZV9hZGQobGlieGxfX2djICpnYywg dWludDMyX3QgZG9taWQsCisgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGxpYnhs X2RldmljZV90eXBlICpkdCwgdm9pZCAqdHlwZSk7CisKICNlbmRpZgogCiAvKgpkaWZmIC0tZ2l0 IGEvdG9vbHMvbGlieGwvbGlieGxfbmljLmMgYi90b29scy9saWJ4bC9saWJ4bF9uaWMuYwppbmRl eCA0YjZlOGMwLi5lNzc5MmJhIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9uaWMuYwor KysgYi90b29scy9saWJ4bC9saWJ4bF9uaWMuYwpAQCAtNTIsOCArNTIsOCBAQCBpbnQgbGlieGxf bWFjX3RvX2RldmljZV9uaWMobGlieGxfY3R4ICpjdHgsIHVpbnQzMl90IGRvbWlkLAogICAgIHJl dHVybiByYzsKIH0KIAotaW50IGxpYnhsX19kZXZpY2VfbmljX3NldGRlZmF1bHQobGlieGxfX2dj ICpnYywgbGlieGxfZGV2aWNlX25pYyAqbmljLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdWludDMyX3QgZG9taWQsIGJvb2wgaG90cGx1ZykKK2ludCBsaWJ4bF9fZGV2aWNlX25p Y19zZXRkZWZhdWx0KGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGV2aWNlX25pYyAqbmljLCBib29sIGhvdHBsdWcp CiB7CiAgICAgaW50IHJjOwogCkBAIC0xMzgsNiArMTM4LDggQEAgc3RhdGljIHZvaWQgbGlieGxf X3VwZGF0ZV9jb25maWdfbmljKGxpYnhsX19nYyAqZ2MsIGxpYnhsX2RldmljZV9uaWMgKmRzdCwK ICAgICBsaWJ4bF9tYWNfY29weShDVFgsICZkc3QtPm1hYywgJnNyYy0+bWFjKTsKIH0KIAorc3Rh dGljIExJQlhMX0RFRklORV9VUERBVEVfREVWSUQobmljLCAidmlmIikKKwogc3RhdGljIHZvaWQg bGlieGxfX2RldmljZV9uaWNfYWRkKGxpYnhsX19lZ2MgKmVnYywgdWludDMyX3QgZG9taWQsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGV2aWNlX25pYyAqbmljLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19hb19kZXZpY2UgKmFvZGV2 KQpAQCAtMTU2LDE4ICsxNTgsMTQgQEAgc3RhdGljIHZvaWQgbGlieGxfX2RldmljZV9uaWNfYWRk KGxpYnhsX19lZ2MgKmVnYywgdWludDMyX3QgZG9taWQsCiAgICAgbGlieGxfZGV2aWNlX25pY19p bml0KCZuaWNfc2F2ZWQpOwogICAgIGxpYnhsX2RldmljZV9uaWNfY29weShDVFgsICZuaWNfc2F2 ZWQsIG5pYyk7CiAKLSAgICByYyA9IGxpYnhsX19kZXZpY2VfbmljX3NldGRlZmF1bHQoZ2MsIG5p YywgZG9taWQsIGFvZGV2LT51cGRhdGVfanNvbik7CisgICAgcmMgPSBsaWJ4bF9fZGV2aWNlX25p Y19zZXRkZWZhdWx0KGdjLCBkb21pZCwgbmljLCBhb2Rldi0+dXBkYXRlX2pzb24pOwogICAgIGlm IChyYykgZ290byBvdXQ7CiAKICAgICBmcm9udCA9IGZsZXhhcnJheV9tYWtlKGdjLCAxNiwgMSk7 CiAgICAgYmFjayA9IGZsZXhhcnJheV9tYWtlKGdjLCAxOCwgMSk7CiAKLSAgICBpZiAobmljLT5k ZXZpZCA9PSAtMSkgewotICAgICAgICBpZiAoKG5pYy0+ZGV2aWQgPSBsaWJ4bF9fZGV2aWNlX25l eHRpZChnYywgZG9taWQsICJ2aWYiKSkgPCAwKSB7Ci0gICAgICAgICAgICByYyA9IEVSUk9SX0ZB SUw7Ci0gICAgICAgICAgICBnb3RvIG91dDsKLSAgICAgICAgfQotICAgIH0KKyAgICByYyA9IGxp YnhsX19kZXZpY2VfbmljX3VwZGF0ZV9kZXZpZChnYywgZG9taWQsIG5pYyk7CisgICAgaWYgKHJj KSBnb3RvIG91dDsKIAogICAgIGxpYnhsX191cGRhdGVfY29uZmlnX25pYyhnYywgJm5pY19zYXZl ZCwgbmljKTsKIApAQCAtNjQ2LDcgKzY0NCw3IEBAIGludCBsaWJ4bF9fZGV2aWNlX25pY19zZXRf ZGV2aWRzKGxpYnhsX19nYyAqZ2MsIGxpYnhsX2RvbWFpbl9jb25maWcgKmRfY29uZmlnLAogICAg ICAgICAgKiBjYWxsZWQgbGlieGxfZGV2aWNlX25pY19hZGQgd2hlbiBkb21jcmVhdGVfbGF1bmNo X2RtIGdldHMgY2FsbGVkLAogICAgICAgICAgKiBidXQgcWVtdSBuZWVkcyB0aGUgbmljIGluZm9y bWF0aW9uIHRvIGJlIGNvbXBsZXRlLgogICAgICAgICAgKi8KLSAgICAgICAgcmV0ID0gbGlieGxf X2RldmljZV9uaWNfc2V0ZGVmYXVsdChnYywgJmRfY29uZmlnLT5uaWNzW2ldLCBkb21pZCwKKyAg ICAgICAgcmV0ID0gbGlieGxfX2RldmljZV9uaWNfc2V0ZGVmYXVsdChnYywgZG9taWQsICZkX2Nv bmZpZy0+bmljc1tpXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBmYWxzZSk7CiAgICAgICAgIGlmIChyZXQpIHsKICAgICAgICAgICAgIExPR0QoRVJST1IsIGRv bWlkLCAiVW5hYmxlIHRvIHNldCBuaWMgZGVmYXVsdHMgZm9yIG5pYyAlZCIsIGkpOwpkaWZmIC0t Z2l0IGEvdG9vbHMvbGlieGwvbGlieGxfcGNpLmMgYi90b29scy9saWJ4bC9saWJ4bF9wY2kuYwpp bmRleCA2NWFkNWU1Li43YTJkNDJmIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9wY2ku YworKysgYi90b29scy9saWJ4bC9saWJ4bF9wY2kuYwpAQCAtMTE0NCw3ICsxMTQ0LDggQEAgc3Rh dGljIGludCBsaWJ4bF9fZGV2aWNlX3BjaV9yZXNldChsaWJ4bF9fZ2MgKmdjLCB1bnNpZ25lZCBp bnQgZG9tYWluLCB1bnNpZ25lZAogICAgIHJldHVybiAtMTsKIH0KIAotaW50IGxpYnhsX19kZXZp Y2VfcGNpX3NldGRlZmF1bHQobGlieGxfX2djICpnYywgbGlieGxfZGV2aWNlX3BjaSAqcGNpKQor c3RhdGljIGludCBsaWJ4bF9fZGV2aWNlX3BjaV9zZXRkZWZhdWx0KGxpYnhsX19nYyAqZ2MsIHVp bnQzMl90IGRvbWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxp YnhsX2RldmljZV9wY2kgKnBjaSwgYm9vbCBob3RwbHVnKQogewogICAgIC8qIFdlJ2QgbGlrZSB0 byBmb3JjZSByZXNlcnZlIHJkbSBzcGVjaWZpYyB0byBhIGRldmljZSBieSBkZWZhdWx0LiovCiAg ICAgaWYgKHBjaS0+cmRtX3BvbGljeSA9PSBMSUJYTF9SRE1fUkVTRVJWRV9QT0xJQ1lfSU5WQUxJ RCkKQEAgLTEyMDAsNyArMTIwMSw3IEBAIGludCBsaWJ4bF9fZGV2aWNlX3BjaV9hZGQobGlieGxf X2djICpnYywgdWludDMyX3QgZG9taWQsIGxpYnhsX2RldmljZV9wY2kgKnBjaWRlCiAgICAgICAg IH0KICAgICB9CiAKLSAgICByYyA9IGxpYnhsX19kZXZpY2VfcGNpX3NldGRlZmF1bHQoZ2MsIHBj aWRldik7CisgICAgcmMgPSBsaWJ4bF9fZGV2aWNlX3BjaV9zZXRkZWZhdWx0KGdjLCBkb21pZCwg cGNpZGV2LCBmYWxzZSk7CiAgICAgaWYgKHJjKSBnb3RvIG91dDsKIAogICAgIGlmIChwY2lkZXYt PnNlaXplICYmICFwY2liYWNrX2Rldl9pc19hc3NpZ25lZChnYywgcGNpZGV2KSkgewpAQCAtMTY3 OCw2ICsxNjc5LDggQEAgc3RhdGljIGludCBsaWJ4bF9kZXZpY2VfcGNpX2NvbXBhcmUobGlieGxf ZGV2aWNlX3BjaSAqZDEsCiAgICAgcmV0dXJuIENPTVBBUkVfUENJKGQxLCBkMik7CiB9CiAKKyNk ZWZpbmUgbGlieGxfX2RldmljZV9wY2lfdXBkYXRlX2RldmlkIE5VTEwKKwogREVGSU5FX0RFVklD RV9UWVBFX1NUUlVDVF9YKHBjaWRldiwgcGNpKTsKIAogLyoKZGlmZiAtLWdpdCBhL3Rvb2xzL2xp YnhsL2xpYnhsX3VzYi5jIGIvdG9vbHMvbGlieGwvbGlieGxfdXNiLmMKaW5kZXggZDg5NDhkNS4u N2Y3OGY0ZSAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfdXNiLmMKKysrIGIvdG9vbHMv bGlieGwvbGlieGxfdXNiLmMKQEAgLTM5LDcgKzM5LDggQEAgc3RhdGljIGludCB1c2JiYWNrX2lz X2xvYWRlZChsaWJ4bF9fZ2MgKmdjKQogfQogCiBzdGF0aWMgaW50IGxpYnhsX19kZXZpY2VfdXNi Y3RybF9zZXRkZWZhdWx0KGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kZXZpY2VfdXNiY3RybCAq dXNiY3RybCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGli eGxfZGV2aWNlX3VzYmN0cmwgKnVzYmN0cmwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGJvb2wgaG90cGx1ZykKIHsKICAgICBpbnQgcmM7CiAgICAgbGlieGxf ZG9tYWluX3R5cGUgZG9tdHlwZSA9IGxpYnhsX19kb21haW5fdHlwZShnYywgZG9taWQpOwpAQCAt NDI5LDYgKzQzMCw4IEBAIHN0YXRpYyBpbnQgbGlieGxfX2RldmljZV91c2JkZXZfZGVsX2h2bShs aWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwKICAgICByZXR1cm4gbGlieGxfX3FtcF9ydW5f Y29tbWFuZF9mbGV4YXJyYXkoZ2MsIGRvbWlkLCAiZGV2aWNlX2RlbCIsIHFtcF9hcmdzKTsKIH0K IAorc3RhdGljIExJQlhMX0RFRklORV9VUERBVEVfREVWSUQodXNiY3RybCwgInZ1c2IiKQorCiAv KiBBTyBvcGVyYXRpb24gdG8gYWRkIGEgdXNiIGNvbnRyb2xsZXIuCiAgKgogICogR2VuZXJhbGx5 LCBpdCBkb2VzOgpAQCAtNDQ5LDE2ICs0NTIsMTIgQEAgc3RhdGljIHZvaWQgbGlieGxfX2Rldmlj ZV91c2JjdHJsX2FkZChsaWJ4bF9fZWdjICplZ2MsIHVpbnQzMl90IGRvbWlkLAogICAgIGxpYnhs X19kZXZpY2UgKmRldmljZTsKICAgICBpbnQgcmM7CiAKLSAgICByYyA9IGxpYnhsX19kZXZpY2Vf dXNiY3RybF9zZXRkZWZhdWx0KGdjLCBkb21pZCwgdXNiY3RybCk7CisgICAgcmMgPSBsaWJ4bF9f ZGV2aWNlX3VzYmN0cmxfc2V0ZGVmYXVsdChnYywgZG9taWQsIHVzYmN0cmwsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhb2Rldi0+dXBkYXRlX2pzb24pOwogICAg IGlmIChyYyA8IDApIGdvdG8gb3V0OwogCi0gICAgaWYgKHVzYmN0cmwtPmRldmlkID09IC0xKSB7 Ci0gICAgICAgIHVzYmN0cmwtPmRldmlkID0gbGlieGxfX2RldmljZV9uZXh0aWQoZ2MsIGRvbWlk LCAidnVzYiIpOwotICAgICAgICBpZiAodXNiY3RybC0+ZGV2aWQgPCAwKSB7Ci0gICAgICAgICAg ICByYyA9IEVSUk9SX0ZBSUw7Ci0gICAgICAgICAgICBnb3RvIG91dDsKLSAgICAgICAgfQotICAg IH0KKyAgICByYyA9IGxpYnhsX19kZXZpY2VfdXNiY3RybF91cGRhdGVfZGV2aWQoZ2MsIGRvbWlk LCB1c2JjdHJsKTsKKyAgICBpZiAocmMpIGdvdG8gb3V0OwogCiAgICAgcmMgPSBsaWJ4bF9fZGV2 aWNlX3VzYmN0cmxfYWRkX3hlbnN0b3JlKGdjLCBkb21pZCwgdXNiY3RybCwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW9kZXYtPnVwZGF0ZV9qc29uKTsKQEAg LTEwNzksMTYgKzEwNzgsMTIgQEAgc3RhdGljIGludCBsaWJ4bF9fZGV2aWNlX3VzYmRldl9zZXRk ZWZhdWx0KGxpYnhsX19nYyAqZ2MsCiAKICAgICAgICAgICAgIEdDTkVXKHVzYmN0cmwpOwogICAg ICAgICAgICAgbGlieGxfZGV2aWNlX3VzYmN0cmxfaW5pdCh1c2JjdHJsKTsKLSAgICAgICAgICAg IHJjID0gbGlieGxfX2RldmljZV91c2JjdHJsX3NldGRlZmF1bHQoZ2MsIGRvbWlkLCB1c2JjdHJs KTsKKyAgICAgICAgICAgIHJjID0gbGlieGxfX2RldmljZV91c2JjdHJsX3NldGRlZmF1bHQoZ2Ms IGRvbWlkLCB1c2JjdHJsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1cGRhdGVfanNvbik7CiAgICAgICAgICAgICBpZiAocmMgPCAwKSBnb3RvIG91 dDsKIAotICAgICAgICAgICAgaWYgKHVzYmN0cmwtPmRldmlkID09IC0xKSB7Ci0gICAgICAgICAg ICAgICAgdXNiY3RybC0+ZGV2aWQgPSBsaWJ4bF9fZGV2aWNlX25leHRpZChnYywgZG9taWQsICJ2 dXNiIik7Ci0gICAgICAgICAgICAgICAgaWYgKHVzYmN0cmwtPmRldmlkIDwgMCkgewotICAgICAg ICAgICAgICAgICAgICByYyA9IEVSUk9SX0ZBSUw7Ci0gICAgICAgICAgICAgICAgICAgIGdvdG8g b3V0OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJjID0g bGlieGxfX2RldmljZV91c2JjdHJsX3VwZGF0ZV9kZXZpZChnYywgZG9taWQsIHVzYmN0cmwpOwor ICAgICAgICAgICAgaWYgKHJjKSBnb3RvIG91dDsKIAogICAgICAgICAgICAgcmMgPSBsaWJ4bF9f ZGV2aWNlX3VzYmN0cmxfYWRkX3hlbnN0b3JlKGdjLCBkb21pZCwgdXNiY3RybCwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVfanNvbik7 CkBAIC0xOTY1LDkgKzE5NjAsMTUgQEAgdm9pZCBsaWJ4bF9kZXZpY2VfdXNiZGV2X2xpc3RfZnJl ZShsaWJ4bF9kZXZpY2VfdXNiZGV2ICpsaXN0LCBpbnQgbnIpCiAgICBmcmVlKGxpc3QpOwogfQog CisjZGVmaW5lIGxpYnhsX19kZXZpY2VfdXNiY3RybF91cGRhdGVfZGV2aWQgTlVMTAorCiBERUZJ TkVfREVWSUNFX1RZUEVfU1RSVUNUKHVzYmN0cmwsCiAgICAgLmRtX25lZWRlZCA9IGxpYnhsX2Rl dmljZV91c2JjdHJsX2RtX25lZWRlZAogKTsKKworI2RlZmluZSBsaWJ4bF9fZGV2aWNlX2Zyb21f dXNiZGV2IE5VTEwKKyNkZWZpbmUgbGlieGxfX2RldmljZV91c2JkZXZfdXBkYXRlX2RldmlkIE5V TEwKKwogREVGSU5FX0RFVklDRV9UWVBFX1NUUlVDVCh1c2JkZXYpOwogCiAvKgpkaWZmIC0tZ2l0 IGEvdG9vbHMvbGlieGwvbGlieGxfdnRwbS5jIGIvdG9vbHMvbGlieGwvbGlieGxfdnRwbS5jCmlu ZGV4IDllZThjY2UuLjNlY2EzOGUgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX3Z0cG0u YworKysgYi90b29scy9saWJ4bC9saWJ4bF92dHBtLmMKQEAgLTE3LDcgKzE3LDggQEAKIAogI2lu Y2x1ZGUgImxpYnhsX2ludGVybmFsLmgiCiAKLXN0YXRpYyBpbnQgbGlieGxfX2RldmljZV92dHBt X3NldGRlZmF1bHQobGlieGxfX2djICpnYywgbGlieGxfZGV2aWNlX3Z0cG0gKnZ0cG0pCitzdGF0 aWMgaW50IGxpYnhsX19kZXZpY2VfdnRwbV9zZXRkZWZhdWx0KGxpYnhsX19nYyAqZ2MsIHVpbnQz Ml90IGRvbWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4 bF9kZXZpY2VfdnRwbSAqdnRwbSwgYm9vbCBob3RwbHVnKQogewogICAgIGludCByYzsKICAgICBp ZiAobGlieGxfdXVpZF9pc19uaWwoJnZ0cG0tPnV1aWQpKSB7CkBAIC00OCw2ICs0OSw4IEBAIHN0 YXRpYyB2b2lkIGxpYnhsX191cGRhdGVfY29uZmlnX3Z0cG0obGlieGxfX2djICpnYywgbGlieGxf ZGV2aWNlX3Z0cG0gKmRzdCwKICAgICBsaWJ4bF91dWlkX2NvcHkoQ1RYLCAmZHN0LT51dWlkLCAm c3JjLT51dWlkKTsKIH0KIAorc3RhdGljIExJQlhMX0RFRklORV9VUERBVEVfREVWSUQodnRwbSwg InZ0cG0iKQorCiBzdGF0aWMgdm9pZCBsaWJ4bF9fZGV2aWNlX3Z0cG1fYWRkKGxpYnhsX19lZ2Mg KmVnYywgdWludDMyX3QgZG9taWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxpYnhsX2RldmljZV92dHBtICp2dHBtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsaWJ4bF9fYW9fZGV2aWNlICphb2RldikKQEAgLTY2LDE4ICs2OSwxNCBAQCBzdGF0aWMg dm9pZCBsaWJ4bF9fZGV2aWNlX3Z0cG1fYWRkKGxpYnhsX19lZ2MgKmVnYywgdWludDMyX3QgZG9t aWQsCiAgICAgbGlieGxfZGV2aWNlX3Z0cG1faW5pdCgmdnRwbV9zYXZlZCk7CiAgICAgbGlieGxf ZGV2aWNlX3Z0cG1fY29weShDVFgsICZ2dHBtX3NhdmVkLCB2dHBtKTsKIAotICAgIHJjID0gbGli eGxfX2RldmljZV92dHBtX3NldGRlZmF1bHQoZ2MsIHZ0cG0pOworICAgIHJjID0gbGlieGxfX2Rl dmljZV92dHBtX3NldGRlZmF1bHQoZ2MsIGRvbWlkLCB2dHBtLCBhb2Rldi0+dXBkYXRlX2pzb24p OwogICAgIGlmIChyYykgZ290byBvdXQ7CiAKICAgICBmcm9udCA9IGZsZXhhcnJheV9tYWtlKGdj LCAxNiwgMSk7CiAgICAgYmFjayA9IGZsZXhhcnJheV9tYWtlKGdjLCAxNiwgMSk7CiAKLSAgICBp ZiAodnRwbS0+ZGV2aWQgPT0gLTEpIHsKLSAgICAgICAgaWYgKCh2dHBtLT5kZXZpZCA9IGxpYnhs X19kZXZpY2VfbmV4dGlkKGdjLCBkb21pZCwgInZ0cG0iKSkgPCAwKSB7Ci0gICAgICAgICAgICBy YyA9IEVSUk9SX0ZBSUw7Ci0gICAgICAgICAgICBnb3RvIG91dDsKLSAgICAgICAgfQotICAgIH0K KyAgICByYyA9IGxpYnhsX19kZXZpY2VfdnRwbV91cGRhdGVfZGV2aWQoZ2MsIGRvbWlkLCB2dHBt KTsKKyAgICBpZiAocmMpIGdvdG8gb3V0OwogCiAgICAgbGlieGxfX3VwZGF0ZV9jb25maWdfdnRw bShnYywgJnZ0cG1fc2F2ZWQsIHZ0cG0pOwogCi0tIAoyLjcuNAoKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVu LWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=