From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v2 1/6] x86/vmx: Fix handing of MSR_DEBUGCTL on VMExit Date: Wed, 30 May 2018 18:34:44 +0100 Message-ID: <1527701684-4083-1-git-send-email-andrew.cooper3@citrix.com> References: <1527517678-1779-2-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: <1527517678-1779-2-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Xen-devel Cc: Kevin Tian , Wei Liu , Jan Beulich , Andrew Cooper , Jun Nakajima , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org Q3VycmVudGx5LCB3aGVuZXZlciB0aGUgZ3Vlc3Qgd3JpdGVzIGEgbm9uemVybyB2YWx1ZSB0byBN U1JfREVCVUdDVEwsIFhlbgp1cGRhdGVzIGEgaG9zdCBNU1IgbG9hZCBsaXN0IGVudHJ5IHdpdGgg dGhlIGN1cnJlbnQgaGFyZHdhcmUgdmFsdWUgb2YKTVNSX0RFQlVHQ1RMLgoKT24gVk1FeGl0LCBo YXJkd2FyZSBhdXRvbWF0aWNhbGx5IHJlc2V0cyBNU1JfREVCVUdDVEwgdG8gMC4gIExhdGVyLCB3 aGVuIHRoZQpndWVzdCB3cml0ZXMgdG8gTVNSX0RFQlVHQ1RMLCB0aGUgY3VycmVudCB2YWx1ZSBp biBoYXJkd2FyZSAoMCkgaXMgZmVkIGJhY2sKaW50byBndWVzdCBsb2FkIGxpc3QuICBBcyBhIHBy YWN0aWNhbCByZXN1bHQsIGBsZXJgIGRlYnVnZ2luZyBnZXRzIGxvc3Qgb24gYW55ClBDUFUgd2hp Y2ggaGFzIGV2ZXIgc2NoZWR1bGVkIGFuIEhWTSB2Y3B1LCBhbmQgdGhlIGNvbW1vbiBjYXNlIHdo ZW4gYGxlcmAKZGVidWdnaW5nIGlzbid0IGFjdGl2ZSwgZ3Vlc3QgYWN0aW9ucyByZXN1bHQgaW4g YW4gdW5uZWNlc3NhcnkgbG9hZCBsaXN0IGVudHJ5CnJlcGVhdGluZyB0aGUgTVNSX0RFQlVHQ1RM IHJlc2V0LgoKUmVzdG9yYXRpb24gb2YgWGVuJ3MgZGVidWdnaW5nIHNldHRpbmcgbmVlZHMgdG8g aGFwcGVuIGZyb20gdGhlIHZlcnkgZmlyc3QKdm1leGl0LiAgRHVlIHRvIHRoZSBhdXRvbWF0aWMg cmVzZXQsIFhlbiBuZWVkIHRha2Ugbm8gYWN0aW9uIGluIHRoZSBnZW5lcmFsCmNhc2UsIGFuZCBv bmx5IG5lZWRzIHRvIGxvYWQgYSB2YWx1ZSB3aGVuIGRlYnVnZ2luZyBpcyBhY3RpdmUuCgpUaGlz IGNvdWxkIGJlIGZpeGVkIGJ5IHVzaW5nIGEgaG9zdCBNU1IgbG9hZCBsaXN0IGVudHJ5IHNldCB1 cCBkdXJpbmcKY29uc3RydWN0X3ZtY3MoKS4gIEhvd2V2ZXIsIGEgbW9yZSBlZmZpY2llbnQgb3B0 aW9uIGlzIHRvIHVzZSBhbiBhbHRlcm5hdGl2ZQpibG9jayBpbiB0aGUgVk1FeGl0IHBhdGgsIGtl eWVkIG9uIHdoZXRoZXIgaHlwZXJ2aXNvciBkZWJ1Z2dpbmcgaGFzIGJlZW4KZW5hYmxlZC4KCklu IG9yZGVyIHRvIHNldCB0aGlzIHVwLCBkcm9wIHRoZSBwZXIgY3B1IGxlcl9tc3IgdmFyaWFibGUg KGFzIHRoZXJlIGlzIG5vCnBvaW50IGhhdmluZyBpdCBwZXIgY3B1IHdoZW4gaXQgd2lsbCBiZSB0 aGUgc2FtZSBldmVyeXdoZXJlKSwgYW5kIHVzZSBhIHNpbmdsZQpyZWFkX21vc3RseSB2YXJpYWJs ZSBpbnN0ZWFkLiAgU3BsaXQgY2FsY19sZXJfbXNyKCkgb3V0IG9mIHBlcmNwdV90cmFwc19pbml0 KCkKZm9yIGNsYXJpdHkuCgpGaW5hbGx5LCBjbGVhbiB1cCBkb19kZWJ1ZygpLiAgUmVpbnN0YXRl IExCUiBlYXJseSB0byBoZWxwIGNhdGNoIGNhc2NhZGUKZXJyb3JzLCB3aGljaCBhbGxvd3MgZm9y IHRoZSByZW1vdmFsIG9mIHRoZSBvdXQgbGFiZWwuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29v cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgotLS0KQ0M6IEphbiBCZXVsaWNoIDxKQmV1 bGljaEBzdXNlLmNvbT4KQ0M6IEp1biBOYWthamltYSA8anVuLm5ha2FqaW1hQGludGVsLmNvbT4K Q0M6IEtldmluIFRpYW4gPGtldmluLnRpYW5AaW50ZWwuY29tPgpDQzogV2VpIExpdSA8d2VpLmxp dTJAY2l0cml4LmNvbT4KQ0M6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29t PgoKdjI6CiAqIFJlaW5zdGF0ZSBMQlIgZWFybHkgaW4gZG9fZGVidWcoKQogKiBSZXdyaXRlIHRo ZSBjb21taXQgbWVzc2FnZS4KLS0tCiB4ZW4vYXJjaC94ODYvaHZtL3ZteC9lbnRyeS5TICAgICAg fCAgOSArKysrKysKIHhlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jICAgICAgICB8ICAzICstCiB4 ZW4vYXJjaC94ODYvdHJhcHMuYyAgICAgICAgICAgICAgfCA2NCArKysrKysrKysrKysrKysrKyst LS0tLS0tLS0tLS0tLS0tLS0tLS0KIHhlbi9hcmNoL3g4Ni94ODZfNjQvdHJhcHMuYyAgICAgICB8 ICA3ICsrKy0tCiB4ZW4vaW5jbHVkZS9hc20teDg2L2NwdWZlYXR1cmUuaCAgfCAgMSArCiB4ZW4v aW5jbHVkZS9hc20teDg2L2NwdWZlYXR1cmVzLmggfCAgMSArCiB4ZW4vaW5jbHVkZS9hc20teDg2 L21zci5oICAgICAgICAgfCAgMiArLQogNyBmaWxlcyBjaGFuZ2VkLCA0NyBpbnNlcnRpb25zKCsp LCA0MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3ZteC9lbnRy eS5TIGIveGVuL2FyY2gveDg2L2h2bS92bXgvZW50cnkuUwppbmRleCBhYTJmMTAzLi5hZmQ1NTJm IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3ZteC9lbnRyeS5TCisrKyBiL3hlbi9hcmNo L3g4Ni9odm0vdm14L2VudHJ5LlMKQEAgLTQxLDYgKzQxLDE1IEBAIEVOVFJZKHZteF9hc21fdm1l eGl0X2hhbmRsZXIpCiAgICAgICAgIFNQRUNfQ1RSTF9FTlRSWV9GUk9NX0hWTSAgICAvKiBSZXE6 IGI9Y3VyciAlcnNwPXJlZ3MvY3B1aW5mbywgQ2xvYjogYWNkICovCiAgICAgICAgIC8qIFdBUk5J TkchIGByZXRgLCBgY2FsbCAqYCwgYGptcCAqYCBub3Qgc2FmZSBiZWZvcmUgdGhpcyBwb2ludC4g Ki8KIAorICAgICAgICAvKiBIYXJkd2FyZSBjbGVhcnMgTVNSX0RFQlVHQ1RMIG9uIFZNRXhpdC4g IFJlaW5zdGF0ZSBpdCBpZiBkZWJ1Z2dpbmcgWGVuLiAqLworICAgICAgICAubWFjcm8gcmVzdG9y ZV9sYnIKKyAgICAgICAgICAgIG1vdiAkSUEzMl9ERUJVR0NUTE1TUl9MQlIsICVlYXgKKyAgICAg ICAgICAgIG1vdiAkTVNSX0lBMzJfREVCVUdDVExNU1IsICVlY3gKKyAgICAgICAgICAgIHhvciAl ZWR4LCAlZWR4CisgICAgICAgICAgICB3cm1zcgorICAgICAgICAuZW5kbQorICAgICAgICBBTFRF Uk5BVElWRSAiIiwgcmVzdG9yZV9sYnIsIFg4Nl9GRUFUVVJFX1hFTl9MQlIKKwogICAgICAgICBt b3YgICVyc3AsJXJkaQogICAgICAgICBjYWxsIHZteF92bWV4aXRfaGFuZGxlcgogCmRpZmYgLS1n aXQgYS94ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYyBiL3hlbi9hcmNoL3g4Ni9odm0vdm14L3Zt eC5jCmluZGV4IDk3MDc1MTQuLjMzZDM5ZjYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0v dm14L3ZteC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jCkBAIC0zMTIwLDggKzMx MjAsNyBAQCBzdGF0aWMgaW50IHZteF9tc3Jfd3JpdGVfaW50ZXJjZXB0KHVuc2lnbmVkIGludCBt c3IsIHVpbnQ2NF90IG1zcl9jb250ZW50KQogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg IH0KIAotICAgICAgICBpZiAoIChyYyA8IDApIHx8Ci0gICAgICAgICAgICAgKG1zcl9jb250ZW50 ICYmICh2bXhfYWRkX2hvc3RfbG9hZF9tc3IobXNyKSA8IDApKSApCisgICAgICAgIGlmICggcmMg PCAwICkKICAgICAgICAgICAgIGh2bV9pbmplY3RfaHdfZXhjZXB0aW9uKFRSQVBfbWFjaGluZV9j aGVjaywgWDg2X0VWRU5UX05PX0VDKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgX192bXdy aXRlKEdVRVNUX0lBMzJfREVCVUdDVEwsIG1zcl9jb250ZW50KTsKZGlmZiAtLWdpdCBhL3hlbi9h cmNoL3g4Ni90cmFwcy5jIGIveGVuL2FyY2gveDg2L3RyYXBzLmMKaW5kZXggOGE5OTE3NC4uMmI5 YzI3NiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3RyYXBzLmMKKysrIGIveGVuL2FyY2gveDg2 L3RyYXBzLmMKQEAgLTk2LDggKzk2LDYgQEAgc3RyaW5nX3BhcmFtKCJubWkiLCBvcHRfbm1pKTsK IERFRklORV9QRVJfQ1BVKHVpbnQ2NF90LCBlZmVyKTsKIHN0YXRpYyBERUZJTkVfUEVSX0NQVSh1 bnNpZ25lZCBsb25nLCBsYXN0X2V4dGFibGVfYWRkcik7CiAKLURFRklORV9QRVJfQ1BVX1JFQURf TU9TVExZKHUzMiwgbGVyX21zcik7Ci0KIERFRklORV9QRVJfQ1BVX1JFQURfTU9TVExZKHN0cnVj dCBkZXNjX3N0cnVjdCAqLCBnZHRfdGFibGUpOwogREVGSU5FX1BFUl9DUFVfUkVBRF9NT1NUTFko c3RydWN0IGRlc2Nfc3RydWN0ICosIGNvbXBhdF9nZHRfdGFibGUpOwogCkBAIC0xMTcsNiArMTE1 LDkgQEAgaW50ZWdlcl9wYXJhbSgiZGVidWdfc3RhY2tfbGluZXMiLCBkZWJ1Z19zdGFja19saW5l cyk7CiBzdGF0aWMgYm9vbCBvcHRfbGVyOwogYm9vbGVhbl9wYXJhbSgibGVyIiwgb3B0X2xlcik7 CiAKKy8qIExhc3RFeGNlcHRpb25Gcm9tSVAgb24gdGhpcyBoYXJkd2FyZS4gIFplcm8gaWYgTEVS IGlzIG5vdCBpbiB1c2UuICovCit1aW50MzJfdCBfX3JlYWRfbW9zdGx5IGxlcl9tc3I7CisKICNk ZWZpbmUgc3RhY2tfd29yZHNfcGVyX2xpbmUgNAogI2RlZmluZSBFU1BfQkVGT1JFX0VYQ0VQVElP TihyZWdzKSAoKHVuc2lnbmVkIGxvbmcgKilyZWdzLT5yc3ApCiAKQEAgLTE3NjQsMTcgKzE3NjUs NiBAQCB2b2lkIGRvX2RldmljZV9ub3RfYXZhaWxhYmxlKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpy ZWdzKQogICAgIHJldHVybjsKIH0KIAotc3RhdGljIHZvaWQgbGVyX2VuYWJsZSh2b2lkKQotewot ICAgIHU2NCBkZWJ1Z2N0bDsKLQotICAgIGlmICggIXRoaXNfY3B1KGxlcl9tc3IpICkKLSAgICAg ICAgcmV0dXJuOwotCi0gICAgcmRtc3JsKE1TUl9JQTMyX0RFQlVHQ1RMTVNSLCBkZWJ1Z2N0bCk7 Ci0gICAgd3Jtc3JsKE1TUl9JQTMyX0RFQlVHQ1RMTVNSLCBkZWJ1Z2N0bCB8IElBMzJfREVCVUdD VExNU1JfTEJSKTsKLX0KLQogdm9pZCBkb19kZWJ1ZyhzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVn cykKIHsKICAgICB1bnNpZ25lZCBsb25nIGRyNjsKQEAgLTE4MDcsNiArMTc5NywxMCBAQCB2b2lk IGRvX2RlYnVnKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAgICAqLwogICAgIHdyaXRl X2RlYnVncmVnKDYsIFg4Nl9EUjZfREVGQVVMVCk7CiAKKyAgICAvKiAjREIgYXV0b21hdGljYWxs eSBkaXNhYmxlZCBMQlIuICBSZWluc3RhdGUgaXQgaWYgZGVidWdnaW5nIFhlbi4gKi8KKyAgICBp ZiAoIGNwdV9oYXNfeGVuX2xiciApCisgICAgICAgIHdybXNybChNU1JfSUEzMl9ERUJVR0NUTE1T UiwgSUEzMl9ERUJVR0NUTE1TUl9MQlIpOworCiAgICAgaWYgKCAhZ3Vlc3RfbW9kZShyZWdzKSAp CiAgICAgewogICAgICAgICBpZiAoIHJlZ3MtPmVmbGFncyAmIFg4Nl9FRkxBR1NfVEYgKQpAQCAt MTgxNyw3ICsxODExLDcgQEAgdm9pZCBkb19kZWJ1ZyhzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVn cykKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBpZiAoIHJlZ3MtPnJpcCA9PSAodW5z aWduZWQgbG9uZylzeXNlbnRlcl9lZmxhZ3Nfc2F2ZWQgKQogICAgICAgICAgICAgICAgICAgICBy ZWdzLT5lZmxhZ3MgJj0gflg4Nl9FRkxBR1NfVEY7Ci0gICAgICAgICAgICAgICAgZ290byBvdXQ7 CisgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYg KCAhZGVidWdnZXJfdHJhcF9mYXRhbChUUkFQX2RlYnVnLCByZWdzKSApCiAgICAgICAgICAgICB7 CkBAIC0xODYzLDIwICsxODU3LDE0IEBAIHZvaWQgZG9fZGVidWcoc3RydWN0IGNwdV91c2VyX3Jl Z3MgKnJlZ3MpCiAgICAgICAgICAgICAgICAgcmVncy0+Y3MsIF9wKHJlZ3MtPnJpcCksIF9wKHJl Z3MtPnJpcCksCiAgICAgICAgICAgICAgICAgcmVncy0+c3MsIF9wKHJlZ3MtPnJzcCksIGRyNik7 CiAKLSAgICAgICAgZ290byBvdXQ7CisgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICAvKiBT YXZlIGRlYnVnIHN0YXR1cyByZWdpc3RlciB3aGVyZSBndWVzdCBPUyBjYW4gcGVlayBhdCBpdCAq LwogICAgIHYtPmFyY2guZGVidWdyZWdbNl0gfD0gKGRyNiAmIH5YODZfRFI2X0RFRkFVTFQpOwog ICAgIHYtPmFyY2guZGVidWdyZWdbNl0gJj0gKGRyNiB8IH5YODZfRFI2X0RFRkFVTFQpOwogCi0g ICAgbGVyX2VuYWJsZSgpOwogICAgIHB2X2luamVjdF9od19leGNlcHRpb24oVFJBUF9kZWJ1Zywg WDg2X0VWRU5UX05PX0VDKTsKLSAgICByZXR1cm47Ci0KLSBvdXQ6Ci0gICAgbGVyX2VuYWJsZSgp OwotICAgIHJldHVybjsKIH0KIAogc3RhdGljIHZvaWQgX19pbml0IG5vaW5saW5lIF9fc2V0X2lu dHJfZ2F0ZSh1bnNpZ25lZCBpbnQgbiwKQEAgLTE5MjAsMzggKzE5MDgsNDYgQEAgdm9pZCBsb2Fk X1RSKHZvaWQpCiAgICAgICAgIDogIj1tIiAob2xkX2dkdCkgOiAicm0iIChUU1NfRU5UUlkgPDwg MyksICJtIiAodHNzX2dkdCkgOiAibWVtb3J5IiApOwogfQogCi12b2lkIHBlcmNwdV90cmFwc19p bml0KHZvaWQpCitzdGF0aWMgdW5zaWduZWQgaW50IGNhbGNfbGVyX21zcih2b2lkKQogewotICAg IHN1YmFyY2hfcGVyY3B1X3RyYXBzX2luaXQoKTsKLQotICAgIGlmICggIW9wdF9sZXIgKQotICAg ICAgICByZXR1cm47Ci0KICAgICBzd2l0Y2ggKCBib290X2NwdV9kYXRhLng4Nl92ZW5kb3IgKQog ICAgIHsKICAgICBjYXNlIFg4Nl9WRU5ET1JfSU5URUw6CiAgICAgICAgIHN3aXRjaCAoIGJvb3Rf Y3B1X2RhdGEueDg2ICkKICAgICAgICAgewogICAgICAgICBjYXNlIDY6Ci0gICAgICAgICAgICB0 aGlzX2NwdShsZXJfbXNyKSA9IE1TUl9JQTMyX0xBU1RJTlRGUk9NSVA7Ci0gICAgICAgICAgICBi cmVhazsKKyAgICAgICAgICAgIHJldHVybiBNU1JfSUEzMl9MQVNUSU5URlJPTUlQOworCiAgICAg ICAgIGNhc2UgMTU6Ci0gICAgICAgICAgICB0aGlzX2NwdShsZXJfbXNyKSA9IE1TUl9QNF9MRVJf RlJPTV9MSVA7Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIHJldHVybiBNU1JfUDRf TEVSX0ZST01fTElQOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOworCiAgICAgY2FzZSBYODZf VkVORE9SX0FNRDoKICAgICAgICAgc3dpdGNoICggYm9vdF9jcHVfZGF0YS54ODYgKQogICAgICAg ICB7CiAgICAgICAgIGNhc2UgNjoKICAgICAgICAgY2FzZSAweGYgLi4uIDB4MTc6Ci0gICAgICAg ICAgICB0aGlzX2NwdShsZXJfbXNyKSA9IE1TUl9JQTMyX0xBU1RJTlRGUk9NSVA7Ci0gICAgICAg ICAgICBicmVhazsKKyAgICAgICAgICAgIHJldHVybiBNU1JfSUEzMl9MQVNUSU5URlJPTUlQOwog ICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIGxlcl9lbmFibGUoKTsKKyAg ICByZXR1cm4gMDsKK30KKwordm9pZCBwZXJjcHVfdHJhcHNfaW5pdCh2b2lkKQoreworICAgIHN1 YmFyY2hfcGVyY3B1X3RyYXBzX2luaXQoKTsKKworICAgIGlmICggIW9wdF9sZXIgKQorICAgICAg ICByZXR1cm47CisKKyAgICBpZiAoICFsZXJfbXNyICYmIChsZXJfbXNyID0gY2FsY19sZXJfbXNy KCkpICkKKyAgICAgICAgc2V0dXBfZm9yY2VfY3B1X2NhcChYODZfRkVBVFVSRV9YRU5fTEJSKTsK KworICAgIGlmICggY3B1X2hhc194ZW5fbGJyICkKKyAgICAgICAgd3Jtc3JsKE1TUl9JQTMyX0RF QlVHQ1RMTVNSLCBJQTMyX0RFQlVHQ1RMTVNSX0xCUik7CiB9CiAKIHZvaWQgX19pbml0IGluaXRf aWR0X3RyYXBzKHZvaWQpCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYveDg2XzY0L3RyYXBzLmMg Yi94ZW4vYXJjaC94ODYveDg2XzY0L3RyYXBzLmMKaW5kZXggZjdmNjkyOC4uYjA0MDE4NSAxMDA2 NDQKLS0tIGEveGVuL2FyY2gveDg2L3g4Nl82NC90cmFwcy5jCisrKyBiL3hlbi9hcmNoL3g4Ni94 ODZfNjQvdHJhcHMuYwpAQCAtMTQ0LDExICsxNDQsMTIgQEAgdm9pZCBzaG93X3JlZ2lzdGVycyhj b25zdCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKICAgICBwcmludGsoIkNQVTogICAgJWRc biIsIHNtcF9wcm9jZXNzb3JfaWQoKSk7CiAgICAgX3Nob3dfcmVnaXN0ZXJzKCZmYXVsdF9yZWdz LCBmYXVsdF9jcnMsIGNvbnRleHQsIHYpOwogCi0gICAgaWYgKCB0aGlzX2NwdShsZXJfbXNyKSAm JiAhZ3Vlc3RfbW9kZShyZWdzKSApCisgICAgaWYgKCBsZXJfbXNyICYmICFndWVzdF9tb2RlKHJl Z3MpICkKICAgICB7CiAgICAgICAgIHU2NCBmcm9tLCB0bzsKLSAgICAgICAgcmRtc3JsKHRoaXNf Y3B1KGxlcl9tc3IpLCBmcm9tKTsKLSAgICAgICAgcmRtc3JsKHRoaXNfY3B1KGxlcl9tc3IpICsg MSwgdG8pOworCisgICAgICAgIHJkbXNybChsZXJfbXNyLCBmcm9tKTsKKyAgICAgICAgcmRtc3Js KGxlcl9tc3IgKyAxLCB0byk7CiAgICAgICAgIHByaW50aygibGVyOiAlMDE2bHggLT4gJTAxNmx4 XG4iLCBmcm9tLCB0byk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4 Ni9jcHVmZWF0dXJlLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L2NwdWZlYXR1cmUuaAppbmRleCAy Y2Y4ZjdlLi5iMjM3ZGExIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2NwdWZlYXR1 cmUuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2NwdWZlYXR1cmUuaApAQCAtMTEzLDYgKzEx Myw3IEBACiAjZGVmaW5lIGNwdV9oYXNfYXBlcmZtcGVyZiAgICAgIGJvb3RfY3B1X2hhcyhYODZf RkVBVFVSRV9BUEVSRk1QRVJGKQogI2RlZmluZSBjcHVfaGFzX2xmZW5jZV9kaXNwYXRjaCBib290 X2NwdV9oYXMoWDg2X0ZFQVRVUkVfTEZFTkNFX0RJU1BBVENIKQogI2RlZmluZSBjcHVfaGFzX25v X3hwdGkgICAgICAgICBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfTk9fWFBUSSkKKyNkZWZpbmUg Y3B1X2hhc194ZW5fbGJyICAgICAgICAgYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX1hFTl9MQlIp CiAKIGVudW0gX2NhY2hlX3R5cGUgewogICAgIENBQ0hFX1RZUEVfTlVMTCA9IDAsCmRpZmYgLS1n aXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2NwdWZlYXR1cmVzLmggYi94ZW4vaW5jbHVkZS9hc20t eDg2L2NwdWZlYXR1cmVzLmgKaW5kZXggYjkwYWEyZC4uOGU1Y2M1MyAxMDA2NDQKLS0tIGEveGVu L2luY2x1ZGUvYXNtLXg4Ni9jcHVmZWF0dXJlcy5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYv Y3B1ZmVhdHVyZXMuaApAQCAtMzIsMyArMzIsNCBAQCBYRU5fQ1BVRkVBVFVSRShTQ19SU0JfUFYs ICAgICAgIChGU0NBUElOVFMrMCkqMzIrMTgpIC8qIFJTQiBvdmVyd3JpdGUgbmVlZGVkIGZvcgog WEVOX0NQVUZFQVRVUkUoU0NfUlNCX0hWTSwgICAgICAoRlNDQVBJTlRTKzApKjMyKzE5KSAvKiBS U0Igb3ZlcndyaXRlIG5lZWRlZCBmb3IgSFZNICovCiBYRU5fQ1BVRkVBVFVSRShOT19YUFRJLCAg ICAgICAgIChGU0NBUElOVFMrMCkqMzIrMjApIC8qIFhQVEkgbWl0aWdhdGlvbiBub3QgaW4gdXNl ICovCiBYRU5fQ1BVRkVBVFVSRShTQ19NU1JfSURMRSwgICAgIChGU0NBUElOVFMrMCkqMzIrMjEp IC8qIChTQ19NU1JfUFYgfHwgU0NfTVNSX0hWTSkgJiYgZGVmYXVsdF94ZW5fc3BlY19jdHJsICov CitYRU5fQ1BVRkVBVFVSRShYRU5fTEJSLCAgICAgICAgIChGU0NBUElOVFMrMCkqMzIrMjIpIC8q IFhlbiB1c2VzIE1TUl9ERUJVR0NUTC5MQlIgKi8KZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2Fz bS14ODYvbXNyLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L21zci5oCmluZGV4IGYxNGYyNjUuLjlm NmQzYjIgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvbXNyLmgKKysrIGIveGVuL2lu Y2x1ZGUvYXNtLXg4Ni9tc3IuaApAQCAtMjQxLDcgKzI0MSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9p ZCB3cml0ZV9lZmVyKHVpbnQ2NF90IHZhbCkKICAgICB3cm1zcmwoTVNSX0VGRVIsIHZhbCk7CiB9 CiAKLURFQ0xBUkVfUEVSX0NQVSh1MzIsIGxlcl9tc3IpOworZXh0ZXJuIHVpbnQzMl90IGxlcl9t c3I7CiAKIERFQ0xBUkVfUEVSX0NQVSh1aW50MzJfdCwgdHNjX2F1eCk7CiAKLS0gCjIuMS40CgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVs IG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0 cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==