From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH for 4.9 6/6] x86/emul: Require callers to provide LMA in the emulation context Date: Fri, 31 Mar 2017 20:50:53 +0100 Message-ID: <1490989853-21879-7-git-send-email-andrew.cooper3@citrix.com> References: <1490989853-21879-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1490989853-21879-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Xen-devel Cc: Andrew Cooper , Julien Grall , Paul Durrant , Tim Deegan , Jan Beulich List-Id: xen-devel@lists.xenproject.org TG9uZyBtb2RlIChvciBub3QpIGluZmx1ZW5jZXMgZW11bGF0aW9uIGJlaGF2aW91ciBpbiBhIG51 bWJlciBvZiBjYXNlcy4KSW5zdGVhZCBvZiByZXVzaW5nIHRoZSAtPnJlYWRfbXNyKCkgaG9vayB0 byBvYnRhaW4gRUZFUi5MTUEsIHJlcXVpcmUgY2FsbGVycwp0byBwcm92aWRlIGl0IGRpcmVjdGx5 LgoKVGhpcyBzaW1wbGlmaWVzIGFsbCBsb25nIG1vZGUgY2hlY2tzIGR1cmluZyBlbXVsYXRpb24g dG8gYSBzaW1wbGUgYm9vbGVhbgpyZWFkLCByZW1vdmluZyBlbWJlZGRlZCBtc3IgcmVhZHMuICBJ dCBhbHNvIGFsbG93cyBmb3IgdGhlIHJlbW92YWwgb2YgYSBsb2NhbAp2YXJpYWJsZSBpbiB0aGUg c3lzZW50ZXIgZW11bGF0aW9uIGJsb2NrLCBhbmQgcmVtb3ZlcyBhIGxhdGVudCBidWcgaW4gdGhl CnN5c2NhbGwgZW11bGF0aW9uIGJsb2NrIHdoZXJlIHJjIGNvbnRhaW5zIGEgbm9uIFg4NkVNVUxf KiBjb25zdGFudCBmb3IgYQpwZXJpb2Qgb2YgdGltZS4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBD b29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+Ci0tLQpDQzogSmFuIEJldWxpY2ggPEpC ZXVsaWNoQHN1c2UuY29tPgpDQzogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNv bT4KQ0M6IFRpbSBEZWVnYW4gPHRpbUB4ZW4ub3JnPgpDQzogSnVsaWVuIEdyYWxsIDxqdWxpZW4u Z3JhbGxAYXJtLmNvbT4KLS0tCiB0b29scy9mdXp6L3g4Nl9pbnN0cnVjdGlvbl9lbXVsYXRvci9m dXp6LWVtdWwuYyB8ICAxICsKIHRvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci90ZXN0X3g4Nl9lbXVs YXRvci5jICAgIHwgIDQgKysKIHhlbi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5jICAgICAgICAgICAg ICAgICAgICAgIHwgIDQgKy0KIHhlbi9hcmNoL3g4Ni9tbS5jICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDIgKwogeGVuL2FyY2gveDg2L21tL3NoYWRvdy9jb21tb24uYyAgICAgICAg ICAgICAgICAgfCAgNSArLS0KIHhlbi9hcmNoL3g4Ni90cmFwcy5jICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDEgKwogeGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMg ICAgICAgICAgfCA1MSArKysrKystLS0tLS0tLS0tLS0tLS0tLS0tCiB4ZW4vYXJjaC94ODYveDg2 X2VtdWxhdGUveDg2X2VtdWxhdGUuaCAgICAgICAgICB8ICAzICsrCiA4IGZpbGVzIGNoYW5nZWQs IDI4IGluc2VydGlvbnMoKyksIDQzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2Z1 enoveDg2X2luc3RydWN0aW9uX2VtdWxhdG9yL2Z1enotZW11bC5jIGIvdG9vbHMvZnV6ei94ODZf aW5zdHJ1Y3Rpb25fZW11bGF0b3IvZnV6ei1lbXVsLmMKaW5kZXggODQ4ODgxNi4uMmU0MmU1NCAx MDA2NDQKLS0tIGEvdG9vbHMvZnV6ei94ODZfaW5zdHJ1Y3Rpb25fZW11bGF0b3IvZnV6ei1lbXVs LmMKKysrIGIvdG9vbHMvZnV6ei94ODZfaW5zdHJ1Y3Rpb25fZW11bGF0b3IvZnV6ei1lbXVsLmMK QEAgLTY0OSw2ICs2NDksNyBAQCBpbnQgTExWTUZ1enplclRlc3RPbmVJbnB1dChjb25zdCB1aW50 OF90ICpkYXRhX3AsIHNpemVfdCBzaXplKQogICAgIHN0cnVjdCBjcHVfdXNlcl9yZWdzIHJlZ3Mg PSB7fTsKICAgICBzdHJ1Y3QgeDg2X2VtdWxhdGVfY3R4dCBjdHh0ID0gewogICAgICAgICAucmVn cyA9ICZyZWdzLAorICAgICAgICAubG1hID0gc2l6ZW9mKHZvaWQgKikgPT0gOCwKICAgICAgICAg LmFkZHJfc2l6ZSA9IDggKiBzaXplb2Yodm9pZCAqKSwKICAgICAgICAgLnNwX3NpemUgPSA4ICog c2l6ZW9mKHZvaWQgKiksCiAgICAgfTsKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVs YXRvci90ZXN0X3g4Nl9lbXVsYXRvci5jIGIvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3Rlc3Rf eDg2X2VtdWxhdG9yLmMKaW5kZXggNWJlOGRkYy4uZWZlYjE3NSAxMDA2NDQKLS0tIGEvdG9vbHMv dGVzdHMveDg2X2VtdWxhdG9yL3Rlc3RfeDg2X2VtdWxhdG9yLmMKKysrIGIvdG9vbHMvdGVzdHMv eDg2X2VtdWxhdG9yL3Rlc3RfeDg2X2VtdWxhdG9yLmMKQEAgLTMxOSw2ICszMTksNyBAQCBpbnQg bWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgICAgY3R4dC5yZWdzID0gJnJlZ3M7CiAgICAg Y3R4dC5mb3JjZV93cml0ZWJhY2sgPSAwOwogICAgIGN0eHQudmVuZG9yICAgID0gWDg2X1ZFTkRP Ul9VTktOT1dOOworICAgIGN0eHQubG1hICAgICAgID0gc2l6ZW9mKHZvaWQgKikgPT0gODsKICAg ICBjdHh0LmFkZHJfc2l6ZSA9IDggKiBzaXplb2Yodm9pZCAqKTsKICAgICBjdHh0LnNwX3NpemUg ICA9IDggKiBzaXplb2Yodm9pZCAqKTsKIApAQCAtMjkyMiw2ICsyOTIzLDcgQEAgaW50IG1haW4o aW50IGFyZ2MsIGNoYXIgKiphcmd2KQogICAgIHsKICAgICAgICAgZGVjbF9pbnNuKHZ6ZXJvdXBw ZXIpOwogCisgICAgICAgIGN0eHQubG1hID0gZmFsc2U7CiAgICAgICAgIGN0eHQuc3Bfc2l6ZSA9 IGN0eHQuYWRkcl9zaXplID0gMzI7CiAKICAgICAgICAgYXNtIHZvbGF0aWxlICggInZ4b3JwcyAl eG1tMiwgJXhtbTIsICV4bW0zXG4iCkBAIC0yOTQ5LDYgKzI5NTEsNyBAQCBpbnQgbWFpbihpbnQg YXJnYywgY2hhciAqKmFyZ3YpCiAgICAgICAgICAgICBnb3RvIGZhaWw7CiAgICAgICAgIHByaW50 Zigib2theVxuIik7CiAKKyAgICAgICAgY3R4dC5sbWEgPSB0cnVlOwogICAgICAgICBjdHh0LnNw X3NpemUgPSBjdHh0LmFkZHJfc2l6ZSA9IDY0OwogICAgIH0KICAgICBlbHNlCkBAIC0zMDAxLDYg KzMwMDQsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgICAgICAgICAgICBj b250aW51ZTsKIAogICAgICAgICBtZW1jcHkocmVzLCBibG9ic1tqXS5jb2RlLCBibG9ic1tqXS5z aXplKTsKKyAgICAgICAgY3R4dC5sbWEgPSBibG9ic1tqXS5iaXRuZXNzID09IDY0OwogICAgICAg ICBjdHh0LmFkZHJfc2l6ZSA9IGN0eHQuc3Bfc2l6ZSA9IGJsb2JzW2pdLmJpdG5lc3M7CiAKICAg ICAgICAgaWYgKCBjdHh0LmFkZHJfc2l6ZSA9PSBzaXplb2Yodm9pZCAqKSAqIENIQVJfQklUICkK ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5jIGIveGVuL2FyY2gveDg2L2h2 bS9lbXVsYXRlLmMKaW5kZXggZWZhYzJlOS4uNjVjYjcwNyAxMDA2NDQKLS0tIGEveGVuL2FyY2gv eDg2L2h2bS9lbXVsYXRlLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9lbXVsYXRlLmMKQEAgLTIw NDcsNyArMjA0Nyw5IEBAIHZvaWQgaHZtX2VtdWxhdGVfaW5pdF9wZXJfaW5zbigKICAgICB1bnNp Z25lZCBpbnQgcGZlYyA9IFBGRUNfcGFnZV9wcmVzZW50OwogICAgIHVuc2lnbmVkIGxvbmcgYWRk cjsKIAotICAgIGlmICggaHZtX2xvbmdfbW9kZV9hY3RpdmUoY3VycikgJiYKKyAgICBodm1lbXVs X2N0eHQtPmN0eHQubG1hID0gaHZtX2xvbmdfbW9kZV9hY3RpdmUoY3Vycik7CisKKyAgICBpZiAo IGh2bWVtdWxfY3R4dC0+Y3R4dC5sbWEgJiYKICAgICAgICAgIGh2bWVtdWxfY3R4dC0+c2VnX3Jl Z1t4ODZfc2VnX2NzXS5hdHRyLmZpZWxkcy5sICkKICAgICAgICAgaHZtZW11bF9jdHh0LT5jdHh0 LmFkZHJfc2l6ZSA9IGh2bWVtdWxfY3R4dC0+Y3R4dC5zcF9zaXplID0gNjQ7CiAgICAgZWxzZQpk aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tLmMgYi94ZW4vYXJjaC94ODYvbW0uYwppbmRleCAz OTE4YTM3Li5lZGEyMjBkIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0uYworKysgYi94ZW4v YXJjaC94ODYvbW0uYwpAQCAtNTQxMCw2ICs1NDEwLDcgQEAgaW50IHB0d3JfZG9fcGFnZV9mYXVs dChzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgbG9uZyBhZGRyLAogICAgICAgICAuY3R4dCA9IHsK ICAgICAgICAgICAgIC5yZWdzID0gcmVncywKICAgICAgICAgICAgIC52ZW5kb3IgPSBkLT5hcmNo LmNwdWlkLT54ODZfdmVuZG9yLAorICAgICAgICAgICAgLmxtYSA9IHRydWUsCiAgICAgICAgICAg ICAuYWRkcl9zaXplID0gaXNfcHZfMzJiaXRfZG9tYWluKGQpID8gMzIgOiBCSVRTX1BFUl9MT05H LAogICAgICAgICAgICAgLnNwX3NpemUgICA9IGlzX3B2XzMyYml0X2RvbWFpbihkKSA/IDMyIDog QklUU19QRVJfTE9ORywKICAgICAgICAgfSwKQEAgLTU1NjQsNiArNTU2NSw3IEBAIGludCBtbWlv X3JvX2RvX3BhZ2VfZmF1bHQoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGxvbmcgYWRkciwKICAg ICBzdHJ1Y3QgeDg2X2VtdWxhdGVfY3R4dCBjdHh0ID0gewogICAgICAgICAucmVncyA9IHJlZ3Ms CiAgICAgICAgIC52ZW5kb3IgPSB2LT5kb21haW4tPmFyY2guY3B1aWQtPng4Nl92ZW5kb3IsCisg ICAgICAgIC5sbWEgPSB0cnVlLAogICAgICAgICAuYWRkcl9zaXplID0gYWRkcl9zaXplLAogICAg ICAgICAuc3Bfc2l6ZSA9IGFkZHJfc2l6ZSwKICAgICAgICAgLmRhdGEgPSAmbW1pb19yb19jdHh0 CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0vc2hhZG93L2NvbW1vbi5jIGIveGVuL2FyY2gv eDg2L21tL3NoYWRvdy9jb21tb24uYwppbmRleCAyZmM3OTZiLi5lNDJkM2ZkIDEwMDY0NAotLS0g YS94ZW4vYXJjaC94ODYvbW0vc2hhZG93L2NvbW1vbi5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9z aGFkb3cvY29tbW9uLmMKQEAgLTMyOCwxNSArMzI4LDE0IEBAIGNvbnN0IHN0cnVjdCB4ODZfZW11 bGF0ZV9vcHMgKnNoYWRvd19pbml0X2VtdWxhdGlvbigKIAogICAgIHNoX2N0eHQtPmN0eHQucmVn cyA9IHJlZ3M7CiAgICAgc2hfY3R4dC0+Y3R4dC52ZW5kb3IgPSB2LT5kb21haW4tPmFyY2guY3B1 aWQtPng4Nl92ZW5kb3I7CisgICAgc2hfY3R4dC0+Y3R4dC5sbWEgPSBodm1fbG9uZ19tb2RlX2Fj dGl2ZSh2KTsKIAogICAgIC8qIFNlZ21lbnQgY2FjaGUgaW5pdGlhbGlzYXRpb24uIFByaW1lZCB3 aXRoIENTLiAqLwogICAgIGNyZWcgPSBodm1fZ2V0X3NlZ19yZWcoeDg2X3NlZ19jcywgc2hfY3R4 dCk7CiAKICAgICAvKiBXb3JrIG91dCB0aGUgZW11bGF0aW9uIG1vZGUuICovCi0gICAgaWYgKCBo dm1fbG9uZ19tb2RlX2FjdGl2ZSh2KSAmJiBjcmVnLT5hdHRyLmZpZWxkcy5sICkKLSAgICB7Cisg ICAgaWYgKCBzaF9jdHh0LT5jdHh0LmxtYSAmJiBjcmVnLT5hdHRyLmZpZWxkcy5sICkKICAgICAg ICAgc2hfY3R4dC0+Y3R4dC5hZGRyX3NpemUgPSBzaF9jdHh0LT5jdHh0LnNwX3NpemUgPSA2NDsK LSAgICB9CiAgICAgZWxzZQogICAgIHsKICAgICAgICAgc3JlZyA9IGh2bV9nZXRfc2VnX3JlZyh4 ODZfc2VnX3NzLCBzaF9jdHh0KTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni90cmFwcy5jIGIv eGVuL2FyY2gveDg2L3RyYXBzLmMKaW5kZXggMGQ1NGJhZi4uMDlkYzJmMSAxMDA2NDQKLS0tIGEv eGVuL2FyY2gveDg2L3RyYXBzLmMKKysrIGIveGVuL2FyY2gveDg2L3RyYXBzLmMKQEAgLTI5NjYs NiArMjk2Niw3IEBAIHN0YXRpYyBpbnQgZW11bGF0ZV9wcml2aWxlZ2VkX29wKHN0cnVjdCBjcHVf dXNlcl9yZWdzICpyZWdzKQogICAgIHN0cnVjdCBwcml2X29wX2N0eHQgY3R4dCA9IHsKICAgICAg ICAgLmN0eHQucmVncyA9IHJlZ3MsCiAgICAgICAgIC5jdHh0LnZlbmRvciA9IGN1cnJkLT5hcmNo LmNwdWlkLT54ODZfdmVuZG9yLAorICAgICAgICAuY3R4dC5sbWEgPSB0cnVlLAogICAgIH07CiAg ICAgaW50IHJjOwogICAgIHVuc2lnbmVkIGludCBlZmxhZ3MsIGFyOwpkaWZmIC0tZ2l0IGEveGVu L2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMgYi94ZW4vYXJjaC94ODYveDg2X2Vt dWxhdGUveDg2X2VtdWxhdGUuYwppbmRleCA3MzE1Y2E2Li5jYzM1NGJjIDEwMDY0NAotLS0gYS94 ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUveDg2X2VtdWxhdGUuYworKysgYi94ZW4vYXJjaC94ODYv eDg2X2VtdWxhdGUveDg2X2VtdWxhdGUuYwpAQCAtOTY4LDExICs5NjgsMTAgQEAgZG8geyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAogCiAjZGVmaW5lIHZhbGlkYXRlX2Zhcl9icmFuY2goY3MsIGlwKSAoeyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgaWYgKCBzaXplb2YoaXApIDw9IDQgKSB7 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIEFT U0VSVChpbl9sb25nbW9kZShjdHh0LCBvcHMpIDw9IDApOyAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisgICAgICAgIEFTU0VSVCghY3R4dC0+bG1hKTsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIGdlbmVyYXRlX2V4Y2VwdGlvbl9pZigo aXApID4gKGNzKS0+bGltaXQsIEVYQ19HUCwgMCk7ICAgICAgICAgICBcCiAgICAgfSBlbHNlICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCi0gICAgICAgIGdlbmVyYXRlX2V4Y2VwdGlvbl9pZihpbl9sb25nbW9kZShjdHh0LCBvcHMp ICYmICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY3Mp LT5hdHRyLmZpZWxkcy5sICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGdlbmVyYXRl X2V4Y2VwdGlvbl9pZihjdHh0LT5sbWEgJiYgKGNzKS0+YXR0ci5maWVsZHMubCAgICAgICAgICBc CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICFpc19jYW5vbmljYWxfYWRkcmVzcyhp cCkgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IChpcCkg PiAoY3MpLT5saW1pdCwgRVhDX0dQLCAwKTsgICAgICAgICBcCiB9KQpAQCAtMTYzMCwyMCArMTYy OSw2IEBAIHN0YXRpYyBib29sIHZjcHVfaGFzKAogI2VuZGlmCiAKIHN0YXRpYyBpbnQKLWluX2xv bmdtb2RlKAotICAgIHN0cnVjdCB4ODZfZW11bGF0ZV9jdHh0ICpjdHh0LAotICAgIGNvbnN0IHN0 cnVjdCB4ODZfZW11bGF0ZV9vcHMgKm9wcykKLXsKLSAgICB1aW50NjRfdCBlZmVyOwotCi0gICAg aWYgKCAhb3BzLT5yZWFkX21zciB8fAotICAgICAgICAgdW5saWtlbHkob3BzLT5yZWFkX21zcihN U1JfRUZFUiwgJmVmZXIsIGN0eHQpICE9IFg4NkVNVUxfT0tBWSkgKQotICAgICAgICByZXR1cm4g LTE7Ci0KLSAgICByZXR1cm4gISEoZWZlciAmIEVGRVJfTE1BKTsKLX0KLQotc3RhdGljIGludAog cmVhbG1vZGVfbG9hZF9zZWcoCiAgICAgZW51bSB4ODZfc2VnbWVudCBzZWcsCiAgICAgdWludDE2 X3Qgc2VsLApAQCAtMTc2Nyw4ICsxNzUyLDcgQEAgcHJvdG1vZGVfbG9hZF9zZWcoCiAgICAgICAg ICAqIEV4cGVyaW1lbnRhbGx5IGluIGxvbmcgbW9kZSwgdGhlIEwgYW5kIEQgYml0cyBhcmUgY2hl Y2tlZCBiZWZvcmUKICAgICAgICAgICogdGhlIFByZXNlbnQgYml0LgogICAgICAgICAgKi8KLSAg ICAgICAgaWYgKCBpbl9sb25nbW9kZShjdHh0LCBvcHMpICYmCi0gICAgICAgICAgICAgKGRlc2Mu YiAmICgxIDw8IDIxKSkgJiYgKGRlc2MuYiAmICgxIDw8IDIyKSkgKQorICAgICAgICBpZiAoIGN0 eHQtPmxtYSAmJiAoZGVzYy5iICYgKDEgPDwgMjEpKSAmJiAoZGVzYy5iICYgKDEgPDwgMjIpKSAp CiAgICAgICAgICAgICBnb3RvIHJhaXNlX2V4bjsKICAgICAgICAgc2VsID0gKHNlbCBeIHJwbCkg fCBjcGw7CiAgICAgICAgIGJyZWFrOwpAQCAtMTgxOCwxMCArMTgwMiw4IEBAIHByb3Rtb2RlX2xv YWRfc2VnKAogCiAgICAgaWYgKCAhaXNfeDg2X3VzZXJfc2VnbWVudChzZWcpICkKICAgICB7Ci0g ICAgICAgIGludCBsbSA9IChkZXNjLmIgJiAoMXUgPDwgMTIpKSA/IDAgOiBpbl9sb25nbW9kZShj dHh0LCBvcHMpOworICAgICAgICBib29sIGxtID0gKGRlc2MuYiAmICgxdSA8PCAxMikpID8gMCA6 IGN0eHQtPmxtYTsKIAotICAgICAgICBpZiAoIGxtIDwgMCApCi0gICAgICAgICAgICByZXR1cm4g WDg2RU1VTF9VTkhBTkRMRUFCTEU7CiAgICAgICAgIGlmICggbG0gKQogICAgICAgICB7CiAgICAg ICAgICAgICBzd2l0Y2ggKCByYyA9IG9wcy0+cmVhZChzZWxfc2VnLCAoc2VsICYgMHhmZmY4KSAr IDgsCkBAIC01MTk1LDcgKzUxNzcsNyBAQCB4ODZfZW11bGF0ZSgKICAgICAgICAgICAgICAgICBj YXNlIDB4MDM6IC8qIGJ1c3kgMTYtYml0IFRTUyAqLwogICAgICAgICAgICAgICAgIGNhc2UgMHgw NDogLyogMTYtYml0IGNhbGwgZ2F0ZSAqLwogICAgICAgICAgICAgICAgIGNhc2UgMHgwNTogLyog MTYvMzItYml0IHRhc2sgZ2F0ZSAqLwotICAgICAgICAgICAgICAgICAgICBpZiAoIGluX2xvbmdt b2RlKGN0eHQsIG9wcykgKQorICAgICAgICAgICAgICAgICAgICBpZiAoIGN0eHQtPmxtYSApCiAg ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgLyogZmFs bCB0aHJvdWdoICovCiAgICAgICAgICAgICAgICAgY2FzZSAweDAyOiAvKiBMRFQgKi8KQEAgLTUy NDIsNyArNTIyNCw3IEBAIHg4Nl9lbXVsYXRlKAogICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICBjYXNlIDB4MDE6IC8qIGF2YWlsYWJsZSAxNi1iaXQgVFNTICovCiAgICAgICAgICAg ICAgICAgY2FzZSAweDAzOiAvKiBidXN5IDE2LWJpdCBUU1MgKi8KLSAgICAgICAgICAgICAgICAg ICAgaWYgKCBpbl9sb25nbW9kZShjdHh0LCBvcHMpICkKKyAgICAgICAgICAgICAgICAgICAgaWYg KCBjdHh0LT5sbWEgKQogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg ICAgICAgICAgIC8qIGZhbGwgdGhyb3VnaCAqLwogICAgICAgICAgICAgICAgIGNhc2UgMHgwMjog LyogTERUICovCkBAIC01MjkyLDEwICs1Mjc0LDcgQEAgeDg2X2VtdWxhdGUoCiAgICAgICAgIHNy ZWcuYXR0ci5ieXRlcyA9IDB4YzkzOyAvKiBHK0RCK1ArUytEYXRhICovCiAKICNpZmRlZiBfX3g4 Nl82NF9fCi0gICAgICAgIHJjID0gaW5fbG9uZ21vZGUoY3R4dCwgb3BzKTsKLSAgICAgICAgaWYg KCByYyA8IDAgKQotICAgICAgICAgICAgZ290byBjYW5ub3RfZW11bGF0ZTsKLSAgICAgICAgaWYg KCByYyApCisgICAgICAgIGlmICggY3R4dC0+bG1hICkKICAgICAgICAgewogICAgICAgICAgICAg Y3MuYXR0ci5ieXRlcyA9IDB4YTliOyAvKiBMK0RCK1ArUytDb2RlICovCiAKQEAgLTU3MzIsOSAr NTcxMSw3IEBAIHg4Nl9lbXVsYXRlKAogICAgICAgICAgICAgZHN0LnZhbCA9IHNyYy52YWw7CiAg ICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBYODZFTVVMX09QQygweDBmLCAweDM0KTogLyogc3lz ZW50ZXIgKi8gewotICAgICAgICBpbnQgbG07Ci0KKyAgICBjYXNlIFg4NkVNVUxfT1BDKDB4MGYs IDB4MzQpOiAvKiBzeXNlbnRlciAqLwogICAgICAgICB2Y3B1X211c3RfaGF2ZShzZXApOwogICAg ICAgICBnZW5lcmF0ZV9leGNlcHRpb25faWYobW9kZV9yaW5nMCgpLCBFWENfR1AsIDApOwogICAg ICAgICBnZW5lcmF0ZV9leGNlcHRpb25faWYoIWluX3Byb3Rtb2RlKGN0eHQsIG9wcyksIEVYQ19H UCwgMCk7CkBAIC01NzQ1LDE3ICs1NzIyLDE0IEBAIHg4Nl9lbXVsYXRlKAogICAgICAgICAgICAg Z290byBkb25lOwogCiAgICAgICAgIGdlbmVyYXRlX2V4Y2VwdGlvbl9pZighKG1zcl92YWwgJiAw eGZmZmMpLCBFWENfR1AsIDApOwotICAgICAgICBsbSA9IGluX2xvbmdtb2RlKGN0eHQsIG9wcyk7 Ci0gICAgICAgIGlmICggbG0gPCAwICkKLSAgICAgICAgICAgIGdvdG8gY2Fubm90X2VtdWxhdGU7 CiAKICAgICAgICAgX3JlZ3MuZWZsYWdzICY9IH4oWDg2X0VGTEFHU19WTSB8IFg4Nl9FRkxBR1Nf SUYgfCBYODZfRUZMQUdTX1JGKTsKIAogICAgICAgICBjcy5zZWwgPSBtc3JfdmFsICYgfjM7IC8q IFNFTEVDVE9SX1JQTF9NQVNLICovCiAgICAgICAgIGNzLmJhc2UgPSAwOyAgIC8qIGZsYXQgc2Vn bWVudCAqLwogICAgICAgICBjcy5saW1pdCA9IH4wdTsgIC8qIDRHQiBsaW1pdCAqLwotICAgICAg ICBjcy5hdHRyLmJ5dGVzID0gbG0gPyAweGE5YiAgLyogRytMK1ArUytDb2RlICovCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICA6IDB4YzliOyAvKiBHK0RCK1ArUytDb2RlICovCisgICAgICAg IGNzLmF0dHIuYnl0ZXMgPSBjdHh0LT5sbWEgPyAweGE5YiAgLyogRytMK1ArUytDb2RlICovCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAweGM5YjsgLyogRytEQitQK1MrQ29k ZSAqLwogCiAgICAgICAgIHNyZWcuc2VsID0gY3Muc2VsICsgODsKICAgICAgICAgc3JlZy5iYXNl ID0gMDsgICAvKiBmbGF0IHNlZ21lbnQgKi8KQEAgLTU3NzAsMTYgKzU3NDQsMTUgQEAgeDg2X2Vt dWxhdGUoCiAgICAgICAgIGlmICggKHJjID0gb3BzLT5yZWFkX21zcihNU1JfSUEzMl9TWVNFTlRF Ul9FSVAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbXNyX3ZhbCwgY3R4dCkp ICE9IFg4NkVNVUxfT0tBWSApCiAgICAgICAgICAgICBnb3RvIGRvbmU7Ci0gICAgICAgIF9yZWdz LnIoaXApID0gbG0gPyBtc3JfdmFsIDogKHVpbnQzMl90KW1zcl92YWw7CisgICAgICAgIF9yZWdz LnIoaXApID0gY3R4dC0+bG1hID8gbXNyX3ZhbCA6ICh1aW50MzJfdCltc3JfdmFsOwogCiAgICAg ICAgIGlmICggKHJjID0gb3BzLT5yZWFkX21zcihNU1JfSUEzMl9TWVNFTlRFUl9FU1AsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbXNyX3ZhbCwgY3R4dCkpICE9IFg4NkVNVUxf T0tBWSApCiAgICAgICAgICAgICBnb3RvIGRvbmU7Ci0gICAgICAgIF9yZWdzLnIoc3ApID0gbG0g PyBtc3JfdmFsIDogKHVpbnQzMl90KW1zcl92YWw7CisgICAgICAgIF9yZWdzLnIoc3ApID0gY3R4 dC0+bG1hID8gbXNyX3ZhbCA6ICh1aW50MzJfdCltc3JfdmFsOwogCiAgICAgICAgIHNpbmdsZXN0 ZXAgPSBfcmVncy5lZmxhZ3MgJiBYODZfRUZMQUdTX1RGOwogICAgICAgICBicmVhazsKLSAgICB9 CiAKICAgICBjYXNlIFg4NkVNVUxfT1BDKDB4MGYsIDB4MzUpOiAvKiBzeXNleGl0ICovCiAgICAg ICAgIHZjcHVfbXVzdF9oYXZlKHNlcCk7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYveDg2X2Vt dWxhdGUveDg2X2VtdWxhdGUuaCBiL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0 ZS5oCmluZGV4IDIxNWFkZjYuLjA0NzllMzAgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni94ODZf ZW11bGF0ZS94ODZfZW11bGF0ZS5oCisrKyBiL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZf ZW11bGF0ZS5oCkBAIC00NTcsNiArNDU3LDkgQEAgc3RydWN0IHg4Nl9lbXVsYXRlX2N0eHQKICAg ICAvKiBTZXQgdGhpcyBpZiB3cml0ZXMgbWF5IGhhdmUgc2lkZSBlZmZlY3RzLiAqLwogICAgIGJv b2wgZm9yY2Vfd3JpdGViYWNrOwogCisgICAgLyogTG9uZyBtb2RlIGFjdGl2ZT8gKi8KKyAgICBi b29sIGxtYTsKKwogICAgIC8qIENhbGxlciBkYXRhIHRoYXQgY2FuIGJlIHVzZWQgYnkgeDg2X2Vt dWxhdGVfb3BzJyByb3V0aW5lcy4gKi8KICAgICB2b2lkICpkYXRhOwogCi0tIAoyLjEuNAoKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBt YWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3Jn L3hlbi1kZXZlbAo=