From: Thomas Garnier Subject: [PATCH v1 19/27] x86: Support global stack cookie Date: Wed, 11 Oct 2017 13:30:19 -0700 Message-ID: <20171011203027.11248-20-thgarnie@google.com> References: <20171011203027.11248-1-thgarnie@google.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: linux-arch@vger.kernel.org, kvm@vger.kernel.org, linux-pm@vger.kernel.org, x86@kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, virtualization@lists.linux-foundation.org, linux-sparse@vger.kernel.org, linux-crypto@vger.kernel.org, kernel-hardening@lists.openwall.com, xen-devel@lists.xenproject.org To: Herbert Xu , "David S . Miller" , Thomas Gleixner , Ingo Molnar , "H . Peter Anvin" , Peter Zijlstra , Josh Poimboeuf , Arnd Bergmann , Thomas Garnier , Kees Cook , Andrey Ryabinin , Matthias Kaehlcke , Tom Lendacky , Andy Lutomirski , "Kirill A . Shutemov" , Borislav Petkov , "Rafael J . Wysocki" , Len Brown , Pavel Machek , Juergen Gross , Chris Wright , Alok Kataria , Rusty Russell , Tejun Heo In-Reply-To: <20171011203027.11248-1-thgarnie@google.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" List-Id: linux-crypto.vger.kernel.org QWRkIGFuIG9mZi1ieS1kZWZhdWx0IGNvbmZpZ3VyYXRpb24gb3B0aW9uIHRvIHVzZSBhIGdsb2Jh bCBzdGFjayBjb29raWUKaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBUTFMuIFRoaXMgY29uZmlndXJh dGlvbiBvcHRpb24gd2lsbCBvbmx5IGJlIHVzZWQKd2l0aCBQSUUgYmluYXJpZXMuCgpGb3Iga2Vy bmVsIHN0YWNrIGNvb2tpZSwgdGhlIGNvbXBpbGVyIHVzZXMgdGhlIG1jbW9kZWw9a2VybmVsIHRv IHN3aXRjaApiZXR3ZWVuIHRoZSBmcyBzZWdtZW50IHRvIGdzIHNlZ21lbnQuIEEgUElFIGJpbmFy eSBkb2VzIG5vdCB1c2UKbWNtb2RlbD1rZXJuZWwgYmVjYXVzZSBpdCBjYW4gYmUgcmVsb2NhdGVk IGFueXdoZXJlLCB0aGVyZWZvcmUgdGhlCmNvbXBpbGVyIHdpbGwgZGVmYXVsdCB0byB0aGUgZnMg c2VnbWVudCByZWdpc3Rlci4gVGhpcyBpcyBnb2luZyB0byBiZQpmaXhlZCB3aXRoIGEgY29tcGls ZXIgY2hhbmdlIGFsbG93aW5nIHRvIHBpY2sgdGhlIHNlZ21lbnQgcmVnaXN0ZXIgYXMKZG9uZSBv biBQb3dlclBDLiBJbiB0aGUgbWVhbnRpbWUsIHRoaXMgY29uZmlndXJhdGlvbiBjYW4gYmUgdXNl ZCB0bwpzdXBwb3J0IG9sZGVyIGNvbXBpbGVycy4KClNpZ25lZC1vZmYtYnk6IFRob21hcyBHYXJu aWVyIDx0aGdhcm5pZUBnb29nbGUuY29tPgotLS0KIGFyY2gveDg2L0tjb25maWcgICAgICAgICAg ICAgICAgICAgICAgfCAxMSArKysrKysrKysrKwogYXJjaC94ODYvTWFrZWZpbGUgICAgICAgICAg ICAgICAgICAgICB8ICA5ICsrKysrKysrKwogYXJjaC94ODYvZW50cnkvZW50cnlfMzIuUyAgICAg ICAgICAgICB8ICAzICsrLQogYXJjaC94ODYvZW50cnkvZW50cnlfNjQuUyAgICAgICAgICAgICB8 ICAzICsrLQogYXJjaC94ODYvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmggICAgICB8ICAzICsrLQog YXJjaC94ODYvaW5jbHVkZS9hc20vc3RhY2twcm90ZWN0b3IuaCB8IDE5ICsrKysrKysrKysrKysr LS0tLS0KIGFyY2gveDg2L2tlcm5lbC9hc20tb2Zmc2V0cy5jICAgICAgICAgfCAgMyArKy0KIGFy Y2gveDg2L2tlcm5lbC9hc20tb2Zmc2V0c18zMi5jICAgICAgfCAgMyArKy0KIGFyY2gveDg2L2tl cm5lbC9hc20tb2Zmc2V0c182NC5jICAgICAgfCAgMyArKy0KIGFyY2gveDg2L2tlcm5lbC9jcHUv Y29tbW9uLmMgICAgICAgICAgfCAgMyArKy0KIGFyY2gveDg2L2tlcm5lbC9oZWFkXzMyLlMgICAg ICAgICAgICAgfCAgMyArKy0KIGFyY2gveDg2L2tlcm5lbC9wcm9jZXNzLmMgICAgICAgICAgICAg fCAgNSArKysrKwogMTIgZmlsZXMgY2hhbmdlZCwgNTUgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvS2NvbmZpZyBiL2FyY2gveDg2L0tjb25maWcK aW5kZXggMDYzZjFlMGQ1MWFhLi43NzJmZjNlMGY2MjMgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L0tj b25maWcKKysrIGIvYXJjaC94ODYvS2NvbmZpZwpAQCAtMjEzMyw2ICsyMTMzLDE3IEBAIGNvbmZp ZyBSQU5ET01JWkVfTUVNT1JZX1BIWVNJQ0FMX1BBRERJTkcKIAogCSAgIElmIHVuc3VyZSwgbGVh dmUgYXQgdGhlIGRlZmF1bHQgdmFsdWUuCiAKK2NvbmZpZyBYODZfR0xPQkFMX1NUQUNLUFJPVEVD VE9SCisJYm9vbCAiU3RhY2sgY29va2llIHVzaW5nIGEgZ2xvYmFsIHZhcmlhYmxlIgorCXNlbGVj dCBDQ19TVEFDS1BST1RFQ1RPUgorCS0tLWhlbHAtLS0KKwkgICBUaGlzIG9wdGlvbiB0dXJucyBv biB0aGUgInN0YWNrLXByb3RlY3RvciIgR0NDIGZlYXR1cmUgdXNpbmcgYSBnbG9iYWwKKwkgICB2 YXJpYWJsZSBpbnN0ZWFkIG9mIGEgc2VnbWVudCByZWdpc3Rlci4gSXQgaXMgdXNlZnVsIHdoZW4g dGhlCisJICAgY29tcGlsZXIgZG9lcyBub3Qgc3VwcG9ydCBjdXN0b20gc2VnbWVudCByZWdpc3Rl cnMgd2hlbiBidWlsZGluZyBhCisJICAgcG9zaXRpb24gaW5kZXBlbmRlbnQgKFBJRSkgYmluYXJ5 LgorCisJICAgSWYgdW5zdXJlLCBzYXkgTgorCiBjb25maWcgSE9UUExVR19DUFUKIAlib29sICJT dXBwb3J0IGZvciBob3QtcGx1Z2dhYmxlIENQVXMiCiAJZGVwZW5kcyBvbiBTTVAKZGlmZiAtLWdp dCBhL2FyY2gveDg2L01ha2VmaWxlIGIvYXJjaC94ODYvTWFrZWZpbGUKaW5kZXggNjI3NjU3MjI1 OWM4Li5kZTIyODIwMGVmMmEgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L01ha2VmaWxlCisrKyBiL2Fy Y2gveDg2L01ha2VmaWxlCkBAIC0xNDEsNiArMTQxLDE1IEBAIGVsc2UKICAgICAgICAgS0JVSUxE X0NGTEFHUyArPSAkKGNhbGwgY2Mtb3B0aW9uLC1mdW5pdC1hdC1hLXRpbWUpCiBlbmRpZgogCitp ZmRlZiBDT05GSUdfWDg2X0dMT0JBTF9TVEFDS1BST1RFQ1RPUgorICAgICAgICBpZmVxICgkKGNh bGwgY2Mtb3B0aW9uLCAtbXN0YWNrLXByb3RlY3Rvci1ndWFyZD1nbG9iYWwpLCkKKyAgICAgICAg ICAgICAgICAkKGVycm9yIENhbm5vdCB1c2UgQ09ORklHX1g4Nl9HTE9CQUxfU1RBQ0tQUk9URUNU T1I6IFwKKyAgICAgICAgICAgICAgICAgICAgICAgIC1tc3RhY2stcHJvdGVjdG9yLWd1YXJkPWds b2JhbCBub3Qgc3VwcG9ydGVkIFwKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ5IGNvbXBpbGVy KQorICAgICAgICBlbmRpZgorICAgICAgICBLQlVJTERfQ0ZMQUdTICs9IC1tc3RhY2stcHJvdGVj dG9yLWd1YXJkPWdsb2JhbAorZW5kaWYKKwogaWZkZWYgQ09ORklHX1g4Nl9YMzIKIAl4MzJfbGRf b2sgOj0gJChjYWxsIHRyeS1ydW4sXAogCQkJL2Jpbi9lY2hvIC1lICcxOiAucXVhZCAxYicgfCBc CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9lbnRyeS9lbnRyeV8zMi5TIGIvYXJjaC94ODYvZW50cnkv ZW50cnlfMzIuUwppbmRleCA4YTEzZDQ2ODYzNWEuLmFiM2U1MDU2NzIyZiAxMDA2NDQKLS0tIGEv YXJjaC94ODYvZW50cnkvZW50cnlfMzIuUworKysgYi9hcmNoL3g4Ni9lbnRyeS9lbnRyeV8zMi5T CkBAIC0yMzcsNyArMjM3LDggQEAgRU5UUlkoX19zd2l0Y2hfdG9fYXNtKQogCW1vdmwJJWVzcCwg VEFTS190aHJlYWRzcCglZWF4KQogCW1vdmwJVEFTS190aHJlYWRzcCglZWR4KSwgJWVzcAogCi0j aWZkZWYgQ09ORklHX0NDX1NUQUNLUFJPVEVDVE9SCisjaWYgZGVmaW5lZChDT05GSUdfQ0NfU1RB Q0tQUk9URUNUT1IpICYmIFwKKwkhZGVmaW5lZChDT05GSUdfWDg2X0dMT0JBTF9TVEFDS1BST1RF Q1RPUikKIAltb3ZsCVRBU0tfc3RhY2tfY2FuYXJ5KCVlZHgpLCAlZWJ4CiAJbW92bAklZWJ4LCBQ RVJfQ1BVX1ZBUihzdGFja19jYW5hcnkpK3N0YWNrX2NhbmFyeV9vZmZzZXQKICNlbmRpZgpkaWZm IC0tZ2l0IGEvYXJjaC94ODYvZW50cnkvZW50cnlfNjQuUyBiL2FyY2gveDg2L2VudHJ5L2VudHJ5 XzY0LlMKaW5kZXggZDNhNTJkMjM0MmFmLi4wMWJlNjJjMWI0MzYgMTAwNjQ0Ci0tLSBhL2FyY2gv eDg2L2VudHJ5L2VudHJ5XzY0LlMKKysrIGIvYXJjaC94ODYvZW50cnkvZW50cnlfNjQuUwpAQCAt MzkwLDcgKzM5MCw4IEBAIEVOVFJZKF9fc3dpdGNoX3RvX2FzbSkKIAltb3ZxCSVyc3AsIFRBU0tf dGhyZWFkc3AoJXJkaSkKIAltb3ZxCVRBU0tfdGhyZWFkc3AoJXJzaSksICVyc3AKIAotI2lmZGVm IENPTkZJR19DQ19TVEFDS1BST1RFQ1RPUgorI2lmIGRlZmluZWQoQ09ORklHX0NDX1NUQUNLUFJP VEVDVE9SKSAmJiBcCisJIWRlZmluZWQoQ09ORklHX1g4Nl9HTE9CQUxfU1RBQ0tQUk9URUNUT1Ip CiAJbW92cQlUQVNLX3N0YWNrX2NhbmFyeSglcnNpKSwgJXJieAogCW1vdnEJJXJieCwgUEVSX0NQ VV9WQVIoaXJxX3N0YWNrX3VuaW9uICsgc3RhY2tfY2FuYXJ5X29mZnNldCkKICNlbmRpZgpkaWZm IC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmggYi9hcmNoL3g4Ni9pbmNs dWRlL2FzbS9wcm9jZXNzb3IuaAppbmRleCBiMDliZDUwYjA2YzcuLmUzYTdlZjhkNWZiOCAxMDA2 NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgKKysrIGIvYXJjaC94ODYv aW5jbHVkZS9hc20vcHJvY2Vzc29yLmgKQEAgLTM5NCw3ICszOTQsOCBAQCBERUNMQVJFX1BFUl9D UFUoY2hhciAqLCBpcnFfc3RhY2tfcHRyKTsKIERFQ0xBUkVfUEVSX0NQVSh1bnNpZ25lZCBpbnQs IGlycV9jb3VudCk7CiBleHRlcm4gYXNtbGlua2FnZSB2b2lkIGlnbm9yZV9zeXNyZXQodm9pZCk7 CiAjZWxzZQkvKiBYODZfNjQgKi8KLSNpZmRlZiBDT05GSUdfQ0NfU1RBQ0tQUk9URUNUT1IKKyNp ZiBkZWZpbmVkKENPTkZJR19DQ19TVEFDS1BST1RFQ1RPUikgJiYgXAorCWRlZmluZWQoQ09ORklH X1g4Nl9HTE9CQUxfU1RBQ0tQUk9URUNUT1IpCiAvKgogICogTWFrZSBzdXJlIHN0YWNrIGNhbmFy eSBzZWdtZW50IGJhc2UgaXMgY2FjaGVkLWFsaWduZWQ6CiAgKiAgICJGb3IgSW50ZWwgQXRvbSBw cm9jZXNzb3JzLCBhdm9pZCBub24gemVybyBzZWdtZW50IGJhc2UgYWRkcmVzcwpkaWZmIC0tZ2l0 IGEvYXJjaC94ODYvaW5jbHVkZS9hc20vc3RhY2twcm90ZWN0b3IuaCBiL2FyY2gveDg2L2luY2x1 ZGUvYXNtL3N0YWNrcHJvdGVjdG9yLmgKaW5kZXggOGFiZWRmMWQ2NTBlLi42NjQ2MmQ3NzhkYzUg MTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL3N0YWNrcHJvdGVjdG9yLmgKKysrIGIv YXJjaC94ODYvaW5jbHVkZS9hc20vc3RhY2twcm90ZWN0b3IuaApAQCAtNTEsNiArNTEsMTAgQEAK ICNkZWZpbmUgR0RUX1NUQUNLX0NBTkFSWV9JTklUCQkJCQkJXAogCVtHRFRfRU5UUllfU1RBQ0tf Q0FOQVJZXSA9IEdEVF9FTlRSWV9JTklUKDB4NDA5MCwgMCwgMHgxOCksCiAKKyNpZmRlZiBDT05G SUdfWDg2X0dMT0JBTF9TVEFDS1BST1RFQ1RPUgorZXh0ZXJuIHVuc2lnbmVkIGxvbmcgX19zdGFj a19jaGtfZ3VhcmQ7CisjZW5kaWYKKwogLyoKICAqIEluaXRpYWxpemUgdGhlIHN0YWNrcHJvdGVj dG9yIGNhbmFyeSB2YWx1ZS4KICAqCkBAIC02Miw3ICs2Niw3IEBAIHN0YXRpYyBfX2Fsd2F5c19p bmxpbmUgdm9pZCBib290X2luaXRfc3RhY2tfY2FuYXJ5KHZvaWQpCiAJdTY0IGNhbmFyeTsKIAl1 NjQgdHNjOwogCi0jaWZkZWYgQ09ORklHX1g4Nl82NAorI2lmIGRlZmluZWQoQ09ORklHX1g4Nl82 NCkgJiYgIWRlZmluZWQoQ09ORklHX1g4Nl9HTE9CQUxfU1RBQ0tQUk9URUNUT1IpCiAJQlVJTERf QlVHX09OKG9mZnNldG9mKHVuaW9uIGlycV9zdGFja191bmlvbiwgc3RhY2tfY2FuYXJ5KSAhPSA0 MCk7CiAjZW5kaWYKIAkvKgpAQCAtNzYsMTcgKzgwLDIyIEBAIHN0YXRpYyBfX2Fsd2F5c19pbmxp bmUgdm9pZCBib290X2luaXRfc3RhY2tfY2FuYXJ5KHZvaWQpCiAJY2FuYXJ5ICs9IHRzYyArICh0 c2MgPDwgMzJVTCk7CiAJY2FuYXJ5ICY9IENBTkFSWV9NQVNLOwogCisjaWZkZWYgQ09ORklHX1g4 Nl9HTE9CQUxfU1RBQ0tQUk9URUNUT1IKKwlpZiAoX19zdGFja19jaGtfZ3VhcmQgPT0gMCkKKwkJ X19zdGFja19jaGtfZ3VhcmQgPSBjYW5hcnkgPzogMTsKKyNlbHNlIC8qICFDT05GSUdfWDg2X0dM T0JBTF9TVEFDS1BST1RFQ1RPUiAqLwogCWN1cnJlbnQtPnN0YWNrX2NhbmFyeSA9IGNhbmFyeTsK ICNpZmRlZiBDT05GSUdfWDg2XzY0CiAJdGhpc19jcHVfd3JpdGUoaXJxX3N0YWNrX3VuaW9uLnN0 YWNrX2NhbmFyeSwgY2FuYXJ5KTsKLSNlbHNlCisjZWxzZSAvKiBDT05GSUdfWDg2XzMyICovCiAJ dGhpc19jcHVfd3JpdGUoc3RhY2tfY2FuYXJ5LmNhbmFyeSwgY2FuYXJ5KTsKICNlbmRpZgorI2Vu ZGlmCiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBzZXR1cF9zdGFja19jYW5hcnlfc2VnbWVudChp bnQgY3B1KQogewotI2lmZGVmIENPTkZJR19YODZfMzIKKyNpZiBkZWZpbmVkKENPTkZJR19YODZf MzIpICYmICFkZWZpbmVkKENPTkZJR19YODZfR0xPQkFMX1NUQUNLUFJPVEVDVE9SKQogCXVuc2ln bmVkIGxvbmcgY2FuYXJ5ID0gKHVuc2lnbmVkIGxvbmcpJnBlcl9jcHUoc3RhY2tfY2FuYXJ5LCBj cHUpOwogCXN0cnVjdCBkZXNjX3N0cnVjdCAqZ2R0X3RhYmxlID0gZ2V0X2NwdV9nZHRfcncoY3B1 KTsKIAlzdHJ1Y3QgZGVzY19zdHJ1Y3QgZGVzYzsKQEAgLTk5LDcgKzEwOCw3IEBAIHN0YXRpYyBp bmxpbmUgdm9pZCBzZXR1cF9zdGFja19jYW5hcnlfc2VnbWVudChpbnQgY3B1KQogCiBzdGF0aWMg aW5saW5lIHZvaWQgbG9hZF9zdGFja19jYW5hcnlfc2VnbWVudCh2b2lkKQogewotI2lmZGVmIENP TkZJR19YODZfMzIKKyNpZiBkZWZpbmVkKENPTkZJR19YODZfMzIpICYmICFkZWZpbmVkKENPTkZJ R19YODZfR0xPQkFMX1NUQUNLUFJPVEVDVE9SKQogCWFzbSgibW92ICUwLCAlJWdzIiA6IDogInIi IChfX0tFUk5FTF9TVEFDS19DQU5BUlkpIDogIm1lbW9yeSIpOwogI2VuZGlmCiB9CkBAIC0xMTUs NyArMTI0LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHNldHVwX3N0YWNrX2NhbmFyeV9zZWdtZW50 KGludCBjcHUpCiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBsb2FkX3N0YWNrX2NhbmFyeV9zZWdtZW50 KHZvaWQpCiB7Ci0jaWZkZWYgQ09ORklHX1g4Nl8zMgorI2lmIGRlZmluZWQoQ09ORklHX1g4Nl8z MikgJiYgIWRlZmluZWQoQ09ORklHX1g4Nl9HTE9CQUxfU1RBQ0tQUk9URUNUT1IpCiAJYXNtIHZv bGF0aWxlICgibW92ICUwLCAlJWdzIiA6IDogInIiICgwKSk7CiAjZW5kaWYKIH0KZGlmZiAtLWdp dCBhL2FyY2gveDg2L2tlcm5lbC9hc20tb2Zmc2V0cy5jIGIvYXJjaC94ODYva2VybmVsL2FzbS1v ZmZzZXRzLmMKaW5kZXggZGU4MjdkNmFjOGMyLi5iMzBhMTJjZDAyMWUgMTAwNjQ0Ci0tLSBhL2Fy Y2gveDg2L2tlcm5lbC9hc20tb2Zmc2V0cy5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9hc20tb2Zm c2V0cy5jCkBAIC0zMCw3ICszMCw4IEBACiB2b2lkIGNvbW1vbih2b2lkKSB7CiAJQkxBTksoKTsK IAlPRkZTRVQoVEFTS190aHJlYWRzcCwgdGFza19zdHJ1Y3QsIHRocmVhZC5zcCk7Ci0jaWZkZWYg Q09ORklHX0NDX1NUQUNLUFJPVEVDVE9SCisjaWYgZGVmaW5lZChDT05GSUdfQ0NfU1RBQ0tQUk9U RUNUT1IpICYmIFwKKwkhZGVmaW5lZChDT05GSUdfWDg2X0dMT0JBTF9TVEFDS1BST1RFQ1RPUikK IAlPRkZTRVQoVEFTS19zdGFja19jYW5hcnksIHRhc2tfc3RydWN0LCBzdGFja19jYW5hcnkpOwog I2VuZGlmCiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9hc20tb2Zmc2V0c18zMi5jIGIv YXJjaC94ODYva2VybmVsL2FzbS1vZmZzZXRzXzMyLmMKaW5kZXggNzEwZWRhYjllNjQ0Li4zMzU4 NGU3ZTQ4NmIgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9hc20tb2Zmc2V0c18zMi5jCisr KyBiL2FyY2gveDg2L2tlcm5lbC9hc20tb2Zmc2V0c18zMi5jCkBAIC01NCw3ICs1NCw4IEBAIHZv aWQgZm9vKHZvaWQpCiAJLyogU2l6ZSBvZiBTWVNFTlRFUl9zdGFjayAqLwogCURFRklORShTSVpF T0ZfU1lTRU5URVJfc3RhY2ssIHNpemVvZigoKHN0cnVjdCB0c3Nfc3RydWN0ICopMCktPlNZU0VO VEVSX3N0YWNrKSk7CiAKLSNpZmRlZiBDT05GSUdfQ0NfU1RBQ0tQUk9URUNUT1IKKyNpZiBkZWZp bmVkKENPTkZJR19DQ19TVEFDS1BST1RFQ1RPUikgJiYgXAorCSFkZWZpbmVkKENPTkZJR19YODZf R0xPQkFMX1NUQUNLUFJPVEVDVE9SKQogCUJMQU5LKCk7CiAJT0ZGU0VUKHN0YWNrX2NhbmFyeV9v ZmZzZXQsIHN0YWNrX2NhbmFyeSwgY2FuYXJ5KTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC94 ODYva2VybmVsL2FzbS1vZmZzZXRzXzY0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvYXNtLW9mZnNldHNf NjQuYwppbmRleCBjZjQyMjA2OTI2YWYuLjA2ZmViMzFhMDlmNSAxMDA2NDQKLS0tIGEvYXJjaC94 ODYva2VybmVsL2FzbS1vZmZzZXRzXzY0LmMKKysrIGIvYXJjaC94ODYva2VybmVsL2FzbS1vZmZz ZXRzXzY0LmMKQEAgLTY0LDcgKzY0LDggQEAgaW50IG1haW4odm9pZCkKIAlPRkZTRVQoVFNTX3Nw MCwgdHNzX3N0cnVjdCwgeDg2X3Rzcy5zcDApOwogCUJMQU5LKCk7CiAKLSNpZmRlZiBDT05GSUdf Q0NfU1RBQ0tQUk9URUNUT1IKKyNpZiBkZWZpbmVkKENPTkZJR19DQ19TVEFDS1BST1RFQ1RPUikg JiYgXAorCSFkZWZpbmVkKENPTkZJR19YODZfR0xPQkFMX1NUQUNLUFJPVEVDVE9SKQogCURFRklO RShzdGFja19jYW5hcnlfb2Zmc2V0LCBvZmZzZXRvZih1bmlvbiBpcnFfc3RhY2tfdW5pb24sIHN0 YWNrX2NhbmFyeSkpOwogCUJMQU5LKCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tl cm5lbC9jcHUvY29tbW9uLmMgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L2NvbW1vbi5jCmluZGV4IGZh YzcxYTNlZTBiNS4uOTljOGFmOTc0ODc0IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvY3B1 L2NvbW1vbi5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvY29tbW9uLmMKQEAgLTE0MzEsNyAr MTQzMSw4IEBAIERFRklORV9QRVJfQ1BVKHVuc2lnbmVkIGxvbmcsIGNwdV9jdXJyZW50X3RvcF9v Zl9zdGFjaykgPQogCSh1bnNpZ25lZCBsb25nKSZpbml0X3RocmVhZF91bmlvbiArIFRIUkVBRF9T SVpFOwogRVhQT1JUX1BFUl9DUFVfU1lNQk9MKGNwdV9jdXJyZW50X3RvcF9vZl9zdGFjayk7CiAK LSNpZmRlZiBDT05GSUdfQ0NfU1RBQ0tQUk9URUNUT1IKKyNpZiBkZWZpbmVkKENPTkZJR19DQ19T VEFDS1BST1RFQ1RPUikgJiYgXAorCSFkZWZpbmVkKENPTkZJR19YODZfR0xPQkFMX1NUQUNLUFJP VEVDVE9SKQogREVGSU5FX1BFUl9DUFVfQUxJR05FRChzdHJ1Y3Qgc3RhY2tfY2FuYXJ5LCBzdGFj a19jYW5hcnkpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9oZWFkXzMy LlMgYi9hcmNoL3g4Ni9rZXJuZWwvaGVhZF8zMi5TCmluZGV4IDllZDMwNzRkMGQyNy4uYTU1YTY3 YjMzOTM0IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvaGVhZF8zMi5TCisrKyBiL2FyY2gv eDg2L2tlcm5lbC9oZWFkXzMyLlMKQEAgLTM3Nyw3ICszNzcsOCBAQCBFTkRQUk9DKHN0YXJ0dXBf MzJfc21wKQogICovCiBfX0lOSVQKIHNldHVwX29uY2U6Ci0jaWZkZWYgQ09ORklHX0NDX1NUQUNL UFJPVEVDVE9SCisjaWYgZGVmaW5lZChDT05GSUdfQ0NfU1RBQ0tQUk9URUNUT1IpICYmIFwKKwkh ZGVmaW5lZChDT05GSUdfWDg2X0dMT0JBTF9TVEFDS1BST1RFQ1RPUikKIAkvKgogCSAqIENvbmZp Z3VyZSB0aGUgc3RhY2sgY2FuYXJ5LiBUaGUgbGlua2VyIGNhbid0IGhhbmRsZSB0aGlzIGJ5CiAJ ICogcmVsb2NhdGlvbi4gIE1hbnVhbGx5IHNldCBiYXNlIGFkZHJlc3MgaW4gc3RhY2sgY2FuYXJ5 CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvcHJvY2Vzcy5jIGIvYXJjaC94ODYva2VybmVs L3Byb2Nlc3MuYwppbmRleCBiZDZiODVmYWM2NjYuLjY2ZWExYTM1NDEzZSAxMDA2NDQKLS0tIGEv YXJjaC94ODYva2VybmVsL3Byb2Nlc3MuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvcHJvY2Vzcy5j CkBAIC03Myw2ICs3MywxMSBAQCBFWFBPUlRfUEVSX0NQVV9TWU1CT0woY3B1X3Rzcyk7CiBERUZJ TkVfUEVSX0NQVShib29sLCBfX3Rzc19saW1pdF9pbnZhbGlkKTsKIEVYUE9SVF9QRVJfQ1BVX1NZ TUJPTF9HUEwoX190c3NfbGltaXRfaW52YWxpZCk7CiAKKyNpZmRlZiBDT05GSUdfWDg2X0dMT0JB TF9TVEFDS1BST1RFQ1RPUgordW5zaWduZWQgbG9uZyBfX3N0YWNrX2Noa19ndWFyZCBfX3JlYWRf bW9zdGx5OworRVhQT1JUX1NZTUJPTChfX3N0YWNrX2Noa19ndWFyZCk7CisjZW5kaWYKKwogLyoK ICAqIHRoaXMgZ2V0cyBjYWxsZWQgc28gdGhhdCB3ZSBjYW4gc3RvcmUgbGF6eSBzdGF0ZSBpbnRv IG1lbW9yeSBhbmQgY29weSB0aGUKICAqIGN1cnJlbnQgdGFzayBpbnRvIHRoZSBuZXcgdGhyZWFk LgotLSAKMi4xNS4wLnJjMC4yNzEuZzM2YjY2OWVkY2MtZ29vZwoKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVu LWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=