From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH RFC 38/44] x86/mca: Move __HYPERVISOR_mca IPI parameters off the stack Date: Thu, 4 Jan 2018 20:22:03 +0000 Message-ID: <1515097329-31902-39-git-send-email-andrew.cooper3@citrix.com> References: <1515097329-31902-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: <1515097329-31902-1-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: Andrew Cooper List-Id: xen-devel@lists.xenproject.org ZG9fbWNhKCkgbWFrZXMgc2V2ZXJhbCBJUEkgd2l0aCBodWdlIHBhcmFtZXRlciBibG9ja3MuICBB bGwgb3BlcmF0aW9ucyBhcmUKY29udHJvbC1wbGFuZSwgYW5kIGZvciBkZWJ1Z2dpbmcvZGV2ZWxv cG1lbnQgcHVycG9zZXMsIHNvIHJlc3RyaWN0IHRoZW0gdG8KYmVpbmcgc2VyaWFsaXNlZC4gIFRo aXMgYWxsb3dzIHRoZSBoeXBlcmNhbGwgcGFyYW1ldGVyIGJsb2NrIHRvIHNhZmVseSBiZQpzdGF0 aWMuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXgu Y29tPgotLS0KIHhlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21jZS5jIHwgMTQzICsrKysrKysrKysr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDg3IGluc2Vy dGlvbnMoKyksIDU2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9jcHUv bWNoZWNrL21jZS5jIGIveGVuL2FyY2gveDg2L2NwdS9tY2hlY2svbWNlLmMKaW5kZXggYThjMjg3 ZC4uNmU4OGM2NCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2NwdS9tY2hlY2svbWNlLmMKKysr IGIveGVuL2FyY2gveDg2L2NwdS9tY2hlY2svbWNlLmMKQEAgLTQ5LDE4ICs0OSw2IEBAIHN0cnVj dCBtY2FfYmFua3MgKm1jYV9hbGxiYW5rczsKICNkZWZpbmUgU0VHX1BMKHNlZ3NlbCkgICAoKHNl Z3NlbCkgJiAweDMpCiAjZGVmaW5lIF9NQ19NU1JJTkpfRl9SRVFfSFdDUl9XUkVOICgxIDw8IDE2 KQogCi0jaWYgMAotI2RlZmluZSB4ODZfbWNlcnIoZm10LCBlcnIsIGFyZ3MuLi4pICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICh7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBp bnQgX2VyciA9IChlcnIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAotICAgICAgICBnZHByaW50ayhYRU5MT0dfV0FSTklORywgIng4Nl9tY2VycjogIiBm bXQgIiwgcmV0dXJuaW5nICVkXG4iLCAgXAotICAgICAgICAgICAgICAgICAjIyBhcmdzLCBfZXJy KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBfZXJy OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAotICAgIH0pCi0jZWxzZQotI2RlZmluZSB4ODZfbWNlcnIoZm10LCBlcnIsIGFyZ3MuLi4p IChlcnIpCi0jZW5kaWYKLQogaW50IG1jZV92ZXJib3NpdHk7CiBzdGF0aWMgaW50IF9faW5pdCBt Y2Vfc2V0X3ZlcmJvc2l0eShjb25zdCBjaGFyICpzdHIpCiB7CkBAIC0xMzA2LDggKzEyOTQsMTEg QEAgQ0hFQ0tfbWNpbmZvX3JlY292ZXJ5OwogLyogTWFjaGluZSBDaGVjayBBcmNoaXRlY3R1cmUg SHlwZXJjYWxsICovCiBsb25nIGRvX21jYShYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlbl9tY190 KSB1X3hlbl9tYykKIHsKKyAgICBzdGF0aWMgc3BpbmxvY2tfdCBtY2FfbG9jayA9IFNQSU5fTE9D S19VTkxPQ0tFRDsKKyAgICBzdGF0aWMgc3RydWN0IHhlbl9tYyBjdXJvcDsKKwogICAgIGxvbmcg cmV0ID0gMDsKLSAgICBzdHJ1Y3QgeGVuX21jIGN1cm9wLCAqb3AgPSAmY3Vyb3A7CisgICAgc3Ry dWN0IHhlbl9tYyAqb3AgPSAmY3Vyb3A7CiAgICAgc3RydWN0IHZjcHUgKnYgPSBjdXJyZW50Owog ICAgIHVuaW9uIHsKICAgICAgICAgc3RydWN0IHhlbl9tY19mZXRjaCAqbmF0OwpAQCAtMTMyOCwx MyArMTMxOSwyNiBAQCBsb25nIGRvX21jYShYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlbl9tY190 KSB1X3hlbl9tYykKIAogICAgIHJldCA9IHhzbV9kb19tY2EoWFNNX1BSSVYpOwogICAgIGlmICgg cmV0ICkKLSAgICAgICAgcmV0dXJuIHg4Nl9tY2VycigiIiwgcmV0KTsKKyAgICAgICAgcmV0dXJu IHJldDsKKworICAgIHdoaWxlICggIXNwaW5fdHJ5bG9jaygmbWNhX2xvY2spICkKKyAgICB7Cisg ICAgICAgIGlmICggaHlwZXJjYWxsX3ByZWVtcHRfY2hlY2soKSApCisgICAgICAgICAgICByZXR1 cm4gaHlwZXJjYWxsX2NyZWF0ZV9jb250aW51YXRpb24oX19IWVBFUlZJU09SX21jYSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaCIsIHVfeGVuX21j KTsKKyAgICB9CiAKICAgICBpZiAoIGNvcHlfZnJvbV9ndWVzdChvcCwgdV94ZW5fbWMsIDEpICkK LSAgICAgICAgcmV0dXJuIHg4Nl9tY2VycigiZG9fbWNhOiBmYWlsZWQgY29weWluIG9mIHhlbl9t Y190IiwgLUVGQVVMVCk7CisgICAgeworICAgICAgICByZXQgPSAtRUZBVUxUOworICAgICAgICBn b3RvIG91dDsKKyAgICB9CiAKICAgICBpZiAoIG9wLT5pbnRlcmZhY2VfdmVyc2lvbiAhPSBYRU5f TUNBX0lOVEVSRkFDRV9WRVJTSU9OICkKLSAgICAgICAgcmV0dXJuIHg4Nl9tY2VycigiZG9fbWNh OiBpbnRlcmZhY2UgdmVyc2lvbiBtaXNtYXRjaCIsIC1FQUNDRVMpOworICAgIHsKKyAgICAgICAg cmV0ID0gLUVBQ0NFUzsKKyAgICAgICAgZ290byBvdXQ7CisgICAgfQogCiAgICAgc3dpdGNoICgg b3AtPmNtZCApCiAgICAgewpAQCAtMTM1Myw3ICsxMzU3LDggQEAgbG9uZyBkb19tY2EoWEVOX0dV RVNUX0hBTkRMRV9QQVJBTSh4ZW5fbWNfdCkgdV94ZW5fbWMpCiAgICAgICAgICAgICBicmVhazsK IAogICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIHg4Nl9tY2VycigiZG9fbWNh IGZldGNoOiBiYWQgY21kZmxhZ3MiLCAtRUlOVkFMKTsKKyAgICAgICAgICAgIHJldCA9IC1FSU5W QUw7CisgICAgICAgICAgICBnb3RvIG91dDsKICAgICAgICAgfQogCiAgICAgICAgIGZsYWdzID0g WEVOX01DX09LOwpAQCAtMTM2OCw4ICsxMzczLDEwIEBAIGxvbmcgZG9fbWNhKFhFTl9HVUVTVF9I QU5ETEVfUEFSQU0oeGVuX21jX3QpIHVfeGVuX21jKQogICAgICAgICAgICAgaWYgKCAhaXNfcHZf MzJiaXRfdmNwdSh2KQogICAgICAgICAgICAgICAgICA/IGd1ZXN0X2hhbmRsZV9pc19udWxsKG1j X2ZldGNoLm5hdC0+ZGF0YSkKICAgICAgICAgICAgICAgICAgOiBjb21wYXRfaGFuZGxlX2lzX251 bGwobWNfZmV0Y2guY21wLT5kYXRhKSApCi0gICAgICAgICAgICAgICAgcmV0dXJuIHg4Nl9tY2Vy cigiZG9fbWNhIGZldGNoOiBndWVzdCBidWZmZXIgIgotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgImludmFsaWQiLCAtRUlOVkFMKTsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg ICAgICByZXQgPSAtRUlOVkFMOworICAgICAgICAgICAgICAgIGdvdG8gb3V0OworICAgICAgICAg ICAgfQogCiAgICAgICAgICAgICBtY3RjID0gbWN0ZWxlbV9jb25zdW1lX29sZGVzdF9iZWdpbih3 aGljaCk7CiAgICAgICAgICAgICBpZiAoIG1jdGMgKQpAQCAtMTQwMiw3ICsxNDA5LDEwIEBAIGxv bmcgZG9fbWNhKFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVuX21jX3QpIHVfeGVuX21jKQogICAg ICAgICBicmVhazsKIAogICAgIGNhc2UgWEVOX01DX25vdGlmeWRvbWFpbjoKLSAgICAgICAgcmV0 dXJuIHg4Nl9tY2VycigiZG9fbWNhIG5vdGlmeSB1bnN1cHBvcnRlZCIsIC1FSU5WQUwpOworICAg IHsKKyAgICAgICAgcmV0ID0gLUVJTlZBTDsKKyAgICAgICAgZ290byBvdXQ7CisgICAgfQogCiAg ICAgY2FzZSBYRU5fTUNfcGh5c2NwdWluZm86CiAgICAgICAgIG1jX3BoeXNjcHVpbmZvLm5hdCA9 ICZvcC0+dS5tY19waHlzY3B1aW5mbzsKQEAgLTE0MTMsMTIgKzE0MjMsMTcgQEAgbG9uZyBkb19t Y2EoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZW5fbWNfdCkgdV94ZW5fbWMpCiAgICAgICAgICAg ICAgOiAhY29tcGF0X2hhbmRsZV9pc19udWxsKG1jX3BoeXNjcHVpbmZvLmNtcC0+aW5mbykgKQog ICAgICAgICB7CiAgICAgICAgICAgICBpZiAoIG1jX3BoeXNjcHVpbmZvLm5hdC0+bmNwdXMgPD0g MCApCi0gICAgICAgICAgICAgICAgcmV0dXJuIHg4Nl9tY2VycigiZG9fbWNhIGNwdWluZm86IG5j cHVzIDw9IDAiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLUVJTlZBTCk7Cisg ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmV0ID0gLUVJTlZBTDsKKyAgICAgICAgICAg ICAgICBnb3RvIG91dDsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIG5sY3B1ID0gbWluKG5s Y3B1LCAoaW50KW1jX3BoeXNjcHVpbmZvLm5hdC0+bmNwdXMpOwogICAgICAgICAgICAgbG9nX2Nw dXMgPSB4bWFsbG9jX2FycmF5KHhlbl9tY19sb2dpY2FsX2NwdV90LCBubGNwdSk7CiAgICAgICAg ICAgICBpZiAoIGxvZ19jcHVzID09IE5VTEwgKQotICAgICAgICAgICAgICAgIHJldHVybiB4ODZf bWNlcnIoImRvX21jYSBjcHVpbmZvIiwgLUVOT01FTSk7CisgICAgICAgICAgICB7CisgICAgICAg ICAgICAgICAgcmV0ID0gLUVOT01FTTsKKyAgICAgICAgICAgICAgICBnb3RvIG91dDsKKyAgICAg ICAgICAgIH0KICAgICAgICAgICAgIG9uX2VhY2hfY3B1KGRvX21jX2dldF9jcHVfaW5mbywgbG9n X2NwdXMsIDEpOwogICAgICAgICAgICAgaWYgKCAhaXNfcHZfMzJiaXRfdmNwdSh2KQogICAgICAg ICAgICAgICAgICA/IGNvcHlfdG9fZ3Vlc3QobWNfcGh5c2NwdWluZm8ubmF0LT5pbmZvLCBsb2df Y3B1cywgbmxjcHUpCkBAIC0xNDMwLDI2ICsxNDQ1LDI3IEBAIGxvbmcgZG9fbWNhKFhFTl9HVUVT VF9IQU5ETEVfUEFSQU0oeGVuX21jX3QpIHVfeGVuX21jKQogICAgICAgICBtY19waHlzY3B1aW5m by5uYXQtPm5jcHVzID0gbmxjcHU7CiAKICAgICAgICAgaWYgKCBjb3B5X3RvX2d1ZXN0KHVfeGVu X21jLCBvcCwgMSkgKQotICAgICAgICAgICAgcmV0dXJuIHg4Nl9tY2VycigiZG9fbWNhIGNwdWlu Zm8iLCAtRUZBVUxUKTsKLQorICAgICAgICAgICAgcmV0ID0gLUVGQVVMVDsKICAgICAgICAgYnJl YWs7CiAKICAgICBjYXNlIFhFTl9NQ19tc3JpbmplY3Q6CiAgICAgICAgIGlmICggbnJfbWNlX2Jh bmtzID09IDAgKQotICAgICAgICAgICAgcmV0dXJuIHg4Nl9tY2VycigiZG9fbWNhIGluamVjdCIs IC1FTk9ERVYpOworICAgICAgICB7CisgICAgICAgICAgICByZXQgPSAtRU5PREVWOworICAgICAg ICAgICAgZ290byBvdXQ7CisgICAgICAgIH0KIAogICAgICAgICBtY19tc3JpbmplY3QgPSAmb3At PnUubWNfbXNyaW5qZWN0OwogICAgICAgICB0YXJnZXQgPSBtY19tc3JpbmplY3QtPm1jaW5qX2Nw dW5yOwogCi0gICAgICAgIGlmICggdGFyZ2V0ID49IG5yX2NwdV9pZHMgKQotICAgICAgICAgICAg cmV0dXJuIHg4Nl9tY2VycigiZG9fbWNhIGluamVjdDogYmFkIHRhcmdldCIsIC1FSU5WQUwpOwot Ci0gICAgICAgIGlmICggIWNwdV9vbmxpbmUodGFyZ2V0KSApCi0gICAgICAgICAgICByZXR1cm4g eDg2X21jZXJyKCJkb19tY2EgaW5qZWN0OiB0YXJnZXQgb2ZmbGluZSIsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC1FSU5WQUwpOworICAgICAgICBpZiAoIHRhcmdldCA+PSBucl9jcHVf aWRzIHx8ICFjcHVfb25saW5lKHRhcmdldCkgKQorICAgICAgICB7CisgICAgICAgICAgICByZXQg PSAtRUlOVkFMOworICAgICAgICAgICAgZ290byBvdXQ7CisgICAgICAgIH0KIAogICAgICAgICBp ZiAoIG1jX21zcmluamVjdC0+bWNpbmpfY291bnQgPT0gMCApCi0gICAgICAgICAgICByZXR1cm4g MDsKKyAgICAgICAgICAgIGdvdG8gb3V0OwogCiAgICAgICAgIGlmICggbWNfbXNyaW5qZWN0LT5t Y2lual9mbGFncyAmIE1DX01TUklOSl9GX0dQQUREUiApCiAgICAgICAgIHsKQEAgLTE0NjQsMTQg KzE0ODAsMTcgQEAgbG9uZyBkb19tY2EoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZW5fbWNfdCkg dV94ZW5fbWMpCiAgICAgICAgICAgICBkb21pZCA9IChtY19tc3JpbmplY3QtPm1jaW5qX2RvbWlk ID09IERPTUlEX1NFTEYpID8KICAgICAgICAgICAgICAgICAgICAgY3VycmVudC0+ZG9tYWluLT5k b21haW5faWQgOiBtY19tc3JpbmplY3QtPm1jaW5qX2RvbWlkOwogICAgICAgICAgICAgaWYgKCBk b21pZCA+PSBET01JRF9GSVJTVF9SRVNFUlZFRCApCi0gICAgICAgICAgICAgICAgcmV0dXJuIHg4 Nl9tY2VycigiZG9fbWNhIGluamVjdDogaW5jb21wYXRpYmxlIGZsYWcgIgotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIk1DX01TUklOSl9GX0dQQUREUiB3aXRoIGRvbWFpbiAlZCIs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtRUlOVkFMLCBkb21pZCk7CisgICAg ICAgICAgICB7CisgICAgICAgICAgICAgICAgcmV0ID0gLUVJTlZBTDsKKyAgICAgICAgICAgICAg ICBnb3RvIG91dDsKKyAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgZCA9IGdldF9kb21haW5f YnlfaWQoZG9taWQpOwogICAgICAgICAgICAgaWYgKCBkID09IE5VTEwgKQotICAgICAgICAgICAg ICAgIHJldHVybiB4ODZfbWNlcnIoImRvX21jYSBpbmplY3Q6IGJhZCBkb21haW4gaWQgJWQiLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLUVJTlZBTCwgZG9taWQpOworICAgICAg ICAgICAgeworICAgICAgICAgICAgICAgIHJldCA9IC1FSU5WQUw7CisgICAgICAgICAgICAgICAg Z290byBvdXQ7CisgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGZvciAoIGkgPSAwLCBtc3Ig PSAmbWNfbXNyaW5qZWN0LT5tY2lual9tc3JbMF07CiAgICAgICAgICAgICAgICAgICBpIDwgbWNf bXNyaW5qZWN0LT5tY2lual9jb3VudDsKQEAgLTE0ODUsOCArMTUwNCw4IEBAIGxvbmcgZG9fbWNh KFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVuX21jX3QpIHVfeGVuX21jKQogICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgcHV0X2dmbihkLCBnZm4pOwogICAgICAgICAgICAg ICAgICAgICBwdXRfZG9tYWluKGQpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4geDg2X21j ZXJyKCJkb19tY2EgaW5qZWN0OiBiYWQgZ2ZuICUjbHggb2YgZG9tYWluICVkIiwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtRUlOVkFMLCBnZm4sIGRvbWlkKTsKKyAgICAg ICAgICAgICAgICAgICAgcmV0ID0gLUVJTlZBTDsKKyAgICAgICAgICAgICAgICAgICAgZ290byBv dXQ7CiAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgbXNyLT52YWx1ZSA9IHBm bl90b19wYWRkcihtZm4pIHwgKGdhZGRyICYgKFBBR0VfU0laRSAtIDEpKTsKQEAgLTE0OTgsNyAr MTUxNywxMCBAQCBsb25nIGRvX21jYShYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlbl9tY190KSB1 X3hlbl9tYykKICAgICAgICAgfQogCiAgICAgICAgIGlmICggIXg4Nl9tY19tc3JpbmplY3RfdmVy aWZ5KG1jX21zcmluamVjdCkgKQotICAgICAgICAgICAgcmV0dXJuIHg4Nl9tY2VycigiZG9fbWNh IGluamVjdDogaWxsZWdhbCBNU1IiLCAtRUlOVkFMKTsKKyAgICAgICAgeworICAgICAgICAgICAg cmV0ID0gLUVJTlZBTDsKKyAgICAgICAgICAgIGdvdG8gb3V0OworICAgICAgICB9CiAKICAgICAg ICAgYWRkX3RhaW50KFRBSU5UX0VSUk9SX0lOSkVDVCk7CiAKQEAgLTE1MDksMTYgKzE1MzEsMTkg QEAgbG9uZyBkb19tY2EoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZW5fbWNfdCkgdV94ZW5fbWMp CiAKICAgICBjYXNlIFhFTl9NQ19tY2VpbmplY3Q6CiAgICAgICAgIGlmICggbnJfbWNlX2Jhbmtz ID09IDAgKQotICAgICAgICAgICAgcmV0dXJuIHg4Nl9tY2VycigiZG9fbWNhICNNQyIsIC1FTk9E RVYpOworICAgICAgICB7CisgICAgICAgICAgICByZXQgPSAtRU5PREVWOworICAgICAgICAgICAg Z290byBvdXQ7CisgICAgICAgIH0KIAogICAgICAgICBtY19tY2VpbmplY3QgPSAmb3AtPnUubWNf bWNlaW5qZWN0OwogICAgICAgICB0YXJnZXQgPSBtY19tY2VpbmplY3QtPm1jZWlual9jcHVucjsK IAotICAgICAgICBpZiAoIHRhcmdldCA+PSBucl9jcHVfaWRzICkKLSAgICAgICAgICAgIHJldHVy biB4ODZfbWNlcnIoImRvX21jYSAjTUM6IGJhZCB0YXJnZXQiLCAtRUlOVkFMKTsKLQotICAgICAg ICBpZiAoICFjcHVfb25saW5lKHRhcmdldCkgKQotICAgICAgICAgICAgcmV0dXJuIHg4Nl9tY2Vy cigiZG9fbWNhICNNQzogdGFyZ2V0IG9mZmxpbmUiLCAtRUlOVkFMKTsKKyAgICAgICAgaWYgKCB0 YXJnZXQgPj0gbnJfY3B1X2lkcyB8fCAhY3B1X29ubGluZSh0YXJnZXQpICkKKyAgICAgICAgewor ICAgICAgICAgICAgcmV0ID0gLUVJTlZBTDsKKyAgICAgICAgICAgIGdvdG8gb3V0OworICAgICAg ICB9CiAKICAgICAgICAgYWRkX3RhaW50KFRBSU5UX0VSUk9SX0lOSkVDVCk7CiAKQEAgLTE1MzYs NyArMTU2MSwxMCBAQCBsb25nIGRvX21jYShYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlbl9tY190 KSB1X3hlbl9tYykKICAgICAgICAgYm9vbCBicm9hZGNhc3QgPSBvcC0+dS5tY19pbmplY3RfdjIu ZmxhZ3MgJiBYRU5fTUNfSU5KRUNUX0NQVV9CUk9BRENBU1Q7CiAKICAgICAgICAgaWYgKCBucl9t Y2VfYmFua3MgPT0gMCApCi0gICAgICAgICAgICByZXR1cm4geDg2X21jZXJyKCJkb19tY2EgI01D IiwgLUVOT0RFVik7CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldCA9IC1FTk9ERVY7CisgICAg ICAgICAgICBnb3RvIG91dDsKKyAgICAgICAgfQogCiAgICAgICAgIGlmICggYnJvYWRjYXN0ICkK ICAgICAgICAgICAgIGNwdW1hcCA9ICZjcHVfb25saW5lX21hcDsKQEAgLTE1NDksNyArMTU3Nyw3 IEBAIGxvbmcgZG9fbWNhKFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVuX21jX3QpIHVfeGVuX21j KQogICAgICAgICAgICAgaWYgKCAhY3B1bWFza19pbnRlcnNlY3RzKGNwdW1hcCwgJmNwdV9vbmxp bmVfbWFwKSApCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgZnJlZV9jcHVtYXNrX3Zh cihjbXYpOwotICAgICAgICAgICAgICAgIHJldCA9IHg4Nl9tY2VycigiTm8gb25saW5lIENQVSBw YXNzZWRcbiIsIC1FSU5WQUwpOworICAgICAgICAgICAgICAgIHJldCA9IC1FSU5WQUw7CiAgICAg ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoICFjcHVt YXNrX3N1YnNldChjcHVtYXAsICZjcHVfb25saW5lX21hcCkgKQpAQCAtMTU2OCw3ICsxNTk2LDcg QEAgbG9uZyBkb19tY2EoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZW5fbWNfdCkgdV94ZW5fbWMp CiAKICAgICAgICAgY2FzZSBYRU5fTUNfSU5KRUNUX1RZUEVfQ01DSToKICAgICAgICAgICAgIGlm ICggIWNtY2lfYXBpY192ZWN0b3IgKQotICAgICAgICAgICAgICAgIHJldCA9IHg4Nl9tY2Vycigi Tm8gQ01DSSBzdXBwb3J0ZWQgaW4gcGxhdGZvcm1cbiIsIC1FSU5WQUwpOworICAgICAgICAgICAg ICAgIHJldCA9IC1FSU5WQUw7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgaWYgKCBjcHVtYXNrX3Rlc3RfY3B1KHNtcF9wcm9jZXNzb3JfaWQoKSwgY3B1 bWFwKSApCkBAIC0xNTgwLDI2ICsxNjA4LDI1IEBAIGxvbmcgZG9fbWNhKFhFTl9HVUVTVF9IQU5E TEVfUEFSQU0oeGVuX21jX3QpIHVfeGVuX21jKQogICAgICAgICBjYXNlIFhFTl9NQ19JTkpFQ1Rf VFlQRV9MTUNFOgogICAgICAgICAgICAgaWYgKCAhbG1jZV9zdXBwb3J0ICkKICAgICAgICAgICAg IHsKLSAgICAgICAgICAgICAgICByZXQgPSB4ODZfbWNlcnIoIk5vIExNQ0Ugc3VwcG9ydCIsIC1F SU5WQUwpOworICAgICAgICAgICAgICAgIHJldCA9IC1FSU5WQUw7CiAgICAgICAgICAgICAgICAg YnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoIGJyb2FkY2FzdCApCiAgICAg ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmV0ID0geDg2X21jZXJyKCJCcm9hZGNhc3QgY2Fu bm90IGJlIHVzZWQgd2l0aCBMTUNFIiwgLUVJTlZBTCk7CisgICAgICAgICAgICAgICAgcmV0ID0g LUVJTlZBTDsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAg ICAgIC8qIEVuc3VyZSBhdCBtb3N0IG9uZSBDUFUgaXMgc3BlY2lmaWVkLiAqLwogICAgICAgICAg ICAgaWYgKCBucl9jcHVfaWRzID4gY3B1bWFza19uZXh0KGNwdW1hc2tfZmlyc3QoY3B1bWFwKSwg Y3B1bWFwKSApCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmV0ID0geDg2X21jZXJy KCJNb3JlIHRoYW4gb25lIENQVSBzcGVjaWZpZWQgZm9yIExNQ0UiLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAtRUlOVkFMKTsKKyAgICAgICAgICAgICAgICByZXQgPSAtRUlOVkFM OwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgb25f c2VsZWN0ZWRfY3B1cyhjcHVtYXAsIHg4Nl9tY19tY2VpbmplY3QsIE5VTEwsIDEpOwogICAgICAg ICAgICAgYnJlYWs7CiAKICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldCA9IHg4Nl9t Y2VycigiV3JvbmcgbWNhIHR5cGVcbiIsIC1FSU5WQUwpOworICAgICAgICAgICAgcmV0ID0gLUVJ TlZBTDsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKQEAgLTE2MTAsOSArMTYzNywx MyBAQCBsb25nIGRvX21jYShYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlbl9tY190KSB1X3hlbl9t YykKICAgICB9CiAKICAgICBkZWZhdWx0OgotICAgICAgICByZXR1cm4geDg2X21jZXJyKCJkb19t Y2E6IGJhZCBjb21tYW5kIiwgLUVJTlZBTCk7CisgICAgICAgIHJldCA9IC1FSU5WQUw7CisgICAg ICAgIGJyZWFrOwogICAgIH0KIAorIG91dDoKKyAgICBzcGluX3VubG9jaygmbWNhX2xvY2spOwor CiAgICAgcmV0dXJuIHJldDsKIH0KIAotLSAKMi4xLjQKCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZl bEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxt YW4vbGlzdGluZm8veGVuLWRldmVs