From: Thomas Garnier Subject: [PATCH v2 20/27] x86: Support global stack cookie Date: Tue, 13 Mar 2018 13:59:38 -0700 Message-ID: <20180313205945.245105-21-thgarnie@google.com> References: <20180313205945.245105-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 , Greg Kroah-Hartman , Kate Stewart , Thomas Garnier , Arnd Bergmann , Philippe Ombredanne , Arnaldo Carvalho de Melo , Andrey Ryabinin , Matthias Kaehlcke , Kees Cook , Tom Lendacky , "Kirill A . Shutemov" , Andy Lutomirski , Dominik Brodowski , Borislav Petkov , Borislav Petkov , "Raf Return-path: In-Reply-To: <20180313205945.245105-1-thgarnie@google.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" List-Id: linux-crypto.vger.kernel.org QWRkIGFuIG9mZi1ieS1kZWZhdWx0IGNvbmZpZ3VyYXRpb24gb3B0aW9uIHRvIHVzZSBhIGdsb2Jh bCBzdGFjayBjb29raWUKaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBUTFMuIFRoaXMgY29uZmlndXJh dGlvbiBvcHRpb24gd2lsbCBvbmx5IGJlIHVzZWQKd2l0aCBQSUUgYmluYXJpZXMuCgpGb3Iga2Vy bmVsIHN0YWNrIGNvb2tpZSwgdGhlIGNvbXBpbGVyIHVzZXMgdGhlIG1jbW9kZWw9a2VybmVsIHRv IHN3aXRjaApiZXR3ZWVuIHRoZSBmcyBzZWdtZW50IHRvIGdzIHNlZ21lbnQuIEEgUElFIGJpbmFy eSBkb2VzIG5vdCB1c2UKbWNtb2RlbD1rZXJuZWwgYmVjYXVzZSBpdCBjYW4gYmUgcmVsb2NhdGVk IGFueXdoZXJlLCB0aGVyZWZvcmUgdGhlCmNvbXBpbGVyIHdpbGwgZGVmYXVsdCB0byB0aGUgZnMg c2VnbWVudCByZWdpc3Rlci4gVGhpcyBpcyBmaXhlZCBvbiB0aGUKbGF0ZXN0IHZlcnNpb24gb2Yg Z2NjLgoKSWYgdGhlIHNlZ21lbnQgc2VsZWN0b3IgaXMgYXZhaWxhYmxlLCBpdCB3aWxsIGJlIGF1 dG9tYXRpY2FsbHkgYWRkZWQuIElmCnRoZSBhdXRvbWF0aWMgY29uZmlndXJhdGlvbiB3YXMgc2Vs ZWN0ZWQsIGEgd2FybmluZyBpcyB3cml0dGVuIGFuZCB0aGUKZ2xvYmFsIHZhcmlhYmxlIHN0YWNr IGNvb2tpZSBpcyB1c2VkLiBJZiBhIHNwZWNpZmljIHN0YWNrIG1vZGUgd2FzCnNlbGVjdGVkIChy ZWd1bGFyIG9yIHN0cm9uZykgYW5kIHRoZSBjb21waWxlciBkb2VzIG5vdCBzdXBwb3J0IHNlbGVj dGluZwp0aGUgc2VnbWVudCByZWdpc3RlciwgYW4gZXJyb3IgaXMgZW1pdHRlZC4KClNpZ25lZC1v ZmYtYnk6IFRob21hcyBHYXJuaWVyIDx0aGdhcm5pZUBnb29nbGUuY29tPgotLS0KIGFyY2gveDg2 L0tjb25maWcgICAgICAgICAgICAgICAgICAgICAgfCAxMiArKysrKysrKysrKysKIGFyY2gveDg2 L01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgfCAgOSArKysrKysrKysKIGFyY2gveDg2L2Vu dHJ5L2VudHJ5XzMyLlMgICAgICAgICAgICAgfCAgMyArKy0KIGFyY2gveDg2L2VudHJ5L2VudHJ5 XzY0LlMgICAgICAgICAgICAgfCAgMyArKy0KIGFyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nv ci5oICAgICAgfCAgMyArKy0KIGFyY2gveDg2L2luY2x1ZGUvYXNtL3N0YWNrcHJvdGVjdG9yLmgg fCAxOSArKysrKysrKysrKysrKy0tLS0tCiBhcmNoL3g4Ni9rZXJuZWwvYXNtLW9mZnNldHMuYyAg ICAgICAgIHwgIDMgKystCiBhcmNoL3g4Ni9rZXJuZWwvYXNtLW9mZnNldHNfMzIuYyAgICAgIHwg IDMgKystCiBhcmNoL3g4Ni9rZXJuZWwvYXNtLW9mZnNldHNfNjQuYyAgICAgIHwgIDMgKystCiBh cmNoL3g4Ni9rZXJuZWwvY3B1L2NvbW1vbi5jICAgICAgICAgIHwgIDMgKystCiBhcmNoL3g4Ni9r ZXJuZWwvaGVhZF8zMi5TICAgICAgICAgICAgIHwgIDMgKystCiBhcmNoL3g4Ni9rZXJuZWwvcHJv Y2Vzcy5jICAgICAgICAgICAgIHwgIDUgKysrKysKIDEyIGZpbGVzIGNoYW5nZWQsIDU2IGluc2Vy dGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2FyY2gveDg2L0tjb25maWcg Yi9hcmNoL3g4Ni9LY29uZmlnCmluZGV4IGEwYTc3N2NlNGM3Yy4uMGNiMWFlMTg3YzNlIDEwMDY0 NAotLS0gYS9hcmNoL3g4Ni9LY29uZmlnCisrKyBiL2FyY2gveDg2L0tjb25maWcKQEAgLTIyMzYs NiArMjIzNiwxOCBAQCBjb25maWcgUkFORE9NSVpFX01FTU9SWV9QSFlTSUNBTF9QQURESU5HCiAK IAkgICBJZiB1bnN1cmUsIGxlYXZlIGF0IHRoZSBkZWZhdWx0IHZhbHVlLgogCitjb25maWcgWDg2 X0dMT0JBTF9TVEFDS1BST1RFQ1RPUgorCWJvb2wgIlN0YWNrIGNvb2tpZSB1c2luZyBhIGdsb2Jh bCB2YXJpYWJsZSIKKwlkZXBlbmRzIG9uIENDX1NUQUNLUFJPVEVDVE9SX0FVVE8KKwlkZWZhdWx0 IG4KKwktLS1oZWxwLS0tCisJICAgVGhpcyBvcHRpb24gdHVybnMgb24gdGhlICJzdGFjay1wcm90 ZWN0b3IiIEdDQyBmZWF0dXJlIHVzaW5nIGEgZ2xvYmFsCisJICAgdmFyaWFibGUgaW5zdGVhZCBv ZiBhIHNlZ21lbnQgcmVnaXN0ZXIuIEl0IGlzIHVzZWZ1bCB3aGVuIHRoZQorCSAgIGNvbXBpbGVy IGRvZXMgbm90IHN1cHBvcnQgY3VzdG9tIHNlZ21lbnQgcmVnaXN0ZXJzIHdoZW4gYnVpbGRpbmcg YQorCSAgIHBvc2l0aW9uIGluZGVwZW5kZW50IChQSUUpIGJpbmFyeS4KKworCSAgIElmIHVuc3Vy ZSwgc2F5IE4KKwogY29uZmlnIEhPVFBMVUdfQ1BVCiAJYm9vbCAiU3VwcG9ydCBmb3IgaG90LXBs dWdnYWJsZSBDUFVzIgogCWRlcGVuZHMgb24gU01QCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9NYWtl ZmlsZSBiL2FyY2gveDg2L01ha2VmaWxlCmluZGV4IDQ5OGMxYjgxMjMwMC4uMTZkYWZjNTUxZjNi IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9NYWtlZmlsZQorKysgYi9hcmNoL3g4Ni9NYWtlZmlsZQpA QCAtMTQyLDYgKzE0MiwxNSBAQCBlbHNlCiAgICAgICAgIEtCVUlMRF9DRkxBR1MgKz0gJChjYWxs IGNjLW9wdGlvbiwtZnVuaXQtYXQtYS10aW1lKQogZW5kaWYKIAoraWZkZWYgQ09ORklHX1g4Nl9H TE9CQUxfU1RBQ0tQUk9URUNUT1IKKyAgICAgICAgaWZlcSAoJChjYWxsIGNjLW9wdGlvbiwgLW1z dGFjay1wcm90ZWN0b3ItZ3VhcmQ9Z2xvYmFsKSwpCisgICAgICAgICAgICAgICAgJChlcnJvciBD YW5ub3QgdXNlIENPTkZJR19YODZfR0xPQkFMX1NUQUNLUFJPVEVDVE9SOiBcCisgICAgICAgICAg ICAgICAgICAgICAgICAtbXN0YWNrLXByb3RlY3Rvci1ndWFyZD1nbG9iYWwgbm90IHN1cHBvcnRl ZCBcCisgICAgICAgICAgICAgICAgICAgICAgICBieSBjb21waWxlcikKKyAgICAgICAgZW5kaWYK KyAgICAgICAgS0JVSUxEX0NGTEFHUyArPSAtbXN0YWNrLXByb3RlY3Rvci1ndWFyZD1nbG9iYWwK K2VuZGlmCisKIGlmZGVmIENPTkZJR19YODZfWDMyCiAJeDMyX2xkX29rIDo9ICQoY2FsbCB0cnkt cnVuLFwKIAkJCS9iaW4vZWNobyAtZSAnMTogLnF1YWQgMWInIHwgXApkaWZmIC0tZ2l0IGEvYXJj aC94ODYvZW50cnkvZW50cnlfMzIuUyBiL2FyY2gveDg2L2VudHJ5L2VudHJ5XzMyLlMKaW5kZXgg YmVmOGUyYjIwMmE4Li5iN2Q1YmM3MTBhZTcgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2VudHJ5L2Vu dHJ5XzMyLlMKKysrIGIvYXJjaC94ODYvZW50cnkvZW50cnlfMzIuUwpAQCAtMjM5LDcgKzIzOSw4 IEBAIEVOVFJZKF9fc3dpdGNoX3RvX2FzbSkKIAltb3ZsCSVlc3AsIFRBU0tfdGhyZWFkc3AoJWVh eCkKIAltb3ZsCVRBU0tfdGhyZWFkc3AoJWVkeCksICVlc3AKIAotI2lmZGVmIENPTkZJR19DQ19T VEFDS1BST1RFQ1RPUgorI2lmIGRlZmluZWQoQ09ORklHX0NDX1NUQUNLUFJPVEVDVE9SKSAmJiBc CisJIWRlZmluZWQoQ09ORklHX1g4Nl9HTE9CQUxfU1RBQ0tQUk9URUNUT1IpCiAJbW92bAlUQVNL X3N0YWNrX2NhbmFyeSglZWR4KSwgJWVieAogCW1vdmwJJWVieCwgUEVSX0NQVV9WQVIoc3RhY2tf Y2FuYXJ5KStzdGFja19jYW5hcnlfb2Zmc2V0CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gveDg2 L2VudHJ5L2VudHJ5XzY0LlMgYi9hcmNoL3g4Ni9lbnRyeS9lbnRyeV82NC5TCmluZGV4IGQzNDc5 NDM2OGUyMC4uZmJmMmI2M2I0ZTc4IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9lbnRyeS9lbnRyeV82 NC5TCisrKyBiL2FyY2gveDg2L2VudHJ5L2VudHJ5XzY0LlMKQEAgLTM1Niw3ICszNTYsOCBAQCBF TlRSWShfX3N3aXRjaF90b19hc20pCiAJbW92cQklcnNwLCBUQVNLX3RocmVhZHNwKCVyZGkpCiAJ bW92cQlUQVNLX3RocmVhZHNwKCVyc2kpLCAlcnNwCiAKLSNpZmRlZiBDT05GSUdfQ0NfU1RBQ0tQ Uk9URUNUT1IKKyNpZiBkZWZpbmVkKENPTkZJR19DQ19TVEFDS1BST1RFQ1RPUikgJiYgXAorCSFk ZWZpbmVkKENPTkZJR19YODZfR0xPQkFMX1NUQUNLUFJPVEVDVE9SKQogCW1vdnEJVEFTS19zdGFj a19jYW5hcnkoJXJzaSksICVyYngKIAltb3ZxCSVyYngsIFBFUl9DUFVfVkFSKGlycV9zdGFja191 bmlvbiArIHN0YWNrX2NhbmFyeV9vZmZzZXQpCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gveDg2 L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vcHJvY2Vzc29y LmgKaW5kZXggMWI5NDg4YjEwMThhLi5mMTEyODQ0ODE1OTcgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2 L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oCisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nl c3Nvci5oCkBAIC00MTEsNyArNDExLDggQEAgREVDTEFSRV9QRVJfQ1BVKGNoYXIgKiwgaXJxX3N0 YWNrX3B0cik7CiBERUNMQVJFX1BFUl9DUFUodW5zaWduZWQgaW50LCBpcnFfY291bnQpOwogZXh0 ZXJuIGFzbWxpbmthZ2Ugdm9pZCBpZ25vcmVfc3lzcmV0KHZvaWQpOwogI2Vsc2UJLyogWDg2XzY0 ICovCi0jaWZkZWYgQ09ORklHX0NDX1NUQUNLUFJPVEVDVE9SCisjaWYgZGVmaW5lZChDT05GSUdf Q0NfU1RBQ0tQUk9URUNUT1IpICYmIFwKKwkhZGVmaW5lZChDT05GSUdfWDg2X0dMT0JBTF9TVEFD S1BST1RFQ1RPUikKIC8qCiAgKiBNYWtlIHN1cmUgc3RhY2sgY2FuYXJ5IHNlZ21lbnQgYmFzZSBp cyBjYWNoZWQtYWxpZ25lZDoKICAqICAgIkZvciBJbnRlbCBBdG9tIHByb2Nlc3NvcnMsIGF2b2lk IG5vbiB6ZXJvIHNlZ21lbnQgYmFzZSBhZGRyZXNzCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNs dWRlL2FzbS9zdGFja3Byb3RlY3Rvci5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vc3RhY2twcm90 ZWN0b3IuaAppbmRleCAzNzFiM2E0YWYwMDAuLjUwNjNmNTdkOTlmNSAxMDA2NDQKLS0tIGEvYXJj aC94ODYvaW5jbHVkZS9hc20vc3RhY2twcm90ZWN0b3IuaAorKysgYi9hcmNoL3g4Ni9pbmNsdWRl L2FzbS9zdGFja3Byb3RlY3Rvci5oCkBAIC01Miw2ICs1MiwxMCBAQAogI2RlZmluZSBHRFRfU1RB Q0tfQ0FOQVJZX0lOSVQJCQkJCQlcCiAJW0dEVF9FTlRSWV9TVEFDS19DQU5BUlldID0gR0RUX0VO VFJZX0lOSVQoMHg0MDkwLCAwLCAweDE4KSwKIAorI2lmZGVmIENPTkZJR19YODZfR0xPQkFMX1NU QUNLUFJPVEVDVE9SCitleHRlcm4gdW5zaWduZWQgbG9uZyBfX3N0YWNrX2Noa19ndWFyZDsKKyNl bmRpZgorCiAvKgogICogSW5pdGlhbGl6ZSB0aGUgc3RhY2twcm90ZWN0b3IgY2FuYXJ5IHZhbHVl LgogICoKQEAgLTYzLDcgKzY3LDcgQEAgc3RhdGljIF9fYWx3YXlzX2lubGluZSB2b2lkIGJvb3Rf aW5pdF9zdGFja19jYW5hcnkodm9pZCkKIAl1NjQgY2FuYXJ5OwogCXU2NCB0c2M7CiAKLSNpZmRl ZiBDT05GSUdfWDg2XzY0CisjaWYgZGVmaW5lZChDT05GSUdfWDg2XzY0KSAmJiAhZGVmaW5lZChD T05GSUdfWDg2X0dMT0JBTF9TVEFDS1BST1RFQ1RPUikKIAlCVUlMRF9CVUdfT04ob2Zmc2V0b2Yo dW5pb24gaXJxX3N0YWNrX3VuaW9uLCBzdGFja19jYW5hcnkpICE9IDQwKTsKICNlbmRpZgogCS8q CkBAIC03NywxNyArODEsMjIgQEAgc3RhdGljIF9fYWx3YXlzX2lubGluZSB2b2lkIGJvb3RfaW5p dF9zdGFja19jYW5hcnkodm9pZCkKIAljYW5hcnkgKz0gdHNjICsgKHRzYyA8PCAzMlVMKTsKIAlj YW5hcnkgJj0gQ0FOQVJZX01BU0s7CiAKKyNpZmRlZiBDT05GSUdfWDg2X0dMT0JBTF9TVEFDS1BS T1RFQ1RPUgorCWlmIChfX3N0YWNrX2Noa19ndWFyZCA9PSAwKQorCQlfX3N0YWNrX2Noa19ndWFy ZCA9IGNhbmFyeSA/OiAxOworI2Vsc2UgLyogIUNPTkZJR19YODZfR0xPQkFMX1NUQUNLUFJPVEVD VE9SICovCiAJY3VycmVudC0+c3RhY2tfY2FuYXJ5ID0gY2FuYXJ5OwogI2lmZGVmIENPTkZJR19Y ODZfNjQKIAl0aGlzX2NwdV93cml0ZShpcnFfc3RhY2tfdW5pb24uc3RhY2tfY2FuYXJ5LCBjYW5h cnkpOwotI2Vsc2UKKyNlbHNlIC8qIENPTkZJR19YODZfMzIgKi8KIAl0aGlzX2NwdV93cml0ZShz dGFja19jYW5hcnkuY2FuYXJ5LCBjYW5hcnkpOwogI2VuZGlmCisjZW5kaWYKIH0KIAogc3RhdGlj IGlubGluZSB2b2lkIHNldHVwX3N0YWNrX2NhbmFyeV9zZWdtZW50KGludCBjcHUpCiB7Ci0jaWZk ZWYgQ09ORklHX1g4Nl8zMgorI2lmIGRlZmluZWQoQ09ORklHX1g4Nl8zMikgJiYgIWRlZmluZWQo Q09ORklHX1g4Nl9HTE9CQUxfU1RBQ0tQUk9URUNUT1IpCiAJdW5zaWduZWQgbG9uZyBjYW5hcnkg PSAodW5zaWduZWQgbG9uZykmcGVyX2NwdShzdGFja19jYW5hcnksIGNwdSk7CiAJc3RydWN0IGRl c2Nfc3RydWN0ICpnZHRfdGFibGUgPSBnZXRfY3B1X2dkdF9ydyhjcHUpOwogCXN0cnVjdCBkZXNj X3N0cnVjdCBkZXNjOwpAQCAtMTAwLDcgKzEwOSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzZXR1 cF9zdGFja19jYW5hcnlfc2VnbWVudChpbnQgY3B1KQogCiBzdGF0aWMgaW5saW5lIHZvaWQgbG9h ZF9zdGFja19jYW5hcnlfc2VnbWVudCh2b2lkKQogewotI2lmZGVmIENPTkZJR19YODZfMzIKKyNp ZiBkZWZpbmVkKENPTkZJR19YODZfMzIpICYmICFkZWZpbmVkKENPTkZJR19YODZfR0xPQkFMX1NU QUNLUFJPVEVDVE9SKQogCWFzbSgibW92ICUwLCAlJWdzIiA6IDogInIiIChfX0tFUk5FTF9TVEFD S19DQU5BUlkpIDogIm1lbW9yeSIpOwogI2VuZGlmCiB9CkBAIC0xMTYsNyArMTI1LDcgQEAgc3Rh dGljIGlubGluZSB2b2lkIHNldHVwX3N0YWNrX2NhbmFyeV9zZWdtZW50KGludCBjcHUpCiAKIHN0 YXRpYyBpbmxpbmUgdm9pZCBsb2FkX3N0YWNrX2NhbmFyeV9zZWdtZW50KHZvaWQpCiB7Ci0jaWZk ZWYgQ09ORklHX1g4Nl8zMgorI2lmIGRlZmluZWQoQ09ORklHX1g4Nl8zMikgJiYgIWRlZmluZWQo Q09ORklHX1g4Nl9HTE9CQUxfU1RBQ0tQUk9URUNUT1IpCiAJYXNtIHZvbGF0aWxlICgibW92ICUw LCAlJWdzIiA6IDogInIiICgwKSk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tl cm5lbC9hc20tb2Zmc2V0cy5jIGIvYXJjaC94ODYva2VybmVsL2FzbS1vZmZzZXRzLmMKaW5kZXgg NzY0MTdhOWFhYjczLi40YzllMWI2NjdiZGEgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9h c20tb2Zmc2V0cy5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9hc20tb2Zmc2V0cy5jCkBAIC0zMiw3 ICszMiw4IEBACiB2b2lkIGNvbW1vbih2b2lkKSB7CiAJQkxBTksoKTsKIAlPRkZTRVQoVEFTS190 aHJlYWRzcCwgdGFza19zdHJ1Y3QsIHRocmVhZC5zcCk7Ci0jaWZkZWYgQ09ORklHX0NDX1NUQUNL UFJPVEVDVE9SCisjaWYgZGVmaW5lZChDT05GSUdfQ0NfU1RBQ0tQUk9URUNUT1IpICYmIFwKKwkh ZGVmaW5lZChDT05GSUdfWDg2X0dMT0JBTF9TVEFDS1BST1RFQ1RPUikKIAlPRkZTRVQoVEFTS19z dGFja19jYW5hcnksIHRhc2tfc3RydWN0LCBzdGFja19jYW5hcnkpOwogI2VuZGlmCiAKZGlmZiAt LWdpdCBhL2FyY2gveDg2L2tlcm5lbC9hc20tb2Zmc2V0c18zMi5jIGIvYXJjaC94ODYva2VybmVs L2FzbS1vZmZzZXRzXzMyLmMKaW5kZXggZjkxYmE1M2UwNmM4Li5jZjhlZjU1YThiODIgMTAwNjQ0 Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9hc20tb2Zmc2V0c18zMi5jCisrKyBiL2FyY2gveDg2L2tl cm5lbC9hc20tb2Zmc2V0c18zMi5jCkBAIC01MCw3ICs1MCw4IEBAIHZvaWQgZm9vKHZvaWQpCiAJ REVGSU5FKFRTU19zeXNlbnRlcl9zcDAsIG9mZnNldG9mKHN0cnVjdCBjcHVfZW50cnlfYXJlYSwg dHNzLng4Nl90c3Muc3AwKSAtCiAJICAgICAgIG9mZnNldG9mZW5kKHN0cnVjdCBjcHVfZW50cnlf YXJlYSwgZW50cnlfc3RhY2tfcGFnZS5zdGFjaykpOwogCi0jaWZkZWYgQ09ORklHX0NDX1NUQUNL UFJPVEVDVE9SCisjaWYgZGVmaW5lZChDT05GSUdfQ0NfU1RBQ0tQUk9URUNUT1IpICYmIFwKKwkh ZGVmaW5lZChDT05GSUdfWDg2X0dMT0JBTF9TVEFDS1BST1RFQ1RPUikKIAlCTEFOSygpOwogCU9G RlNFVChzdGFja19jYW5hcnlfb2Zmc2V0LCBzdGFja19jYW5hcnksIGNhbmFyeSk7CiAjZW5kaWYK ZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9hc20tb2Zmc2V0c182NC5jIGIvYXJjaC94ODYv a2VybmVsL2FzbS1vZmZzZXRzXzY0LmMKaW5kZXggYmY1MWU1MWQ4MDhkLi5hM2M3ZTE0ZjY0MzQg MTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9hc20tb2Zmc2V0c182NC5jCisrKyBiL2FyY2gv eDg2L2tlcm5lbC9hc20tb2Zmc2V0c182NC5jCkBAIC02OSw3ICs2OSw4IEBAIGludCBtYWluKHZv aWQpCiAJT0ZGU0VUKFRTU19zcDEsIHRzc19zdHJ1Y3QsIHg4Nl90c3Muc3AxKTsKIAlCTEFOSygp OwogCi0jaWZkZWYgQ09ORklHX0NDX1NUQUNLUFJPVEVDVE9SCisjaWYgZGVmaW5lZChDT05GSUdf Q0NfU1RBQ0tQUk9URUNUT1IpICYmIFwKKwkhZGVmaW5lZChDT05GSUdfWDg2X0dMT0JBTF9TVEFD S1BST1RFQ1RPUikKIAlERUZJTkUoc3RhY2tfY2FuYXJ5X29mZnNldCwgb2Zmc2V0b2YodW5pb24g aXJxX3N0YWNrX3VuaW9uLCBzdGFja19jYW5hcnkpKTsKIAlCTEFOSygpOwogI2VuZGlmCmRpZmYg LS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L2NvbW1vbi5jIGIvYXJjaC94ODYva2VybmVsL2Nw dS9jb21tb24uYwppbmRleCAwZTlhODdhMzRmNzYuLmFhNjMyNzQxMTVhZiAxMDA2NDQKLS0tIGEv YXJjaC94ODYva2VybmVsL2NwdS9jb21tb24uYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L2Nv bW1vbi5jCkBAIC0xNTA5LDcgKzE1MDksOCBAQCBERUZJTkVfUEVSX0NQVSh1bnNpZ25lZCBsb25n LCBjcHVfY3VycmVudF90b3Bfb2Zfc3RhY2spID0KIAkodW5zaWduZWQgbG9uZykmaW5pdF90aHJl YWRfdW5pb24gKyBUSFJFQURfU0laRTsKIEVYUE9SVF9QRVJfQ1BVX1NZTUJPTChjcHVfY3VycmVu dF90b3Bfb2Zfc3RhY2spOwogCi0jaWZkZWYgQ09ORklHX0NDX1NUQUNLUFJPVEVDVE9SCisjaWYg ZGVmaW5lZChDT05GSUdfQ0NfU1RBQ0tQUk9URUNUT1IpICYmIFwKKwkhZGVmaW5lZChDT05GSUdf WDg2X0dMT0JBTF9TVEFDS1BST1RFQ1RPUikKIERFRklORV9QRVJfQ1BVX0FMSUdORUQoc3RydWN0 IHN0YWNrX2NhbmFyeSwgc3RhY2tfY2FuYXJ5KTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9hcmNo L3g4Ni9rZXJuZWwvaGVhZF8zMi5TIGIvYXJjaC94ODYva2VybmVsL2hlYWRfMzIuUwppbmRleCBi NTllNGZiNDBmZDkuLjBlODQ5MjQyZGU5MSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2hl YWRfMzIuUworKysgYi9hcmNoL3g4Ni9rZXJuZWwvaGVhZF8zMi5TCkBAIC0zNzUsNyArMzc1LDgg QEAgRU5EUFJPQyhzdGFydHVwXzMyX3NtcCkKICAqLwogX19JTklUCiBzZXR1cF9vbmNlOgotI2lm ZGVmIENPTkZJR19DQ19TVEFDS1BST1RFQ1RPUgorI2lmIGRlZmluZWQoQ09ORklHX0NDX1NUQUNL UFJPVEVDVE9SKSAmJiBcCisJIWRlZmluZWQoQ09ORklHX1g4Nl9HTE9CQUxfU1RBQ0tQUk9URUNU T1IpCiAJLyoKIAkgKiBDb25maWd1cmUgdGhlIHN0YWNrIGNhbmFyeS4gVGhlIGxpbmtlciBjYW4n dCBoYW5kbGUgdGhpcyBieQogCSAqIHJlbG9jYXRpb24uICBNYW51YWxseSBzZXQgYmFzZSBhZGRy ZXNzIGluIHN0YWNrIGNhbmFyeQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3Byb2Nlc3Mu YyBiL2FyY2gveDg2L2tlcm5lbC9wcm9jZXNzLmMKaW5kZXggMDM0MDhiOTQyYWRiLi5lYmUyMWQy NThhODIgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9wcm9jZXNzLmMKKysrIGIvYXJjaC94 ODYva2VybmVsL3Byb2Nlc3MuYwpAQCAtODYsNiArODYsMTEgQEAgRVhQT1JUX1BFUl9DUFVfU1lN Qk9MKGNwdV90c3NfcncpOwogREVGSU5FX1BFUl9DUFUoYm9vbCwgX190c3NfbGltaXRfaW52YWxp ZCk7CiBFWFBPUlRfUEVSX0NQVV9TWU1CT0xfR1BMKF9fdHNzX2xpbWl0X2ludmFsaWQpOwogCisj aWZkZWYgQ09ORklHX1g4Nl9HTE9CQUxfU1RBQ0tQUk9URUNUT1IKK3Vuc2lnbmVkIGxvbmcgX19z dGFja19jaGtfZ3VhcmQgX19yZWFkX21vc3RseTsKK0VYUE9SVF9TWU1CT0woX19zdGFja19jaGtf Z3VhcmQpOworI2VuZGlmCisKIC8qCiAgKiB0aGlzIGdldHMgY2FsbGVkIHNvIHRoYXQgd2UgY2Fu IHN0b3JlIGxhenkgc3RhdGUgaW50byBtZW1vcnkgYW5kIGNvcHkgdGhlCiAgKiBjdXJyZW50IHRh c2sgaW50byB0aGUgbmV3IHRocmVhZC4KLS0gCjIuMTYuMi42NjAuZzcwOTg4Nzk3MWItZ29vZwoK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZl bCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlz dHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=