From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: [PATCH v5 13/28] xsplice, symbols: Implement symbol name resolution on address. Date: Thu, 24 Mar 2016 16:00:25 -0400 Message-ID: <1458849640-22588-14-git-send-email-konrad.wilk@oracle.com> References: <1458849640-22588-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.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ajBRn-0007pQ-53 for xen-devel@lists.xenproject.org; Thu, 24 Mar 2016 20:01:35 +0000 In-Reply-To: <1458849640-22588-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 RnJvbTogUm9zcyBMYWdlcndhbGwgPHJvc3MubGFnZXJ3YWxsQGNpdHJpeC5jb20+CgpJZiBpbiB0 aGUgcGF5bG9hZCB3ZSBkbyBub3QgaGF2ZSB0aGUgb2xkX2FkZHIgd2UgY2FuIHJlc29sdmUKdGhl IHZpcnR1YWwgYWRkcmVzcyBiYXNlZCBvbiB0aGUgVU5ERUZpbmVkIHN5bWJvbHMuCgpXZSBhbHNv IHVzZSBhbiBib29sZWFuIGZsYWc6IG5ld19zeW1ib2wgdG8gdHJhY2sgc3ltYm9scy4gVGhlIHVz dWFsCmNhc2UgdGhpcyBpcyB1c2VkIGlzIGJ5OgoKKiBBIHBheWxvYWQgbWF5IGludHJvZHVjZSBh IG5ldyBzeW1ib2wKKiBBIHBheWxvYWQgbWF5IG92ZXJyaWRlIGFuIGV4aXN0aW5nIHN5bWJvbCAo aW50cm9kdWNlZCBpbiBYZW4gb3IgYW5vdGhlcgogIHBheWxvYWQpCiogT3ZlcnJpZGluZyBzeW1i b2xzIG11c3QgZXhpc3QgaW4gdGhlIHN5bXRhYiBmb3IgYmFja3RyYWNlcy4KKiBBIHBheWxvYWQg bXVzdCBhbHdheXMgbGluayBhZ2FpbnN0IHRoZSBvYmplY3Qgd2hpY2ggZGVmaW5lcyB0aGUgbmV3 IHN5bWJvbC4KCkNvbnNpZGVyaW5nIHRoYXQgcGF5bG9hZHMgbWF5IGJlIGxvYWRlZCBpbiBhbnkg b3JkZXIgaXQgd291bGQgYmUgaW5jb3JyZWN0IHRvCmxpbmsgYWdhaW5zdCBhIHBheWxvYWQgd2hp Y2ggc2ltcGx5IG92ZXJyaWRlcyBhIHN5bWJvbCBiZWNhdXNlIHlvdSBjb3VsZCBlbmQKdXAgd2l0 aCBhIGNoYWluIG9mIGp1bXBzIHdoaWNoIGlzIGluZWZmaWNpZW50IGFuZCBtYXkgcmVzdWx0IGlu IHRoZSBleHBlY3RlZApmdW5jdGlvbiBub3QgYmVpbmcgZXhlY3V0ZWQuCgpBbHNvIHdlIGluY2x1 ZGUgYSBsb2NhbCBkZWZpbml0aW9uIGJsb2NrIGluIHRoZSBzeW1ib2xzLmMgZmlsZS4KClNpZ25l ZC1vZmYtYnk6IEtvbnJhZCBSemVzenV0ZWsgV2lsayA8a29ucmFkLndpbGtAb3JhY2xlLmNvbT4K U2lnbmVkLW9mZi1ieTogUm9zcyBMYWdlcndhbGwgPHJvc3MubGFnZXJ3YWxsQGNpdHJpeC5jb20+ CgotLS0KQ2M6IEtlaXIgRnJhc2VyIDxrZWlyQHhlbi5vcmc+CkNjOiBKYW4gQmV1bGljaCA8amJl dWxpY2hAc3VzZS5jb20+CkNjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXgu Y29tPgoKdjE6IFJvc3Mgb3JpZ2luYWwgdmVyc2lvbi4KdjI6IEluY2x1ZGUgdGVzdC1jYXNlIGFu ZCBkb2N1bWVudCB1cGRhdGUuCnYyOiBzL3NpemVfdC9zc2l6ZV90LwogICAgSW5jbHVkZSBjb3Jl X3RleHRfc2l6ZSwgY29yZV90ZXh0IGNhbGN1bGF0aW9uCnY0OiBDYXN0IG9uIGRwcmludGsgdG8g dWludDY0X3QgdG8gbWFrZSBFTEYgMzJiaXQgYnVpbGQuCi0tLQogeGVuL2FyY2gveDg2L01ha2Vm aWxlICAgICAgICAgICAgICAgfCAgIDYgKy0KIHhlbi9hcmNoL3g4Ni90ZXN0L01ha2VmaWxlICAg ICAgICAgIHwgICA0ICstCiB4ZW4vYXJjaC94ODYvdGVzdC94ZW5faGVsbG9fd29ybGQuYyB8ICAg NSArLQogeGVuL2NvbW1vbi9zeW1ib2xzLmMgICAgICAgICAgICAgICAgfCAgMzMgKysrKysrKysK IHhlbi9jb21tb24veHNwbGljZS5jICAgICAgICAgICAgICAgIHwgMTYwICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKwogeGVuL2NvbW1vbi94c3BsaWNlX2VsZi5jICAgICAgICAg ICAgfCAgMjEgKysrKy0KIHhlbi9pbmNsdWRlL3hlbi9zeW1ib2xzLmggICAgICAgICAgIHwgICAy ICsKIHhlbi9pbmNsdWRlL3hlbi94c3BsaWNlLmggICAgICAgICAgIHwgICA4ICsrCiA4IGZpbGVz IGNoYW5nZWQsIDIyOSBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS94ZW4vYXJjaC94ODYvTWFrZWZpbGUgYi94ZW4vYXJjaC94ODYvTWFrZWZpbGUKaW5kZXggZDk0 MTZkMS4uYTFlZjI0YiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L01ha2VmaWxlCisrKyBiL3hl bi9hcmNoL3g4Ni9NYWtlZmlsZQpAQCAtMTEzLDEyICsxMTMsMTQgQEAgJChUQVJHRVQpLXN5bXM6 IHByZWxpbmsubyB4ZW4ubGRzICQoQkFTRURJUikvY29tbW9uL3N5bWJvbHMtZHVtbXkubwogCSQo TEQpICQoTERGTEFHUykgLVQgeGVuLmxkcyAtTiBwcmVsaW5rLm8gXAogCSAgICAkKEJBU0VESVIp L2NvbW1vbi9zeW1ib2xzLWR1bW15Lm8gLW8gJChARCkvLiQoQEYpLjAKIAkkKE5NKSAtcGEgLS1m b3JtYXQ9c3lzdiAkKEBEKS8uJChARikuMCBcCi0JCXwgJChCQVNFRElSKS90b29scy9zeW1ib2xz IC0tc3lzdiAtLXNvcnQgPiQoQEQpLy4kKEBGKS4wLlMKKwkJfCAkKEJBU0VESVIpL3Rvb2xzL3N5 bWJvbHMgLS1hbGwtc3ltYm9scyAtLXN5c3YgLS1zb3J0IFwKKwkJPiQoQEQpLy4kKEBGKS4wLlMK IAkkKE1BS0UpIC1mICQoQkFTRURJUikvUnVsZXMubWsgJChARCkvLiQoQEYpLjAubwogCSQoTEQp ICQoTERGTEFHUykgLVQgeGVuLmxkcyAtTiBwcmVsaW5rLm8gXAogCSAgICAkKEBEKS8uJChARiku MC5vIC1vICQoQEQpLy4kKEBGKS4xCiAJJChOTSkgLXBhIC0tZm9ybWF0PXN5c3YgJChARCkvLiQo QEYpLjEgXAotCQl8ICQoQkFTRURJUikvdG9vbHMvc3ltYm9scyAtLXN5c3YgLS1zb3J0IC0td2Fy bi1kdXAgPiQoQEQpLy4kKEBGKS4xLlMKKwkJfCAkKEJBU0VESVIpL3Rvb2xzL3N5bWJvbHMgLS1h bGwtc3ltYm9scyAtLXN5c3YgLS1zb3J0IC0td2Fybi1kdXAgXAorCQk+JChARCkvLiQoQEYpLjEu UwogCSQoTUFLRSkgLWYgJChCQVNFRElSKS9SdWxlcy5tayAkKEBEKS8uJChARikuMS5vCiAJJChM RCkgJChMREZMQUdTKSAtVCB4ZW4ubGRzIC1OIHByZWxpbmsubyBcCiAJICAgICQoQEQpLy4kKEBG KS4xLm8gLW8gJEAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni90ZXN0L01ha2VmaWxlIGIveGVu L2FyY2gveDg2L3Rlc3QvTWFrZWZpbGUKaW5kZXggN2EzNjRjMS4uMjJmY2IxNCAxMDA2NDQKLS0t IGEveGVuL2FyY2gveDg2L3Rlc3QvTWFrZWZpbGUKKysrIGIveGVuL2FyY2gveDg2L3Rlc3QvTWFr ZWZpbGUKQEAgLTM1LDE0ICszNSwxMiBAQCBjbGVhbjo6CiAjIHRoZSBsYXN0IGVudHJ5IGluIHRo ZSBidWlsZCB0YXJnZXQuCiAjCiAuUEhPTlk6IGNvbmZpZy5oCi1jb25maWcuaDogT0xEX0NPREU9 JChjYWxsIENPREVfQUREUiwkKEJBU0VESVIpL3hlbi1zeW1zLHhlbl9leHRyYV92ZXJzaW9uKQog Y29uZmlnLmg6IE9MRF9DT0RFX1NaPSQoY2FsbCBDT0RFX1NaLCQoQkFTRURJUikveGVuLXN5bXMs eGVuX2V4dHJhX3ZlcnNpb24pCiBjb25maWcuaDogTkVXX0NPREVfU1o9JChjYWxsIENPREVfU1os JDwseGVuX2hlbGxvX3dvcmxkKQogY29uZmlnLmg6IHhlbl9oZWxsb193b3JsZF9mdW5jLm8KIAko c2V0IC1lOyBcCiAJIGVjaG8gIiNkZWZpbmUgTkVXX0NPREVfU1ogJChORVdfQ09ERV9TWikiOyBc Ci0JIGVjaG8gIiNkZWZpbmUgT0xEX0NPREVfU1ogJChPTERfQ09ERV9TWikiOyBcCi0JIGVjaG8g IiNkZWZpbmUgT0xEX0NPREUgJChPTERfQ09ERSkiKSA+ICRACisJIGVjaG8gIiNkZWZpbmUgT0xE X0NPREVfU1ogJChPTERfQ09ERV9TWikiKSA+ICRACiAKIC5QSE9OWTogeHNwbGljZQogeHNwbGlj ZTogY29uZmlnLmgKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni90ZXN0L3hlbl9oZWxsb193b3Js ZC5jIGIveGVuL2FyY2gveDg2L3Rlc3QveGVuX2hlbGxvX3dvcmxkLmMKaW5kZXggZjZhYzA5OC4u MjQzZWIzZiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3Rlc3QveGVuX2hlbGxvX3dvcmxkLmMK KysrIGIveGVuL2FyY2gveDg2L3Rlc3QveGVuX2hlbGxvX3dvcmxkLmMKQEAgLTExLDEwICsxMSwx MyBAQAogc3RhdGljIGNoYXIgeGVuX2hlbGxvX3dvcmxkX25hbWVbXSA9ICJ4ZW5faGVsbG9fd29y bGQiOwogZXh0ZXJuIGNvbnN0IGNoYXIgKnhlbl9oZWxsb193b3JsZCh2b2lkKTsKIAorLyogRXh0 ZXJuYWwgc3ltYm9sLiAqLworZXh0ZXJuIGNvbnN0IGNoYXIgKnhlbl9leHRyYV92ZXJzaW9uKHZv aWQpOworCiBzdHJ1Y3QgeHNwbGljZV9wYXRjaF9mdW5jIF9fc2VjdGlvbigiLnhzcGxpY2UuZnVu Y3MiKSB4c3BsaWNlX3hlbl9oZWxsb193b3JsZCA9IHsKICAgICAubmFtZSA9IHhlbl9oZWxsb193 b3JsZF9uYW1lLAogICAgIC5uZXdfYWRkciA9ICh1bnNpZ25lZCBsb25nKSh4ZW5faGVsbG9fd29y bGQpLAotICAgIC5vbGRfYWRkciA9IE9MRF9DT0RFLAorICAgIC5vbGRfYWRkciA9ICh1bnNpZ25l ZCBsb25nKSh4ZW5fZXh0cmFfdmVyc2lvbiksCiAgICAgLm5ld19zaXplID0gTkVXX0NPREVfU1os CiAgICAgLm9sZF9zaXplID0gT0xEX0NPREVfU1osCiB9OwpkaWZmIC0tZ2l0IGEveGVuL2NvbW1v bi9zeW1ib2xzLmMgYi94ZW4vY29tbW9uL3N5bWJvbHMuYwppbmRleCA5MmZiMGVlLi4zMjllYmEy IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3N5bWJvbHMuYworKysgYi94ZW4vY29tbW9uL3N5bWJv bHMuYwpAQCAtMjA3LDMgKzIwNywzNiBAQCBpbnQgeGVuc3ltc19yZWFkKHVpbnQzMl90ICpzeW1u dW0sIGNoYXIgKnR5cGUsCiAKICAgICByZXR1cm4gMDsKIH0KKwordWludDY0X3Qgc3ltYm9sc19s b29rdXBfYnlfbmFtZShjb25zdCBjaGFyICpzeW1uYW1lKQoreworICAgIHVpbnQzMl90IHN5bW51 bSA9IDA7CisgICAgdWludDY0X3QgYWRkciA9IDAsIG91dGFkZHIgPSAwOworICAgIGludCByYzsK KyAgICBjaGFyIHR5cGU7CisgICAgY2hhciBuYW1lW0tTWU1fTkFNRV9MRU4gKyAxXSA9IHswfTsK KworICAgIGRvIHsKKyAgICAgICAgcmMgPSB4ZW5zeW1zX3JlYWQoJnN5bW51bSwgJnR5cGUsICZh ZGRyLCBuYW1lKTsKKyAgICAgICAgaWYgKCByYyApCisgICAgICAgICAgICBicmVhazsKKworICAg ICAgICBpZiAoICFzdHJjbXAobmFtZSwgc3ltbmFtZSkgKQorICAgICAgICB7CisgICAgICAgICAg ICBvdXRhZGRyID0gYWRkcjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfSB3 aGlsZSAoIG5hbWVbMF0gIT0gJ1wwJyApOworCisgICAgcmV0dXJuIG91dGFkZHI7Cit9CisKKy8q CisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2RlOiBDCisgKiBjLWZpbGUtc3R5bGU6ICJCU0Qi CisgKiBjLWJhc2ljLW9mZnNldDogNAorICogdGFiLXdpZHRoOiA0CisgKiBpbmRlbnQtdGFicy1t b2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi94c3BsaWNlLmMg Yi94ZW4vY29tbW9uL3hzcGxpY2UuYwppbmRleCBhMGQ3ZmUwLi4yNDEwMGU3IDEwMDY0NAotLS0g YS94ZW4vY29tbW9uL3hzcGxpY2UuYworKysgYi94ZW4vY29tbW9uL3hzcGxpY2UuYwpAQCAtMTQs NiArMTQsNyBAQAogI2luY2x1ZGUgPHhlbi9zbXAuaD4KICNpbmNsdWRlIDx4ZW4vc29mdGlycS5o PgogI2luY2x1ZGUgPHhlbi9zcGlubG9jay5oPgorI2luY2x1ZGUgPHhlbi9zeW1ib2xzLmg+CiAj aW5jbHVkZSA8eGVuL3ZtYXAuaD4KICNpbmNsdWRlIDx4ZW4vd2FpdC5oPgogI2luY2x1ZGUgPHhl bi94c3BsaWNlX2VsZi5oPgpAQCAtNTQsNiArNTUsOSBAQCBzdHJ1Y3QgcGF5bG9hZCB7CiAgICAg c3RydWN0IGxpc3RfaGVhZCBhcHBsaWVkX2xpc3Q7ICAgICAgIC8qIExpbmtlZCB0byAnYXBwbGll ZF9saXN0Jy4gKi8KICAgICBzdHJ1Y3QgeHNwbGljZV9wYXRjaF9mdW5jICpmdW5jczsgICAgLyog VGhlIGFycmF5IG9mIGZ1bmN0aW9ucyB0byBwYXRjaC4gKi8KICAgICB1bnNpZ25lZCBpbnQgbmZ1 bmNzOyAgICAgICAgICAgICAgICAgLyogTnIgb2YgZnVuY3Rpb25zIHRvIHBhdGNoLiAqLworICAg IHN0cnVjdCB4c3BsaWNlX3N5bWJvbCAqc3ltdGFiOyAgICAgICAvKiBBbGwgc3ltYm9scy4gKi8K KyAgICBjaGFyICpzdHJ0YWI7ICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9pbnRlciB0byAu c3RydGFiLiAqLworICAgIHVuc2lnbmVkIGludCBuc3ltczsgICAgICAgICAgICAgICAgICAvKiBO ciBvZiBlbnRyaWVzIGluIC5zdHJ0YWIgYW5kIHN5bWJvbHMuICovCiAgICAgY2hhciBuYW1lW1hF Tl9YU1BMSUNFX05BTUVfU0laRV07ICAgIC8qIE5hbWUgb2YgaXQuICovCiB9OwogCkBAIC0xMDcs NiArMTExLDM0IEBAIHN0YXRpYyBpbnQgdmVyaWZ5X3BheWxvYWQoY29uc3QgeGVuX3N5c2N0bF94 c3BsaWNlX3VwbG9hZF90ICp1cGxvYWQpCiAgICAgcmV0dXJuIDA7CiB9CiAKK3VpbnQ2NF90IHhz cGxpY2Vfc3ltYm9sc19sb29rdXBfYnlfbmFtZShjb25zdCBjaGFyICpzeW1uYW1lKQoreworICAg IHN0cnVjdCBwYXlsb2FkICpkYXRhOworICAgIHVuc2lnbmVkIGludCBpOworICAgIHVpbnQ2NF90 IHZhbHVlID0gMDsKKworICAgIHNwaW5fbG9ja19yZWN1cnNpdmUoJnBheWxvYWRfbG9jayk7CisK KyAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5ICggZGF0YSwgJnBheWxvYWRfbGlzdCwgbGlzdCApCisg ICAgeworICAgICAgICBmb3IgKCBpID0gMDsgaSA8IGRhdGEtPm5zeW1zOyBpKysgKQorICAgICAg ICB7CisgICAgICAgICAgICBpZiAoICFkYXRhLT5zeW10YWJbaV0ubmV3X3N5bWJvbCApCisgICAg ICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgIGlmICggIXN0cmNtcChkYXRhLT5z eW10YWJbaV0ubmFtZSwgc3ltbmFtZSkgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAg IHZhbHVlID0gZGF0YS0+c3ltdGFiW2ldLnZhbHVlOworICAgICAgICAgICAgICAgIGdvdG8gb3V0 OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCitvdXQ6CisgICAgc3Bpbl91bmxv Y2tfcmVjdXJzaXZlKCZwYXlsb2FkX2xvY2spOworICAgIHJldHVybiB2YWx1ZTsKK30KKwogLyoK ICAqIFdlIG1heSBiZSBob2xkaW5nIHRoZSBwYXlsb2FkX2xvY2sgb3Igbm90LiBIZW5jZSB3ZSBu ZWVkCiAgKiB0aGUgcmVjdXJzaXZlIHNwaW5sb2NrLiBPciB3ZSBjYW4ganVkaWNpb3VzbHkgdXNl IGFuCkBAIC0zOTcsOCArNDI5LDEyNiBAQCBzdGF0aWMgaW50IHByZXBhcmVfcGF5bG9hZChzdHJ1 Y3QgcGF5bG9hZCAqcGF5bG9hZCwKICAgICAgICAgZm9yICggaiA9IDA7IGogPCAyNDsgaisrICkK ICAgICAgICAgICAgIGlmICggZi0+cGFkW2pdICkKICAgICAgICAgICAgICAgICByZXR1cm4gLUVJ TlZBTDsKKworICAgICAgICAvKiBMb29rdXAgZnVuY3Rpb24ncyBvbGQgYWRkcmVzcyBpZiBub3Qg YWxyZWFkeSByZXNvbHZlZC4gKi8KKyAgICAgICAgaWYgKCAhZi0+b2xkX2FkZHIgKQorICAgICAg ICB7CisgICAgICAgICAgICBmLT5vbGRfYWRkciA9IHN5bWJvbHNfbG9va3VwX2J5X25hbWUoZi0+ bmFtZSk7CisgICAgICAgICAgICBpZiAoICFmLT5vbGRfYWRkciApCisgICAgICAgICAgICB7Cisg ICAgICAgICAgICAgICAgZi0+b2xkX2FkZHIgPSB4c3BsaWNlX3N5bWJvbHNfbG9va3VwX2J5X25h bWUoZi0+bmFtZSk7CisgICAgICAgICAgICAgICAgaWYgKCAhZi0+b2xkX2FkZHIgKQorICAgICAg ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIgIiVzJXM6 IENvdWxkIG5vdCByZXNvbHZlIG9sZCBhZGRyZXNzIG9mICVzXG4iLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgWFNQTElDRSwgZWxmLT5uYW1lLCBmLT5uYW1lKTsKKyAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIC1FTk9FTlQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQor ICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfREVCVUcsICIlcyVzOiBSZXNvbHZlZCBvbGQgYWRk cmVzcyAlcyA9PiAweCUiUFJJeDY0IlxuIiwKKyAgICAgICAgICAgICAgICAgICBYU1BMSUNFLCBl bGYtPm5hbWUsIGYtPm5hbWUsIGYtPm9sZF9hZGRyKTsKKyAgICAgICAgfQorICAgIH0KKworICAg IHJldHVybiAwOworfQorCitzdGF0aWMgYm9vbF90IGlzX2NvcmVfc3ltYm9sKGNvbnN0IHN0cnVj dCB4c3BsaWNlX2VsZiAqZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBz dHJ1Y3QgeHNwbGljZV9lbGZfc3ltICpzeW0pCit7CisgICAgaWYgKCBzeW0tPnN5bS0+c3Rfc2hu ZHggPT0gU0hOX1VOREVGIHx8CisgICAgICAgICBzeW0tPnN5bS0+c3Rfc2huZHggPj0gZWxmLT5o ZHItPmVfc2hudW0gKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiAhISggKGVsZi0+ c2VjW3N5bS0+c3ltLT5zdF9zaG5keF0uc2VjLT5zaF9mbGFncyAmIFNIRl9BTExPQykgJiYKKyAg ICAgICAgICAgICAgIChFTEY2NF9TVF9UWVBFKHN5bS0+c3ltLT5zdF9pbmZvKSA9PSBTVFRfT0JK RUNUIHx8CisgICAgICAgICAgICAgICAgRUxGNjRfU1RfVFlQRShzeW0tPnN5bS0+c3RfaW5mbykg PT0gU1RUX0ZVTkMpICk7Cit9CisKK3N0YXRpYyBpbnQgYnVpbGRfc3ltYm9sX3RhYmxlKHN0cnVj dCBwYXlsb2FkICpwYXlsb2FkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg c3RydWN0IHhzcGxpY2VfZWxmICplbGYpCit7CisgICAgdW5zaWduZWQgaW50IGksIGosIG5zeW1z ID0gMDsKKyAgICBzaXplX3Qgc3RydGFiX2xlbiA9IDA7CisgICAgc3RydWN0IHhzcGxpY2Vfc3lt Ym9sICpzeW10YWI7CisgICAgY2hhciAqc3RydGFiOworCisgICAgQVNTRVJUKHBheWxvYWQtPm5m dW5jcyk7CisKKyAgICAvKiBSZWNhbGwgdGhhdCBzZWN0aW9uIEAwIGlzIGFsd2F5cyBOVUxMLiAq LworICAgIGZvciAoIGkgPSAxOyBpIDwgZWxmLT5uc3ltOyBpKysgKQorICAgIHsKKyAgICAgICAg aWYgKCBpc19jb3JlX3N5bWJvbChlbGYsIGVsZi0+c3ltICsgaSkgKQorICAgICAgICB7CisgICAg ICAgICAgICBuc3ltcysrOworICAgICAgICAgICAgc3RydGFiX2xlbiArPSBzdHJsZW4oZWxmLT5z eW1baV0ubmFtZSkgKyAxOworICAgICAgICB9CisgICAgfQorCisgICAgc3ltdGFiID0geG1hbGxv Y19hcnJheShzdHJ1Y3QgeHNwbGljZV9zeW1ib2wsIG5zeW1zKTsKKyAgICBpZiAoICFzeW10YWIg KQorICAgICAgICByZXR1cm4gLUVOT01FTTsKKworICAgIHN0cnRhYiA9IHhtYWxsb2NfYnl0ZXMo c3RydGFiX2xlbik7CisgICAgaWYgKCAhc3RydGFiICkKKyAgICB7CisgICAgICAgIHhmcmVlKHN5 bXRhYik7CisgICAgICAgIHJldHVybiAtRU5PTUVNOworICAgIH0KKworICAgIG5zeW1zID0gMDsK KyAgICBzdHJ0YWJfbGVuID0gMDsKKyAgICBmb3IgKCBpID0gMTsgaSA8IGVsZi0+bnN5bTsgaSsr ICkKKyAgICB7CisgICAgICAgIGlmICggaXNfY29yZV9zeW1ib2woZWxmLCBlbGYtPnN5bSArIGkp ICkKKyAgICAgICAgeworICAgICAgICAgICAgc3ltdGFiW25zeW1zXS5uYW1lID0gc3RydGFiICsg c3RydGFiX2xlbjsKKyAgICAgICAgICAgIHN5bXRhYltuc3ltc10uc2l6ZSA9IGVsZi0+c3ltW2ld LnN5bS0+c3Rfc2l6ZTsKKyAgICAgICAgICAgIHN5bXRhYltuc3ltc10udmFsdWUgPSBlbGYtPnN5 bVtpXS5zeW0tPnN0X3ZhbHVlOworICAgICAgICAgICAgc3ltdGFiW25zeW1zXS5uZXdfc3ltYm9s ID0gMDsgLyogVG8gYmUgY2hlY2tlZCBiZWxvdy4gKi8KKyAgICAgICAgICAgIHN0cnRhYl9sZW4g Kz0gc3RybGNweShzdHJ0YWIgKyBzdHJ0YWJfbGVuLCBlbGYtPnN5bVtpXS5uYW1lLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtTWU1fTkFNRV9MRU4pICsgMTsKKyAgICAgICAg ICAgIG5zeW1zKys7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBmb3IgKCBpID0gMDsgaSA8IG5z eW1zOyBpKysgKQorICAgIHsKKyAgICAgICAgYm9vbF90IGZvdW5kID0gMDsKKworICAgICAgICBm b3IgKCBqID0gMDsgaiA8IHBheWxvYWQtPm5mdW5jczsgaisrICkKKyAgICAgICAgeworICAgICAg ICAgICAgaWYgKCBzeW10YWJbaV0udmFsdWUgPT0gcGF5bG9hZC0+ZnVuY3Nbal0ubmV3X2FkZHIg KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGZvdW5kID0gMTsKKyAgICAgICAgICAg ICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmICggIWZv dW5kICkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCB4c3BsaWNlX3N5bWJvbHNfbG9va3Vw X2J5X25hbWUoc3ltdGFiW2ldLm5hbWUpICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg ICBwcmludGsoWEVOTE9HX0VSUiAiJXMlczogZHVwbGljYXRlIG5ldyBzeW1ib2w6ICVzXG4iLAor ICAgICAgICAgICAgICAgICAgICAgICBYU1BMSUNFLCBlbGYtPm5hbWUsIHN5bXRhYltpXS5uYW1l KTsKKyAgICAgICAgICAgICAgICB4ZnJlZShzeW10YWIpOworICAgICAgICAgICAgICAgIHhmcmVl KHN0cnRhYik7CisgICAgICAgICAgICAgICAgcmV0dXJuIC1FRVhJU1Q7CisgICAgICAgICAgICB9 CisgICAgICAgICAgICBzeW10YWJbaV0ubmV3X3N5bWJvbCA9IDE7CisgICAgICAgICAgICBkcHJp bnRrKFhFTkxPR19ERUJVRywgIiVzJXM6IG5ldyBzeW1ib2wgJXNcbiIsCisgICAgICAgICAgICAg ICAgICAgIFhTUExJQ0UsIGVsZi0+bmFtZSwgc3ltdGFiW2ldLm5hbWUpOworICAgICAgICB9Cisg ICAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfREVCVUcs ICIlcyVzOiBvdmVycmlkaW5nIHN5bWJvbCAlc1xuIiwKKyAgICAgICAgICAgICAgICAgICAgWFNQ TElDRSwgZWxmLT5uYW1lLCBzeW10YWJbaV0ubmFtZSk7CisgICAgICAgIH0KICAgICB9CiAKKyAg ICBwYXlsb2FkLT5zeW10YWIgPSBzeW10YWI7CisgICAgcGF5bG9hZC0+c3RydGFiID0gc3RydGFi OworICAgIHBheWxvYWQtPm5zeW1zID0gbnN5bXM7CisKICAgICByZXR1cm4gMDsKIH0KIApAQCAt NDEwLDYgKzU2MCw4IEBAIHN0YXRpYyB2b2lkIGZyZWVfcGF5bG9hZChzdHJ1Y3QgcGF5bG9hZCAq ZGF0YSkKICAgICBwYXlsb2FkX2NudC0tOwogICAgIHBheWxvYWRfdmVyc2lvbisrOwogICAgIGZy ZWVfcGF5bG9hZF9kYXRhKGRhdGEpOworICAgIHhmcmVlKGRhdGEtPnN5bXRhYik7CisgICAgeGZy ZWUoZGF0YS0+c3RydGFiKTsKICAgICB4ZnJlZShkYXRhKTsKIH0KIApAQCAtNDUwLDYgKzYwMiwx MCBAQCBzdGF0aWMgaW50IGxvYWRfcGF5bG9hZF9kYXRhKHN0cnVjdCBwYXlsb2FkICpwYXlsb2Fk LCB2b2lkICpyYXcsIHNzaXplX3QgbGVuKQogICAgIGlmICggcmMgKQogICAgICAgICBnb3RvIG91 dDsKIAorICAgIHJjID0gYnVpbGRfc3ltYm9sX3RhYmxlKHBheWxvYWQsICZlbGYpOworICAgIGlm ICggcmMgKQorICAgICAgICBnb3RvIG91dDsKKwogICAgIHJjID0gc2VjdXJlX3BheWxvYWQocGF5 bG9hZCwgJmVsZik7CiAKICBvdXQ6CkBAIC01MTcsNyArNjczLDExIEBAIHN0YXRpYyBpbnQgeHNw bGljZV91cGxvYWQoeGVuX3N5c2N0bF94c3BsaWNlX3VwbG9hZF90ICp1cGxvYWQpCiAgb3V0Ogog ICAgIHZmcmVlKHJhd19kYXRhKTsKICAgICBpZiAoIHJjICkKKyAgICB7CisgICAgICAgIHhmcmVl KGRhdGEtPnN5bXRhYik7CisgICAgICAgIHhmcmVlKGRhdGEtPnN0cnRhYik7CiAgICAgICAgIHhm cmVlKGRhdGEpOworICAgIH0KIAogICAgIHJldHVybiByYzsKIH0KZGlmZiAtLWdpdCBhL3hlbi9j b21tb24veHNwbGljZV9lbGYuYyBiL3hlbi9jb21tb24veHNwbGljZV9lbGYuYwppbmRleCBlNWMw YjEyLi4yNDhlM2YzIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3hzcGxpY2VfZWxmLmMKKysrIGIv eGVuL2NvbW1vbi94c3BsaWNlX2VsZi5jCkBAIC00LDYgKzQsNyBAQAogCiAjaW5jbHVkZSA8eGVu L2Vycm5vLmg+CiAjaW5jbHVkZSA8eGVuL2xpYi5oPgorI2luY2x1ZGUgPHhlbi9zeW1ib2xzLmg+ CiAjaW5jbHVkZSA8eGVuL3hzcGxpY2VfZWxmLmg+CiAjaW5jbHVkZSA8eGVuL3hzcGxpY2UuaD4K IApAQCAtMjM1LDE1ICsyMzYsMjcgQEAgaW50IHhzcGxpY2VfZWxmX3Jlc29sdmVfc3ltYm9scyhz dHJ1Y3QgeHNwbGljZV9lbGYgKmVsZikKICAgICAgICAgICAgICAgICBicmVhazsKIAogICAgICAg ICAgICAgY2FzZSBTSE5fVU5ERUY6Ci0gICAgICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIg IiVzJXM6IFVua25vd24gc3ltYm9sOiAlc1xuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgWFNQ TElDRSwgZWxmLT5uYW1lLCBlbGYtPnN5bVtpXS5uYW1lKTsKLSAgICAgICAgICAgICAgICByZXR1 cm4gLUVOT0VOVDsKKyAgICAgICAgICAgICAgICBlbGYtPnN5bVtpXS5zeW0tPnN0X3ZhbHVlID0g c3ltYm9sc19sb29rdXBfYnlfbmFtZShlbGYtPnN5bVtpXS5uYW1lKTsKKyAgICAgICAgICAgICAg ICBpZiAoICFlbGYtPnN5bVtpXS5zeW0tPnN0X3ZhbHVlICkKKyAgICAgICAgICAgICAgICB7Cisg ICAgICAgICAgICAgICAgICAgIGVsZi0+c3ltW2ldLnN5bS0+c3RfdmFsdWUgPQorICAgICAgICAg ICAgICAgICAgICAgICAgeHNwbGljZV9zeW1ib2xzX2xvb2t1cF9ieV9uYW1lKGVsZi0+c3ltW2ld Lm5hbWUpOworICAgICAgICAgICAgICAgICAgICBpZiAoICFlbGYtPnN5bVtpXS5zeW0tPnN0X3Zh bHVlICkKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgcHJp bnRrKFhFTkxPR19FUlIgIiVzJXM6IFVua25vd24gc3ltYm9sOiAlc1xuIiwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBYU1BMSUNFLCBlbGYtPm5hbWUsIGVsZi0+c3ltW2ldLm5hbWUp OworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9FTlQ7CisgICAgICAgICAgICAg ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZHByaW50ayhYRU5M T0dfREVCVUcsICIlcyVzOiBVbmRlZmluZWQgc3ltYm9sIHJlc29sdmVkOiAlcyA9PiAweCUiUFJJ eDY0IlxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgWFNQTElDRSwgZWxmLT5uYW1lLCBlbGYt PnN5bVtpXS5uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAodWludDY0X3QpZWxmLT5zeW1b aV0uc3ltLT5zdF92YWx1ZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgICAg IGNhc2UgU0hOX0FCUzoKICAgICAgICAgICAgICAgICBkcHJpbnRrKFhFTkxPR19ERUJVRywgIiVz JXM6IEFic29sdXRlIHN5bWJvbDogJXMgPT4gMHglIlBSSXg2NCJcbiIsCiAgICAgICAgICAgICAg ICAgICAgICAgWFNQTElDRSwgZWxmLT5uYW1lLCBlbGYtPnN5bVtpXS5uYW1lLAotICAgICAgICAg ICAgICAgICAgICAgIGVsZi0+c3ltW2ldLnN5bS0+c3RfdmFsdWUpOworICAgICAgICAgICAgICAg ICAgICAgICh1aW50NjRfdCllbGYtPnN5bVtpXS5zeW0tPnN0X3ZhbHVlKTsKICAgICAgICAgICAg ICAgICBicmVhazsKIAogICAgICAgICAgICAgZGVmYXVsdDoKZGlmZiAtLWdpdCBhL3hlbi9pbmNs dWRlL3hlbi9zeW1ib2xzLmggYi94ZW4vaW5jbHVkZS94ZW4vc3ltYm9scy5oCmluZGV4IGY1OGU2 MTEuLmQ2NzlhYTkgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9zeW1ib2xzLmgKKysrIGIv eGVuL2luY2x1ZGUveGVuL3N5bWJvbHMuaApAQCAtMjMsNCArMjMsNiBAQCBjb25zdCBjaGFyICpz eW1ib2xzX2xvb2t1cCh1bnNpZ25lZCBsb25nIGFkZHIsCiBpbnQgeGVuc3ltc19yZWFkKHVpbnQz Ml90ICpzeW1udW0sIGNoYXIgKnR5cGUsCiAgICAgICAgICAgICAgICAgIHVpbnQ2NF90ICphZGRy ZXNzLCBjaGFyICpuYW1lKTsKIAordWludDY0X3Qgc3ltYm9sc19sb29rdXBfYnlfbmFtZShjb25z dCBjaGFyICpzeW1uYW1lKTsKKwogI2VuZGlmIC8qX1hFTl9TWU1CT0xTX0gqLwpkaWZmIC0tZ2l0 IGEveGVuL2luY2x1ZGUveGVuL3hzcGxpY2UuaCBiL3hlbi9pbmNsdWRlL3hlbi94c3BsaWNlLmgK aW5kZXggMDBiM2NiMi4uOGJjNTVmMyAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL3hzcGxp Y2UuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4veHNwbGljZS5oCkBAIC0zMyw4ICszMywxNiBAQCBz dHJ1Y3QgeHNwbGljZV9wYXRjaF9mdW5jIHsKIC8qIENvbnZlbmllbmNlIGRlZmluZSBmb3IgcHJp bnRrLiAqLwogI2RlZmluZSBYU1BMSUNFICJ4c3BsaWNlOiAiCiAKK3N0cnVjdCB4c3BsaWNlX3N5 bWJvbCB7CisgICAgY29uc3QgY2hhciAqbmFtZTsKKyAgICB1aW50NjRfdCB2YWx1ZTsKKyAgICBz c2l6ZV90IHNpemU7CisgICAgYm9vbF90IG5ld19zeW1ib2w7Cit9OworCiBpbnQgeHNwbGljZV9v cChzdHJ1Y3QgeGVuX3N5c2N0bF94c3BsaWNlX29wICopOwogdm9pZCBjaGVja19mb3JfeHNwbGlj ZV93b3JrKHZvaWQpOwordWludDY0X3QgeHNwbGljZV9zeW1ib2xzX2xvb2t1cF9ieV9uYW1lKGNv bnN0IGNoYXIgKnN5bW5hbWUpOwogCiAvKiBBcmNoIGhvb2tzLiAqLwogaW50IGFyY2hfeHNwbGlj ZV92ZXJpZnlfZWxmKGNvbnN0IHN0cnVjdCB4c3BsaWNlX2VsZiAqZWxmLCB2b2lkICpkYXRhKTsK LS0gCjIuNS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8v bGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK