From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v2 2/5] x86: Handle the Xen MSRs via the new guest_{rd, wr}msr() infrastructure Date: Wed, 7 Mar 2018 18:58:33 +0000 Message-ID: <1520449116-15443-3-git-send-email-andrew.cooper3@citrix.com> References: <1520449116-15443-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: <1520449116-15443-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 , Paul Durrant , Wei Liu , Jan Beulich , Sergey Dyasli List-Id: xen-devel@lists.xenproject.org RGlzcGF0Y2ggZnJvbSB0aGUgZ3Vlc3Rfe3JkLHdyfW1zcigpIGZ1bmN0aW9ucywgYWZ0ZXIgZmFs bGluZyB0aHJvdWdoIGZyb20gdGhlCiFpc192aXJpZGlhbl9kb21haW4oKSBjYXNlLgoKUmVuYW1l IHtyZCx3cn1tc3JfaHlwZXJ2aXNvcl9yZWdzKCkgdG8gZ3Vlc3Rfe3JkLHdyfW1zcl94ZW4oKSBm b3IgY29uc2lzdGVuY3ksCmFuZCBiZWNhdXNlIHRoZSBfcmVncyBzdWZmaXggaXNuJ3QgdmVyeSBh cHByb3ByaWF0ZS4KClVwZGF0ZSB0aGVtIHRvIHRha2UgYSB2Y3B1IHBvaW50ZXIgcmF0aGVyIHRo YW4gcHJlc3VtaW5nIHRoYXQgdGhleSBhY3Qgb24KY3VycmVudCwgYW5kIHN3aXRjaCB0byB1c2lu ZyBYODZFTVVMXyogcmV0dXJuIHZhbHVlcy4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIg PGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5OiBCb3JpcyBPc3Ryb3Zza3kg PGJvcmlzLm9zdHJvdnNreUBvcmFjbGUuY29tPgpSZXZpZXdlZC1ieTogS2V2aW4gVGlhbiA8a2V2 aW4udGlhbkBpbnRlbC5jb20+ClJldmlld2VkLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5w YXVAY2l0cml4LmNvbT4KLS0tCkNDOiBKYW4gQmV1bGljaCA8SkJldWxpY2hAc3VzZS5jb20+CkND OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPgpDQzogV2VpIExpdSA8d2Vp LmxpdTJAY2l0cml4LmNvbT4KQ0M6IFNlcmdleSBEeWFzbGkgPHNlcmdleS5keWFzbGlAY2l0cml4 LmNvbT4KCnYyOgogKiBJbnRyb2R1Y2Ugc29tZSBjb25zdGFudHMgZm9yIHRoZSBoeXBlcnZpc29y IHJhbmdlLiAgSG93ZXZlciwgSSBkbyBub3QgdGhpbmsKICAgdGhlIGN1cnJlbnQgY29kZSBpcyBh biBpbXByb3ZlbWVudCBvdmVyIGJhcmUgbnVtYmVycy4KLS0tCiB4ZW4vYXJjaC94ODYvaHZtL3N2 bS9zdm0uYyAgICAgIHwgMjUgKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogeGVuL2FyY2gveDg2 L2h2bS92bXgvdm14LmMgICAgICB8IDI0ICsrKystLS0tLS0tLS0tLS0tLS0tLS0tLQogeGVuL2Fy Y2gveDg2L21zci5jICAgICAgICAgICAgICB8ICA4ICsrKysrKysrCiB4ZW4vYXJjaC94ODYvcHYv ZW11bC1wcml2LW9wLmMgIHwgIDYgLS0tLS0tCiB4ZW4vYXJjaC94ODYvdHJhcHMuYyAgICAgICAg ICAgIHwgMzYgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tCiB4ZW4vaW5jbHVk ZS9hc20teDg2L21zci1pbmRleC5oIHwgIDIgKysKIHhlbi9pbmNsdWRlL2FzbS14ODYvcHJvY2Vz c29yLmggfCAgNCArKy0tCiA3IGZpbGVzIGNoYW5nZWQsIDM4IGluc2VydGlvbnMoKyksIDY3IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vc3ZtL3N2bS5jIGIveGVu L2FyY2gveDg2L2h2bS9zdm0vc3ZtLmMKaW5kZXggZThhYzJkOC4uZGFkZjkyZCAxMDA2NDQKLS0t IGEveGVuL2FyY2gveDg2L2h2bS9zdm0vc3ZtLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9zdm0v c3ZtLmMKQEAgLTE5NjYsOSArMTk2Niw2IEBAIHN0YXRpYyBpbnQgc3ZtX21zcl9yZWFkX2ludGVy Y2VwdCh1bnNpZ25lZCBpbnQgbXNyLCB1aW50NjRfdCAqbXNyX2NvbnRlbnQpCiAgICAgICAgIGVs c2UgaWYgKCByZXQgKQogICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgaWYgKCByZG1zcl9o eXBlcnZpc29yX3JlZ3MobXNyLCBtc3JfY29udGVudCkgKQotICAgICAgICAgICAgYnJlYWs7Ci0K ICAgICAgICAgaWYgKCByZG1zcl9zYWZlKG1zciwgKm1zcl9jb250ZW50KSA9PSAwICkKICAgICAg ICAgICAgIGJyZWFrOwogCkBAIC0yMTIxLDI1ICsyMTE4LDExIEBAIHN0YXRpYyBpbnQgc3ZtX21z cl93cml0ZV9pbnRlcmNlcHQodW5zaWduZWQgaW50IG1zciwgdWludDY0X3QgbXNyX2NvbnRlbnQp CiAgICAgICAgIGVsc2UgaWYgKCByZXQgKQogICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAg c3dpdGNoICggd3Jtc3JfaHlwZXJ2aXNvcl9yZWdzKG1zciwgbXNyX2NvbnRlbnQpICkKLSAgICAg ICAgewotICAgICAgICBjYXNlIC1FUkVTVEFSVDoKLSAgICAgICAgICAgIHJlc3VsdCA9IFg4NkVN VUxfUkVUUlk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAwOgotICAgICAgICAg ICAgLyoKLSAgICAgICAgICAgICAqIE1hdGNoIHVwIHdpdGggdGhlIFJETVNSIHNpZGUgZm9yIG5v dzsgdWx0aW1hdGVseSB0aGlzIGVudGlyZQotICAgICAgICAgICAgICogY2FzZSBibG9jayBzaG91 bGQgZ28gYXdheS4KLSAgICAgICAgICAgICAqLwotICAgICAgICAgICAgaWYgKCByZG1zcl9zYWZl KG1zciwgbXNyX2NvbnRlbnQpID09IDAgKQotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAg ICAgICAgZ290byBncGY7Ci0gICAgICAgIGNhc2UgMToKKyAgICAgICAgLyogTWF0Y2ggdXAgd2l0 aCB0aGUgUkRNU1Igc2lkZTsgdWx0aW1hdGVseSB0aGlzIHNob3VsZCBnbyBhd2F5LiAqLworICAg ICAgICBpZiAoIHJkbXNyX3NhZmUobXNyLCBtc3JfY29udGVudCkgPT0gMCApCiAgICAgICAgICAg ICBicmVhazsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIGdvdG8gZ3BmOwotICAgICAg ICB9Ci0gICAgICAgIGJyZWFrOworCisgICAgICAgIGdvdG8gZ3BmOwogICAgIH0KIAogICAgIGlm ICggc3luYyApCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYyBiL3hlbi9h cmNoL3g4Ni9odm0vdm14L3ZteC5jCmluZGV4IDVmYzIxYTUuLmI5MTU3YWYgMTAwNjQ0Ci0tLSBh L3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vdm14L3Zt eC5jCkBAIC0yOTA5LDkgKzI5MDksNiBAQCBzdGF0aWMgaW50IHZteF9tc3JfcmVhZF9pbnRlcmNl cHQodW5zaWduZWQgaW50IG1zciwgdWludDY0X3QgKm1zcl9jb250ZW50KQogICAgICAgICAgICAg YnJlYWs7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoIHJkbXNyX2h5cGVydmlzb3JfcmVncyht c3IsIG1zcl9jb250ZW50KSApCi0gICAgICAgICAgICBicmVhazsKLQogICAgICAgICBpZiAoIHJk bXNyX3NhZmUobXNyLCAqbXNyX2NvbnRlbnQpID09IDAgKQogICAgICAgICAgICAgYnJlYWs7CiAK QEAgLTMxNTMsMjQgKzMxNTAsMTEgQEAgc3RhdGljIGludCB2bXhfbXNyX3dyaXRlX2ludGVyY2Vw dCh1bnNpZ25lZCBpbnQgbXNyLCB1aW50NjRfdCBtc3JfY29udGVudCkKICAgICAgICAgICAgICBp c19sYXN0X2JyYW5jaF9tc3IobXNyKSApCiAgICAgICAgICAgICBicmVhazsKIAotICAgICAgICBz d2l0Y2ggKCB3cm1zcl9oeXBlcnZpc29yX3JlZ3MobXNyLCBtc3JfY29udGVudCkgKQotICAgICAg ICB7Ci0gICAgICAgIGNhc2UgLUVSRVNUQVJUOgotICAgICAgICAgICAgcmV0dXJuIFg4NkVNVUxf UkVUUlk7Ci0gICAgICAgIGNhc2UgMDoKLSAgICAgICAgICAgIC8qCi0gICAgICAgICAgICAgKiBN YXRjaCB1cCB3aXRoIHRoZSBSRE1TUiBzaWRlIGZvciBub3c7IHVsdGltYXRlbHkgdGhpcwotICAg ICAgICAgICAgICogZW50aXJlIGNhc2UgYmxvY2sgc2hvdWxkIGdvIGF3YXkuCi0gICAgICAgICAg ICAgKi8KLSAgICAgICAgICAgIGlmICggcmRtc3Jfc2FmZShtc3IsIG1zcl9jb250ZW50KSA9PSAw ICkKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGdvdG8gZ3BfZmF1bHQ7Ci0g ICAgICAgIGNhc2UgMToKKyAgICAgICAgLyogTWF0Y2ggdXAgd2l0aCB0aGUgUkRNU1Igc2lkZTsg dWx0aW1hdGVseSB0aGlzIHNob3VsZCBnbyBhd2F5LiAqLworICAgICAgICBpZiAoIHJkbXNyX3Nh ZmUobXNyLCBtc3JfY29udGVudCkgPT0gMCApCiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg ZGVmYXVsdDoKLSAgICAgICAgICAgIGdvdG8gZ3BfZmF1bHQ7Ci0gICAgICAgIH0KLSAgICAgICAg YnJlYWs7CisKKyAgICAgICAgZ290byBncF9mYXVsdDsKICAgICB9CiAKICAgICByZXR1cm4gWDg2 RU1VTF9PS0FZOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21zci5jIGIveGVuL2FyY2gveDg2 L21zci5jCmluZGV4IDJmYzIwMjEuLjYyMDc5YmIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9t c3IuYworKysgYi94ZW4vYXJjaC94ODYvbXNyLmMKQEAgLTE4NSw2ICsxODUsMTAgQEAgaW50IGd1 ZXN0X3JkbXNyKGNvbnN0IHN0cnVjdCB2Y3B1ICp2LCB1aW50MzJfdCBtc3IsIHVpbnQ2NF90ICp2 YWwpCiAgICAgICAgIH0KIAogICAgICAgICAvKiBGYWxsdGhyb3VnaC4gKi8KKyAgICBjYXNlIE1T Ul9YRU5fQUxUX1NUQVJUIC4uLiBNU1JfWEVOX0FMVF9TVEFSVCArIE5SX1hFTl9NU1JTIC0gMToK KyAgICAgICAgcmV0ID0gZ3Vlc3RfcmRtc3JfeGVuKHYsIG1zciwgdmFsKTsKKyAgICAgICAgZ290 byBvdXQ7CisKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gWDg2RU1VTF9VTkhBTkRMRUFC TEU7CiAgICAgfQpAQCAtMjc2LDYgKzI4MCwxMCBAQCBpbnQgZ3Vlc3Rfd3Jtc3Ioc3RydWN0IHZj cHUgKnYsIHVpbnQzMl90IG1zciwgdWludDY0X3QgdmFsKQogICAgICAgICB9CiAKICAgICAgICAg LyogRmFsbHRocm91Z2guICovCisgICAgY2FzZSBNU1JfWEVOX0FMVF9TVEFSVCAuLi4gTVNSX1hF Tl9BTFRfU1RBUlQgKyBOUl9YRU5fTVNSUyAtIDE6CisgICAgICAgIHJldCA9IGd1ZXN0X3dybXNy X3hlbih2LCBtc3IsIHZhbCk7CisgICAgICAgIGdvdG8gb3V0OworCiAgICAgZGVmYXVsdDoKICAg ICAgICAgcmV0dXJuIFg4NkVNVUxfVU5IQU5ETEVBQkxFOwogICAgIH0KZGlmZiAtLWdpdCBhL3hl bi9hcmNoL3g4Ni9wdi9lbXVsLXByaXYtb3AuYyBiL3hlbi9hcmNoL3g4Ni9wdi9lbXVsLXByaXYt b3AuYwppbmRleCBlY2IzYjljLi45ZGRjNWNhIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvcHYv ZW11bC1wcml2LW9wLmMKKysrIGIveGVuL2FyY2gveDg2L3B2L2VtdWwtcHJpdi1vcC5jCkBAIC05 NzQsOSArOTc0LDYgQEAgc3RhdGljIGludCByZWFkX21zcih1bnNpZ25lZCBpbnQgcmVnLCB1aW50 NjRfdCAqdmFsLAogICAgICAgICB9CiAgICAgICAgIC8qIGZhbGwgdGhyb3VnaCAqLwogICAgIGRl ZmF1bHQ6Ci0gICAgICAgIGlmICggcmRtc3JfaHlwZXJ2aXNvcl9yZWdzKHJlZywgdmFsKSApCi0g ICAgICAgICAgICByZXR1cm4gWDg2RU1VTF9PS0FZOwotCiAgICAgICAgIHJjID0gdm1jZV9yZG1z cihyZWcsIHZhbCk7CiAgICAgICAgIGlmICggcmMgPCAwICkKICAgICAgICAgICAgIGJyZWFrOwpA QCAtMTE3Myw5ICsxMTcwLDYgQEAgc3RhdGljIGludCB3cml0ZV9tc3IodW5zaWduZWQgaW50IHJl ZywgdWludDY0X3QgdmFsLAogICAgICAgICB9CiAgICAgICAgIC8qIGZhbGwgdGhyb3VnaCAqLwog ICAgIGRlZmF1bHQ6Ci0gICAgICAgIGlmICggd3Jtc3JfaHlwZXJ2aXNvcl9yZWdzKHJlZywgdmFs KSA9PSAxICkKLSAgICAgICAgICAgIHJldHVybiBYODZFTVVMX09LQVk7Ci0KICAgICAgICAgcmMg PSB2bWNlX3dybXNyKHJlZywgdmFsKTsKICAgICAgICAgaWYgKCByYyA8IDAgKQogICAgICAgICAg ICAgYnJlYWs7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvdHJhcHMuYyBiL3hlbi9hcmNoL3g4 Ni90cmFwcy5jCmluZGV4IDE5YmMxNzQuLmVhNmIxN2MgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4 Ni90cmFwcy5jCisrKyBiL3hlbi9hcmNoL3g4Ni90cmFwcy5jCkBAIC03NzcsMzEgKzc3NywyOSBA QCBzdGF0aWMgdm9pZCBkb190cmFwKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAgICAg ICAgIHRyYXBuciwgdHJhcHN0cih0cmFwbnIpLCByZWdzLT5lcnJvcl9jb2RlKTsKIH0KIAotLyog UmV0dXJucyAwIGlmIG5vdCBoYW5kbGVkLCBhbmQgbm9uLTAgZm9yIHN1Y2Nlc3MuICovCi1pbnQg cmRtc3JfaHlwZXJ2aXNvcl9yZWdzKHVpbnQzMl90IGlkeCwgdWludDY0X3QgKnZhbCkKK2ludCBn dWVzdF9yZG1zcl94ZW4oY29uc3Qgc3RydWN0IHZjcHUgKnYsIHVpbnQzMl90IGlkeCwgdWludDY0 X3QgKnZhbCkKIHsKLSAgICBzdHJ1Y3QgZG9tYWluICpkID0gY3VycmVudC0+ZG9tYWluOworICAg IGNvbnN0IHN0cnVjdCBkb21haW4gKmQgPSB2LT5kb21haW47CiAgICAgLyogT3B0aW9uYWxseSBz aGlmdCBvdXQgb2YgdGhlIHdheSBvZiBWaXJpZGlhbiBhcmNoaXRlY3R1cmFsIE1TUnMuICovCi0g ICAgdWludDMyX3QgYmFzZSA9IGlzX3ZpcmlkaWFuX2RvbWFpbihkKSA/IDB4NDAwMDAyMDAgOiAw eDQwMDAwMDAwOworICAgIHVpbnQzMl90IGJhc2UgPSAoaXNfdmlyaWRpYW5fZG9tYWluKGQpCisg ICAgICAgICAgICAgICAgICAgICA/IE1TUl9YRU5fQUxUX1NUQVJUIDogTVNSX0hZUEVSVklTT1Jf U1RBUlQpOwogCiAgICAgc3dpdGNoICggaWR4IC0gYmFzZSApCiAgICAgewogICAgIGNhc2UgMDog LyogV3JpdGUgaHlwZXJjYWxsIHBhZ2UgTVNSLiAgUmVhZCBhcyB6ZXJvLiAqLwotICAgIHsKICAg ICAgICAgKnZhbCA9IDA7Ci0gICAgICAgIHJldHVybiAxOwotICAgIH0KKyAgICAgICAgcmV0dXJu IFg4NkVNVUxfT0tBWTsKICAgICB9CiAKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gWDg2RU1V TF9FWENFUFRJT047CiB9CiAKLS8qIFJldHVybnMgMSBpZiBoYW5kbGVkLCAwIGlmIG5vdCBhbmQg LUV4eCBmb3IgZXJyb3IuICovCi1pbnQgd3Jtc3JfaHlwZXJ2aXNvcl9yZWdzKHVpbnQzMl90IGlk eCwgdWludDY0X3QgdmFsKQoraW50IGd1ZXN0X3dybXNyX3hlbihzdHJ1Y3QgdmNwdSAqdiwgdWlu dDMyX3QgaWR4LCB1aW50NjRfdCB2YWwpCiB7Ci0gICAgc3RydWN0IGRvbWFpbiAqZCA9IGN1cnJl bnQtPmRvbWFpbjsKKyAgICBzdHJ1Y3QgZG9tYWluICpkID0gdi0+ZG9tYWluOwogICAgIC8qIE9w dGlvbmFsbHkgc2hpZnQgb3V0IG9mIHRoZSB3YXkgb2YgVmlyaWRpYW4gYXJjaGl0ZWN0dXJhbCBN U1JzLiAqLwotICAgIHVpbnQzMl90IGJhc2UgPSBpc192aXJpZGlhbl9kb21haW4oZCkgPyAweDQw MDAwMjAwIDogMHg0MDAwMDAwMDsKKyAgICB1aW50MzJfdCBiYXNlID0gKGlzX3ZpcmlkaWFuX2Rv bWFpbihkKQorICAgICAgICAgICAgICAgICAgICAgPyBNU1JfWEVOX0FMVF9TVEFSVCA6IE1TUl9I WVBFUlZJU09SX1NUQVJUKTsKIAogICAgIHN3aXRjaCAoIGlkeCAtIGJhc2UgKQogICAgIHsKQEAg LTgxOCw3ICs4MTYsNyBAQCBpbnQgd3Jtc3JfaHlwZXJ2aXNvcl9yZWdzKHVpbnQzMl90IGlkeCwg dWludDY0X3QgdmFsKQogICAgICAgICAgICAgZ2RwcmludGsoWEVOTE9HX1dBUk5JTkcsCiAgICAg ICAgICAgICAgICAgICAgICAid3Jtc3IgaHlwZXJjYWxsIHBhZ2UgaW5kZXggJSN4IHVuc3VwcG9y dGVkXG4iLAogICAgICAgICAgICAgICAgICAgICAgcGFnZV9pbmRleCk7Ci0gICAgICAgICAgICBy ZXR1cm4gMDsKKyAgICAgICAgICAgIGdvdG8gZ3BfZmF1bHQ7CiAgICAgICAgIH0KIAogICAgICAg ICBwYWdlID0gZ2V0X3BhZ2VfZnJvbV9nZm4oZCwgZ21mbiwgJnQsIFAyTV9BTExPQyk7CkBAIC04 MzEsMTMgKzgyOSwxMyBAQCBpbnQgd3Jtc3JfaHlwZXJ2aXNvcl9yZWdzKHVpbnQzMl90IGlkeCwg dWludDY0X3QgdmFsKQogICAgICAgICAgICAgaWYgKCBwMm1faXNfcGFnaW5nKHQpICkKICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICBwMm1fbWVtX3BhZ2luZ19wb3B1bGF0ZShkLCBnbWZu KTsKLSAgICAgICAgICAgICAgICByZXR1cm4gLUVSRVNUQVJUOworICAgICAgICAgICAgICAgIHJl dHVybiBYODZFTVVMX1JFVFJZOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBnZHByaW50 ayhYRU5MT0dfV0FSTklORywKICAgICAgICAgICAgICAgICAgICAgICJCYWQgR01GTiAlbHggKE1G TiAlbHgpIHRvIE1TUiAlMDh4XG4iLAogICAgICAgICAgICAgICAgICAgICAgZ21mbiwgcGFnZSA/ IHBhZ2VfdG9fbWZuKHBhZ2UpIDogLTFVTCwgYmFzZSk7Ci0gICAgICAgICAgICByZXR1cm4gMDsK KyAgICAgICAgICAgIGdvdG8gZ3BfZmF1bHQ7CiAgICAgICAgIH0KIAogICAgICAgICBoeXBlcmNh bGxfcGFnZSA9IF9fbWFwX2RvbWFpbl9wYWdlKHBhZ2UpOwpAQCAtODQ1LDExICs4NDMsMTIgQEAg aW50IHdybXNyX2h5cGVydmlzb3JfcmVncyh1aW50MzJfdCBpZHgsIHVpbnQ2NF90IHZhbCkKICAg ICAgICAgdW5tYXBfZG9tYWluX3BhZ2UoaHlwZXJjYWxsX3BhZ2UpOwogCiAgICAgICAgIHB1dF9w YWdlX2FuZF90eXBlKHBhZ2UpOwotICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgcmV0dXJuIFg4 NkVNVUxfT0tBWTsKICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIDA7CisgZ3BfZmF1bHQ6Cisg ICAgcmV0dXJuIFg4NkVNVUxfRVhDRVBUSU9OOwogfQogCiB2b2lkIGNwdWlkX2h5cGVydmlzb3Jf bGVhdmVzKGNvbnN0IHN0cnVjdCB2Y3B1ICp2LCB1aW50MzJfdCBsZWFmLApAQCAtODg3LDcgKzg4 Niw4IEBAIHZvaWQgY3B1aWRfaHlwZXJ2aXNvcl9sZWF2ZXMoY29uc3Qgc3RydWN0IHZjcHUgKnYs IHVpbnQzMl90IGxlYWYsCiAgICAgY2FzZSAyOgogICAgICAgICByZXMtPmEgPSAxOyAgICAgICAg ICAgIC8qIE51bWJlciBvZiBoeXBlcmNhbGwtdHJhbnNmZXIgcGFnZXMgKi8KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvKiBNU1IgYmFzZSBhZGRyZXNzICovCi0gICAgICAgIHJlcy0+ YiA9IGlzX3ZpcmlkaWFuX2RvbWFpbihkKSA/IDB4NDAwMDAyMDAgOiAweDQwMDAwMDAwOworICAg ICAgICByZXMtPmIgPSAoaXNfdmlyaWRpYW5fZG9tYWluKGQpCisgICAgICAgICAgICAgICAgICA/ IE1TUl9YRU5fQUxUX1NUQVJUIDogTVNSX0hZUEVSVklTT1JfU1RBUlQpOwogICAgICAgICBpZiAo IGlzX3B2X2RvbWFpbihkKSApIC8qIEZlYXR1cmVzICovCiAgICAgICAgICAgICByZXMtPmMgfD0g WEVOX0NQVUlEX0ZFQVQxX01NVV9QVF9VUERBVEVfUFJFU0VSVkVfQUQ7CiAgICAgICAgIGJyZWFr OwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9tc3ItaW5kZXguaCBiL3hlbi9pbmNs dWRlL2FzbS14ODYvbXNyLWluZGV4LmgKaW5kZXggZWUwMjlhMi4uMmI0MDE0YyAxMDA2NDQKLS0t IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9tc3ItaW5kZXguaAorKysgYi94ZW4vaW5jbHVkZS9hc20t eDg2L21zci1pbmRleC5oCkBAIC01NDMsNSArNTQzLDcgQEAKIC8qIEh5cGVydmlzb3IgbGVhdmVz IGluIHRoZSAweDR4eHh4eHh4IHJhbmdlLiAqLwogI2RlZmluZSBNU1JfSFlQRVJWSVNPUl9TVEFS VCAgICAgICAgICAgIDB4NDAwMDAwMDAKICNkZWZpbmUgTlJfVklSSURJQU5fTVNSUyAgICAgICAg ICAgICAgICAweDAwMDAwMjAwCisjZGVmaW5lIE1TUl9YRU5fQUxUX1NUQVJUICAgICAgICAgICAg ICAgMHg0MDAwMDIwMAorI2RlZmluZSBOUl9YRU5fTVNSUyAgICAgICAgICAgICAgICAgICAgIDB4 MDAwMDAxMDAKIAogI2VuZGlmIC8qIF9fQVNNX01TUl9JTkRFWF9IICovCmRpZmYgLS1naXQgYS94 ZW4vaW5jbHVkZS9hc20teDg2L3Byb2Nlc3Nvci5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9wcm9j ZXNzb3IuaAppbmRleCAwMWJjODlmLi4yOGYyZGI2IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9h c20teDg2L3Byb2Nlc3Nvci5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvcHJvY2Vzc29yLmgK QEAgLTUxOSw4ICs1MTksOCBAQCB1bnNpZ25lZCBsb25nIGFsbG9jX3N0dWJfcGFnZSh1bnNpZ25l ZCBpbnQgY3B1LCB1bnNpZ25lZCBsb25nICptZm4pOwogCiB2b2lkIGNwdWlkX2h5cGVydmlzb3Jf bGVhdmVzKGNvbnN0IHN0cnVjdCB2Y3B1ICp2LCB1aW50MzJfdCBsZWFmLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB1aW50MzJfdCBzdWJsZWFmLCBzdHJ1Y3QgY3B1aWRfbGVhZiAqcmVz KTsKLWludCByZG1zcl9oeXBlcnZpc29yX3JlZ3ModWludDMyX3QgaWR4LCB1aW50NjRfdCAqdmFs KTsKLWludCB3cm1zcl9oeXBlcnZpc29yX3JlZ3ModWludDMyX3QgaWR4LCB1aW50NjRfdCB2YWwp OworaW50IGd1ZXN0X3JkbXNyX3hlbihjb25zdCBzdHJ1Y3QgdmNwdSAqdiwgdWludDMyX3QgaWR4 LCB1aW50NjRfdCAqdmFsKTsKK2ludCBndWVzdF93cm1zcl94ZW4oc3RydWN0IHZjcHUgKnYsIHVp bnQzMl90IGlkeCwgdWludDY0X3QgdmFsKTsKIAogdm9pZCBtaWNyb2NvZGVfc2V0X21vZHVsZSh1 bnNpZ25lZCBpbnQpOwogaW50IG1pY3JvY29kZV91cGRhdGUoWEVOX0dVRVNUX0hBTkRMRV9QQVJB TShjb25zdF92b2lkKSwgdW5zaWduZWQgbG9uZyBsZW4pOwotLSAKMi4xLjQKCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBs aXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2pl Y3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs