From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 2/2] xen/x86: Introduce a new VMASSIST for architectural behaviour of iopl Date: Wed, 16 Mar 2016 20:05:49 +0000 Message-ID: <1458158749-21846-3-git-send-email-andrew.cooper3@citrix.com> References: <1458158749-21846-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: <1458158749-21846-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 , Jan Beulich , Andy Lutomirski List-Id: xen-devel@lists.xenproject.org VGhlIGV4aXN0aW5nIHZJT1BMIGludGVyZmFjZSBpcyBoYXJkIHRvIHVzZSwgYW5kIG5lZWQgbm90 IGJlLgoKSW50cm9kdWNlIGEgVk1BU1NJU1Qgd2l0aCB3aGljaCBhIGd1ZXN0IGNhbiBvcHQtaW4g dG8gaGF2aW5nIHZJT1BMIGJlaGF2aW91cgpjb25zaXN0ZW5seSB3aXRoIG5hdGl2ZSBoYXJkd2Fy ZS4KClNwZWNpZmljYWxseToKIC0gdmlydHVhbCBpb3BsIHVwZGF0ZWQgZnJvbSBkb19pcmV0KCkg aHlwZXJjYWxscy4KIC0gdmlydHVhbCBpb3BsIHJlcG9ydGVkIGluIGJvdW5jZSBmcmFtZXMuCiAt IGd1ZXN0IGtlcm5lbHMgYXNzdW1lZCB0byBiZSBsZXZlbCAwIGZvciB0aGUgcHVycG9zZSBvZiBp b3BsIGNoZWNrcy4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIz QGNpdHJpeC5jb20+Ci0tLQpDQzogSmFuIEJldWxpY2ggPEpCZXVsaWNoQHN1c2UuY29tPgotLS0K IHhlbi9hcmNoL3g4Ni9kb21haW4uYyAgICAgICAgICAgICAgfCAxMCArKysrKysrLS0tCiB4ZW4v YXJjaC94ODYvcGh5c2Rldi5jICAgICAgICAgICAgIHwgIDIgKy0KIHhlbi9hcmNoL3g4Ni90cmFw cy5jICAgICAgICAgICAgICAgfCAgOCArKysrKystLQogeGVuL2FyY2gveDg2L3g4Nl82NC9hc20t b2Zmc2V0cy5jICB8ICAzICsrKwogeGVuL2FyY2gveDg2L3g4Nl82NC9jb21wYXQvZW50cnkuUyB8 ICA3ICsrKysrKy0KIHhlbi9hcmNoL3g4Ni94ODZfNjQvY29tcGF0L3RyYXBzLmMgfCAgNCArKysr CiB4ZW4vYXJjaC94ODYveDg2XzY0L2VudHJ5LlMgICAgICAgIHwgIDcgKysrKysrLQogeGVuL2Fy Y2gveDg2L3g4Nl82NC90cmFwcy5jICAgICAgICB8ICAzICsrKwogeGVuL2luY2x1ZGUvYXNtLXg4 Ni9jb25maWcuaCAgICAgICB8ICAxICsKIHhlbi9pbmNsdWRlL2FzbS14ODYvZG9tYWluLmggICAg ICAgfCAgMyArKy0KIHhlbi9pbmNsdWRlL3B1YmxpYy94ZW4uaCAgICAgICAgICAgfCAgOCArKysr KysrKwogMTEgZmlsZXMgY2hhbmdlZCwgNDcgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvZG9tYWluLmMgYi94ZW4vYXJjaC94ODYvZG9tYWlu LmMKaW5kZXggYTZkNzIxYi4uMzZiOWFhYSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2RvbWFp bi5jCisrKyBiL3hlbi9hcmNoL3g4Ni9kb21haW4uYwpAQCAtMTAwMSw3ICsxMDAxLDcgQEAgaW50 IGFyY2hfc2V0X2luZm9fZ3Vlc3QoCiAgICAgaW5pdF9pbnQ4MF9kaXJlY3RfdHJhcCh2KTsKIAog ICAgIC8qIElPUEwgcHJpdmlsZWdlcyBhcmUgdmlydHVhbGlzZWQuICovCi0gICAgdi0+YXJjaC5w dl92Y3B1LmlvcGwgPSAodi0+YXJjaC51c2VyX3JlZ3MuZWZsYWdzID4+IDEyKSAmIDM7CisgICAg di0+YXJjaC5wdl92Y3B1LmlvcGwgPSB2LT5hcmNoLnVzZXJfcmVncy5lZmxhZ3MgJiBYODZfRUZM QUdTX0lPUEw7CiAgICAgdi0+YXJjaC51c2VyX3JlZ3MuZWZsYWdzICY9IH5YODZfRUZMQUdTX0lP UEw7CiAKICAgICAvKiBFbnN1cmUgcmVhbCBoYXJkd2FyZSBpbnRlcnJ1cHRzIGFyZSBlbmFibGVk LiAqLwpAQCAtMTc0Miw4ICsxNzQyLDEwIEBAIHN0YXRpYyB2b2lkIGxvYWRfc2VnbWVudHMoc3Ry dWN0IHZjcHUgKm4pCiAgICAgICAgICAgICBjc19hbmRfbWFzayA9ICh1bnNpZ25lZCBzaG9ydCly ZWdzLT5jcyB8CiAgICAgICAgICAgICAgICAgKCh1bnNpZ25lZCBpbnQpdmNwdV9pbmZvKG4sIGV2 dGNobl91cGNhbGxfbWFzaykgPDwgMTYpOwogICAgICAgICAgICAgLyogRm9sZCB1cGNhbGwgbWFz ayBpbnRvIFJGTEFHUy5JRi4gKi8KLSAgICAgICAgICAgIGVmbGFncyAgPSByZWdzLT5fZWZsYWdz ICYgflg4Nl9FRkxBR1NfSUY7CisgICAgICAgICAgICBlZmxhZ3MgID0gcmVncy0+X2VmbGFncyAm IH4oWDg2X0VGTEFHU19JRnxYODZfRUZMQUdTX0lPUEwpOwogICAgICAgICAgICAgZWZsYWdzIHw9 ICF2Y3B1X2luZm8obiwgZXZ0Y2huX3VwY2FsbF9tYXNrKSA8PCA5OworICAgICAgICAgICAgaWYg KCBWTV9BU1NJU1Qobi0+ZG9tYWluLCBhcmNoaXRlY3R1cmFsX2lvcGwpICkKKyAgICAgICAgICAg ICAgICBlZmxhZ3MgfD0gbi0+YXJjaC5wdl92Y3B1LmlvcGw7CiAKICAgICAgICAgICAgIGlmICgg IXJpbmdfMShyZWdzKSApCiAgICAgICAgICAgICB7CkBAIC0xNzg4LDggKzE3OTAsMTAgQEAgc3Rh dGljIHZvaWQgbG9hZF9zZWdtZW50cyhzdHJ1Y3QgdmNwdSAqbikKICAgICAgICAgICAgICgodW5z aWduZWQgbG9uZyl2Y3B1X2luZm8obiwgZXZ0Y2huX3VwY2FsbF9tYXNrKSA8PCAzMik7CiAKICAg ICAgICAgLyogRm9sZCB1cGNhbGwgbWFzayBpbnRvIFJGTEFHUy5JRi4gKi8KLSAgICAgICAgcmZs YWdzICA9IHJlZ3MtPnJmbGFncyAmIH5YODZfRUZMQUdTX0lGOworICAgICAgICByZmxhZ3MgID0g cmVncy0+cmZsYWdzICYgfihYODZfRUZMQUdTX0lGfFg4Nl9FRkxBR1NfSU9QTCk7CiAgICAgICAg IHJmbGFncyB8PSAhdmNwdV9pbmZvKG4sIGV2dGNobl91cGNhbGxfbWFzaykgPDwgOTsKKyAgICAg ICAgaWYgKCBWTV9BU1NJU1Qobi0+ZG9tYWluLCBhcmNoaXRlY3R1cmFsX2lvcGwpICkKKyAgICAg ICAgICAgIHJmbGFncyB8PSBuLT5hcmNoLnB2X3ZjcHUuaW9wbDsKIAogICAgICAgICBpZiAoIHB1 dF91c2VyKHJlZ3MtPnNzLCAgICAgICAgICAgIHJzcC0gMSkgfAogICAgICAgICAgICAgIHB1dF91 c2VyKHJlZ3MtPnJzcCwgICAgICAgICAgIHJzcC0gMikgfApkaWZmIC0tZ2l0IGEveGVuL2FyY2gv eDg2L3BoeXNkZXYuYyBiL3hlbi9hcmNoL3g4Ni9waHlzZGV2LmMKaW5kZXggMWNiOWI1OC4uNWE0 OTc5NiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3BoeXNkZXYuYworKysgYi94ZW4vYXJjaC94 ODYvcGh5c2Rldi5jCkBAIC01MjksNyArNTI5LDcgQEAgcmV0X3QgZG9fcGh5c2Rldl9vcChpbnQg Y21kLCBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZykKICAgICAgICAgaWYgKCBzZXRf aW9wbC5pb3BsID4gMyApCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgcmV0ID0gMDsKLSAg ICAgICAgY3Vyci0+YXJjaC5wdl92Y3B1LmlvcGwgPSBzZXRfaW9wbC5pb3BsOworICAgICAgICBj dXJyLT5hcmNoLnB2X3ZjcHUuaW9wbCA9IE1BU0tfSU5TUihzZXRfaW9wbC5pb3BsLCBYODZfRUZM QUdTX0lPUEwpOwogICAgICAgICBicmVhazsKICAgICB9CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNo L3g4Ni90cmFwcy5jIGIveGVuL2FyY2gveDg2L3RyYXBzLmMKaW5kZXggNTY0YTEwNy4uOTc1NGEy ZiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3RyYXBzLmMKKysrIGIveGVuL2FyY2gveDg2L3Ry YXBzLmMKQEAgLTE4MDYsNyArMTgwNiw5IEBAIHN0YXRpYyBpbnQgZ3Vlc3RfaW9fb2theSgKICNk ZWZpbmUgVE9HR0xFX01PREUoKSBpZiAoIHVzZXJfbW9kZSApIHRvZ2dsZV9ndWVzdF9tb2RlKHYp CiAKICAgICBpZiAoICF2bTg2X21vZGUocmVncykgJiYKLSAgICAgICAgICh2LT5hcmNoLnB2X3Zj cHUuaW9wbCA+PSAoZ3Vlc3Rfa2VybmVsX21vZGUodiwgcmVncykgPyAxIDogMykpICkKKyAgICAg ICAgIChNQVNLX0VYVFIodi0+YXJjaC5wdl92Y3B1LmlvcGwsIFg4Nl9FRkxBR1NfSU9QTCkgPj0K KyAgICAgICAgICAoZ3Vlc3Rfa2VybmVsX21vZGUodiwgcmVncykgPworICAgICAgICAgICAoVk1f QVNTSVNUKHYtPmRvbWFpbiwgYXJjaGl0ZWN0dXJhbF9pb3BsKSA/IDAgOiAxKSA6IDMpKSApCiAg ICAgICAgIHJldHVybiAxOwogCiAgICAgaWYgKCB2LT5hcmNoLnB2X3ZjcHUuaW9ibXBfbGltaXQg PiAocG9ydCArIGJ5dGVzKSApCkBAIC0yMzY3LDcgKzIzNjksOSBAQCBzdGF0aWMgaW50IGVtdWxh dGVfcHJpdmlsZWdlZF9vcChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKIAogICAgIGNhc2Ug MHhmYTogLyogQ0xJICovCiAgICAgY2FzZSAweGZiOiAvKiBTVEkgKi8KLSAgICAgICAgaWYgKCB2 LT5hcmNoLnB2X3ZjcHUuaW9wbCA8IChndWVzdF9rZXJuZWxfbW9kZSh2LCByZWdzKSA/IDEgOiAz KSApCisgICAgICAgIGlmICggTUFTS19FWFRSKHYtPmFyY2gucHZfdmNwdS5pb3BsLCBYODZfRUZM QUdTX0lPUEwpIDwKKyAgICAgICAgICAgICAoZ3Vlc3Rfa2VybmVsX21vZGUodiwgcmVncykgPwor ICAgICAgICAgICAgICAoVk1fQVNTSVNUKHYtPmRvbWFpbiwgYXJjaGl0ZWN0dXJhbF9pb3BsKSA/ IDAgOiAxKSA6IDMpICkKICAgICAgICAgICAgIGdvdG8gZmFpbDsKICAgICAgICAgLyoKICAgICAg ICAgICogVGhpcyBpcyBqdXN0IHRvbyBkYW5nZXJvdXMgdG8gYWxsb3csIGluIG15IG9waW5pb24u IENvbnNpZGVyIGlmIHRoZQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3g4Nl82NC9hc20tb2Zm c2V0cy5jIGIveGVuL2FyY2gveDg2L3g4Nl82NC9hc20tb2Zmc2V0cy5jCmluZGV4IDQ0N2M2NTAu LmZhMzdlZTAgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni94ODZfNjQvYXNtLW9mZnNldHMuYwor KysgYi94ZW4vYXJjaC94ODYveDg2XzY0L2FzbS1vZmZzZXRzLmMKQEAgLTg2LDYgKzg2LDcgQEAg dm9pZCBfX2R1bW15X18odm9pZCkKICAgICBPRkZTRVQoVkNQVV90cmFwX2N0eHQsIHN0cnVjdCB2 Y3B1LCBhcmNoLnB2X3ZjcHUudHJhcF9jdHh0KTsKICAgICBPRkZTRVQoVkNQVV9rZXJuZWxfc3As IHN0cnVjdCB2Y3B1LCBhcmNoLnB2X3ZjcHUua2VybmVsX3NwKTsKICAgICBPRkZTRVQoVkNQVV9r ZXJuZWxfc3MsIHN0cnVjdCB2Y3B1LCBhcmNoLnB2X3ZjcHUua2VybmVsX3NzKTsKKyAgICBPRkZT RVQoVkNQVV9pb3BsLCBzdHJ1Y3QgdmNwdSwgYXJjaC5wdl92Y3B1LmlvcGwpOwogICAgIE9GRlNF VChWQ1BVX2d1ZXN0X2NvbnRleHRfZmxhZ3MsIHN0cnVjdCB2Y3B1LCBhcmNoLnZnY19mbGFncyk7 CiAgICAgT0ZGU0VUKFZDUFVfbm1pX3BlbmRpbmcsIHN0cnVjdCB2Y3B1LCBubWlfcGVuZGluZyk7 CiAgICAgT0ZGU0VUKFZDUFVfbWNlX3BlbmRpbmcsIHN0cnVjdCB2Y3B1LCBtY2VfcGVuZGluZyk7 CkBAIC0xNjYsNCArMTY3LDYgQEAgdm9pZCBfX2R1bW15X18odm9pZCkKICAgICBPRkZTRVQoTUJf ZmxhZ3MsIG11bHRpYm9vdF9pbmZvX3QsIGZsYWdzKTsKICAgICBPRkZTRVQoTUJfY21kbGluZSwg bXVsdGlib290X2luZm9fdCwgY21kbGluZSk7CiAgICAgT0ZGU0VUKE1CX21lbV9sb3dlciwgbXVs dGlib290X2luZm9fdCwgbWVtX2xvd2VyKTsKKworICAgIE9GRlNFVChET01BSU5fdm1fYXNzaXN0 LCBzdHJ1Y3QgZG9tYWluLCB2bV9hc3Npc3QpOwogfQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2 L3g4Nl82NC9jb21wYXQvZW50cnkuUyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvY29tcGF0L2VudHJ5 LlMKaW5kZXggMzZhOGVhZS4uNDVlZmQzMyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3g4Nl82 NC9jb21wYXQvZW50cnkuUworKysgYi94ZW4vYXJjaC94ODYveDg2XzY0L2NvbXBhdC9lbnRyeS5T CkBAIC0yNzcsOSArMjc3LDE0IEBAIGNvbXBhdF9jcmVhdGVfYm91bmNlX2ZyYW1lOgogICAgICAg ICB0ZXN0YiAlYWwsJWFsICAgICAgICAgICAgICAgICAgICMgQml0cyAwLTc6IHNhdmVkX3VwY2Fs bF9tYXNrCiAgICAgICAgIHNldHogICVjaCAgICAgICAgICAgICAgICAgICAgICAgIyAlY2ggPT0g IXNhdmVkX3VwY2FsbF9tYXNrCiAgICAgICAgIG1vdmwgIFVSRUdTX2VmbGFncys4KCVyc3ApLCVl YXgKLSAgICAgICAgYW5kbCAgJH5YODZfRUZMQUdTX0lGLCVlYXgKKyAgICAgICAgYW5kbCAgJH4o WDg2X0VGTEFHU19JRnxYODZfRUZMQUdTX0lPUEwpLCVlYXgKICAgICAgICAgYWRkYiAgJWNoLCVj aCAgICAgICAgICAgICAgICAgICAjIEJpdCA5IChFRkxBR1MuSUYpCiAgICAgICAgIG9yYiAgICVj aCwlYWggICAgICAgICAgICAgICAgICAgIyBGb2xkIEVGTEFHUy5JRiBpbnRvICVlYXgKKyAgICAg ICAgbW92cSAgVkNQVV9kb21haW4oJXJieCksJXJjeCAgICAjIGlmICggVk1fQVNTSVNUKHYtPmRv bWFpbiwgYXJjaGl0ZWN0dXJhbF9pb3BsKSApCisgICAgICAgIHRlc3RiICQxIDw8IFZNQVNTVF9U WVBFX2FyY2hpdGVjdHVyYWxfaW9wbCxET01BSU5fdm1fYXNzaXN0KCVyY3gpCisgICAgICAgIGp6 ICAgIC5MZnQ2CisgICAgICAgIG1vdnp3bCBWQ1BVX2lvcGwoJXJieCksJWVjeCAgICAgIyBCaXRz IDEzOjEyIChFRkxBR1MuSU9QTCkKKyAgICAgICAgb3JsICAgJWVjeCwlZWF4ICAgICAgICAgICAg ICAgICAjIEZvbGQgRUZMQUdTLklPUEwgaW50byAlZWF4CiAuTGZ0NjogIG1vdmwgICVlYXgsJWZz OjIqNCglcnNpKSAgICAgICAgIyBFRkxBR1MKICAgICAgICAgbW92bCAgVVJFR1NfcmlwKzgoJXJz cCksJWVheAogLkxmdDc6ICBtb3ZsICAlZWF4LCVmczooJXJzaSkgICAgICAgICAgICMgRUlQCmRp ZmYgLS1naXQgYS94ZW4vYXJjaC94ODYveDg2XzY0L2NvbXBhdC90cmFwcy5jIGIveGVuL2FyY2gv eDg2L3g4Nl82NC9jb21wYXQvdHJhcHMuYwppbmRleCBiYmYxOGU0Li5hNmFmYjI2IDEwMDY0NAot LS0gYS94ZW4vYXJjaC94ODYveDg2XzY0L2NvbXBhdC90cmFwcy5jCisrKyBiL3hlbi9hcmNoL3g4 Ni94ODZfNjQvY29tcGF0L3RyYXBzLmMKQEAgLTk5LDYgKzk5LDEwIEBAIHVuc2lnbmVkIGludCBj b21wYXRfaXJldCh2b2lkKQogICAgICAgICBkb21haW5fY3Jhc2godi0+ZG9tYWluKTsKICAgICAg ICAgcmV0dXJuIDA7CiAgICAgfQorCisgICAgaWYgKCBWTV9BU1NJU1Qodi0+ZG9tYWluLCBhcmNo aXRlY3R1cmFsX2lvcGwpICkKKyAgICAgICAgdi0+YXJjaC5wdl92Y3B1LmlvcGwgPSBlZmxhZ3Mg JiBYODZfRUZMQUdTX0lPUEw7CisKICAgICByZWdzLT5fZWZsYWdzID0gKGVmbGFncyAmIH5YODZf RUZMQUdTX0lPUEwpIHwgWDg2X0VGTEFHU19JRjsKIAogICAgIGlmICggdW5saWtlbHkoZWZsYWdz ICYgWDg2X0VGTEFHU19WTSkgKQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3g4Nl82NC9lbnRy eS5TIGIveGVuL2FyY2gveDg2L3g4Nl82NC9lbnRyeS5TCmluZGV4IDIyMWRlMDEuLjFkNmRlZGMg MTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni94ODZfNjQvZW50cnkuUworKysgYi94ZW4vYXJjaC94 ODYveDg2XzY0L2VudHJ5LlMKQEAgLTM2Miw5ICszNjIsMTQgQEAgX19VTkxJS0VMWV9FTkQoY3Jl YXRlX2JvdW5jZV9mcmFtZV9iYWRfc3ApCiAgICAgICAgIHRlc3RiICQweEZGLCVhbCAgICAgICAg ICAgICAgICAgIyBCaXRzIDAtNzogc2F2ZWRfdXBjYWxsX21hc2sKICAgICAgICAgc2V0eiAgJWNo ICAgICAgICAgICAgICAgICAgICAgICAjICVjaCA9PSAhc2F2ZWRfdXBjYWxsX21hc2sKICAgICAg ICAgbW92bCAgVVJFR1NfZWZsYWdzKzgoJXJzcCksJWVheAotICAgICAgICBhbmRsICAkflg4Nl9F RkxBR1NfSUYsJWVheAorICAgICAgICBhbmRsICAkfihYODZfRUZMQUdTX0lGfFg4Nl9FRkxBR1Nf SU9QTCksJWVheAogICAgICAgICBhZGRiICAlY2gsJWNoICAgICAgICAgICAgICAgICAgICMgQml0 IDkgKEVGTEFHUy5JRikKICAgICAgICAgb3JiICAgJWNoLCVhaCAgICAgICAgICAgICAgICAgICAj IEZvbGQgRUZMQUdTLklGIGludG8gJWVheAorICAgICAgICBtb3ZxICBWQ1BVX2RvbWFpbiglcmJ4 KSwlcmN4ICAgICMgaWYgKCBWTV9BU1NJU1Qodi0+ZG9tYWluLCBhcmNoaXRlY3R1cmFsX2lvcGwp ICkKKyAgICAgICAgdGVzdGIgJDEgPDwgVk1BU1NUX1RZUEVfYXJjaGl0ZWN0dXJhbF9pb3BsLERP TUFJTl92bV9hc3Npc3QoJXJjeCkKKyAgICAgICAganogICAgLkxmdDUKKyAgICAgICAgbW92ends IFZDUFVfaW9wbCglcmJ4KSwlZWN4ICAgICAjIEJpdHMgMTM6MTIgKEVGTEFHUy5JT1BMKQorICAg ICAgICBvcmwgICAlZWN4LCVlYXggICAgICAgICAgICAgICAgICMgRm9sZCBFRkxBR1MuSU9QTCBp bnRvICVlYXgKIC5MZnQ1OiAgbW92cSAgJXJheCwxNiglcnNpKSAgICAgICAgICAgICAjIFJGTEFH UwogICAgICAgICBtb3ZxICBVUkVHU19yaXArOCglcnNwKSwlcmF4CiAuTGZ0NjogIG1vdnEgICVy YXgsKCVyc2kpICAgICAgICAgICAgICAgIyBSSVAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94 ODZfNjQvdHJhcHMuYyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvdHJhcHMuYwppbmRleCAyNmUyZGQ3 Li4xOWY1OGExIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYveDg2XzY0L3RyYXBzLmMKKysrIGIv eGVuL2FyY2gveDg2L3g4Nl82NC90cmFwcy5jCkBAIC0zMTAsNiArMzEwLDkgQEAgdW5zaWduZWQg bG9uZyBkb19pcmV0KHZvaWQpCiAgICAgICAgIHRvZ2dsZV9ndWVzdF9tb2RlKHYpOwogICAgIH0K IAorICAgIGlmICggVk1fQVNTSVNUKHYtPmRvbWFpbiwgYXJjaGl0ZWN0dXJhbF9pb3BsKSApCisg ICAgICAgIHYtPmFyY2gucHZfdmNwdS5pb3BsID0gaXJldF9zYXZlZC5yZmxhZ3MgJiBYODZfRUZM QUdTX0lPUEw7CisKICAgICByZWdzLT5yaXAgICAgPSBpcmV0X3NhdmVkLnJpcDsKICAgICByZWdz LT5jcyAgICAgPSBpcmV0X3NhdmVkLmNzIHwgMzsgLyogZm9yY2UgZ3Vlc3QgcHJpdmlsZWdlICov CiAgICAgcmVncy0+cmZsYWdzID0gKChpcmV0X3NhdmVkLnJmbGFncyAmIH4oWDg2X0VGTEFHU19J T1BMfFg4Nl9FRkxBR1NfVk0pKQpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9jb25m aWcuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvY29uZmlnLmgKaW5kZXggNDUyN2NlMy4uNGZlOGE5 NCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9jb25maWcuaAorKysgYi94ZW4vaW5j bHVkZS9hc20teDg2L2NvbmZpZy5oCkBAIC0zMzIsNiArMzMyLDcgQEAgZXh0ZXJuIHVuc2lnbmVk IGxvbmcgeGVuX3BoeXNfc3RhcnQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KDFVTCA8PCBWTUFTU1RfVFlQRV80Z2Jfc2VnbWVudHNfbm90aWZ5KSB8IFwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoMVVMIDw8IFZNQVNTVF9UWVBFX3dyaXRhYmxlX3BhZ2V0 YWJsZXMpIHwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxVUwgPDwgVk1B U1NUX1RZUEVfcGFlX2V4dGVuZGVkX2NyMykgICAgfCBcCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKDFVTCA8PCBWTUFTU1RfVFlQRV9hcmNoaXRlY3R1cmFsX2lvcGwpICB8IFwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMVVMIDw8IFZNQVNTVF9UWVBFX20y cF9zdHJpY3QpKQogI2RlZmluZSBWTV9BU1NJU1RfVkFMSUQgICAgICAgICAgTkFUSVZFX1ZNX0FT U0lTVF9WQUxJRAogI2RlZmluZSBDT01QQVRfVk1fQVNTSVNUX1ZBTElEICAgKE5BVElWRV9WTV9B U1NJU1RfVkFMSUQgJiBcCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2RvbWFpbi5o IGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9kb21haW4uaAppbmRleCBkZTYwZGVmLi5hNmNiYWUwIDEw MDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2RvbWFpbi5oCisrKyBiL3hlbi9pbmNsdWRl L2FzbS14ODYvZG9tYWluLmgKQEAgLTQ3MCw3ICs0NzAsOCBAQCBzdHJ1Y3QgcHZfdmNwdQogICAg IC8qIEkvTy1wb3J0IGFjY2VzcyBiaXRtYXAuICovCiAgICAgWEVOX0dVRVNUX0hBTkRMRSh1aW50 OCkgaW9ibXA7IC8qIEd1ZXN0IGtlcm5lbCB2YWRkciBvZiB0aGUgYml0bWFwLiAqLwogICAgIHVu c2lnbmVkIGludCBpb2JtcF9saW1pdDsgLyogTnVtYmVyIG9mIHBvcnRzIHJlcHJlc2VudGVkIGlu IHRoZSBiaXRtYXAuICovCi0gICAgdW5zaWduZWQgaW50IGlvcGw7ICAgICAgICAvKiBDdXJyZW50 IElPUEwgZm9yIHRoaXMgVkNQVS4gKi8KKyAgICB1bnNpZ25lZCBpbnQgaW9wbDsgICAgICAgIC8q IEN1cnJlbnQgSU9QTCBmb3IgdGhpcyBWQ1BVLCBzaGlmdGVkIGxlZnQgYnkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAqIDEyIHRvIG1hdGNoIHRoZSBlZmxhZ3MgcmVnaXN0ZXIuICov CiAKICAgICAvKiBDdXJyZW50IExEVCBkZXRhaWxzLiAqLwogICAgIHVuc2lnbmVkIGxvbmcgc2hh ZG93X2xkdF9tYXBjbnQ7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMveGVuLmggYi94 ZW4vaW5jbHVkZS9wdWJsaWMveGVuLmgKaW5kZXggNjRiYTdhYi4uNGY3M2RlZCAxMDA2NDQKLS0t IGEveGVuL2luY2x1ZGUvcHVibGljL3hlbi5oCisrKyBiL3hlbi9pbmNsdWRlL3B1YmxpYy94ZW4u aApAQCAtNTAyLDYgKzUwMiwxNCBAQCBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShtbXVleHRfb3Bf dCk7CiAjZGVmaW5lIFZNQVNTVF9UWVBFX3BhZV9leHRlbmRlZF9jcjMgICAgIDMKIAogLyoKKyAq IHg4NiBndWVzdHM6IFNhbmUgYmVoYXZpb3VyIGZvciB2aXJ0dWFsIGlvcGwKKyAqICAtIHZpcnR1 YWwgaW9wbCB1cGRhdGVkIGZyb20gZG9faXJldCgpIGh5cGVyY2FsbHMuCisgKiAgLSB2aXJ0dWFs IGlvcGwgcmVwb3J0ZWQgaW4gYm91bmNlIGZyYW1lcy4KKyAqICAtIGd1ZXN0IGtlcm5lbHMgYXNz dW1lZCB0byBiZSBsZXZlbCAwIGZvciB0aGUgcHVycG9zZSBvZiBpb3BsIGNoZWNrcy4KKyAqLwor I2RlZmluZSBWTUFTU1RfVFlQRV9hcmNoaXRlY3R1cmFsX2lvcGwgICA0CisKKy8qCiAgKiB4ODYv NjQgZ3Vlc3RzOiBzdHJpY3RseSBoaWRlIE0yUCBmcm9tIHVzZXIgbW9kZS4KICAqIFRoaXMgYWxs b3dzIHRoZSBndWVzdCB0byBjb250cm9sIHJlc3BlY3RpdmUgaHlwZXJ2aXNvciBiZWhhdmlvcjoK ICAqIC0gd2hlbiBub3Qgc2V0LCBMNCB0YWJsZXMgZ2V0IGNyZWF0ZWQgd2l0aCB0aGUgcmVzcGVj dGl2ZSBzbG90IGJsYW5rLAotLSAKMi4xLjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0 cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=