Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: x86: disable IRQs before changing CR4 From: Nadav Amit Message-Id: <20171117181903.1622-1-namit@vmware.com> Date: Fri, 17 Nov 2017 10:19:03 -0800 To: linux-edac@vger.kernel.org, kvm@vger.kernel.org Cc: nadav.amit@gmail.com, Nadav Amit , Andy Lutomirski , Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , x86@kernel.org, Tony Luck , Borislav Petkov , Paolo Bonzini , =?UTF-8?q?Radim=20Kr=C4=8Dm=C3=A1=C5=99?= List-ID: Q1I0IGNoYW5nZXMgbmVlZCB0byBiZSBwZXJmb3JtZWQgd2hpbGUgSVJRcyBhcmUgZGlzYWJsZWQg aW4gb3JkZXIgdG8KdXBkYXRlIHRoZSBDUjQgc2hhZG93IGFuZCB0aGUgYWN0dWFsIHJlZ2lzdGVy IGF0b21pY2FsbHkuIEFjdHVhbGx5LCB0aGV5CmFyZSBuZWVkZWQgcmVnYXJkbGVzcyBvZiBDUjQg c2hhZG93aW5nLCBzaW5jZSBDUjQgYXJlIHBlcmZvcm1lZCBpbiBhCnJlYWQtbW9kaWZ5LXdyaXRl IG1hbm5lci4KCkN1cnJlbnRseSwgaG93ZXZlciwgdGhpcyBpcyBub3QgdGhlIGNhc2UsIGFzIGNh biBiZSBleHBlcmllbmNlZCBieQphZGRpbmcgd2FybmluZ3Mgd2hlbiBDUjQgdXBkYXRlcyBhcmUg cGVyZm9ybWVkIGFuZCBpbnRlcnJ1cHRzIGFyZQplbmFibGVkLiBJdCBhbHNvIGFwcGVhcnMgdGhh dCBDUjQgY2hhbmdlcyB3aXRoIGVuYWJsZWQgaW50ZXJydXB0cyBjYW4gYmUKdHJpZ2dlcmVkIGJ5 IHRoZSB1c2VyIChQUl9TRVRfVFNDKS4KCklmIENSNCB1cGRhdGVzIGFyZSBkb25lIHdoaWxlIGlu dGVycnVwdHMgYXJlIGVuYWJsZWQsIGFuIGludGVycnVwdCBjYW4KYmUgZGVsaXZlcmVkIGJldHdl ZW4gdGhlIENSNCByZWFkIGFuZCB0aGUgY29ycmVzcG9uZGluZyB3cml0ZSBvZiB0aGUKbW9kaWZp ZWQgdmFsdWUgdG8gQ1I0LiBJZiB0aGUgaW50ZXJydXB0IGhhbmRsZXIgY2hhbmdlcyBDUjQsIHRo ZSB3cml0ZQp3b3VsZCBpZ25vcmUgdGhlIG1vZGlmaWVkIHZhbHVlLgoKSXQgaXMgbm90IGNsZWFy IHRoZXJlIGFyZSBjdXJyZW50bHkgaW50ZXJydXB0IGhhbmRsZXJzIHRoYXQgbW9kaWZ5IENSNAph bmQgZG8gbm90IHJlc3RvcmUgaW1tZWRpYXRlbHkgdGhlIG9yaWdpbmFsIHZhbHVlLiBIb3dldmVy LCBhIHJlY2VudApwYXRjaCBjb25zaWRlcmVkIGRvaW5nIGp1c3QgdGhhdC4gUHJldmVudCB0aGUg aXNzdWUgYnk6IGFkZGluZyBhIGRlYnVnCndhcm5pbmcgaWYgQ1I0IGlzIHVwZGF0ZWQgd2l0aCBl bmFibGVkIGludGVycnVwdHM7IGNoYW5naW5nIENSNAptYW5pcHVsYXRpb24gZnVuY3Rpb24gbmFt ZXMgdG8gcmVmbGVjdCB0aGUgZmFjdCB0aGV5IG5lZWQgZGlzYWJsZWQgSVJRcwphbmQgZml4IHRo ZSBjYWxsZXJzLgoKTm90ZSB0aGF0IGluIHNvbWUgY2FzZXMsIGUuZy4sIGt2bV9jcHVfdm14b24o KSwgaXQgYXBwZWFycyB0aGF0IHNhdmluZwphbmQgcmVzdG9yaW5nIHRoZSBJUlFzIGNvdWxkIGhh dmUgYmVlbiBzcGFyZWQuIFlldCwgc2luY2UgdGhlc2UgY2FsbHMgZG8Kbm90IGFwcGVhciB0byBi ZSBvbiB0aGUgaG90IHBhdGgsIHNhdmUgYW5kIHJlc3RvcmUgdGhlIElSUXMgdG8gYmUgb24gdGhl CnNhZmUgc2lkZS4KCkNjOiBBbmR5IEx1dG9taXJza2kgPGx1dG9Aa2VybmVsLm9yZz4KQ2M6IFRo b21hcyBHbGVpeG5lciA8dGdseEBsaW51dHJvbml4LmRlPgpDYzogSW5nbyBNb2xuYXIgPG1pbmdv QHJlZGhhdC5jb20+CkNjOiAiSC4gUGV0ZXIgQW52aW4iIDxocGFAenl0b3IuY29tPgpDYzogeDg2 QGtlcm5lbC5vcmcKQ2M6IFRvbnkgTHVjayA8dG9ueS5sdWNrQGludGVsLmNvbT4KQ2M6IEJvcmlz bGF2IFBldGtvdiA8YnBAYWxpZW44LmRlPgpDYzogUGFvbG8gQm9uemluaSA8cGJvbnppbmlAcmVk aGF0LmNvbT4KQ2M6ICJSYWRpbSBLcsSNbcOhxZkiIDxya3JjbWFyQHJlZGhhdC5jb20+CgpTaWdu ZWQtb2ZmLWJ5OiBOYWRhdiBBbWl0IDxuYW1pdEB2bXdhcmUuY29tPgotLS0KIGFyY2gveDg2L2lu Y2x1ZGUvYXNtL21tdV9jb250ZXh0LmggICB8ICA0ICsrLS0KIGFyY2gveDg2L2luY2x1ZGUvYXNt L3RsYmZsdXNoLmggICAgICB8IDMxICsrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tCiBhcmNo L3g4Ni9pbmNsdWRlL2FzbS92aXJ0ZXh0LmggICAgICAgfCAgMiArLQogYXJjaC94ODYva2VybmVs L2NwdS9jb21tb24uYyAgICAgICAgIHwgMzggKysrKysrKysrKysrKysrKysrKysrKysrKystLS0t LS0tLS0tCiBhcmNoL3g4Ni9rZXJuZWwvY3B1L21jaGVjay9tY2UuYyAgICAgfCAgNSArKysrLQog YXJjaC94ODYva2VybmVsL2NwdS9tY2hlY2svcDUuYyAgICAgIHwgIDYgKysrKystCiBhcmNoL3g4 Ni9rZXJuZWwvY3B1L21jaGVjay93aW5jaGlwLmMgfCAgNSArKysrLQogYXJjaC94ODYva2VybmVs L2ZwdS9pbml0LmMgICAgICAgICAgIHwgIDIgKy0KIGFyY2gveDg2L2tlcm5lbC9mcHUveHN0YXRl LmMgICAgICAgICB8ICA0ICsrLS0KIGFyY2gveDg2L2tlcm5lbC9wcm9jZXNzLmMgICAgICAgICAg ICB8IDIwICsrKysrKysrKysrKysrLS0tLS0KIGFyY2gveDg2L2tlcm5lbC9yZWJvb3QuYyAgICAg ICAgICAgICB8ICAyICstCiBhcmNoL3g4Ni9rdm0vdm14LmMgICAgICAgICAgICAgICAgICAgfCAx MyArKysrKysrKysrLS0KIGFyY2gveDg2L21tL2luaXQuYyAgICAgICAgICAgICAgICAgICB8ICA2 ICsrKysrLQogMTMgZmlsZXMgY2hhbmdlZCwgMTAwIGluc2VydGlvbnMoKyksIDM4IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL21tdV9jb250ZXh0LmggYi9h cmNoL3g4Ni9pbmNsdWRlL2FzbS9tbXVfY29udGV4dC5oCmluZGV4IDY2OTlmYzQ0MTY0NC4uNjM3 Y2JkYTc3ZWRhIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9tbXVfY29udGV4dC5o CisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL21tdV9jb250ZXh0LmgKQEAgLTMwLDkgKzMwLDkg QEAgc3RhdGljIGlubGluZSB2b2lkIGxvYWRfbW1fY3I0KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQog ewogCWlmIChzdGF0aWNfa2V5X2ZhbHNlKCZyZHBtY19hbHdheXNfYXZhaWxhYmxlKSB8fAogCSAg ICBhdG9taWNfcmVhZCgmbW0tPmNvbnRleHQucGVyZl9yZHBtY19hbGxvd2VkKSkKLQkJY3I0X3Nl dF9iaXRzKFg4Nl9DUjRfUENFKTsKKwkJY3I0X3NldF9iaXRzX2lycXNfb2ZmKFg4Nl9DUjRfUENF KTsKIAllbHNlCi0JCWNyNF9jbGVhcl9iaXRzKFg4Nl9DUjRfUENFKTsKKwkJY3I0X2NsZWFyX2Jp dHNfaXJxc19vZmYoWDg2X0NSNF9QQ0UpOwogfQogI2Vsc2UKIHN0YXRpYyBpbmxpbmUgdm9pZCBs b2FkX21tX2NyNChzdHJ1Y3QgbW1fc3RydWN0ICptbSkge30KZGlmZiAtLWdpdCBhL2FyY2gveDg2 L2luY2x1ZGUvYXNtL3RsYmZsdXNoLmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS90bGJmbHVzaC5o CmluZGV4IDUwOTA0NmNmYTVjZS4uOGNlOWQ3YjEwNzkzIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9p bmNsdWRlL2FzbS90bGJmbHVzaC5oCisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL3RsYmZsdXNo LmgKQEAgLTE3Myw0MCArMTczLDQ2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBjcjRfaW5pdF9zaGFk b3codm9pZCkKIAl0aGlzX2NwdV93cml0ZShjcHVfdGxic3RhdGUuY3I0LCBfX3JlYWRfY3I0KCkp OwogfQogCitzdGF0aWMgaW5saW5lIHZvaWQgdXBkYXRlX2NyNCh1bnNpZ25lZCBsb25nIGNyNCkK K3sKKyNpZmRlZiBDT05GSUdfTE9DS0RFUAorCVdBUk5fT04oIWlycXNfZGlzYWJsZWQoKSk7Cisj ZW5kaWYKKwl0aGlzX2NwdV93cml0ZShjcHVfdGxic3RhdGUuY3I0LCBjcjQpOworCV9fd3JpdGVf Y3I0KGNyNCk7Cit9CisKIC8qIFNldCBpbiB0aGlzIGNwdSdzIENSNC4gKi8KLXN0YXRpYyBpbmxp bmUgdm9pZCBjcjRfc2V0X2JpdHModW5zaWduZWQgbG9uZyBtYXNrKQorc3RhdGljIGlubGluZSB2 b2lkIGNyNF9zZXRfYml0c19pcnFzX29mZih1bnNpZ25lZCBsb25nIG1hc2spCiB7CiAJdW5zaWdu ZWQgbG9uZyBjcjQ7CiAKIAljcjQgPSB0aGlzX2NwdV9yZWFkKGNwdV90bGJzdGF0ZS5jcjQpOwog CWlmICgoY3I0IHwgbWFzaykgIT0gY3I0KSB7CiAJCWNyNCB8PSBtYXNrOwotCQl0aGlzX2NwdV93 cml0ZShjcHVfdGxic3RhdGUuY3I0LCBjcjQpOwotCQlfX3dyaXRlX2NyNChjcjQpOworCQl1cGRh dGVfY3I0KGNyNCk7CiAJfQogfQogCiAvKiBDbGVhciBpbiB0aGlzIGNwdSdzIENSNC4gKi8KLXN0 YXRpYyBpbmxpbmUgdm9pZCBjcjRfY2xlYXJfYml0cyh1bnNpZ25lZCBsb25nIG1hc2spCitzdGF0 aWMgaW5saW5lIHZvaWQgY3I0X2NsZWFyX2JpdHNfaXJxc19vZmYodW5zaWduZWQgbG9uZyBtYXNr KQogewogCXVuc2lnbmVkIGxvbmcgY3I0OwogCiAJY3I0ID0gdGhpc19jcHVfcmVhZChjcHVfdGxi c3RhdGUuY3I0KTsKIAlpZiAoKGNyNCAmIH5tYXNrKSAhPSBjcjQpIHsKIAkJY3I0ICY9IH5tYXNr OwotCQl0aGlzX2NwdV93cml0ZShjcHVfdGxic3RhdGUuY3I0LCBjcjQpOwotCQlfX3dyaXRlX2Ny NChjcjQpOworCQl1cGRhdGVfY3I0KGNyNCk7CiAJfQogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQg Y3I0X3RvZ2dsZV9iaXRzKHVuc2lnbmVkIGxvbmcgbWFzaykKK3N0YXRpYyBpbmxpbmUgdm9pZCBj cjRfdG9nZ2xlX2JpdHNfaXJxc19vZmYodW5zaWduZWQgbG9uZyBtYXNrKQogewogCXVuc2lnbmVk IGxvbmcgY3I0OwogCiAJY3I0ID0gdGhpc19jcHVfcmVhZChjcHVfdGxic3RhdGUuY3I0KTsKIAlj cjQgXj0gbWFzazsKLQl0aGlzX2NwdV93cml0ZShjcHVfdGxic3RhdGUuY3I0LCBjcjQpOwotCV9f d3JpdGVfY3I0KGNyNCk7CisJdXBkYXRlX2NyNChjcjQpOwogfQogCiAvKiBSZWFkIHRoZSBDUjQg c2hhZG93LiAqLwpAQCAtMjI2LDEwICsyMzIsMTUgQEAgZXh0ZXJuIHUzMiAqdHJhbXBvbGluZV9j cjRfZmVhdHVyZXM7CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBjcjRfc2V0X2JpdHNfYW5kX3VwZGF0 ZV9ib290KHVuc2lnbmVkIGxvbmcgbWFzaykKIHsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCiAJ bW11X2NyNF9mZWF0dXJlcyB8PSBtYXNrOwogCWlmICh0cmFtcG9saW5lX2NyNF9mZWF0dXJlcykK IAkJKnRyYW1wb2xpbmVfY3I0X2ZlYXR1cmVzID0gbW11X2NyNF9mZWF0dXJlczsKLQljcjRfc2V0 X2JpdHMobWFzayk7CisKKwlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CisJY3I0X3NldF9iaXRzX2ly cXNfb2ZmKG1hc2spOworCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKIH0KIAogZXh0ZXJuIHZv aWQgaW5pdGlhbGl6ZV90bGJzdGF0ZV9hbmRfZmx1c2godm9pZCk7CmRpZmYgLS1naXQgYS9hcmNo L3g4Ni9pbmNsdWRlL2FzbS92aXJ0ZXh0LmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS92aXJ0ZXh0 LmgKaW5kZXggMDExNmIyZWU5ZTY0Li5iNDAzY2E0MTdiN2QgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2 L2luY2x1ZGUvYXNtL3ZpcnRleHQuaAorKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS92aXJ0ZXh0 LmgKQEAgLTQxLDcgKzQxLDcgQEAgc3RhdGljIGlubGluZSBpbnQgY3B1X2hhc192bXgodm9pZCkK IHN0YXRpYyBpbmxpbmUgdm9pZCBjcHVfdm14b2ZmKHZvaWQpCiB7CiAJYXNtIHZvbGF0aWxlIChB U01fVk1YX1ZNWE9GRiA6IDogOiAiY2MiKTsKLQljcjRfY2xlYXJfYml0cyhYODZfQ1I0X1ZNWEUp OworCWNyNF9jbGVhcl9iaXRzX2lycXNfb2ZmKFg4Nl9DUjRfVk1YRSk7CiB9CiAKIHN0YXRpYyBp bmxpbmUgaW50IGNwdV92bXhfZW5hYmxlZCh2b2lkKQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2Vy bmVsL2NwdS9jb21tb24uYyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvY29tbW9uLmMKaW5kZXggYzkx NzZiYWU3ZmQ4Li5mMzE4OTA3ODdkMDEgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9jcHUv Y29tbW9uLmMKKysrIGIvYXJjaC94ODYva2VybmVsL2NwdS9jb21tb24uYwpAQCAtMzAyLDggKzMw MiwxNCBAQCBfX3NldHVwKCJub3NtZXAiLCBzZXR1cF9kaXNhYmxlX3NtZXApOwogCiBzdGF0aWMg X19hbHdheXNfaW5saW5lIHZvaWQgc2V0dXBfc21lcChzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCiB7 Ci0JaWYgKGNwdV9oYXMoYywgWDg2X0ZFQVRVUkVfU01FUCkpCi0JCWNyNF9zZXRfYml0cyhYODZf Q1I0X1NNRVApOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlpZiAoIWNwdV9oYXMoYywgWDg2 X0ZFQVRVUkVfU01FUCkpCisJCXJldHVybjsKKworCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKKwlj cjRfc2V0X2JpdHNfaXJxc19vZmYoWDg2X0NSNF9TTUVQKTsKKwlsb2NhbF9pcnFfcmVzdG9yZShm bGFncyk7CiB9CiAKIHN0YXRpYyBfX2luaXQgaW50IHNldHVwX2Rpc2FibGVfc21hcChjaGFyICph cmcpCkBAIC0zMjAsMTMgKzMyNiwxNiBAQCBzdGF0aWMgX19hbHdheXNfaW5saW5lIHZvaWQgc2V0 dXBfc21hcChzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCiAJLyogVGhpcyBzaG91bGQgaGF2ZSBiZWVu IGNsZWFyZWQgbG9uZyBhZ28gKi8KIAlCVUdfT04oZWZsYWdzICYgWDg2X0VGTEFHU19BQyk7CiAK LQlpZiAoY3B1X2hhcyhjLCBYODZfRkVBVFVSRV9TTUFQKSkgeworCWlmICghY3B1X2hhcyhjLCBY ODZfRkVBVFVSRV9TTUFQKSkKKwkJcmV0dXJuOworCisJbG9jYWxfaXJxX3NhdmUoZWZsYWdzKTsK ICNpZmRlZiBDT05GSUdfWDg2X1NNQVAKLQkJY3I0X3NldF9iaXRzKFg4Nl9DUjRfU01BUCk7CisJ Y3I0X3NldF9iaXRzX2lycXNfb2ZmKFg4Nl9DUjRfU01BUCk7CiAjZWxzZQotCQljcjRfY2xlYXJf Yml0cyhYODZfQ1I0X1NNQVApOworCWNyNF9jbGVhcl9iaXRzX2lycXNfb2ZmKFg4Nl9DUjRfU01B UCk7CiAjZW5kaWYKLQl9CisJbG9jYWxfaXJxX3Jlc3RvcmUoZWZsYWdzKTsKIH0KIAogLyoKQEAg LTMzNiw2ICszNDUsOCBAQCBzdGF0aWMgYm9vbCBwa3VfZGlzYWJsZWQ7CiAKIHN0YXRpYyBfX2Fs d2F5c19pbmxpbmUgdm9pZCBzZXR1cF9wa3Uoc3RydWN0IGNwdWluZm9feDg2ICpjKQogeworCXVu c2lnbmVkIGxvbmcgZmxhZ3M7CisKIAkvKiBjaGVjayB0aGUgYm9vdCBwcm9jZXNzb3IsIHBsdXMg Y29tcGlsZSBvcHRpb25zIGZvciBQS1U6ICovCiAJaWYgKCFjcHVfZmVhdHVyZV9lbmFibGVkKFg4 Nl9GRUFUVVJFX1BLVSkpCiAJCXJldHVybjsKQEAgLTM0NSw3ICszNTYsMTAgQEAgc3RhdGljIF9f YWx3YXlzX2lubGluZSB2b2lkIHNldHVwX3BrdShzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCiAJaWYg KHBrdV9kaXNhYmxlZCkKIAkJcmV0dXJuOwogCi0JY3I0X3NldF9iaXRzKFg4Nl9DUjRfUEtFKTsK Kwlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CisJY3I0X3NldF9iaXRzX2lycXNfb2ZmKFg4Nl9DUjRf UEtFKTsKKwlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CisKIAkvKgogCSAqIFNldGluZyBYODZf Q1I0X1BLRSB3aWxsIGNhdXNlIHRoZSBYODZfRkVBVFVSRV9PU1BLRQogCSAqIGNwdWlkIGJpdCB0 byBiZSBzZXQuICBXZSBuZWVkIHRvIGVuc3VyZSB0aGF0IHdlCkBAIC0xMTQ3LDcgKzExNjEsMTAg QEAgc3RhdGljIHZvaWQgaWRlbnRpZnlfY3B1KHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKIAkvKiBE aXNhYmxlIHRoZSBQTiBpZiBhcHByb3ByaWF0ZSAqLwogCXNxdWFzaF90aGVfc3R1cGlkX3Nlcmlh bF9udW1iZXIoYyk7CiAKLQkvKiBTZXQgdXAgU01FUC9TTUFQICovCisJLyoKKwkgKiBTZXQgdXAg U01FUC9TTUFQLiBEaXNhYmxlIGludGVycnVwdHMgdG8gcHJldmVudCB0cmlnZ2VyaW5nIGEgd2Fy bmluZworCSAqIGFzIENSNCBjaGFuZ2VzIG11c3QgYmUgZG9uZSB3aXRoIGRpc2FibGVkIGludGVy cnVwdHMuCisJICovCiAJc2V0dXBfc21lcChjKTsKIAlzZXR1cF9zbWFwKGMpOwogCkBAIC0xNTIw LDcgKzE1MzcsNyBAQCB2b2lkIGNwdV9pbml0KHZvaWQpCiAKIAlwcl9kZWJ1ZygiSW5pdGlhbGl6 aW5nIENQVSMlZFxuIiwgY3B1KTsKIAotCWNyNF9jbGVhcl9iaXRzKFg4Nl9DUjRfVk1FfFg4Nl9D UjRfUFZJfFg4Nl9DUjRfVFNEfFg4Nl9DUjRfREUpOworCWNyNF9jbGVhcl9iaXRzX2lycXNfb2Zm KFg4Nl9DUjRfVk1FfFg4Nl9DUjRfUFZJfFg4Nl9DUjRfVFNEfFg4Nl9DUjRfREUpOwogCiAJLyoK IAkgKiBJbml0aWFsaXplIHRoZSBwZXItQ1BVIEdEVCB3aXRoIHRoZSBib290IEdEVCwKQEAgLTE2 MTMsNyArMTYzMCw4IEBAIHZvaWQgY3B1X2luaXQodm9pZCkKIAlpZiAoY3B1X2ZlYXR1cmVfZW5h YmxlZChYODZfRkVBVFVSRV9WTUUpIHx8CiAJICAgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9U U0MpIHx8CiAJICAgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9ERSkpCi0JCWNyNF9jbGVhcl9i aXRzKFg4Nl9DUjRfVk1FfFg4Nl9DUjRfUFZJfFg4Nl9DUjRfVFNEfFg4Nl9DUjRfREUpOworCQlj cjRfY2xlYXJfYml0c19pcnFzX29mZihYODZfQ1I0X1ZNRXxYODZfQ1I0X1BWSXxYODZfQ1I0X1RT RHwKKwkJCQkJWDg2X0NSNF9ERSk7CiAKIAlsb2FkX2N1cnJlbnRfaWR0KCk7CiAJc3dpdGNoX3Rv X25ld19nZHQoY3B1KTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9jcHUvbWNoZWNrL21j ZS5jIGIvYXJjaC94ODYva2VybmVsL2NwdS9tY2hlY2svbWNlLmMKaW5kZXggM2I0MTMwNjVjNjEz Li4xYWFjMTk2ZWIxNDUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9jcHUvbWNoZWNrL21j ZS5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvbWNoZWNrL21jZS5jCkBAIC0xNTA4LDYgKzE1 MDgsNyBAQCBzdGF0aWMgdm9pZCBfX21jaGVja19jcHVfaW5pdF9nZW5lcmljKHZvaWQpCiB7CiAJ ZW51bSBtY3BfZmxhZ3MgbV9mbCA9IDA7CiAJbWNlX2JhbmtzX3QgYWxsX2JhbmtzOworCXVuc2ln bmVkIGxvbmcgZmxhZ3M7CiAJdTY0IGNhcDsKIAogCWlmICghbWNhX2NmZy5ib290bG9nKQpAQCAt MTUxOSw3ICsxNTIwLDkgQEAgc3RhdGljIHZvaWQgX19tY2hlY2tfY3B1X2luaXRfZ2VuZXJpYyh2 b2lkKQogCWJpdG1hcF9maWxsKGFsbF9iYW5rcywgTUFYX05SX0JBTktTKTsKIAltYWNoaW5lX2No ZWNrX3BvbGwoTUNQX1VDIHwgbV9mbCwgJmFsbF9iYW5rcyk7CiAKLQljcjRfc2V0X2JpdHMoWDg2 X0NSNF9NQ0UpOworCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKKwljcjRfc2V0X2JpdHNfaXJxc19v ZmYoWDg2X0NSNF9NQ0UpOworCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKIAogCXJkbXNybChN U1JfSUEzMl9NQ0dfQ0FQLCBjYXApOwogCWlmIChjYXAgJiBNQ0dfQ1RMX1ApCmRpZmYgLS1naXQg YS9hcmNoL3g4Ni9rZXJuZWwvY3B1L21jaGVjay9wNS5jIGIvYXJjaC94ODYva2VybmVsL2NwdS9t Y2hlY2svcDUuYwppbmRleCA1Y2RkZjgzMTcyMGYuLmU0YmI5NTczY2ZlNSAxMDA2NDQKLS0tIGEv YXJjaC94ODYva2VybmVsL2NwdS9tY2hlY2svcDUuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1 L21jaGVjay9wNS5jCkBAIC00Myw2ICs0Myw3IEBAIHN0YXRpYyB2b2lkIHBlbnRpdW1fbWFjaGlu ZV9jaGVjayhzdHJ1Y3QgcHRfcmVncyAqcmVncywgbG9uZyBlcnJvcl9jb2RlKQogLyogU2V0IHVw IG1hY2hpbmUgY2hlY2sgcmVwb3J0aW5nIGZvciBwcm9jZXNzb3JzIHdpdGggSW50ZWwgc3R5bGUg TUNFOiAqLwogdm9pZCBpbnRlbF9wNV9tY2hlY2tfaW5pdChzdHJ1Y3QgY3B1aW5mb194ODYgKmMp CiB7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKIAl1MzIgbCwgaDsKIAogCS8qIERlZmF1bHQgUDUg dG8gb2ZmIGFzIGl0cyBvZnRlbiBtaXNjb25uZWN0ZWQ6ICovCkBAIC02Myw3ICs2NCwxMCBAQCB2 b2lkIGludGVsX3A1X21jaGVja19pbml0KHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKIAlwcl9pbmZv KCJJbnRlbCBvbGQgc3R5bGUgbWFjaGluZSBjaGVjayBhcmNoaXRlY3R1cmUgc3VwcG9ydGVkLlxu Iik7CiAKIAkvKiBFbmFibGUgTUNFOiAqLwotCWNyNF9zZXRfYml0cyhYODZfQ1I0X01DRSk7CisJ bG9jYWxfaXJxX3NhdmUoZmxhZ3MpOworCWNyNF9zZXRfYml0c19pcnFzX29mZihYODZfQ1I0X01D RSk7CisJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworCiAJcHJfaW5mbygiSW50ZWwgb2xkIHN0 eWxlIG1hY2hpbmUgY2hlY2sgcmVwb3J0aW5nIGVuYWJsZWQgb24gQ1BVIyVkLlxuIiwKIAkJc21w X3Byb2Nlc3Nvcl9pZCgpKTsKIH0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9jcHUvbWNo ZWNrL3dpbmNoaXAuYyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvbWNoZWNrL3dpbmNoaXAuYwppbmRl eCAzYjQ1YjI3MGE4NjUuLjcyMjEzZDc1Yzg2NSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVs L2NwdS9tY2hlY2svd2luY2hpcC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvbWNoZWNrL3dp bmNoaXAuYwpAQCAtMjcsNiArMjcsNyBAQCBzdGF0aWMgdm9pZCB3aW5jaGlwX21hY2hpbmVfY2hl Y2soc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIGxvbmcgZXJyb3JfY29kZSkKIC8qIFNldCB1cCBtYWNo aW5lIGNoZWNrIHJlcG9ydGluZyBvbiB0aGUgV2luY2hpcCBDNiBzZXJpZXMgKi8KIHZvaWQgd2lu Y2hpcF9tY2hlY2tfaW5pdChzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCiB7CisJdW5zaWduZWQgbG9u ZyBmbGFnczsKIAl1MzIgbG8sIGhpOwogCiAJbWFjaGluZV9jaGVja192ZWN0b3IgPSB3aW5jaGlw X21hY2hpbmVfY2hlY2s7CkBAIC0zOCw3ICszOSw5IEBAIHZvaWQgd2luY2hpcF9tY2hlY2tfaW5p dChzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCiAJbG8gJj0gfigxPDw0KTsJLyogRW5hYmxlIE1DRSAq LwogCXdybXNyKE1TUl9JRFRfRkNSMSwgbG8sIGhpKTsKIAotCWNyNF9zZXRfYml0cyhYODZfQ1I0 X01DRSk7CisJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOworCWNyNF9zZXRfYml0c19pcnFzX29mZihY ODZfQ1I0X01DRSk7CisJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOwogCiAJcHJfaW5mbygiV2lu Y2hpcCBtYWNoaW5lIGNoZWNrIHJlcG9ydGluZyBlbmFibGVkIG9uIENQVSMwLlxuIik7CiB9CmRp ZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvZnB1L2luaXQuYyBiL2FyY2gveDg2L2tlcm5lbC9m cHUvaW5pdC5jCmluZGV4IDdhZmZiN2UzZDlhNS4uZGI1N2IyMTdlMTIzIDEwMDY0NAotLS0gYS9h cmNoL3g4Ni9rZXJuZWwvZnB1L2luaXQuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvZnB1L2luaXQu YwpAQCAtMjMsNyArMjMsNyBAQCBzdGF0aWMgdm9pZCBmcHVfX2luaXRfY3B1X2dlbmVyaWModm9p ZCkKIAlpZiAoYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX1hNTSkpCiAJCWNyNF9tYXNrIHw9IFg4 Nl9DUjRfT1NYTU1FWENQVDsKIAlpZiAoY3I0X21hc2spCi0JCWNyNF9zZXRfYml0cyhjcjRfbWFz ayk7CisJCWNyNF9zZXRfYml0c19pcnFzX29mZihjcjRfbWFzayk7CiAKIAljcjAgPSByZWFkX2Ny MCgpOwogCWNyMCAmPSB+KFg4Nl9DUjBfVFN8WDg2X0NSMF9FTSk7IC8qIGNsZWFyIFRTIGFuZCBF TSAqLwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2ZwdS94c3RhdGUuYyBiL2FyY2gveDg2 L2tlcm5lbC9mcHUveHN0YXRlLmMKaW5kZXggZjFkNTQ3NmM5MDIyLi45ZDNjN2ExYTRjZTUgMTAw NjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9mcHUveHN0YXRlLmMKKysrIGIvYXJjaC94ODYva2Vy bmVsL2ZwdS94c3RhdGUuYwpAQCAtMjM3LDcgKzIzNyw3IEBAIHZvaWQgZnB1X19pbml0X2NwdV94 c3RhdGUodm9pZCkKIAogCXhmZWF0dXJlc19tYXNrICY9IH5YRkVBVFVSRV9NQVNLX1NVUEVSVklT T1I7CiAKLQljcjRfc2V0X2JpdHMoWDg2X0NSNF9PU1hTQVZFKTsKKwljcjRfc2V0X2JpdHNfaXJx c19vZmYoWDg2X0NSNF9PU1hTQVZFKTsKIAl4c2V0YnYoWENSX1hGRUFUVVJFX0VOQUJMRURfTUFT SywgeGZlYXR1cmVzX21hc2spOwogfQogCkBAIC03MTMsNyArNzEzLDcgQEAgc3RhdGljIGludCBp bml0X3hzdGF0ZV9zaXplKHZvaWQpCiBzdGF0aWMgdm9pZCBmcHVfX2luaXRfZGlzYWJsZV9zeXN0 ZW1feHN0YXRlKHZvaWQpCiB7CiAJeGZlYXR1cmVzX21hc2sgPSAwOwotCWNyNF9jbGVhcl9iaXRz KFg4Nl9DUjRfT1NYU0FWRSk7CisJY3I0X2NsZWFyX2JpdHNfaXJxc19vZmYoWDg2X0NSNF9PU1hT QVZFKTsKIAlmcHVfX3hzdGF0ZV9jbGVhcl9hbGxfY3B1X2NhcHMoKTsKIH0KIApkaWZmIC0tZ2l0 IGEvYXJjaC94ODYva2VybmVsL3Byb2Nlc3MuYyBiL2FyY2gveDg2L2tlcm5lbC9wcm9jZXNzLmMK aW5kZXggYzY3Njg1MzM3YzVhLi40MTIyNjVmZTE0ZGYgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tl cm5lbC9wcm9jZXNzLmMKKysrIGIvYXJjaC94ODYva2VybmVsL3Byb2Nlc3MuYwpAQCAtMTI4LDI1 ICsxMjgsMzUgQEAgdm9pZCBmbHVzaF90aHJlYWQodm9pZCkKIAogdm9pZCBkaXNhYmxlX1RTQyh2 b2lkKQogeworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKIAlwcmVlbXB0X2Rpc2FibGUoKTsKLQlp ZiAoIXRlc3RfYW5kX3NldF90aHJlYWRfZmxhZyhUSUZfTk9UU0MpKQorCWlmICghdGVzdF9hbmRf c2V0X3RocmVhZF9mbGFnKFRJRl9OT1RTQykpIHsKIAkJLyoKIAkJICogTXVzdCBmbGlwIHRoZSBD UFUgc3RhdGUgc3luY2hyb25vdXNseSB3aXRoCiAJCSAqIFRJRl9OT1RTQyBpbiB0aGUgY3VycmVu dCBydW5uaW5nIGNvbnRleHQuCiAJCSAqLwotCQljcjRfc2V0X2JpdHMoWDg2X0NSNF9UU0QpOwor CQlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CisJCWNyNF9zZXRfYml0c19pcnFzX29mZihYODZfQ1I0 X1RTRCk7CisJCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKKwl9CiAJcHJlZW1wdF9lbmFibGUo KTsKIH0KIAogc3RhdGljIHZvaWQgZW5hYmxlX1RTQyh2b2lkKQogeworCXVuc2lnbmVkIGxvbmcg ZmxhZ3M7CisKIAlwcmVlbXB0X2Rpc2FibGUoKTsKLQlpZiAodGVzdF9hbmRfY2xlYXJfdGhyZWFk X2ZsYWcoVElGX05PVFNDKSkKKwlpZiAodGVzdF9hbmRfY2xlYXJfdGhyZWFkX2ZsYWcoVElGX05P VFNDKSkgewogCQkvKgogCQkgKiBNdXN0IGZsaXAgdGhlIENQVSBzdGF0ZSBzeW5jaHJvbm91c2x5 IHdpdGgKIAkJICogVElGX05PVFNDIGluIHRoZSBjdXJyZW50IHJ1bm5pbmcgY29udGV4dC4KIAkJ ICovCi0JCWNyNF9jbGVhcl9iaXRzKFg4Nl9DUjRfVFNEKTsKKwkJbG9jYWxfaXJxX3NhdmUoZmxh Z3MpOworCQljcjRfY2xlYXJfYml0c19pcnFzX29mZihYODZfQ1I0X1RTRCk7CisJCWxvY2FsX2ly cV9yZXN0b3JlKGZsYWdzKTsKKwl9CiAJcHJlZW1wdF9lbmFibGUoKTsKIH0KIApAQCAtMjkzLDcg KzMwMyw3IEBAIHZvaWQgX19zd2l0Y2hfdG9feHRyYShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnByZXZf cCwgc3RydWN0IHRhc2tfc3RydWN0ICpuZXh0X3AsCiAJfQogCiAJaWYgKCh0aWZwIF4gdGlmbikg JiBfVElGX05PVFNDKQotCQljcjRfdG9nZ2xlX2JpdHMoWDg2X0NSNF9UU0QpOworCQljcjRfdG9n Z2xlX2JpdHNfaXJxc19vZmYoWDg2X0NSNF9UU0QpOwogCiAJaWYgKCh0aWZwIF4gdGlmbikgJiBf VElGX05PQ1BVSUQpCiAJCXNldF9jcHVpZF9mYXVsdGluZyghISh0aWZuICYgX1RJRl9OT0NQVUlE KSk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvcmVib290LmMgYi9hcmNoL3g4Ni9rZXJu ZWwvcmVib290LmMKaW5kZXggMjEyNmI5ZDI3YzM0Li44NmFkNzBjMDI2MDcgMTAwNjQ0Ci0tLSBh L2FyY2gveDg2L2tlcm5lbC9yZWJvb3QuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvcmVib290LmMK QEAgLTEwOSw3ICsxMDksNyBAQCB2b2lkIF9fbm9yZXR1cm4gbWFjaGluZV9yZWFsX3Jlc3RhcnQo dW5zaWduZWQgaW50IHR5cGUpCiAKIAkvKiBFeGl0aW5nIGxvbmcgbW9kZSB3aWxsIGZhaWwgaWYg Q1I0LlBDSURFIGlzIHNldC4gKi8KIAlpZiAoc3RhdGljX2NwdV9oYXMoWDg2X0ZFQVRVUkVfUENJ RCkpCi0JCWNyNF9jbGVhcl9iaXRzKFg4Nl9DUjRfUENJREUpOworCQljcjRfY2xlYXJfYml0c19p cnFzX29mZihYODZfQ1I0X1BDSURFKTsKICNlbmRpZgogCiAJLyogSnVtcCB0byB0aGUgaWRlbnRp dHktbWFwcGVkIGxvdyBtZW1vcnkgY29kZSAqLwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3Zt eC5jIGIvYXJjaC94ODYva3ZtL3ZteC5jCmluZGV4IGE2ZjRmMDk1ZjhmNC4uYTBiMzg3ZGZiZjVj IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rdm0vdm14LmMKKysrIGIvYXJjaC94ODYva3ZtL3ZteC5j CkBAIC0zNTAwLDcgKzM1MDAsMTIgQEAgc3RhdGljIF9faW5pdCBpbnQgdm14X2Rpc2FibGVkX2J5 X2Jpb3Modm9pZCkKIAogc3RhdGljIHZvaWQga3ZtX2NwdV92bXhvbih1NjQgYWRkcikKIHsKLQlj cjRfc2V0X2JpdHMoWDg2X0NSNF9WTVhFKTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJbG9j YWxfaXJxX3NhdmUoZmxhZ3MpOworCWNyNF9zZXRfYml0c19pcnFzX29mZihYODZfQ1I0X1ZNWEUp OworCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKKwogCWludGVsX3B0X2hhbmRsZV92bXgoMSk7 CiAKIAlhc20gdm9sYXRpbGUgKEFTTV9WTVhfVk1YT05fUkFYCkBAIC0zNTY1LDEwICszNTcwLDE0 IEBAIHN0YXRpYyB2b2lkIHZtY2xlYXJfbG9jYWxfbG9hZGVkX3ZtY3NzKHZvaWQpCiAgKi8KIHN0 YXRpYyB2b2lkIGt2bV9jcHVfdm14b2ZmKHZvaWQpCiB7CisJdW5zaWduZWQgbG9uZyBmbGFnczsK KwogCWFzbSB2b2xhdGlsZSAoX19leChBU01fVk1YX1ZNWE9GRikgOiA6IDogImNjIik7CiAKIAlp bnRlbF9wdF9oYW5kbGVfdm14KDApOwotCWNyNF9jbGVhcl9iaXRzKFg4Nl9DUjRfVk1YRSk7CisJ bG9jYWxfaXJxX3NhdmUoZmxhZ3MpOworCWNyNF9jbGVhcl9iaXRzX2lycXNfb2ZmKFg4Nl9DUjRf Vk1YRSk7CisJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOwogfQogCiBzdGF0aWMgdm9pZCBoYXJk d2FyZV9kaXNhYmxlKHZvaWQpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tbS9pbml0LmMgYi9hcmNo L3g4Ni9tbS9pbml0LmMKaW5kZXggYWY1YzFlZDIxZDQzLi5kZGQyNDhhY2FiOGUgMTAwNjQ0Ci0t LSBhL2FyY2gveDg2L21tL2luaXQuYworKysgYi9hcmNoL3g4Ni9tbS9pbml0LmMKQEAgLTE5OSw2 ICsxOTksOCBAQCBzdGF0aWMgdm9pZCBzZXR1cF9wY2lkKHZvaWQpCiAjaWZkZWYgQ09ORklHX1g4 Nl82NAogCWlmIChib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfUENJRCkpIHsKIAkJaWYgKGJvb3Rf Y3B1X2hhcyhYODZfRkVBVFVSRV9QR0UpKSB7CisJCQl1bnNpZ25lZCBsb25nIGZsYWdzOworCiAJ CQkvKgogCQkJICogVGhpcyBjYW4ndCBiZSBjcjRfc2V0X2JpdHNfYW5kX3VwZGF0ZV9ib290KCkg LS0KIAkJCSAqIHRoZSB0cmFtcG9saW5lIGNvZGUgY2FuJ3QgaGFuZGxlIENSNC5QQ0lERSBhbmQK QEAgLTIxMCw3ICsyMTIsOSBAQCBzdGF0aWMgdm9pZCBzZXR1cF9wY2lkKHZvaWQpCiAJCQkgKiBJ bnN0ZWFkLCB3ZSBicnV0ZS1mb3JjZSBpdCBhbmQgc2V0IENSNC5QQ0lERQogCQkJICogbWFudWFs bHkgaW4gc3RhcnRfc2Vjb25kYXJ5KCkuCiAJCQkgKi8KLQkJCWNyNF9zZXRfYml0cyhYODZfQ1I0 X1BDSURFKTsKKwkJCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKKwkJCWNyNF9zZXRfYml0c19pcnFz X29mZihYODZfQ1I0X1BDSURFKTsKKwkJCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKIAkJfSBl bHNlIHsKIAkJCS8qCiAJCQkgKiBmbHVzaF90bGJfYWxsKCksIGFzIGN1cnJlbnRseSBpbXBsZW1l bnRlZCwgd29uJ3QK