From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maran Wilson Subject: [PATCH v4 2/4] libxl/x86: Build e820 map earlier for HVM/PVH guests Date: Tue, 20 Mar 2018 09:50:50 -0700 Message-ID: <1521564652-31992-1-git-send-email-maran.wilson@oracle.com> References: <1521564536-31880-1-git-send-email-maran.wilson@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1521564536-31880-1-git-send-email-maran.wilson@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: wei.liu2@citrix.com, boris.ostrovsky@oracle.com, roger.pau@citrix.com, ian.jackson@eu.citrix.com, maran.wilson@oracle.com List-Id: xen-devel@lists.xenproject.org RnJvbTogQm9yaXMgT3N0cm92c2t5IDxib3Jpcy5vc3Ryb3Zza3lAb3JhY2xlLmNvbT4KClNpbmNl IGh2bV9zdGFydF9pbmZvIGhhcyBub3cgYmVlbiBleHBhbmRlZCB0byBpbmNsdWRlIG1lbW9yeSBt YXAgKGkuZS4KZTgyMCkgd2UgbmVlZCB0byBrbm93IHNpemUgb2YgdGhpcyBtYXAgYnkgdGhlIHRp bWUgd2UgY3JlYXRlCmRvbS0+c3RhcnRfaW5mb19zZWcgaW4gYWxsb2NfbWFnaWNfcGFnZXNfaHZt KCkuCgpUbyBkbyBzbyB3ZSBoYXZlIHRvIGNhbGwgbGlieGxfX2FyY2hfZG9tYWluX2NvbnN0cnVj dF9tZW1tYXAoKSBlYXJsaWVyLApiZWZvcmUgeGNfZG9tX2J1aWxkX2ltYWdlKCkuIEFuZCBzaW5j ZSBsaWJ4bF9fYXJjaF9kb21haW5fY29uc3RydWN0X21lbW1hcCgpCmlzIG9ubHkgdXNlZCBieSBm b3IgeDg2IHdlIGNhbiBtYWtlIHRoaXMgY2FsbCBmcm9tIHg4NidzCmxpYnhsX19hcmNoX2RvbWFp bl9maW5hbGlzZV9od19kZXNjcmlwdGlvbigpLCBhdCB0aGUgc2FtZSB0aW1lIHJlbW92aW5nCml0 cyBOT1AgZGVmaW5pdGlvbiBmcm9tIEFSTSBjb2RlIGFuZCByZW5hbWluZyBhbmQgbWFraW5nIGl0 IHN0YXRpYyBpbgpsaWJ4bF94ODYuYwoKU2lnbmVkLW9mZi1ieTogQm9yaXMgT3N0cm92c2t5IDxi b3Jpcy5vc3Ryb3Zza3lAb3JhY2xlLmNvbT4KLS0tCiB0b29scy9saWJ4bC9saWJ4bF9hcmNoLmgg ICAgIHwgIDkgKystLS0tLS0KIHRvb2xzL2xpYnhsL2xpYnhsX2FybS5jICAgICAgfCAxMCArKy0t LS0tLS0KIHRvb2xzL2xpYnhsL2xpYnhsX2NyZWF0ZS5jICAgfCAgMiArLQogdG9vbHMvbGlieGwv bGlieGxfZG9tLmMgICAgICB8IDE2ICsrKysrKy0tLS0tLS0tLQogdG9vbHMvbGlieGwvbGlieGxf aW50ZXJuYWwuaCB8ICAxICsKIHRvb2xzL2xpYnhsL2xpYnhsX3g4Ni5jICAgICAgfCA0OSArKysr KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQogNiBmaWxlcyBjaGFuZ2Vk LCA0MiBpbnNlcnRpb25zKCspLCA0NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90b29scy9s aWJ4bC9saWJ4bF9hcmNoLmggYi90b29scy9saWJ4bC9saWJ4bF9hcmNoLmgKaW5kZXggNzg0ZWM3 Zi4uOWJlMDZmYSAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfYXJjaC5oCisrKyBiL3Rv b2xzL2xpYnhsL2xpYnhsX2FyY2guaApAQCAtNDEsNiArNDEsOCBAQCBpbnQgbGlieGxfX2FyY2hf ZG9tYWluX2luaXRfaHdfZGVzY3JpcHRpb24obGlieGxfX2djICpnYywKIC8qIGZpbmFsaXplIGFy Y2ggc3BlY2lmaWMgaGFyZHdhcmUgZGVzY3JpcHRpb24uICovCiBfaGlkZGVuCiBpbnQgbGlieGxf X2FyY2hfZG9tYWluX2ZpbmFsaXNlX2h3X2Rlc2NyaXB0aW9uKGxpYnhsX19nYyAqZ2MsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGRvbWlkLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kb21haW5fY29uZmlnICpkX2Nv bmZpZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZG9tYWlu X2J1aWxkX2luZm8gKmluZm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCB4Y19kb21faW1hZ2UgKmRvbSk7CiAKQEAgLTYyLDEzICs2NCw2IEBAIGludCBsaWJ4 bF9fYXJjaF92bnVtYV9idWlsZF92bWVtcmFuZ2UobGlieGxfX2djICpnYywKIF9oaWRkZW4KIGlu dCBsaWJ4bF9fYXJjaF9kb21haW5fbWFwX2lycShsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21p ZCwgaW50IGlycSk7CiAKLS8qIGFyY2ggc3BlY2lmaWMgdG8gY29uc3RydWN0IG1lbW9yeSBtYXBw aW5nIGZ1bmN0aW9uICovCi1faGlkZGVuCi1pbnQgbGlieGxfX2FyY2hfZG9tYWluX2NvbnN0cnVj dF9tZW1tYXAobGlieGxfX2djICpnYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsaWJ4bF9kb21haW5fY29uZmlnICpkX2NvbmZpZywKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBkb21pZCwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgeGNfZG9tX2ltYWdlICpkb20pOwotCiBfaGlk ZGVuCiB2b2lkIGxpYnhsX19hcmNoX2RvbWFpbl9idWlsZF9pbmZvX2FjcGlfc2V0ZGVmYXVsdCgK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kb21haW5fYnVp bGRfaW5mbyAqYl9pbmZvKTsKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2FybS5jIGIv dG9vbHMvbGlieGwvbGlieGxfYXJtLmMKaW5kZXggM2U0NjU1NC4uMTNhODM0NyAxMDA2NDQKLS0t IGEvdG9vbHMvbGlieGwvbGlieGxfYXJtLmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfYXJtLmMK QEAgLTEwNDYsNiArMTA0Niw4IEBAIHN0YXRpYyB2b2lkIGZpbmFsaXNlX29uZV9ub2RlKGxpYnhs X19nYyAqZ2MsIHZvaWQgKmZkdCwgY29uc3QgY2hhciAqdW5hbWUsCiB9CiAKIGludCBsaWJ4bF9f YXJjaF9kb21haW5fZmluYWxpc2VfaHdfZGVzY3JpcHRpb24obGlieGxfX2djICpnYywKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgZG9taWQs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX2Rv bWFpbl9jb25maWcgKmRfY29uZmlnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsaWJ4bF9kb21haW5fYnVpbGRfaW5mbyAqaW5mbywKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHhjX2RvbV9pbWFnZSAq ZG9tKQogewpAQCAtMTE0MCwxNCArMTE0Miw2IEBAIGludCBsaWJ4bF9fYXJjaF9kb21haW5fbWFw X2lycShsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwgaW50IGlycSkKICAgICByZXR1cm4g eGNfZG9tYWluX2JpbmRfcHRfc3BpX2lycShDVFgtPnhjaCwgZG9taWQsIGlycSwgaXJxKTsKIH0K IAotaW50IGxpYnhsX19hcmNoX2RvbWFpbl9jb25zdHJ1Y3RfbWVtbWFwKGxpYnhsX19nYyAqZ2Ms Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZG9tYWluX2Nv bmZpZyAqZF9jb25maWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dWludDMyX3QgZG9taWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3RydWN0IHhjX2RvbV9pbWFnZSAqZG9tKQotewotICAgIHJldHVybiAwOwotfQotCiB2b2lkIGxp YnhsX19hcmNoX2RvbWFpbl9idWlsZF9pbmZvX2FjcGlfc2V0ZGVmYXVsdCgKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kb21haW5fYnVpbGRfaW5mbyAqYl9p bmZvKQogewpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfY3JlYXRlLmMgYi90b29scy9s aWJ4bC9saWJ4bF9jcmVhdGUuYwppbmRleCBjNDk4MTM1Li41ZGNlM2RmIDEwMDY0NAotLS0gYS90 b29scy9saWJ4bC9saWJ4bF9jcmVhdGUuYworKysgYi90b29scy9saWJ4bC9saWJ4bF9jcmVhdGUu YwpAQCAtNDg4LDcgKzQ4OCw3IEBAIGludCBsaWJ4bF9fZG9tYWluX2J1aWxkKGxpYnhsX19nYyAq Z2MsCiAKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBMSUJYTF9ET01BSU5fVFlQRV9QVjoKLSAg ICAgICAgcmV0ID0gbGlieGxfX2J1aWxkX3B2KGdjLCBkb21pZCwgaW5mbywgc3RhdGUpOworICAg ICAgICByZXQgPSBsaWJ4bF9fYnVpbGRfcHYoZ2MsIGRvbWlkLCBkX2NvbmZpZywgaW5mbywgc3Rh dGUpOwogICAgICAgICBpZiAocmV0KQogICAgICAgICAgICAgZ290byBvdXQ7CiAKZGlmZiAtLWdp dCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2RvbS5jIGIvdG9vbHMvbGlieGwvbGlieGxfZG9tLmMKaW5k ZXggMmUyOWI1Mi4uZTgzYWViOSAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfZG9tLmMK KysrIGIvdG9vbHMvbGlieGwvbGlieGxfZG9tLmMKQEAgLTY5OCw2ICs2OTgsNyBAQCBzdGF0aWMg aW50IHNldF92bnVtYV9pbmZvKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAogfQogCiBz dGF0aWMgaW50IGxpYnhsX19idWlsZF9kb20obGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQs CisgICAgICAgICAgICAgbGlieGxfZG9tYWluX2NvbmZpZyAqZF9jb25maWcsCiAgICAgICAgICAg ICAgbGlieGxfZG9tYWluX2J1aWxkX2luZm8gKmluZm8sIGxpYnhsX19kb21haW5fYnVpbGRfc3Rh dGUgKnN0YXRlLAogICAgICAgICAgICAgIHN0cnVjdCB4Y19kb21faW1hZ2UgKmRvbSkKIHsKQEAg LTczMyw3ICs3MzQsOCBAQCBzdGF0aWMgaW50IGxpYnhsX19idWlsZF9kb20obGlieGxfX2djICpn YywgdWludDMyX3QgZG9taWQsCiAgICAgICAgIExPR0UoRVJST1IsICJ4Y19kb21fYm9vdF9tZW1f aW5pdCBmYWlsZWQiKTsKICAgICAgICAgZ290byBvdXQ7CiAgICAgfQotICAgIGlmICggKHJldCA9 IGxpYnhsX19hcmNoX2RvbWFpbl9maW5hbGlzZV9od19kZXNjcmlwdGlvbihnYywgaW5mbywgZG9t KSkgIT0gMCApIHsKKyAgICBpZiAoIChyZXQgPSBsaWJ4bF9fYXJjaF9kb21haW5fZmluYWxpc2Vf aHdfZGVzY3JpcHRpb24oZ2MsIGRvbWlkLCBkX2NvbmZpZywKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5mbywgZG9tKSkgIT0gMCAp IHsKICAgICAgICAgTE9HRShFUlJPUiwgImxpYnhsX19hcmNoX2RvbWFpbl9maW5hbGlzZV9od19k ZXNjcmlwdGlvbiBmYWlsZWQiKTsKICAgICAgICAgZ290byBvdXQ7CiAgICAgfQpAQCAtNzU4LDcg Kzc2MCw3IEBAIG91dDoKICAgICByZXR1cm4gcmV0ICE9IDAgPyBFUlJPUl9GQUlMIDogMDsKIH0K IAotaW50IGxpYnhsX19idWlsZF9wdihsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwKK2lu dCBsaWJ4bF9fYnVpbGRfcHYobGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQsIGxpYnhsX2Rv bWFpbl9jb25maWcgKmRfY29uZmlnLAogICAgICAgICAgICAgIGxpYnhsX2RvbWFpbl9idWlsZF9p bmZvICppbmZvLCBsaWJ4bF9fZG9tYWluX2J1aWxkX3N0YXRlICpzdGF0ZSkKIHsKICAgICBsaWJ4 bF9jdHggKmN0eCA9IGxpYnhsX19nY19vd25lcihnYyk7CkBAIC04NDcsNyArODQ5LDcgQEAgaW50 IGxpYnhsX19idWlsZF9wdihsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwKICAgICAgICAg ICAgIGRvbS0+dm5vZGVfdG9fcG5vZGVbaV0gPSBpbmZvLT52bnVtYV9ub2Rlc1tpXS5wbm9kZTsK ICAgICB9CiAKLSAgICByZXQgPSBsaWJ4bF9fYnVpbGRfZG9tKGdjLCBkb21pZCwgaW5mbywgc3Rh dGUsIGRvbSk7CisgICAgcmV0ID0gbGlieGxfX2J1aWxkX2RvbShnYywgZG9taWQsIGRfY29uZmln LCBpbmZvLCBzdGF0ZSwgZG9tKTsKICAgICBpZiAocmV0ICE9IDApCiAgICAgICAgIGdvdG8gb3V0 OwogCkBAIC0xMjkzLDE2ICsxMjk1LDEwIEBAIGludCBsaWJ4bF9fYnVpbGRfaHZtKGxpYnhsX19n YyAqZ2MsIHVpbnQzMl90IGRvbWlkLAogICAgICAgICAgICAgZG9tLT52bm9kZV90b19wbm9kZVtp XSA9IGluZm8tPnZudW1hX25vZGVzW2ldLnBub2RlOwogICAgIH0KIAotICAgIHJjID0gbGlieGxf X2J1aWxkX2RvbShnYywgZG9taWQsIGluZm8sIHN0YXRlLCBkb20pOworICAgIHJjID0gbGlieGxf X2J1aWxkX2RvbShnYywgZG9taWQsIGRfY29uZmlnLCBpbmZvLCBzdGF0ZSwgZG9tKTsKICAgICBp ZiAocmMgIT0gMCkKICAgICAgICAgZ290byBvdXQ7CiAKLSAgICByYyA9IGxpYnhsX19hcmNoX2Rv bWFpbl9jb25zdHJ1Y3RfbWVtbWFwKGdjLCBkX2NvbmZpZywgZG9taWQsIGRvbSk7Ci0gICAgaWYg KHJjICE9IDApIHsKLSAgICAgICAgTE9HKEVSUk9SLCAic2V0dGluZyBkb21haW4gbWVtb3J5IG1h cCBmYWlsZWQiKTsKLSAgICAgICAgZ290byBvdXQ7Ci0gICAgfQotCiAgICAgcmMgPSBodm1fYnVp bGRfc2V0X3BhcmFtcyhjdHgtPnhjaCwgZG9taWQsIGluZm8sIHN0YXRlLT5zdG9yZV9wb3J0LAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzdGF0ZS0+c3RvcmVfbWZuLCBzdGF0ZS0+ Y29uc29sZV9wb3J0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzdGF0ZS0+Y29u c29sZV9tZm4sIHN0YXRlLT5zdG9yZV9kb21pZCwKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xp YnhsX2ludGVybmFsLmggYi90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oCmluZGV4IDUwNjY4 N2YuLjkxNGRmMjMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmgKKysr IGIvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaApAQCAtMTE1OSw2ICsxMTU5LDcgQEAgX2hp ZGRlbiBpbnQgbGlieGxfX2J1aWxkX3Bvc3QobGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQs CiAgICAgICAgICAgICAgICBjaGFyICoqdm1zX2VudHMsIGNoYXIgKipsb2NhbF9lbnRzKTsKIAog X2hpZGRlbiBpbnQgbGlieGxfX2J1aWxkX3B2KGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlk LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX2RvbWFpbl9jb25maWcgKmNvbnN0 IGRfY29uZmlnLAogICAgICAgICAgICAgIGxpYnhsX2RvbWFpbl9idWlsZF9pbmZvICppbmZvLCBs aWJ4bF9fZG9tYWluX2J1aWxkX3N0YXRlICpzdGF0ZSk7CiBfaGlkZGVuIGludCBsaWJ4bF9fYnVp bGRfaHZtKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAogICAgICAgICAgICAgICBsaWJ4 bF9kb21haW5fY29uZmlnICpkX2NvbmZpZywKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhs X3g4Ni5jIGIvdG9vbHMvbGlieGwvbGlieGxfeDg2LmMKaW5kZXggZDgyMDEzZi4uN2NiYmZkMCAx MDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfeDg2LmMKKysrIGIvdG9vbHMvbGlieGwvbGli eGxfeDg2LmMKQEAgLTM3NywyMSArMzc3LDYgQEAgaW50IGxpYnhsX19hcmNoX2RvbWFpbl9pbml0 X2h3X2Rlc2NyaXB0aW9uKGxpYnhsX19nYyAqZ2MsCiAgICAgcmV0dXJuIDA7CiB9CiAKLWludCBs aWJ4bF9fYXJjaF9kb21haW5fZmluYWxpc2VfaHdfZGVzY3JpcHRpb24obGlieGxfX2djICpnYywK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZG9t YWluX2J1aWxkX2luZm8gKmluZm8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cnVjdCB4Y19kb21faW1hZ2UgKmRvbSkKLXsKLSAgICBpbnQgcmMgPSAw OwotCi0gICAgaWYgKGluZm8tPnR5cGUgPT0gTElCWExfRE9NQUlOX1RZUEVfUFZIKSB7Ci0gICAg ICAgIHJjID0gbGlieGxfX2RvbV9sb2FkX2FjcGkoZ2MsIGluZm8sIGRvbSk7Ci0gICAgICAgIGlm IChyYyAhPSAwKQotICAgICAgICAgICAgTE9HRShFUlJPUiwgImxpYnhsX2RvbV9sb2FkX2FjcGkg ZmFpbGVkIik7Ci0gICAgfQotCi0gICAgcmV0dXJuIHJjOwotfQotCiBpbnQgbGlieGxfX2FyY2hf YnVpbGRfZG9tX2ZpbmlzaChsaWJ4bF9fZ2MgKmdjLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGlieGxfZG9tYWluX2J1aWxkX2luZm8gKmluZm8sCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3QgeGNfZG9tX2ltYWdlICpkb20sCkBAIC01MTAsMTAgKzQ5 NSwxMCBAQCBpbnQgbGlieGxfX2FyY2hfZG9tYWluX21hcF9pcnEobGlieGxfX2djICpnYywgdWlu dDMyX3QgZG9taWQsIGludCBpcnEpCiAgKiB0byBhZGp1c3QgdGhlbS4gUGxlYXNlIHJlZmVyIHRv IGxpYnhsX19kb21haW5fZGV2aWNlX2NvbnN0cnVjdF9yZG0oKS4KICAqLwogI2RlZmluZSBHVUVT VF9MT1dfTUVNX1NUQVJUX0RFRkFVTFQgMHgxMDAwMDAKLWludCBsaWJ4bF9fYXJjaF9kb21haW5f Y29uc3RydWN0X21lbW1hcChsaWJ4bF9fZ2MgKmdjLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxpYnhsX2RvbWFpbl9jb25maWcgKmRfY29uZmlnLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGRvbWlkLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB4Y19kb21faW1hZ2UgKmRvbSkK K3N0YXRpYyBpbnQgZG9tYWluX2NvbnN0cnVjdF9tZW1tYXAobGlieGxfX2djICpnYywKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZG9tYWluX2NvbmZpZyAqZF9jb25m aWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGRvbWlkLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgeGNfZG9tX2ltYWdlICpk b20pCiB7CiAgICAgaW50IHJjID0gMDsKICAgICB1bnNpZ25lZCBpbnQgbnIgPSAwLCBpOwpAQCAt NjAxLDYgKzU4NiwzMiBAQCBvdXQ6CiAgICAgcmV0dXJuIHJjOwogfQogCitpbnQgbGlieGxfX2Fy Y2hfZG9tYWluX2ZpbmFsaXNlX2h3X2Rlc2NyaXB0aW9uKGxpYnhsX19nYyAqZ2MsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGRvbWlkLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kb21h aW5fY29uZmlnICpkX2NvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGlieGxfZG9tYWluX2J1aWxkX2luZm8gKmluZm8sCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB4Y19kb21faW1hZ2UgKmRv bSkKK3sKKyAgICBpbnQgcmM7CisKKyAgICBpZiAoaW5mby0+dHlwZSA9PSBMSUJYTF9ET01BSU5f VFlQRV9QVikKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBpZiAoaW5mby0+dHlwZSA9PSBMSUJY TF9ET01BSU5fVFlQRV9QVkgpIHsKKyAgICAgICAgcmMgPSBsaWJ4bF9fZG9tX2xvYWRfYWNwaShn YywgaW5mbywgZG9tKTsKKyAgICAgICAgaWYgKHJjICE9IDApIHsKKyAgICAgICAgICAgIExPR0Uo RVJST1IsICJsaWJ4bF9kb21fbG9hZF9hY3BpIGZhaWxlZCIpOworICAgICAgICAgICAgcmV0dXJu IHJjOworICAgICAgICB9CisgICAgfQorCisgICAgcmMgPSBkb21haW5fY29uc3RydWN0X21lbW1h cChnYywgZF9jb25maWcsIGRvbWlkLCBkb20pOworICAgIGlmIChyYyAhPSAwKQorICAgICAgICBM T0dFKEVSUk9SLCAic2V0dGluZyBkb21haW4gbWVtb3J5IG1hcCBmYWlsZWQiKTsKKworICAgIHJl dHVybiByYzsKK30KKwogdm9pZCBsaWJ4bF9fYXJjaF9kb21haW5fYnVpbGRfaW5mb19hY3BpX3Nl dGRlZmF1bHQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxf ZG9tYWluX2J1aWxkX2luZm8gKmJfaW5mbykKIHsKLS0gCjEuOC4zLjEKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0 Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qu b3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs