From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH v2 2/5] xenstore: enhance control command support Date: Tue, 21 Feb 2017 16:07:34 +0100 Message-ID: <20170221150737.30589-3-jgross@suse.com> References: <20170221150737.30589-1-jgross@suse.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 1cgC2Z-0005xE-1O for xen-devel@lists.xenproject.org; Tue, 21 Feb 2017 15:07:43 +0000 In-Reply-To: <20170221150737.30589-1-jgross@suse.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: Juergen Gross , wei.liu2@citrix.com, ian.jackson@eu.citrix.com List-Id: xen-devel@lists.xenproject.org VGhlIFhlbnN0b3JlIHByb3RvY29sIHN1cHBvcnRzIHRoZSBYU19DT05UUk9MIGNvbW1hbmQgZm9y IHRyaWdnZXJpbmcKdmFyaW91cyBhY3Rpb25zIGluIHRoZSBYZW5zdG9yZSBkYWVtb24uIEVuaGFu Y2UgdGhhdCBzdXBwb3J0IGJ5IHVzaW5nCmEgY29tbWFuZCB0YWJsZSBhbmQgYWRkaW5nIGEgaGVs cCBmdW5jdGlvbi4gTW92ZSBhbGwgdGhlIFhTX0NPTlRST0wKcmVsYXRlZCBjb2RlIHRvIGEgbmV3 IHNvdXJjZSBmaWxlIHhlbnN0b3JlZF9jb250cm9sLmMuCgpTdXBwb3J0IG11bHRpcGxlIGNvbnRy b2wgY29tbWFuZHMgaW4gdGhlIGFzc29jaWF0ZWQgeGVuc3RvcmUtY29udHJvbApwcm9ncmFtIHVz ZWQgdG8gaXNzdWUgWFNfQ09OVFJPTCBjb21tYW5kcy4KClNpZ25lZC1vZmYtYnk6IEp1ZXJnZW4g R3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4KLS0tCiB0b29scy94ZW5zdG9yZS9NYWtlZmlsZSAgICAg ICAgICAgIHwgICA0ICstCiB0b29scy94ZW5zdG9yZS94ZW5zdG9yZV9jb250cm9sLmMgIHwgIDY1 ICsrKysrKysrKysrKystLS0tLS0KIHRvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF9jb250cm9sLmMg fCAxMjQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogdG9vbHMveGVuc3Rv cmUveGVuc3RvcmVkX2NvbnRyb2wuaCB8ICAxOSArKysrKysKIHRvb2xzL3hlbnN0b3JlL3hlbnN0 b3JlZF9jb3JlLmMgICAgfCAgMjcgKy0tLS0tLS0KIHRvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF9j b3JlLmggICAgfCAgIDIgKy0KIDYgZmlsZXMgY2hhbmdlZCwgMTk1IGluc2VydGlvbnMoKyksIDQ2 IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRvb2xzL3hlbnN0b3JlL3hlbnN0b3Jl ZF9jb250cm9sLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0b29scy94ZW5zdG9yZS94ZW5zdG9yZWRf Y29udHJvbC5oCgpkaWZmIC0tZ2l0IGEvdG9vbHMveGVuc3RvcmUvTWFrZWZpbGUgYi90b29scy94 ZW5zdG9yZS9NYWtlZmlsZQppbmRleCAzNmI2ZmQ0Li5iZGNhMTA4IDEwMDY0NAotLS0gYS90b29s cy94ZW5zdG9yZS9NYWtlZmlsZQorKysgYi90b29scy94ZW5zdG9yZS9NYWtlZmlsZQpAQCAtMjMs NyArMjMsOSBAQCBMREZMQUdTICs9ICQoTERGTEFHUy15KQogQ0xJRU5UUyA6PSB4ZW5zdG9yZS1l eGlzdHMgeGVuc3RvcmUtbGlzdCB4ZW5zdG9yZS1yZWFkIHhlbnN0b3JlLXJtIHhlbnN0b3JlLWNo bW9kCiBDTElFTlRTICs9IHhlbnN0b3JlLXdyaXRlIHhlbnN0b3JlLWxzIHhlbnN0b3JlLXdhdGNo CiAKLVhFTlNUT1JFRF9PQkpTID0geGVuc3RvcmVkX2NvcmUubyB4ZW5zdG9yZWRfd2F0Y2gubyB4 ZW5zdG9yZWRfZG9tYWluLm8geGVuc3RvcmVkX3RyYW5zYWN0aW9uLm8geHNfbGliLm8gdGFsbG9j Lm8gdXRpbHMubyB0ZGIubyBoYXNodGFibGUubworWEVOU1RPUkVEX09CSlMgPSB4ZW5zdG9yZWRf Y29yZS5vIHhlbnN0b3JlZF93YXRjaC5vIHhlbnN0b3JlZF9kb21haW4ubworWEVOU1RPUkVEX09C SlMgKz0geGVuc3RvcmVkX3RyYW5zYWN0aW9uLm8geGVuc3RvcmVkX2NvbnRyb2wubworWEVOU1RP UkVEX09CSlMgKz0geHNfbGliLm8gdGFsbG9jLm8gdXRpbHMubyB0ZGIubyBoYXNodGFibGUubwog CiBYRU5TVE9SRURfT0JKU18kKENPTkZJR19MaW51eCkgPSB4ZW5zdG9yZWRfcG9zaXgubwogWEVO U1RPUkVEX09CSlNfJChDT05GSUdfU3VuT1MpID0geGVuc3RvcmVkX3NvbGFyaXMubyB4ZW5zdG9y ZWRfcG9zaXgubyB4ZW5zdG9yZWRfcHJvYmVzLm8KZGlmZiAtLWdpdCBhL3Rvb2xzL3hlbnN0b3Jl L3hlbnN0b3JlX2NvbnRyb2wuYyBiL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlX2NvbnRyb2wuYwpp bmRleCAwYTEwOGRmLi5lNDJkNDc4IDEwMDY0NAotLS0gYS90b29scy94ZW5zdG9yZS94ZW5zdG9y ZV9jb250cm9sLmMKKysrIGIvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVfY29udHJvbC5jCkBAIC03 LDI5ICs3LDU2IEBACiAKIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKLSAgc3Ry dWN0IHhzX2hhbmRsZSAqIHhzaDsKKyAgICBzdHJ1Y3QgeHNfaGFuZGxlICp4c2g7CisgICAgY2hh ciAqcGFyID0gTlVMTDsKKyAgICBjaGFyICpyZXQ7CisgICAgdW5zaWduZWQgaW50IHAsIGxlbiA9 IDA7CisgICAgaW50IHJjID0gMDsKIAotICBpZiAoYXJnYyA8IDIgfHwKLSAgICAgIHN0cmNtcChh cmd2WzFdLCAiY2hlY2siKSkKLSAgewotICAgIGZwcmludGYoc3RkZXJyLAotICAgICAgICAgICAg IlVzYWdlOlxuIgotICAgICAgICAgICAgIlxuIgotICAgICAgICAgICAgIiAgICAgICAlcyBjaGVj a1xuIgotICAgICAgICAgICAgIlxuIiwgYXJndlswXSk7Ci0gICAgcmV0dXJuIDI7Ci0gIH0KKyAg ICBpZiAoYXJnYyA8IDIpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJVc2FnZTpcbiIKKyAg ICAgICAgICAgICAgICAiJXMgPGNvbW1hbmQ+IFs8YXJnPi4uLl1cbiIsIGFyZ3ZbMF0pOworICAg ICAgICByZXR1cm4gMjsKKyAgICB9CiAKLSAgeHNoID0geHNfZGFlbW9uX29wZW4oKTsKKyAgICBm b3IgKHAgPSAyOyBwIDwgYXJnYzsgcCsrKQorICAgICAgICBsZW4gKz0gc3RybGVuKGFyZ3ZbcF0p ICsgMTsKKyAgICBpZiAobGVuKSB7CisgICAgICAgIHBhciA9IG1hbGxvYyhsZW4pOworICAgICAg ICBpZiAoIXBhcikgeworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJBbGxvY2F0aW9uIGVy cm9yLlxuIik7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfQorICAgICAgICBsZW4g PSAwOworICAgICAgICBmb3IgKHAgPSAyOyBwIDwgYXJnYzsgcCsrKSB7CisgICAgICAgICAgICBt ZW1jcHkocGFyICsgbGVuLCBhcmd2W3BdLCBzdHJsZW4oYXJndltwXSkgKyAxKTsKKyAgICAgICAg ICAgIGxlbiArPSBzdHJsZW4oYXJndltwXSkgKyAxOworICAgICAgICB9CisgICAgfQogCi0gIGlm ICh4c2ggPT0gTlVMTCkgewotICAgIGZwcmludGYoc3RkZXJyLCAiRmFpbGVkIHRvIGNvbnRhY3Qg WGVuc3RvcmVkLlxuIik7Ci0gICAgcmV0dXJuIDE7Ci0gIH0KKyAgICB4c2ggPSB4c19vcGVuKDAp OworICAgIGlmICh4c2ggPT0gTlVMTCkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkZhaWxl ZCB0byBjb250YWN0IFhlbnN0b3JlZC5cbiIpOworICAgICAgICByZXR1cm4gMTsKKyAgICB9CiAK LSAgeHNfZGVidWdfY29tbWFuZCh4c2gsIGFyZ3ZbMV0sIE5VTEwsIDApOworICAgIHJldCA9IHhz X2RlYnVnX2NvbW1hbmQoeHNoLCBhcmd2WzFdLCBwYXIsIGxlbik7CisgICAgaWYgKCFyZXQpIHsK KyAgICAgICAgcmMgPSAzOworICAgICAgICBpZiAoZXJybm8gPT0gRUlOVkFMKSB7CisgICAgICAg ICAgICByZXQgPSB4c19kZWJ1Z19jb21tYW5kKHhzaCwgImhlbHAiLCBOVUxMLCAwKTsKKyAgICAg ICAgICAgIGlmIChyZXQpCisgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJDb21tYW5k IG5vdCBzdXBwb3J0ZWQuIFZhbGlkIGNvbW1hbmRzIGFyZTpcbiIKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIiVzXG4iLCByZXQpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAg ICAgICAgIGZwcmludGYoc3RkZXJyLCAiRXJyb3Igd2hlbiBleGVjdXRpbmcgY29tbWFuZC5cbiIp OworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRXJyb3IgJWQg d2hlbiB0cnlpbmcgdG8gZXhlY3V0ZSBjb21tYW5kLlxuIiwKKyAgICAgICAgICAgICAgICAgICAg ZXJybm8pOworICAgIH0gZWxzZSBpZiAoc3RybGVuKHJldCkgPiAwKQorICAgICAgICBwcmludGYo IiVzXG4iLCByZXQpOwogCi0gIHhzX2RhZW1vbl9jbG9zZSh4c2gpOworICAgIHhzX2Nsb3NlKHhz aCk7CiAKLSAgcmV0dXJuIDA7CisgICAgcmV0dXJuIHJjOwogfQpkaWZmIC0tZ2l0IGEvdG9vbHMv eGVuc3RvcmUveGVuc3RvcmVkX2NvbnRyb2wuYyBiL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF9j b250cm9sLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzA4MGU0NwotLS0g L2Rldi9udWxsCisrKyBiL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF9jb250cm9sLmMKQEAgLTAs MCArMSwxMjQgQEAKKy8qCisgICAgSW50ZXJhY3RpdmUgY29tbWFuZHMgZm9yIFhlbiBTdG9yZSBE YWVtb24uCisgICAgQ29weXJpZ2h0IChDKSAyMDE3IEp1ZXJnZW4gR3Jvc3MsIFNVU0UgTGludXgg R21iSAorCisgICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICAgIHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisg ICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgcHJvZ3Jh bSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAg IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLiAgU2VlIHRoZQorICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl IGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBJ ZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisqLworCisjaW5jbHVk ZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxzdGRhcmcuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2lu Y2x1ZGUgPHN0cmluZy5oPgorCisjaW5jbHVkZSAidXRpbHMuaCIKKyNpbmNsdWRlICJ0YWxsb2Mu aCIKKyNpbmNsdWRlICJ4ZW5zdG9yZWRfY29yZS5oIgorI2luY2x1ZGUgInhlbnN0b3JlZF9jb250 cm9sLmgiCisKK3N0cnVjdCBjbWRfcyB7CisJY2hhciAqY21kOworCWludCAoKmZ1bmMpKHZvaWQg Kiwgc3RydWN0IGNvbm5lY3Rpb24gKiwgY2hhciAqKiwgaW50KTsKKwljaGFyICpwYXJzOworfTsK Kworc3RhdGljIGludCBkb19jb250cm9sX2NoZWNrKHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rp b24gKmNvbm4sCisJCQkgICAgY2hhciAqKnZlYywgaW50IG51bSkKK3sKKwlpZiAobnVtKQorCQly ZXR1cm4gRUlOVkFMOworCisJY2hlY2tfc3RvcmUoKTsKKworCXNlbmRfYWNrKGNvbm4sIFhTX0NP TlRST0wpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGRvX2NvbnRyb2xfcHJpbnQodm9p ZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKKwkJCSAgICBjaGFyICoqdmVjLCBpbnQg bnVtKQoreworCWlmIChudW0gIT0gMSkKKwkJcmV0dXJuIEVJTlZBTDsKKworCXhwcmludGYoImNv bnRyb2w6ICVzIiwgdmVjWzBdKTsKKworCXNlbmRfYWNrKGNvbm4sIFhTX0NPTlRST0wpOworCXJl dHVybiAwOworfQorCitzdGF0aWMgaW50IGRvX2NvbnRyb2xfaGVscCh2b2lkICosIHN0cnVjdCBj b25uZWN0aW9uICosIGNoYXIgKiosIGludCk7CisKK3N0YXRpYyBzdHJ1Y3QgY21kX3MgY21kc1td ID0geworCXsgImNoZWNrIiwgZG9fY29udHJvbF9jaGVjaywgIiIgfSwKKwl7ICJwcmludCIsIGRv X2NvbnRyb2xfcHJpbnQsICI8c3RyaW5nPiIgfSwKKwl7ICJoZWxwIiwgZG9fY29udHJvbF9oZWxw LCAiIiB9LAorfTsKKworc3RhdGljIGludCBkb19jb250cm9sX2hlbHAodm9pZCAqY3R4LCBzdHJ1 Y3QgY29ubmVjdGlvbiAqY29ubiwKKwkJCSAgIGNoYXIgKip2ZWMsIGludCBudW0pCit7CisJaW50 IGNtZCwgbGVuID0gMDsKKwljaGFyICpyZXNwOworCisJaWYgKG51bSkKKwkJcmV0dXJuIEVJTlZB TDsKKworCWZvciAoY21kID0gMDsgY21kIDwgQVJSQVlfU0laRShjbWRzKTsgY21kKyspIHsKKwkJ bGVuICs9IHN0cmxlbihjbWRzW2NtZF0uY21kKSArIDE7CisJCWxlbiArPSBzdHJsZW4oY21kc1tj bWRdLnBhcnMpICsgMTsKKwl9CisJbGVuKys7CisKKwlyZXNwID0gdGFsbG9jX2FycmF5KGN0eCwg Y2hhciwgbGVuKTsKKwlpZiAoIXJlc3ApCisJCXJldHVybiBFTk9NRU07CisKKwlsZW4gPSAwOwor CWZvciAoY21kID0gMDsgY21kIDwgQVJSQVlfU0laRShjbWRzKTsgY21kKyspIHsKKwkJc3RyY3B5 KHJlc3AgKyBsZW4sIGNtZHNbY21kXS5jbWQpOworCQlsZW4gKz0gc3RybGVuKGNtZHNbY21kXS5j bWQpOworCQlyZXNwW2xlbl0gPSAnXHQnOworCQlsZW4rKzsKKwkJc3RyY3B5KHJlc3AgKyBsZW4s IGNtZHNbY21kXS5wYXJzKTsKKwkJbGVuICs9IHN0cmxlbihjbWRzW2NtZF0ucGFycyk7CisJCXJl c3BbbGVuXSA9ICdcbic7CisJCWxlbisrOworCX0KKwlyZXNwW2xlbl0gPSAwOworCisJc2VuZF9y ZXBseShjb25uLCBYU19DT05UUk9MLCByZXNwLCBsZW4pOworCXJldHVybiAwOworfQorCitpbnQg ZG9fY29udHJvbChzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEg KmluKQoreworCWludCBudW07CisJaW50IGNtZDsKKwljaGFyICoqdmVjOworCisJaWYgKGNvbm4t PmlkICE9IDApCisJCXJldHVybiBFQUNDRVM7CisKKwludW0gPSB4c19jb3VudF9zdHJpbmdzKGlu LT5idWZmZXIsIGluLT51c2VkKTsKKwl2ZWMgPSB0YWxsb2NfYXJyYXkoaW4sIGNoYXIgKiwgbnVt KTsKKwlpZiAoIXZlYykKKwkJcmV0dXJuIEVOT01FTTsKKwlpZiAoZ2V0X3N0cmluZ3MoaW4sIHZl YywgbnVtKSAhPSBudW0pCisJCXJldHVybiBFSU87CisKKwlmb3IgKGNtZCA9IDA7IGNtZCA8IEFS UkFZX1NJWkUoY21kcyk7IGNtZCsrKQorCQlpZiAoc3RyZXEodmVjWzBdLCBjbWRzW2NtZF0uY21k KSkKKwkJCXJldHVybiBjbWRzW2NtZF0uZnVuYyhpbiwgY29ubiwgdmVjICsgMSwgbnVtIC0gMSk7 CisKKwlyZXR1cm4gRUlOVkFMOworfQpkaWZmIC0tZ2l0IGEvdG9vbHMveGVuc3RvcmUveGVuc3Rv cmVkX2NvbnRyb2wuaCBiL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF9jb250cm9sLmgKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjA3ZTBhNgotLS0gL2Rldi9udWxsCisrKyBi L3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF9jb250cm9sLmgKQEAgLTAsMCArMSwxOSBAQAorLyoK KyAgICBJbnRlcmFjdGl2ZSBjb21tYW5kcyBmb3IgWGVuIFN0b3JlIERhZW1vbi4KKyAgICBDb3B5 cmlnaHQgKEMpIDIwMTcgSnVlcmdlbiBHcm9zcywgU1VTRSBMaW51eCBHbWJICisKKyAgICBUaGlz IHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y IG1vZGlmeQorICAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAgICAoYXQgeW91ciBvcHRp b24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVk IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl CisgICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAg IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IElmIG5vdCwgc2VlIDxodHRw Oi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKyovCisKK2ludCBkb19jb250cm9sKHN0cnVjdCBj b25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pOwpkaWZmIC0tZ2l0IGEv dG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX2NvcmUuYyBiL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3Jl ZF9jb3JlLmMKaW5kZXggZTMzMmQ3Zi4uZTBmMTI2MSAxMDA2NDQKLS0tIGEvdG9vbHMveGVuc3Rv cmUveGVuc3RvcmVkX2NvcmUuYworKysgYi90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfY29yZS5j CkBAIC01MSw2ICs1MSw3IEBACiAjaW5jbHVkZSAieGVuc3RvcmVkX3dhdGNoLmgiCiAjaW5jbHVk ZSAieGVuc3RvcmVkX3RyYW5zYWN0aW9uLmgiCiAjaW5jbHVkZSAieGVuc3RvcmVkX2RvbWFpbi5o IgorI2luY2x1ZGUgInhlbnN0b3JlZF9jb250cm9sLmgiCiAjaW5jbHVkZSAidGRiLmgiCiAKICNp bmNsdWRlICJoYXNodGFibGUuaCIKQEAgLTg0LDcgKzg1LDYgQEAgc3RhdGljIFREQl9DT05URVhU ICp0ZGJfY3R4ID0gTlVMTDsKIHN0YXRpYyBib29sIHRyaWdnZXJfdGFsbG9jX3JlcG9ydCA9IGZh bHNlOwogCiBzdGF0aWMgdm9pZCBjb3JydXB0KHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBjb25z dCBjaGFyICpmbXQsIC4uLik7Ci1zdGF0aWMgdm9pZCBjaGVja19zdG9yZSh2b2lkKTsKIHN0YXRp YyBjb25zdCBjaGFyICpzb2NrbXNnX3N0cmluZyhlbnVtIHhzZF9zb2NrbXNnX3R5cGUgdHlwZSk7 CiAKICNkZWZpbmUgbG9nKC4uLikJCQkJCQkJXApAQCAtMTI2MSwyOSArMTI2MSw2IEBAIHN0YXRp YyBpbnQgZG9fc2V0X3Blcm1zKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVy ZWRfZGF0YSAqaW4pCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgZG9fY29udHJvbChzdHJ1 Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQotewotCWludCBu dW07Ci0KLQlpZiAoY29ubi0+aWQgIT0gMCkKLQkJcmV0dXJuIEVBQ0NFUzsKLQotCW51bSA9IHhz X2NvdW50X3N0cmluZ3MoaW4tPmJ1ZmZlciwgaW4tPnVzZWQpOwotCi0JaWYgKHN0cmVxKGluLT5i dWZmZXIsICJwcmludCIpKSB7Ci0JCWlmIChudW0gPCAyKQotCQkJcmV0dXJuIEVJTlZBTDsKLQkJ eHByaW50ZigiY29udHJvbDogJXMiLCBpbi0+YnVmZmVyICsgZ2V0X3N0cmluZyhpbiwgMCkpOwot CX0KLQotCWlmIChzdHJlcShpbi0+YnVmZmVyLCAiY2hlY2siKSkKLQkJY2hlY2tfc3RvcmUoKTsK LQotCXNlbmRfYWNrKGNvbm4sIFhTX0NPTlRST0wpOwotCi0JcmV0dXJuIDA7Ci19Ci0KIHN0YXRp YyBzdHJ1Y3QgewogCWNvbnN0IGNoYXIgKnN0cjsKIAlpbnQgKCpmdW5jKShzdHJ1Y3QgY29ubmVj dGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKTsKQEAgLTE3NjQsNyArMTc0MSw3 IEBAIHN0YXRpYyB2b2lkIGNsZWFuX3N0b3JlKHN0cnVjdCBoYXNodGFibGUgKnJlYWNoYWJsZSkK IH0KIAogCi1zdGF0aWMgdm9pZCBjaGVja19zdG9yZSh2b2lkKQordm9pZCBjaGVja19zdG9yZSh2 b2lkKQogewogCWNoYXIgKiByb290ID0gdGFsbG9jX3N0cmR1cChOVUxMLCAiLyIpOwogCXN0cnVj dCBoYXNodGFibGUgKiByZWFjaGFibGUgPQpkaWZmIC0tZ2l0IGEvdG9vbHMveGVuc3RvcmUveGVu c3RvcmVkX2NvcmUuaCBiL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF9jb3JlLmgKaW5kZXggZjZh NTZmNy4uODljMWQ3NSAxMDA2NDQKLS0tIGEvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX2NvcmUu aAorKysgYi90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfY29yZS5oCkBAIC0xNTgsNyArMTU4LDcg QEAgVERCX0NPTlRFWFQgKnRkYl9jb250ZXh0KHN0cnVjdCBjb25uZWN0aW9uICpjb25uKTsKIGJv b2wgcmVwbGFjZV90ZGIoY29uc3QgY2hhciAqbmV3bmFtZSwgVERCX0NPTlRFWFQgKm5ld3RkYik7 CiAKIHN0cnVjdCBjb25uZWN0aW9uICpuZXdfY29ubmVjdGlvbihjb25ud3JpdGVmbl90ICp3cml0 ZSwgY29ubnJlYWRmbl90ICpyZWFkKTsKLQordm9pZCBjaGVja19zdG9yZSh2b2lkKTsKIAogLyog SXMgdGhpcyBhIHZhbGlkIG5vZGUgbmFtZT8gKi8KIGJvb2wgaXNfdmFsaWRfbm9kZW5hbWUoY29u c3QgY2hhciAqbm9kZSk7Ci0tIAoyLjEwLjIKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0 cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK