From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 1/6] x86/vmx: Improvements to vmx_{dis, en}able_intercept_for_msr() Date: Wed, 19 Jul 2017 12:57:52 +0100 Message-ID: <1500465477-23793-2-git-send-email-andrew.cooper3@citrix.com> References: <1500465477-23793-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: <1500465477-23793-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 , Kevin Tian , Jun Nakajima , Jan Beulich List-Id: xen-devel@lists.xenproject.org ICogU2hvcnRlbiB0aGUgbmFtZXMgdG8gdm14X3tjbGVhcixzZXR9X21zcl9pbnRlcmNlcHQoKQog KiBVc2UgYW4gZW51bWVyYXRpb24gZm9yIE1TUl9UWVBFIHJhdGhlciB0aGFuIGEgcGxhaW4gaW50 ZWdlcgogKiBJbnRyb2R1Y2UgVk1YX01TUl9SVywgYXMgbW9zdCBjYWxsZXJzIGFsdGVyIGJvdGgg dGhlIHJlYWQgYW5kIHdyaXRlCiAgIGludGVyY2VwdCBhdCB0aGUgc2FtZSB0aW1lLgoKTm8gZnVu Y3Rpb25hbCBjaGFuZ2UuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29v cGVyM0BjaXRyaXguY29tPgotLS0KQ0M6IEphbiBCZXVsaWNoIDxKQmV1bGljaEBzdXNlLmNvbT4K Q0M6IEp1biBOYWthamltYSA8anVuLm5ha2FqaW1hQGludGVsLmNvbT4KQ0M6IEtldmluIFRpYW4g PGtldmluLnRpYW5AaW50ZWwuY29tPgotLS0KIHhlbi9hcmNoL3g4Ni9odm0vdm14L3ZtY3MuYyAg ICAgICAgfCAzOCArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQogeGVuL2Fy Y2gveDg2L2h2bS92bXgvdm14LmMgICAgICAgICB8IDM0ICsrKysrKysrKysrKystLS0tLS0tLS0t LS0tLS0tLS0tLS0KIHhlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3ZteC92bWNzLmggfCAxNSArKysr KysrKysrLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgNDMgaW5zZXJ0aW9ucygrKSwgNDQgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS92bXgvdm1jcy5jIGIveGVuL2Fy Y2gveDg2L2h2bS92bXgvdm1jcy5jCmluZGV4IDgxMDNiMjAuLmUzNmE5MDggMTAwNjQ0Ci0tLSBh L3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZtY3MuYworKysgYi94ZW4vYXJjaC94ODYvaHZtL3ZteC92 bWNzLmMKQEAgLTgwMiw3ICs4MDIsOCBAQCBzdGF0aWMgdm9pZCB2bXhfc2V0X2hvc3RfZW52KHN0 cnVjdCB2Y3B1ICp2KQogICAgICAgICAgICAgICAodW5zaWduZWQgbG9uZykmZ2V0X2NwdV9pbmZv KCktPmd1ZXN0X2NwdV91c2VyX3JlZ3MuZXJyb3JfY29kZSk7CiB9CiAKLXZvaWQgdm14X2Rpc2Fi bGVfaW50ZXJjZXB0X2Zvcl9tc3Ioc3RydWN0IHZjcHUgKnYsIHUzMiBtc3IsIGludCB0eXBlKQor dm9pZCB2bXhfY2xlYXJfbXNyX2ludGVyY2VwdChzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgaW50 IG1zciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSB2bXhfbXNyX2ludGVyY2Vw dF90eXBlIHR5cGUpCiB7CiAgICAgdW5zaWduZWQgbG9uZyAqbXNyX2JpdG1hcCA9IHYtPmFyY2gu aHZtX3ZteC5tc3JfYml0bWFwOwogICAgIHN0cnVjdCBkb21haW4gKmQgPSB2LT5kb21haW47CkBA IC04MjEsMTcgKzgyMiwxNyBAQCB2b2lkIHZteF9kaXNhYmxlX2ludGVyY2VwdF9mb3JfbXNyKHN0 cnVjdCB2Y3B1ICp2LCB1MzIgbXNyLCBpbnQgdHlwZSkKICAgICAgKi8KICAgICBpZiAoIG1zciA8 PSAweDFmZmYgKQogICAgIHsKLSAgICAgICAgaWYgKCB0eXBlICYgTVNSX1RZUEVfUiApCisgICAg ICAgIGlmICggdHlwZSAmIFZNWF9NU1JfUiApCiAgICAgICAgICAgICBjbGVhcl9iaXQobXNyLCBt c3JfYml0bWFwICsgMHgwMDAvQllURVNfUEVSX0xPTkcpOyAvKiByZWFkLWxvdyAqLwotICAgICAg ICBpZiAoIHR5cGUgJiBNU1JfVFlQRV9XICkKKyAgICAgICAgaWYgKCB0eXBlICYgVk1YX01TUl9X ICkKICAgICAgICAgICAgIGNsZWFyX2JpdChtc3IsIG1zcl9iaXRtYXAgKyAweDgwMC9CWVRFU19Q RVJfTE9ORyk7IC8qIHdyaXRlLWxvdyAqLwogICAgIH0KICAgICBlbHNlIGlmICggKG1zciA+PSAw eGMwMDAwMDAwKSAmJiAobXNyIDw9IDB4YzAwMDFmZmYpICkKICAgICB7CiAgICAgICAgIG1zciAm PSAweDFmZmY7Ci0gICAgICAgIGlmICggdHlwZSAmIE1TUl9UWVBFX1IgKQorICAgICAgICBpZiAo IHR5cGUgJiBWTVhfTVNSX1IgKQogICAgICAgICAgICAgY2xlYXJfYml0KG1zciwgbXNyX2JpdG1h cCArIDB4NDAwL0JZVEVTX1BFUl9MT05HKTsgLyogcmVhZC1oaWdoICovCi0gICAgICAgIGlmICgg dHlwZSAmIE1TUl9UWVBFX1cgKQorICAgICAgICBpZiAoIHR5cGUgJiBWTVhfTVNSX1cgKQogICAg ICAgICAgICAgY2xlYXJfYml0KG1zciwgbXNyX2JpdG1hcCArIDB4YzAwL0JZVEVTX1BFUl9MT05H KTsgLyogd3JpdGUtaGlnaCAqLwogICAgIH0KICAgICBlbHNlCkBAIC04NDIsNyArODQzLDggQEAg dm9pZCB2bXhfZGlzYWJsZV9pbnRlcmNlcHRfZm9yX21zcihzdHJ1Y3QgdmNwdSAqdiwgdTMyIG1z ciwgaW50IHR5cGUpCiAKIH0KIAotdm9pZCB2bXhfZW5hYmxlX2ludGVyY2VwdF9mb3JfbXNyKHN0 cnVjdCB2Y3B1ICp2LCB1MzIgbXNyLCBpbnQgdHlwZSkKK3ZvaWQgdm14X3NldF9tc3JfaW50ZXJj ZXB0KHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBpbnQgbXNyLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgZW51bSB2bXhfbXNyX2ludGVyY2VwdF90eXBlIHR5cGUpCiB7CiAgICAgdW5zaWdu ZWQgbG9uZyAqbXNyX2JpdG1hcCA9IHYtPmFyY2guaHZtX3ZteC5tc3JfYml0bWFwOwogCkBAIC04 NTcsMTcgKzg1OSwxNyBAQCB2b2lkIHZteF9lbmFibGVfaW50ZXJjZXB0X2Zvcl9tc3Ioc3RydWN0 IHZjcHUgKnYsIHUzMiBtc3IsIGludCB0eXBlKQogICAgICAqLwogICAgIGlmICggbXNyIDw9IDB4 MWZmZiApCiAgICAgewotICAgICAgICBpZiAoIHR5cGUgJiBNU1JfVFlQRV9SICkKKyAgICAgICAg aWYgKCB0eXBlICYgVk1YX01TUl9SICkKICAgICAgICAgICAgIHNldF9iaXQobXNyLCBtc3JfYml0 bWFwICsgMHgwMDAvQllURVNfUEVSX0xPTkcpOyAvKiByZWFkLWxvdyAqLwotICAgICAgICBpZiAo IHR5cGUgJiBNU1JfVFlQRV9XICkKKyAgICAgICAgaWYgKCB0eXBlICYgVk1YX01TUl9XICkKICAg ICAgICAgICAgIHNldF9iaXQobXNyLCBtc3JfYml0bWFwICsgMHg4MDAvQllURVNfUEVSX0xPTkcp OyAvKiB3cml0ZS1sb3cgKi8KICAgICB9CiAgICAgZWxzZSBpZiAoIChtc3IgPj0gMHhjMDAwMDAw MCkgJiYgKG1zciA8PSAweGMwMDAxZmZmKSApCiAgICAgewogICAgICAgICBtc3IgJj0gMHgxZmZm OwotICAgICAgICBpZiAoIHR5cGUgJiBNU1JfVFlQRV9SICkKKyAgICAgICAgaWYgKCB0eXBlICYg Vk1YX01TUl9SICkKICAgICAgICAgICAgIHNldF9iaXQobXNyLCBtc3JfYml0bWFwICsgMHg0MDAv QllURVNfUEVSX0xPTkcpOyAvKiByZWFkLWhpZ2ggKi8KLSAgICAgICAgaWYgKCB0eXBlICYgTVNS X1RZUEVfVyApCisgICAgICAgIGlmICggdHlwZSAmIFZNWF9NU1JfVyApCiAgICAgICAgICAgICBz ZXRfYml0KG1zciwgbXNyX2JpdG1hcCArIDB4YzAwL0JZVEVTX1BFUl9MT05HKTsgLyogd3JpdGUt aGlnaCAqLwogICAgIH0KICAgICBlbHNlCkBAIC0xMTA0LDE3ICsxMTA2LDE3IEBAIHN0YXRpYyBp bnQgY29uc3RydWN0X3ZtY3Moc3RydWN0IHZjcHUgKnYpCiAgICAgICAgIHYtPmFyY2guaHZtX3Zt eC5tc3JfYml0bWFwID0gbXNyX2JpdG1hcDsKICAgICAgICAgX192bXdyaXRlKE1TUl9CSVRNQVAs IHZpcnRfdG9fbWFkZHIobXNyX2JpdG1hcCkpOwogCi0gICAgICAgIHZteF9kaXNhYmxlX2ludGVy Y2VwdF9mb3JfbXNyKHYsIE1TUl9GU19CQVNFLCBNU1JfVFlQRV9SIHwgTVNSX1RZUEVfVyk7Ci0g ICAgICAgIHZteF9kaXNhYmxlX2ludGVyY2VwdF9mb3JfbXNyKHYsIE1TUl9HU19CQVNFLCBNU1Jf VFlQRV9SIHwgTVNSX1RZUEVfVyk7Ci0gICAgICAgIHZteF9kaXNhYmxlX2ludGVyY2VwdF9mb3Jf bXNyKHYsIE1TUl9TSEFET1dfR1NfQkFTRSwgTVNSX1RZUEVfUiB8IE1TUl9UWVBFX1cpOwotICAg ICAgICB2bXhfZGlzYWJsZV9pbnRlcmNlcHRfZm9yX21zcih2LCBNU1JfSUEzMl9TWVNFTlRFUl9D UywgTVNSX1RZUEVfUiB8IE1TUl9UWVBFX1cpOwotICAgICAgICB2bXhfZGlzYWJsZV9pbnRlcmNl cHRfZm9yX21zcih2LCBNU1JfSUEzMl9TWVNFTlRFUl9FU1AsIE1TUl9UWVBFX1IgfCBNU1JfVFlQ RV9XKTsKLSAgICAgICAgdm14X2Rpc2FibGVfaW50ZXJjZXB0X2Zvcl9tc3IodiwgTVNSX0lBMzJf U1lTRU5URVJfRUlQLCBNU1JfVFlQRV9SIHwgTVNSX1RZUEVfVyk7CisgICAgICAgIHZteF9jbGVh cl9tc3JfaW50ZXJjZXB0KHYsIE1TUl9GU19CQVNFLCBWTVhfTVNSX1JXKTsKKyAgICAgICAgdm14 X2NsZWFyX21zcl9pbnRlcmNlcHQodiwgTVNSX0dTX0JBU0UsIFZNWF9NU1JfUlcpOworICAgICAg ICB2bXhfY2xlYXJfbXNyX2ludGVyY2VwdCh2LCBNU1JfU0hBRE9XX0dTX0JBU0UsIFZNWF9NU1Jf UlcpOworICAgICAgICB2bXhfY2xlYXJfbXNyX2ludGVyY2VwdCh2LCBNU1JfSUEzMl9TWVNFTlRF Ul9DUywgVk1YX01TUl9SVyk7CisgICAgICAgIHZteF9jbGVhcl9tc3JfaW50ZXJjZXB0KHYsIE1T Ul9JQTMyX1NZU0VOVEVSX0VTUCwgVk1YX01TUl9SVyk7CisgICAgICAgIHZteF9jbGVhcl9tc3Jf aW50ZXJjZXB0KHYsIE1TUl9JQTMyX1NZU0VOVEVSX0VJUCwgVk1YX01TUl9SVyk7CiAgICAgICAg IGlmICggcGFnaW5nX21vZGVfaGFwKGQpICYmICghaW9tbXVfZW5hYmxlZCB8fCBpb21tdV9zbm9v cCkgKQotICAgICAgICAgICAgdm14X2Rpc2FibGVfaW50ZXJjZXB0X2Zvcl9tc3IodiwgTVNSX0lB MzJfQ1JfUEFULCBNU1JfVFlQRV9SIHwgTVNSX1RZUEVfVyk7CisgICAgICAgICAgICB2bXhfY2xl YXJfbXNyX2ludGVyY2VwdCh2LCBNU1JfSUEzMl9DUl9QQVQsIFZNWF9NU1JfUlcpOwogICAgICAg ICBpZiAoICh2bWV4aXRfY3RsICYgVk1fRVhJVF9DTEVBUl9CTkRDRkdTKSAmJgogICAgICAgICAg ICAgICh2bWVudHJ5X2N0bCAmIFZNX0VOVFJZX0xPQURfQk5EQ0ZHUykgKQotICAgICAgICAgICAg dm14X2Rpc2FibGVfaW50ZXJjZXB0X2Zvcl9tc3IodiwgTVNSX0lBMzJfQk5EQ0ZHUywgTVNSX1RZ UEVfUiB8IE1TUl9UWVBFX1cpOworICAgICAgICAgICAgdm14X2NsZWFyX21zcl9pbnRlcmNlcHQo diwgTVNSX0lBMzJfQk5EQ0ZHUywgVk1YX01TUl9SVyk7CiAgICAgfQogCiAgICAgLyogSS9PIGFj Y2VzcyBiaXRtYXAuICovCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYyBi L3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jCmluZGV4IDY5Y2UzYWEuLmZmOTdlNmEgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0v dm14L3ZteC5jCkBAIC0xMzc0LDggKzEzNzQsNyBAQCBzdGF0aWMgdm9pZCB2bXhfaGFuZGxlX2Nk KHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBsb25nIHZhbHVlKQogCiAgICAgICAgICAgICB2bXhf Z2V0X2d1ZXN0X3BhdCh2LCBwYXQpOwogICAgICAgICAgICAgdm14X3NldF9ndWVzdF9wYXQodiwg dWNfcGF0KTsKLSAgICAgICAgICAgIHZteF9lbmFibGVfaW50ZXJjZXB0X2Zvcl9tc3IodiwgTVNS X0lBMzJfQ1JfUEFULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBN U1JfVFlQRV9SIHwgTVNSX1RZUEVfVyk7CisgICAgICAgICAgICB2bXhfc2V0X21zcl9pbnRlcmNl cHQodiwgTVNSX0lBMzJfQ1JfUEFULCBWTVhfTVNSX1JXKTsKIAogICAgICAgICAgICAgd2JpbnZk KCk7ICAgICAgICAgICAgICAgLyogZmx1c2ggcG9zc2libHkgcG9sbHV0ZWQgY2FjaGUgKi8KICAg ICAgICAgICAgIGh2bV9hc2lkX2ZsdXNoX3ZjcHUodik7IC8qIGludmFsaWRhdGUgbWVtb3J5IHR5 cGUgY2FjaGVkIGluIFRMQiAqLwpAQCAtMTM4Niw4ICsxMzg1LDcgQEAgc3RhdGljIHZvaWQgdm14 X2hhbmRsZV9jZChzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgbG9uZyB2YWx1ZSkKICAgICAgICAg ICAgIHYtPmFyY2guaHZtX3ZjcHUuY2FjaGVfbW9kZSA9IE5PUk1BTF9DQUNIRV9NT0RFOwogICAg ICAgICAgICAgdm14X3NldF9ndWVzdF9wYXQodiwgKnBhdCk7CiAgICAgICAgICAgICBpZiAoICFp b21tdV9lbmFibGVkIHx8IGlvbW11X3Nub29wICkKLSAgICAgICAgICAgICAgICB2bXhfZGlzYWJs ZV9pbnRlcmNlcHRfZm9yX21zcih2LCBNU1JfSUEzMl9DUl9QQVQsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTVNSX1RZUEVfUiB8IE1TUl9UWVBFX1cpOwor ICAgICAgICAgICAgICAgIHZteF9jbGVhcl9tc3JfaW50ZXJjZXB0KHYsIE1TUl9JQTMyX0NSX1BB VCwgVk1YX01TUl9SVyk7CiAgICAgICAgICAgICBodm1fYXNpZF9mbHVzaF92Y3B1KHYpOyAvKiBu byBuZWVkIHRvIGZsdXNoIGNhY2hlICovCiAgICAgICAgIH0KICAgICB9CkBAIC0yMTI3LDcgKzIx MjUsNyBAQCBzdGF0aWMgdm9pZCB2bXhfZW5hYmxlX21zcl9pbnRlcmNlcHRpb24oc3RydWN0IGRv bWFpbiAqZCwgdWludDMyX3QgbXNyKQogICAgIHN0cnVjdCB2Y3B1ICp2OwogCiAgICAgZm9yX2Vh Y2hfdmNwdSAoIGQsIHYgKQotICAgICAgICB2bXhfZW5hYmxlX2ludGVyY2VwdF9mb3JfbXNyKHYs IG1zciwgTVNSX1RZUEVfVyk7CisgICAgICAgIHZteF9zZXRfbXNyX2ludGVyY2VwdCh2LCBtc3Is IFZNWF9NU1JfVyk7CiB9CiAKIHN0YXRpYyBib29sX3Qgdm14X2lzX3NpbmdsZXN0ZXBfc3VwcG9y dGVkKHZvaWQpCkBAIC0zMDMxLDIzICszMDI5LDE3IEBAIHZvaWQgdm14X3ZsYXBpY19tc3JfY2hh bmdlZChzdHJ1Y3QgdmNwdSAqdikKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBmb3Ig KCBtc3IgPSBNU1JfSUEzMl9BUElDQkFTRV9NU1I7CiAgICAgICAgICAgICAgICAgICAgICAgbXNy IDw9IE1TUl9JQTMyX0FQSUNCQVNFX01TUiArIDB4ZmY7IG1zcisrICkKLSAgICAgICAgICAgICAg ICAgICAgdm14X2Rpc2FibGVfaW50ZXJjZXB0X2Zvcl9tc3IodiwgbXNyLCBNU1JfVFlQRV9SKTsK LQotICAgICAgICAgICAgICAgIHZteF9lbmFibGVfaW50ZXJjZXB0X2Zvcl9tc3IodiwgTVNSX0lB MzJfQVBJQ1BQUl9NU1IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBNU1JfVFlQRV9SKTsKLSAgICAgICAgICAgICAgICB2bXhfZW5hYmxlX2ludGVyY2VwdF9m b3JfbXNyKHYsIE1TUl9JQTMyX0FQSUNUTUlDVF9NU1IsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBNU1JfVFlQRV9SKTsKLSAgICAgICAgICAgICAgICB2bXhf ZW5hYmxlX2ludGVyY2VwdF9mb3JfbXNyKHYsIE1TUl9JQTMyX0FQSUNUTUNDVF9NU1IsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNU1JfVFlQRV9SKTsKKyAg ICAgICAgICAgICAgICAgICAgdm14X2NsZWFyX21zcl9pbnRlcmNlcHQodiwgbXNyLCBWTVhfTVNS X1IpOworCisgICAgICAgICAgICAgICAgdm14X3NldF9tc3JfaW50ZXJjZXB0KHYsIE1TUl9JQTMy X0FQSUNQUFJfTVNSLCBWTVhfTVNSX1IpOworICAgICAgICAgICAgICAgIHZteF9zZXRfbXNyX2lu dGVyY2VwdCh2LCBNU1JfSUEzMl9BUElDVE1JQ1RfTVNSLCBWTVhfTVNSX1IpOworICAgICAgICAg ICAgICAgIHZteF9zZXRfbXNyX2ludGVyY2VwdCh2LCBNU1JfSUEzMl9BUElDVE1DQ1RfTVNSLCBW TVhfTVNSX1IpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKCBjcHVfaGFzX3ZteF92 aXJ0dWFsX2ludHJfZGVsaXZlcnkgKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHZt eF9kaXNhYmxlX2ludGVyY2VwdF9mb3JfbXNyKHYsIE1TUl9JQTMyX0FQSUNUUFJfTVNSLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1TUl9UWVBFX1cpOwot ICAgICAgICAgICAgICAgIHZteF9kaXNhYmxlX2ludGVyY2VwdF9mb3JfbXNyKHYsIE1TUl9JQTMy X0FQSUNFT0lfTVNSLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE1TUl9UWVBFX1cpOwotICAgICAgICAgICAgICAgIHZteF9kaXNhYmxlX2ludGVyY2VwdF9m b3JfbXNyKHYsIE1TUl9JQTMyX0FQSUNTRUxGX01TUiwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBNU1JfVFlQRV9XKTsKKyAgICAgICAgICAgICAgICB2bXhf Y2xlYXJfbXNyX2ludGVyY2VwdCh2LCBNU1JfSUEzMl9BUElDVFBSX01TUiwgVk1YX01TUl9XKTsK KyAgICAgICAgICAgICAgICB2bXhfY2xlYXJfbXNyX2ludGVyY2VwdCh2LCBNU1JfSUEzMl9BUElD RU9JX01TUiwgVk1YX01TUl9XKTsKKyAgICAgICAgICAgICAgICB2bXhfY2xlYXJfbXNyX2ludGVy Y2VwdCh2LCBNU1JfSUEzMl9BUElDU0VMRl9NU1IsIFZNWF9NU1JfVyk7CiAgICAgICAgICAgICB9 CiAgICAgICAgIH0KICAgICAgICAgZWxzZQpAQCAtMzA1OCw3ICszMDUwLDcgQEAgdm9pZCB2bXhf dmxhcGljX21zcl9jaGFuZ2VkKHN0cnVjdCB2Y3B1ICp2KQogICAgICAgICAgICBTRUNPTkRBUllf RVhFQ19WSVJUVUFMSVpFX1gyQVBJQ19NT0RFKSApCiAgICAgICAgIGZvciAoIG1zciA9IE1TUl9J QTMyX0FQSUNCQVNFX01TUjsKICAgICAgICAgICAgICAgbXNyIDw9IE1TUl9JQTMyX0FQSUNCQVNF X01TUiArIDB4ZmY7IG1zcisrICkKLSAgICAgICAgICAgIHZteF9lbmFibGVfaW50ZXJjZXB0X2Zv cl9tc3IodiwgbXNyLCBNU1JfVFlQRV9SIHwgTVNSX1RZUEVfVyk7CisgICAgICAgICAgICB2bXhf c2V0X21zcl9pbnRlcmNlcHQodiwgbXNyLCBWTVhfTVNSX1JXKTsKIAogICAgIHZteF91cGRhdGVf c2Vjb25kYXJ5X2V4ZWNfY29udHJvbCh2KTsKICAgICB2bXhfdm1jc19leGl0KHYpOwpAQCAtMzEw Nyw3ICszMDk5LDcgQEAgc3RhdGljIGludCB2bXhfbXNyX3dyaXRlX2ludGVyY2VwdCh1bnNpZ25l ZCBpbnQgbXNyLCB1aW50NjRfdCBtc3JfY29udGVudCkKICAgICAgICAgICAgICAgICBmb3IgKCBp ID0gMDsgKHJjID09IDApICYmIChpIDwgbGJyLT5jb3VudCk7IGkrKyApCiAgICAgICAgICAgICAg ICAgICAgIGlmICggKHJjID0gdm14X2FkZF9ndWVzdF9tc3IobGJyLT5iYXNlICsgaSkpID09IDAg KQogICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB2bXhfZGlz YWJsZV9pbnRlcmNlcHRfZm9yX21zcih2LCBsYnItPmJhc2UgKyBpLCBNU1JfVFlQRV9SIHwgTVNS X1RZUEVfVyk7CisgICAgICAgICAgICAgICAgICAgICAgICB2bXhfY2xlYXJfbXNyX2ludGVyY2Vw dCh2LCBsYnItPmJhc2UgKyBpLCBWTVhfTVNSX1JXKTsKICAgICAgICAgICAgICAgICAgICAgICAg IGlmICggbGJyX3RzeF9maXh1cF9uZWVkZWQgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg IHYtPmFyY2guaHZtX3ZteC5sYnJfZml4dXBfZW5hYmxlZCB8PSBGSVhVUF9MQlJfVFNYOwogICAg ICAgICAgICAgICAgICAgICAgICAgaWYgKCBiZHdfZXJyYXR1bV9iZGYxNF9maXh1cF9uZWVkZWQg KQpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vdm14L3ZtY3MuaCBiL3hlbi9p bmNsdWRlL2FzbS14ODYvaHZtL3ZteC92bWNzLmgKaW5kZXggZTNjZGZkZi4uZTMxOGRjMiAxMDA2 NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vdm14L3ZtY3MuaAorKysgYi94ZW4vaW5j bHVkZS9hc20teDg2L2h2bS92bXgvdm1jcy5oCkBAIC00OTgsOSArNDk4LDYgQEAgZW51bSB2bWNz X2ZpZWxkIHsKIAogI2RlZmluZSBWTUNTX1ZQSURfV0lEVEggMTYKIAotI2RlZmluZSBNU1JfVFlQ RV9SIDEKLSNkZWZpbmUgTVNSX1RZUEVfVyAyCi0KICNkZWZpbmUgVk1YX0dVRVNUX01TUiAwCiAj ZGVmaW5lIFZNWF9IT1NUX01TUiAgMQogCkBAIC01MjEsOCArNTE4LDE2IEBAIGVudW0gdm14X2lu c25fZXJybm8KICAgICBWTVhfSU5TTl9GQUlMX0lOVkFMSUQgICAgICAgICAgICAgICAgICA9IH4w LAogfTsKIAotdm9pZCB2bXhfZGlzYWJsZV9pbnRlcmNlcHRfZm9yX21zcihzdHJ1Y3QgdmNwdSAq diwgdTMyIG1zciwgaW50IHR5cGUpOwotdm9pZCB2bXhfZW5hYmxlX2ludGVyY2VwdF9mb3JfbXNy KHN0cnVjdCB2Y3B1ICp2LCB1MzIgbXNyLCBpbnQgdHlwZSk7CitlbnVtIHZteF9tc3JfaW50ZXJj ZXB0X3R5cGUgeworICAgIFZNWF9NU1JfUiAgPSAxLAorICAgIFZNWF9NU1JfVyAgPSAyLAorICAg IFZNWF9NU1JfUlcgPSBWTVhfTVNSX1IgfCBWTVhfTVNSX1csCit9OworCit2b2lkIHZteF9jbGVh cl9tc3JfaW50ZXJjZXB0KHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBpbnQgbXNyLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBlbnVtIHZteF9tc3JfaW50ZXJjZXB0X3R5cGUgdHlwZSk7 Cit2b2lkIHZteF9zZXRfbXNyX2ludGVyY2VwdChzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgaW50 IG1zciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gdm14X21zcl9pbnRlcmNlcHRf dHlwZSB0eXBlKTsKIGludCB2bXhfcmVhZF9ndWVzdF9tc3IodTMyIG1zciwgdTY0ICp2YWwpOwog aW50IHZteF93cml0ZV9ndWVzdF9tc3IodTMyIG1zciwgdTY0IHZhbCk7CiBzdHJ1Y3Qgdm14X21z cl9lbnRyeSAqdm14X2ZpbmRfbXNyKHUzMiBtc3IsIGludCB0eXBlKTsKLS0gCjIuMS40CgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1h aWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcv eGVuLWRldmVsCg==