From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v2 for-4.9 6/6] x86/emul: Require callers to provide LMA in the emulation context Date: Wed, 5 Apr 2017 18:33:04 +0100 Message-ID: <1491413584-8410-7-git-send-email-andrew.cooper3@citrix.com> References: <1491413584-8410-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: <1491413584-8410-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 , Tim Deegan , Jan Beulich List-Id: xen-devel@lists.xenproject.org TG9uZyBtb2RlIChvciBub3QpIGluZmx1ZW5jZXMgZW11bGF0aW9uIGJlaGF2aW91ciBpbiBhIG51 bWJlciBvZiBjYXNlcy4KSW5zdGVhZCBvZiByZXVzaW5nIHRoZSAtPnJlYWRfbXNyKCkgaG9vayB0 byBvYnRhaW4gRUZFUi5MTUEsIHJlcXVpcmUgY2FsbGVycwp0byBwcm92aWRlIGl0IGRpcmVjdGx5 LgoKVGhpcyBzaW1wbGlmaWVzIGFsbCBsb25nIG1vZGUgY2hlY2tzIGR1cmluZyBlbXVsYXRpb24g dG8gYSBzaW1wbGUgYm9vbGVhbgpyZWFkLCByZW1vdmluZyBlbWJlZGRlZCBtc3IgcmVhZHMuICBJ dCBhbHNvIGFsbG93cyBmb3IgdGhlIHJlbW92YWwgb2YgYSBsb2NhbAp2YXJpYWJsZSBpbiB0aGUg c3lzZW50ZXIgZW11bGF0aW9uIGJsb2NrLCBhbmQgcmVtb3ZlcyBhIGxhdGVudCBidWcgaW4gdGhl CnN5c2NhbGwgZW11bGF0aW9uIGJsb2NrIHdoZXJlIHJjIGNvbnRhaW5zIGEgbm9uIFg4NkVNVUxf KiBjb25zdGFudCBmb3IgYQpwZXJpb2Qgb2YgdGltZS4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBD b29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5OiBQYXVsIER1cnJh bnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPgotLS0KQ0M6IEphbiBCZXVsaWNoIDxKQmV1bGlj aEBzdXNlLmNvbT4KQ0M6IFRpbSBEZWVnYW4gPHRpbUB4ZW4ub3JnPgpDQzogSnVsaWVuIEdyYWxs IDxqdWxpZW4uZ3JhbGxAYXJtLmNvbT4KCnYyOgogKiBNb3ZlIGxtYSB0byB0aGUgaW4vb3V0IHNl Y3Rpb24gb2YgeDg2X2VtdWxhdGVfY3R4dAogKiBSZXBsYWNlIG9uZSAwIHdpdGggZmFsc2UKLS0t CiB0b29scy9mdXp6L3g4Nl9pbnN0cnVjdGlvbl9lbXVsYXRvci9mdXp6LWVtdWwuYyB8ICAyICsK IHRvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci90ZXN0X3g4Nl9lbXVsYXRvci5jICAgIHwgIDQgKysK IHhlbi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5jICAgICAgICAgICAgICAgICAgICAgIHwgIDQgKy0K IHhlbi9hcmNoL3g4Ni9tbS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKwog eGVuL2FyY2gveDg2L21tL3NoYWRvdy9jb21tb24uYyAgICAgICAgICAgICAgICAgfCAgNSArLS0K IHhlbi9hcmNoL3g4Ni90cmFwcy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwog eGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMgICAgICAgICAgfCA1MSArKysr KystLS0tLS0tLS0tLS0tLS0tLS0tCiB4ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUveDg2X2VtdWxh dGUuaCAgICAgICAgICB8ICAzICsrCiA4IGZpbGVzIGNoYW5nZWQsIDI5IGluc2VydGlvbnMoKyks IDQzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2Z1enoveDg2X2luc3RydWN0aW9u X2VtdWxhdG9yL2Z1enotZW11bC5jIGIvdG9vbHMvZnV6ei94ODZfaW5zdHJ1Y3Rpb25fZW11bGF0 b3IvZnV6ei1lbXVsLmMKaW5kZXggODQ4ODgxNi4uNjVjNWEzYiAxMDA2NDQKLS0tIGEvdG9vbHMv ZnV6ei94ODZfaW5zdHJ1Y3Rpb25fZW11bGF0b3IvZnV6ei1lbXVsLmMKKysrIGIvdG9vbHMvZnV6 ei94ODZfaW5zdHJ1Y3Rpb25fZW11bGF0b3IvZnV6ei1lbXVsLmMKQEAgLTQ4NCw2ICs0ODQsOCBA QCBzdGF0aWMgYm9vbCBpbl9sb25nbW9kZShzdHJ1Y3QgeDg2X2VtdWxhdGVfY3R4dCAqY3R4dCkK IAogc3RhdGljIHZvaWQgc2V0X3NpemVzKHN0cnVjdCB4ODZfZW11bGF0ZV9jdHh0ICpjdHh0KQog eworICAgIGN0eHQtPmxtYSA9IGxvbmdfbW9kZV9hY3RpdmUoY3R4dCk7CisKICAgICBpZiAoIGlu X2xvbmdtb2RlKGN0eHQpICkKICAgICAgICAgY3R4dC0+YWRkcl9zaXplID0gY3R4dC0+c3Bfc2l6 ZSA9IDY0OwogICAgIGVsc2UKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci90 ZXN0X3g4Nl9lbXVsYXRvci5jIGIvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3Rlc3RfeDg2X2Vt dWxhdG9yLmMKaW5kZXggNWJlOGRkYy4uZWZlYjE3NSAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdHMv eDg2X2VtdWxhdG9yL3Rlc3RfeDg2X2VtdWxhdG9yLmMKKysrIGIvdG9vbHMvdGVzdHMveDg2X2Vt dWxhdG9yL3Rlc3RfeDg2X2VtdWxhdG9yLmMKQEAgLTMxOSw2ICszMTksNyBAQCBpbnQgbWFpbihp bnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgICAgY3R4dC5yZWdzID0gJnJlZ3M7CiAgICAgY3R4dC5m b3JjZV93cml0ZWJhY2sgPSAwOwogICAgIGN0eHQudmVuZG9yICAgID0gWDg2X1ZFTkRPUl9VTktO T1dOOworICAgIGN0eHQubG1hICAgICAgID0gc2l6ZW9mKHZvaWQgKikgPT0gODsKICAgICBjdHh0 LmFkZHJfc2l6ZSA9IDggKiBzaXplb2Yodm9pZCAqKTsKICAgICBjdHh0LnNwX3NpemUgICA9IDgg KiBzaXplb2Yodm9pZCAqKTsKIApAQCAtMjkyMiw2ICsyOTIzLDcgQEAgaW50IG1haW4oaW50IGFy Z2MsIGNoYXIgKiphcmd2KQogICAgIHsKICAgICAgICAgZGVjbF9pbnNuKHZ6ZXJvdXBwZXIpOwog CisgICAgICAgIGN0eHQubG1hID0gZmFsc2U7CiAgICAgICAgIGN0eHQuc3Bfc2l6ZSA9IGN0eHQu YWRkcl9zaXplID0gMzI7CiAKICAgICAgICAgYXNtIHZvbGF0aWxlICggInZ4b3JwcyAleG1tMiwg JXhtbTIsICV4bW0zXG4iCkBAIC0yOTQ5LDYgKzI5NTEsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywg Y2hhciAqKmFyZ3YpCiAgICAgICAgICAgICBnb3RvIGZhaWw7CiAgICAgICAgIHByaW50Zigib2th eVxuIik7CiAKKyAgICAgICAgY3R4dC5sbWEgPSB0cnVlOwogICAgICAgICBjdHh0LnNwX3NpemUg PSBjdHh0LmFkZHJfc2l6ZSA9IDY0OwogICAgIH0KICAgICBlbHNlCkBAIC0zMDAxLDYgKzMwMDQs NyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgICAgICAgICAgICBjb250aW51 ZTsKIAogICAgICAgICBtZW1jcHkocmVzLCBibG9ic1tqXS5jb2RlLCBibG9ic1tqXS5zaXplKTsK KyAgICAgICAgY3R4dC5sbWEgPSBibG9ic1tqXS5iaXRuZXNzID09IDY0OwogICAgICAgICBjdHh0 LmFkZHJfc2l6ZSA9IGN0eHQuc3Bfc2l6ZSA9IGJsb2JzW2pdLmJpdG5lc3M7CiAKICAgICAgICAg aWYgKCBjdHh0LmFkZHJfc2l6ZSA9PSBzaXplb2Yodm9pZCAqKSAqIENIQVJfQklUICkKZGlmZiAt LWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5jIGIveGVuL2FyY2gveDg2L2h2bS9lbXVs YXRlLmMKaW5kZXggMzllNDMxOS4uYTQ5MThlMSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2 bS9lbXVsYXRlLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9lbXVsYXRlLmMKQEAgLTIwNDQsNyAr MjA0NCw5IEBAIHZvaWQgaHZtX2VtdWxhdGVfaW5pdF9wZXJfaW5zbigKICAgICB1bnNpZ25lZCBp bnQgcGZlYyA9IFBGRUNfcGFnZV9wcmVzZW50OwogICAgIHVuc2lnbmVkIGxvbmcgYWRkcjsKIAot ICAgIGlmICggaHZtX2xvbmdfbW9kZV9hY3RpdmUoY3VycikgJiYKKyAgICBodm1lbXVsX2N0eHQt PmN0eHQubG1hID0gaHZtX2xvbmdfbW9kZV9hY3RpdmUoY3Vycik7CisKKyAgICBpZiAoIGh2bWVt dWxfY3R4dC0+Y3R4dC5sbWEgJiYKICAgICAgICAgIGh2bWVtdWxfY3R4dC0+c2VnX3JlZ1t4ODZf c2VnX2NzXS5hdHRyLmZpZWxkcy5sICkKICAgICAgICAgaHZtZW11bF9jdHh0LT5jdHh0LmFkZHJf c2l6ZSA9IGh2bWVtdWxfY3R4dC0+Y3R4dC5zcF9zaXplID0gNjQ7CiAgICAgZWxzZQpkaWZmIC0t Z2l0IGEveGVuL2FyY2gveDg2L21tLmMgYi94ZW4vYXJjaC94ODYvbW0uYwppbmRleCAzOTE4YTM3 Li5kMDEwYWEzIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0uYworKysgYi94ZW4vYXJjaC94 ODYvbW0uYwpAQCAtNTQxMiw2ICs1NDEyLDcgQEAgaW50IHB0d3JfZG9fcGFnZV9mYXVsdChzdHJ1 Y3QgdmNwdSAqdiwgdW5zaWduZWQgbG9uZyBhZGRyLAogICAgICAgICAgICAgLnZlbmRvciA9IGQt PmFyY2guY3B1aWQtPng4Nl92ZW5kb3IsCiAgICAgICAgICAgICAuYWRkcl9zaXplID0gaXNfcHZf MzJiaXRfZG9tYWluKGQpID8gMzIgOiBCSVRTX1BFUl9MT05HLAogICAgICAgICAgICAgLnNwX3Np emUgICA9IGlzX3B2XzMyYml0X2RvbWFpbihkKSA/IDMyIDogQklUU19QRVJfTE9ORywKKyAgICAg ICAgICAgIC5sbWEgPSB0cnVlLAogICAgICAgICB9LAogICAgIH07CiAgICAgaW50IHJjOwpAQCAt NTU2Niw2ICs1NTY3LDcgQEAgaW50IG1taW9fcm9fZG9fcGFnZV9mYXVsdChzdHJ1Y3QgdmNwdSAq diwgdW5zaWduZWQgbG9uZyBhZGRyLAogICAgICAgICAudmVuZG9yID0gdi0+ZG9tYWluLT5hcmNo LmNwdWlkLT54ODZfdmVuZG9yLAogICAgICAgICAuYWRkcl9zaXplID0gYWRkcl9zaXplLAogICAg ICAgICAuc3Bfc2l6ZSA9IGFkZHJfc2l6ZSwKKyAgICAgICAgLmxtYSA9IHRydWUsCiAgICAgICAg IC5kYXRhID0gJm1taW9fcm9fY3R4dAogICAgIH07CiAgICAgaW50IHJjOwpkaWZmIC0tZ2l0IGEv eGVuL2FyY2gveDg2L21tL3NoYWRvdy9jb21tb24uYyBiL3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cv Y29tbW9uLmMKaW5kZXggNzM2Y2VhYS4uZDQzMjE5OCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2 L21tL3NoYWRvdy9jb21tb24uYworKysgYi94ZW4vYXJjaC94ODYvbW0vc2hhZG93L2NvbW1vbi5j CkBAIC0zMjYsMTUgKzMyNiwxNCBAQCBjb25zdCBzdHJ1Y3QgeDg2X2VtdWxhdGVfb3BzICpzaGFk b3dfaW5pdF9lbXVsYXRpb24oCiAKICAgICBzaF9jdHh0LT5jdHh0LnJlZ3MgPSByZWdzOwogICAg IHNoX2N0eHQtPmN0eHQudmVuZG9yID0gdi0+ZG9tYWluLT5hcmNoLmNwdWlkLT54ODZfdmVuZG9y OworICAgIHNoX2N0eHQtPmN0eHQubG1hID0gaHZtX2xvbmdfbW9kZV9hY3RpdmUodik7CiAKICAg ICAvKiBTZWdtZW50IGNhY2hlIGluaXRpYWxpc2F0aW9uLiBQcmltZWQgd2l0aCBDUy4gKi8KICAg ICBjcmVnID0gaHZtX2dldF9zZWdfcmVnKHg4Nl9zZWdfY3MsIHNoX2N0eHQpOwogCiAgICAgLyog V29yayBvdXQgdGhlIGVtdWxhdGlvbiBtb2RlLiAqLwotICAgIGlmICggaHZtX2xvbmdfbW9kZV9h Y3RpdmUodikgJiYgY3JlZy0+YXR0ci5maWVsZHMubCApCi0gICAgeworICAgIGlmICggc2hfY3R4 dC0+Y3R4dC5sbWEgJiYgY3JlZy0+YXR0ci5maWVsZHMubCApCiAgICAgICAgIHNoX2N0eHQtPmN0 eHQuYWRkcl9zaXplID0gc2hfY3R4dC0+Y3R4dC5zcF9zaXplID0gNjQ7Ci0gICAgfQogICAgIGVs c2UKICAgICB7CiAgICAgICAgIHNyZWcgPSBodm1fZ2V0X3NlZ19yZWcoeDg2X3NlZ19zcywgc2hf Y3R4dCk7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvdHJhcHMuYyBiL3hlbi9hcmNoL3g4Ni90 cmFwcy5jCmluZGV4IDBkNTRiYWYuLjA5ZGMyZjEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni90 cmFwcy5jCisrKyBiL3hlbi9hcmNoL3g4Ni90cmFwcy5jCkBAIC0yOTY2LDYgKzI5NjYsNyBAQCBz dGF0aWMgaW50IGVtdWxhdGVfcHJpdmlsZWdlZF9vcChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVn cykKICAgICBzdHJ1Y3QgcHJpdl9vcF9jdHh0IGN0eHQgPSB7CiAgICAgICAgIC5jdHh0LnJlZ3Mg PSByZWdzLAogICAgICAgICAuY3R4dC52ZW5kb3IgPSBjdXJyZC0+YXJjaC5jcHVpZC0+eDg2X3Zl bmRvciwKKyAgICAgICAgLmN0eHQubG1hID0gdHJ1ZSwKICAgICB9OwogICAgIGludCByYzsKICAg ICB1bnNpZ25lZCBpbnQgZWZsYWdzLCBhcjsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94ODZf ZW11bGF0ZS94ODZfZW11bGF0ZS5jIGIveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVs YXRlLmMKaW5kZXggOGM0ZTg4NS4uMWQ1YTY5OCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3g4 Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMKKysrIGIveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4 Nl9lbXVsYXRlLmMKQEAgLTk2OCwxMSArOTY4LDEwIEBAIGRvIHsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKIAogI2Rl ZmluZSB2YWxpZGF0ZV9mYXJfYnJhbmNoKGNzLCBpcCkgKHsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAogICAgIGlmICggc2l6ZW9mKGlwKSA8PSA0ICkgeyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBBU1NFUlQoaW5fbG9uZ21v ZGUoY3R4dCwgb3BzKSA8PSAwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAg ICBBU1NFUlQoIWN0eHQtPmxtYSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAogICAgICAgICBnZW5lcmF0ZV9leGNlcHRpb25faWYoKGlwKSA+IChjcyktPmxp bWl0LCBFWENfR1AsIDApOyAgICAgICAgICAgXAogICAgIH0gZWxzZSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBn ZW5lcmF0ZV9leGNlcHRpb25faWYoaW5fbG9uZ21vZGUoY3R4dCwgb3BzKSAmJiAgICAgICAgICAg ICAgICAgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNzKS0+YXR0ci5maWVsZHMu bCAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBnZW5lcmF0ZV9leGNlcHRpb25faWYo Y3R4dC0+bG1hICYmIChjcyktPmF0dHIuZmllbGRzLmwgICAgICAgICAgXAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgPyAhaXNfY2Fub25pY2FsX2FkZHJlc3MoaXApICAgICAgICAgICAg ICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAoaXApID4gKGNzKS0+bGltaXQs IEVYQ19HUCwgMCk7ICAgICAgICAgXAogfSkKQEAgLTE2MzAsMjAgKzE2MjksNiBAQCBzdGF0aWMg Ym9vbCB2Y3B1X2hhcygKICNlbmRpZgogCiBzdGF0aWMgaW50Ci1pbl9sb25nbW9kZSgKLSAgICBz dHJ1Y3QgeDg2X2VtdWxhdGVfY3R4dCAqY3R4dCwKLSAgICBjb25zdCBzdHJ1Y3QgeDg2X2VtdWxh dGVfb3BzICpvcHMpCi17Ci0gICAgdWludDY0X3QgZWZlcjsKLQotICAgIGlmICggIW9wcy0+cmVh ZF9tc3IgfHwKLSAgICAgICAgIHVubGlrZWx5KG9wcy0+cmVhZF9tc3IoTVNSX0VGRVIsICZlZmVy LCBjdHh0KSAhPSBYODZFTVVMX09LQVkpICkKLSAgICAgICAgcmV0dXJuIC0xOwotCi0gICAgcmV0 dXJuICEhKGVmZXIgJiBFRkVSX0xNQSk7Ci19Ci0KLXN0YXRpYyBpbnQKIHJlYWxtb2RlX2xvYWRf c2VnKAogICAgIGVudW0geDg2X3NlZ21lbnQgc2VnLAogICAgIHVpbnQxNl90IHNlbCwKQEAgLTE3 NjcsOCArMTc1Miw3IEBAIHByb3Rtb2RlX2xvYWRfc2VnKAogICAgICAgICAgKiBFeHBlcmltZW50 YWxseSBpbiBsb25nIG1vZGUsIHRoZSBMIGFuZCBEIGJpdHMgYXJlIGNoZWNrZWQgYmVmb3JlCiAg ICAgICAgICAqIHRoZSBQcmVzZW50IGJpdC4KICAgICAgICAgICovCi0gICAgICAgIGlmICggaW5f bG9uZ21vZGUoY3R4dCwgb3BzKSAmJgotICAgICAgICAgICAgIChkZXNjLmIgJiAoMSA8PCAyMSkp ICYmIChkZXNjLmIgJiAoMSA8PCAyMikpICkKKyAgICAgICAgaWYgKCBjdHh0LT5sbWEgJiYgKGRl c2MuYiAmICgxIDw8IDIxKSkgJiYgKGRlc2MuYiAmICgxIDw8IDIyKSkgKQogICAgICAgICAgICAg Z290byByYWlzZV9leG47CiAgICAgICAgIHNlbCA9IChzZWwgXiBycGwpIHwgY3BsOwogICAgICAg ICBicmVhazsKQEAgLTE4MTgsMTAgKzE4MDIsOCBAQCBwcm90bW9kZV9sb2FkX3NlZygKIAogICAg IGlmICggIWlzX3g4Nl91c2VyX3NlZ21lbnQoc2VnKSApCiAgICAgewotICAgICAgICBpbnQgbG0g PSAoZGVzYy5iICYgKDF1IDw8IDEyKSkgPyAwIDogaW5fbG9uZ21vZGUoY3R4dCwgb3BzKTsKKyAg ICAgICAgYm9vbCBsbSA9IChkZXNjLmIgJiAoMXUgPDwgMTIpKSA/IGZhbHNlIDogY3R4dC0+bG1h OwogCi0gICAgICAgIGlmICggbG0gPCAwICkKLSAgICAgICAgICAgIHJldHVybiBYODZFTVVMX1VO SEFORExFQUJMRTsKICAgICAgICAgaWYgKCBsbSApCiAgICAgICAgIHsKICAgICAgICAgICAgIHN3 aXRjaCAoIHJjID0gb3BzLT5yZWFkKHNlbF9zZWcsIChzZWwgJiAweGZmZjgpICsgOCwKQEAgLTUx OTUsNyArNTE3Nyw3IEBAIHg4Nl9lbXVsYXRlKAogICAgICAgICAgICAgICAgIGNhc2UgMHgwMzog LyogYnVzeSAxNi1iaXQgVFNTICovCiAgICAgICAgICAgICAgICAgY2FzZSAweDA0OiAvKiAxNi1i aXQgY2FsbCBnYXRlICovCiAgICAgICAgICAgICAgICAgY2FzZSAweDA1OiAvKiAxNi8zMi1iaXQg dGFzayBnYXRlICovCi0gICAgICAgICAgICAgICAgICAgIGlmICggaW5fbG9uZ21vZGUoY3R4dCwg b3BzKSApCisgICAgICAgICAgICAgICAgICAgIGlmICggY3R4dC0+bG1hICkKICAgICAgICAgICAg ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAvKiBmYWxsIHRocm91Z2gg Ki8KICAgICAgICAgICAgICAgICBjYXNlIDB4MDI6IC8qIExEVCAqLwpAQCAtNTI0Miw3ICs1MjI0 LDcgQEAgeDg2X2VtdWxhdGUoCiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGNh c2UgMHgwMTogLyogYXZhaWxhYmxlIDE2LWJpdCBUU1MgKi8KICAgICAgICAgICAgICAgICBjYXNl IDB4MDM6IC8qIGJ1c3kgMTYtYml0IFRTUyAqLwotICAgICAgICAgICAgICAgICAgICBpZiAoIGlu X2xvbmdtb2RlKGN0eHQsIG9wcykgKQorICAgICAgICAgICAgICAgICAgICBpZiAoIGN0eHQtPmxt YSApCiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAg LyogZmFsbCB0aHJvdWdoICovCiAgICAgICAgICAgICAgICAgY2FzZSAweDAyOiAvKiBMRFQgKi8K QEAgLTUyOTIsMTAgKzUyNzQsNyBAQCB4ODZfZW11bGF0ZSgKICAgICAgICAgc3JlZy5hdHRyLmJ5 dGVzID0gMHhjOTM7IC8qIEcrREIrUCtTK0RhdGEgKi8KIAogI2lmZGVmIF9feDg2XzY0X18KLSAg ICAgICAgcmMgPSBpbl9sb25nbW9kZShjdHh0LCBvcHMpOwotICAgICAgICBpZiAoIHJjIDwgMCAp Ci0gICAgICAgICAgICBnb3RvIGNhbm5vdF9lbXVsYXRlOwotICAgICAgICBpZiAoIHJjICkKKyAg ICAgICAgaWYgKCBjdHh0LT5sbWEgKQogICAgICAgICB7CiAgICAgICAgICAgICBjcy5hdHRyLmJ5 dGVzID0gMHhhOWI7IC8qIEwrREIrUCtTK0NvZGUgKi8KIApAQCAtNTczMiw5ICs1NzExLDcgQEAg eDg2X2VtdWxhdGUoCiAgICAgICAgICAgICBkc3QudmFsID0gc3JjLnZhbDsKICAgICAgICAgYnJl YWs7CiAKLSAgICBjYXNlIFg4NkVNVUxfT1BDKDB4MGYsIDB4MzQpOiAvKiBzeXNlbnRlciAqLyB7 Ci0gICAgICAgIGludCBsbTsKLQorICAgIGNhc2UgWDg2RU1VTF9PUEMoMHgwZiwgMHgzNCk6IC8q IHN5c2VudGVyICovCiAgICAgICAgIHZjcHVfbXVzdF9oYXZlKHNlcCk7CiAgICAgICAgIGdlbmVy YXRlX2V4Y2VwdGlvbl9pZihtb2RlX3JpbmcwKCksIEVYQ19HUCwgMCk7CiAgICAgICAgIGdlbmVy YXRlX2V4Y2VwdGlvbl9pZighaW5fcHJvdG1vZGUoY3R4dCwgb3BzKSwgRVhDX0dQLCAwKTsKQEAg LTU3NDUsMTcgKzU3MjIsMTQgQEAgeDg2X2VtdWxhdGUoCiAgICAgICAgICAgICBnb3RvIGRvbmU7 CiAKICAgICAgICAgZ2VuZXJhdGVfZXhjZXB0aW9uX2lmKCEobXNyX3ZhbCAmIDB4ZmZmYyksIEVY Q19HUCwgMCk7Ci0gICAgICAgIGxtID0gaW5fbG9uZ21vZGUoY3R4dCwgb3BzKTsKLSAgICAgICAg aWYgKCBsbSA8IDAgKQotICAgICAgICAgICAgZ290byBjYW5ub3RfZW11bGF0ZTsKIAogICAgICAg ICBfcmVncy5lZmxhZ3MgJj0gfihYODZfRUZMQUdTX1ZNIHwgWDg2X0VGTEFHU19JRiB8IFg4Nl9F RkxBR1NfUkYpOwogCiAgICAgICAgIGNzLnNlbCA9IG1zcl92YWwgJiB+MzsgLyogU0VMRUNUT1Jf UlBMX01BU0sgKi8KICAgICAgICAgY3MuYmFzZSA9IDA7ICAgLyogZmxhdCBzZWdtZW50ICovCiAg ICAgICAgIGNzLmxpbWl0ID0gfjB1OyAgLyogNEdCIGxpbWl0ICovCi0gICAgICAgIGNzLmF0dHIu Ynl0ZXMgPSBsbSA/IDB4YTliICAvKiBHK0wrUCtTK0NvZGUgKi8KLSAgICAgICAgICAgICAgICAg ICAgICAgICAgIDogMHhjOWI7IC8qIEcrREIrUCtTK0NvZGUgKi8KKyAgICAgICAgY3MuYXR0ci5i eXRlcyA9IGN0eHQtPmxtYSA/IDB4YTliICAvKiBHK0wrUCtTK0NvZGUgKi8KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA6IDB4YzliOyAvKiBHK0RCK1ArUytDb2RlICovCiAKICAg ICAgICAgc3JlZy5zZWwgPSBjcy5zZWwgKyA4OwogICAgICAgICBzcmVnLmJhc2UgPSAwOyAgIC8q IGZsYXQgc2VnbWVudCAqLwpAQCAtNTc3MCwxNiArNTc0NCwxNSBAQCB4ODZfZW11bGF0ZSgKICAg ICAgICAgaWYgKCAocmMgPSBvcHMtPnJlYWRfbXNyKE1TUl9JQTMyX1NZU0VOVEVSX0VJUCwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtc3JfdmFsLCBjdHh0KSkgIT0gWDg2RU1V TF9PS0FZICkKICAgICAgICAgICAgIGdvdG8gZG9uZTsKLSAgICAgICAgX3JlZ3MucihpcCkgPSBs bSA/IG1zcl92YWwgOiAodWludDMyX3QpbXNyX3ZhbDsKKyAgICAgICAgX3JlZ3MucihpcCkgPSBj dHh0LT5sbWEgPyBtc3JfdmFsIDogKHVpbnQzMl90KW1zcl92YWw7CiAKICAgICAgICAgaWYgKCAo cmMgPSBvcHMtPnJlYWRfbXNyKE1TUl9JQTMyX1NZU0VOVEVSX0VTUCwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICZtc3JfdmFsLCBjdHh0KSkgIT0gWDg2RU1VTF9PS0FZICkKICAg ICAgICAgICAgIGdvdG8gZG9uZTsKLSAgICAgICAgX3JlZ3MucihzcCkgPSBsbSA/IG1zcl92YWwg OiAodWludDMyX3QpbXNyX3ZhbDsKKyAgICAgICAgX3JlZ3MucihzcCkgPSBjdHh0LT5sbWEgPyBt c3JfdmFsIDogKHVpbnQzMl90KW1zcl92YWw7CiAKICAgICAgICAgc2luZ2xlc3RlcCA9IF9yZWdz LmVmbGFncyAmIFg4Nl9FRkxBR1NfVEY7CiAgICAgICAgIGJyZWFrOwotICAgIH0KIAogICAgIGNh c2UgWDg2RU1VTF9PUEMoMHgwZiwgMHgzNSk6IC8qIHN5c2V4aXQgKi8KICAgICAgICAgdmNwdV9t dXN0X2hhdmUoc2VwKTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZf ZW11bGF0ZS5oIGIveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmgKaW5kZXgg MjE1YWRmNi4uZDlhMjUyZSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4 Nl9lbXVsYXRlLmgKKysrIGIveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmgK QEAgLTQ3Myw2ICs0NzMsOSBAQCBzdHJ1Y3QgeDg2X2VtdWxhdGVfY3R4dAogICAgIC8qIFN0YWNr IHBvaW50ZXIgd2lkdGggaW4gYml0cyAoMTYsIDMyIG9yIDY0KS4gKi8KICAgICB1bnNpZ25lZCBp bnQgc3Bfc2l6ZTsKIAorICAgIC8qIExvbmcgbW9kZSBhY3RpdmU/ICovCisgICAgYm9vbCBsbWE7 CisKICAgICAvKgogICAgICAqIE91dHB1dC1vbmx5IHN0YXRlOgogICAgICAqLwotLSAKMi4xLjQK CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2 ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVu Lm9yZy94ZW4tZGV2ZWwK