From: Thomas Garnier Subject: [PATCH v3 14/27] x86/percpu: Adapt percpu for PIE support Date: Wed, 23 May 2018 12:54:08 -0700 Message-ID: <20180523195421.180248-15-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 UGVycGN1IHVzZXMgYSBjbGV2ZXIgZGVzaWduIHdoZXJlIHRoZSAucGVyY3UgRUxGIHNlY3Rpb24g aGFzIGEgdmlydHVhbAphZGRyZXNzIG9mIHplcm8gYW5kIHRoZSByZWxvY2F0aW9uIGNvZGUgYXZv aWQgcmVsb2NhdGluZyBzcGVjaWZpYwpzeW1ib2xzLiBJdCBtYWtlcyB0aGUgY29kZSBzaW1wbGUg YW5kIGVhc2lseSBhZGFwdGFibGUgd2l0aCBvciB3aXRob3V0ClNNUCBzdXBwb3J0LgoKVGhpcyBk ZXNpZ24gaXMgaW5jb21wYXRpYmxlIHdpdGggUElFIGJlY2F1c2UgZ2VuZXJhdGVkIGNvZGUgYWx3 YXlzIHRyeSB0bwphY2Nlc3MgdGhlIHplcm8gdmlydHVhbCBhZGRyZXNzIHJlbGF0aXZlIHRvIHRo ZSBkZWZhdWx0IG1hcHBpbmcgYWRkcmVzcy4KSXQgYmVjb21lcyBpbXBvc3NpYmxlIHdoZW4gS0FT TFIgaXMgY29uZmlndXJlZCB0byBnbyBiZWxvdyAtMkcuIFRoaXMKcGF0Y2ggc29sdmVzIHRoaXMg cHJvYmxlbSBieSByZW1vdmluZyB0aGUgemVybyBtYXBwaW5nIGFuZCBhZGFwdGluZyB0aGUgR1MK YmFzZSB0byBiZSByZWxhdGl2ZSB0byB0aGUgZXhwZWN0ZWQgYWRkcmVzcy4gVGhlc2UgY2hhbmdl cyBhcmUgZG9uZSBvbmx5CndoZW4gUElFIGlzIGVuYWJsZWQuIFRoZSBvcmlnaW5hbCBpbXBsZW1l bnRhdGlvbiBpcyBrZXB0IGFzLWlzCmJ5IGRlZmF1bHQuCgpUaGUgYXNzZW1ibHkgYW5kIFBFUl9D UFUgbWFjcm9zIGFyZSBjaGFuZ2VkIHRvIHVzZSByZWxhdGl2ZSByZWZlcmVuY2VzCndoZW4gUElF IGlzIGVuYWJsZWQuCgpUaGUgS0FMTFNZTVNfQUJTT0xVVEVfUEVSQ1BVIGNvbmZpZ3VyYXRpb24g aXMgZGlzYWJsZWQgd2l0aCBQSUUgZ2l2ZW4KcGVyY3B1IHN5bWJvbHMgYXJlIG5vdCBhYnNvbHV0 ZSBpbiB0aGlzIGNhc2UuCgpQb3NpdGlvbiBJbmRlcGVuZGVudCBFeGVjdXRhYmxlIChQSUUpIHN1 cHBvcnQgd2lsbCBhbGxvdyB0byBleHRlbmRlZCB0aGUKS0FTTFIgcmFuZG9taXphdGlvbiByYW5n ZSBiZWxvdyB0aGUgLTJHIG1lbW9yeSBsaW1pdC4KClNpZ25lZC1vZmYtYnk6IFRob21hcyBHYXJu aWVyIDx0aGdhcm5pZUBnb29nbGUuY29tPgotLS0KIGFyY2gveDg2L2VudHJ5L2NhbGxpbmcuaCAg ICAgICAgIHwgIDIgKy0KIGFyY2gveDg2L2VudHJ5L2VudHJ5XzY0LlMgICAgICAgIHwgIDQgKyst LQogYXJjaC94ODYvaW5jbHVkZS9hc20vcGVyY3B1LmggICAgfCAyNSArKysrKysrKysrKysrKysr KysrLS0tLS0tCiBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCB8ICA0ICsrKy0KIGFy Y2gveDg2L2tlcm5lbC9oZWFkXzY0LlMgICAgICAgIHwgIDQgKysrKwogYXJjaC94ODYva2VybmVs L3NldHVwX3BlcmNwdS5jICAgfCAgNSArKysrLQogYXJjaC94ODYva2VybmVsL3ZtbGludXgubGRz LlMgICAgfCAxMyArKysrKysrKysrKy0tCiBhcmNoL3g4Ni9saWIvY21weGNoZzE2Yl9lbXUuUyAg ICB8ICA4ICsrKystLS0tCiBhcmNoL3g4Ni94ZW4veGVuLWFzbS5TICAgICAgICAgICB8IDEyICsr KysrKy0tLS0tLQogaW5pdC9LY29uZmlnICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogMTAg ZmlsZXMgY2hhbmdlZCwgNTUgaW5zZXJ0aW9ucygrKSwgMjQgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvYXJjaC94ODYvZW50cnkvY2FsbGluZy5oIGIvYXJjaC94ODYvZW50cnkvY2FsbGluZy5o CmluZGV4IDQzYzc5ZTc4NzcwYy4uNTZkNDAzMzY2YzVlIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9l bnRyeS9jYWxsaW5nLmgKKysrIGIvYXJjaC94ODYvZW50cnkvY2FsbGluZy5oCkBAIC0yMTgsNyAr MjE4LDcgQEAgRm9yIDMyLWJpdCB3ZSBoYXZlIHRoZSBmb2xsb3dpbmcgY29udmVudGlvbnMgLSBr ZXJuZWwgaXMgYnVpbHQgd2l0aAogLmVuZG0KIAogI2RlZmluZSBUSElTX0NQVV91c2VyX3BjaWRf Zmx1c2hfbWFzayAgIFwKLQlQRVJfQ1BVX1ZBUihjcHVfdGxic3RhdGUpICsgVExCX1NUQVRFX3Vz ZXJfcGNpZF9mbHVzaF9tYXNrCisJUEVSX0NQVV9WQVIoY3B1X3RsYnN0YXRlICsgVExCX1NUQVRF X3VzZXJfcGNpZF9mbHVzaF9tYXNrKQogCiAubWFjcm8gU1dJVENIX1RPX1VTRVJfQ1IzX05PU1RB Q0sgc2NyYXRjaF9yZWc6cmVxIHNjcmF0Y2hfcmVnMjpyZXEKIAlBTFRFUk5BVElWRSAiam1wIC5M ZW5kX1xAIiwgIiIsIFg4Nl9GRUFUVVJFX1BUSQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvZW50cnkv ZW50cnlfNjQuUyBiL2FyY2gveDg2L2VudHJ5L2VudHJ5XzY0LlMKaW5kZXggODYzOGRjYTc4MTkx Li5jMTcwMGIwMGIxYjYgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2VudHJ5L2VudHJ5XzY0LlMKKysr IGIvYXJjaC94ODYvZW50cnkvZW50cnlfNjQuUwpAQCAtMzYxLDcgKzM2MSw3IEBAIEVOVFJZKF9f c3dpdGNoX3RvX2FzbSkKIAogI2lmZGVmIENPTkZJR19DQ19TVEFDS1BST1RFQ1RPUgogCW1vdnEJ VEFTS19zdGFja19jYW5hcnkoJXJzaSksICVyYngKLQltb3ZxCSVyYngsIFBFUl9DUFVfVkFSKGly cV9zdGFja191bmlvbikrc3RhY2tfY2FuYXJ5X29mZnNldAorCW1vdnEJJXJieCwgUEVSX0NQVV9W QVIoaXJxX3N0YWNrX3VuaW9uICsgc3RhY2tfY2FuYXJ5X29mZnNldCkKICNlbmRpZgogCiAjaWZk ZWYgQ09ORklHX1JFVFBPTElORQpAQCAtOTAwLDcgKzkwMCw3IEBAIGFwaWNpbnRlcnJ1cHQgSVJR X1dPUktfVkVDVE9SCQkJaXJxX3dvcmtfaW50ZXJydXB0CQlzbXBfaXJxX3dvcmtfaW50ZXJydXB0 CiAvKgogICogRXhjZXB0aW9uIGVudHJ5IHBvaW50cy4KICAqLwotI2RlZmluZSBDUFVfVFNTX0lT VCh4KSBQRVJfQ1BVX1ZBUihjcHVfdHNzX3J3KSArIChUU1NfaXN0ICsgKCh4KSAtIDEpICogOCkK KyNkZWZpbmUgQ1BVX1RTU19JU1QoeCkgUEVSX0NQVV9WQVIoY3B1X3Rzc19ydyArIChUU1NfaXN0 ICsgKCh4KSAtIDEpICogOCkpCiAKIC5tYWNybyBpZHRlbnRyeSBzeW0gZG9fc3ltIGhhc19lcnJv cl9jb2RlOnJlcSBwYXJhbm9pZD0wIHNoaWZ0X2lzdD0tMQogRU5UUlkoXHN5bSkKZGlmZiAtLWdp dCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BlcmNwdS5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20v cGVyY3B1LmgKaW5kZXggYTA2YjA3Mzk5ZDE3Li43ZDEyNzFiNTM2ZWEgMTAwNjQ0Ci0tLSBhL2Fy Y2gveDg2L2luY2x1ZGUvYXNtL3BlcmNwdS5oCisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Bl cmNwdS5oCkBAIC01LDkgKzUsMTEgQEAKICNpZmRlZiBDT05GSUdfWDg2XzY0CiAjZGVmaW5lIF9f cGVyY3B1X3NlZwkJZ3MKICNkZWZpbmUgX19wZXJjcHVfbW92X29wCQltb3ZxCisjZGVmaW5lIF9f cGVyY3B1X3JlbAkJKCVyaXApCiAjZWxzZQogI2RlZmluZSBfX3BlcmNwdV9zZWcJCWZzCiAjZGVm aW5lIF9fcGVyY3B1X21vdl9vcAkJbW92bAorI2RlZmluZSBfX3BlcmNwdV9yZWwKICNlbmRpZgog CiAjaWZkZWYgX19BU1NFTUJMWV9fCkBAIC0yOCwxMCArMzAsMTQgQEAKICNkZWZpbmUgUEVSX0NQ VSh2YXIsIHJlZykJCQkJCQlcCiAJX19wZXJjcHVfbW92X29wICVfX3BlcmNwdV9zZWc6dGhpc19j cHVfb2ZmLCByZWc7CQlcCiAJbGVhIHZhcihyZWcpLCByZWcKLSNkZWZpbmUgUEVSX0NQVV9WQVIo dmFyKQklX19wZXJjcHVfc2VnOnZhcgorLyogQ29tcGF0aWJsZSB3aXRoIFBvc2l0aW9uIEluZGVw ZW5kZW50IENvZGUgKi8KKyNkZWZpbmUgUEVSX0NQVV9WQVIodmFyKQkJJV9fcGVyY3B1X3NlZzoo dmFyKSMjX19wZXJjcHVfcmVsCisvKiBSYXJlIGFic29sdXRlIHJlZmVyZW5jZSAqLworI2RlZmlu ZSBQRVJfQ1BVX1ZBUl9BQlModmFyKQkJJV9fcGVyY3B1X3NlZzp2YXIKICNlbHNlIC8qICEgU01Q ICovCiAjZGVmaW5lIFBFUl9DUFUodmFyLCByZWcpCV9fcGVyY3B1X21vdl9vcCAkdmFyLCByZWcK LSNkZWZpbmUgUEVSX0NQVV9WQVIodmFyKQl2YXIKKyNkZWZpbmUgUEVSX0NQVV9WQVIodmFyKQko dmFyKSMjX19wZXJjcHVfcmVsCisjZGVmaW5lIFBFUl9DUFVfVkFSX0FCUyh2YXIpCXZhcgogI2Vu ZGlmCS8qIFNNUCAqLwogCiAjaWZkZWYgQ09ORklHX1g4Nl82NF9TTVAKQEAgLTIwOSwyNyArMjE1 LDM0IEBAIGRvIHsJCQkJCQkJCQlcCiAJcGZvX3JldF9fOwkJCQkJXAogfSkKIAorLyogUG9zaXRp b24gSW5kZXBlbmRlbnQgY29kZSB1c2VzIHJlbGF0aXZlIGFkZHJlc3NlcyBvbmx5ICovCisjaWZk ZWYgQ09ORklHX1g4Nl9QSUUKKyNkZWZpbmUgX19wZXJjcHVfc3RhYmxlX2FyZyBfX3BlcmNwdV9h cmcoYTEpCisjZWxzZQorI2RlZmluZSBfX3BlcmNwdV9zdGFibGVfYXJnIF9fcGVyY3B1X2FyZyhQ MSkKKyNlbmRpZgorCiAjZGVmaW5lIHBlcmNwdV9zdGFibGVfb3Aob3AsIHZhcikJCQlcCiAoewkJ CQkJCQlcCiAJdHlwZW9mKHZhcikgcGZvX3JldF9fOwkJCQlcCiAJc3dpdGNoIChzaXplb2YodmFy KSkgewkJCQlcCiAJY2FzZSAxOgkJCQkJCVwKLQkJYXNtKG9wICJiICJfX3BlcmNwdV9hcmcoUDEp IiwlMCIJXAorCQlhc20ob3AgImIgIl9fcGVyY3B1X3N0YWJsZV9hcmcgIiwlMCIJXAogCQkgICAg OiAiPXEiIChwZm9fcmV0X18pCQkJXAogCQkgICAgOiAicCIgKCYodmFyKSkpOwkJCVwKIAkJYnJl YWs7CQkJCQlcCiAJY2FzZSAyOgkJCQkJCVwKLQkJYXNtKG9wICJ3ICJfX3BlcmNwdV9hcmcoUDEp IiwlMCIJXAorCQlhc20ob3AgIncgIl9fcGVyY3B1X3N0YWJsZV9hcmcgIiwlMCIJXAogCQkgICAg OiAiPXIiIChwZm9fcmV0X18pCQkJXAogCQkgICAgOiAicCIgKCYodmFyKSkpOwkJCVwKIAkJYnJl YWs7CQkJCQlcCiAJY2FzZSA0OgkJCQkJCVwKLQkJYXNtKG9wICJsICJfX3BlcmNwdV9hcmcoUDEp IiwlMCIJXAorCQlhc20ob3AgImwgIl9fcGVyY3B1X3N0YWJsZV9hcmcgIiwlMCIJXAogCQkgICAg OiAiPXIiIChwZm9fcmV0X18pCQkJXAogCQkgICAgOiAicCIgKCYodmFyKSkpOwkJCVwKIAkJYnJl YWs7CQkJCQlcCiAJY2FzZSA4OgkJCQkJCVwKLQkJYXNtKG9wICJxICJfX3BlcmNwdV9hcmcoUDEp IiwlMCIJXAorCQlhc20ob3AgInEgIl9fcGVyY3B1X3N0YWJsZV9hcmcgIiwlMCIJXAogCQkgICAg OiAiPXIiIChwZm9fcmV0X18pCQkJXAogCQkgICAgOiAicCIgKCYodmFyKSkpOwkJCVwKIAkJYnJl YWs7CQkJCQlcCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCBi L2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oCmluZGV4IDgxYWU2ODc3ZGYyOS4uNWNm MzZmYTMwMjU0IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaAor KysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaApAQCAtMjQsNiArMjQsNyBAQCBz dHJ1Y3Qgdm04NjsKICNpbmNsdWRlIDxhc20vc3BlY2lhbF9pbnNucy5oPgogI2luY2x1ZGUgPGFz bS9mcHUvdHlwZXMuaD4KICNpbmNsdWRlIDxhc20vdW53aW5kX2hpbnRzLmg+CisjaW5jbHVkZSA8 YXNtL3NlY3Rpb25zLmg+CiAKICNpbmNsdWRlIDxsaW51eC9wZXJzb25hbGl0eS5oPgogI2luY2x1 ZGUgPGxpbnV4L2NhY2hlLmg+CkBAIC00MDAsNyArNDAxLDggQEAgREVDTEFSRV9JTklUX1BFUl9D UFUoaXJxX3N0YWNrX3VuaW9uKTsKIAogc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIGNwdV9r ZXJuZWxtb2RlX2dzX2Jhc2UoaW50IGNwdSkKIHsKLQlyZXR1cm4gKHVuc2lnbmVkIGxvbmcpcGVy X2NwdShpcnFfc3RhY2tfdW5pb24uZ3NfYmFzZSwgY3B1KTsKKwlyZXR1cm4gKHVuc2lnbmVkIGxv bmcpcGVyX2NwdShpcnFfc3RhY2tfdW5pb24uZ3NfYmFzZSwgY3B1KSAtCisJCSh1bnNpZ25lZCBs b25nKV9fcGVyX2NwdV9zdGFydDsKIH0KIAogREVDTEFSRV9QRVJfQ1BVKGNoYXIgKiwgaXJxX3N0 YWNrX3B0cik7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvaGVhZF82NC5TIGIvYXJjaC94 ODYva2VybmVsL2hlYWRfNjQuUwppbmRleCA3YzhmN2NlOTNiOWUuLmY0NGIyNTliMjZkMyAxMDA2 NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2hlYWRfNjQuUworKysgYi9hcmNoL3g4Ni9rZXJuZWwv aGVhZF82NC5TCkBAIC0yNjYsNyArMjY2LDExIEBAIEVORFBST0Moc3RhcnRfY3B1MCkKIAlHTE9C QUwoaW5pdGlhbF9jb2RlKQogCS5xdWFkCXg4Nl82NF9zdGFydF9rZXJuZWwKIAlHTE9CQUwoaW5p dGlhbF9ncykKKyNpZmRlZiBDT05GSUdfWDg2X1BJRQorCS5xdWFkCTAKKyNlbHNlCiAJLnF1YWQJ SU5JVF9QRVJfQ1BVX1ZBUihpcnFfc3RhY2tfdW5pb24pCisjZW5kaWYKIAlHTE9CQUwoaW5pdGlh bF9zdGFjaykKIAkvKgogCSAqIFRoZSBTSVpFT0ZfUFRSRUdTIGdhcCBpcyBhIGNvbnZlbnRpb24g d2hpY2ggaGVscHMgdGhlIGluLWtlcm5lbApkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3Nl dHVwX3BlcmNwdS5jIGIvYXJjaC94ODYva2VybmVsL3NldHVwX3BlcmNwdS5jCmluZGV4IGVhNTU0 ZjgxMmVlMS4uZDYxZWNjM2QyYjZmIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvc2V0dXBf cGVyY3B1LmMKKysrIGIvYXJjaC94ODYva2VybmVsL3NldHVwX3BlcmNwdS5jCkBAIC0yNiw3ICsy Niw3IEBACiBERUZJTkVfUEVSX0NQVV9SRUFEX01PU1RMWShpbnQsIGNwdV9udW1iZXIpOwogRVhQ T1JUX1BFUl9DUFVfU1lNQk9MKGNwdV9udW1iZXIpOwogCi0jaWZkZWYgQ09ORklHX1g4Nl82NAor I2lmIGRlZmluZWQoQ09ORklHX1g4Nl82NCkgJiYgIWRlZmluZWQoQ09ORklHX1g4Nl9QSUUpCiAj ZGVmaW5lIEJPT1RfUEVSQ1BVX09GRlNFVCAoKHVuc2lnbmVkIGxvbmcpX19wZXJfY3B1X2xvYWQp CiAjZWxzZQogI2RlZmluZSBCT09UX1BFUkNQVV9PRkZTRVQgMApAQCAtNDAsNiArNDAsOSBAQCB1 bnNpZ25lZCBsb25nIF9fcGVyX2NwdV9vZmZzZXRbTlJfQ1BVU10gX19yb19hZnRlcl9pbml0ID0g ewogfTsKIEVYUE9SVF9TWU1CT0woX19wZXJfY3B1X29mZnNldCk7CiAKKy8qIFVzZWQgdG8gY2Fs Y3VsYXRlIGdzX2Jhc2UgZm9yIGVhY2ggQ1BVICovCitFWFBPUlRfU1lNQk9MKF9fcGVyX2NwdV9z dGFydCk7CisKIC8qCiAgKiBPbiB4ODZfNjQgc3ltYm9scyByZWZlcmVuY2VkIGZyb20gY29kZSBz aG91bGQgYmUgcmVhY2hhYmxlIHVzaW5nCiAgKiAzMmJpdCByZWxvY2F0aW9ucy4gIFJlc2VydmUg c3BhY2UgZm9yIHN0YXRpYyBwZXJjcHUgdmFyaWFibGVzIGluCmRpZmYgLS1naXQgYS9hcmNoL3g4 Ni9rZXJuZWwvdm1saW51eC5sZHMuUyBiL2FyY2gveDg2L2tlcm5lbC92bWxpbnV4Lmxkcy5TCmlu ZGV4IDVlMTQ1OGY2MDlhMS4uZjU4MmZjNDc3NmRkIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJu ZWwvdm1saW51eC5sZHMuUworKysgYi9hcmNoL3g4Ni9rZXJuZWwvdm1saW51eC5sZHMuUwpAQCAt MjExLDkgKzIxMSwxNCBAQCBTRUNUSU9OUwogCS8qCiAJICogcGVyY3B1IG9mZnNldHMgYXJlIHpl cm8tYmFzZWQgb24gU01QLiAgUEVSQ1BVX1ZBRERSKCkgY2hhbmdlcyB0aGUKIAkgKiBvdXRwdXQg UEhEUiwgc28gdGhlIG5leHQgb3V0cHV0IHNlY3Rpb24gLSAuaW5pdC50ZXh0IC0gc2hvdWxkCi0J ICogc3RhcnQgYW5vdGhlciBzZWdtZW50IC0gaW5pdC4KKwkgKiBzdGFydCBhbm90aGVyIHNlZ21l bnQgLSBpbml0LiBGb3IgUG9zaXRpb24gSW5kZXBlbmRlbnQgQ29kZSwgdGhlCisJICogcGVyLWNw dSBzZWN0aW9uIGNhbm5vdCBiZSB6ZXJvLWJhc2VkIGJlY2F1c2UgZXZlcnl0aGluZyBpcyByZWxh dGl2ZS4KIAkgKi8KKyNpZmRlZiBDT05GSUdfWDg2X1BJRQorCVBFUkNQVV9TRUNUSU9OKElOVEVS Tk9ERV9DQUNIRV9CWVRFUykKKyNlbHNlCiAJUEVSQ1BVX1ZBRERSKElOVEVSTk9ERV9DQUNIRV9C WVRFUywgMCwgOnBlcmNwdSkKKyNlbmRpZgogCUFTU0VSVChTSVpFT0YoLmRhdGEuLnBlcmNwdSkg PCBDT05GSUdfUEhZU0lDQUxfU1RBUlQsCiAJICAgICAgICJwZXItQ1BVIGRhdGEgdG9vIGxhcmdl IC0gaW5jcmVhc2UgQ09ORklHX1BIWVNJQ0FMX1NUQVJUIikKICNlbmRpZgpAQCAtMzg5LDcgKzM5 NCwxMSBAQCBTRUNUSU9OUwogICogUGVyLWNwdSBzeW1ib2xzIHdoaWNoIG5lZWQgdG8gYmUgb2Zm c2V0IGZyb20gX19wZXJfY3B1X2xvYWQKICAqIGZvciB0aGUgYm9vdCBwcm9jZXNzb3IuCiAgKi8K KyNpZmRlZiBDT05GSUdfWDg2X1BJRQorI2RlZmluZSBJTklUX1BFUl9DUFUoeCkgaW5pdF9wZXJf Y3B1X18jI3ggPSB4CisjZWxzZQogI2RlZmluZSBJTklUX1BFUl9DUFUoeCkgaW5pdF9wZXJfY3B1 X18jI3ggPSB4ICsgX19wZXJfY3B1X2xvYWQKKyNlbmRpZgogSU5JVF9QRVJfQ1BVKGdkdF9wYWdl KTsKIElOSVRfUEVSX0NQVShpcnFfc3RhY2tfdW5pb24pOwogCkBAIC0zOTksNyArNDA4LDcgQEAg SU5JVF9QRVJfQ1BVKGlycV9zdGFja191bmlvbik7CiAuID0gQVNTRVJUKChfZW5kIC0gX3RleHQg PD0gS0VSTkVMX0lNQUdFX1NJWkUpLAogCSAgICJrZXJuZWwgaW1hZ2UgYmlnZ2VyIHRoYW4gS0VS TkVMX0lNQUdFX1NJWkUiKTsKIAotI2lmZGVmIENPTkZJR19TTVAKKyNpZiBkZWZpbmVkKENPTkZJ R19TTVApICYmICFkZWZpbmVkKENPTkZJR19YODZfUElFKQogLiA9IEFTU0VSVCgoaXJxX3N0YWNr X3VuaW9uID09IDApLAogICAgICAgICAgICAiaXJxX3N0YWNrX3VuaW9uIGlzIG5vdCBhdCBzdGFy dCBvZiBwZXItY3B1IGFyZWEiKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbGliL2Nt cHhjaGcxNmJfZW11LlMgYi9hcmNoL3g4Ni9saWIvY21weGNoZzE2Yl9lbXUuUwppbmRleCA5YjMz MDI0MmU3NDAuLjI1NDk1MDYwNGFlNCAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbGliL2NtcHhjaGcx NmJfZW11LlMKKysrIGIvYXJjaC94ODYvbGliL2NtcHhjaGcxNmJfZW11LlMKQEAgLTMzLDEzICsz MywxMyBAQCBFTlRSWSh0aGlzX2NwdV9jbXB4Y2hnMTZiX2VtdSkKIAlwdXNoZnEKIAljbGkKIAot CWNtcHEgUEVSX0NQVV9WQVIoKCVyc2kpKSwgJXJheAorCWNtcHEgUEVSX0NQVV9WQVJfQUJTKCgl cnNpKSksICVyYXgKIAlqbmUgLkxub3Rfc2FtZQotCWNtcHEgUEVSX0NQVV9WQVIoOCglcnNpKSks ICVyZHgKKwljbXBxIFBFUl9DUFVfVkFSX0FCUyg4KCVyc2kpKSwgJXJkeAogCWpuZSAuTG5vdF9z YW1lCiAKLQltb3ZxICVyYngsIFBFUl9DUFVfVkFSKCglcnNpKSkKLQltb3ZxICVyY3gsIFBFUl9D UFVfVkFSKDgoJXJzaSkpCisJbW92cSAlcmJ4LCBQRVJfQ1BVX1ZBUl9BQlMoKCVyc2kpKQorCW1v dnEgJXJjeCwgUEVSX0NQVV9WQVJfQUJTKDgoJXJzaSkpCiAKIAlwb3BmcQogCW1vdiAkMSwgJWFs CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni94ZW4veGVuLWFzbS5TIGIvYXJjaC94ODYveGVuL3hlbi1h c20uUwppbmRleCA4MDE5ZWRkMDEyNWMuLmE1ZDczZDMyMThiZSAxMDA2NDQKLS0tIGEvYXJjaC94 ODYveGVuL3hlbi1hc20uUworKysgYi9hcmNoL3g4Ni94ZW4veGVuLWFzbS5TCkBAIC0yMSw3ICsy MSw3IEBACiBFTlRSWSh4ZW5faXJxX2VuYWJsZV9kaXJlY3QpCiAJRlJBTUVfQkVHSU4KIAkvKiBV bm1hc2sgZXZlbnRzICovCi0JbW92YiAkMCwgUEVSX0NQVV9WQVIoeGVuX3ZjcHVfaW5mbykgKyBY RU5fdmNwdV9pbmZvX21hc2sKKwltb3ZiICQwLCBQRVJfQ1BVX1ZBUih4ZW5fdmNwdV9pbmZvICsg WEVOX3ZjcHVfaW5mb19tYXNrKQogCiAJLyoKIAkgKiBQcmVlbXB0IGhlcmUgZG9lc24ndCBtYXR0 ZXIgYmVjYXVzZSB0aGF0IHdpbGwgZGVhbCB3aXRoIGFueQpAQCAtMzAsNyArMzAsNyBAQCBFTlRS WSh4ZW5faXJxX2VuYWJsZV9kaXJlY3QpCiAJICovCiAKIAkvKiBUZXN0IGZvciBwZW5kaW5nICov Ci0JdGVzdGIgJDB4ZmYsIFBFUl9DUFVfVkFSKHhlbl92Y3B1X2luZm8pICsgWEVOX3ZjcHVfaW5m b19wZW5kaW5nCisJdGVzdGIgJDB4ZmYsIFBFUl9DUFVfVkFSKHhlbl92Y3B1X2luZm8gKyBYRU5f dmNwdV9pbmZvX3BlbmRpbmcpCiAJanogMWYKIAogCWNhbGwgY2hlY2tfZXZlbnRzCkBAIC00NSw3 ICs0NSw3IEBAIEVOVFJZKHhlbl9pcnFfZW5hYmxlX2RpcmVjdCkKICAqIG5vbi16ZXJvLgogICov CiBFTlRSWSh4ZW5faXJxX2Rpc2FibGVfZGlyZWN0KQotCW1vdmIgJDEsIFBFUl9DUFVfVkFSKHhl bl92Y3B1X2luZm8pICsgWEVOX3ZjcHVfaW5mb19tYXNrCisJbW92YiAkMSwgUEVSX0NQVV9WQVIo eGVuX3ZjcHVfaW5mbyArIFhFTl92Y3B1X2luZm9fbWFzaykKIAlyZXQKIEVORFBST0MoeGVuX2ly cV9kaXNhYmxlX2RpcmVjdCkKIApAQCAtNTksNyArNTksNyBAQCBFTkRQUk9DKHhlbl9pcnFfZGlz YWJsZV9kaXJlY3QpCiAgKiB4ODYgdXNlIG9wcG9zaXRlIHNlbnNlcyAobWFzayB2cyBlbmFibGUp LgogICovCiBFTlRSWSh4ZW5fc2F2ZV9mbF9kaXJlY3QpCi0JdGVzdGIgJDB4ZmYsIFBFUl9DUFVf VkFSKHhlbl92Y3B1X2luZm8pICsgWEVOX3ZjcHVfaW5mb19tYXNrCisJdGVzdGIgJDB4ZmYsIFBF Ul9DUFVfVkFSKHhlbl92Y3B1X2luZm8gKyBYRU5fdmNwdV9pbmZvX21hc2spCiAJc2V0eiAlYWgK IAlhZGRiICVhaCwgJWFoCiAJcmV0CkBAIC04MCw3ICs4MCw3IEBAIEVOVFJZKHhlbl9yZXN0b3Jl X2ZsX2RpcmVjdCkKICNlbHNlCiAJdGVzdGIgJFg4Nl9FRkxBR1NfSUY+PjgsICVhaAogI2VuZGlm Ci0Jc2V0eiBQRVJfQ1BVX1ZBUih4ZW5fdmNwdV9pbmZvKSArIFhFTl92Y3B1X2luZm9fbWFzawor CXNldHogUEVSX0NQVV9WQVIoeGVuX3ZjcHVfaW5mbyArIFhFTl92Y3B1X2luZm9fbWFzaykKIAkv KgogCSAqIFByZWVtcHQgaGVyZSBkb2Vzbid0IG1hdHRlciBiZWNhdXNlIHRoYXQgd2lsbCBkZWFs IHdpdGggYW55CiAJICogcGVuZGluZyBpbnRlcnJ1cHRzLiAgVGhlIHBlbmRpbmcgY2hlY2sgbWF5 IGVuZCB1cCBiZWluZyBydW4KQEAgLTg4LDcgKzg4LDcgQEAgRU5UUlkoeGVuX3Jlc3RvcmVfZmxf ZGlyZWN0KQogCSAqLwogCiAJLyogY2hlY2sgZm9yIHVubWFza2VkIGFuZCBwZW5kaW5nICovCi0J Y21wdyAkMHgwMDAxLCBQRVJfQ1BVX1ZBUih4ZW5fdmNwdV9pbmZvKSArIFhFTl92Y3B1X2luZm9f cGVuZGluZworCWNtcHcgJDB4MDAwMSwgUEVSX0NQVV9WQVIoeGVuX3ZjcHVfaW5mbyArIFhFTl92 Y3B1X2luZm9fcGVuZGluZykKIAlqbnogMWYKIAljYWxsIGNoZWNrX2V2ZW50cwogMToKZGlmZiAt LWdpdCBhL2luaXQvS2NvbmZpZyBiL2luaXQvS2NvbmZpZwppbmRleCA0NGU2MmUwZGM1MWYuLjg5 MTVhM2NlNWYwYyAxMDA2NDQKLS0tIGEvaW5pdC9LY29uZmlnCisrKyBiL2luaXQvS2NvbmZpZwpA QCAtMTM5MSw3ICsxMzkxLDcgQEAgY29uZmlnIEtBTExTWU1TX0FMTAogY29uZmlnIEtBTExTWU1T X0FCU09MVVRFX1BFUkNQVQogCWJvb2wKIAlkZXBlbmRzIG9uIEtBTExTWU1TCi0JZGVmYXVsdCBY ODZfNjQgJiYgU01QCisJZGVmYXVsdCBYODZfNjQgJiYgU01QICYmICFYODZfUElFCiAKIGNvbmZp ZyBLQUxMU1lNU19CQVNFX1JFTEFUSVZFCiAJYm9vbAotLSAKMi4xNy4wLjQ0MS5nYjQ2ZmU2MGUx ZC1nb29nCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K WGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0 cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==