From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 5/8] x86/hvm: Don't raise #GP behind the emulators back for MSR accesses Date: Mon, 5 Dec 2016 10:09:28 +0000 Message-ID: <1480932571-23547-6-git-send-email-andrew.cooper3@citrix.com> References: <1480932571-23547-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: <1480932571-23547-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: Kevin Tian , Jan Beulich , Andrew Cooper , Paul Durrant , Jun Nakajima , Boris Ostrovsky , Suravee Suthikulpanit List-Id: xen-devel@lists.xenproject.org VGhlIGN1cnJlbnQgaHZtX21zcl97cmVhZCx3cml0ZX1faW50ZXJjZXB0KCkgaW5mcmFzdHJ1Y3R1 cmUgY2FsbHMKaHZtX2luamVjdF9od19leGNlcHRpb24oKSBkaXJlY3RseSB0byBsYXRjaCBhIGZh dWx0LCBhbmQgcmV0dXJucwpYODZFTVVMX0VYQ0VQVElPTiB0byBpdHMgY2FsbGVyLgoKVGhpcyBi ZWhhdmlvdXIgaXMgcHJvYmxlbWF0aWMgZm9yIHRoZSBodm1lbXVsX3tyZWFkLHdyaXRlfV9tc3Io KSBwYXRocywgYXMgdGhlCmZhdWx0IGlzIHJhaXNlZCBiZWhpbmQgdGhlIGJhY2sgb2YgdGhlIHg4 NiBlbXVsYXRvci4KCkFsdGVyIHRoZSBiZWhhdmlvdXIgc28gaHZtX21zcl97cmVhZCx3cml0ZX1f aW50ZXJjZXB0KCkgc2ltcGx5IHJldHVybnMKWDg2RU1VTF9FWENFUFRJT04sIGxlYXZpbmcgdGhl IGNhbGxlcnMgdG8gYWN0dWFsbHkgaW5qZWN0IHRoZSAjR1AgZmF1bHQuCgpTaWduZWQtb2ZmLWJ5 OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgotLS0KQ0M6IEphbiBC ZXVsaWNoIDxKQmV1bGljaEBzdXNlLmNvbT4KQ0M6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50 QGNpdHJpeC5jb20+CkNDOiBKdW4gTmFrYWppbWEgPGp1bi5uYWthamltYUBpbnRlbC5jb20+CkND OiBLZXZpbiBUaWFuIDxrZXZpbi50aWFuQGludGVsLmNvbT4KQ0M6IEJvcmlzIE9zdHJvdnNreSA8 Ym9yaXMub3N0cm92c2t5QG9yYWNsZS5jb20+CkNDOiBTdXJhdmVlIFN1dGhpa3VscGFuaXQgPHN1 cmF2ZWUuc3V0aGlrdWxwYW5pdEBhbWQuY29tPgotLS0KIHhlbi9hcmNoL3g4Ni9odm0vZW11bGF0 ZS5jICAgICAgICB8IDE0ICsrKysrKysrKysrKy0tCiB4ZW4vYXJjaC94ODYvaHZtL2h2bS5jICAg ICAgICAgICAgfCAgOCArKysrKy0tLQogeGVuL2FyY2gveDg2L2h2bS9zdm0vc3ZtLmMgICAgICAg IHwgIDQgKystLQogeGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMgICAgICAgIHwgMzIgKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KIHhlbi9hcmNoL3g4Ni9odm0vdm14L3Z2bXguYyAg ICAgICB8IDE5ICsrKysrKysrKysrKysrLS0tLS0KIHhlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3N1 cHBvcnQuaCB8IDExICsrKysrKysrLS0tCiA2IGZpbGVzIGNoYW5nZWQsIDYyIGluc2VydGlvbnMo KyksIDI2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vZW11bGF0 ZS5jIGIveGVuL2FyY2gveDg2L2h2bS9lbXVsYXRlLmMKaW5kZXggZDBhMDQzYi4uYjE4MmQ1NyAx MDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9lbXVsYXRlLmMKKysrIGIveGVuL2FyY2gveDg2 L2h2bS9lbXVsYXRlLmMKQEAgLTE1MzEsNyArMTUzMSwxMiBAQCBzdGF0aWMgaW50IGh2bWVtdWxf cmVhZF9tc3IoCiAgICAgdWludDY0X3QgKnZhbCwKICAgICBzdHJ1Y3QgeDg2X2VtdWxhdGVfY3R4 dCAqY3R4dCkKIHsKLSAgICByZXR1cm4gaHZtX21zcl9yZWFkX2ludGVyY2VwdChyZWcsIHZhbCk7 CisgICAgaW50IHJjID0gaHZtX21zcl9yZWFkX2ludGVyY2VwdChyZWcsIHZhbCk7CisKKyAgICBp ZiAoIHJjID09IFg4NkVNVUxfRVhDRVBUSU9OICkKKyAgICAgICAgeDg2X2VtdWxfaHdfZXhjZXB0 aW9uKFRSQVBfZ3BfZmF1bHQsIDAsIGN0eHQpOworCisgICAgcmV0dXJuIHJjOwogfQogCiBzdGF0 aWMgaW50IGh2bWVtdWxfd3JpdGVfbXNyKApAQCAtMTUzOSw3ICsxNTQ0LDEyIEBAIHN0YXRpYyBp bnQgaHZtZW11bF93cml0ZV9tc3IoCiAgICAgdWludDY0X3QgdmFsLAogICAgIHN0cnVjdCB4ODZf ZW11bGF0ZV9jdHh0ICpjdHh0KQogewotICAgIHJldHVybiBodm1fbXNyX3dyaXRlX2ludGVyY2Vw dChyZWcsIHZhbCwgMSk7CisgICAgaW50IHJjID0gaHZtX21zcl93cml0ZV9pbnRlcmNlcHQocmVn LCB2YWwsIDEpOworCisgICAgaWYgKCByYyA9PSBYODZFTVVMX0VYQ0VQVElPTiApCisgICAgICAg IHg4Nl9lbXVsX2h3X2V4Y2VwdGlvbihUUkFQX2dwX2ZhdWx0LCAwLCBjdHh0KTsKKworICAgIHJl dHVybiByYzsKIH0KIAogc3RhdGljIGludCBodm1lbXVsX3diaW52ZCgKZGlmZiAtLWdpdCBhL3hl bi9hcmNoL3g4Ni9odm0vaHZtLmMgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCmluZGV4IGFjMjA3 ZTQuLjg2M2FkZmMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKKysrIGIveGVu L2FyY2gveDg2L2h2bS9odm0uYwpAQCAtNTA5LDcgKzUwOSwxMSBAQCB2b2lkIGh2bV9kb19yZXN1 bWUoc3RydWN0IHZjcHUgKnYpCiAKICAgICAgICAgaWYgKCB3LT5kb193cml0ZS5tc3IgKQogICAg ICAgICB7Ci0gICAgICAgICAgICBodm1fbXNyX3dyaXRlX2ludGVyY2VwdCh3LT5tc3IsIHctPnZh bHVlLCAwKTsKKyAgICAgICAgICAgIGludCByYyA9IGh2bV9tc3Jfd3JpdGVfaW50ZXJjZXB0KHct Pm1zciwgdy0+dmFsdWUsIDApOworCisgICAgICAgICAgICBpZiAoIHJjID09IFg4NkVNVUxfRVhD RVBUSU9OICkKKyAgICAgICAgICAgICAgICBodm1faW5qZWN0X2h3X2V4Y2VwdGlvbihUUkFQX2dw X2ZhdWx0LCAwKTsKKwogICAgICAgICAgICAgdy0+ZG9fd3JpdGUubXNyID0gMDsKICAgICAgICAg fQogCkBAIC0zODk2LDcgKzM5MDAsNiBAQCBpbnQgaHZtX21zcl9yZWFkX2ludGVyY2VwdCh1bnNp Z25lZCBpbnQgbXNyLCB1aW50NjRfdCAqbXNyX2NvbnRlbnQpCiAgICAgcmV0dXJuIHJldDsKIAog IGdwX2ZhdWx0OgotICAgIGh2bV9pbmplY3RfaHdfZXhjZXB0aW9uKFRSQVBfZ3BfZmF1bHQsIDAp OwogICAgIHJldCA9IFg4NkVNVUxfRVhDRVBUSU9OOwogICAgICptc3JfY29udGVudCA9IC0xdWxs OwogICAgIGdvdG8gb3V0OwpAQCAtNDA1NCw3ICs0MDU3LDYgQEAgaW50IGh2bV9tc3Jfd3JpdGVf aW50ZXJjZXB0KHVuc2lnbmVkIGludCBtc3IsIHVpbnQ2NF90IG1zcl9jb250ZW50LAogICAgIHJl dHVybiByZXQ7CiAKIGdwX2ZhdWx0OgotICAgIGh2bV9pbmplY3RfaHdfZXhjZXB0aW9uKFRSQVBf Z3BfZmF1bHQsIDApOwogICAgIHJldHVybiBYODZFTVVMX0VYQ0VQVElPTjsKIH0KIApkaWZmIC0t Z2l0IGEveGVuL2FyY2gveDg2L2h2bS9zdm0vc3ZtLmMgYi94ZW4vYXJjaC94ODYvaHZtL3N2bS9z dm0uYwppbmRleCAxNTg4YjJmLi44MTBiMGQ0IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZt L3N2bS9zdm0uYworKysgYi94ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm0uYwpAQCAtMTc4OCw3ICsx Nzg4LDYgQEAgc3RhdGljIGludCBzdm1fbXNyX3JlYWRfaW50ZXJjZXB0KHVuc2lnbmVkIGludCBt c3IsIHVpbnQ2NF90ICptc3JfY29udGVudCkKICAgICByZXR1cm4gWDg2RU1VTF9PS0FZOwogCiAg Z3BmOgotICAgIGh2bV9pbmplY3RfaHdfZXhjZXB0aW9uKFRSQVBfZ3BfZmF1bHQsIDApOwogICAg IHJldHVybiBYODZFTVVMX0VYQ0VQVElPTjsKIH0KIApAQCAtMTk0NSw3ICsxOTQ0LDYgQEAgc3Rh dGljIGludCBzdm1fbXNyX3dyaXRlX2ludGVyY2VwdCh1bnNpZ25lZCBpbnQgbXNyLCB1aW50NjRf dCBtc3JfY29udGVudCkKICAgICByZXR1cm4gcmVzdWx0OwogCiAgZ3BmOgotICAgIGh2bV9pbmpl Y3RfaHdfZXhjZXB0aW9uKFRSQVBfZ3BfZmF1bHQsIDApOwogICAgIHJldHVybiBYODZFTVVMX0VY Q0VQVElPTjsKIH0KIApAQCAtMTk3Niw2ICsxOTc0LDggQEAgc3RhdGljIHZvaWQgc3ZtX2RvX21z cl9hY2Nlc3Moc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiAKICAgICBpZiAoIHJjID09IFg4 NkVNVUxfT0tBWSApCiAgICAgICAgIF9fdXBkYXRlX2d1ZXN0X2VpcChyZWdzLCBpbnN0X2xlbik7 CisgICAgZWxzZSBpZiAoIHJjID09IFg4NkVNVUxfRVhDRVBUSU9OICkKKyAgICAgICAgaHZtX2lu amVjdF9od19leGNlcHRpb24oVFJBUF9ncF9mYXVsdCwgMCk7CiB9CiAKIHN0YXRpYyB2b2lkIHN2 bV92bWV4aXRfZG9faGx0KHN0cnVjdCB2bWNiX3N0cnVjdCAqdm1jYiwKZGlmZiAtLWdpdCBhL3hl bi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jIGIveGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMKaW5k ZXggYWZkZTYzNC4uZGRmYjQxMCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS92bXgvdm14 LmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMKQEAgLTI2OTEsNyArMjY5MSw2IEBA IHN0YXRpYyBpbnQgdm14X21zcl9yZWFkX2ludGVyY2VwdCh1bnNpZ25lZCBpbnQgbXNyLCB1aW50 NjRfdCAqbXNyX2NvbnRlbnQpCiAgICAgcmV0dXJuIFg4NkVNVUxfT0tBWTsKIAogZ3BfZmF1bHQ6 Ci0gICAgaHZtX2luamVjdF9od19leGNlcHRpb24oVFJBUF9ncF9mYXVsdCwgMCk7CiAgICAgcmV0 dXJuIFg4NkVNVUxfRVhDRVBUSU9OOwogfQogCkBAIC0yOTIwLDcgKzI5MTksNiBAQCBzdGF0aWMg aW50IHZteF9tc3Jfd3JpdGVfaW50ZXJjZXB0KHVuc2lnbmVkIGludCBtc3IsIHVpbnQ2NF90IG1z cl9jb250ZW50KQogICAgIHJldHVybiBYODZFTVVMX09LQVk7CiAKIGdwX2ZhdWx0OgotICAgIGh2 bV9pbmplY3RfaHdfZXhjZXB0aW9uKFRSQVBfZ3BfZmF1bHQsIDApOwogICAgIHJldHVybiBYODZF TVVMX0VYQ0VQVElPTjsKIH0KIApAQCAtMzYzMiwyMyArMzYzMCwzNSBAQCB2b2lkIHZteF92bWV4 aXRfaGFuZGxlcihzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKICAgICAgICAgYnJlYWs7CiAg ICAgY2FzZSBFWElUX1JFQVNPTl9NU1JfUkVBRDoKICAgICB7Ci0gICAgICAgIHVpbnQ2NF90IG1z cl9jb250ZW50OwotICAgICAgICBpZiAoIGh2bV9tc3JfcmVhZF9pbnRlcmNlcHQocmVncy0+ZWN4 LCAmbXNyX2NvbnRlbnQpID09IFg4NkVNVUxfT0tBWSApCisgICAgICAgIHVpbnQ2NF90IG1zcl9j b250ZW50ID0gMDsKKworICAgICAgICBzd2l0Y2ggKCBodm1fbXNyX3JlYWRfaW50ZXJjZXB0KHJl Z3MtPl9lY3gsICZtc3JfY29udGVudCkgKQogICAgICAgICB7Ci0gICAgICAgICAgICByZWdzLT5l YXggPSAodWludDMyX3QpbXNyX2NvbnRlbnQ7Ci0gICAgICAgICAgICByZWdzLT5lZHggPSAodWlu dDMyX3QpKG1zcl9jb250ZW50ID4+IDMyKTsKKyAgICAgICAgY2FzZSBYODZFTVVMX09LQVk6Cisg ICAgICAgICAgICByZWdzLT5yYXggPSAodWludDMyX3QpbXNyX2NvbnRlbnQ7CisgICAgICAgICAg ICByZWdzLT5yZHggPSAodWludDMyX3QpKG1zcl9jb250ZW50ID4+IDMyKTsKICAgICAgICAgICAg IHVwZGF0ZV9ndWVzdF9laXAoKTsgLyogU2FmZTogUkRNU1IgKi8KKyAgICAgICAgICAgIGJyZWFr OworCisgICAgICAgIGNhc2UgWDg2RU1VTF9FWENFUFRJT046CisgICAgICAgICAgICBodm1faW5q ZWN0X2h3X2V4Y2VwdGlvbihUUkFQX2dwX2ZhdWx0LCAwKTsKKyAgICAgICAgICAgIGJyZWFrOwog ICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIEVYSVRfUkVBU09OX01T Ul9XUklURToKLSAgICB7Ci0gICAgICAgIHVpbnQ2NF90IG1zcl9jb250ZW50OwotICAgICAgICBt c3JfY29udGVudCA9ICgodWludDY0X3QpcmVncy0+ZWR4IDw8IDMyKSB8ICh1aW50MzJfdClyZWdz LT5lYXg7Ci0gICAgICAgIGlmICggaHZtX21zcl93cml0ZV9pbnRlcmNlcHQocmVncy0+ZWN4LCBt c3JfY29udGVudCwgMSkgPT0gWDg2RU1VTF9PS0FZICkKKyAgICAgICAgc3dpdGNoICggaHZtX21z cl93cml0ZV9pbnRlcmNlcHQoCisgICAgICAgICAgICAgICAgICAgICByZWdzLT5fZWN4LCAocmVn cy0+cmR4IDw8IDMyKSB8IHJlZ3MtPl9lYXgsIDEpICkKKyAgICAgICAgeworICAgICAgICBjYXNl IFg4NkVNVUxfT0tBWToKICAgICAgICAgICAgIHVwZGF0ZV9ndWVzdF9laXAoKTsgLyogU2FmZTog V1JNU1IgKi8KKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgWDg2RU1VTF9FWENF UFRJT046CisgICAgICAgICAgICBodm1faW5qZWN0X2h3X2V4Y2VwdGlvbihUUkFQX2dwX2ZhdWx0 LCAwKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAgICAgICAgIGJyZWFrOwotICAg IH0KIAogICAgIGNhc2UgRVhJVF9SRUFTT05fVk1YT0ZGOgogICAgICAgICBpZiAoIG52bXhfaGFu ZGxlX3ZteG9mZihyZWdzKSA9PSBYODZFTVVMX09LQVkgKQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gv eDg2L2h2bS92bXgvdnZteC5jIGIveGVuL2FyY2gveDg2L2h2bS92bXgvdnZteC5jCmluZGV4IGU2 ZTllYmQuLjg3ZjAyZWYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vdm14L3Z2bXguYwor KysgYi94ZW4vYXJjaC94ODYvaHZtL3ZteC92dm14LmMKQEAgLTEwMDAsNiArMTAwMCw3IEBAIHN0 YXRpYyB2b2lkIGxvYWRfc2hhZG93X2d1ZXN0X3N0YXRlKHN0cnVjdCB2Y3B1ICp2KQogICAgIHN0 cnVjdCBuZXN0ZWR2Y3B1ICpudmNwdSA9ICZ2Y3B1X25lc3RlZGh2bSh2KTsKICAgICB1MzIgY29u dHJvbDsKICAgICB1NjQgY3JfZ2hfbWFzaywgY3JfcmVhZF9zaGFkb3c7CisgICAgaW50IHJjOwog CiAgICAgc3RhdGljIGNvbnN0IHUxNiB2bWVudHJ5X2ZpZWxkc1tdID0gewogICAgICAgICBWTV9F TlRSWV9JTlRSX0lORk8sCkBAIC0xMDIxLDggKzEwMjIsMTIgQEAgc3RhdGljIHZvaWQgbG9hZF9z aGFkb3dfZ3Vlc3Rfc3RhdGUoc3RydWN0IHZjcHUgKnYpCiAgICAgaWYgKCBjb250cm9sICYgVk1f RU5UUllfTE9BRF9HVUVTVF9QQVQgKQogICAgICAgICBodm1fc2V0X2d1ZXN0X3BhdCh2LCBnZXRf dnZtY3ModiwgR1VFU1RfUEFUKSk7CiAgICAgaWYgKCBjb250cm9sICYgVk1fRU5UUllfTE9BRF9Q RVJGX0dMT0JBTF9DVFJMICkKLSAgICAgICAgaHZtX21zcl93cml0ZV9pbnRlcmNlcHQoTVNSX0NP UkVfUEVSRl9HTE9CQUxfQ1RSTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0 X3Z2bWNzKHYsIEdVRVNUX1BFUkZfR0xPQkFMX0NUUkwpLCAwKTsKKyAgICB7CisgICAgICAgIHJj ID0gaHZtX21zcl93cml0ZV9pbnRlcmNlcHQoTVNSX0NPUkVfUEVSRl9HTE9CQUxfQ1RSTCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRfdnZtY3ModiwgR1VFU1RfUEVS Rl9HTE9CQUxfQ1RSTCksIDApOworICAgICAgICBpZiAoIHJjID09IFg4NkVNVUxfRVhDRVBUSU9O ICkKKyAgICAgICAgICAgIGh2bV9pbmplY3RfaHdfZXhjZXB0aW9uKFRSQVBfZ3BfZmF1bHQsIDAp OworICAgIH0KIAogICAgIGh2bV9mdW5jcy5zZXRfdHNjX29mZnNldCh2LCB2LT5hcmNoLmh2bV92 Y3B1LmNhY2hlX3RzY19vZmZzZXQsIDApOwogCkBAIC0xMTkzLDcgKzExOTgsNyBAQCBzdGF0aWMg dm9pZCBzeW5jX3Z2bWNzX3JvKHN0cnVjdCB2Y3B1ICp2KQogCiBzdGF0aWMgdm9pZCBsb2FkX3Z2 bWNzX2hvc3Rfc3RhdGUoc3RydWN0IHZjcHUgKnYpCiB7Ci0gICAgaW50IGk7CisgICAgaW50IGks IHJjOwogICAgIHU2NCByOwogICAgIHUzMiBjb250cm9sOwogCkBAIC0xMjExLDggKzEyMTYsMTIg QEAgc3RhdGljIHZvaWQgbG9hZF92dm1jc19ob3N0X3N0YXRlKHN0cnVjdCB2Y3B1ICp2KQogICAg IGlmICggY29udHJvbCAmIFZNX0VYSVRfTE9BRF9IT1NUX1BBVCApCiAgICAgICAgIGh2bV9zZXRf Z3Vlc3RfcGF0KHYsIGdldF92dm1jcyh2LCBIT1NUX1BBVCkpOwogICAgIGlmICggY29udHJvbCAm IFZNX0VYSVRfTE9BRF9QRVJGX0dMT0JBTF9DVFJMICkKLSAgICAgICAgaHZtX21zcl93cml0ZV9p bnRlcmNlcHQoTVNSX0NPUkVfUEVSRl9HTE9CQUxfQ1RSTCwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZ2V0X3Z2bWNzKHYsIEhPU1RfUEVSRl9HTE9CQUxfQ1RSTCksIDEpOworICAg IHsKKyAgICAgICAgcmMgPSBodm1fbXNyX3dyaXRlX2ludGVyY2VwdChNU1JfQ09SRV9QRVJGX0dM T0JBTF9DVFJMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldF92dm1j cyh2LCBIT1NUX1BFUkZfR0xPQkFMX0NUUkwpLCAxKTsKKyAgICAgICAgaWYgKCByYyA9PSBYODZF TVVMX0VYQ0VQVElPTiApCisgICAgICAgICAgICBodm1faW5qZWN0X2h3X2V4Y2VwdGlvbihUUkFQ X2dwX2ZhdWx0LCAwKTsKKyAgICB9CiAKICAgICBodm1fZnVuY3Muc2V0X3RzY19vZmZzZXQodiwg di0+YXJjaC5odm1fdmNwdS5jYWNoZV90c2Nfb2Zmc2V0LCAwKTsKIApkaWZmIC0tZ2l0IGEveGVu L2luY2x1ZGUvYXNtLXg4Ni9odm0vc3VwcG9ydC5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0v c3VwcG9ydC5oCmluZGV4IDNkNzY3ZDcuLjJiZmYxZjQgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRl L2FzbS14ODYvaHZtL3N1cHBvcnQuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9zdXBw b3J0LmgKQEAgLTEyMiwxMyArMTIyLDE4IEBAIGludCBodm1fc2V0X2VmZXIodWludDY0X3QgdmFs dWUpOwogaW50IGh2bV9zZXRfY3IwKHVuc2lnbmVkIGxvbmcgdmFsdWUsIGJvb2xfdCBtYXlfZGVm ZXIpOwogaW50IGh2bV9zZXRfY3IzKHVuc2lnbmVkIGxvbmcgdmFsdWUsIGJvb2xfdCBtYXlfZGVm ZXIpOwogaW50IGh2bV9zZXRfY3I0KHVuc2lnbmVkIGxvbmcgdmFsdWUsIGJvb2xfdCBtYXlfZGVm ZXIpOwotaW50IGh2bV9tc3JfcmVhZF9pbnRlcmNlcHQodW5zaWduZWQgaW50IG1zciwgdWludDY0 X3QgKm1zcl9jb250ZW50KTsKLWludCBodm1fbXNyX3dyaXRlX2ludGVyY2VwdCgKLSAgICB1bnNp Z25lZCBpbnQgbXNyLCB1aW50NjRfdCBtc3JfY29udGVudCwgYm9vbF90IG1heV9kZWZlcik7CiBp bnQgaHZtX21vdl90b19jcih1bnNpZ25lZCBpbnQgY3IsIHVuc2lnbmVkIGludCBncHIpOwogaW50 IGh2bV9tb3ZfZnJvbV9jcih1bnNpZ25lZCBpbnQgY3IsIHVuc2lnbmVkIGludCBncHIpOwogdm9p ZCBodm1fdWRfaW50ZXJjZXB0KHN0cnVjdCBjcHVfdXNlcl9yZWdzICopOwogCisvKgorICogTWF5 IHJldHVybiBYODZFTVVMX0VYQ0VQVElPTiwgYXQgd2hpY2ggcG9pbnQgdGhlIGNhbGxlciBpcyBy ZXNwb25zaWJsZSBmb3IKKyAqIGluamVjdGluZyBhICNHUCBmYXVsdC4gIFVzZWQgdG8gc3VwcG9y dCBzcGVjdWxhdGl2ZSByZWFkcy4KKyAqLworaW50IGh2bV9tc3JfcmVhZF9pbnRlcmNlcHQodW5z aWduZWQgaW50IG1zciwgdWludDY0X3QgKm1zcl9jb250ZW50KTsKK2ludCBodm1fbXNyX3dyaXRl X2ludGVyY2VwdCgKKyAgICB1bnNpZ25lZCBpbnQgbXNyLCB1aW50NjRfdCBtc3JfY29udGVudCwg Ym9vbF90IG1heV9kZWZlcik7CisKICNlbmRpZiAvKiBfX0FTTV9YODZfSFZNX1NVUFBPUlRfSF9f ICovCiAKIC8qCi0tIAoyLjEuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5v cmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=