From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tamas K Lengyel Subject: [PATCH] vm_event: Implement ARM SMC events Date: Mon, 11 Apr 2016 13:47:22 -0600 Message-ID: <1460404042-31179-1-git-send-email-tamas@tklengyel.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 1apho7-0004VB-0G for xen-devel@lists.xenproject.org; Mon, 11 Apr 2016 19:47:35 +0000 Received: by mail-io0-f169.google.com with SMTP id u185so55702508iod.3 for ; Mon, 11 Apr 2016 12:47:30 -0700 (PDT) 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: Tamas K Lengyel , Wei Liu , Razvan Cojocaru , Stefano Stabellini , Andrew Cooper , Ian Jackson , Julien Grall , Jan Beulich , Keir Fraser , Tamas K Lengyel List-Id: xen-devel@lists.xenproject.org RnJvbTogVGFtYXMgSyBMZW5neWVsIDx0a2xlbmd5ZWxAc2VjLmluLnR1bS5kZT4KClRoZSBBUk0g U01DIGluc3RydWN0aW9ucyBhcmUgYWxyZWFkeSBjb25maWd1cmVkIHRvIHRyYXAgdG8gWGVuIGJ5 IGRlZmF1bHQuIEluCnRoaXMgcGF0Y2ggd2UgYWxsb3cgYSB1c2VyLXNwYWNlIHByb2Nlc3MgaW4g YSBwcml2aWxlZ2VkIGRvbWFpbiB0byByZWNlaXZlCm5vdGlmaWNhdGlvbiBvZiB3aGVuIHN1Y2gg ZXZlbnQgaGFwcGVucyB0aHJvdWdoIHRoZSB2bV9ldmVudCBzdWJzeXN0ZW0uCgpUaGlzIHBhdGNo IHdpbGwgbGlrZWx5IG5lZWRzIHRvIGJlIGJyb2tlbiB1cCBpbnRvIHNldmVyYWwgc21hbGxlciBw YXRjaGVzLgpSaWdodCBub3cgd2hhdCB0aGlzIHBhdGNoIGFkZHMgKGFuZCBjb3VsZCBiZSBicm9r ZW4gaW50byBzbWFsbGVyIHBhdGNoZXMKYWNjb3JkaW5nbHkpOgogICAgLSBJbXBsZW1lbnQgbW9u aXRvcl9vcCBkb21jdGwgaGFuZGxlciBmb3IgU09GVFdBUkVfQlJFQUtQT0lOVHMgb24gQVJNCiAg ICAtIEltcGxlbWVudCB2bV9ldmVudCByZWdpc3RlciBmaWxsL3NldCByb3V0aW5lcyBmb3IgQVJN LiBUaGlzIHJlcXVpcmVkCiAgICAgICAgcmVtb3ZpbmcgdGhlIGZ1bmN0aW9uIGZyb20gY29tbW9u IGFzIHRoZSBmdW5jdGlvbiBwcm90b3R5cGUgbm93CiAgICAgICAgZGlmZmVycyBvbiB0aGUgdHdv IGFyY2hzLgogICAgLSBTZW5kaW5nIG5vdGlmaWNhdGlvbiBhcyBTT0ZUV0FSRV9CUkVBS1BPSU5U IHZtX2V2ZW50IGZyb20gdGhlIFNNQyB0cmFwCiAgICAgICAgaGFuZGxlcnMuCiAgICAtIEV4dGVu ZCB0aGUgeGVuLWFjY2VzcyB0ZXN0IHRvb2wgdG8gcmVjZWl2ZSBTTUMgbm90aWZpY2F0aW9uIGFu ZCBzdGVwCiAgICAgICAgdGhlIFBDIG1hbnVhbGx5IGluIHRoZSByZXBseS4KCkknbSBzZW5kaW5n IGl0IGFzIGFuIFJGQyB0byBnYXRoZXIgZmVlZGJhY2sgb24gd2hhdCBoYXMgYmVlbiBvdmVybG9v a2VkIGluIHRoaXMKcmV2aXNpb24uIFRoaXMgcGF0Y2ggaGFzIGJlZW4gdGVzdGVkIG9uIGEgQ3Vi aWV0cnVjayBib2FyZCBhbmQgd29ya3MgZmluZSwKYnV0IHdvdWxkIHByb2JhYmx5IG5vdCB3b3Jr IG9uIDY0LWJpdCBib2FyZHMuCgpFeGFtcGxlIG91dHB1dDoKCmRvbXUjIGluc21vZCBzbWMua28K WyAgIDU5LjUxODI1OF0gSXNzdWluZyBTTUMhIEZ1bmN0aW9uIEAgYmYwMDAwMDAKCmRvbTAjIC4v eGVuLWFjY2VzcyAxIGJyZWFrcG9pbnQKeGVuYWNjZXNzIGluaXQKbWF4X2dwZm4gPSA0ODAwMApz dGFydGluZyBicmVha3BvaW50IDEKR290IGV2ZW50IGZyb20gWGVuCkdvdCBldmVudCBmcm9tIFhl bgpTTUM6IHBjPWJmMDAwMDIwIGdmbj1iZjAwMCAodmNwdSAwKQoKU2lnbmVkLW9mZi1ieTogVGFt YXMgSyBMZW5neWVsIDx0YW1hc0B0a2xlbmd5ZWwuY29tPgpDYzogUmF6dmFuIENvam9jYXJ1IDxy Y29qb2NhcnVAYml0ZGVmZW5kZXIuY29tPgpDYzogSWFuIEphY2tzb24gPGlhbi5qYWNrc29uQGV1 LmNpdHJpeC5jb20+CkNjOiBTdGVmYW5vIFN0YWJlbGxpbmkgPHN0ZWZhbm8uc3RhYmVsbGluaUBl dS5jaXRyaXguY29tPgpDYzogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KQ2M6IEp1bGll biBHcmFsbCA8anVsaWVuLmdyYWxsQGFybS5jb20+CkNjOiBLZWlyIEZyYXNlciA8a2VpckB4ZW4u b3JnPgpDYzogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpDYzogQW5kcmV3IENvb3Bl ciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KLS0tCiB0b29scy90ZXN0cy94ZW4tYWNjZXNz L3hlbi1hY2Nlc3MuYyB8IDE1ICsrKystLQogeGVuL2FyY2gvYXJtL01ha2VmaWxlICAgICAgICAg ICAgICAgfCAgMiArCiB4ZW4vYXJjaC9hcm0vbW9uaXRvci5jICAgICAgICAgICAgICB8IDY1ICsr KysrKysrKysrKysrKysrKysrKysrKysKIHhlbi9hcmNoL2FybS90cmFwcy5jICAgICAgICAgICAg ICAgIHwgMjAgKysrKysrKy0KIHhlbi9hcmNoL2FybS92bV9ldmVudC5jICAgICAgICAgICAgIHwg OTUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogeGVuL2FyY2gveDg2L2h2 bS9ldmVudC5jICAgICAgICAgICAgfCAgMiArCiB4ZW4vY29tbW9uL3ZtX2V2ZW50LmMgICAgICAg ICAgICAgICB8ICAxIC0KIHhlbi9pbmNsdWRlL2FzbS1hcm0vZG9tYWluLmggICAgICAgIHwgIDUg KysKIHhlbi9pbmNsdWRlL2FzbS1hcm0vbW9uaXRvci5oICAgICAgIHwgMTUgKy0tLS0tCiB4ZW4v aW5jbHVkZS9hc20tYXJtL3ZtX2V2ZW50LmggICAgICB8IDE4ICsrKy0tLS0KIHhlbi9pbmNsdWRl L2FzbS14ODYvdm1fZXZlbnQuaCAgICAgIHwgIDQgKy0KIHhlbi9pbmNsdWRlL3B1YmxpYy92bV9l dmVudC5oICAgICAgIHwgMjYgKysrKysrKysrKwogMTIgZmlsZXMgY2hhbmdlZCwgMjM1IGluc2Vy dGlvbnMoKyksIDMzIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9hcmNoL2Fy bS9tb25pdG9yLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vYXJjaC9hcm0vdm1fZXZlbnQuYwoK ZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3RzL3hlbi1hY2Nlc3MveGVuLWFjY2Vzcy5jIGIvdG9vbHMv dGVzdHMveGVuLWFjY2Vzcy94ZW4tYWNjZXNzLmMKaW5kZXggZWY4OTI0Ni4uYTFjZGU4MiAxMDA2 NDQKLS0tIGEvdG9vbHMvdGVzdHMveGVuLWFjY2Vzcy94ZW4tYWNjZXNzLmMKKysrIGIvdG9vbHMv dGVzdHMveGVuLWFjY2Vzcy94ZW4tYWNjZXNzLmMKQEAgLTMzMyw3ICszMzMsNyBAQCB2b2lkIHVz YWdlKGNoYXIqIHByb2duYW1lKQogewogICAgIGZwcmludGYoc3RkZXJyLCAiVXNhZ2U6ICVzIFst bV0gPGRvbWFpbl9pZD4gd3JpdGV8ZXhlYyIsIHByb2duYW1lKTsKICNpZiBkZWZpbmVkKF9faTM4 Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pCi0gICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwg InxicmVha3BvaW50fGFsdHAybV93cml0ZXxhbHRwMm1fZXhlYyIpOworICAgICAgICAgICAgZnBy aW50ZihzdGRlcnIsICJ8YWx0cDJtX3dyaXRlfGFsdHAybV9leGVjIik7CiAjZW5kaWYKICAgICAg ICAgICAgIGZwcmludGYoc3RkZXJyLAogICAgICAgICAgICAgIlxuIgpAQCAtMzk3LDExICszOTcs MTEgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICAgICAgZGVmYXVsdF9h Y2Nlc3MgPSBYRU5NRU1fYWNjZXNzX3J3OwogICAgICAgICBhZnRlcl9maXJzdF9hY2Nlc3MgPSBY RU5NRU1fYWNjZXNzX3J3eDsKICAgICB9Ci0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5l ZChfX3g4Nl82NF9fKQogICAgIGVsc2UgaWYgKCAhc3RyY21wKGFyZ3ZbMF0sICJicmVha3BvaW50 IikgKQogICAgIHsKICAgICAgICAgYnJlYWtwb2ludCA9IDE7CiAgICAgfQorI2lmIGRlZmluZWQo X19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykKICAgICBlbHNlIGlmICggIXN0cmNtcChh cmd2WzBdLCAiYWx0cDJtX3dyaXRlIikgKQogICAgIHsKICAgICAgICAgZGVmYXVsdF9hY2Nlc3Mg PSBYRU5NRU1fYWNjZXNzX3J4OwpAQCAtNjM0LDcgKzYzNCw4IEBAIGludCBtYWluKGludCBhcmdj LCBjaGFyICphcmd2W10pCiAgICAgICAgICAgICAgICAgcnNwLnUubWVtX2FjY2VzcyA9IHJlcS51 Lm1lbV9hY2Nlc3M7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIFZN X0VWRU5UX1JFQVNPTl9TT0ZUV0FSRV9CUkVBS1BPSU5UOgotICAgICAgICAgICAgICAgIHByaW50 ZigiQnJlYWtwb2ludDogcmlwPSUwMTYiUFJJeDY0IiwgZ2ZuPSUiUFJJeDY0IiAodmNwdSAlZClc biIsCisjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKQorICAgICAg ICAgICAgICAgIHByaW50ZigiQnJlYWtwb2ludDogcmlwPSUiUFJJeDY0IiBnZm49JSJQUkl4NjQi ICh2Y3B1ICVkKVxuIiwKICAgICAgICAgICAgICAgICAgICAgICAgcmVxLmRhdGEucmVncy54ODYu cmlwLAogICAgICAgICAgICAgICAgICAgICAgICByZXEudS5zb2Z0d2FyZV9icmVha3BvaW50Lmdm biwKICAgICAgICAgICAgICAgICAgICAgICAgcmVxLnZjcHVfaWQpOwpAQCAtNjQ5LDcgKzY1MCwx NSBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogICAgICAgICAgICAgICAgICAg ICBpbnRlcnJ1cHRlZCA9IC0xOwogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAg ICAgICAgICAgICB9CisjZWxpZiBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19hYXJjaDY0 X18pCisgICAgICAgICAgICAgICAgcHJpbnRmKCJTTUM6IHBjPSUiUFJJeDY0IiAodmNwdSAlZClc biIsCisgICAgICAgICAgICAgICAgICAgICAgIHJlcS5kYXRhLnJlZ3MuYXJtLnBjLAorICAgICAg ICAgICAgICAgICAgICAgICByZXEudmNwdV9pZCk7CiAKKyAgICAgICAgICAgICAgICByc3AuZGF0 YS5yZWdzLmFybSA9IHJlcS5kYXRhLnJlZ3MuYXJtOworICAgICAgICAgICAgICAgIHJzcC5kYXRh LnJlZ3MuYXJtLnBjICs9IDQ7CisgICAgICAgICAgICAgICAgcnNwLmZsYWdzIHw9IFZNX0VWRU5U X0ZMQUdfU0VUX1JFR0lTVEVSUzsKKyNlbmRpZgogICAgICAgICAgICAgICAgIGJyZWFrOwogICAg ICAgICAgICAgY2FzZSBWTV9FVkVOVF9SRUFTT05fU0lOR0xFU1RFUDoKICAgICAgICAgICAgICAg ICBwcmludGYoIlNpbmdsZXN0ZXA6IHJpcD0lMDE2IlBSSXg2NCIsIHZjcHUgJWRcbiIsCmRpZmYg LS1naXQgYS94ZW4vYXJjaC9hcm0vTWFrZWZpbGUgYi94ZW4vYXJjaC9hcm0vTWFrZWZpbGUKaW5k ZXggMDMyOGI1MC4uMTE4YmU5OSAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL01ha2VmaWxlCisr KyBiL3hlbi9hcmNoL2FybS9NYWtlZmlsZQpAQCAtNDAsNiArNDAsOCBAQCBvYmoteSArPSBkZXZp Y2Uubwogb2JqLXkgKz0gZGVjb2RlLm8KIG9iai15ICs9IHByb2Nlc3Nvci5vCiBvYmoteSArPSBz bWMubworb2JqLXkgKz0gbW9uaXRvci5vCitvYmoteSArPSB2bV9ldmVudC5vCiAKICNvYmotYmlu LXkgKz0gLi4uLm8KIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL21vbml0b3IuYyBiL3hlbi9h cmNoL2FybS9tb25pdG9yLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDli ZmRkYgotLS0gL2Rldi9udWxsCisrKyBiL3hlbi9hcmNoL2FybS9tb25pdG9yLmMKQEAgLTAsMCAr MSw2NSBAQAorLyoKKyAqIGFyY2gveDg2L21vbml0b3IuYworICoKKyAqIEFyY2gtc3BlY2lmaWMg bW9uaXRvcl9vcCBkb21jdGwgaGFuZGxlci4KKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMTUtMjAx NiBUYW1hcyBLIExlbmd5ZWwgKHRhbWFzQHRrbGVuZ3llbC5jb20pCisgKiBDb3B5cmlnaHQgKGMp IDIwMTYsIEJpdGRlZmVuZGVyIFMuUi5MLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2MiBhcyBw dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBUaGlzIHBy b2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh cnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y ZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsg SWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorICovCisKKyNpbmNs dWRlIDxhc20vbW9uaXRvci5oPgorI2luY2x1ZGUgPHB1YmxpYy92bV9ldmVudC5oPgorCitpbnQg YXJjaF9tb25pdG9yX2RvbWN0bF9ldmVudChzdHJ1Y3QgZG9tYWluICpkLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RydWN0IHhlbl9kb21jdGxfbW9uaXRvcl9vcCAqbW9wKQorewor ICAgIHN0cnVjdCBhcmNoX2RvbWFpbiAqYWQgPSAmZC0+YXJjaDsKKyAgICBib29sX3QgcmVxdWVz dGVkX3N0YXR1cyA9IChYRU5fRE9NQ1RMX01PTklUT1JfT1BfRU5BQkxFID09IG1vcC0+b3ApOwor CisgICAgc3dpdGNoICggbW9wLT5ldmVudCApCisgICAgeworICAgIGNhc2UgWEVOX0RPTUNUTF9N T05JVE9SX0VWRU5UX1NPRlRXQVJFX0JSRUFLUE9JTlQ6CisgICAgeworICAgICAgICBib29sX3Qg b2xkX3N0YXR1cyA9IGFkLT5tb25pdG9yLnNvZnR3YXJlX2JyZWFrcG9pbnRfZW5hYmxlZDsKKwor ICAgICAgICBpZiAoIHVubGlrZWx5KG9sZF9zdGF0dXMgPT0gcmVxdWVzdGVkX3N0YXR1cykgKQor ICAgICAgICAgICAgcmV0dXJuIC1FRVhJU1Q7CisKKyAgICAgICAgZG9tYWluX3BhdXNlKGQpOwor ICAgICAgICBhZC0+bW9uaXRvci5zb2Z0d2FyZV9icmVha3BvaW50X2VuYWJsZWQgPSByZXF1ZXN0 ZWRfc3RhdHVzOworICAgICAgICBkb21haW5fdW5wYXVzZShkKTsKKyAgICAgICAgYnJlYWs7Cisg ICAgfQorCisgICAgZGVmYXVsdDoKKyAgICAgICAgLyoKKyAgICAgICAgICogU2hvdWxkIG5vdCBi ZSByZWFjaGVkIHVubGVzcyB2bV9ldmVudF9tb25pdG9yX2dldF9jYXBhYmlsaXRpZXMoKSBpcwor ICAgICAgICAgKiBub3QgcHJvcGVybHkgaW1wbGVtZW50ZWQuCisgICAgICAgICAqLworICAgICAg ICBBU1NFUlRfVU5SRUFDSEFCTEUoKTsKKyAgICAgICAgcmV0dXJuIC1FT1BOT1RTVVBQOworICAg IH0KKworICAgIHJldHVybiAwOworfQorCisvKgorICogTG9jYWwgdmFyaWFibGVzOgorICogbW9k ZTogQworICogYy1maWxlLXN0eWxlOiAiQlNEIgorICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAqIGlu ZGVudC10YWJzLW1vZGU6IG5pbAorICogRW5kOgorICovCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9h cm0vdHJhcHMuYyBiL3hlbi9hcmNoL2FybS90cmFwcy5jCmluZGV4IDgzNzQ0ZTguLjljMDE4Yzkg MTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS90cmFwcy5jCisrKyBiL3hlbi9hcmNoL2FybS90cmFw cy5jCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSA8YXNtL21taW8uaD4KICNpbmNsdWRlIDxh c20vY3B1ZmVhdHVyZS5oPgogI2luY2x1ZGUgPGFzbS9mbHVzaHRsYi5oPgorI2luY2x1ZGUgPGFz bS92bV9ldmVudC5oPgogCiAjaW5jbHVkZSAiZGVjb2RlLmgiCiAjaW5jbHVkZSAidnRpbWVyLmgi CkBAIC0yNDQ5LDYgKzI0NTAsMjEgQEAgYmFkX2RhdGFfYWJvcnQ6CiAgICAgaW5qZWN0X2RhYnRf ZXhjZXB0aW9uKHJlZ3MsIGluZm8uZ3ZhLCBoc3IubGVuKTsKIH0KIAorc3RhdGljIHZvaWQgZG9f dHJhcF9zbWMoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCit7CisgICAgaW50IHJjID0gMDsK KyAgICBpZiAoIGN1cnJlbnQtPmRvbWFpbi0+YXJjaC5tb25pdG9yLnNvZnR3YXJlX2JyZWFrcG9p bnRfZW5hYmxlZCApCisgICAgeworICAgICAgICByYyA9IHZtX2V2ZW50X3NtYyhyZWdzKTsKKyAg ICB9CisKKyAgICBpZiAoIHJjICE9IDEgKQorICAgIHsKKyAgICAgICAgR1VFU1RfQlVHX09OKCFw c3JfbW9kZV9pc18zMmJpdChyZWdzLT5jcHNyKSk7CisgICAgICAgIGluamVjdF91bmRlZjMyX2V4 Y2VwdGlvbihyZWdzKTsKKyAgICB9Cit9CisKIHN0YXRpYyB2b2lkIGVudGVyX2h5cGVydmlzb3Jf aGVhZChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKIHsKICAgICBpZiAoIGd1ZXN0X21vZGUo cmVncykgKQpAQCAtMjUyNCw3ICsyNTQwLDcgQEAgYXNtbGlua2FnZSB2b2lkIGRvX3RyYXBfaHlw ZXJ2aXNvcihzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKICAgICAgICAgICovCiAgICAgICAg IEdVRVNUX0JVR19PTighcHNyX21vZGVfaXNfMzJiaXQocmVncy0+Y3BzcikpOwogICAgICAgICBw ZXJmY19pbmNyKHRyYXBfc21jMzIpOwotICAgICAgICBpbmplY3RfdW5kZWYzMl9leGNlcHRpb24o cmVncyk7CisgICAgICAgIGRvX3RyYXBfc21jKHJlZ3MpOwogICAgICAgICBicmVhazsKICAgICBj YXNlIEhTUl9FQ19IVkMzMjoKICAgICAgICAgR1VFU1RfQlVHX09OKCFwc3JfbW9kZV9pc18zMmJp dChyZWdzLT5jcHNyKSk7CkBAIC0yNTU3LDcgKzI1NzMsNyBAQCBhc21saW5rYWdlIHZvaWQgZG9f dHJhcF9oeXBlcnZpc29yKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAgICAgICAgKi8K ICAgICAgICAgR1VFU1RfQlVHX09OKHBzcl9tb2RlX2lzXzMyYml0KHJlZ3MtPmNwc3IpKTsKICAg ICAgICAgcGVyZmNfaW5jcih0cmFwX3NtYzY0KTsKLSAgICAgICAgaW5qZWN0X3VuZGVmNjRfZXhj ZXB0aW9uKHJlZ3MsIGhzci5sZW4pOworICAgICAgICBkb190cmFwX3NtYyhyZWdzKTsKICAgICAg ICAgYnJlYWs7CiAgICAgY2FzZSBIU1JfRUNfU1lTUkVHOgogICAgICAgICBHVUVTVF9CVUdfT04o cHNyX21vZGVfaXNfMzJiaXQocmVncy0+Y3BzcikpOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJt L3ZtX2V2ZW50LmMgYi94ZW4vYXJjaC9hcm0vdm1fZXZlbnQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi5kOTk3MzEzCi0tLSAvZGV2L251bGwKKysrIGIveGVuL2FyY2gvYXJt L3ZtX2V2ZW50LmMKQEAgLTAsMCArMSw5NSBAQAorLyoKKyAqIGFyY2gvYXJtL3ZtX2V2ZW50LmMK KyAqCisgKiBBcmNoaXRlY3R1cmUtc3BlY2lmaWMgdm1fZXZlbnQgaGFuZGxpbmcgcm91dGluZXMK KyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMTUgVGFtYXMgSyBMZW5neWVsICh0YW1hc0B0a2xlbmd5 ZWwuY29tKQorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2MiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl IEdOVQorICogR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAq IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YworICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgSWYgbm90LCBzZWUgPGh0dHA6 Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorICovCisKKyNpbmNsdWRlIDx4ZW4vc2NoZWQuaD4K KyNpbmNsdWRlIDxhc20vdm1fZXZlbnQuaD4KKworc3RhdGljIGlubGluZQordm9pZCB2bV9ldmVu dF9maWxsX3JlZ3Modm1fZXZlbnRfcmVxdWVzdF90ICpyZXEsCisgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKK3sKKyAgICByZXEtPmRhdGEu cmVncy5hcm0ucjAgPSByZWdzLT5yMDsKKyAgICByZXEtPmRhdGEucmVncy5hcm0ucjEgPSByZWdz LT5yMTsKKyAgICByZXEtPmRhdGEucmVncy5hcm0ucjIgPSByZWdzLT5yMjsKKyAgICByZXEtPmRh dGEucmVncy5hcm0ucjMgPSByZWdzLT5yMzsKKyAgICByZXEtPmRhdGEucmVncy5hcm0ucjQgPSBy ZWdzLT5yNDsKKyAgICByZXEtPmRhdGEucmVncy5hcm0ucjUgPSByZWdzLT5yNTsKKyAgICByZXEt PmRhdGEucmVncy5hcm0ucjYgPSByZWdzLT5yNjsKKyAgICByZXEtPmRhdGEucmVncy5hcm0ucjcg PSByZWdzLT5yNzsKKyAgICByZXEtPmRhdGEucmVncy5hcm0ucjggPSByZWdzLT5yODsKKyAgICBy ZXEtPmRhdGEucmVncy5hcm0ucjkgPSByZWdzLT5yOTsKKyAgICByZXEtPmRhdGEucmVncy5hcm0u cjEwID0gcmVncy0+cjEwOworICAgIHJlcS0+ZGF0YS5yZWdzLmFybS5yMTEgPSByZWdzLT5yMTE7 CisgICAgcmVxLT5kYXRhLnJlZ3MuYXJtLnIxMiA9IHJlZ3MtPnIxMjsKKyAgICByZXEtPmRhdGEu cmVncy5hcm0uc3AgPSByZWdzLT5zcDsKKyAgICByZXEtPmRhdGEucmVncy5hcm0ubHIgPSByZWdz LT5scjsKKyAgICByZXEtPmRhdGEucmVncy5hcm0ucGMgPSByZWdzLT5wYzsKKyAgICByZXEtPmRh dGEucmVncy5hcm0uY3BzciA9IHJlZ3MtPmNwc3I7CisgICAgcmVxLT5kYXRhLnJlZ3MuYXJtLnR0 YnIwID0gUkVBRF9TWVNSRUc2NChUVEJSMF9FTDEpOworICAgIHJlcS0+ZGF0YS5yZWdzLmFybS50 dGJyMSA9IFJFQURfU1lTUkVHNjQoVFRCUjFfRUwxKTsKK30KKwordm9pZCB2bV9ldmVudF9zZXRf cmVnaXN0ZXJzKHN0cnVjdCB2Y3B1ICp2LCB2bV9ldmVudF9yZXNwb25zZV90ICpyc3ApCit7Cisg ICAgdi0+YXJjaC5jcHVfaW5mby0+Z3Vlc3RfY3B1X3VzZXJfcmVncy5yMCA9IHJzcC0+ZGF0YS5y ZWdzLmFybS5yMDsKKyAgICB2LT5hcmNoLmNwdV9pbmZvLT5ndWVzdF9jcHVfdXNlcl9yZWdzLnIx ID0gcnNwLT5kYXRhLnJlZ3MuYXJtLnIxOworICAgIHYtPmFyY2guY3B1X2luZm8tPmd1ZXN0X2Nw dV91c2VyX3JlZ3MucjIgPSByc3AtPmRhdGEucmVncy5hcm0ucjI7CisgICAgdi0+YXJjaC5jcHVf aW5mby0+Z3Vlc3RfY3B1X3VzZXJfcmVncy5yMyA9IHJzcC0+ZGF0YS5yZWdzLmFybS5yMzsKKyAg ICB2LT5hcmNoLmNwdV9pbmZvLT5ndWVzdF9jcHVfdXNlcl9yZWdzLnI0ID0gcnNwLT5kYXRhLnJl Z3MuYXJtLnI0OworICAgIHYtPmFyY2guY3B1X2luZm8tPmd1ZXN0X2NwdV91c2VyX3JlZ3MucjUg PSByc3AtPmRhdGEucmVncy5hcm0ucjU7CisgICAgdi0+YXJjaC5jcHVfaW5mby0+Z3Vlc3RfY3B1 X3VzZXJfcmVncy5yNiA9IHJzcC0+ZGF0YS5yZWdzLmFybS5yNjsKKyAgICB2LT5hcmNoLmNwdV9p bmZvLT5ndWVzdF9jcHVfdXNlcl9yZWdzLnI3ID0gcnNwLT5kYXRhLnJlZ3MuYXJtLnI3OworICAg IHYtPmFyY2guY3B1X2luZm8tPmd1ZXN0X2NwdV91c2VyX3JlZ3MucjggPSByc3AtPmRhdGEucmVn cy5hcm0ucjg7CisgICAgdi0+YXJjaC5jcHVfaW5mby0+Z3Vlc3RfY3B1X3VzZXJfcmVncy5yOSA9 IHJzcC0+ZGF0YS5yZWdzLmFybS5yOTsKKyAgICB2LT5hcmNoLmNwdV9pbmZvLT5ndWVzdF9jcHVf dXNlcl9yZWdzLnIxMCA9IHJzcC0+ZGF0YS5yZWdzLmFybS5yMTA7CisgICAgdi0+YXJjaC5jcHVf aW5mby0+Z3Vlc3RfY3B1X3VzZXJfcmVncy5yMTEgPSByc3AtPmRhdGEucmVncy5hcm0ucjExOwor ICAgIHYtPmFyY2guY3B1X2luZm8tPmd1ZXN0X2NwdV91c2VyX3JlZ3MucjEyID0gcnNwLT5kYXRh LnJlZ3MuYXJtLnIxMjsKKyAgICB2LT5hcmNoLmNwdV9pbmZvLT5ndWVzdF9jcHVfdXNlcl9yZWdz LnNwID0gcnNwLT5kYXRhLnJlZ3MuYXJtLnNwOworICAgIHYtPmFyY2guY3B1X2luZm8tPmd1ZXN0 X2NwdV91c2VyX3JlZ3MubHIgPSByc3AtPmRhdGEucmVncy5hcm0ubHI7CisgICAgdi0+YXJjaC5j cHVfaW5mby0+Z3Vlc3RfY3B1X3VzZXJfcmVncy5wYyA9IHJzcC0+ZGF0YS5yZWdzLmFybS5wYzsK KyAgICB2LT5hcmNoLmNwdV9pbmZvLT5ndWVzdF9jcHVfdXNlcl9yZWdzLmNwc3IgPSByc3AtPmRh dGEucmVncy5hcm0uY3BzcjsKKyAgICB2LT5hcmNoLnR0YnIwID0gcnNwLT5kYXRhLnJlZ3MuYXJt LnR0YnIwOworICAgIHYtPmFyY2gudHRicjEgPSByc3AtPmRhdGEucmVncy5hcm0udHRicjE7Cit9 CisKK2ludCB2bV9ldmVudF9zbWMoY29uc3Qgc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpIHsK KyAgICBzdHJ1Y3QgdmNwdSAqY3VyciA9IGN1cnJlbnQ7CisgICAgc3RydWN0IGFyY2hfZG9tYWlu ICphZCA9ICZjdXJyLT5kb21haW4tPmFyY2g7CisgICAgdm1fZXZlbnRfcmVxdWVzdF90IHJlcSA9 IHsgMCB9OworCisgICAgaWYgKCAhYWQtPm1vbml0b3Iuc29mdHdhcmVfYnJlYWtwb2ludF9lbmFi bGVkICkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXEucmVhc29uID0gVk1fRVZFTlRfUkVB U09OX1NPRlRXQVJFX0JSRUFLUE9JTlQ7CisgICAgcmVxLnZjcHVfaWQgPSBjdXJyLT52Y3B1X2lk OworCisgICAgdm1fZXZlbnRfZmlsbF9yZWdzKCZyZXEsIHJlZ3MpOworCisgICAgcmV0dXJuIHZt X2V2ZW50X21vbml0b3JfdHJhcHMoY3VyciwgMSwgJnJlcSk7Cit9CisKKy8qCisgKiBMb2NhbCB2 YXJpYWJsZXM6CisgKiBtb2RlOiBDCisgKiBjLWZpbGUtc3R5bGU6ICJCU0QiCisgKiBjLWJhc2lj LW9mZnNldDogNAorICogaW5kZW50LXRhYnMtbW9kZTogbmlsCisgKiBFbmQ6CisgKi8KZGlmZiAt LWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vZXZlbnQuYyBiL3hlbi9hcmNoL3g4Ni9odm0vZXZlbnQu YwppbmRleCA1NmM1NTE0Li5mN2QxNDE4IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2V2 ZW50LmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9ldmVudC5jCkBAIC00Nyw2ICs0Nyw3IEBAIGJv b2xfdCBodm1fZXZlbnRfY3IodW5zaWduZWQgaW50IGluZGV4LCB1bnNpZ25lZCBsb25nIHZhbHVl LCB1bnNpZ25lZCBsb25nIG9sZCkKICAgICAgICAgICAgIC51LndyaXRlX2N0cmxyZWcub2xkX3Zh bHVlID0gb2xkCiAgICAgICAgIH07CiAKKyAgICAgICAgdm1fZXZlbnRfZmlsbF9yZWdzKCZyZXEp OwogICAgICAgICB2bV9ldmVudF9tb25pdG9yX3RyYXBzKGN1cnIsIHN5bmMsICZyZXEpOwogICAg ICAgICByZXR1cm4gMTsKICAgICB9CkBAIC0xMTUsNiArMTE2LDcgQEAgaW50IGh2bV9ldmVudF9i cmVha3BvaW50KHVuc2lnbmVkIGxvbmcgcmlwLAogICAgIH0KIAogICAgIHJlcS52Y3B1X2lkID0g Y3Vyci0+dmNwdV9pZDsKKyAgICB2bV9ldmVudF9maWxsX3JlZ3MoJnJlcSk7CiAKICAgICByZXR1 cm4gdm1fZXZlbnRfbW9uaXRvcl90cmFwcyhjdXJyLCAxLCAmcmVxKTsKIH0KZGlmZiAtLWdpdCBh L3hlbi9jb21tb24vdm1fZXZlbnQuYyBiL3hlbi9jb21tb24vdm1fZXZlbnQuYwppbmRleCAyOTA2 NDA3Li5hMjliZGE4IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3ZtX2V2ZW50LmMKKysrIGIveGVu L2NvbW1vbi92bV9ldmVudC5jCkBAIC04MTgsNyArODE4LDYgQEAgaW50IHZtX2V2ZW50X21vbml0 b3JfdHJhcHMoc3RydWN0IHZjcHUgKnYsIHVpbnQ4X3Qgc3luYywKICAgICAgICAgcmVxLT5hbHRw Mm1faWR4ID0gYWx0cDJtX3ZjcHVfaWR4KHYpOwogICAgIH0KIAotICAgIHZtX2V2ZW50X2ZpbGxf cmVncyhyZXEpOwogICAgIHZtX2V2ZW50X3B1dF9yZXF1ZXN0KGQsICZkLT52bV9ldmVudC0+bW9u aXRvciwgcmVxKTsKIAogICAgIHJldHVybiAxOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNt LWFybS9kb21haW4uaCBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vZG9tYWluLmgKaW5kZXggYzM1ZWQ0 MC4uYjJlYjEwMSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLWFybS9kb21haW4uaAorKysg Yi94ZW4vaW5jbHVkZS9hc20tYXJtL2RvbWFpbi5oCkBAIC0xMjksNiArMTI5LDExIEBAIHN0cnVj dCBhcmNoX2RvbWFpbgogICAgIHBhZGRyX3QgZWZpX2FjcGlfZ3BhOwogICAgIHBhZGRyX3QgZWZp X2FjcGlfbGVuOwogI2VuZGlmCisKKyAgICAvKiBNb25pdG9yIG9wdGlvbnMgKi8KKyAgICBzdHJ1 Y3QgeworICAgICAgICB1aW50OF90IHNvZnR3YXJlX2JyZWFrcG9pbnRfZW5hYmxlZCA6IDE7Cisg ICAgfSBtb25pdG9yOwogfSAgX19jYWNoZWxpbmVfYWxpZ25lZDsKIAogc3RydWN0IGFyY2hfdmNw dQpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLWFybS9tb25pdG9yLmggYi94ZW4vaW5jbHVk ZS9hc20tYXJtL21vbml0b3IuaAppbmRleCA2ZTM2ZTk5Li5lMWMyZmYyIDEwMDY0NAotLS0gYS94 ZW4vaW5jbHVkZS9hc20tYXJtL21vbml0b3IuaAorKysgYi94ZW4vaW5jbHVkZS9hc20tYXJtL21v bml0b3IuaApAQCAtMyw3ICszLDcgQEAKICAqCiAgKiBBcmNoLXNwZWNpZmljIG1vbml0b3Jfb3Ag ZG9tY3RsIGhhbmRsZXIuCiAgKgotICogQ29weXJpZ2h0IChjKSAyMDE1IFRhbWFzIEsgTGVuZ3ll bCAodGFtYXNAdGtsZW5neWVsLmNvbSkKKyAqIENvcHlyaWdodCAoYykgMjAxNS0yMDE2IFRhbWFz IEsgTGVuZ3llbCAodGFtYXNAdGtsZW5neWVsLmNvbSkKICAqIENvcHlyaWdodCAoYykgMjAxNiwg Qml0ZGVmZW5kZXIgUy5SLkwuCiAgKgogICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7 IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMzIsMTggKzMyLDcgQEAgaW50IGFy Y2hfbW9uaXRvcl9kb21jdGxfb3Aoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IHhlbl9kb21jdGxf bW9uaXRvcl9vcCAqbW9wKQogICAgIHJldHVybiAtRU9QTk9UU1VQUDsKIH0KIAotc3RhdGljIGlu bGluZQogaW50IGFyY2hfbW9uaXRvcl9kb21jdGxfZXZlbnQoc3RydWN0IGRvbWFpbiAqZCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB4ZW5fZG9tY3RsX21vbml0b3Jfb3Ag Km1vcCkKLXsKLSAgICAvKgotICAgICAqIE5vIGFyY2gtc3BlY2lmaWMgbW9uaXRvciB2bS1ldmVu dHMgb24gQVJNLgotICAgICAqCi0gICAgICogU2hvdWxkIG5vdCBiZSByZWFjaGVkIHVubGVzcyB2 bV9ldmVudF9tb25pdG9yX2dldF9jYXBhYmlsaXRpZXMoKSBpcyBub3QKLSAgICAgKiBwcm9wZXJs eSBpbXBsZW1lbnRlZC4KLSAgICAgKi8KLSAgICBBU1NFUlRfVU5SRUFDSEFCTEUoKTsKLSAgICBy ZXR1cm4gLUVPUE5PVFNVUFA7Ci19CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1 Y3QgeGVuX2RvbWN0bF9tb25pdG9yX29wICptb3ApOwogCiAjZW5kaWYgLyogX19BU01fQVJNX01P TklUT1JfSF9fICovCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20tYXJtL3ZtX2V2ZW50Lmgg Yi94ZW4vaW5jbHVkZS9hc20tYXJtL3ZtX2V2ZW50LmgKaW5kZXggMDE0ZDliYS4uZTQ1MjZmYyAx MDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLWFybS92bV9ldmVudC5oCisrKyBiL3hlbi9pbmNs dWRlL2FzbS1hcm0vdm1fZXZlbnQuaApAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiB2bV9ldmVudC5o OiBhcmNoaXRlY3R1cmUgc3BlY2lmaWMgdm1fZXZlbnQgaGFuZGxpbmcgcm91dGluZXMKICAqCi0g KiBDb3B5cmlnaHQgKGMpIDIwMTUgVGFtYXMgSyBMZW5neWVsICh0YW1hc0B0a2xlbmd5ZWwuY29t KQorICogQ29weXJpZ2h0IChjKSAyMDE1LTIwMTYgVGFtYXMgSyBMZW5neWVsICh0YW1hc0B0a2xl bmd5ZWwuY29tKQogICoKICAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0CiAgKiB1bmRlciB0aGUgdGVybXMgYW5k IGNvbmRpdGlvbnMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLApAQCAtNDgsMjQg KzQ4LDE4IEBAIHZvaWQgdm1fZXZlbnRfcmVnaXN0ZXJfd3JpdGVfcmVzdW1lKHN0cnVjdCB2Y3B1 ICp2LCB2bV9ldmVudF9yZXNwb25zZV90ICpyc3ApCiAgICAgLyogTm90IHN1cHBvcnRlZCBvbiBB Uk0uICovCiB9CiAKLXN0YXRpYyBpbmxpbmUKLXZvaWQgdm1fZXZlbnRfc2V0X3JlZ2lzdGVycyhz dHJ1Y3QgdmNwdSAqdiwgdm1fZXZlbnRfcmVzcG9uc2VfdCAqcnNwKQotewotICAgIC8qIE5vdCBz dXBwb3J0ZWQgb24gQVJNLiAqLwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgdm1fZXZlbnRfZmls bF9yZWdzKHZtX2V2ZW50X3JlcXVlc3RfdCAqcmVxKQotewotICAgIC8qIE5vdCBzdXBwb3J0ZWQg b24gQVJNLiAqLwotfQordm9pZCB2bV9ldmVudF9zZXRfcmVnaXN0ZXJzKHN0cnVjdCB2Y3B1ICp2 LCB2bV9ldmVudF9yZXNwb25zZV90ICpyc3ApOwogCiBzdGF0aWMgaW5saW5lIHVpbnQzMl90IHZt X2V2ZW50X21vbml0b3JfZ2V0X2NhcGFiaWxpdGllcyhzdHJ1Y3QgZG9tYWluICpkKQogewogICAg IHVpbnQzMl90IGNhcGFiaWxpdGllcyA9IDA7CiAKLSAgICBjYXBhYmlsaXRpZXMgPSAoMVUgPDwg WEVOX0RPTUNUTF9NT05JVE9SX0VWRU5UX0dVRVNUX1JFUVVFU1QpOworICAgIGNhcGFiaWxpdGll cyA9ICgxVSA8PCBYRU5fRE9NQ1RMX01PTklUT1JfRVZFTlRfR1VFU1RfUkVRVUVTVCB8CisgICAg ICAgICAgICAgICAgICAgIDFVIDw8IFhFTl9ET01DVExfTU9OSVRPUl9FVkVOVF9TT0ZUV0FSRV9C UkVBS1BPSU5UKTsKIAogICAgIHJldHVybiBjYXBhYmlsaXRpZXM7CiB9CiAKK2ludCB2bV9ldmVu dF9zbWMoY29uc3Qgc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpOworCiAjZW5kaWYgLyogX19B U01fQVJNX1ZNX0VWRU5UX0hfXyAqLwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni92 bV9ldmVudC5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni92bV9ldmVudC5oCmluZGV4IDA0NzAyNDAu LmRlNzgxNmYgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvdm1fZXZlbnQuaAorKysg Yi94ZW4vaW5jbHVkZS9hc20teDg2L3ZtX2V2ZW50LmgKQEAgLTQyLDggKzQyLDYgQEAgdm9pZCB2 bV9ldmVudF9yZWdpc3Rlcl93cml0ZV9yZXN1bWUoc3RydWN0IHZjcHUgKnYsIHZtX2V2ZW50X3Jl c3BvbnNlX3QgKnJzcCk7CiAKIHZvaWQgdm1fZXZlbnRfc2V0X3JlZ2lzdGVycyhzdHJ1Y3QgdmNw dSAqdiwgdm1fZXZlbnRfcmVzcG9uc2VfdCAqcnNwKTsKIAotdm9pZCB2bV9ldmVudF9maWxsX3Jl Z3Modm1fZXZlbnRfcmVxdWVzdF90ICpyZXEpOwotCiBzdGF0aWMgaW5saW5lIHVpbnQzMl90IHZt X2V2ZW50X21vbml0b3JfZ2V0X2NhcGFiaWxpdGllcyhzdHJ1Y3QgZG9tYWluICpkKQogewogICAg IHVpbnQzMl90IGNhcGFiaWxpdGllcyA9IDA7CkBAIC02Nyw0ICs2NSw2IEBAIHN0YXRpYyBpbmxp bmUgdWludDMyX3Qgdm1fZXZlbnRfbW9uaXRvcl9nZXRfY2FwYWJpbGl0aWVzKHN0cnVjdCBkb21h aW4gKmQpCiAgICAgcmV0dXJuIGNhcGFiaWxpdGllczsKIH0KIAordm9pZCB2bV9ldmVudF9maWxs X3JlZ3Modm1fZXZlbnRfcmVxdWVzdF90ICpyZXEpOworCiAjZW5kaWYgLyogX19BU01fWDg2X1ZN X0VWRU5UX0hfXyAqLwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGljL3ZtX2V2ZW50Lmgg Yi94ZW4vaW5jbHVkZS9wdWJsaWMvdm1fZXZlbnQuaAppbmRleCA5MjcwZDUyLi41ODU4NzExIDEw MDY0NAotLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvdm1fZXZlbnQuaAorKysgYi94ZW4vaW5jbHVk ZS9wdWJsaWMvdm1fZXZlbnQuaApAQCAtMTY2LDYgKzE2NiwzMSBAQCBzdHJ1Y3Qgdm1fZXZlbnRf cmVnc194ODYgewogICAgIHVpbnQzMl90IF9wYWQ7CiB9OwogCitzdHJ1Y3Qgdm1fZXZlbnRfcmVn c19hcm0geworICAgIHVpbnQzMl90IHIwOworICAgIHVpbnQzMl90IHIxOworICAgIHVpbnQzMl90 IHIyOworICAgIHVpbnQzMl90IHIzOworICAgIHVpbnQzMl90IHI0OworICAgIHVpbnQzMl90IHI1 OworICAgIHVpbnQzMl90IHI2OworICAgIHVpbnQzMl90IHI3OworICAgIHVpbnQzMl90IHI4Owor ICAgIHVpbnQzMl90IHI5OworICAgIHVpbnQzMl90IHIxMDsKKyAgICB1aW50MzJfdCByMTE7Cisg ICAgdWludDMyX3QgcjEyOworCisgICAgdWludDMyX3Qgc3A7IC8qIHIxMyAtIFNQOiBWYWxpZCBm b3IgSHlwLiBmcmFtZXMgb25seSwgby93IGJhbmtlZCAoc2VlIGJlbG93KSAqLworICAgIHVpbnQz Ml90IGxyOyAvKiByMTQgLSBMUjogVmFsaWQgZm9yIEh5cC4gU2FtZSBwaHlzaWNhbCByZWdpc3Rl ciBhcyBscl91c3IuICovCisKKyAgICB1aW50MzJfdCBjcHNyOyAvKiBSZXR1cm4gbW9kZSAqLwor ICAgIHVpbnQ2NF90IHBjOworICAgIHVpbnQ2NF90IHR0YnIwOworICAgIHVpbnQ2NF90IHR0YnIx OworICAgIHVpbnQzMl90IF9wYWQ7Cit9OworCiAvKgogICogbWVtX2FjY2VzcyBmbGFnIGRlZmlu aXRpb25zCiAgKgpAQCAtMjU0LDYgKzI3OSw3IEBAIHR5cGVkZWYgc3RydWN0IHZtX2V2ZW50X3N0 IHsKICAgICB1bmlvbiB7CiAgICAgICAgIHVuaW9uIHsKICAgICAgICAgICAgIHN0cnVjdCB2bV9l dmVudF9yZWdzX3g4NiB4ODY7CisgICAgICAgICAgICBzdHJ1Y3Qgdm1fZXZlbnRfcmVnc19hcm0g YXJtOwogICAgICAgICB9IHJlZ3M7CiAKICAgICAgICAgc3RydWN0IHZtX2V2ZW50X2VtdWxfcmVh ZF9kYXRhIGVtdWxfcmVhZF9kYXRhOwotLSAKMi4xLjQKCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZl bEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=