From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: [PATCH v4 19/34] xsplice, symbols: Implement symbol name resolution on address. Date: Tue, 15 Mar 2016 13:56:41 -0400 Message-ID: <1458064616-23101-20-git-send-email-konrad.wilk@oracle.com> References: <1458064616-23101-1-git-send-email-konrad.wilk@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta14.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1aftGg-00019w-4b for xen-devel@lists.xenproject.org; Tue, 15 Mar 2016 18:00:30 +0000 In-Reply-To: <1458064616-23101-1-git-send-email-konrad.wilk@oracle.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, ross.lagerwall@citrix.com, konrad@kernel.org, andrew.cooper3@citrix.com, mpohlack@amazon.de, sasha.levin@oracle.com Cc: Keir Fraser , Jan Beulich , Konrad Rzeszutek Wilk List-Id: xen-devel@lists.xenproject.org SWYgaW4gdGhlIHBheWxvYWQgd2UgZG8gbm90IGhhdmUgdGhlIG9sZF9hZGRyIHdlIGNhbiByZXNv bHZlCnRoZSB2aXJ0dWFsIGFkZHJlc3MgYmFzZWQgb24gdGhlIFVOREVGaW5lZCBzeW1ib2xzLgoK V2UgYWxzbyB1c2UgYW4gYm9vbGVhbiBmbGFnOiBuZXdfc3ltYm9sIHRvIHRyYWNrIHN5bWJvbHMu IFRoZSB1c3VhbApjYXNlIHRoaXMgaXMgdXNlZCBpcyBieToKCiogQSBwYXlsb2FkIG1heSBpbnRy b2R1Y2UgYSBuZXcgc3ltYm9sCiogQSBwYXlsb2FkIG1heSBvdmVycmlkZSBhbiBleGlzdGluZyBz eW1ib2wgKGludHJvZHVjZWQgaW4gWGVuIG9yIGFub3RoZXIKICBwYXlsb2FkKQoqIE92ZXJyaWRp bmcgc3ltYm9scyBtdXN0IGV4aXN0IGluIHRoZSBzeW10YWIgZm9yIGJhY2t0cmFjZXMuCiogQSBw YXlsb2FkIG11c3QgYWx3YXlzIGxpbmsgYWdhaW5zdCB0aGUgb2JqZWN0IHdoaWNoIGRlZmluZXMg dGhlIG5ldyBzeW1ib2wuCgpDb25zaWRlcmluZyB0aGF0IHBheWxvYWRzIG1heSBiZSBsb2FkZWQg aW4gYW55IG9yZGVyIGl0IHdvdWxkIGJlIGluY29ycmVjdCB0bwpsaW5rIGFnYWluc3QgYSBwYXls b2FkIHdoaWNoIHNpbXBseSBvdmVycmlkZXMgYSBzeW1ib2wgYmVjYXVzZSB5b3UgY291bGQgZW5k CnVwIHdpdGggYSBjaGFpbiBvZiBqdW1wcyB3aGljaCBpcyBpbmVmZmljaWVudCBhbmQgbWF5IHJl c3VsdCBpbiB0aGUgZXhwZWN0ZWQKZnVuY3Rpb24gbm90IGJlaW5nIGV4ZWN1dGVkLgoKQWxzbyB3 ZSBpbmNsdWRlIGEgbG9jYWwgZGVmaW5pdGlvbiBibG9jayBpbiB0aGUgc3ltYm9scy5jIGZpbGUu CgpTaWduZWQtb2ZmLWJ5OiBLb25yYWQgUnplc3p1dGVrIFdpbGsgPGtvbnJhZC53aWxrQG9yYWNs ZS5jb20+ClNpZ25lZC1vZmYtYnk6IFJvc3MgTGFnZXJ3YWxsIDxyb3NzLmxhZ2Vyd2FsbEBjaXRy aXguY29tPgoKLS0tCkNjOiBLZWlyIEZyYXNlciA8a2VpckB4ZW4ub3JnPgpDYzogSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPgpDYzogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNA Y2l0cml4LmNvbT4KCnYxOiBSb3NzIG9yaWdpbmFsIHZlcnNpb24uCnYyOiBJbmNsdWRlIHRlc3Qt Y2FzZSBhbmQgZG9jdW1lbnQgdXBkYXRlLgp2Mzogcy9zaXplX3Qvc3NpemVfdC8KdjQ6IEluY2x1 ZGUgY29yZV90ZXh0X3NpemUsIGNvcmVfdGV4dCBjYWxjdWxhdGlvbgotLS0KIHhlbi9hcmNoL3g4 Ni9NYWtlZmlsZSAgICAgICAgICAgICAgIHwgICA2ICstCiB4ZW4vYXJjaC94ODYvdGVzdC9NYWtl ZmlsZSAgICAgICAgICB8ICAgNCArLQogeGVuL2FyY2gveDg2L3Rlc3QveGVuX2hlbGxvX3dvcmxk LmMgfCAgIDUgKy0KIHhlbi9jb21tb24vc3ltYm9scy5jICAgICAgICAgICAgICAgIHwgIDMzICsr KysrKysrCiB4ZW4vY29tbW9uL3hzcGxpY2UuYyAgICAgICAgICAgICAgICB8IDE2MyArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHhlbi9jb21tb24veHNwbGljZV9lbGYuYyAg ICAgICAgICAgIHwgIDE5ICsrKystCiB4ZW4vaW5jbHVkZS94ZW4vc3ltYm9scy5oICAgICAgICAg ICB8ICAgMiArCiB4ZW4vaW5jbHVkZS94ZW4veHNwbGljZS5oICAgICAgICAgICB8ICAgOCArKwog OCBmaWxlcyBjaGFuZ2VkLCAyMzEgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS94ZW4vYXJjaC94ODYvTWFrZWZpbGUgYi94ZW4vYXJjaC94ODYvTWFrZWZpbGUKaW5k ZXggNWY0MGU2My4uYTJlMzAxNyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L01ha2VmaWxlCisr KyBiL3hlbi9hcmNoL3g4Ni9NYWtlZmlsZQpAQCAtMTEyLDEyICsxMTIsMTQgQEAgJChUQVJHRVQp LXN5bXM6IHByZWxpbmsubyB4ZW4ubGRzICQoQkFTRURJUikvY29tbW9uL3N5bWJvbHMtZHVtbXku bwogCSQoTEQpICQoTERGTEFHUykgLVQgeGVuLmxkcyAtTiBwcmVsaW5rLm8gXAogCSAgICAkKEJB U0VESVIpL2NvbW1vbi9zeW1ib2xzLWR1bW15Lm8gLW8gJChARCkvLiQoQEYpLjAKIAkkKE5NKSAt cGEgLS1mb3JtYXQ9c3lzdiAkKEBEKS8uJChARikuMCBcCi0JCXwgJChCQVNFRElSKS90b29scy9z eW1ib2xzIC0tc3lzdiAtLXNvcnQgPiQoQEQpLy4kKEBGKS4wLlMKKwkJfCAkKEJBU0VESVIpL3Rv b2xzL3N5bWJvbHMgLS1hbGwtc3ltYm9scyAtLXN5c3YgLS1zb3J0IFwKKwkJPiQoQEQpLy4kKEBG KS4wLlMKIAkkKE1BS0UpIC1mICQoQkFTRURJUikvUnVsZXMubWsgJChARCkvLiQoQEYpLjAubwog CSQoTEQpICQoTERGTEFHUykgLVQgeGVuLmxkcyAtTiBwcmVsaW5rLm8gXAogCSAgICAkKEBEKS8u JChARikuMC5vIC1vICQoQEQpLy4kKEBGKS4xCiAJJChOTSkgLXBhIC0tZm9ybWF0PXN5c3YgJChA RCkvLiQoQEYpLjEgXAotCQl8ICQoQkFTRURJUikvdG9vbHMvc3ltYm9scyAtLXN5c3YgLS1zb3J0 IC0td2Fybi1kdXAgPiQoQEQpLy4kKEBGKS4xLlMKKwkJfCAkKEJBU0VESVIpL3Rvb2xzL3N5bWJv bHMgLS1hbGwtc3ltYm9scyAtLXN5c3YgLS1zb3J0IC0td2Fybi1kdXAgXAorCQk+JChARCkvLiQo QEYpLjEuUwogCSQoTUFLRSkgLWYgJChCQVNFRElSKS9SdWxlcy5tayAkKEBEKS8uJChARikuMS5v CiAJJChMRCkgJChMREZMQUdTKSAtVCB4ZW4ubGRzIC1OIHByZWxpbmsubyBcCiAJICAgICQoQEQp Ly4kKEBGKS4xLm8gLW8gJEAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni90ZXN0L01ha2VmaWxl IGIveGVuL2FyY2gveDg2L3Rlc3QvTWFrZWZpbGUKaW5kZXggOTQxZjU4Ni4uNDVkZjMwMSAxMDA2 NDQKLS0tIGEveGVuL2FyY2gveDg2L3Rlc3QvTWFrZWZpbGUKKysrIGIveGVuL2FyY2gveDg2L3Rl c3QvTWFrZWZpbGUKQEAgLTMyLDE0ICszMiwxMiBAQCBjbGVhbjo6CiAjIHRoZSBsYXN0IGVudHJ5 IGluIHRoZSBidWlsZCB0YXJnZXQuCiAjCiAuUEhPTlk6IGNvbmZpZy5oCi1jb25maWcuaDogT0xE X0NPREU9JChjYWxsIENPREVfQUREUiwkKEJBU0VESVIpL3hlbi1zeW1zLHhlbl9leHRyYV92ZXJz aW9uKQogY29uZmlnLmg6IE9MRF9DT0RFX1NaPSQoY2FsbCBDT0RFX1NaLCQoQkFTRURJUikveGVu LXN5bXMseGVuX2V4dHJhX3ZlcnNpb24pCiBjb25maWcuaDogTkVXX0NPREVfU1o9JChjYWxsIENP REVfU1osJDwseGVuX2hlbGxvX3dvcmxkKQogY29uZmlnLmg6IHhlbl9oZWxsb193b3JsZF9mdW5j Lm8KIAkoc2V0IC1lOyBcCiAJIGVjaG8gIiNkZWZpbmUgTkVXX0NPREVfU1ogJChORVdfQ09ERV9T WikiOyBcCi0JIGVjaG8gIiNkZWZpbmUgT0xEX0NPREVfU1ogJChPTERfQ09ERV9TWikiOyBcCi0J IGVjaG8gIiNkZWZpbmUgT0xEX0NPREUgJChPTERfQ09ERSkiKSA+ICRACisJIGVjaG8gIiNkZWZp bmUgT0xEX0NPREVfU1ogJChPTERfQ09ERV9TWikiKSA+ICRACiAKIC5QSE9OWTogeHNwbGljZQog eHNwbGljZTogY29uZmlnLmgKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni90ZXN0L3hlbl9oZWxs b193b3JsZC5jIGIveGVuL2FyY2gveDg2L3Rlc3QveGVuX2hlbGxvX3dvcmxkLmMKaW5kZXggZjZh YzA5OC4uMjQzZWIzZiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3Rlc3QveGVuX2hlbGxvX3dv cmxkLmMKKysrIGIveGVuL2FyY2gveDg2L3Rlc3QveGVuX2hlbGxvX3dvcmxkLmMKQEAgLTExLDEw ICsxMSwxMyBAQAogc3RhdGljIGNoYXIgeGVuX2hlbGxvX3dvcmxkX25hbWVbXSA9ICJ4ZW5faGVs bG9fd29ybGQiOwogZXh0ZXJuIGNvbnN0IGNoYXIgKnhlbl9oZWxsb193b3JsZCh2b2lkKTsKIAor LyogRXh0ZXJuYWwgc3ltYm9sLiAqLworZXh0ZXJuIGNvbnN0IGNoYXIgKnhlbl9leHRyYV92ZXJz aW9uKHZvaWQpOworCiBzdHJ1Y3QgeHNwbGljZV9wYXRjaF9mdW5jIF9fc2VjdGlvbigiLnhzcGxp Y2UuZnVuY3MiKSB4c3BsaWNlX3hlbl9oZWxsb193b3JsZCA9IHsKICAgICAubmFtZSA9IHhlbl9o ZWxsb193b3JsZF9uYW1lLAogICAgIC5uZXdfYWRkciA9ICh1bnNpZ25lZCBsb25nKSh4ZW5faGVs bG9fd29ybGQpLAotICAgIC5vbGRfYWRkciA9IE9MRF9DT0RFLAorICAgIC5vbGRfYWRkciA9ICh1 bnNpZ25lZCBsb25nKSh4ZW5fZXh0cmFfdmVyc2lvbiksCiAgICAgLm5ld19zaXplID0gTkVXX0NP REVfU1osCiAgICAgLm9sZF9zaXplID0gT0xEX0NPREVfU1osCiB9OwpkaWZmIC0tZ2l0IGEveGVu L2NvbW1vbi9zeW1ib2xzLmMgYi94ZW4vY29tbW9uL3N5bWJvbHMuYwppbmRleCAyY2M0MTZlLi40 ZmU3YTg3IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3N5bWJvbHMuYworKysgYi94ZW4vY29tbW9u L3N5bWJvbHMuYwpAQCAtMjI1LDMgKzIyNSwzNiBAQCBpbnQgeGVuc3ltc19yZWFkKHVpbnQzMl90 ICpzeW1udW0sIGNoYXIgKnR5cGUsCiAKICAgICByZXR1cm4gMDsKIH0KKwordWludDY0X3Qgc3lt Ym9sc19sb29rdXBfYnlfbmFtZShjb25zdCBjaGFyICpzeW1uYW1lKQoreworICAgIHVpbnQzMl90 IHN5bW51bSA9IDA7CisgICAgdWludDY0X3QgYWRkciA9IDAsIG91dGFkZHIgPSAwOworICAgIGlu dCByYzsKKyAgICBjaGFyIHR5cGU7CisgICAgY2hhciBuYW1lW0tTWU1fTkFNRV9MRU4gKyAxXSA9 IHswfTsKKworICAgIGRvIHsKKyAgICAgICAgcmMgPSB4ZW5zeW1zX3JlYWQoJnN5bW51bSwgJnR5 cGUsICZhZGRyLCBuYW1lKTsKKyAgICAgICAgaWYgKCByYyApCisgICAgICAgICAgICBicmVhazsK KworICAgICAgICBpZiAoICFzdHJjbXAobmFtZSwgc3ltbmFtZSkgKQorICAgICAgICB7CisgICAg ICAgICAgICBvdXRhZGRyID0gYWRkcjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9Cisg ICAgfSB3aGlsZSAoIG5hbWVbMF0gIT0gJ1wwJyApOworCisgICAgcmV0dXJuIG91dGFkZHI7Cit9 CisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2RlOiBDCisgKiBjLWZpbGUtc3R5bGU6 ICJCU0QiCisgKiBjLWJhc2ljLW9mZnNldDogNAorICogdGFiLXdpZHRoOiA0CisgKiBpbmRlbnQt dGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi94c3Bs aWNlLmMgYi94ZW4vY29tbW9uL3hzcGxpY2UuYwppbmRleCBkNDU2NjcxLi41NDEyMGJiIDEwMDY0 NAotLS0gYS94ZW4vY29tbW9uL3hzcGxpY2UuYworKysgYi94ZW4vY29tbW9uL3hzcGxpY2UuYwpA QCAtMTMsNiArMTMsNyBAQAogI2luY2x1ZGUgPHhlbi9zbXAuaD4KICNpbmNsdWRlIDx4ZW4vc29m dGlycS5oPgogI2luY2x1ZGUgPHhlbi9zcGlubG9jay5oPgorI2luY2x1ZGUgPHhlbi9zeW1ib2xz Lmg+CiAjaW5jbHVkZSA8eGVuL3ZtYXAuaD4KICNpbmNsdWRlIDx4ZW4vd2FpdC5oPgogI2luY2x1 ZGUgPHhlbi94c3BsaWNlX2VsZi5oPgpAQCAtNDQsOSArNDUsMTQgQEAgc3RydWN0IHBheWxvYWQg ewogICAgIHZvaWQgKnBheWxvYWRfYWRkcmVzczsgICAgICAgICAgICAgICAvKiBWaXJ0dWFsIGFk ZHJlc3MgbWFwcGVkLiAqLwogICAgIHNpemVfdCBwYXlsb2FkX3BhZ2VzOyAgICAgICAgICAgICAg ICAvKiBOciBvZiB0aGUgcGFnZXMuICovCiAgICAgbWZuX3QgKm1mbjsgICAgICAgICAgICAgICAg ICAgICAgICAgIC8qIEFycmF5IG9mIE1GTnMgb2YgdGhlIHBhZ2VzLiAqLworICAgIHNpemVfdCBj b3JlX3NpemU7ICAgICAgICAgICAgICAgICAgICAvKiBFdmVyeXRoaW5nIGVsc2UgLSAuZGF0YSwu cm9kYXRhLCBldGMuICovCisgICAgc2l6ZV90IGNvcmVfdGV4dF9zaXplOyAgICAgICAgICAgICAg IC8qIE9ubHkgLnRleHQgc2l6ZS4gKi8KICAgICBzdHJ1Y3QgbGlzdF9oZWFkIGFwcGxpZWRfbGlz dDsgICAgICAgLyogTGlua2VkIHRvICdhcHBsaWVkX2xpc3QnLiAqLwogICAgIHN0cnVjdCB4c3Bs aWNlX3BhdGNoX2Z1bmMgKmZ1bmNzOyAgICAvKiBUaGUgYXJyYXkgb2YgZnVuY3Rpb25zIHRvIHBh dGNoLiAqLwogICAgIHVuc2lnbmVkIGludCBuZnVuY3M7ICAgICAgICAgICAgICAgICAvKiBOciBv ZiBmdW5jdGlvbnMgdG8gcGF0Y2guICovCisgICAgc3RydWN0IHhzcGxpY2Vfc3ltYm9sICpzeW10 YWI7ICAgICAgIC8qIEFsbCBzeW1ib2xzLiAqLworICAgIGNoYXIgKnN0cnRhYjsgICAgICAgICAg ICAgICAgICAgICAgICAvKiBQb2ludGVyIHRvIC5zdHJ0YWIuICovCisgICAgdW5zaWduZWQgaW50 IG5zeW1zOyAgICAgICAgICAgICAgICAgIC8qIE5yIG9mIGVudHJpZXMgaW4gLnN0cnRhYiBhbmQg c3ltYm9scy4gKi8KICAgICBjaGFyIG5hbWVbWEVOX1hTUExJQ0VfTkFNRV9TSVpFICsgMV07Lyog TmFtZSBvZiBpdC4gKi8KIH07CiAKQEAgLTk3LDYgKzEwMywzNCBAQCBzdGF0aWMgaW50IHZlcmlm eV9wYXlsb2FkKGNvbnN0IHhlbl9zeXNjdGxfeHNwbGljZV91cGxvYWRfdCAqdXBsb2FkKQogICAg IHJldHVybiAwOwogfQogCit1aW50NjRfdCB4c3BsaWNlX3N5bWJvbHNfbG9va3VwX2J5X25hbWUo Y29uc3QgY2hhciAqc3ltbmFtZSkKK3sKKyAgICBzdHJ1Y3QgcGF5bG9hZCAqZGF0YTsKKyAgICB1 bnNpZ25lZCBpbnQgaTsKKyAgICB1aW50NjRfdCB2YWx1ZSA9IDA7CisKKyAgICBzcGluX2xvY2tf cmVjdXJzaXZlKCZwYXlsb2FkX2xvY2spOworCisgICAgbGlzdF9mb3JfZWFjaF9lbnRyeSAoIGRh dGEsICZwYXlsb2FkX2xpc3QsIGxpc3QgKQorICAgIHsKKyAgICAgICAgZm9yICggaSA9IDA7IGkg PCBkYXRhLT5uc3ltczsgaSsrICkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCAhZGF0YS0+ c3ltdGFiW2ldLm5ld19zeW1ib2wgKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAg ICAgICAgICBpZiAoICFzdHJjbXAoZGF0YS0+c3ltdGFiW2ldLm5hbWUsIHN5bW5hbWUpICkKKyAg ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGEtPnN5bXRhYltpXS52YWx1 ZTsKKyAgICAgICAgICAgICAgICBnb3RvIG91dDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQor ICAgIH0KKworb3V0OgorICAgIHNwaW5fdW5sb2NrX3JlY3Vyc2l2ZSgmcGF5bG9hZF9sb2NrKTsK KyAgICByZXR1cm4gdmFsdWU7Cit9CisKIHN0YXRpYyBpbnQgZmluZF9wYXlsb2FkKGNvbnN0IHhl bl94c3BsaWNlX25hbWVfdCAqbmFtZSwgc3RydWN0IHBheWxvYWQgKipmKQogewogICAgIHN0cnVj dCBwYXlsb2FkICpkYXRhOwpAQCAtMTk5LDYgKzIzMyw3IEBAIHN0YXRpYyBpbnQgbW92ZV9wYXls b2FkKHN0cnVjdCBwYXlsb2FkICpwYXlsb2FkLCBzdHJ1Y3QgeHNwbGljZV9lbGYgKmVsZikKICAg ICAgICAgICAgICAoU0hGX0FMTE9DfFNIRl9FWEVDSU5TVFIpICkKICAgICAgICAgICAgIGNhbGNf c2VjdGlvbigmZWxmLT5zZWNbaV0sICZzaXplKTsKICAgICB9CisgICAgcGF5bG9hZC0+Y29yZV90 ZXh0X3NpemUgPSBzaXplOwogCiAgICAgLyogQ29tcHV0ZSBydyBkYXRhLiAqLwogICAgIGZvciAo IGkgPSAwOyBpIDwgZWxmLT5oZHItPmVfc2hudW07IGkrKyApCkBAIC0yMTcsNiArMjUyLDcgQEAg c3RhdGljIGludCBtb3ZlX3BheWxvYWQoc3RydWN0IHBheWxvYWQgKnBheWxvYWQsIHN0cnVjdCB4 c3BsaWNlX2VsZiAqZWxmKQogICAgICAgICAgICAgICEoZWxmLT5zZWNbaV0uc2VjLT5zaF9mbGFn cyAmIFNIRl9XUklURSkgKQogICAgICAgICAgICAgY2FsY19zZWN0aW9uKCZlbGYtPnNlY1tpXSwg JnNpemUpOwogICAgIH0KKyAgICBwYXlsb2FkLT5jb3JlX3NpemUgPSBzaXplOwogCiAgICAgc2l6 ZSA9IFBGTl9VUChzaXplKTsKICAgICBidWYgPSBhcmNoX3hzcGxpY2VfYWxsb2NfcGF5bG9hZChz aXplLCBYU1BMSUNFX1ZBX1JYLCAmcGF5bG9hZC0+bWZuKTsKQEAgLTMyMiwxMCArMzU4LDEzMSBA QCBzdGF0aWMgaW50IHByZXBhcmVfcGF5bG9hZChzdHJ1Y3QgcGF5bG9hZCAqcGF5bG9hZCwKICAg ICAgICAgZm9yICggaiA9IDA7IGogPCAyNDsgaisrICkKICAgICAgICAgICAgIGlmICggZi0+cGFk W2pdICkKICAgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKKworICAgICAgICAvKiBMb29r dXAgZnVuY3Rpb24ncyBvbGQgYWRkcmVzcyBpZiBub3QgYWxyZWFkeSByZXNvbHZlZC4gKi8KKyAg ICAgICAgaWYgKCAhZi0+b2xkX2FkZHIgKQorICAgICAgICB7CisgICAgICAgICAgICBmLT5vbGRf YWRkciA9IHN5bWJvbHNfbG9va3VwX2J5X25hbWUoZi0+bmFtZSk7CisgICAgICAgICAgICBpZiAo ICFmLT5vbGRfYWRkciApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZi0+b2xkX2Fk ZHIgPSB4c3BsaWNlX3N5bWJvbHNfbG9va3VwX2J5X25hbWUoZi0+bmFtZSk7CisgICAgICAgICAg ICAgICAgaWYgKCAhZi0+b2xkX2FkZHIgKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg ICAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIgIiVzJXM6IENvdWxkIG5vdCByZXNvbHZlIG9sZCBh ZGRyZXNzIG9mICVzXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgWFNQTElDRSwgZWxm LT5uYW1lLCBmLT5uYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9FTlQ7Cisg ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZHByaW50ayhYRU5M T0dfREVCVUcsICIlcyVzOiBSZXNvbHZlZCBvbGQgYWRkcmVzcyAlcyA9PiAweCUiUFJJeDY0Ilxu IiwKKyAgICAgICAgICAgICAgICAgICBYU1BMSUNFLCBlbGYtPm5hbWUsIGYtPm5hbWUsIGYtPm9s ZF9hZGRyKTsKKyAgICAgICAgfQogICAgIH0KICAgICByZXR1cm4gMDsKIH0KIAorc3RhdGljIGJv b2xfdCBpc19jb3JlX3N5bWJvbChjb25zdCBzdHJ1Y3QgeHNwbGljZV9lbGYgKmVsZiwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHhzcGxpY2VfZWxmX3N5bSAqc3lt KQoreworICAgIGlmICggc3ltLT5zeW0tPnN0X3NobmR4ID09IFNITl9VTkRFRiB8fAorICAgICAg ICAgc3ltLT5zeW0tPnN0X3NobmR4ID49IGVsZi0+aGRyLT5lX3NobnVtICkKKyAgICAgICAgcmV0 dXJuIDA7CisKKyAgICByZXR1cm4gISEoIChlbGYtPnNlY1tzeW0tPnN5bS0+c3Rfc2huZHhdLnNl Yy0+c2hfZmxhZ3MgJiBTSEZfQUxMT0MpICYmCisgICAgICAgICAgICAgICAoRUxGNjRfU1RfVFlQ RShzeW0tPnN5bS0+c3RfaW5mbykgPT0gU1RUX09CSkVDVCB8fAorICAgICAgICAgICAgICAgIEVM RjY0X1NUX1RZUEUoc3ltLT5zeW0tPnN0X2luZm8pID09IFNUVF9GVU5DKSApOworfQorCisvKgor ICogTVVTVCBiZSBjYWxsZWQgYWZ0ZXIgcHJlcGFyZV9wYXlsb2FkIGFzIHdlIGRlcGVuZCBvbiBw YXlsb2FkLT5uZnVuY3MuCisgKi8KK3N0YXRpYyBpbnQgYnVpbGRfc3ltYm9sX3RhYmxlKHN0cnVj dCBwYXlsb2FkICpwYXlsb2FkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg c3RydWN0IHhzcGxpY2VfZWxmICplbGYpCit7CisgICAgdW5zaWduZWQgaW50IGksIGosIG5zeW1z ID0gMDsKKyAgICBzaXplX3Qgc3RydGFiX2xlbiA9IDA7CisgICAgc3RydWN0IHhzcGxpY2Vfc3lt Ym9sICpzeW10YWI7CisgICAgY2hhciAqc3RydGFiOworCisgICAgQVNTRVJUKHBheWxvYWQtPm5m dW5jcyk7CisKKyAgICAvKiBSZWNhbGwgdGhhdCAwIGlzIGFsd2F5cyBOVUxMLiAqLworICAgIGZv ciAoIGkgPSAxOyBpIDwgZWxmLT5uc3ltOyBpKysgKQorICAgIHsKKyAgICAgICAgaWYgKCBpc19j b3JlX3N5bWJvbChlbGYsIGVsZi0+c3ltICsgaSkgKQorICAgICAgICB7CisgICAgICAgICAgICBu c3ltcysrOworICAgICAgICAgICAgc3RydGFiX2xlbiArPSBzdHJsZW4oZWxmLT5zeW1baV0ubmFt ZSkgKyAxOworICAgICAgICB9CisgICAgfQorCisgICAgc3ltdGFiID0geG1hbGxvY19hcnJheShz dHJ1Y3QgeHNwbGljZV9zeW1ib2wsIG5zeW1zKTsKKyAgICBpZiAoICFzeW10YWIgKQorICAgICAg ICByZXR1cm4gLUVOT01FTTsKKworICAgIHN0cnRhYiA9IHhtYWxsb2NfYnl0ZXMoc3RydGFiX2xl bik7CisgICAgaWYgKCAhc3RydGFiICkKKyAgICB7CisgICAgICAgIHhmcmVlKHN5bXRhYik7Cisg ICAgICAgIHJldHVybiAtRU5PTUVNOworICAgIH0KKworICAgIG5zeW1zID0gMDsKKyAgICBzdHJ0 YWJfbGVuID0gMDsKKyAgICBmb3IgKCBpID0gMTsgaSA8IGVsZi0+bnN5bTsgaSsrICkKKyAgICB7 CisgICAgICAgIGlmICggaXNfY29yZV9zeW1ib2woZWxmLCBlbGYtPnN5bSArIGkpICkKKyAgICAg ICAgeworICAgICAgICAgICAgc3ltdGFiW25zeW1zXS5uYW1lID0gc3RydGFiICsgc3RydGFiX2xl bjsKKyAgICAgICAgICAgIHN5bXRhYltuc3ltc10uc2l6ZSA9IGVsZi0+c3ltW2ldLnN5bS0+c3Rf c2l6ZTsKKyAgICAgICAgICAgIHN5bXRhYltuc3ltc10udmFsdWUgPSBlbGYtPnN5bVtpXS5zeW0t PnN0X3ZhbHVlOworICAgICAgICAgICAgc3ltdGFiW25zeW1zXS5uZXdfc3ltYm9sID0gMDsgLyog VG8gYmUgY2hlY2tlZCBiZWxvdy4gKi8KKyAgICAgICAgICAgIHN0cnRhYl9sZW4gKz0gc3RybGNw eShzdHJ0YWIgKyBzdHJ0YWJfbGVuLCBlbGYtPnN5bVtpXS5uYW1lLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEtTWU1fTkFNRV9MRU4pICsgMTsKKyAgICAgICAgICAgIG5zeW1z Kys7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBmb3IgKCBpID0gMDsgaSA8IG5zeW1zOyBpKysg KQorICAgIHsKKyAgICAgICAgYm9vbF90IGZvdW5kID0gMDsKKworICAgICAgICBmb3IgKCBqID0g MDsgaiA8IHBheWxvYWQtPm5mdW5jczsgaisrICkKKyAgICAgICAgeworICAgICAgICAgICAgaWYg KCBzeW10YWJbaV0udmFsdWUgPT0gcGF5bG9hZC0+ZnVuY3Nbal0ubmV3X2FkZHIgKQorICAgICAg ICAgICAgeworICAgICAgICAgICAgICAgIGZvdW5kID0gMTsKKyAgICAgICAgICAgICAgICBicmVh azsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmICggIWZvdW5kICkKKyAg ICAgICAgeworICAgICAgICAgICAgaWYgKCB4c3BsaWNlX3N5bWJvbHNfbG9va3VwX2J5X25hbWUo c3ltdGFiW2ldLm5hbWUpICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBwcmludGso WEVOTE9HX0VSUiAiJXMlczogZHVwbGljYXRlIG5ldyBzeW1ib2w6ICVzXG4iLAorICAgICAgICAg ICAgICAgICAgICAgICBYU1BMSUNFLCBlbGYtPm5hbWUsIHN5bXRhYltpXS5uYW1lKTsKKyAgICAg ICAgICAgICAgICB4ZnJlZShzeW10YWIpOworICAgICAgICAgICAgICAgIHhmcmVlKHN0cnRhYik7 CisgICAgICAgICAgICAgICAgcmV0dXJuIC1FRVhJU1Q7CisgICAgICAgICAgICB9CisgICAgICAg ICAgICBzeW10YWJbaV0ubmV3X3N5bWJvbCA9IDE7CisgICAgICAgICAgICBkcHJpbnRrKFhFTkxP R19ERUJVRywgIiVzJXM6IG5ldyBzeW1ib2wgJXNcbiIsCisgICAgICAgICAgICAgICAgICAgIFhT UExJQ0UsIGVsZi0+bmFtZSwgc3ltdGFiW2ldLm5hbWUpOworICAgICAgICB9CisgICAgICAgIGVs c2UKKyAgICAgICAgeworICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfREVCVUcsICIlcyVzOiBv dmVycmlkaW5nIHN5bWJvbCAlc1xuIiwKKyAgICAgICAgICAgICAgICAgICAgWFNQTElDRSwgZWxm LT5uYW1lLCBzeW10YWJbaV0ubmFtZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwYXlsb2Fk LT5zeW10YWIgPSBzeW10YWI7CisgICAgcGF5bG9hZC0+c3RydGFiID0gc3RydGFiOworICAgIHBh eWxvYWQtPm5zeW1zID0gbnN5bXM7CisKKyAgICByZXR1cm4gMDsKK30KKwogLyoKICAqIFdlIE1V U1QgYmUgaG9sZGluZyB0aGUgcGF5bG9hZF9sb2NrIHNwaW5sb2NrLgogICovCkBAIC0zMzYsNiAr NDkzLDggQEAgc3RhdGljIHZvaWQgZnJlZV9wYXlsb2FkKHN0cnVjdCBwYXlsb2FkICpkYXRhKQog ICAgIHBheWxvYWRfY250LS07CiAgICAgcGF5bG9hZF92ZXJzaW9uKys7CiAgICAgZnJlZV9wYXls b2FkX2RhdGEoZGF0YSk7CisgICAgeGZyZWUoZGF0YS0+c3ltdGFiKTsKKyAgICB4ZnJlZShkYXRh LT5zdHJ0YWIpOwogICAgIHhmcmVlKGRhdGEpOwogfQogCkBAIC0zNzYsNiArNTM1LDggQEAgc3Rh dGljIGludCBsb2FkX3BheWxvYWRfZGF0YShzdHJ1Y3QgcGF5bG9hZCAqcGF5bG9hZCwgdm9pZCAq cmF3LCBzc2l6ZV90IGxlbikKICAgICBpZiAoIHJjICkKICAgICAgICAgZ290byBvdXQ7CiAKKyAg ICByYyA9IGJ1aWxkX3N5bWJvbF90YWJsZShwYXlsb2FkLCAmZWxmKTsKKwogICAgIHJjID0gc2Vj dXJlX3BheWxvYWQocGF5bG9hZCwgJmVsZik7CiAgb3V0OgogICAgIGlmICggcmMgKQpAQCAtNDQw LDYgKzYwMSw4IEBAIHN0YXRpYyBpbnQgeHNwbGljZV91cGxvYWQoeGVuX3N5c2N0bF94c3BsaWNl X3VwbG9hZF90ICp1cGxvYWQpCiAgICAgdmZyZWUocmF3X2RhdGEpOwogICAgIGlmICggcmMgKQog ICAgIHsKKyAgICAgICAgeGZyZWUoZGF0YS0+c3ltdGFiKTsKKyAgICAgICAgeGZyZWUoZGF0YS0+ c3RydGFiKTsKICAgICAgICAgeGZyZWUoZGF0YSk7CiAgICAgfQogICAgIHJldHVybiByYzsKZGlm ZiAtLWdpdCBhL3hlbi9jb21tb24veHNwbGljZV9lbGYuYyBiL3hlbi9jb21tb24veHNwbGljZV9l bGYuYwppbmRleCA2MTI4NzI2Li4xZWQxMzNjIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3hzcGxp Y2VfZWxmLmMKKysrIGIveGVuL2NvbW1vbi94c3BsaWNlX2VsZi5jCkBAIC00LDYgKzQsNyBAQAog CiAjaW5jbHVkZSA8eGVuL2Vycm5vLmg+CiAjaW5jbHVkZSA8eGVuL2xpYi5oPgorI2luY2x1ZGUg PHhlbi9zeW1ib2xzLmg+CiAjaW5jbHVkZSA8eGVuL3hzcGxpY2VfZWxmLmg+CiAjaW5jbHVkZSA8 eGVuL3hzcGxpY2UuaD4KIApAQCAtMjI1LDkgKzIyNiwyMSBAQCBpbnQgeHNwbGljZV9lbGZfcmVz b2x2ZV9zeW1ib2xzKHN0cnVjdCB4c3BsaWNlX2VsZiAqZWxmKQogICAgICAgICAgICAgICAgIHJl dHVybiAtRUlOVkFMOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBT SE5fVU5ERUY6Ci0gICAgICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIgIiVzJXM6IFVua25v d24gc3ltYm9sOiAlc1xuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgWFNQTElDRSwgZWxmLT5u YW1lLCBlbGYtPnN5bVtpXS5uYW1lKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gLUVOT0VOVDsK KyAgICAgICAgICAgICAgICBlbGYtPnN5bVtpXS5zeW0tPnN0X3ZhbHVlID0gc3ltYm9sc19sb29r dXBfYnlfbmFtZShlbGYtPnN5bVtpXS5uYW1lKTsKKyAgICAgICAgICAgICAgICBpZiAoICFlbGYt PnN5bVtpXS5zeW0tPnN0X3ZhbHVlICkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAg ICAgICAgIGVsZi0+c3ltW2ldLnN5bS0+c3RfdmFsdWUgPQorICAgICAgICAgICAgICAgICAgICAg ICAgeHNwbGljZV9zeW1ib2xzX2xvb2t1cF9ieV9uYW1lKGVsZi0+c3ltW2ldLm5hbWUpOworICAg ICAgICAgICAgICAgICAgICBpZiAoICFlbGYtPnN5bVtpXS5zeW0tPnN0X3ZhbHVlICkKKyAgICAg ICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19F UlIgIiVzJXM6IFVua25vd24gc3ltYm9sOiAlc1xuIiwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBYU1BMSUNFLCBlbGYtPm5hbWUsIGVsZi0+c3ltW2ldLm5hbWUpOworICAgICAgICAg ICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9FTlQ7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfREVCVUcsICIl cyVzOiBVbmRlZmluZWQgc3ltYm9sIHJlc29sdmVkOiAlcyA9PiAweCUiUFJJeDY0IlxuIiwKKyAg ICAgICAgICAgICAgICAgICAgICAgWFNQTElDRSwgZWxmLT5uYW1lLCBlbGYtPnN5bVtpXS5uYW1l LAorICAgICAgICAgICAgICAgICAgICAgICBlbGYtPnN5bVtpXS5zeW0tPnN0X3ZhbHVlKTsKICAg ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgU0hOX0FCUzoKICAgICAgICAg ICAgICAgICBkcHJpbnRrKFhFTkxPR19ERUJVRywgIiVzJXM6IEFic29sdXRlIHN5bWJvbDogJXMg PT4gMHglIlBSSXg2NCJcbiIsCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vc3ltYm9scy5o IGIveGVuL2luY2x1ZGUveGVuL3N5bWJvbHMuaAppbmRleCBmZTllZDhmLi5lNjEwMWQxIDEwMDY0 NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vc3ltYm9scy5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9z eW1ib2xzLmgKQEAgLTIzLDQgKzIzLDYgQEAgY29uc3QgY2hhciAqc3ltYm9sc19sb29rdXAodW5z aWduZWQgbG9uZyBhZGRyLAogaW50IHhlbnN5bXNfcmVhZCh1aW50MzJfdCAqc3ltbnVtLCBjaGFy ICp0eXBlLAogICAgICAgICAgICAgICAgICB1aW50NjRfdCAqYWRkcmVzcywgY2hhciAqbmFtZSk7 CiAKK3VpbnQ2NF90IHN5bWJvbHNfbG9va3VwX2J5X25hbWUoY29uc3QgY2hhciAqc3ltbmFtZSk7 CisKICNlbmRpZiAvKl9YRU5fU1lNQk9MU19IKi8KZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hl bi94c3BsaWNlLmggYi94ZW4vaW5jbHVkZS94ZW4veHNwbGljZS5oCmluZGV4IGI0OGE4MTEuLjJl MmZiNzggMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi94c3BsaWNlLmgKKysrIGIveGVuL2lu Y2x1ZGUveGVuL3hzcGxpY2UuaApAQCAtMzMsOCArMzMsMTYgQEAgc3RydWN0IHhzcGxpY2VfcGF0 Y2hfZnVuYyB7CiAvKiBDb252ZW5pZW5jZSBkZWZpbmUgZm9yIHByaW50ay4gKi8KICNkZWZpbmUg WFNQTElDRSAieHNwbGljZTogIgogCitzdHJ1Y3QgeHNwbGljZV9zeW1ib2wgeworICAgIGNvbnN0 IGNoYXIgKm5hbWU7CisgICAgdWludDY0X3QgdmFsdWU7CisgICAgc3NpemVfdCBzaXplOworICAg IGJvb2xfdCBuZXdfc3ltYm9sOworfTsKKwogaW50IHhzcGxpY2Vfb3Aoc3RydWN0IHhlbl9zeXNj dGxfeHNwbGljZV9vcCAqKTsKIHZvaWQgY2hlY2tfZm9yX3hzcGxpY2Vfd29yayh2b2lkKTsKK3Vp bnQ2NF90IHhzcGxpY2Vfc3ltYm9sc19sb29rdXBfYnlfbmFtZShjb25zdCBjaGFyICpzeW1uYW1l KTsKIAogLyogQXJjaCBob29rcy4gKi8KIGludCBhcmNoX3hzcGxpY2VfdmVyaWZ5X2VsZihjb25z dCBzdHJ1Y3QgeHNwbGljZV9lbGYgKmVsZiwgdm9pZCAqZGF0YSk7Ci0tIAoyLjUuMAoKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWls aW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVu LWRldmVsCg==