From: Thomas Garnier Subject: [RFC v2 19/23] x86: Support global stack cookie Date: Thu, 10 Aug 2017 10:26:11 -0700 Message-ID: <20170810172615.51965-20-thgarnie@google.com> References: <20170810172615.51965-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-kernel@vger.kernel.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 , Matthias Kaehlcke , Boris Ostrovsky , Juergen Gross , Paolo Bonzini , =?UTF-8?q?Radim=20Kr=C4=8Dm=C3=A1=C5=99?= , Joerg Roedel , Tom Lendacky , Andy Lutomirski , Borislav Petkov , Brian Gerst , "Kirill A . Shutemov" , "Rafael J . Wysocki" , Len Brown , Pavel Machek Return-path: In-Reply-To: <20170810172615.51965-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 ICAgICAgICAgICAgfCAgNCArKysrCiBhcmNoL3g4Ni9NYWtlZmlsZSAgICAgICAgICAgICAgICAg ICAgIHwgIDkgKysrKysrKysrCiBhcmNoL3g4Ni9lbnRyeS9lbnRyeV8zMi5TICAgICAgICAgICAg IHwgIDMgKystCiBhcmNoL3g4Ni9lbnRyeS9lbnRyeV82NC5TICAgICAgICAgICAgIHwgIDMgKyst CiBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCAgICAgIHwgIDMgKystCiBhcmNoL3g4 Ni9pbmNsdWRlL2FzbS9zdGFja3Byb3RlY3Rvci5oIHwgMTkgKysrKysrKysrKysrKystLS0tLQog YXJjaC94ODYva2VybmVsL2FzbS1vZmZzZXRzLmMgICAgICAgICB8ICAzICsrLQogYXJjaC94ODYv a2VybmVsL2FzbS1vZmZzZXRzXzMyLmMgICAgICB8ICAzICsrLQogYXJjaC94ODYva2VybmVsL2Fz bS1vZmZzZXRzXzY0LmMgICAgICB8ICAzICsrLQogYXJjaC94ODYva2VybmVsL2NwdS9jb21tb24u YyAgICAgICAgICB8ICAzICsrLQogYXJjaC94ODYva2VybmVsL2hlYWRfMzIuUyAgICAgICAgICAg ICB8ICAzICsrLQogYXJjaC94ODYva2VybmVsL3Byb2Nlc3MuYyAgICAgICAgICAgICB8ICA1ICsr KysrCiAxMiBmaWxlcyBjaGFuZ2VkLCA0OCBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9LY29uZmlnIGIvYXJjaC94ODYvS2NvbmZpZwppbmRleCBk YTM3YmEzNzVlNjMuLjI2MzJmYThlODk0NSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvS2NvbmZpZwor KysgYi9hcmNoL3g4Ni9LY29uZmlnCkBAIC0yMTI4LDYgKzIxMjgsMTAgQEAgY29uZmlnIFJBTkRP TUlaRV9NRU1PUllfUEhZU0lDQUxfUEFERElORwogCiAJICAgSWYgdW5zdXJlLCBsZWF2ZSBhdCB0 aGUgZGVmYXVsdCB2YWx1ZS4KIAorY29uZmlnIFg4Nl9HTE9CQUxfU1RBQ0tQUk9URUNUT1IKKwli b29sCisJZGVwZW5kcyBvbiBDQ19TVEFDS1BST1RFQ1RPUgorCiBjb25maWcgSE9UUExVR19DUFUK IAlib29sICJTdXBwb3J0IGZvciBob3QtcGx1Z2dhYmxlIENQVXMiCiAJZGVwZW5kcyBvbiBTTVAK ZGlmZiAtLWdpdCBhL2FyY2gveDg2L01ha2VmaWxlIGIvYXJjaC94ODYvTWFrZWZpbGUKaW5kZXgg MWU5MDJmOTI2YmUzLi42NmFmMjcwNGYwOTYgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L01ha2VmaWxl CisrKyBiL2FyY2gveDg2L01ha2VmaWxlCkBAIC01OCw2ICs1OCwxNSBAQCBlbmRpZgogS0JVSUxE X0NGTEFHUyArPSAtbW5vLXNzZSAtbW5vLW1teCAtbW5vLXNzZTIgLW1uby0zZG5vdwogS0JVSUxE X0NGTEFHUyArPSAkKGNhbGwgY2Mtb3B0aW9uLC1tbm8tYXZ4LCkKIAoraWZkZWYgQ09ORklHX1g4 Nl9HTE9CQUxfU1RBQ0tQUk9URUNUT1IKKyAgICAgICAgaWZlcSAoJChjYWxsIGNjLW9wdGlvbiwg LW1zdGFjay1wcm90ZWN0b3ItZ3VhcmQ9Z2xvYmFsKSwpCisgICAgICAgICAgICAgICAgJChlcnJv ciBDYW5ub3QgdXNlIENPTkZJR19YODZfR0xPQkFMX1NUQUNLUFJPVEVDVE9SOiBcCisgICAgICAg ICAgICAgICAgICAgICAgICAtbXN0YWNrLXByb3RlY3Rvci1ndWFyZD1nbG9iYWwgbm90IHN1cHBv cnRlZCBcCisgICAgICAgICAgICAgICAgICAgICAgICBieSBjb21waWxlcikKKyAgICAgICAgZW5k aWYKKyAgICAgICAgS0JVSUxEX0NGTEFHUyArPSAtbXN0YWNrLXByb3RlY3Rvci1ndWFyZD1nbG9i YWwKK2VuZGlmCisKIGlmZXEgKCQoQ09ORklHX1g4Nl8zMikseSkKICAgICAgICAgQklUUyA6PSAz MgogICAgICAgICBVVFNfTUFDSElORSA6PSBpMzg2CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9lbnRy eS9lbnRyeV8zMi5TIGIvYXJjaC94ODYvZW50cnkvZW50cnlfMzIuUwppbmRleCA0OGVmN2JiMzJj NDIuLjkxYjRmMmM0ZjgzNyAxMDA2NDQKLS0tIGEvYXJjaC94ODYvZW50cnkvZW50cnlfMzIuUwor KysgYi9hcmNoL3g4Ni9lbnRyeS9lbnRyeV8zMi5TCkBAIC0yMzcsNyArMjM3LDggQEAgRU5UUlko X19zd2l0Y2hfdG9fYXNtKQogCW1vdmwJJWVzcCwgVEFTS190aHJlYWRzcCglZWF4KQogCW1vdmwJ VEFTS190aHJlYWRzcCglZWR4KSwgJWVzcAogCi0jaWZkZWYgQ09ORklHX0NDX1NUQUNLUFJPVEVD VE9SCisjaWYgZGVmaW5lZChDT05GSUdfQ0NfU1RBQ0tQUk9URUNUT1IpICYmIFwKKwkhZGVmaW5l ZChDT05GSUdfWDg2X0dMT0JBTF9TVEFDS1BST1RFQ1RPUikKIAltb3ZsCVRBU0tfc3RhY2tfY2Fu YXJ5KCVlZHgpLCAlZWJ4CiAJbW92bAklZWJ4LCBQRVJfQ1BVX1ZBUihzdGFja19jYW5hcnkpK3N0 YWNrX2NhbmFyeV9vZmZzZXQKICNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvZW50cnkvZW50 cnlfNjQuUyBiL2FyY2gveDg2L2VudHJ5L2VudHJ5XzY0LlMKaW5kZXggYzFmOWIyOWQ0YzI0Li41 NjYzODAxMTJhNGYgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2VudHJ5L2VudHJ5XzY0LlMKKysrIGIv YXJjaC94ODYvZW50cnkvZW50cnlfNjQuUwpAQCAtMzk1LDcgKzM5NSw4IEBAIEVOVFJZKF9fc3dp dGNoX3RvX2FzbSkKIAltb3ZxCSVyc3AsIFRBU0tfdGhyZWFkc3AoJXJkaSkKIAltb3ZxCVRBU0tf dGhyZWFkc3AoJXJzaSksICVyc3AKIAotI2lmZGVmIENPTkZJR19DQ19TVEFDS1BST1RFQ1RPUgor I2lmIGRlZmluZWQoQ09ORklHX0NDX1NUQUNLUFJPVEVDVE9SKSAmJiBcCisJIWRlZmluZWQoQ09O RklHX1g4Nl9HTE9CQUxfU1RBQ0tQUk9URUNUT1IpCiAJbW92cQlUQVNLX3N0YWNrX2NhbmFyeSgl cnNpKSwgJXJieAogCW1vdnEJJXJieCwgUEVSX0NQVV9WQVIoaXJxX3N0YWNrX3VuaW9uICsgc3Rh Y2tfY2FuYXJ5X29mZnNldCkKICNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9h c20vcHJvY2Vzc29yLmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaAppbmRleCAx NGZjMjFlMmRmMDguLjg0MmIzYjVkNWUzNiAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9h c20vcHJvY2Vzc29yLmgKKysrIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgKQEAg LTM5NCw3ICszOTQsOCBAQCBERUNMQVJFX1BFUl9DUFUoY2hhciAqLCBpcnFfc3RhY2tfcHRyKTsK IERFQ0xBUkVfUEVSX0NQVSh1bnNpZ25lZCBpbnQsIGlycV9jb3VudCk7CiBleHRlcm4gYXNtbGlu a2FnZSB2b2lkIGlnbm9yZV9zeXNyZXQodm9pZCk7CiAjZWxzZQkvKiBYODZfNjQgKi8KLSNpZmRl ZiBDT05GSUdfQ0NfU1RBQ0tQUk9URUNUT1IKKyNpZiBkZWZpbmVkKENPTkZJR19DQ19TVEFDS1BS T1RFQ1RPUikgJiYgXAorCWRlZmluZWQoQ09ORklHX1g4Nl9HTE9CQUxfU1RBQ0tQUk9URUNUT1Ip CiAvKgogICogTWFrZSBzdXJlIHN0YWNrIGNhbmFyeSBzZWdtZW50IGJhc2UgaXMgY2FjaGVkLWFs aWduZWQ6CiAgKiAgICJGb3IgSW50ZWwgQXRvbSBwcm9jZXNzb3JzLCBhdm9pZCBub24gemVybyBz ZWdtZW50IGJhc2UgYWRkcmVzcwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20vc3Rh Y2twcm90ZWN0b3IuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL3N0YWNrcHJvdGVjdG9yLmgKaW5k ZXggOGFiZWRmMWQ2NTBlLi42NjQ2MmQ3NzhkYzUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2luY2x1 ZGUvYXNtL3N0YWNrcHJvdGVjdG9yLmgKKysrIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vc3RhY2tw cm90ZWN0b3IuaApAQCAtNTEsNiArNTEsMTAgQEAKICNkZWZpbmUgR0RUX1NUQUNLX0NBTkFSWV9J TklUCQkJCQkJXAogCVtHRFRfRU5UUllfU1RBQ0tfQ0FOQVJZXSA9IEdEVF9FTlRSWV9JTklUKDB4 NDA5MCwgMCwgMHgxOCksCiAKKyNpZmRlZiBDT05GSUdfWDg2X0dMT0JBTF9TVEFDS1BST1RFQ1RP UgorZXh0ZXJuIHVuc2lnbmVkIGxvbmcgX19zdGFja19jaGtfZ3VhcmQ7CisjZW5kaWYKKwogLyoK ICAqIEluaXRpYWxpemUgdGhlIHN0YWNrcHJvdGVjdG9yIGNhbmFyeSB2YWx1ZS4KICAqCkBAIC02 Miw3ICs2Niw3IEBAIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdm9pZCBib290X2luaXRfc3RhY2tf Y2FuYXJ5KHZvaWQpCiAJdTY0IGNhbmFyeTsKIAl1NjQgdHNjOwogCi0jaWZkZWYgQ09ORklHX1g4 Nl82NAorI2lmIGRlZmluZWQoQ09ORklHX1g4Nl82NCkgJiYgIWRlZmluZWQoQ09ORklHX1g4Nl9H TE9CQUxfU1RBQ0tQUk9URUNUT1IpCiAJQlVJTERfQlVHX09OKG9mZnNldG9mKHVuaW9uIGlycV9z dGFja191bmlvbiwgc3RhY2tfY2FuYXJ5KSAhPSA0MCk7CiAjZW5kaWYKIAkvKgpAQCAtNzYsMTcg KzgwLDIyIEBAIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdm9pZCBib290X2luaXRfc3RhY2tfY2Fu YXJ5KHZvaWQpCiAJY2FuYXJ5ICs9IHRzYyArICh0c2MgPDwgMzJVTCk7CiAJY2FuYXJ5ICY9IENB TkFSWV9NQVNLOwogCisjaWZkZWYgQ09ORklHX1g4Nl9HTE9CQUxfU1RBQ0tQUk9URUNUT1IKKwlp ZiAoX19zdGFja19jaGtfZ3VhcmQgPT0gMCkKKwkJX19zdGFja19jaGtfZ3VhcmQgPSBjYW5hcnkg PzogMTsKKyNlbHNlIC8qICFDT05GSUdfWDg2X0dMT0JBTF9TVEFDS1BST1RFQ1RPUiAqLwogCWN1 cnJlbnQtPnN0YWNrX2NhbmFyeSA9IGNhbmFyeTsKICNpZmRlZiBDT05GSUdfWDg2XzY0CiAJdGhp c19jcHVfd3JpdGUoaXJxX3N0YWNrX3VuaW9uLnN0YWNrX2NhbmFyeSwgY2FuYXJ5KTsKLSNlbHNl CisjZWxzZSAvKiBDT05GSUdfWDg2XzMyICovCiAJdGhpc19jcHVfd3JpdGUoc3RhY2tfY2FuYXJ5 LmNhbmFyeSwgY2FuYXJ5KTsKICNlbmRpZgorI2VuZGlmCiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9p ZCBzZXR1cF9zdGFja19jYW5hcnlfc2VnbWVudChpbnQgY3B1KQogewotI2lmZGVmIENPTkZJR19Y ODZfMzIKKyNpZiBkZWZpbmVkKENPTkZJR19YODZfMzIpICYmICFkZWZpbmVkKENPTkZJR19YODZf R0xPQkFMX1NUQUNLUFJPVEVDVE9SKQogCXVuc2lnbmVkIGxvbmcgY2FuYXJ5ID0gKHVuc2lnbmVk IGxvbmcpJnBlcl9jcHUoc3RhY2tfY2FuYXJ5LCBjcHUpOwogCXN0cnVjdCBkZXNjX3N0cnVjdCAq Z2R0X3RhYmxlID0gZ2V0X2NwdV9nZHRfcncoY3B1KTsKIAlzdHJ1Y3QgZGVzY19zdHJ1Y3QgZGVz YzsKQEAgLTk5LDcgKzEwOCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzZXR1cF9zdGFja19jYW5h cnlfc2VnbWVudChpbnQgY3B1KQogCiBzdGF0aWMgaW5saW5lIHZvaWQgbG9hZF9zdGFja19jYW5h cnlfc2VnbWVudCh2b2lkKQogewotI2lmZGVmIENPTkZJR19YODZfMzIKKyNpZiBkZWZpbmVkKENP TkZJR19YODZfMzIpICYmICFkZWZpbmVkKENPTkZJR19YODZfR0xPQkFMX1NUQUNLUFJPVEVDVE9S KQogCWFzbSgibW92ICUwLCAlJWdzIiA6IDogInIiIChfX0tFUk5FTF9TVEFDS19DQU5BUlkpIDog Im1lbW9yeSIpOwogI2VuZGlmCiB9CkBAIC0xMTUsNyArMTI0LDcgQEAgc3RhdGljIGlubGluZSB2 b2lkIHNldHVwX3N0YWNrX2NhbmFyeV9zZWdtZW50KGludCBjcHUpCiAKIHN0YXRpYyBpbmxpbmUg dm9pZCBsb2FkX3N0YWNrX2NhbmFyeV9zZWdtZW50KHZvaWQpCiB7Ci0jaWZkZWYgQ09ORklHX1g4 Nl8zMgorI2lmIGRlZmluZWQoQ09ORklHX1g4Nl8zMikgJiYgIWRlZmluZWQoQ09ORklHX1g4Nl9H TE9CQUxfU1RBQ0tQUk9URUNUT1IpCiAJYXNtIHZvbGF0aWxlICgibW92ICUwLCAlJWdzIiA6IDog InIiICgwKSk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9hc20tb2Zm c2V0cy5jIGIvYXJjaC94ODYva2VybmVsL2FzbS1vZmZzZXRzLmMKaW5kZXggZGU4MjdkNmFjOGMy Li5iMzBhMTJjZDAyMWUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9hc20tb2Zmc2V0cy5j CisrKyBiL2FyY2gveDg2L2tlcm5lbC9hc20tb2Zmc2V0cy5jCkBAIC0zMCw3ICszMCw4IEBACiB2 b2lkIGNvbW1vbih2b2lkKSB7CiAJQkxBTksoKTsKIAlPRkZTRVQoVEFTS190aHJlYWRzcCwgdGFz a19zdHJ1Y3QsIHRocmVhZC5zcCk7Ci0jaWZkZWYgQ09ORklHX0NDX1NUQUNLUFJPVEVDVE9SCisj aWYgZGVmaW5lZChDT05GSUdfQ0NfU1RBQ0tQUk9URUNUT1IpICYmIFwKKwkhZGVmaW5lZChDT05G SUdfWDg2X0dMT0JBTF9TVEFDS1BST1RFQ1RPUikKIAlPRkZTRVQoVEFTS19zdGFja19jYW5hcnks IHRhc2tfc3RydWN0LCBzdGFja19jYW5hcnkpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2FyY2gv eDg2L2tlcm5lbC9hc20tb2Zmc2V0c18zMi5jIGIvYXJjaC94ODYva2VybmVsL2FzbS1vZmZzZXRz XzMyLmMKaW5kZXggODgwYWEwOTMyNjhkLi45ZGViNjA4NjZlYWIgMTAwNjQ0Ci0tLSBhL2FyY2gv eDg2L2tlcm5lbC9hc20tb2Zmc2V0c18zMi5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9hc20tb2Zm c2V0c18zMi5jCkBAIC01Nyw3ICs1Nyw4IEBAIHZvaWQgZm9vKHZvaWQpCiAJLyogU2l6ZSBvZiBT WVNFTlRFUl9zdGFjayAqLwogCURFRklORShTSVpFT0ZfU1lTRU5URVJfc3RhY2ssIHNpemVvZigo KHN0cnVjdCB0c3Nfc3RydWN0ICopMCktPlNZU0VOVEVSX3N0YWNrKSk7CiAKLSNpZmRlZiBDT05G SUdfQ0NfU1RBQ0tQUk9URUNUT1IKKyNpZiBkZWZpbmVkKENPTkZJR19DQ19TVEFDS1BST1RFQ1RP UikgJiYgXAorCSFkZWZpbmVkKENPTkZJR19YODZfR0xPQkFMX1NUQUNLUFJPVEVDVE9SKQogCUJM QU5LKCk7CiAJT0ZGU0VUKHN0YWNrX2NhbmFyeV9vZmZzZXQsIHN0YWNrX2NhbmFyeSwgY2FuYXJ5 KTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2FzbS1vZmZzZXRzXzY0LmMg Yi9hcmNoL3g4Ni9rZXJuZWwvYXNtLW9mZnNldHNfNjQuYwppbmRleCA5OTMzMmY1NTBjNDguLjI5 N2JjZGZjNTIwYSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2FzbS1vZmZzZXRzXzY0LmMK KysrIGIvYXJjaC94ODYva2VybmVsL2FzbS1vZmZzZXRzXzY0LmMKQEAgLTY1LDcgKzY1LDggQEAg aW50IG1haW4odm9pZCkKIAlPRkZTRVQoVFNTX3NwMCwgdHNzX3N0cnVjdCwgeDg2X3Rzcy5zcDAp OwogCUJMQU5LKCk7CiAKLSNpZmRlZiBDT05GSUdfQ0NfU1RBQ0tQUk9URUNUT1IKKyNpZiBkZWZp bmVkKENPTkZJR19DQ19TVEFDS1BST1RFQ1RPUikgJiYgXAorCSFkZWZpbmVkKENPTkZJR19YODZf R0xPQkFMX1NUQUNLUFJPVEVDVE9SKQogCURFRklORShzdGFja19jYW5hcnlfb2Zmc2V0LCBvZmZz ZXRvZih1bmlvbiBpcnFfc3RhY2tfdW5pb24sIHN0YWNrX2NhbmFyeSkpOwogCUJMQU5LKCk7CiAj ZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9jcHUvY29tbW9uLmMgYi9hcmNoL3g4 Ni9rZXJuZWwvY3B1L2NvbW1vbi5jCmluZGV4IDMxMzAwNzY3ZWMwZi4uOWU4NjA4ZmMxMGE0IDEw MDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L2NvbW1vbi5jCisrKyBiL2FyY2gveDg2L2tl cm5lbC9jcHUvY29tbW9uLmMKQEAgLTE0NTQsNyArMTQ1NCw4IEBAIERFRklORV9QRVJfQ1BVKHVu c2lnbmVkIGxvbmcsIGNwdV9jdXJyZW50X3RvcF9vZl9zdGFjaykgPQogCSh1bnNpZ25lZCBsb25n KSZpbml0X3RocmVhZF91bmlvbiArIFRIUkVBRF9TSVpFOwogRVhQT1JUX1BFUl9DUFVfU1lNQk9M KGNwdV9jdXJyZW50X3RvcF9vZl9zdGFjayk7CiAKLSNpZmRlZiBDT05GSUdfQ0NfU1RBQ0tQUk9U RUNUT1IKKyNpZiBkZWZpbmVkKENPTkZJR19DQ19TVEFDS1BST1RFQ1RPUikgJiYgXAorCSFkZWZp bmVkKENPTkZJR19YODZfR0xPQkFMX1NUQUNLUFJPVEVDVE9SKQogREVGSU5FX1BFUl9DUFVfQUxJ R05FRChzdHJ1Y3Qgc3RhY2tfY2FuYXJ5LCBzdGFja19jYW5hcnkpOwogI2VuZGlmCiAKZGlmZiAt LWdpdCBhL2FyY2gveDg2L2tlcm5lbC9oZWFkXzMyLlMgYi9hcmNoL3g4Ni9rZXJuZWwvaGVhZF8z Mi5TCmluZGV4IDAzMzI2NjRlYjE1OC4uNjk4OWJmYjBhNjI4IDEwMDY0NAotLS0gYS9hcmNoL3g4 Ni9rZXJuZWwvaGVhZF8zMi5TCisrKyBiL2FyY2gveDg2L2tlcm5lbC9oZWFkXzMyLlMKQEAgLTQx MSw3ICs0MTEsOCBAQCBzZXR1cF9vbmNlOgogCWFkZGwgJDgsJWVkaQogCWxvb3AgMmIKIAotI2lm ZGVmIENPTkZJR19DQ19TVEFDS1BST1RFQ1RPUgorI2lmIGRlZmluZWQoQ09ORklHX0NDX1NUQUNL UFJPVEVDVE9SKSAmJiBcCisJIWRlZmluZWQoQ09ORklHX1g4Nl9HTE9CQUxfU1RBQ0tQUk9URUNU T1IpCiAJLyoKIAkgKiBDb25maWd1cmUgdGhlIHN0YWNrIGNhbmFyeS4gVGhlIGxpbmtlciBjYW4n dCBoYW5kbGUgdGhpcyBieQogCSAqIHJlbG9jYXRpb24uICBNYW51YWxseSBzZXQgYmFzZSBhZGRy ZXNzIGluIHN0YWNrIGNhbmFyeQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3Byb2Nlc3Mu YyBiL2FyY2gveDg2L2tlcm5lbC9wcm9jZXNzLmMKaW5kZXggYmQ2Yjg1ZmFjNjY2Li42NmVhMWEz NTQxM2UgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9wcm9jZXNzLmMKKysrIGIvYXJjaC94 ODYva2VybmVsL3Byb2Nlc3MuYwpAQCAtNzMsNiArNzMsMTEgQEAgRVhQT1JUX1BFUl9DUFVfU1lN Qk9MKGNwdV90c3MpOwogREVGSU5FX1BFUl9DUFUoYm9vbCwgX190c3NfbGltaXRfaW52YWxpZCk7 CiBFWFBPUlRfUEVSX0NQVV9TWU1CT0xfR1BMKF9fdHNzX2xpbWl0X2ludmFsaWQpOwogCisjaWZk ZWYgQ09ORklHX1g4Nl9HTE9CQUxfU1RBQ0tQUk9URUNUT1IKK3Vuc2lnbmVkIGxvbmcgX19zdGFj a19jaGtfZ3VhcmQgX19yZWFkX21vc3RseTsKK0VYUE9SVF9TWU1CT0woX19zdGFja19jaGtfZ3Vh cmQpOworI2VuZGlmCisKIC8qCiAgKiB0aGlzIGdldHMgY2FsbGVkIHNvIHRoYXQgd2UgY2FuIHN0 b3JlIGxhenkgc3RhdGUgaW50byBtZW1vcnkgYW5kIGNvcHkgdGhlCiAgKiBjdXJyZW50IHRhc2sg aW50byB0aGUgbmV3IHRocmVhZC4KLS0gCjIuMTQuMC40MzQuZzk4MDk2ZmQ3YTgtZ29vZwoKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBt YWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3Jn L3hlbi1kZXZlbAo=