From: Thomas Garnier Subject: [PATCH v3 20/27] x86: Support global stack cookie Date: Wed, 23 May 2018 12:54:14 -0700 Message-ID: <20180523195421.180248-21-thgarnie@google.com> References: <20180523195421.180248-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 , Thomas Garnier , Philippe Ombredanne , Kate Stewart , Arnaldo Carvalho de Melo , Yonghong Song , Andrey Ryabinin , Kees Cook , Tom Lendacky , "Kirill A . Shutemov" , Andy Lutomirski , Dominik Brodowski , Borislav Petkov , Borislav Petkov , "Rafael J . Wysocki" , Len Return-path: In-Reply-To: <20180523195421.180248-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 Yi9hcmNoL3g4Ni9LY29uZmlnCmluZGV4IGRkYTg3YTMzMWE3ZS4uMGZjMmU5ODE0NThkIDEwMDY0 NAotLS0gYS9hcmNoL3g4Ni9LY29uZmlnCisrKyBiL2FyY2gveDg2L0tjb25maWcKQEAgLTIxOTks NiArMjE5OSwxOCBAQCBjb25maWcgUkFORE9NSVpFX01FTU9SWV9QSFlTSUNBTF9QQURESU5HCiAK IAkgICBJZiB1bnN1cmUsIGxlYXZlIGF0IHRoZSBkZWZhdWx0IHZhbHVlLgogCitjb25maWcgWDg2 X0dMT0JBTF9TVEFDS1BST1RFQ1RPUgorCWJvb2wgIlN0YWNrIGNvb2tpZSB1c2luZyBhIGdsb2Jh bCB2YXJpYWJsZSIKKwlkZXBlbmRzIG9uIENDX1NUQUNLUFJPVEVDVE9SX0FVVE8KKwlkZWZhdWx0 IG4KKwktLS1oZWxwLS0tCisJICAgVGhpcyBvcHRpb24gdHVybnMgb24gdGhlICJzdGFjay1wcm90 ZWN0b3IiIEdDQyBmZWF0dXJlIHVzaW5nIGEgZ2xvYmFsCisJICAgdmFyaWFibGUgaW5zdGVhZCBv ZiBhIHNlZ21lbnQgcmVnaXN0ZXIuIEl0IGlzIHVzZWZ1bCB3aGVuIHRoZQorCSAgIGNvbXBpbGVy IGRvZXMgbm90IHN1cHBvcnQgY3VzdG9tIHNlZ21lbnQgcmVnaXN0ZXJzIHdoZW4gYnVpbGRpbmcg YQorCSAgIHBvc2l0aW9uIGluZGVwZW5kZW50IChQSUUpIGJpbmFyeS4KKworCSAgIElmIHVuc3Vy ZSwgc2F5IE4KKwogY29uZmlnIEhPVFBMVUdfQ1BVCiAJYm9vbCAiU3VwcG9ydCBmb3IgaG90LXBs dWdnYWJsZSBDUFVzIgogCWRlcGVuZHMgb24gU01QCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9NYWtl ZmlsZSBiL2FyY2gveDg2L01ha2VmaWxlCmluZGV4IDYwMTM1Y2JkOTA1Yy4uMjc3ZmZjNTdhZTEz IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9NYWtlZmlsZQorKysgYi9hcmNoL3g4Ni9NYWtlZmlsZQpA QCAtMTQxLDYgKzE0MSwxNSBAQCBlbHNlCiAgICAgICAgIEtCVUlMRF9DRkxBR1MgKz0gJChjYWxs IGNjLW9wdGlvbiwtZnVuaXQtYXQtYS10aW1lKQogZW5kaWYKIAoraWZkZWYgQ09ORklHX1g4Nl9H TE9CQUxfU1RBQ0tQUk9URUNUT1IKKyAgICAgICAgaWZlcSAoJChjYWxsIGNjLW9wdGlvbiwgLW1z dGFjay1wcm90ZWN0b3ItZ3VhcmQ9Z2xvYmFsKSwpCisgICAgICAgICAgICAgICAgJChlcnJvciBD YW5ub3QgdXNlIENPTkZJR19YODZfR0xPQkFMX1NUQUNLUFJPVEVDVE9SOiBcCisgICAgICAgICAg ICAgICAgICAgICAgICAtbXN0YWNrLXByb3RlY3Rvci1ndWFyZD1nbG9iYWwgbm90IHN1cHBvcnRl ZCBcCisgICAgICAgICAgICAgICAgICAgICAgICBieSBjb21waWxlcikKKyAgICAgICAgZW5kaWYK KyAgICAgICAgS0JVSUxEX0NGTEFHUyArPSAtbXN0YWNrLXByb3RlY3Rvci1ndWFyZD1nbG9iYWwK K2VuZGlmCisKIGlmZGVmIENPTkZJR19YODZfWDMyCiAJeDMyX2xkX29rIDo9ICQoY2FsbCB0cnkt cnVuLFwKIAkJCS9iaW4vZWNobyAtZSAnMTogLnF1YWQgMWInIHwgXApkaWZmIC0tZ2l0IGEvYXJj aC94ODYvZW50cnkvZW50cnlfMzIuUyBiL2FyY2gveDg2L2VudHJ5L2VudHJ5XzMyLlMKaW5kZXgg YmI0ZjU0MGJlMjM0Li4yZjliZGJjNmJlNmQgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2VudHJ5L2Vu dHJ5XzMyLlMKKysrIGIvYXJjaC94ODYvZW50cnkvZW50cnlfMzIuUwpAQCAtMjQxLDcgKzI0MSw4 IEBAIEVOVFJZKF9fc3dpdGNoX3RvX2FzbSkKIAltb3ZsCSVlc3AsIFRBU0tfdGhyZWFkc3AoJWVh eCkKIAltb3ZsCVRBU0tfdGhyZWFkc3AoJWVkeCksICVlc3AKIAotI2lmZGVmIENPTkZJR19DQ19T VEFDS1BST1RFQ1RPUgorI2lmIGRlZmluZWQoQ09ORklHX0NDX1NUQUNLUFJPVEVDVE9SKSAmJiBc CisJIWRlZmluZWQoQ09ORklHX1g4Nl9HTE9CQUxfU1RBQ0tQUk9URUNUT1IpCiAJbW92bAlUQVNL X3N0YWNrX2NhbmFyeSglZWR4KSwgJWVieAogCW1vdmwJJWVieCwgUEVSX0NQVV9WQVIoc3RhY2tf Y2FuYXJ5KStzdGFja19jYW5hcnlfb2Zmc2V0CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gveDg2 L2VudHJ5L2VudHJ5XzY0LlMgYi9hcmNoL3g4Ni9lbnRyeS9lbnRyeV82NC5TCmluZGV4IGMxNzAw YjAwYjFiNi4uYzhiNGU4YTdkMWUxIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9lbnRyeS9lbnRyeV82 NC5TCisrKyBiL2FyY2gveDg2L2VudHJ5L2VudHJ5XzY0LlMKQEAgLTM1OSw3ICszNTksOCBAQCBF TlRSWShfX3N3aXRjaF90b19hc20pCiAJbW92cQklcnNwLCBUQVNLX3RocmVhZHNwKCVyZGkpCiAJ bW92cQlUQVNLX3RocmVhZHNwKCVyc2kpLCAlcnNwCiAKLSNpZmRlZiBDT05GSUdfQ0NfU1RBQ0tQ Uk9URUNUT1IKKyNpZiBkZWZpbmVkKENPTkZJR19DQ19TVEFDS1BST1RFQ1RPUikgJiYgXAorCSFk ZWZpbmVkKENPTkZJR19YODZfR0xPQkFMX1NUQUNLUFJPVEVDVE9SKQogCW1vdnEJVEFTS19zdGFj a19jYW5hcnkoJXJzaSksICVyYngKIAltb3ZxCSVyYngsIFBFUl9DUFVfVkFSKGlycV9zdGFja191 bmlvbiArIHN0YWNrX2NhbmFyeV9vZmZzZXQpCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gveDg2 L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vcHJvY2Vzc29y LmgKaW5kZXggNWNmMzZmYTMwMjU0Li42ZTVkOWFjM2JmMTcgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2 L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oCisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nl c3Nvci5oCkBAIC00MTQsNyArNDE0LDggQEAgZXh0ZXJuIGFzbWxpbmthZ2Ugdm9pZCBpZ25vcmVf c3lzcmV0KHZvaWQpOwogdm9pZCBzYXZlX2ZzZ3NfZm9yX2t2bSh2b2lkKTsKICNlbmRpZgogI2Vs c2UJLyogWDg2XzY0ICovCi0jaWZkZWYgQ09ORklHX0NDX1NUQUNLUFJPVEVDVE9SCisjaWYgZGVm aW5lZChDT05GSUdfQ0NfU1RBQ0tQUk9URUNUT1IpICYmIFwKKwkhZGVmaW5lZChDT05GSUdfWDg2 X0dMT0JBTF9TVEFDS1BST1RFQ1RPUikKIC8qCiAgKiBNYWtlIHN1cmUgc3RhY2sgY2FuYXJ5IHNl Z21lbnQgYmFzZSBpcyBjYWNoZWQtYWxpZ25lZDoKICAqICAgIkZvciBJbnRlbCBBdG9tIHByb2Nl c3NvcnMsIGF2b2lkIG5vbiB6ZXJvIHNlZ21lbnQgYmFzZSBhZGRyZXNzCmRpZmYgLS1naXQgYS9h cmNoL3g4Ni9pbmNsdWRlL2FzbS9zdGFja3Byb3RlY3Rvci5oIGIvYXJjaC94ODYvaW5jbHVkZS9h c20vc3RhY2twcm90ZWN0b3IuaAppbmRleCAzNzFiM2E0YWYwMDAuLjUwNjNmNTdkOTlmNSAxMDA2 NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20vc3RhY2twcm90ZWN0b3IuaAorKysgYi9hcmNo L3g4Ni9pbmNsdWRlL2FzbS9zdGFja3Byb3RlY3Rvci5oCkBAIC01Miw2ICs1MiwxMCBAQAogI2Rl ZmluZSBHRFRfU1RBQ0tfQ0FOQVJZX0lOSVQJCQkJCQlcCiAJW0dEVF9FTlRSWV9TVEFDS19DQU5B UlldID0gR0RUX0VOVFJZX0lOSVQoMHg0MDkwLCAwLCAweDE4KSwKIAorI2lmZGVmIENPTkZJR19Y ODZfR0xPQkFMX1NUQUNLUFJPVEVDVE9SCitleHRlcm4gdW5zaWduZWQgbG9uZyBfX3N0YWNrX2No a19ndWFyZDsKKyNlbmRpZgorCiAvKgogICogSW5pdGlhbGl6ZSB0aGUgc3RhY2twcm90ZWN0b3Ig Y2FuYXJ5IHZhbHVlLgogICoKQEAgLTYzLDcgKzY3LDcgQEAgc3RhdGljIF9fYWx3YXlzX2lubGlu ZSB2b2lkIGJvb3RfaW5pdF9zdGFja19jYW5hcnkodm9pZCkKIAl1NjQgY2FuYXJ5OwogCXU2NCB0 c2M7CiAKLSNpZmRlZiBDT05GSUdfWDg2XzY0CisjaWYgZGVmaW5lZChDT05GSUdfWDg2XzY0KSAm JiAhZGVmaW5lZChDT05GSUdfWDg2X0dMT0JBTF9TVEFDS1BST1RFQ1RPUikKIAlCVUlMRF9CVUdf T04ob2Zmc2V0b2YodW5pb24gaXJxX3N0YWNrX3VuaW9uLCBzdGFja19jYW5hcnkpICE9IDQwKTsK ICNlbmRpZgogCS8qCkBAIC03NywxNyArODEsMjIgQEAgc3RhdGljIF9fYWx3YXlzX2lubGluZSB2 b2lkIGJvb3RfaW5pdF9zdGFja19jYW5hcnkodm9pZCkKIAljYW5hcnkgKz0gdHNjICsgKHRzYyA8 PCAzMlVMKTsKIAljYW5hcnkgJj0gQ0FOQVJZX01BU0s7CiAKKyNpZmRlZiBDT05GSUdfWDg2X0dM T0JBTF9TVEFDS1BST1RFQ1RPUgorCWlmIChfX3N0YWNrX2Noa19ndWFyZCA9PSAwKQorCQlfX3N0 YWNrX2Noa19ndWFyZCA9IGNhbmFyeSA/OiAxOworI2Vsc2UgLyogIUNPTkZJR19YODZfR0xPQkFM X1NUQUNLUFJPVEVDVE9SICovCiAJY3VycmVudC0+c3RhY2tfY2FuYXJ5ID0gY2FuYXJ5OwogI2lm ZGVmIENPTkZJR19YODZfNjQKIAl0aGlzX2NwdV93cml0ZShpcnFfc3RhY2tfdW5pb24uc3RhY2tf Y2FuYXJ5LCBjYW5hcnkpOwotI2Vsc2UKKyNlbHNlIC8qIENPTkZJR19YODZfMzIgKi8KIAl0aGlz X2NwdV93cml0ZShzdGFja19jYW5hcnkuY2FuYXJ5LCBjYW5hcnkpOwogI2VuZGlmCisjZW5kaWYK IH0KIAogc3RhdGljIGlubGluZSB2b2lkIHNldHVwX3N0YWNrX2NhbmFyeV9zZWdtZW50KGludCBj cHUpCiB7Ci0jaWZkZWYgQ09ORklHX1g4Nl8zMgorI2lmIGRlZmluZWQoQ09ORklHX1g4Nl8zMikg JiYgIWRlZmluZWQoQ09ORklHX1g4Nl9HTE9CQUxfU1RBQ0tQUk9URUNUT1IpCiAJdW5zaWduZWQg bG9uZyBjYW5hcnkgPSAodW5zaWduZWQgbG9uZykmcGVyX2NwdShzdGFja19jYW5hcnksIGNwdSk7 CiAJc3RydWN0IGRlc2Nfc3RydWN0ICpnZHRfdGFibGUgPSBnZXRfY3B1X2dkdF9ydyhjcHUpOwog CXN0cnVjdCBkZXNjX3N0cnVjdCBkZXNjOwpAQCAtMTAwLDcgKzEwOSw3IEBAIHN0YXRpYyBpbmxp bmUgdm9pZCBzZXR1cF9zdGFja19jYW5hcnlfc2VnbWVudChpbnQgY3B1KQogCiBzdGF0aWMgaW5s aW5lIHZvaWQgbG9hZF9zdGFja19jYW5hcnlfc2VnbWVudCh2b2lkKQogewotI2lmZGVmIENPTkZJ R19YODZfMzIKKyNpZiBkZWZpbmVkKENPTkZJR19YODZfMzIpICYmICFkZWZpbmVkKENPTkZJR19Y ODZfR0xPQkFMX1NUQUNLUFJPVEVDVE9SKQogCWFzbSgibW92ICUwLCAlJWdzIiA6IDogInIiIChf X0tFUk5FTF9TVEFDS19DQU5BUlkpIDogIm1lbW9yeSIpOwogI2VuZGlmCiB9CkBAIC0xMTYsNyAr MTI1LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHNldHVwX3N0YWNrX2NhbmFyeV9zZWdtZW50KGlu dCBjcHUpCiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBsb2FkX3N0YWNrX2NhbmFyeV9zZWdtZW50KHZv aWQpCiB7Ci0jaWZkZWYgQ09ORklHX1g4Nl8zMgorI2lmIGRlZmluZWQoQ09ORklHX1g4Nl8zMikg JiYgIWRlZmluZWQoQ09ORklHX1g4Nl9HTE9CQUxfU1RBQ0tQUk9URUNUT1IpCiAJYXNtIHZvbGF0 aWxlICgibW92ICUwLCAlJWdzIiA6IDogInIiICgwKSk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBh L2FyY2gveDg2L2tlcm5lbC9hc20tb2Zmc2V0cy5jIGIvYXJjaC94ODYva2VybmVsL2FzbS1vZmZz ZXRzLmMKaW5kZXggNzY0MTdhOWFhYjczLi40YzllMWI2NjdiZGEgMTAwNjQ0Ci0tLSBhL2FyY2gv eDg2L2tlcm5lbC9hc20tb2Zmc2V0cy5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9hc20tb2Zmc2V0 cy5jCkBAIC0zMiw3ICszMiw4IEBACiB2b2lkIGNvbW1vbih2b2lkKSB7CiAJQkxBTksoKTsKIAlP RkZTRVQoVEFTS190aHJlYWRzcCwgdGFza19zdHJ1Y3QsIHRocmVhZC5zcCk7Ci0jaWZkZWYgQ09O RklHX0NDX1NUQUNLUFJPVEVDVE9SCisjaWYgZGVmaW5lZChDT05GSUdfQ0NfU1RBQ0tQUk9URUNU T1IpICYmIFwKKwkhZGVmaW5lZChDT05GSUdfWDg2X0dMT0JBTF9TVEFDS1BST1RFQ1RPUikKIAlP RkZTRVQoVEFTS19zdGFja19jYW5hcnksIHRhc2tfc3RydWN0LCBzdGFja19jYW5hcnkpOwogI2Vu ZGlmCiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9hc20tb2Zmc2V0c18zMi5jIGIvYXJj aC94ODYva2VybmVsL2FzbS1vZmZzZXRzXzMyLmMKaW5kZXggZjkxYmE1M2UwNmM4Li5jZjhlZjU1 YThiODIgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9hc20tb2Zmc2V0c18zMi5jCisrKyBi L2FyY2gveDg2L2tlcm5lbC9hc20tb2Zmc2V0c18zMi5jCkBAIC01MCw3ICs1MCw4IEBAIHZvaWQg Zm9vKHZvaWQpCiAJREVGSU5FKFRTU19zeXNlbnRlcl9zcDAsIG9mZnNldG9mKHN0cnVjdCBjcHVf ZW50cnlfYXJlYSwgdHNzLng4Nl90c3Muc3AwKSAtCiAJICAgICAgIG9mZnNldG9mZW5kKHN0cnVj dCBjcHVfZW50cnlfYXJlYSwgZW50cnlfc3RhY2tfcGFnZS5zdGFjaykpOwogCi0jaWZkZWYgQ09O RklHX0NDX1NUQUNLUFJPVEVDVE9SCisjaWYgZGVmaW5lZChDT05GSUdfQ0NfU1RBQ0tQUk9URUNU T1IpICYmIFwKKwkhZGVmaW5lZChDT05GSUdfWDg2X0dMT0JBTF9TVEFDS1BST1RFQ1RPUikKIAlC TEFOSygpOwogCU9GRlNFVChzdGFja19jYW5hcnlfb2Zmc2V0LCBzdGFja19jYW5hcnksIGNhbmFy eSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9hc20tb2Zmc2V0c182NC5j IGIvYXJjaC94ODYva2VybmVsL2FzbS1vZmZzZXRzXzY0LmMKaW5kZXggYmY1MWU1MWQ4MDhkLi5h M2M3ZTE0ZjY0MzQgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9hc20tb2Zmc2V0c182NC5j CisrKyBiL2FyY2gveDg2L2tlcm5lbC9hc20tb2Zmc2V0c182NC5jCkBAIC02OSw3ICs2OSw4IEBA IGludCBtYWluKHZvaWQpCiAJT0ZGU0VUKFRTU19zcDEsIHRzc19zdHJ1Y3QsIHg4Nl90c3Muc3Ax KTsKIAlCTEFOSygpOwogCi0jaWZkZWYgQ09ORklHX0NDX1NUQUNLUFJPVEVDVE9SCisjaWYgZGVm aW5lZChDT05GSUdfQ0NfU1RBQ0tQUk9URUNUT1IpICYmIFwKKwkhZGVmaW5lZChDT05GSUdfWDg2 X0dMT0JBTF9TVEFDS1BST1RFQ1RPUikKIAlERUZJTkUoc3RhY2tfY2FuYXJ5X29mZnNldCwgb2Zm c2V0b2YodW5pb24gaXJxX3N0YWNrX3VuaW9uLCBzdGFja19jYW5hcnkpKTsKIAlCTEFOSygpOwog I2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L2NvbW1vbi5jIGIvYXJjaC94 ODYva2VybmVsL2NwdS9jb21tb24uYwppbmRleCAzOWVkMmU2ZmY4YTAuLmQyNzlhN2RmNTAxOCAx MDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2NwdS9jb21tb24uYworKysgYi9hcmNoL3g4Ni9r ZXJuZWwvY3B1L2NvbW1vbi5jCkBAIC0xNTQwLDcgKzE1NDAsOCBAQCBERUZJTkVfUEVSX0NQVSh1 bnNpZ25lZCBsb25nLCBjcHVfY3VycmVudF90b3Bfb2Zfc3RhY2spID0KIAkodW5zaWduZWQgbG9u ZykmaW5pdF90aHJlYWRfdW5pb24gKyBUSFJFQURfU0laRTsKIEVYUE9SVF9QRVJfQ1BVX1NZTUJP TChjcHVfY3VycmVudF90b3Bfb2Zfc3RhY2spOwogCi0jaWZkZWYgQ09ORklHX0NDX1NUQUNLUFJP VEVDVE9SCisjaWYgZGVmaW5lZChDT05GSUdfQ0NfU1RBQ0tQUk9URUNUT1IpICYmIFwKKwkhZGVm aW5lZChDT05GSUdfWDg2X0dMT0JBTF9TVEFDS1BST1RFQ1RPUikKIERFRklORV9QRVJfQ1BVX0FM SUdORUQoc3RydWN0IHN0YWNrX2NhbmFyeSwgc3RhY2tfY2FuYXJ5KTsKICNlbmRpZgogCmRpZmYg LS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvaGVhZF8zMi5TIGIvYXJjaC94ODYva2VybmVsL2hlYWRf MzIuUwppbmRleCBiNTllNGZiNDBmZDkuLjBlODQ5MjQyZGU5MSAxMDA2NDQKLS0tIGEvYXJjaC94 ODYva2VybmVsL2hlYWRfMzIuUworKysgYi9hcmNoL3g4Ni9rZXJuZWwvaGVhZF8zMi5TCkBAIC0z NzUsNyArMzc1LDggQEAgRU5EUFJPQyhzdGFydHVwXzMyX3NtcCkKICAqLwogX19JTklUCiBzZXR1 cF9vbmNlOgotI2lmZGVmIENPTkZJR19DQ19TVEFDS1BST1RFQ1RPUgorI2lmIGRlZmluZWQoQ09O RklHX0NDX1NUQUNLUFJPVEVDVE9SKSAmJiBcCisJIWRlZmluZWQoQ09ORklHX1g4Nl9HTE9CQUxf U1RBQ0tQUk9URUNUT1IpCiAJLyoKIAkgKiBDb25maWd1cmUgdGhlIHN0YWNrIGNhbmFyeS4gVGhl IGxpbmtlciBjYW4ndCBoYW5kbGUgdGhpcyBieQogCSAqIHJlbG9jYXRpb24uICBNYW51YWxseSBz ZXQgYmFzZSBhZGRyZXNzIGluIHN0YWNrIGNhbmFyeQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2Vy bmVsL3Byb2Nlc3MuYyBiL2FyY2gveDg2L2tlcm5lbC9wcm9jZXNzLmMKaW5kZXggMDM0MDhiOTQy YWRiLi5lYmUyMWQyNThhODIgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9wcm9jZXNzLmMK KysrIGIvYXJjaC94ODYva2VybmVsL3Byb2Nlc3MuYwpAQCAtODYsNiArODYsMTEgQEAgRVhQT1JU X1BFUl9DUFVfU1lNQk9MKGNwdV90c3NfcncpOwogREVGSU5FX1BFUl9DUFUoYm9vbCwgX190c3Nf bGltaXRfaW52YWxpZCk7CiBFWFBPUlRfUEVSX0NQVV9TWU1CT0xfR1BMKF9fdHNzX2xpbWl0X2lu dmFsaWQpOwogCisjaWZkZWYgQ09ORklHX1g4Nl9HTE9CQUxfU1RBQ0tQUk9URUNUT1IKK3Vuc2ln bmVkIGxvbmcgX19zdGFja19jaGtfZ3VhcmQgX19yZWFkX21vc3RseTsKK0VYUE9SVF9TWU1CT0wo X19zdGFja19jaGtfZ3VhcmQpOworI2VuZGlmCisKIC8qCiAgKiB0aGlzIGdldHMgY2FsbGVkIHNv IHRoYXQgd2UgY2FuIHN0b3JlIGxhenkgc3RhdGUgaW50byBtZW1vcnkgYW5kIGNvcHkgdGhlCiAg KiBjdXJyZW50IHRhc2sgaW50byB0aGUgbmV3IHRocmVhZC4KLS0gCjIuMTcuMC40NDEuZ2I0NmZl NjBlMWQtZ29vZwoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3Jn Cmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=