From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jiri Slaby Subject: [PATCH v6 24/28] x86_64/asm: change all ENTRY+ENDPROC to SYM_FUNC_* Date: Fri, 18 May 2018 11:17:17 +0200 Message-ID: <20180518091721.7604-25-jslaby@suse.cz> References: <20180518091721.7604-1-jslaby@suse.cz> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: linux-arch@vger.kernel.org, Len Brown , linux-efi@vger.kernel.org, Herbert Xu , Ard Biesheuvel , Matt Fleming , Boris Ostrovsky , x86@kernel.org, "Rafael J. Wysocki" , linux-kernel@vger.kernel.org, Juergen Gross , linux-crypto@vger.kernel.org, Pavel Machek , "H. Peter Anvin" , linux-pm@vger.kernel.org, xen-devel@lists.xenproject.org, Thomas Gleixner , Jiri Slaby , "David S. Miller" To: mingo@redhat.com Return-path: In-Reply-To: <20180518091721.7604-1-jslaby@suse.cz> 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 VGhlc2UgYXJlIGFsbCBmdW5jdGlvbnMgd2hpY2ggYXJlIGludm9rZWQgZnJvbSBlbHNld2hlcmUs IHNvIHdlIGFubm90YXRlCnRoZW0gYXMgZ2xvYmFsIHVzaW5nIHRoZSBuZXcgU1lNX0ZVTkNfU1RB UlQuIEFuZCB0aGVpciBFTkRQUk9DJ3MgYnkKU1lNX0ZVTkNfRU5ELgoKQW5kIG1ha2Ugc3VyZSBF TlRSWS9FTkRQUk9DIGlzIG5vdCBkZWZpbmVkIG9uIFg4Nl82NCwgZ2l2ZW4gdGhlc2Ugd2VyZQp0 aGUgbGFzdCB1c2Vycy4KClNpZ25lZC1vZmYtYnk6IEppcmkgU2xhYnkgPGpzbGFieUBzdXNlLmN6 PgpSZXZpZXdlZC1ieTogUmFmYWVsIEouIFd5c29ja2kgPHJhZmFlbC5qLnd5c29ja2lAaW50ZWwu Y29tPiBbaGliZXJuYXRlXQpSZXZpZXdlZC1ieTogQm9yaXMgT3N0cm92c2t5IDxib3Jpcy5vc3Ry b3Zza3lAb3JhY2xlLmNvbT4gW3hlbiBiaXRzXQpDYzogIkguIFBldGVyIEFudmluIiA8aHBhQHp5 dG9yLmNvbT4KQ2M6IFRob21hcyBHbGVpeG5lciA8dGdseEBsaW51dHJvbml4LmRlPgpDYzogSW5n byBNb2xuYXIgPG1pbmdvQHJlZGhhdC5jb20+CkNjOiB4ODZAa2VybmVsLm9yZwpDYzogSGVyYmVy dCBYdSA8aGVyYmVydEBnb25kb3IuYXBhbmEub3JnLmF1PgpDYzogIkRhdmlkIFMuIE1pbGxlciIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+CkNjOiAiUmFmYWVsIEouIFd5c29ja2kiIDxyandAcmp3eXNv Y2tpLm5ldD4KQ2M6IExlbiBCcm93biA8bGVuLmJyb3duQGludGVsLmNvbT4KQ2M6IFBhdmVsIE1h Y2hlayA8cGF2ZWxAdWN3LmN6PgpDYzogTWF0dCBGbGVtaW5nIDxtYXR0QGNvZGVibHVlcHJpbnQu Y28udWs+CkNjOiBBcmQgQmllc2hldXZlbCA8YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZz4KQ2M6 IEJvcmlzIE9zdHJvdnNreSA8Ym9yaXMub3N0cm92c2t5QG9yYWNsZS5jb20+CkNjOiBKdWVyZ2Vu IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+CkNjOiBsaW51eC1jcnlwdG9Admdlci5rZXJuZWwub3Jn CkNjOiBsaW51eC1wbUB2Z2VyLmtlcm5lbC5vcmcKQ2M6IGxpbnV4LWVmaUB2Z2VyLmtlcm5lbC5v cmcKQ2M6IHhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwotLS0KIGFyY2gveDg2L2Jvb3Qv Y29tcHJlc3NlZC9lZmlfdGh1bmtfNjQuUyAgICAgICAgICAgIHwgIDQgKy0KIGFyY2gveDg2L2Jv b3QvY29tcHJlc3NlZC9oZWFkXzY0LlMgICAgICAgICAgICAgICAgIHwgMTYgKysrLS0tCiBhcmNo L3g4Ni9ib290L2NvbXByZXNzZWQvbWVtX2VuY3J5cHQuUyAgICAgICAgICAgICB8ICA4ICstLQog YXJjaC94ODYvY3J5cHRvL2Flcy1pNTg2LWFzbV8zMi5TICAgICAgICAgICAgICAgICAgfCAgOCAr LS0KIGFyY2gveDg2L2NyeXB0by9hZXMteDg2XzY0LWFzbV82NC5TICAgICAgICAgICAgICAgIHwg IDQgKy0KIGFyY2gveDg2L2NyeXB0by9hZXNfY3RyYnk4X2F2eC14ODZfNjQuUyAgICAgICAgICAg IHwgMTIgKystLS0KIGFyY2gveDg2L2NyeXB0by9hZXNuaS1pbnRlbF9hc20uUyAgICAgICAgICAg ICAgICAgIHwgNjAgKysrKysrKysrKystLS0tLS0tLS0tLQogYXJjaC94ODYvY3J5cHRvL2Flc25p LWludGVsX2F2eC14ODZfNjQuUyAgICAgICAgICAgfCAyNCArKysrLS0tLS0KIGFyY2gveDg2L2Ny eXB0by9ibG93ZmlzaC14ODZfNjQtYXNtXzY0LlMgICAgICAgICAgIHwgMTYgKysrLS0tCiBhcmNo L3g4Ni9jcnlwdG8vY2FtZWxsaWEtYWVzbmktYXZ4LWFzbV82NC5TICAgICAgICB8IDI0ICsrKyst LS0tLQogYXJjaC94ODYvY3J5cHRvL2NhbWVsbGlhLWFlc25pLWF2eDItYXNtXzY0LlMgICAgICAg fCAyNCArKysrLS0tLS0KIGFyY2gveDg2L2NyeXB0by9jYW1lbGxpYS14ODZfNjQtYXNtXzY0LlMg ICAgICAgICAgIHwgMTYgKysrLS0tCiBhcmNoL3g4Ni9jcnlwdG8vY2FzdDUtYXZ4LXg4Nl82NC1h c21fNjQuUyAgICAgICAgICB8IDE2ICsrKy0tLQogYXJjaC94ODYvY3J5cHRvL2Nhc3Q2LWF2eC14 ODZfNjQtYXNtXzY0LlMgICAgICAgICAgfCAyNCArKysrLS0tLS0KIGFyY2gveDg2L2NyeXB0by9j aGFjaGEyMC1hdngyLXg4Nl82NC5TICAgICAgICAgICAgIHwgIDQgKy0KIGFyY2gveDg2L2NyeXB0 by9jaGFjaGEyMC1zc3NlMy14ODZfNjQuUyAgICAgICAgICAgIHwgIDggKy0tCiBhcmNoL3g4Ni9j cnlwdG8vY3JjMzItcGNsbXVsX2FzbS5TICAgICAgICAgICAgICAgICB8ICA0ICstCiBhcmNoL3g4 Ni9jcnlwdG8vY3JjMzJjLXBjbC1pbnRlbC1hc21fNjQuUyAgICAgICAgICB8ICA0ICstCiBhcmNo L3g4Ni9jcnlwdG8vY3JjdDEwZGlmLXBjbC1hc21fNjQuUyAgICAgICAgICAgICB8ICA0ICstCiBh cmNoL3g4Ni9jcnlwdG8vZGVzM19lZGUtYXNtXzY0LlMgICAgICAgICAgICAgICAgICB8ICA4ICst LQogYXJjaC94ODYvY3J5cHRvL2doYXNoLWNsbXVsbmktaW50ZWxfYXNtLlMgICAgICAgICAgfCAg OCArLS0KIGFyY2gveDg2L2NyeXB0by9wb2x5MTMwNS1hdngyLXg4Nl82NC5TICAgICAgICAgICAg IHwgIDQgKy0KIGFyY2gveDg2L2NyeXB0by9wb2x5MTMwNS1zc2UyLXg4Nl82NC5TICAgICAgICAg ICAgIHwgIDggKy0tCiBhcmNoL3g4Ni9jcnlwdG8vc2Fsc2EyMC14ODZfNjQtYXNtXzY0LlMgICAg ICAgICAgICB8ICA0ICstCiBhcmNoL3g4Ni9jcnlwdG8vc2VycGVudC1hdngteDg2XzY0LWFzbV82 NC5TICAgICAgICB8IDI0ICsrKystLS0tLQogYXJjaC94ODYvY3J5cHRvL3NlcnBlbnQtYXZ4Mi1h c21fNjQuUyAgICAgICAgICAgICAgfCAyNCArKysrLS0tLS0KIGFyY2gveDg2L2NyeXB0by9zZXJw ZW50LXNzZTIteDg2XzY0LWFzbV82NC5TICAgICAgIHwgIDggKy0tCiBhcmNoL3g4Ni9jcnlwdG8v c2hhMS1tYi9zaGExX21iX21ncl9mbHVzaF9hdngyLlMgICB8ICA4ICstLQogYXJjaC94ODYvY3J5 cHRvL3NoYTEtbWIvc2hhMV9tYl9tZ3Jfc3VibWl0X2F2eDIuUyAgfCAgNCArLQogYXJjaC94ODYv Y3J5cHRvL3NoYTEtbWIvc2hhMV94OF9hdngyLlMgICAgICAgICAgICAgfCAgNCArLQogYXJjaC94 ODYvY3J5cHRvL3NoYTFfYXZ4Ml94ODZfNjRfYXNtLlMgICAgICAgICAgICAgfCAgNCArLQogYXJj aC94ODYvY3J5cHRvL3NoYTFfbmlfYXNtLlMgICAgICAgICAgICAgICAgICAgICAgfCAgNCArLQog YXJjaC94ODYvY3J5cHRvL3NoYTFfc3NzZTNfYXNtLlMgICAgICAgICAgICAgICAgICAgfCAgNCAr LQogYXJjaC94ODYvY3J5cHRvL3NoYTI1Ni1hdngtYXNtLlMgICAgICAgICAgICAgICAgICAgfCAg NCArLQogYXJjaC94ODYvY3J5cHRvL3NoYTI1Ni1hdngyLWFzbS5TICAgICAgICAgICAgICAgICAg fCAgNCArLQogLi4uL2NyeXB0by9zaGEyNTYtbWIvc2hhMjU2X21iX21ncl9mbHVzaF9hdngyLlMg ICAgfCAgOCArLS0KIC4uLi9jcnlwdG8vc2hhMjU2LW1iL3NoYTI1Nl9tYl9tZ3Jfc3VibWl0X2F2 eDIuUyAgIHwgIDQgKy0KIGFyY2gveDg2L2NyeXB0by9zaGEyNTYtbWIvc2hhMjU2X3g4X2F2eDIu UyAgICAgICAgIHwgIDQgKy0KIGFyY2gveDg2L2NyeXB0by9zaGEyNTYtc3NzZTMtYXNtLlMgICAg ICAgICAgICAgICAgIHwgIDQgKy0KIGFyY2gveDg2L2NyeXB0by9zaGEyNTZfbmlfYXNtLlMgICAg ICAgICAgICAgICAgICAgIHwgIDQgKy0KIGFyY2gveDg2L2NyeXB0by9zaGE1MTItYXZ4LWFzbS5T ICAgICAgICAgICAgICAgICAgIHwgIDQgKy0KIGFyY2gveDg2L2NyeXB0by9zaGE1MTItYXZ4Mi1h c20uUyAgICAgICAgICAgICAgICAgIHwgIDQgKy0KIC4uLi9jcnlwdG8vc2hhNTEyLW1iL3NoYTUx Ml9tYl9tZ3JfZmx1c2hfYXZ4Mi5TICAgIHwgIDggKy0tCiAuLi4vY3J5cHRvL3NoYTUxMi1tYi9z aGE1MTJfbWJfbWdyX3N1Ym1pdF9hdngyLlMgICB8ICA0ICstCiBhcmNoL3g4Ni9jcnlwdG8vc2hh NTEyLW1iL3NoYTUxMl94NF9hdngyLlMgICAgICAgICB8ICA0ICstCiBhcmNoL3g4Ni9jcnlwdG8v c2hhNTEyLXNzc2UzLWFzbS5TICAgICAgICAgICAgICAgICB8ICA0ICstCiBhcmNoL3g4Ni9jcnlw dG8vdHdvZmlzaC1hdngteDg2XzY0LWFzbV82NC5TICAgICAgICB8IDI0ICsrKystLS0tLQogYXJj aC94ODYvY3J5cHRvL3R3b2Zpc2gteDg2XzY0LWFzbV82NC0zd2F5LlMgICAgICAgfCAgOCArLS0K IGFyY2gveDg2L2NyeXB0by90d29maXNoLXg4Nl82NC1hc21fNjQuUyAgICAgICAgICAgIHwgIDgg Ky0tCiBhcmNoL3g4Ni9lbnRyeS9lbnRyeV82NC5TICAgICAgICAgICAgICAgICAgICAgICAgICB8 IDEwICsrLS0KIGFyY2gveDg2L2VudHJ5L2VudHJ5XzY0X2NvbXBhdC5TICAgICAgICAgICAgICAg ICAgIHwgIDQgKy0KIGFyY2gveDg2L2tlcm5lbC9hY3BpL3dha2V1cF82NC5TICAgICAgICAgICAg ICAgICAgIHwgIDggKy0tCiBhcmNoL3g4Ni9rZXJuZWwvZnRyYWNlXzY0LlMgICAgICAgICAgICAg ICAgICAgICAgICB8IDIwICsrKystLS0tCiBhcmNoL3g4Ni9rZXJuZWwvaGVhZF82NC5TICAgICAg ICAgICAgICAgICAgICAgICAgICB8IDEyICsrLS0tCiBhcmNoL3g4Ni9saWIvY2hlY2tzdW1fMzIu UyAgICAgICAgICAgICAgICAgICAgICAgICB8ICA4ICstLQogYXJjaC94ODYvbGliL2NsZWFyX3Bh Z2VfNjQuUyAgICAgICAgICAgICAgICAgICAgICAgfCAxMiArKy0tLQogYXJjaC94ODYvbGliL2Nt cHhjaGcxNmJfZW11LlMgICAgICAgICAgICAgICAgICAgICAgfCAgNCArLQogYXJjaC94ODYvbGli L2NtcHhjaGc4Yl9lbXUuUyAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArLQogYXJjaC94ODYv bGliL2NvcHlfcGFnZV82NC5TICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArLQogYXJjaC94 ODYvbGliL2NvcHlfdXNlcl82NC5TICAgICAgICAgICAgICAgICAgICAgICAgfCAxNiArKystLS0K IGFyY2gveDg2L2xpYi9jc3VtLWNvcHlfNjQuUyAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQg Ky0KIGFyY2gveDg2L2xpYi9nZXR1c2VyLlMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg MTYgKysrLS0tCiBhcmNoL3g4Ni9saWIvaHdlaWdodC5TICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICA4ICstLQogYXJjaC94ODYvbGliL2lvbWFwX2NvcHlfNjQuUyAgICAgICAgICAgICAg ICAgICAgICAgfCAgNCArLQogYXJjaC94ODYvbGliL21lbWNweV82NC5TICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgNCArLQogYXJjaC94ODYvbGliL21lbW1vdmVfNjQuUyAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgNCArLQogYXJjaC94ODYvbGliL21lbXNldF82NC5TICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgNCArLQogYXJjaC94ODYvbGliL21zci1yZWcuUyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgOCArLS0KIGFyY2gveDg2L2xpYi9wdXR1c2VyLlMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTYgKysrLS0tCiBhcmNoL3g4Ni9saWIvcmV0cG9s aW5lLlMgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICstCiBhcmNoL3g4Ni9saWIvcndz ZW0uUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDI0ICsrKystLS0tLQogYXJjaC94 ODYvbW0vbWVtX2VuY3J5cHRfYm9vdC5TICAgICAgICAgICAgICAgICAgICAgfCAgOCArLS0KIGFy Y2gveDg2L3BsYXRmb3JtL2VmaS9lZmlfc3R1Yl82NC5TICAgICAgICAgICAgICAgIHwgIDQgKy0K IGFyY2gveDg2L3BsYXRmb3JtL2VmaS9lZmlfdGh1bmtfNjQuUyAgICAgICAgICAgICAgIHwgIDQg Ky0KIGFyY2gveDg2L3Bvd2VyL2hpYmVybmF0ZV9hc21fNjQuUyAgICAgICAgICAgICAgICAgIHwg IDggKy0tCiBhcmNoL3g4Ni94ZW4veGVuLWFzbS5TICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IDIwICsrKystLS0tCiBhcmNoL3g4Ni94ZW4veGVuLWFzbV82NC5TICAgICAgICAgICAgICAg ICAgICAgICAgICB8IDE2ICsrKy0tLQogaW5jbHVkZS9saW51eC9saW5rYWdlLmggICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgNCArKwogNzggZmlsZXMgY2hhbmdlZCwgMzgxIGluc2VydGlv bnMoKyksIDM3NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9ib290L2NvbXBy ZXNzZWQvZWZpX3RodW5rXzY0LlMgYi9hcmNoL3g4Ni9ib290L2NvbXByZXNzZWQvZWZpX3RodW5r XzY0LlMKaW5kZXggMzEzMTIwNzBkYjIyLi41OTM5MTM2OTJkMTYgMTAwNjQ0Ci0tLSBhL2FyY2gv eDg2L2Jvb3QvY29tcHJlc3NlZC9lZmlfdGh1bmtfNjQuUworKysgYi9hcmNoL3g4Ni9ib290L2Nv bXByZXNzZWQvZWZpX3RodW5rXzY0LlMKQEAgLTIzLDcgKzIzLDcgQEAKIAogCS5jb2RlNjQKIAku dGV4dAotRU5UUlkoZWZpNjRfdGh1bmspCitTWU1fRlVOQ19TVEFSVChlZmk2NF90aHVuaykKIAlw dXNoCSVyYnAKIAlwdXNoCSVyYngKIApAQCAtOTcsNyArOTcsNyBAQCBFTlRSWShlZmk2NF90aHVu aykKIAlwb3AJJXJieAogCXBvcAklcmJwCiAJcmV0Ci1FTkRQUk9DKGVmaTY0X3RodW5rKQorU1lN X0ZVTkNfRU5EKGVmaTY0X3RodW5rKQogCiBTWU1fRlVOQ19TVEFSVF9MT0NBTChlZmlfZXhpdDMy KQogCW1vdnEJZnVuY19ydF9wdHIoJXJpcCksICVyYXgKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2Jv b3QvY29tcHJlc3NlZC9oZWFkXzY0LlMgYi9hcmNoL3g4Ni9ib290L2NvbXByZXNzZWQvaGVhZF82 NC5TCmluZGV4IGQwNTZjNzg5ZjkwZC4uMTA5ZDJlMDA2NTBiIDEwMDY0NAotLS0gYS9hcmNoL3g4 Ni9ib290L2NvbXByZXNzZWQvaGVhZF82NC5TCisrKyBiL2FyY2gveDg2L2Jvb3QvY29tcHJlc3Nl ZC9oZWFkXzY0LlMKQEAgLTQ1LDcgKzQ1LDcgQEAKIAogCV9fSEVBRAogCS5jb2RlMzIKLUVOVFJZ KHN0YXJ0dXBfMzIpCitTWU1fRlVOQ19TVEFSVChzdGFydHVwXzMyKQogCS8qCiAJICogMzJiaXQg ZW50cnkgaXMgMCBhbmQgaXQgaXMgQUJJIHNvIGltbXV0YWJsZSEKIAkgKiBJZiB3ZSBjb21lIGhl cmUgZGlyZWN0bHkgZnJvbSBhIGJvb3Rsb2FkZXIsCkBAIC0yMjIsMTEgKzIyMiwxMSBAQCBFTlRS WShzdGFydHVwXzMyKQogCiAJLyogSnVtcCBmcm9tIDMyYml0IGNvbXBhdGliaWxpdHkgbW9kZSBp bnRvIDY0Yml0IG1vZGUuICovCiAJbHJldAotRU5EUFJPQyhzdGFydHVwXzMyKQorU1lNX0ZVTkNf RU5EKHN0YXJ0dXBfMzIpCiAKICNpZmRlZiBDT05GSUdfRUZJX01JWEVECiAJLm9yZyAweDE5MAot RU5UUlkoZWZpMzJfc3R1Yl9lbnRyeSkKK1NZTV9GVU5DX1NUQVJUKGVmaTMyX3N0dWJfZW50cnkp CiAJYWRkCSQweDQsICVlc3AJCS8qIERpc2NhcmQgcmV0dXJuIGFkZHJlc3MgKi8KIAlwb3BsCSVl Y3gKIAlwb3BsCSVlZHgKQEAgLTI0NSw3ICsyNDUsNyBAQCBFTlRSWShlZmkzMl9zdHViX2VudHJ5 KQogCW1vdmwJJWVheCwgZWZpX2NvbmZpZyglZWJwKQogCiAJam1wCXN0YXJ0dXBfMzIKLUVORFBS T0MoZWZpMzJfc3R1Yl9lbnRyeSkKK1NZTV9GVU5DX0VORChlZmkzMl9zdHViX2VudHJ5KQogI2Vu ZGlmCiAKIAkuY29kZTY0CkBAIC00MDUsNyArNDA1LDcgQEAgU1lNX0NPREVfRU5EKHN0YXJ0dXBf NjQpCiAjaWZkZWYgQ09ORklHX0VGSV9TVFVCCiAKIC8qIFRoZSBlbnRyeSBwb2ludCBmb3IgdGhl IFBFL0NPRkYgZXhlY3V0YWJsZSBpcyBlZmlfcGVfZW50cnkuICovCi1FTlRSWShlZmlfcGVfZW50 cnkpCitTWU1fRlVOQ19TVEFSVChlZmlfcGVfZW50cnkpCiAJbW92cQklcmN4LCBlZmk2NF9jb25m aWcoJXJpcCkJLyogSGFuZGxlICovCiAJbW92cQklcmR4LCBlZmk2NF9jb25maWcrOCglcmlwKSAv KiBFRkkgU3lzdGVtIHRhYmxlIHBvaW50ZXIgKi8KIApAQCAtNDU0LDEwICs0NTQsMTAgQEAgZmFp bDoKIAltb3ZsCUJQX2NvZGUzMl9zdGFydCglZXNpKSwgJWVheAogCWxlYXEJc3RhcnR1cF82NCgl cmF4KSwgJXJheAogCWptcAkqJXJheAotRU5EUFJPQyhlZmlfcGVfZW50cnkpCitTWU1fRlVOQ19F TkQoZWZpX3BlX2VudHJ5KQogCiAJLm9yZyAweDM5MAotRU5UUlkoZWZpNjRfc3R1Yl9lbnRyeSkK K1NZTV9GVU5DX1NUQVJUKGVmaTY0X3N0dWJfZW50cnkpCiAJbW92cQklcmRpLCBlZmk2NF9jb25m aWcoJXJpcCkJLyogSGFuZGxlICovCiAJbW92cQklcnNpLCBlZmk2NF9jb25maWcrOCglcmlwKSAv KiBFRkkgU3lzdGVtIHRhYmxlIHBvaW50ZXIgKi8KIApAQCAtNDY2LDcgKzQ2Niw3IEBAIEVOVFJZ KGVmaTY0X3N0dWJfZW50cnkpCiAKIAltb3ZxCSVyZHgsICVyc2kKIAlqbXAJaGFuZG92ZXJfZW50 cnkKLUVORFBST0MoZWZpNjRfc3R1Yl9lbnRyeSkKK1NZTV9GVU5DX0VORChlZmk2NF9zdHViX2Vu dHJ5KQogI2VuZGlmCiAKIAkudGV4dApkaWZmIC0tZ2l0IGEvYXJjaC94ODYvYm9vdC9jb21wcmVz c2VkL21lbV9lbmNyeXB0LlMgYi9hcmNoL3g4Ni9ib290L2NvbXByZXNzZWQvbWVtX2VuY3J5cHQu UwppbmRleCBmYWJlZDI4ZDJlZGQuLmViZjgyZTFmOTMwMCAxMDA2NDQKLS0tIGEvYXJjaC94ODYv Ym9vdC9jb21wcmVzc2VkL21lbV9lbmNyeXB0LlMKKysrIGIvYXJjaC94ODYvYm9vdC9jb21wcmVz c2VkL21lbV9lbmNyeXB0LlMKQEAgLTE4LDcgKzE4LDcgQEAKIAogCS50ZXh0CiAJLmNvZGUzMgot RU5UUlkoZ2V0X3Nldl9lbmNyeXB0aW9uX2JpdCkKK1NZTV9GVU5DX1NUQVJUKGdldF9zZXZfZW5j cnlwdGlvbl9iaXQpCiAJeG9yCSVlYXgsICVlYXgKIAogI2lmZGVmIENPTkZJR19BTURfTUVNX0VO Q1JZUFQKQEAgLTg1LDEwICs4NSwxMCBAQCBFTlRSWShnZXRfc2V2X2VuY3J5cHRpb25fYml0KQog I2VuZGlmCS8qIENPTkZJR19BTURfTUVNX0VOQ1JZUFQgKi8KIAogCXJldAotRU5EUFJPQyhnZXRf c2V2X2VuY3J5cHRpb25fYml0KQorU1lNX0ZVTkNfRU5EKGdldF9zZXZfZW5jcnlwdGlvbl9iaXQp CiAKIAkuY29kZTY0Ci1FTlRSWShzZXRfc2V2X2VuY3J5cHRpb25fbWFzaykKK1NZTV9GVU5DX1NU QVJUKHNldF9zZXZfZW5jcnlwdGlvbl9tYXNrKQogI2lmZGVmIENPTkZJR19BTURfTUVNX0VOQ1JZ UFQKIAlwdXNoCSVyYnAKIAlwdXNoCSVyZHgKQEAgLTExMCw3ICsxMTAsNyBAQCBFTlRSWShzZXRf c2V2X2VuY3J5cHRpb25fbWFzaykKIAogCXhvcgklcmF4LCAlcmF4CiAJcmV0Ci1FTkRQUk9DKHNl dF9zZXZfZW5jcnlwdGlvbl9tYXNrKQorU1lNX0ZVTkNfRU5EKHNldF9zZXZfZW5jcnlwdGlvbl9t YXNrKQogCiAJLmRhdGEKIFNZTV9EQVRBX0xPQ0FMKGVuY19iaXQsIC5pbnQgMHhmZmZmZmZmZikK ZGlmZiAtLWdpdCBhL2FyY2gveDg2L2NyeXB0by9hZXMtaTU4Ni1hc21fMzIuUyBiL2FyY2gveDg2 L2NyeXB0by9hZXMtaTU4Ni1hc21fMzIuUwppbmRleCAyODQ5ZGJjNTllMTEuLjViMjYzNmM1ODUy NyAxMDA2NDQKLS0tIGEvYXJjaC94ODYvY3J5cHRvL2Flcy1pNTg2LWFzbV8zMi5TCisrKyBiL2Fy Y2gveDg2L2NyeXB0by9hZXMtaTU4Ni1hc21fMzIuUwpAQCAtMjIzLDcgKzIyMyw3IEBACiAuZXh0 ZXJuICBjcnlwdG9fZnRfdGFiCiAuZXh0ZXJuICBjcnlwdG9fZmxfdGFiCiAKLUVOVFJZKGFlc19l bmNfYmxrKQorU1lNX0ZVTkNfU1RBUlQoYWVzX2VuY19ibGspCiAJcHVzaCAgICAlZWJwCiAJbW92 ICAgICBjdHgoJWVzcCksJWVicAogCkBAIC0yODcsNyArMjg3LDcgQEAgRU5UUlkoYWVzX2VuY19i bGspCiAJbW92ICAgICAlcjAsKCVlYnApCiAJcG9wICAgICAlZWJwCiAJcmV0Ci1FTkRQUk9DKGFl c19lbmNfYmxrKQorU1lNX0ZVTkNfRU5EKGFlc19lbmNfYmxrKQogCiAvLyBBRVMgKFJpam5kYWVs KSBEZWNyeXB0aW9uIFN1YnJvdXRpbmUKIC8qIHZvaWQgYWVzX2RlY19ibGsoc3RydWN0IGNyeXB0 b19hZXNfY3R4ICpjdHgsIHU4ICpvdXRfYmxrLCBjb25zdCB1OCAqaW5fYmxrKSAqLwpAQCAtMjk1 LDcgKzI5NSw3IEBAIEVORFBST0MoYWVzX2VuY19ibGspCiAuZXh0ZXJuICBjcnlwdG9faXRfdGFi CiAuZXh0ZXJuICBjcnlwdG9faWxfdGFiCiAKLUVOVFJZKGFlc19kZWNfYmxrKQorU1lNX0ZVTkNf U1RBUlQoYWVzX2RlY19ibGspCiAJcHVzaCAgICAlZWJwCiAJbW92ICAgICBjdHgoJWVzcCksJWVi cAogCkBAIC0zNTksNCArMzU5LDQgQEAgRU5UUlkoYWVzX2RlY19ibGspCiAJbW92ICAgICAlcjAs KCVlYnApCiAJcG9wICAgICAlZWJwCiAJcmV0Ci1FTkRQUk9DKGFlc19kZWNfYmxrKQorU1lNX0ZV TkNfRU5EKGFlc19kZWNfYmxrKQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvY3J5cHRvL2Flcy14ODZf NjQtYXNtXzY0LlMgYi9hcmNoL3g4Ni9jcnlwdG8vYWVzLXg4Nl82NC1hc21fNjQuUwppbmRleCA4 NzM5Y2Y3Nzk1ZGUuLjIyYzQ0YWQzZWY0MiAxMDA2NDQKLS0tIGEvYXJjaC94ODYvY3J5cHRvL2Fl cy14ODZfNjQtYXNtXzY0LlMKKysrIGIvYXJjaC94ODYvY3J5cHRvL2Flcy14ODZfNjQtYXNtXzY0 LlMKQEAgLTQ5LDcgKzQ5LDcgQEAKICNkZWZpbmUgUjExCSVyMTEKIAogI2RlZmluZSBwcm9sb2d1 ZShGVU5DLEtFWSxCMTI4LEIxOTIscjEscjIscjUscjYscjcscjgscjkscjEwLHIxMSkgXAotCUVO VFJZKEZVTkMpOwkJCVwKKwlTWU1fRlVOQ19TVEFSVChGVU5DKTsJCVwKIAltb3ZxCXIxLHIyOwkJ CVwKIAlsZWFxCUtFWSs0OChyOCkscjk7CQlcCiAJbW92cQlyMTAscjExOwkJXApAQCAtNzUsNyAr NzUsNyBAQAogCW1vdmwJcjcgIyMgRSw4KHI5KTsJCVwKIAltb3ZsCXI4ICMjIEUsMTIocjkpOwkJ XAogCXJldDsJCQkJXAotCUVORFBST0MoRlVOQyk7CisJU1lNX0ZVTkNfRU5EKEZVTkMpOwogCiAj ZGVmaW5lIHJvdW5kKFRBQixPRkZTRVQscjEscjIscjMscjQscjUscjYscjcscjgscmEscmIscmMs cmQpIFwKIAltb3Z6YmwJcjIgIyMgSCxyNSAjIyBFOwlcCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9j cnlwdG8vYWVzX2N0cmJ5OF9hdngteDg2XzY0LlMgYi9hcmNoL3g4Ni9jcnlwdG8vYWVzX2N0cmJ5 OF9hdngteDg2XzY0LlMKaW5kZXggNWY2YTVhZjljNDg5Li5lYzQzN2RiMWZhNTQgMTAwNjQ0Ci0t LSBhL2FyY2gveDg2L2NyeXB0by9hZXNfY3RyYnk4X2F2eC14ODZfNjQuUworKysgYi9hcmNoL3g4 Ni9jcnlwdG8vYWVzX2N0cmJ5OF9hdngteDg2XzY0LlMKQEAgLTU0NCwxMSArNTQ0LDExIEBAIGRk cV9hZGRfODoKICAqIGFlc19jdHJfZW5jXzEyOF9hdnhfYnk4KHZvaWQgKmluLCB2b2lkICppdiwg dm9pZCAqa2V5cywgdm9pZCAqb3V0LAogICoJCQl1bnNpZ25lZCBpbnQgbnVtX2J5dGVzKQogICov Ci1FTlRSWShhZXNfY3RyX2VuY18xMjhfYXZ4X2J5OCkKK1NZTV9GVU5DX1NUQVJUKGFlc19jdHJf ZW5jXzEyOF9hdnhfYnk4KQogCS8qIGNhbGwgdGhlIGFlcyBtYWluIGxvb3AgKi8KIAlkb19hZXNf Y3RybWFpbiBLRVlfMTI4CiAKLUVORFBST0MoYWVzX2N0cl9lbmNfMTI4X2F2eF9ieTgpCitTWU1f RlVOQ19FTkQoYWVzX2N0cl9lbmNfMTI4X2F2eF9ieTgpCiAKIC8qCiAgKiByb3V0aW5lIHRvIGRv IEFFUzE5MiBDVFIgZW5jL2RlY3J5cHQgImJ5OCIKQEAgLTU1NywxMSArNTU3LDExIEBAIEVORFBS T0MoYWVzX2N0cl9lbmNfMTI4X2F2eF9ieTgpCiAgKiBhZXNfY3RyX2VuY18xOTJfYXZ4X2J5OCh2 b2lkICppbiwgdm9pZCAqaXYsIHZvaWQgKmtleXMsIHZvaWQgKm91dCwKICAqCQkJdW5zaWduZWQg aW50IG51bV9ieXRlcykKICAqLwotRU5UUlkoYWVzX2N0cl9lbmNfMTkyX2F2eF9ieTgpCitTWU1f RlVOQ19TVEFSVChhZXNfY3RyX2VuY18xOTJfYXZ4X2J5OCkKIAkvKiBjYWxsIHRoZSBhZXMgbWFp biBsb29wICovCiAJZG9fYWVzX2N0cm1haW4gS0VZXzE5MgogCi1FTkRQUk9DKGFlc19jdHJfZW5j XzE5Ml9hdnhfYnk4KQorU1lNX0ZVTkNfRU5EKGFlc19jdHJfZW5jXzE5Ml9hdnhfYnk4KQogCiAv KgogICogcm91dGluZSB0byBkbyBBRVMyNTYgQ1RSIGVuYy9kZWNyeXB0ICJieTgiCkBAIC01NzAs OCArNTcwLDggQEAgRU5EUFJPQyhhZXNfY3RyX2VuY18xOTJfYXZ4X2J5OCkKICAqIGFlc19jdHJf ZW5jXzI1Nl9hdnhfYnk4KHZvaWQgKmluLCB2b2lkICppdiwgdm9pZCAqa2V5cywgdm9pZCAqb3V0 LAogICoJCQl1bnNpZ25lZCBpbnQgbnVtX2J5dGVzKQogICovCi1FTlRSWShhZXNfY3RyX2VuY18y NTZfYXZ4X2J5OCkKK1NZTV9GVU5DX1NUQVJUKGFlc19jdHJfZW5jXzI1Nl9hdnhfYnk4KQogCS8q IGNhbGwgdGhlIGFlcyBtYWluIGxvb3AgKi8KIAlkb19hZXNfY3RybWFpbiBLRVlfMjU2CiAKLUVO RFBST0MoYWVzX2N0cl9lbmNfMjU2X2F2eF9ieTgpCitTWU1fRlVOQ19FTkQoYWVzX2N0cl9lbmNf MjU2X2F2eF9ieTgpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9jcnlwdG8vYWVzbmktaW50ZWxfYXNt LlMgYi9hcmNoL3g4Ni9jcnlwdG8vYWVzbmktaW50ZWxfYXNtLlMKaW5kZXggYzg1ZWNiMTYzYzc4 Li44YTBiMTU0ZDNhOWYgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2NyeXB0by9hZXNuaS1pbnRlbF9h c20uUworKysgYi9hcmNoL3g4Ni9jcnlwdG8vYWVzbmktaW50ZWxfYXNtLlMKQEAgLTE1OTYsNyAr MTU5Niw3IEBAIF9lc2JfbG9vcF9cQDoKICogcG9seSA9IHheMTI4ICsgeF4xMjcgKyB4XjEyNiAr IHheMTIxICsgMQogKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi1FTlRSWShhZXNuaV9nY21fZGVj KQorU1lNX0ZVTkNfU1RBUlQoYWVzbmlfZ2NtX2RlYykKIAlGVU5DX1NBVkUKIAogCUdDTV9JTklU ICVhcmc2LCBhcmc3LCBhcmc4LCBhcmc5CkBAIC0xNjA0LDcgKzE2MDQsNyBAQCBFTlRSWShhZXNu aV9nY21fZGVjKQogCUdDTV9DT01QTEVURSBhcmcxMCwgYXJnMTEKIAlGVU5DX1JFU1RPUkUKIAly ZXQKLUVORFBST0MoYWVzbmlfZ2NtX2RlYykKK1NZTV9GVU5DX0VORChhZXNuaV9nY21fZGVjKQog CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtMTY4NCw3ICsxNjg0LDcgQEAgRU5EUFJPQyhh ZXNuaV9nY21fZGVjKQogKgogKiBwb2x5ID0geF4xMjggKyB4XjEyNyArIHheMTI2ICsgeF4xMjEg KyAxCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKiovCi1FTlRSWShhZXNuaV9nY21fZW5jKQorU1lNX0ZVTkNf U1RBUlQoYWVzbmlfZ2NtX2VuYykKIAlGVU5DX1NBVkUKIAogCUdDTV9JTklUICVhcmc2LCBhcmc3 LCBhcmc4LCBhcmc5CkBAIC0xNjkzLDcgKzE2OTMsNyBAQCBFTlRSWShhZXNuaV9nY21fZW5jKQog CUdDTV9DT01QTEVURSBhcmcxMCwgYXJnMTEKIAlGVU5DX1JFU1RPUkUKIAlyZXQKLUVORFBST0Mo YWVzbmlfZ2NtX2VuYykKK1NZTV9GVU5DX0VORChhZXNuaV9nY21fZW5jKQogCiAvKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioKICogdm9pZCBhZXNuaV9nY21faW5pdCh2b2lkICphZXNfY3R4LCAgICAgIC8v IEFFUyBLZXkgc2NoZWR1bGUuIFN0YXJ0cyBvbiBhIDE2IGJ5dGUgYm91bmRhcnkuCkBAIC0xNzA2 LDEyICsxNzA2LDEyIEBAIEVORFBST0MoYWVzbmlfZ2NtX2VuYykKICogICAgICAgICAgICAgICAg ICAgICBjb25zdCB1OCAqYWFkLCAgICAgIC8vIEFkZGl0aW9uYWwgQXV0aGVudGljYXRpb24gRGF0 YSAoQUFEKQogKiAgICAgICAgICAgICAgICAgICAgIHU2NCBhYWRfbGVuKSAgICAgICAgLy8gTGVu Z3RoIG9mIEFBRCBpbiBieXRlcy4KICovCi1FTlRSWShhZXNuaV9nY21faW5pdCkKK1NZTV9GVU5D X1NUQVJUKGFlc25pX2djbV9pbml0KQogCUZVTkNfU0FWRQogCUdDTV9JTklUICVhcmczLCAlYXJn NCwlYXJnNSwgJWFyZzYKIAlGVU5DX1JFU1RPUkUKIAlyZXQKLUVORFBST0MoYWVzbmlfZ2NtX2lu aXQpCitTWU1fRlVOQ19FTkQoYWVzbmlfZ2NtX2luaXQpCiAKIC8qKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KgogKiB2b2lkIGFlc25pX2djbV9lbmNfdXBkYXRlKHZvaWQgKmFlc19jdHgsICAgICAgLy8gQUVT IEtleSBzY2hlZHVsZS4gU3RhcnRzIG9uIGEgMTYgYnl0ZSBib3VuZGFyeS4KQEAgLTE3MjEsMTIg KzE3MjEsMTIgQEAgRU5EUFJPQyhhZXNuaV9nY21faW5pdCkKICogICAgICAgICAgICAgICAgICAg IGNvbnN0IHU4ICppbiwgICAgICAgLy8gUGxhaW50ZXh0IGlucHV0CiAqICAgICAgICAgICAgICAg ICAgICB1NjQgcGxhaW50ZXh0X2xlbiwgIC8vIExlbmd0aCBvZiBkYXRhIGluIGJ5dGVzIGZvciBl bmNyeXB0aW9uLgogKi8KLUVOVFJZKGFlc25pX2djbV9lbmNfdXBkYXRlKQorU1lNX0ZVTkNfU1RB UlQoYWVzbmlfZ2NtX2VuY191cGRhdGUpCiAJRlVOQ19TQVZFCiAJR0NNX0VOQ19ERUMgZW5jCiAJ RlVOQ19SRVNUT1JFCiAJcmV0Ci1FTkRQUk9DKGFlc25pX2djbV9lbmNfdXBkYXRlKQorU1lNX0ZV TkNfRU5EKGFlc25pX2djbV9lbmNfdXBkYXRlKQogCiAvKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICog dm9pZCBhZXNuaV9nY21fZGVjX3VwZGF0ZSh2b2lkICphZXNfY3R4LCAgICAgIC8vIEFFUyBLZXkg c2NoZWR1bGUuIFN0YXJ0cyBvbiBhIDE2IGJ5dGUgYm91bmRhcnkuCkBAIC0xNzM2LDEyICsxNzM2 LDEyIEBAIEVORFBST0MoYWVzbmlfZ2NtX2VuY191cGRhdGUpCiAqICAgICAgICAgICAgICAgICAg ICBjb25zdCB1OCAqaW4sICAgICAgIC8vIFBsYWludGV4dCBpbnB1dAogKiAgICAgICAgICAgICAg ICAgICAgdTY0IHBsYWludGV4dF9sZW4sICAvLyBMZW5ndGggb2YgZGF0YSBpbiBieXRlcyBmb3Ig ZW5jcnlwdGlvbi4KICovCi1FTlRSWShhZXNuaV9nY21fZGVjX3VwZGF0ZSkKK1NZTV9GVU5DX1NU QVJUKGFlc25pX2djbV9kZWNfdXBkYXRlKQogCUZVTkNfU0FWRQogCUdDTV9FTkNfREVDIGRlYwog CUZVTkNfUkVTVE9SRQogCXJldAotRU5EUFJPQyhhZXNuaV9nY21fZGVjX3VwZGF0ZSkKK1NZTV9G VU5DX0VORChhZXNuaV9nY21fZGVjX3VwZGF0ZSkKIAogLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAq IHZvaWQgYWVzbmlfZ2NtX2ZpbmFsaXplKHZvaWQgKmFlc19jdHgsICAgICAgLy8gQUVTIEtleSBz Y2hlZHVsZS4gU3RhcnRzIG9uIGEgMTYgYnl0ZSBib3VuZGFyeS4KQEAgLTE3NTEsMTIgKzE3NTEs MTIgQEAgRU5EUFJPQyhhZXNuaV9nY21fZGVjX3VwZGF0ZSkKICogICAgICAgICAgICAgICAgICAg IHU2NCBhdXRoX3RhZ19sZW4pOyAgLy8gQXV0aGVudGljYXRlZCBUYWcgTGVuZ3RoIGluIGJ5dGVz LiBWYWxpZCB2YWx1ZXMgYXJlIDE2IChtb3N0IGxpa2VseSksCiAqICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIDEyIG9yIDguCiAqLwotRU5UUlkoYWVzbmlfZ2NtX2Zp bmFsaXplKQorU1lNX0ZVTkNfU1RBUlQoYWVzbmlfZ2NtX2ZpbmFsaXplKQogCUZVTkNfU0FWRQog CUdDTV9DT01QTEVURSAlYXJnMyAlYXJnNAogCUZVTkNfUkVTVE9SRQogCXJldAotRU5EUFJPQyhh ZXNuaV9nY21fZmluYWxpemUpCitTWU1fRlVOQ19FTkQoYWVzbmlfZ2NtX2ZpbmFsaXplKQogCiAj ZW5kaWYKIApAQCAtMTgzNCw3ICsxODM0LDcgQEAgU1lNX0ZVTkNfRU5EKF9rZXlfZXhwYW5zaW9u XzI1NmIpCiAgKiBpbnQgYWVzbmlfc2V0X2tleShzdHJ1Y3QgY3J5cHRvX2Flc19jdHggKmN0eCwg Y29uc3QgdTggKmluX2tleSwKICAqICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBrZXlf bGVuKQogICovCi1FTlRSWShhZXNuaV9zZXRfa2V5KQorU1lNX0ZVTkNfU1RBUlQoYWVzbmlfc2V0 X2tleSkKIAlGUkFNRV9CRUdJTgogI2lmbmRlZiBfX3g4Nl82NF9fCiAJcHVzaGwgS0VZUApAQCAt MTk0MywxMiArMTk0MywxMiBAQCBFTlRSWShhZXNuaV9zZXRfa2V5KQogI2VuZGlmCiAJRlJBTUVf RU5ECiAJcmV0Ci1FTkRQUk9DKGFlc25pX3NldF9rZXkpCitTWU1fRlVOQ19FTkQoYWVzbmlfc2V0 X2tleSkKIAogLyoKICAqIHZvaWQgYWVzbmlfZW5jKHN0cnVjdCBjcnlwdG9fYWVzX2N0eCAqY3R4 LCB1OCAqZHN0LCBjb25zdCB1OCAqc3JjKQogICovCi1FTlRSWShhZXNuaV9lbmMpCitTWU1fRlVO Q19TVEFSVChhZXNuaV9lbmMpCiAJRlJBTUVfQkVHSU4KICNpZm5kZWYgX194ODZfNjRfXwogCXB1 c2hsIEtFWVAKQEAgLTE5NjcsNyArMTk2Nyw3IEBAIEVOVFJZKGFlc25pX2VuYykKICNlbmRpZgog CUZSQU1FX0VORAogCXJldAotRU5EUFJPQyhhZXNuaV9lbmMpCitTWU1fRlVOQ19FTkQoYWVzbmlf ZW5jKQogCiAvKgogICogX2Flc25pX2VuYzE6CQlpbnRlcm5hbCBBQkkKQEAgLTIxMzcsNyArMjEz Nyw3IEBAIFNZTV9GVU5DX0VORChfYWVzbmlfZW5jNCkKIC8qCiAgKiB2b2lkIGFlc25pX2RlYyAo c3RydWN0IGNyeXB0b19hZXNfY3R4ICpjdHgsIHU4ICpkc3QsIGNvbnN0IHU4ICpzcmMpCiAgKi8K LUVOVFJZKGFlc25pX2RlYykKK1NZTV9GVU5DX1NUQVJUKGFlc25pX2RlYykKIAlGUkFNRV9CRUdJ TgogI2lmbmRlZiBfX3g4Nl82NF9fCiAJcHVzaGwgS0VZUApAQCAtMjE1Nyw3ICsyMTU3LDcgQEAg RU5UUlkoYWVzbmlfZGVjKQogI2VuZGlmCiAJRlJBTUVfRU5ECiAJcmV0Ci1FTkRQUk9DKGFlc25p X2RlYykKK1NZTV9GVU5DX0VORChhZXNuaV9kZWMpCiAKIC8qCiAgKiBfYWVzbmlfZGVjMToJCWlu dGVybmFsIEFCSQpAQCAtMjMyOCw3ICsyMzI4LDcgQEAgU1lNX0ZVTkNfRU5EKF9hZXNuaV9kZWM0 KQogICogdm9pZCBhZXNuaV9lY2JfZW5jKHN0cnVjdCBjcnlwdG9fYWVzX2N0eCAqY3R4LCBjb25z dCB1OCAqZHN0LCB1OCAqc3JjLAogICoJCSAgICAgIHNpemVfdCBsZW4pCiAgKi8KLUVOVFJZKGFl c25pX2VjYl9lbmMpCitTWU1fRlVOQ19TVEFSVChhZXNuaV9lY2JfZW5jKQogCUZSQU1FX0JFR0lO CiAjaWZuZGVmIF9feDg2XzY0X18KIAlwdXNobCBMRU4KQEAgLTIzODIsMTMgKzIzODIsMTMgQEAg RU5UUlkoYWVzbmlfZWNiX2VuYykKICNlbmRpZgogCUZSQU1FX0VORAogCXJldAotRU5EUFJPQyhh ZXNuaV9lY2JfZW5jKQorU1lNX0ZVTkNfRU5EKGFlc25pX2VjYl9lbmMpCiAKIC8qCiAgKiB2b2lk IGFlc25pX2VjYl9kZWMoc3RydWN0IGNyeXB0b19hZXNfY3R4ICpjdHgsIGNvbnN0IHU4ICpkc3Qs IHU4ICpzcmMsCiAgKgkJICAgICAgc2l6ZV90IGxlbik7CiAgKi8KLUVOVFJZKGFlc25pX2VjYl9k ZWMpCitTWU1fRlVOQ19TVEFSVChhZXNuaV9lY2JfZGVjKQogCUZSQU1FX0JFR0lOCiAjaWZuZGVm IF9feDg2XzY0X18KIAlwdXNobCBMRU4KQEAgLTI0NDMsMTMgKzI0NDMsMTMgQEAgRU5UUlkoYWVz bmlfZWNiX2RlYykKICNlbmRpZgogCUZSQU1FX0VORAogCXJldAotRU5EUFJPQyhhZXNuaV9lY2Jf ZGVjKQorU1lNX0ZVTkNfRU5EKGFlc25pX2VjYl9kZWMpCiAKIC8qCiAgKiB2b2lkIGFlc25pX2Ni Y19lbmMoc3RydWN0IGNyeXB0b19hZXNfY3R4ICpjdHgsIGNvbnN0IHU4ICpkc3QsIHU4ICpzcmMs CiAgKgkJICAgICAgc2l6ZV90IGxlbiwgdTggKml2KQogICovCi1FTlRSWShhZXNuaV9jYmNfZW5j KQorU1lNX0ZVTkNfU1RBUlQoYWVzbmlfY2JjX2VuYykKIAlGUkFNRV9CRUdJTgogI2lmbmRlZiBf X3g4Nl82NF9fCiAJcHVzaGwgSVZQCkBAIC0yNDg3LDEzICsyNDg3LDEzIEBAIEVOVFJZKGFlc25p X2NiY19lbmMpCiAjZW5kaWYKIAlGUkFNRV9FTkQKIAlyZXQKLUVORFBST0MoYWVzbmlfY2JjX2Vu YykKK1NZTV9GVU5DX0VORChhZXNuaV9jYmNfZW5jKQogCiAvKgogICogdm9pZCBhZXNuaV9jYmNf ZGVjKHN0cnVjdCBjcnlwdG9fYWVzX2N0eCAqY3R4LCBjb25zdCB1OCAqZHN0LCB1OCAqc3JjLAog ICoJCSAgICAgIHNpemVfdCBsZW4sIHU4ICppdikKICAqLwotRU5UUlkoYWVzbmlfY2JjX2RlYykK K1NZTV9GVU5DX1NUQVJUKGFlc25pX2NiY19kZWMpCiAJRlJBTUVfQkVHSU4KICNpZm5kZWYgX194 ODZfNjRfXwogCXB1c2hsIElWUApAQCAtMjU4MCw3ICsyNTgwLDcgQEAgRU5UUlkoYWVzbmlfY2Jj X2RlYykKICNlbmRpZgogCUZSQU1FX0VORAogCXJldAotRU5EUFJPQyhhZXNuaV9jYmNfZGVjKQor U1lNX0ZVTkNfRU5EKGFlc25pX2NiY19kZWMpCiAKICNpZmRlZiBfX3g4Nl82NF9fCiAucHVzaHNl Y3Rpb24gLnJvZGF0YQpAQCAtMjY0Miw3ICsyNjQyLDcgQEAgU1lNX0ZVTkNfRU5EKF9hZXNuaV9p bmMpCiAgKiB2b2lkIGFlc25pX2N0cl9lbmMoc3RydWN0IGNyeXB0b19hZXNfY3R4ICpjdHgsIGNv bnN0IHU4ICpkc3QsIHU4ICpzcmMsCiAgKgkJICAgICAgc2l6ZV90IGxlbiwgdTggKml2KQogICov Ci1FTlRSWShhZXNuaV9jdHJfZW5jKQorU1lNX0ZVTkNfU1RBUlQoYWVzbmlfY3RyX2VuYykKIAlG UkFNRV9CRUdJTgogCWNtcCAkMTYsIExFTgogCWpiIC5MY3RyX2VuY19qdXN0X3JldApAQCAtMjY5 OSw3ICsyNjk5LDcgQEAgRU5UUlkoYWVzbmlfY3RyX2VuYykKIC5MY3RyX2VuY19qdXN0X3JldDoK IAlGUkFNRV9FTkQKIAlyZXQKLUVORFBST0MoYWVzbmlfY3RyX2VuYykKK1NZTV9GVU5DX0VORChh ZXNuaV9jdHJfZW5jKQogCiAvKgogICogX2Flc25pX2dmMTI4bXVsX3hfYmxlOgkJaW50ZXJuYWwg QUJJCkBAIC0yNzIzLDcgKzI3MjMsNyBAQCBFTkRQUk9DKGFlc25pX2N0cl9lbmMpCiAgKiB2b2lk IGFlc25pX3h0c19jcnlwdDgoc3RydWN0IGNyeXB0b19hZXNfY3R4ICpjdHgsIGNvbnN0IHU4ICpk c3QsIHU4ICpzcmMsCiAgKgkJCSBib29sIGVuYywgdTggKml2KQogICovCi1FTlRSWShhZXNuaV94 dHNfY3J5cHQ4KQorU1lNX0ZVTkNfU1RBUlQoYWVzbmlfeHRzX2NyeXB0OCkKIAlGUkFNRV9CRUdJ TgogCWNtcGIgJDAsICVjbAogCW1vdmwgJDAsICVlY3gKQEAgLTI4MjcsNiArMjgyNyw2IEBAIEVO VFJZKGFlc25pX3h0c19jcnlwdDgpCiAKIAlGUkFNRV9FTkQKIAlyZXQKLUVORFBST0MoYWVzbmlf eHRzX2NyeXB0OCkKK1NZTV9GVU5DX0VORChhZXNuaV94dHNfY3J5cHQ4KQogCiAjZW5kaWYKZGlm ZiAtLWdpdCBhL2FyY2gveDg2L2NyeXB0by9hZXNuaS1pbnRlbF9hdngteDg2XzY0LlMgYi9hcmNo L3g4Ni9jcnlwdG8vYWVzbmktaW50ZWxfYXZ4LXg4Nl82NC5TCmluZGV4IGZhZWNiMTUxOGJmOC4u ZWUwNTY2OTRlNTRkIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9jcnlwdG8vYWVzbmktaW50ZWxfYXZ4 LXg4Nl82NC5TCisrKyBiL2FyY2gveDg2L2NyeXB0by9hZXNuaS1pbnRlbF9hdngteDg2XzY0LlMK QEAgLTE1MzEsNyArMTUzMSw3IEBAIF9yZXR1cm5fVF9kb25lXEA6CiAjICAgICAgICAoZ2NtX2Rh dGEgICAgICpteV9jdHhfZGF0YSwKICMgICAgICAgIHU4ICAgICAqaGFzaF9zdWJrZXkpIyAvKiBI LCB0aGUgSGFzaCBzdWIga2V5IGlucHV0LiBEYXRhIHN0YXJ0cyBvbiBhIDE2LWJ5dGUgYm91bmRh cnkuICovCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCi1FTlRSWShhZXNuaV9nY21fcHJlY29tcF9hdnhfZ2VuMikKK1NZTV9GVU5D X1NUQVJUKGFlc25pX2djbV9wcmVjb21wX2F2eF9nZW4yKQogICAgICAgICAjdGhlIG51bWJlciBv ZiBwdXNoZXMgbXVzdCBlcXVhbCBTVEFDS19PRkZTRVQKICAgICAgICAgcHVzaCAgICAlcjEyCiAg ICAgICAgIHB1c2ggICAgJXIxMwpAQCAtMTU3NCw3ICsxNTc0LDcgQEAgRU5UUlkoYWVzbmlfZ2Nt X3ByZWNvbXBfYXZ4X2dlbjIpCiAgICAgICAgIHBvcCAgICAgJXIxMwogICAgICAgICBwb3AgICAg ICVyMTIKICAgICAgICAgcmV0Ci1FTkRQUk9DKGFlc25pX2djbV9wcmVjb21wX2F2eF9nZW4yKQor U1lNX0ZVTkNfRU5EKGFlc25pX2djbV9wcmVjb21wX2F2eF9nZW4yKQogCiAjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCiAjdm9pZCAgIGFlc25pX2djbV9lbmNfYXZ4X2dlbjIoCkBAIC0xNTkyLDEwICsx NTkyLDEwIEBAIEVORFBST0MoYWVzbmlfZ2NtX3ByZWNvbXBfYXZ4X2dlbjIpCiAjICAgICAgICB1 NjQgICAgIGF1dGhfdGFnX2xlbikjIC8qIEF1dGhlbnRpY2F0ZWQgVGFnIExlbmd0aCBpbiBieXRl cy4KICMJCQkJVmFsaWQgdmFsdWVzIGFyZSAxNiAobW9zdCBsaWtlbHkpLCAxMiBvciA4LiAqLwog IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotRU5UUlkoYWVzbmlfZ2NtX2VuY19hdnhfZ2VuMikKK1NZ TV9GVU5DX1NUQVJUKGFlc25pX2djbV9lbmNfYXZ4X2dlbjIpCiAgICAgICAgIEdDTV9FTkNfREVD X0FWWCAgICAgRU5DCiAJcmV0Ci1FTkRQUk9DKGFlc25pX2djbV9lbmNfYXZ4X2dlbjIpCitTWU1f RlVOQ19FTkQoYWVzbmlfZ2NtX2VuY19hdnhfZ2VuMikKIAogIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IwogI3ZvaWQgICBhZXNuaV9nY21fZGVjX2F2eF9nZW4yKApAQCAtMTYxMywxMCArMTYxMywxMCBA QCBFTkRQUk9DKGFlc25pX2djbV9lbmNfYXZ4X2dlbjIpCiAjICAgICAgICB1NjQgICAgIGF1dGhf dGFnX2xlbikjIC8qIEF1dGhlbnRpY2F0ZWQgVGFnIExlbmd0aCBpbiBieXRlcy4KICMJCQkJVmFs aWQgdmFsdWVzIGFyZSAxNiAobW9zdCBsaWtlbHkpLCAxMiBvciA4LiAqLwogIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIwotRU5UUlkoYWVzbmlfZ2NtX2RlY19hdnhfZ2VuMikKK1NZTV9GVU5DX1NUQVJU KGFlc25pX2djbV9kZWNfYXZ4X2dlbjIpCiAgICAgICAgIEdDTV9FTkNfREVDX0FWWCAgICAgREVD CiAJcmV0Ci1FTkRQUk9DKGFlc25pX2djbV9kZWNfYXZ4X2dlbjIpCitTWU1fRlVOQ19FTkQoYWVz bmlfZ2NtX2RlY19hdnhfZ2VuMikKICNlbmRpZiAvKiBDT05GSUdfQVNfQVZYICovCiAKICNpZmRl ZiBDT05GSUdfQVNfQVZYMgpAQCAtMjg1NSw3ICsyODU1LDcgQEAgX3JldHVybl9UX2RvbmVcQDoK ICMgICAgICAgIHU4ICAgICAqaGFzaF9zdWJrZXkpIyAvKiBILCB0aGUgSGFzaCBzdWIga2V5IGlu cHV0LgogIwkJCQlEYXRhIHN0YXJ0cyBvbiBhIDE2LWJ5dGUgYm91bmRhcnkuICovCiAjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1F TlRSWShhZXNuaV9nY21fcHJlY29tcF9hdnhfZ2VuNCkKK1NZTV9GVU5DX1NUQVJUKGFlc25pX2dj bV9wcmVjb21wX2F2eF9nZW40KQogICAgICAgICAjdGhlIG51bWJlciBvZiBwdXNoZXMgbXVzdCBl cXVhbCBTVEFDS19PRkZTRVQKICAgICAgICAgcHVzaCAgICAlcjEyCiAgICAgICAgIHB1c2ggICAg JXIxMwpAQCAtMjg5OCw3ICsyODk4LDcgQEAgRU5UUlkoYWVzbmlfZ2NtX3ByZWNvbXBfYXZ4X2dl bjQpCiAgICAgICAgIHBvcCAgICAgJXIxMwogICAgICAgICBwb3AgICAgICVyMTIKICAgICAgICAg cmV0Ci1FTkRQUk9DKGFlc25pX2djbV9wcmVjb21wX2F2eF9nZW40KQorU1lNX0ZVTkNfRU5EKGFl c25pX2djbV9wcmVjb21wX2F2eF9nZW40KQogCiAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKQEAg LTI5MTcsMTAgKzI5MTcsMTAgQEAgRU5EUFJPQyhhZXNuaV9nY21fcHJlY29tcF9hdnhfZ2VuNCkK ICMgICAgICAgIHU2NCAgICAgYXV0aF90YWdfbGVuKSMgLyogQXV0aGVudGljYXRlZCBUYWcgTGVu Z3RoIGluIGJ5dGVzLgogIwkJCQlWYWxpZCB2YWx1ZXMgYXJlIDE2IChtb3N0IGxpa2VseSksIDEy IG9yIDguICovCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1FTlRSWShhZXNuaV9nY21fZW5jX2F2 eF9nZW40KQorU1lNX0ZVTkNfU1RBUlQoYWVzbmlfZ2NtX2VuY19hdnhfZ2VuNCkKICAgICAgICAg R0NNX0VOQ19ERUNfQVZYMiAgICAgRU5DCiAJcmV0Ci1FTkRQUk9DKGFlc25pX2djbV9lbmNfYXZ4 X2dlbjQpCitTWU1fRlVOQ19FTkQoYWVzbmlfZ2NtX2VuY19hdnhfZ2VuNCkKIAogIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIwogI3ZvaWQgICBhZXNuaV9nY21fZGVjX2F2eF9nZW40KApAQCAtMjkzOCw5 ICsyOTM4LDkgQEAgRU5EUFJPQyhhZXNuaV9nY21fZW5jX2F2eF9nZW40KQogIyAgICAgICAgdTY0 ICAgICBhdXRoX3RhZ19sZW4pIyAvKiBBdXRoZW50aWNhdGVkIFRhZyBMZW5ndGggaW4gYnl0ZXMu CiAjCQkJCVZhbGlkIHZhbHVlcyBhcmUgMTYgKG1vc3QgbGlrZWx5KSwgMTIgb3IgOC4gKi8KICMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKLUVOVFJZKGFlc25pX2djbV9kZWNfYXZ4X2dlbjQpCitTWU1f RlVOQ19TVEFSVChhZXNuaV9nY21fZGVjX2F2eF9nZW40KQogICAgICAgICBHQ01fRU5DX0RFQ19B VlgyICAgICBERUMKIAlyZXQKLUVORFBST0MoYWVzbmlfZ2NtX2RlY19hdnhfZ2VuNCkKK1NZTV9G VU5DX0VORChhZXNuaV9nY21fZGVjX2F2eF9nZW40KQogCiAjZW5kaWYgLyogQ09ORklHX0FTX0FW WDIgKi8KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2NyeXB0by9ibG93ZmlzaC14ODZfNjQtYXNtXzY0 LlMgYi9hcmNoL3g4Ni9jcnlwdG8vYmxvd2Zpc2gteDg2XzY0LWFzbV82NC5TCmluZGV4IDhjMWZj YjZiYWQyMS4uNzBjMzQ4NTBlZTBiIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9jcnlwdG8vYmxvd2Zp c2gteDg2XzY0LWFzbV82NC5TCisrKyBiL2FyY2gveDg2L2NyeXB0by9ibG93ZmlzaC14ODZfNjQt YXNtXzY0LlMKQEAgLTExOCw3ICsxMTgsNyBAQAogCWJzd2FwcSAJCQlSWDA7IFwKIAl4b3JxIFJY MCwgCQkoUklPKTsKIAotRU5UUlkoX19ibG93ZmlzaF9lbmNfYmxrKQorU1lNX0ZVTkNfU1RBUlQo X19ibG93ZmlzaF9lbmNfYmxrKQogCS8qIGlucHV0OgogCSAqCSVyZGk6IGN0eAogCSAqCSVyc2k6 IGRzdApAQCAtMTU0LDkgKzE1NCw5IEBAIEVOVFJZKF9fYmxvd2Zpc2hfZW5jX2JsaykKIC5MX19l bmNfeG9yOgogCXhvcl9ibG9jaygpOwogCXJldDsKLUVORFBST0MoX19ibG93ZmlzaF9lbmNfYmxr KQorU1lNX0ZVTkNfRU5EKF9fYmxvd2Zpc2hfZW5jX2JsaykKIAotRU5UUlkoYmxvd2Zpc2hfZGVj X2JsaykKK1NZTV9GVU5DX1NUQVJUKGJsb3dmaXNoX2RlY19ibGspCiAJLyogaW5wdXQ6CiAJICoJ JXJkaTogY3R4CiAJICoJJXJzaTogZHN0CkBAIC0xODYsNyArMTg2LDcgQEAgRU5UUlkoYmxvd2Zp c2hfZGVjX2JsaykKIAltb3ZxICVyMTEsICVyMTI7CiAKIAlyZXQ7Ci1FTkRQUk9DKGJsb3dmaXNo X2RlY19ibGspCitTWU1fRlVOQ19FTkQoYmxvd2Zpc2hfZGVjX2JsaykKIAogLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioKICAgNC13YXkgYmxvd2Zpc2gsIGZvdXIgYmxvY2tzIHBhcmFsbGVsCkBAIC0yOTgsNyArMjk4 LDcgQEAgRU5EUFJPQyhibG93ZmlzaF9kZWNfYmxrKQogCWJzd2FwcSAJCQlSWDM7IFwKIAl4b3Jx IFJYMywJCTI0KFJJTyk7CiAKLUVOVFJZKF9fYmxvd2Zpc2hfZW5jX2Jsa180d2F5KQorU1lNX0ZV TkNfU1RBUlQoX19ibG93ZmlzaF9lbmNfYmxrXzR3YXkpCiAJLyogaW5wdXQ6CiAJICoJJXJkaTog Y3R4CiAJICoJJXJzaTogZHN0CkBAIC0zNDUsOSArMzQ1LDkgQEAgRU5UUlkoX19ibG93ZmlzaF9l bmNfYmxrXzR3YXkpCiAJcG9wcSAlcmJ4OwogCXBvcHEgJXIxMjsKIAlyZXQ7Ci1FTkRQUk9DKF9f Ymxvd2Zpc2hfZW5jX2Jsa180d2F5KQorU1lNX0ZVTkNfRU5EKF9fYmxvd2Zpc2hfZW5jX2Jsa180 d2F5KQogCi1FTlRSWShibG93ZmlzaF9kZWNfYmxrXzR3YXkpCitTWU1fRlVOQ19TVEFSVChibG93 ZmlzaF9kZWNfYmxrXzR3YXkpCiAJLyogaW5wdXQ6CiAJICoJJXJkaTogY3R4CiAJICoJJXJzaTog ZHN0CkBAIC0zODAsNCArMzgwLDQgQEAgRU5UUlkoYmxvd2Zpc2hfZGVjX2Jsa180d2F5KQogCXBv cHEgJXIxMjsKIAogCXJldDsKLUVORFBST0MoYmxvd2Zpc2hfZGVjX2Jsa180d2F5KQorU1lNX0ZV TkNfRU5EKGJsb3dmaXNoX2RlY19ibGtfNHdheSkKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2NyeXB0 by9jYW1lbGxpYS1hZXNuaS1hdngtYXNtXzY0LlMgYi9hcmNoL3g4Ni9jcnlwdG8vY2FtZWxsaWEt YWVzbmktYXZ4LWFzbV82NC5TCmluZGV4IGY0NDA4Y2E1NWZkYi4uZDAxZGRkNzNkZTY1IDEwMDY0 NAotLS0gYS9hcmNoL3g4Ni9jcnlwdG8vY2FtZWxsaWEtYWVzbmktYXZ4LWFzbV82NC5TCisrKyBi L2FyY2gveDg2L2NyeXB0by9jYW1lbGxpYS1hZXNuaS1hdngtYXNtXzY0LlMKQEAgLTg5Myw3ICs4 OTMsNyBAQCBTWU1fRlVOQ19TVEFSVF9MT0NBTChfX2NhbWVsbGlhX2RlY19ibGsxNikKIAlqbXAg LkxkZWNfbWF4MjQ7CiBTWU1fRlVOQ19FTkQoX19jYW1lbGxpYV9kZWNfYmxrMTYpCiAKLUVOVFJZ KGNhbWVsbGlhX2VjYl9lbmNfMTZ3YXkpCitTWU1fRlVOQ19TVEFSVChjYW1lbGxpYV9lY2JfZW5j XzE2d2F5KQogCS8qIGlucHV0OgogCSAqCSVyZGk6IGN0eCwgQ1RYCiAJICoJJXJzaTogZHN0ICgx NiBibG9ja3MpCkBAIC05MTYsOSArOTE2LDkgQEAgRU5UUlkoY2FtZWxsaWFfZWNiX2VuY18xNndh eSkKIAogCUZSQU1FX0VORAogCXJldDsKLUVORFBST0MoY2FtZWxsaWFfZWNiX2VuY18xNndheSkK K1NZTV9GVU5DX0VORChjYW1lbGxpYV9lY2JfZW5jXzE2d2F5KQogCi1FTlRSWShjYW1lbGxpYV9l Y2JfZGVjXzE2d2F5KQorU1lNX0ZVTkNfU1RBUlQoY2FtZWxsaWFfZWNiX2RlY18xNndheSkKIAkv KiBpbnB1dDoKIAkgKgklcmRpOiBjdHgsIENUWAogCSAqCSVyc2k6IGRzdCAoMTYgYmxvY2tzKQpA QCAtOTQ2LDkgKzk0Niw5IEBAIEVOVFJZKGNhbWVsbGlhX2VjYl9kZWNfMTZ3YXkpCiAKIAlGUkFN RV9FTkQKIAlyZXQ7Ci1FTkRQUk9DKGNhbWVsbGlhX2VjYl9kZWNfMTZ3YXkpCitTWU1fRlVOQ19F TkQoY2FtZWxsaWFfZWNiX2RlY18xNndheSkKIAotRU5UUlkoY2FtZWxsaWFfY2JjX2RlY18xNndh eSkKK1NZTV9GVU5DX1NUQVJUKGNhbWVsbGlhX2NiY19kZWNfMTZ3YXkpCiAJLyogaW5wdXQ6CiAJ ICoJJXJkaTogY3R4LCBDVFgKIAkgKgklcnNpOiBkc3QgKDE2IGJsb2NrcykKQEAgLTk5Nyw3ICs5 OTcsNyBAQCBFTlRSWShjYW1lbGxpYV9jYmNfZGVjXzE2d2F5KQogCiAJRlJBTUVfRU5ECiAJcmV0 OwotRU5EUFJPQyhjYW1lbGxpYV9jYmNfZGVjXzE2d2F5KQorU1lNX0ZVTkNfRU5EKGNhbWVsbGlh X2NiY19kZWNfMTZ3YXkpCiAKICNkZWZpbmUgaW5jX2xlMTI4KHgsIG1pbnVzX29uZSwgdG1wKSBc CiAJdnBjbXBlcXEgbWludXNfb25lLCB4LCB0bXA7IFwKQEAgLTEwMDUsNyArMTAwNSw3IEBAIEVO RFBST0MoY2FtZWxsaWFfY2JjX2RlY18xNndheSkKIAl2cHNsbGRxICQ4LCB0bXAsIHRtcDsgXAog CXZwc3VicSB0bXAsIHgsIHg7CiAKLUVOVFJZKGNhbWVsbGlhX2N0cl8xNndheSkKK1NZTV9GVU5D X1NUQVJUKGNhbWVsbGlhX2N0cl8xNndheSkKIAkvKiBpbnB1dDoKIAkgKgklcmRpOiBjdHgsIENU WAogCSAqCSVyc2k6IGRzdCAoMTYgYmxvY2tzKQpAQCAtMTExMCw3ICsxMTEwLDcgQEAgRU5UUlko Y2FtZWxsaWFfY3RyXzE2d2F5KQogCiAJRlJBTUVfRU5ECiAJcmV0OwotRU5EUFJPQyhjYW1lbGxp YV9jdHJfMTZ3YXkpCitTWU1fRlVOQ19FTkQoY2FtZWxsaWFfY3RyXzE2d2F5KQogCiAjZGVmaW5l IGdmMTI4bXVsX3hfYmxlKGl2LCBtYXNrLCB0bXApIFwKIAl2cHNyYWQgJDMxLCBpdiwgdG1wOyBc CkBAIC0xMjU2LDcgKzEyNTYsNyBAQCBTWU1fRlVOQ19TVEFSVF9MT0NBTChjYW1lbGxpYV94dHNf Y3J5cHRfMTZ3YXkpCiAJcmV0OwogU1lNX0ZVTkNfRU5EKGNhbWVsbGlhX3h0c19jcnlwdF8xNndh eSkKIAotRU5UUlkoY2FtZWxsaWFfeHRzX2VuY18xNndheSkKK1NZTV9GVU5DX1NUQVJUKGNhbWVs bGlhX3h0c19lbmNfMTZ3YXkpCiAJLyogaW5wdXQ6CiAJICoJJXJkaTogY3R4LCBDVFgKIAkgKgkl cnNpOiBkc3QgKDE2IGJsb2NrcykKQEAgLTEyNjgsOSArMTI2OCw5IEBAIEVOVFJZKGNhbWVsbGlh X3h0c19lbmNfMTZ3YXkpCiAJbGVhcSBfX2NhbWVsbGlhX2VuY19ibGsxNiwgJXI5OwogCiAJam1w IGNhbWVsbGlhX3h0c19jcnlwdF8xNndheTsKLUVORFBST0MoY2FtZWxsaWFfeHRzX2VuY18xNndh eSkKK1NZTV9GVU5DX0VORChjYW1lbGxpYV94dHNfZW5jXzE2d2F5KQogCi1FTlRSWShjYW1lbGxp YV94dHNfZGVjXzE2d2F5KQorU1lNX0ZVTkNfU1RBUlQoY2FtZWxsaWFfeHRzX2RlY18xNndheSkK IAkvKiBpbnB1dDoKIAkgKgklcmRpOiBjdHgsIENUWAogCSAqCSVyc2k6IGRzdCAoMTYgYmxvY2tz KQpAQCAtMTI4Niw0ICsxMjg2LDQgQEAgRU5UUlkoY2FtZWxsaWFfeHRzX2RlY18xNndheSkKIAls ZWFxIF9fY2FtZWxsaWFfZGVjX2JsazE2LCAlcjk7CiAKIAlqbXAgY2FtZWxsaWFfeHRzX2NyeXB0 XzE2d2F5OwotRU5EUFJPQyhjYW1lbGxpYV94dHNfZGVjXzE2d2F5KQorU1lNX0ZVTkNfRU5EKGNh bWVsbGlhX3h0c19kZWNfMTZ3YXkpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9jcnlwdG8vY2FtZWxs aWEtYWVzbmktYXZ4Mi1hc21fNjQuUyBiL2FyY2gveDg2L2NyeXB0by9jYW1lbGxpYS1hZXNuaS1h dngyLWFzbV82NC5TCmluZGV4IDkxNmEzZTJiOGVhNC4uODVmMGEyNjVkZWU4IDEwMDY0NAotLS0g YS9hcmNoL3g4Ni9jcnlwdG8vY2FtZWxsaWEtYWVzbmktYXZ4Mi1hc21fNjQuUworKysgYi9hcmNo L3g4Ni9jcnlwdG8vY2FtZWxsaWEtYWVzbmktYXZ4Mi1hc21fNjQuUwpAQCAtOTM2LDcgKzkzNiw3 IEBAIFNZTV9GVU5DX1NUQVJUX0xPQ0FMKF9fY2FtZWxsaWFfZGVjX2JsazMyKQogCWptcCAuTGRl Y19tYXgyNDsKIFNZTV9GVU5DX0VORChfX2NhbWVsbGlhX2RlY19ibGszMikKIAotRU5UUlkoY2Ft ZWxsaWFfZWNiX2VuY18zMndheSkKK1NZTV9GVU5DX1NUQVJUKGNhbWVsbGlhX2VjYl9lbmNfMzJ3 YXkpCiAJLyogaW5wdXQ6CiAJICoJJXJkaTogY3R4LCBDVFgKIAkgKgklcnNpOiBkc3QgKDMyIGJs b2NrcykKQEAgLTk2Myw5ICs5NjMsOSBAQCBFTlRSWShjYW1lbGxpYV9lY2JfZW5jXzMyd2F5KQog CiAJRlJBTUVfRU5ECiAJcmV0OwotRU5EUFJPQyhjYW1lbGxpYV9lY2JfZW5jXzMyd2F5KQorU1lN X0ZVTkNfRU5EKGNhbWVsbGlhX2VjYl9lbmNfMzJ3YXkpCiAKLUVOVFJZKGNhbWVsbGlhX2VjYl9k ZWNfMzJ3YXkpCitTWU1fRlVOQ19TVEFSVChjYW1lbGxpYV9lY2JfZGVjXzMyd2F5KQogCS8qIGlu cHV0OgogCSAqCSVyZGk6IGN0eCwgQ1RYCiAJICoJJXJzaTogZHN0ICgzMiBibG9ja3MpCkBAIC05 OTcsOSArOTk3LDkgQEAgRU5UUlkoY2FtZWxsaWFfZWNiX2RlY18zMndheSkKIAogCUZSQU1FX0VO RAogCXJldDsKLUVORFBST0MoY2FtZWxsaWFfZWNiX2RlY18zMndheSkKK1NZTV9GVU5DX0VORChj YW1lbGxpYV9lY2JfZGVjXzMyd2F5KQogCi1FTlRSWShjYW1lbGxpYV9jYmNfZGVjXzMyd2F5KQor U1lNX0ZVTkNfU1RBUlQoY2FtZWxsaWFfY2JjX2RlY18zMndheSkKIAkvKiBpbnB1dDoKIAkgKgkl cmRpOiBjdHgsIENUWAogCSAqCSVyc2k6IGRzdCAoMzIgYmxvY2tzKQpAQCAtMTA2NSw3ICsxMDY1 LDcgQEAgRU5UUlkoY2FtZWxsaWFfY2JjX2RlY18zMndheSkKIAogCUZSQU1FX0VORAogCXJldDsK LUVORFBST0MoY2FtZWxsaWFfY2JjX2RlY18zMndheSkKK1NZTV9GVU5DX0VORChjYW1lbGxpYV9j YmNfZGVjXzMyd2F5KQogCiAjZGVmaW5lIGluY19sZTEyOCh4LCBtaW51c19vbmUsIHRtcCkgXAog CXZwY21wZXFxIG1pbnVzX29uZSwgeCwgdG1wOyBcCkBAIC0xMDgxLDcgKzEwODEsNyBAQCBFTkRQ Uk9DKGNhbWVsbGlhX2NiY19kZWNfMzJ3YXkpCiAJdnBzbGxkcSAkOCwgdG1wMSwgdG1wMTsgXAog CXZwc3VicSB0bXAxLCB4LCB4OwogCi1FTlRSWShjYW1lbGxpYV9jdHJfMzJ3YXkpCitTWU1fRlVO Q19TVEFSVChjYW1lbGxpYV9jdHJfMzJ3YXkpCiAJLyogaW5wdXQ6CiAJICoJJXJkaTogY3R4LCBD VFgKIAkgKgklcnNpOiBkc3QgKDMyIGJsb2NrcykKQEAgLTEyMDUsNyArMTIwNSw3IEBAIEVOVFJZ KGNhbWVsbGlhX2N0cl8zMndheSkKIAogCUZSQU1FX0VORAogCXJldDsKLUVORFBST0MoY2FtZWxs aWFfY3RyXzMyd2F5KQorU1lNX0ZVTkNfRU5EKGNhbWVsbGlhX2N0cl8zMndheSkKIAogI2RlZmlu ZSBnZjEyOG11bF94X2JsZShpdiwgbWFzaywgdG1wKSBcCiAJdnBzcmFkICQzMSwgaXYsIHRtcDsg XApAQCAtMTM3NCw3ICsxMzc0LDcgQEAgU1lNX0ZVTkNfU1RBUlRfTE9DQUwoY2FtZWxsaWFfeHRz X2NyeXB0XzMyd2F5KQogCXJldDsKIFNZTV9GVU5DX0VORChjYW1lbGxpYV94dHNfY3J5cHRfMzJ3 YXkpCiAKLUVOVFJZKGNhbWVsbGlhX3h0c19lbmNfMzJ3YXkpCitTWU1fRlVOQ19TVEFSVChjYW1l bGxpYV94dHNfZW5jXzMyd2F5KQogCS8qIGlucHV0OgogCSAqCSVyZGk6IGN0eCwgQ1RYCiAJICoJ JXJzaTogZHN0ICgzMiBibG9ja3MpCkBAIC0xMzg3LDkgKzEzODcsOSBAQCBFTlRSWShjYW1lbGxp YV94dHNfZW5jXzMyd2F5KQogCWxlYXEgX19jYW1lbGxpYV9lbmNfYmxrMzIsICVyOTsKIAogCWpt cCBjYW1lbGxpYV94dHNfY3J5cHRfMzJ3YXk7Ci1FTkRQUk9DKGNhbWVsbGlhX3h0c19lbmNfMzJ3 YXkpCitTWU1fRlVOQ19FTkQoY2FtZWxsaWFfeHRzX2VuY18zMndheSkKIAotRU5UUlkoY2FtZWxs aWFfeHRzX2RlY18zMndheSkKK1NZTV9GVU5DX1NUQVJUKGNhbWVsbGlhX3h0c19kZWNfMzJ3YXkp CiAJLyogaW5wdXQ6CiAJICoJJXJkaTogY3R4LCBDVFgKIAkgKgklcnNpOiBkc3QgKDMyIGJsb2Nr cykKQEAgLTE0MDUsNCArMTQwNSw0IEBAIEVOVFJZKGNhbWVsbGlhX3h0c19kZWNfMzJ3YXkpCiAJ bGVhcSBfX2NhbWVsbGlhX2RlY19ibGszMiwgJXI5OwogCiAJam1wIGNhbWVsbGlhX3h0c19jcnlw dF8zMndheTsKLUVORFBST0MoY2FtZWxsaWFfeHRzX2RlY18zMndheSkKK1NZTV9GVU5DX0VORChj YW1lbGxpYV94dHNfZGVjXzMyd2F5KQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvY3J5cHRvL2NhbWVs bGlhLXg4Nl82NC1hc21fNjQuUyBiL2FyY2gveDg2L2NyeXB0by9jYW1lbGxpYS14ODZfNjQtYXNt XzY0LlMKaW5kZXggOTViYTY5NTZhN2Y2Li40ZDc3YzlkY2RkYmQgMTAwNjQ0Ci0tLSBhL2FyY2gv eDg2L2NyeXB0by9jYW1lbGxpYS14ODZfNjQtYXNtXzY0LlMKKysrIGIvYXJjaC94ODYvY3J5cHRv L2NhbWVsbGlhLXg4Nl82NC1hc21fNjQuUwpAQCAtMTkwLDcgKzE5MCw3IEBACiAJYnN3YXBxCQkJ CVJBQjA7IFwKIAltb3ZxIFJBQjAsCQkJNCoyKFJJTyk7CiAKLUVOVFJZKF9fY2FtZWxsaWFfZW5j X2JsaykKK1NZTV9GVU5DX1NUQVJUKF9fY2FtZWxsaWFfZW5jX2JsaykKIAkvKiBpbnB1dDoKIAkg KgklcmRpOiBjdHgsIENUWAogCSAqCSVyc2k6IGRzdApAQCAtMjM1LDkgKzIzNSw5IEBAIEVOVFJZ KF9fY2FtZWxsaWFfZW5jX2JsaykKIAogCW1vdnEgUlIxMiwgJXIxMjsKIAlyZXQ7Ci1FTkRQUk9D KF9fY2FtZWxsaWFfZW5jX2JsaykKK1NZTV9GVU5DX0VORChfX2NhbWVsbGlhX2VuY19ibGspCiAK LUVOVFJZKGNhbWVsbGlhX2RlY19ibGspCitTWU1fRlVOQ19TVEFSVChjYW1lbGxpYV9kZWNfYmxr KQogCS8qIGlucHV0OgogCSAqCSVyZGk6IGN0eCwgQ1RYCiAJICoJJXJzaTogZHN0CkBAIC0yNzMs NyArMjczLDcgQEAgRU5UUlkoY2FtZWxsaWFfZGVjX2JsaykKIAogCW1vdnEgUlIxMiwgJXIxMjsK IAlyZXQ7Ci1FTkRQUk9DKGNhbWVsbGlhX2RlY19ibGspCitTWU1fRlVOQ19FTkQoY2FtZWxsaWFf ZGVjX2JsaykKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioKICAgMi13YXkgY2FtZWxsaWEKQEAgLTQyNCw3ICs0 MjQsNyBAQCBFTkRQUk9DKGNhbWVsbGlhX2RlY19ibGspCiAJCWJzd2FwcQkJCQlSQUIxOyBcCiAJ CW1vdnEgUkFCMSwJCQkxMioyKFJJTyk7CiAKLUVOVFJZKF9fY2FtZWxsaWFfZW5jX2Jsa18yd2F5 KQorU1lNX0ZVTkNfU1RBUlQoX19jYW1lbGxpYV9lbmNfYmxrXzJ3YXkpCiAJLyogaW5wdXQ6CiAJ ICoJJXJkaTogY3R4LCBDVFgKIAkgKgklcnNpOiBkc3QKQEAgLTQ3MSw5ICs0NzEsOSBAQCBFTlRS WShfX2NhbWVsbGlhX2VuY19ibGtfMndheSkKIAltb3ZxIFJSMTIsICVyMTI7CiAJcG9wcSAlcmJ4 OwogCXJldDsKLUVORFBST0MoX19jYW1lbGxpYV9lbmNfYmxrXzJ3YXkpCitTWU1fRlVOQ19FTkQo X19jYW1lbGxpYV9lbmNfYmxrXzJ3YXkpCiAKLUVOVFJZKGNhbWVsbGlhX2RlY19ibGtfMndheSkK K1NZTV9GVU5DX1NUQVJUKGNhbWVsbGlhX2RlY19ibGtfMndheSkKIAkvKiBpbnB1dDoKIAkgKgkl cmRpOiBjdHgsIENUWAogCSAqCSVyc2k6IGRzdApAQCAtNTExLDQgKzUxMSw0IEBAIEVOVFJZKGNh bWVsbGlhX2RlY19ibGtfMndheSkKIAltb3ZxIFJSMTIsICVyMTI7CiAJbW92cSBSWE9SLCAlcmJ4 OwogCXJldDsKLUVORFBST0MoY2FtZWxsaWFfZGVjX2Jsa18yd2F5KQorU1lNX0ZVTkNfRU5EKGNh bWVsbGlhX2RlY19ibGtfMndheSkKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2NyeXB0by9jYXN0NS1h dngteDg2XzY0LWFzbV82NC5TIGIvYXJjaC94ODYvY3J5cHRvL2Nhc3Q1LWF2eC14ODZfNjQtYXNt XzY0LlMKaW5kZXggYjI2ZGYxMjA0MTNjLi4zNzg5YzYxZjYxNjYgMTAwNjQ0Ci0tLSBhL2FyY2gv eDg2L2NyeXB0by9jYXN0NS1hdngteDg2XzY0LWFzbV82NC5TCisrKyBiL2FyY2gveDg2L2NyeXB0 by9jYXN0NS1hdngteDg2XzY0LWFzbV82NC5TCkBAIC0zNzQsNyArMzc0LDcgQEAgU1lNX0ZVTkNf U1RBUlRfTE9DQUwoX19jYXN0NV9kZWNfYmxrMTYpCiAJam1wIC5MX19kZWNfdGFpbDsKIFNZTV9G VU5DX0VORChfX2Nhc3Q1X2RlY19ibGsxNikKIAotRU5UUlkoY2FzdDVfZWNiX2VuY18xNndheSkK K1NZTV9GVU5DX1NUQVJUKGNhc3Q1X2VjYl9lbmNfMTZ3YXkpCiAJLyogaW5wdXQ6CiAJICoJJXJk aTogY3R4CiAJICoJJXJzaTogZHN0CkBAIC00MDksOSArNDA5LDkgQEAgRU5UUlkoY2FzdDVfZWNi X2VuY18xNndheSkKIAlwb3BxICVyMTU7CiAJRlJBTUVfRU5ECiAJcmV0OwotRU5EUFJPQyhjYXN0 NV9lY2JfZW5jXzE2d2F5KQorU1lNX0ZVTkNfRU5EKGNhc3Q1X2VjYl9lbmNfMTZ3YXkpCiAKLUVO VFJZKGNhc3Q1X2VjYl9kZWNfMTZ3YXkpCitTWU1fRlVOQ19TVEFSVChjYXN0NV9lY2JfZGVjXzE2 d2F5KQogCS8qIGlucHV0OgogCSAqCSVyZGk6IGN0eAogCSAqCSVyc2k6IGRzdApAQCAtNDQ3LDkg KzQ0Nyw5IEBAIEVOVFJZKGNhc3Q1X2VjYl9kZWNfMTZ3YXkpCiAJcG9wcSAlcjE1OwogCUZSQU1F X0VORAogCXJldDsKLUVORFBST0MoY2FzdDVfZWNiX2RlY18xNndheSkKK1NZTV9GVU5DX0VORChj YXN0NV9lY2JfZGVjXzE2d2F5KQogCi1FTlRSWShjYXN0NV9jYmNfZGVjXzE2d2F5KQorU1lNX0ZV TkNfU1RBUlQoY2FzdDVfY2JjX2RlY18xNndheSkKIAkvKiBpbnB1dDoKIAkgKgklcmRpOiBjdHgK IAkgKgklcnNpOiBkc3QKQEAgLTQ5OSw5ICs0OTksOSBAQCBFTlRSWShjYXN0NV9jYmNfZGVjXzE2 d2F5KQogCXBvcHEgJXIxMjsKIAlGUkFNRV9FTkQKIAlyZXQ7Ci1FTkRQUk9DKGNhc3Q1X2NiY19k ZWNfMTZ3YXkpCitTWU1fRlVOQ19FTkQoY2FzdDVfY2JjX2RlY18xNndheSkKIAotRU5UUlkoY2Fz dDVfY3RyXzE2d2F5KQorU1lNX0ZVTkNfU1RBUlQoY2FzdDVfY3RyXzE2d2F5KQogCS8qIGlucHV0 OgogCSAqCSVyZGk6IGN0eAogCSAqCSVyc2k6IGRzdApAQCAtNTc1LDQgKzU3NSw0IEBAIEVOVFJZ KGNhc3Q1X2N0cl8xNndheSkKIAlwb3BxICVyMTI7CiAJRlJBTUVfRU5ECiAJcmV0OwotRU5EUFJP QyhjYXN0NV9jdHJfMTZ3YXkpCitTWU1fRlVOQ19FTkQoY2FzdDVfY3RyXzE2d2F5KQpkaWZmIC0t Z2l0IGEvYXJjaC94ODYvY3J5cHRvL2Nhc3Q2LWF2eC14ODZfNjQtYXNtXzY0LlMgYi9hcmNoL3g4 Ni9jcnlwdG8vY2FzdDYtYXZ4LXg4Nl82NC1hc21fNjQuUwppbmRleCAwYTY4ZTQyYTAwZjkuLmUz OGFiNDU3MWE2YiAxMDA2NDQKLS0tIGEvYXJjaC94ODYvY3J5cHRvL2Nhc3Q2LWF2eC14ODZfNjQt YXNtXzY0LlMKKysrIGIvYXJjaC94ODYvY3J5cHRvL2Nhc3Q2LWF2eC14ODZfNjQtYXNtXzY0LlMK QEAgLTM1Niw3ICszNTYsNyBAQCBTWU1fRlVOQ19TVEFSVF9MT0NBTChfX2Nhc3Q2X2RlY19ibGs4 KQogCXJldDsKIFNZTV9GVU5DX0VORChfX2Nhc3Q2X2RlY19ibGs4KQogCi1FTlRSWShjYXN0Nl9l Y2JfZW5jXzh3YXkpCitTWU1fRlVOQ19TVEFSVChjYXN0Nl9lY2JfZW5jXzh3YXkpCiAJLyogaW5w dXQ6CiAJICoJJXJkaTogY3R4CiAJICoJJXJzaTogZHN0CkBAIC0zNzcsOSArMzc3LDkgQEAgRU5U UlkoY2FzdDZfZWNiX2VuY184d2F5KQogCXBvcHEgJXIxNTsKIAlGUkFNRV9FTkQKIAlyZXQ7Ci1F TkRQUk9DKGNhc3Q2X2VjYl9lbmNfOHdheSkKK1NZTV9GVU5DX0VORChjYXN0Nl9lY2JfZW5jXzh3 YXkpCiAKLUVOVFJZKGNhc3Q2X2VjYl9kZWNfOHdheSkKK1NZTV9GVU5DX1NUQVJUKGNhc3Q2X2Vj Yl9kZWNfOHdheSkKIAkvKiBpbnB1dDoKIAkgKgklcmRpOiBjdHgKIAkgKgklcnNpOiBkc3QKQEAg LTQwMCw5ICs0MDAsOSBAQCBFTlRSWShjYXN0Nl9lY2JfZGVjXzh3YXkpCiAJcG9wcSAlcjE1Owog CUZSQU1FX0VORAogCXJldDsKLUVORFBST0MoY2FzdDZfZWNiX2RlY184d2F5KQorU1lNX0ZVTkNf RU5EKGNhc3Q2X2VjYl9kZWNfOHdheSkKIAotRU5UUlkoY2FzdDZfY2JjX2RlY184d2F5KQorU1lN X0ZVTkNfU1RBUlQoY2FzdDZfY2JjX2RlY184d2F5KQogCS8qIGlucHV0OgogCSAqCSVyZGk6IGN0 eAogCSAqCSVyc2k6IGRzdApAQCAtNDI2LDkgKzQyNiw5IEBAIEVOVFJZKGNhc3Q2X2NiY19kZWNf OHdheSkKIAlwb3BxICVyMTI7CiAJRlJBTUVfRU5ECiAJcmV0OwotRU5EUFJPQyhjYXN0Nl9jYmNf ZGVjXzh3YXkpCitTWU1fRlVOQ19FTkQoY2FzdDZfY2JjX2RlY184d2F5KQogCi1FTlRSWShjYXN0 Nl9jdHJfOHdheSkKK1NZTV9GVU5DX1NUQVJUKGNhc3Q2X2N0cl84d2F5KQogCS8qIGlucHV0Ogog CSAqCSVyZGk6IGN0eCwgQ1RYCiAJICoJJXJzaTogZHN0CkBAIC00NTQsOSArNDU0LDkgQEAgRU5U UlkoY2FzdDZfY3RyXzh3YXkpCiAJcG9wcSAlcjEyOwogCUZSQU1FX0VORAogCXJldDsKLUVORFBS T0MoY2FzdDZfY3RyXzh3YXkpCitTWU1fRlVOQ19FTkQoY2FzdDZfY3RyXzh3YXkpCiAKLUVOVFJZ KGNhc3Q2X3h0c19lbmNfOHdheSkKK1NZTV9GVU5DX1NUQVJUKGNhc3Q2X3h0c19lbmNfOHdheSkK IAkvKiBpbnB1dDoKIAkgKgklcmRpOiBjdHgsIENUWAogCSAqCSVyc2k6IGRzdApAQCAtNDgxLDkg KzQ4MSw5IEBAIEVOVFJZKGNhc3Q2X3h0c19lbmNfOHdheSkKIAlwb3BxICVyMTU7CiAJRlJBTUVf RU5ECiAJcmV0OwotRU5EUFJPQyhjYXN0Nl94dHNfZW5jXzh3YXkpCitTWU1fRlVOQ19FTkQoY2Fz dDZfeHRzX2VuY184d2F5KQogCi1FTlRSWShjYXN0Nl94dHNfZGVjXzh3YXkpCitTWU1fRlVOQ19T VEFSVChjYXN0Nl94dHNfZGVjXzh3YXkpCiAJLyogaW5wdXQ6CiAJICoJJXJkaTogY3R4LCBDVFgK IAkgKgklcnNpOiBkc3QKQEAgLTUwOCw0ICs1MDgsNCBAQCBFTlRSWShjYXN0Nl94dHNfZGVjXzh3 YXkpCiAJcG9wcSAlcjE1OwogCUZSQU1FX0VORAogCXJldDsKLUVORFBST0MoY2FzdDZfeHRzX2Rl Y184d2F5KQorU1lNX0ZVTkNfRU5EKGNhc3Q2X3h0c19kZWNfOHdheSkKZGlmZiAtLWdpdCBhL2Fy Y2gveDg2L2NyeXB0by9jaGFjaGEyMC1hdngyLXg4Nl82NC5TIGIvYXJjaC94ODYvY3J5cHRvL2No YWNoYTIwLWF2eDIteDg2XzY0LlMKaW5kZXggZjNjZDI2ZjQ4MzMyLi43MmM5NmE2YWVjOGYgMTAw NjQ0Ci0tLSBhL2FyY2gveDg2L2NyeXB0by9jaGFjaGEyMC1hdngyLXg4Nl82NC5TCisrKyBiL2Fy Y2gveDg2L2NyeXB0by9jaGFjaGEyMC1hdngyLXg4Nl82NC5TCkBAIC0yOCw3ICsyOCw3IEBAIENU UklOQzoJLm9jdGEgMHgwMDAwMDAwMzAwMDAwMDAyMDAwMDAwMDEwMDAwMDAwMAogCiAudGV4dAog Ci1FTlRSWShjaGFjaGEyMF84YmxvY2tfeG9yX2F2eDIpCitTWU1fRlVOQ19TVEFSVChjaGFjaGEy MF84YmxvY2tfeG9yX2F2eDIpCiAJIyAlcmRpOiBJbnB1dCBzdGF0ZSBtYXRyaXgsIHMKIAkjICVy c2k6IDggZGF0YSBibG9ja3Mgb3V0cHV0LCBvCiAJIyAlcmR4OiA4IGRhdGEgYmxvY2tzIGlucHV0 LCBpCkBAIC00NDUsNCArNDQ1LDQgQEAgRU5UUlkoY2hhY2hhMjBfOGJsb2NrX3hvcl9hdngyKQog CXZ6ZXJvdXBwZXIKIAlsZWEJCS04KCVyMTApLCVyc3AKIAlyZXQKLUVORFBST0MoY2hhY2hhMjBf OGJsb2NrX3hvcl9hdngyKQorU1lNX0ZVTkNfRU5EKGNoYWNoYTIwXzhibG9ja194b3JfYXZ4MikK ZGlmZiAtLWdpdCBhL2FyY2gveDg2L2NyeXB0by9jaGFjaGEyMC1zc3NlMy14ODZfNjQuUyBiL2Fy Y2gveDg2L2NyeXB0by9jaGFjaGEyMC1zc3NlMy14ODZfNjQuUwppbmRleCA1MTJhMmI1MDBmZDEu Ljk1MGRlYTdjOTJkMSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvY3J5cHRvL2NoYWNoYTIwLXNzc2Uz LXg4Nl82NC5TCisrKyBiL2FyY2gveDg2L2NyeXB0by9jaGFjaGEyMC1zc3NlMy14ODZfNjQuUwpA QCAtMjMsNyArMjMsNyBAQCBDVFJJTkM6CS5vY3RhIDB4MDAwMDAwMDMwMDAwMDAwMjAwMDAwMDAx MDAwMDAwMDAKIAogLnRleHQKIAotRU5UUlkoY2hhY2hhMjBfYmxvY2tfeG9yX3Nzc2UzKQorU1lN X0ZVTkNfU1RBUlQoY2hhY2hhMjBfYmxvY2tfeG9yX3Nzc2UzKQogCSMgJXJkaTogSW5wdXQgc3Rh dGUgbWF0cml4LCBzCiAJIyAlcnNpOiAxIGRhdGEgYmxvY2sgb3V0cHV0LCBvCiAJIyAlcmR4OiAx IGRhdGEgYmxvY2sgaW5wdXQsIGkKQEAgLTE0Myw5ICsxNDMsOSBAQCBFTlRSWShjaGFjaGEyMF9i bG9ja194b3Jfc3NzZTMpCiAJbW92ZHF1CQkleG1tMywweDMwKCVyc2kpCiAKIAlyZXQKLUVORFBS T0MoY2hhY2hhMjBfYmxvY2tfeG9yX3Nzc2UzKQorU1lNX0ZVTkNfRU5EKGNoYWNoYTIwX2Jsb2Nr X3hvcl9zc3NlMykKIAotRU5UUlkoY2hhY2hhMjBfNGJsb2NrX3hvcl9zc3NlMykKK1NZTV9GVU5D X1NUQVJUKGNoYWNoYTIwXzRibG9ja194b3Jfc3NzZTMpCiAJIyAlcmRpOiBJbnB1dCBzdGF0ZSBt YXRyaXgsIHMKIAkjICVyc2k6IDQgZGF0YSBibG9ja3Mgb3V0cHV0LCBvCiAJIyAlcmR4OiA0IGRh dGEgYmxvY2tzIGlucHV0LCBpCkBAIC02MjcsNCArNjI3LDQgQEAgRU5UUlkoY2hhY2hhMjBfNGJs b2NrX3hvcl9zc3NlMykKIAogCWxlYQkJLTgoJXIxMCksJXJzcAogCXJldAotRU5EUFJPQyhjaGFj aGEyMF80YmxvY2tfeG9yX3Nzc2UzKQorU1lNX0ZVTkNfRU5EKGNoYWNoYTIwXzRibG9ja194b3Jf c3NzZTMpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9jcnlwdG8vY3JjMzItcGNsbXVsX2FzbS5TIGIv YXJjaC94ODYvY3J5cHRvL2NyYzMyLXBjbG11bF9hc20uUwppbmRleCAxYzA5OWRjMDhjYzMuLjlm ZDI4ZmY2NWJjMiAxMDA2NDQKLS0tIGEvYXJjaC94ODYvY3J5cHRvL2NyYzMyLXBjbG11bF9hc20u UworKysgYi9hcmNoL3g4Ni9jcnlwdG8vY3JjMzItcGNsbXVsX2FzbS5TCkBAIC0xMDMsNyArMTAz LDcgQEAKICAqCSAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW4sIHVpbnQgY3JjMzIpCiAg Ki8KIAotRU5UUlkoY3JjMzJfcGNsbXVsX2xlXzE2KSAvKiBidWZmZXIgYW5kIGJ1ZmZlciBzaXpl IGFyZSAxNiBieXRlcyBhbGlnbmVkICovCitTWU1fRlVOQ19TVEFSVChjcmMzMl9wY2xtdWxfbGVf MTYpIC8qIGJ1ZmZlciBhbmQgYnVmZmVyIHNpemUgYXJlIDE2IGJ5dGVzIGFsaWduZWQgKi8KIAlt b3ZkcWEgIChCVUYpLCAleG1tMQogCW1vdmRxYSAgMHgxMChCVUYpLCAleG1tMgogCW1vdmRxYSAg MHgyMChCVUYpLCAleG1tMwpAQCAtMjM4LDQgKzIzOCw0IEBAIGZvbGRfNjQ6CiAJUEVYVFJEICAw eDAxLCAleG1tMSwgJWVheAogCiAJcmV0Ci1FTkRQUk9DKGNyYzMyX3BjbG11bF9sZV8xNikKK1NZ TV9GVU5DX0VORChjcmMzMl9wY2xtdWxfbGVfMTYpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9jcnlw dG8vY3JjMzJjLXBjbC1pbnRlbC1hc21fNjQuUyBiL2FyY2gveDg2L2NyeXB0by9jcmMzMmMtcGNs LWludGVsLWFzbV82NC5TCmluZGV4IGQ5YjczNGQwYzhjYy4uMGU2NjkwZTM2MThjIDEwMDY0NAot LS0gYS9hcmNoL3g4Ni9jcnlwdG8vY3JjMzJjLXBjbC1pbnRlbC1hc21fNjQuUworKysgYi9hcmNo L3g4Ni9jcnlwdG8vY3JjMzJjLXBjbC1pbnRlbC1hc21fNjQuUwpAQCAtNzQsNyArNzQsNyBAQAog IyB1bnNpZ25lZCBpbnQgY3JjX3BjbCh1OCAqYnVmZmVyLCBpbnQgbGVuLCB1bnNpZ25lZCBpbnQg Y3JjX2luaXQpOwogCiAudGV4dAotRU5UUlkoY3JjX3BjbCkKK1NZTV9GVU5DX1NUQVJUKGNyY19w Y2wpCiAjZGVmaW5lICAgIGJ1ZnAJCSVyZGkKICNkZWZpbmUgICAgYnVmcF9kdwklZWRpCiAjZGVm aW5lICAgIGJ1ZnBfdwklZGkKQEAgLTMxMSw3ICszMTEsNyBAQCBkb19yZXR1cm46CiAJcG9wcSAg ICAlcmRpCiAJcG9wcSAgICAlcmJ4CiAgICAgICAgIHJldAotRU5EUFJPQyhjcmNfcGNsKQorU1lN X0ZVTkNfRU5EKGNyY19wY2wpCiAKIC5zZWN0aW9uCS5yb2RhdGEsICJhIiwgQHByb2diaXRzCiAg ICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2NyeXB0by9jcmN0MTBkaWYtcGNs LWFzbV82NC5TIGIvYXJjaC94ODYvY3J5cHRvL2NyY3QxMGRpZi1wY2wtYXNtXzY0LlMKaW5kZXgg ZGUwNGQzZTk4ZDhkLi5mNTZiNDk5NTQxZTAgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2NyeXB0by9j cmN0MTBkaWYtcGNsLWFzbV82NC5TCisrKyBiL2FyY2gveDg2L2NyeXB0by9jcmN0MTBkaWYtcGNs LWFzbV82NC5TCkBAIC02OCw3ICs2OCw3IEBACiAKICNkZWZpbmUgICAgICAgIGFyZzFfbG93MzIg JWVkaQogCi1FTlRSWShjcmNfdDEwZGlmX3BjbCkKK1NZTV9GVU5DX1NUQVJUKGNyY190MTBkaWZf cGNsKQogLmFsaWduIDE2CiAKIAkjIGFkanVzdCB0aGUgMTYtYml0IGluaXRpYWxfY3JjIHZhbHVl LCBzY2FsZSBpdCB0byAzMiBiaXRzCkBAIC01NTIsNyArNTUyLDcgQEAgX29ubHlfbGVzc190aGFu XzI6CiAKIAlqbXAJX2JhcnJldHQKIAotRU5EUFJPQyhjcmNfdDEwZGlmX3BjbCkKK1NZTV9GVU5D X0VORChjcmNfdDEwZGlmX3BjbCkKIAogLnNlY3Rpb24JLnJvZGF0YSwgImEiLCBAcHJvZ2JpdHMK IC5hbGlnbiAxNgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvY3J5cHRvL2RlczNfZWRlLWFzbV82NC5T IGIvYXJjaC94ODYvY3J5cHRvL2RlczNfZWRlLWFzbV82NC5TCmluZGV4IDhlNDljZTExNzQ5NC4u ODI3NzljMDgwMjliIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9jcnlwdG8vZGVzM19lZGUtYXNtXzY0 LlMKKysrIGIvYXJjaC94ODYvY3J5cHRvL2RlczNfZWRlLWFzbV82NC5TCkBAIC0xNzEsNyArMTcx LDcgQEAKIAltb3ZsICAgbGVmdCMjZCwgICAoaW8pOyBcCiAJbW92bCAgIHJpZ2h0IyNkLCA0KGlv KTsKIAotRU5UUlkoZGVzM19lZGVfeDg2XzY0X2NyeXB0X2JsaykKK1NZTV9GVU5DX1NUQVJUKGRl czNfZWRlX3g4Nl82NF9jcnlwdF9ibGspCiAJLyogaW5wdXQ6CiAJICoJJXJkaTogcm91bmQga2V5 cywgQ1RYCiAJICoJJXJzaTogZHN0CkBAIC0yNTMsNyArMjUzLDcgQEAgRU5UUlkoZGVzM19lZGVf eDg2XzY0X2NyeXB0X2JsaykKIAlwb3BxICVyYng7CiAKIAlyZXQ7Ci1FTkRQUk9DKGRlczNfZWRl X3g4Nl82NF9jcnlwdF9ibGspCitTWU1fRlVOQ19FTkQoZGVzM19lZGVfeDg2XzY0X2NyeXB0X2Js aykKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqCiAgKiAzLXdheSAzREVTCkBAIC00MjcsNyArNDI3LDcgQEAg RU5EUFJPQyhkZXMzX2VkZV94ODZfNjRfY3J5cHRfYmxrKQogI2RlZmluZSBfX21vdnEoc3JjLCBk c3QpIFwKIAltb3ZxIHNyYywgZHN0OwogCi1FTlRSWShkZXMzX2VkZV94ODZfNjRfY3J5cHRfYmxr XzN3YXkpCitTWU1fRlVOQ19TVEFSVChkZXMzX2VkZV94ODZfNjRfY3J5cHRfYmxrXzN3YXkpCiAJ LyogaW5wdXQ6CiAJICoJJXJkaTogY3R4LCByb3VuZCBrZXlzCiAJICoJJXJzaTogZHN0ICgzIGJs b2NrcykKQEAgLTUzOCw3ICs1MzgsNyBAQCBFTlRSWShkZXMzX2VkZV94ODZfNjRfY3J5cHRfYmxr XzN3YXkpCiAJcG9wcSAlcmJ4OwogCiAJcmV0OwotRU5EUFJPQyhkZXMzX2VkZV94ODZfNjRfY3J5 cHRfYmxrXzN3YXkpCitTWU1fRlVOQ19FTkQoZGVzM19lZGVfeDg2XzY0X2NyeXB0X2Jsa18zd2F5 KQogCiAuc2VjdGlvbgkucm9kYXRhLCAiYSIsIEBwcm9nYml0cwogLmFsaWduIDE2CmRpZmYgLS1n aXQgYS9hcmNoL3g4Ni9jcnlwdG8vZ2hhc2gtY2xtdWxuaS1pbnRlbF9hc20uUyBiL2FyY2gveDg2 L2NyeXB0by9naGFzaC1jbG11bG5pLWludGVsX2FzbS5TCmluZGV4IGMzZGI4Njg0MjU3OC4uMTJl M2E4NTAyNTdiIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9jcnlwdG8vZ2hhc2gtY2xtdWxuaS1pbnRl bF9hc20uUworKysgYi9hcmNoL3g4Ni9jcnlwdG8vZ2hhc2gtY2xtdWxuaS1pbnRlbF9hc20uUwpA QCAtOTMsNyArOTMsNyBAQCBTWU1fRlVOQ19TVEFSVF9MT0NBTChfX2NsbXVsX2dmMTI4bXVsX2Js ZSkKIFNZTV9GVU5DX0VORChfX2NsbXVsX2dmMTI4bXVsX2JsZSkKIAogLyogdm9pZCBjbG11bF9n aGFzaF9tdWwoY2hhciAqZHN0LCBjb25zdCB1MTI4ICpzaGFzaCkgKi8KLUVOVFJZKGNsbXVsX2do YXNoX211bCkKK1NZTV9GVU5DX1NUQVJUKGNsbXVsX2doYXNoX211bCkKIAlGUkFNRV9CRUdJTgog CW1vdnVwcyAoJXJkaSksIERBVEEKIAltb3Z1cHMgKCVyc2kpLCBTSEFTSApAQCAtMTA0LDEzICsx MDQsMTMgQEAgRU5UUlkoY2xtdWxfZ2hhc2hfbXVsKQogCW1vdnVwcyBEQVRBLCAoJXJkaSkKIAlG UkFNRV9FTkQKIAlyZXQKLUVORFBST0MoY2xtdWxfZ2hhc2hfbXVsKQorU1lNX0ZVTkNfRU5EKGNs bXVsX2doYXNoX211bCkKIAogLyoKICAqIHZvaWQgY2xtdWxfZ2hhc2hfdXBkYXRlKGNoYXIgKmRz dCwgY29uc3QgY2hhciAqc3JjLCB1bnNpZ25lZCBpbnQgc3JjbGVuLAogICoJCQkgICBjb25zdCB1 MTI4ICpzaGFzaCk7CiAgKi8KLUVOVFJZKGNsbXVsX2doYXNoX3VwZGF0ZSkKK1NZTV9GVU5DX1NU QVJUKGNsbXVsX2doYXNoX3VwZGF0ZSkKIAlGUkFNRV9CRUdJTgogCWNtcCAkMTYsICVyZHgKIAlq YiAuTHVwZGF0ZV9qdXN0X3JldAkjIGNoZWNrIGxlbmd0aApAQCAtMTMzLDQgKzEzMyw0IEBAIEVO VFJZKGNsbXVsX2doYXNoX3VwZGF0ZSkKIC5MdXBkYXRlX2p1c3RfcmV0OgogCUZSQU1FX0VORAog CXJldAotRU5EUFJPQyhjbG11bF9naGFzaF91cGRhdGUpCitTWU1fRlVOQ19FTkQoY2xtdWxfZ2hh c2hfdXBkYXRlKQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvY3J5cHRvL3BvbHkxMzA1LWF2eDIteDg2 XzY0LlMgYi9hcmNoL3g4Ni9jcnlwdG8vcG9seTEzMDUtYXZ4Mi14ODZfNjQuUwppbmRleCAzYjZl NzBkMDg1ZGEuLjY4YjBmNDM4NmRjNCAxMDA2NDQKLS0tIGEvYXJjaC94ODYvY3J5cHRvL3BvbHkx MzA1LWF2eDIteDg2XzY0LlMKKysrIGIvYXJjaC94ODYvY3J5cHRvL3BvbHkxMzA1LWF2eDIteDg2 XzY0LlMKQEAgLTgzLDcgKzgzLDcgQEAgT1JNQVNLOgkub2N0YSAweDAwMDAwMDAwMDEwMDAwMDAw MDAwMDAwMDAxMDAwMDAwCiAjZGVmaW5lIGQzICVyMTIKICNkZWZpbmUgZDQgJXIxMwogCi1FTlRS WShwb2x5MTMwNV80YmxvY2tfYXZ4MikKK1NZTV9GVU5DX1NUQVJUKHBvbHkxMzA1XzRibG9ja19h dngyKQogCSMgJXJkaTogQWNjdW11bGF0b3IgaFs1XQogCSMgJXJzaTogNjQgYnl0ZSBpbnB1dCBi bG9jayBtCiAJIyAlcmR4OiBQb2x5MTMwNSBrZXkgcls1XQpAQCAtMzg1LDQgKzM4NSw0IEBAIEVO VFJZKHBvbHkxMzA1XzRibG9ja19hdngyKQogCXBvcAkJJXIxMgogCXBvcAkJJXJieAogCXJldAot RU5EUFJPQyhwb2x5MTMwNV80YmxvY2tfYXZ4MikKK1NZTV9GVU5DX0VORChwb2x5MTMwNV80Ymxv Y2tfYXZ4MikKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2NyeXB0by9wb2x5MTMwNS1zc2UyLXg4Nl82 NC5TIGIvYXJjaC94ODYvY3J5cHRvL3BvbHkxMzA1LXNzZTIteDg2XzY0LlMKaW5kZXggYzg4YzY3 MGNiNWZjLi42NjcxNWZiZWRjMTggMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2NyeXB0by9wb2x5MTMw NS1zc2UyLXg4Nl82NC5TCisrKyBiL2FyY2gveDg2L2NyeXB0by9wb2x5MTMwNS1zc2UyLXg4Nl82 NC5TCkBAIC01MCw3ICs1MCw3IEBAIE9STUFTSzoJLm9jdGEgMHgwMDAwMDAwMDAxMDAwMDAwMDAw MDAwMDAwMTAwMDAwMAogI2RlZmluZSBkMyAlcjExCiAjZGVmaW5lIGQ0ICVyMTIKIAotRU5UUlko cG9seTEzMDVfYmxvY2tfc3NlMikKK1NZTV9GVU5DX1NUQVJUKHBvbHkxMzA1X2Jsb2NrX3NzZTIp CiAJIyAlcmRpOiBBY2N1bXVsYXRvciBoWzVdCiAJIyAlcnNpOiAxNiBieXRlIGlucHV0IGJsb2Nr IG0KIAkjICVyZHg6IFBvbHkxMzA1IGtleSByWzVdCkBAIC0yNzYsNyArMjc2LDcgQEAgRU5UUlko cG9seTEzMDVfYmxvY2tfc3NlMikKIAlwb3AJCSVyMTIKIAlwb3AJCSVyYngKIAlyZXQKLUVORFBS T0MocG9seTEzMDVfYmxvY2tfc3NlMikKK1NZTV9GVU5DX0VORChwb2x5MTMwNV9ibG9ja19zc2Uy KQogCiAKICNkZWZpbmUgdTAgMHgwMCglcjgpCkBAIC0zMDEsNyArMzAxLDcgQEAgRU5EUFJPQyhw b2x5MTMwNV9ibG9ja19zc2UyKQogI3VuZGVmIGQwCiAjZGVmaW5lIGQwICVyMTMKIAotRU5UUlko cG9seTEzMDVfMmJsb2NrX3NzZTIpCitTWU1fRlVOQ19TVEFSVChwb2x5MTMwNV8yYmxvY2tfc3Nl MikKIAkjICVyZGk6IEFjY3VtdWxhdG9yIGhbNV0KIAkjICVyc2k6IDE2IGJ5dGUgaW5wdXQgYmxv Y2sgbQogCSMgJXJkeDogUG9seTEzMDUga2V5IHJbNV0KQEAgLTU4MSw0ICs1ODEsNCBAQCBFTlRS WShwb2x5MTMwNV8yYmxvY2tfc3NlMikKIAlwb3AJCSVyMTIKIAlwb3AJCSVyYngKIAlyZXQKLUVO RFBST0MocG9seTEzMDVfMmJsb2NrX3NzZTIpCitTWU1fRlVOQ19FTkQocG9seTEzMDVfMmJsb2Nr X3NzZTIpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9jcnlwdG8vc2Fsc2EyMC14ODZfNjQtYXNtXzY0 LlMgYi9hcmNoL3g4Ni9jcnlwdG8vc2Fsc2EyMC14ODZfNjQtYXNtXzY0LlMKaW5kZXggMDNhNDkx OGY0MWVlLi41OTg0ZDhjMmVkYzUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2NyeXB0by9zYWxzYTIw LXg4Nl82NC1hc21fNjQuUworKysgYi9hcmNoL3g4Ni9jcnlwdG8vc2Fsc2EyMC14ODZfNjQtYXNt XzY0LlMKQEAgLTIsNyArMiw3IEBACiAjaW5jbHVkZSA8bGludXgvbGlua2FnZS5oPgogCiAjIGVu dGVyIHNhbHNhMjBfZW5jcnlwdF9ieXRlcwotRU5UUlkoc2Fsc2EyMF9lbmNyeXB0X2J5dGVzKQor U1lNX0ZVTkNfU1RBUlQoc2Fsc2EyMF9lbmNyeXB0X2J5dGVzKQogCW1vdgklcnNwLCVyMTEKIAlh bmQJJDMxLCVyMTEKIAlhZGQJJDI1NiwlcjExCkBAIC04MDIsNCArODAyLDQgQEAgRU5UUlkoc2Fs c2EyMF9lbmNyeXB0X2J5dGVzKQogCSMgY29tbWVudDpmcCBzdGFjayB1bmNoYW5nZWQgYnkganVt cAogCSMgZ290byBieXRlc2F0bGVhc3QxCiAJam1wCS5fYnl0ZXNhdGxlYXN0MQotRU5EUFJPQyhz YWxzYTIwX2VuY3J5cHRfYnl0ZXMpCitTWU1fRlVOQ19FTkQoc2Fsc2EyMF9lbmNyeXB0X2J5dGVz KQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvY3J5cHRvL3NlcnBlbnQtYXZ4LXg4Nl82NC1hc21fNjQu UyBiL2FyY2gveDg2L2NyeXB0by9zZXJwZW50LWF2eC14ODZfNjQtYXNtXzY0LlMKaW5kZXggYzJk NGExZmM5ZWU4Li43MmRlODZhODA5MWUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2NyeXB0by9zZXJw ZW50LWF2eC14ODZfNjQtYXNtXzY0LlMKKysrIGIvYXJjaC94ODYvY3J5cHRvL3NlcnBlbnQtYXZ4 LXg4Nl82NC1hc21fNjQuUwpAQCAtNjc3LDcgKzY3Nyw3IEBAIFNZTV9GVU5DX1NUQVJUX0xPQ0FM KF9fc2VycGVudF9kZWNfYmxrOF9hdngpCiAJcmV0OwogU1lNX0ZVTkNfRU5EKF9fc2VycGVudF9k ZWNfYmxrOF9hdngpCiAKLUVOVFJZKHNlcnBlbnRfZWNiX2VuY184d2F5X2F2eCkKK1NZTV9GVU5D X1NUQVJUKHNlcnBlbnRfZWNiX2VuY184d2F5X2F2eCkKIAkvKiBpbnB1dDoKIAkgKgklcmRpOiBj dHgsIENUWAogCSAqCSVyc2k6IGRzdApAQCAtNjkzLDkgKzY5Myw5IEBAIEVOVFJZKHNlcnBlbnRf ZWNiX2VuY184d2F5X2F2eCkKIAogCUZSQU1FX0VORAogCXJldDsKLUVORFBST0Moc2VycGVudF9l Y2JfZW5jXzh3YXlfYXZ4KQorU1lNX0ZVTkNfRU5EKHNlcnBlbnRfZWNiX2VuY184d2F5X2F2eCkK IAotRU5UUlkoc2VycGVudF9lY2JfZGVjXzh3YXlfYXZ4KQorU1lNX0ZVTkNfU1RBUlQoc2VycGVu dF9lY2JfZGVjXzh3YXlfYXZ4KQogCS8qIGlucHV0OgogCSAqCSVyZGk6IGN0eCwgQ1RYCiAJICoJ JXJzaTogZHN0CkBAIC03MTEsOSArNzExLDkgQEAgRU5UUlkoc2VycGVudF9lY2JfZGVjXzh3YXlf YXZ4KQogCiAJRlJBTUVfRU5ECiAJcmV0OwotRU5EUFJPQyhzZXJwZW50X2VjYl9kZWNfOHdheV9h dngpCitTWU1fRlVOQ19FTkQoc2VycGVudF9lY2JfZGVjXzh3YXlfYXZ4KQogCi1FTlRSWShzZXJw ZW50X2NiY19kZWNfOHdheV9hdngpCitTWU1fRlVOQ19TVEFSVChzZXJwZW50X2NiY19kZWNfOHdh eV9hdngpCiAJLyogaW5wdXQ6CiAJICoJJXJkaTogY3R4LCBDVFgKIAkgKgklcnNpOiBkc3QKQEAg LTcyOSw5ICs3MjksOSBAQCBFTlRSWShzZXJwZW50X2NiY19kZWNfOHdheV9hdngpCiAKIAlGUkFN RV9FTkQKIAlyZXQ7Ci1FTkRQUk9DKHNlcnBlbnRfY2JjX2RlY184d2F5X2F2eCkKK1NZTV9GVU5D X0VORChzZXJwZW50X2NiY19kZWNfOHdheV9hdngpCiAKLUVOVFJZKHNlcnBlbnRfY3RyXzh3YXlf YXZ4KQorU1lNX0ZVTkNfU1RBUlQoc2VycGVudF9jdHJfOHdheV9hdngpCiAJLyogaW5wdXQ6CiAJ ICoJJXJkaTogY3R4LCBDVFgKIAkgKgklcnNpOiBkc3QKQEAgLTc0OSw5ICs3NDksOSBAQCBFTlRS WShzZXJwZW50X2N0cl84d2F5X2F2eCkKIAogCUZSQU1FX0VORAogCXJldDsKLUVORFBST0Moc2Vy cGVudF9jdHJfOHdheV9hdngpCitTWU1fRlVOQ19FTkQoc2VycGVudF9jdHJfOHdheV9hdngpCiAK LUVOVFJZKHNlcnBlbnRfeHRzX2VuY184d2F5X2F2eCkKK1NZTV9GVU5DX1NUQVJUKHNlcnBlbnRf eHRzX2VuY184d2F5X2F2eCkKIAkvKiBpbnB1dDoKIAkgKgklcmRpOiBjdHgsIENUWAogCSAqCSVy c2k6IGRzdApAQCAtNzcxLDkgKzc3MSw5IEBAIEVOVFJZKHNlcnBlbnRfeHRzX2VuY184d2F5X2F2 eCkKIAogCUZSQU1FX0VORAogCXJldDsKLUVORFBST0Moc2VycGVudF94dHNfZW5jXzh3YXlfYXZ4 KQorU1lNX0ZVTkNfRU5EKHNlcnBlbnRfeHRzX2VuY184d2F5X2F2eCkKIAotRU5UUlkoc2VycGVu dF94dHNfZGVjXzh3YXlfYXZ4KQorU1lNX0ZVTkNfU1RBUlQoc2VycGVudF94dHNfZGVjXzh3YXlf YXZ4KQogCS8qIGlucHV0OgogCSAqCSVyZGk6IGN0eCwgQ1RYCiAJICoJJXJzaTogZHN0CkBAIC03 OTMsNCArNzkzLDQgQEAgRU5UUlkoc2VycGVudF94dHNfZGVjXzh3YXlfYXZ4KQogCiAJRlJBTUVf RU5ECiAJcmV0OwotRU5EUFJPQyhzZXJwZW50X3h0c19kZWNfOHdheV9hdngpCitTWU1fRlVOQ19F TkQoc2VycGVudF94dHNfZGVjXzh3YXlfYXZ4KQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvY3J5cHRv L3NlcnBlbnQtYXZ4Mi1hc21fNjQuUyBiL2FyY2gveDg2L2NyeXB0by9zZXJwZW50LWF2eDItYXNt XzY0LlMKaW5kZXggNTJjNTI3Y2U0YjE4Li5iODY2ZjE2MzI4MDMgMTAwNjQ0Ci0tLSBhL2FyY2gv eDg2L2NyeXB0by9zZXJwZW50LWF2eDItYXNtXzY0LlMKKysrIGIvYXJjaC94ODYvY3J5cHRvL3Nl cnBlbnQtYXZ4Mi1hc21fNjQuUwpAQCAtNjczLDcgKzY3Myw3IEBAIFNZTV9GVU5DX1NUQVJUX0xP Q0FMKF9fc2VycGVudF9kZWNfYmxrMTYpCiAJcmV0OwogU1lNX0ZVTkNfRU5EKF9fc2VycGVudF9k ZWNfYmxrMTYpCiAKLUVOVFJZKHNlcnBlbnRfZWNiX2VuY18xNndheSkKK1NZTV9GVU5DX1NUQVJU KHNlcnBlbnRfZWNiX2VuY18xNndheSkKIAkvKiBpbnB1dDoKIAkgKgklcmRpOiBjdHgsIENUWAog CSAqCSVyc2k6IGRzdApAQCAtNjkzLDkgKzY5Myw5IEBAIEVOVFJZKHNlcnBlbnRfZWNiX2VuY18x NndheSkKIAogCUZSQU1FX0VORAogCXJldDsKLUVORFBST0Moc2VycGVudF9lY2JfZW5jXzE2d2F5 KQorU1lNX0ZVTkNfRU5EKHNlcnBlbnRfZWNiX2VuY18xNndheSkKIAotRU5UUlkoc2VycGVudF9l Y2JfZGVjXzE2d2F5KQorU1lNX0ZVTkNfU1RBUlQoc2VycGVudF9lY2JfZGVjXzE2d2F5KQogCS8q IGlucHV0OgogCSAqCSVyZGk6IGN0eCwgQ1RYCiAJICoJJXJzaTogZHN0CkBAIC03MTUsOSArNzE1 LDkgQEAgRU5UUlkoc2VycGVudF9lY2JfZGVjXzE2d2F5KQogCiAJRlJBTUVfRU5ECiAJcmV0Owot RU5EUFJPQyhzZXJwZW50X2VjYl9kZWNfMTZ3YXkpCitTWU1fRlVOQ19FTkQoc2VycGVudF9lY2Jf ZGVjXzE2d2F5KQogCi1FTlRSWShzZXJwZW50X2NiY19kZWNfMTZ3YXkpCitTWU1fRlVOQ19TVEFS VChzZXJwZW50X2NiY19kZWNfMTZ3YXkpCiAJLyogaW5wdXQ6CiAJICoJJXJkaTogY3R4LCBDVFgK IAkgKgklcnNpOiBkc3QKQEAgLTczOCw5ICs3MzgsOSBAQCBFTlRSWShzZXJwZW50X2NiY19kZWNf MTZ3YXkpCiAKIAlGUkFNRV9FTkQKIAlyZXQ7Ci1FTkRQUk9DKHNlcnBlbnRfY2JjX2RlY18xNndh eSkKK1NZTV9GVU5DX0VORChzZXJwZW50X2NiY19kZWNfMTZ3YXkpCiAKLUVOVFJZKHNlcnBlbnRf Y3RyXzE2d2F5KQorU1lNX0ZVTkNfU1RBUlQoc2VycGVudF9jdHJfMTZ3YXkpCiAJLyogaW5wdXQ6 CiAJICoJJXJkaTogY3R4LCBDVFgKIAkgKgklcnNpOiBkc3QgKDE2IGJsb2NrcykKQEAgLTc2Myw5 ICs3NjMsOSBAQCBFTlRSWShzZXJwZW50X2N0cl8xNndheSkKIAogCUZSQU1FX0VORAogCXJldDsK LUVORFBST0Moc2VycGVudF9jdHJfMTZ3YXkpCitTWU1fRlVOQ19FTkQoc2VycGVudF9jdHJfMTZ3 YXkpCiAKLUVOVFJZKHNlcnBlbnRfeHRzX2VuY18xNndheSkKK1NZTV9GVU5DX1NUQVJUKHNlcnBl bnRfeHRzX2VuY18xNndheSkKIAkvKiBpbnB1dDoKIAkgKgklcmRpOiBjdHgsIENUWAogCSAqCSVy c2k6IGRzdCAoMTYgYmxvY2tzKQpAQCAtNzg5LDkgKzc4OSw5IEBAIEVOVFJZKHNlcnBlbnRfeHRz X2VuY18xNndheSkKIAogCUZSQU1FX0VORAogCXJldDsKLUVORFBST0Moc2VycGVudF94dHNfZW5j XzE2d2F5KQorU1lNX0ZVTkNfRU5EKHNlcnBlbnRfeHRzX2VuY18xNndheSkKIAotRU5UUlkoc2Vy cGVudF94dHNfZGVjXzE2d2F5KQorU1lNX0ZVTkNfU1RBUlQoc2VycGVudF94dHNfZGVjXzE2d2F5 KQogCS8qIGlucHV0OgogCSAqCSVyZGk6IGN0eCwgQ1RYCiAJICoJJXJzaTogZHN0ICgxNiBibG9j a3MpCkBAIC04MTUsNCArODE1LDQgQEAgRU5UUlkoc2VycGVudF94dHNfZGVjXzE2d2F5KQogCiAJ RlJBTUVfRU5ECiAJcmV0OwotRU5EUFJPQyhzZXJwZW50X3h0c19kZWNfMTZ3YXkpCitTWU1fRlVO Q19FTkQoc2VycGVudF94dHNfZGVjXzE2d2F5KQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvY3J5cHRv L3NlcnBlbnQtc3NlMi14ODZfNjQtYXNtXzY0LlMgYi9hcmNoL3g4Ni9jcnlwdG8vc2VycGVudC1z c2UyLXg4Nl82NC1hc21fNjQuUwppbmRleCBhY2MwNjZjN2M2YjIuLmJkZWVlOTAwZGY2MyAxMDA2 NDQKLS0tIGEvYXJjaC94ODYvY3J5cHRvL3NlcnBlbnQtc3NlMi14ODZfNjQtYXNtXzY0LlMKKysr IGIvYXJjaC94ODYvY3J5cHRvL3NlcnBlbnQtc3NlMi14ODZfNjQtYXNtXzY0LlMKQEAgLTYzNCw3 ICs2MzQsNyBAQAogCXB4b3IgdDAsCQl4MzsgXAogCW1vdmRxdSB4MywJCSgzKjQqNCkob3V0KTsK IAotRU5UUlkoX19zZXJwZW50X2VuY19ibGtfOHdheSkKK1NZTV9GVU5DX1NUQVJUKF9fc2VycGVu dF9lbmNfYmxrXzh3YXkpCiAJLyogaW5wdXQ6CiAJICoJJXJkaTogY3R4LCBDVFgKIAkgKgklcnNp OiBkc3QKQEAgLTY5Nyw5ICs2OTcsOSBAQCBFTlRSWShfX3NlcnBlbnRfZW5jX2Jsa184d2F5KQog CXhvcl9ibG9ja3MoJXJheCwgUkEyLCBSQjIsIFJDMiwgUkQyLCBSSzAsIFJLMSwgUksyKTsKIAog CXJldDsKLUVORFBST0MoX19zZXJwZW50X2VuY19ibGtfOHdheSkKK1NZTV9GVU5DX0VORChfX3Nl cnBlbnRfZW5jX2Jsa184d2F5KQogCi1FTlRSWShzZXJwZW50X2RlY19ibGtfOHdheSkKK1NZTV9G VU5DX1NUQVJUKHNlcnBlbnRfZGVjX2Jsa184d2F5KQogCS8qIGlucHV0OgogCSAqCSVyZGk6IGN0 eCwgQ1RYCiAJICoJJXJzaTogZHN0CkBAIC03NTEsNCArNzUxLDQgQEAgRU5UUlkoc2VycGVudF9k ZWNfYmxrXzh3YXkpCiAJd3JpdGVfYmxvY2tzKCVyYXgsIFJDMiwgUkQyLCBSQjIsIFJFMiwgUksw LCBSSzEsIFJLMik7CiAKIAlyZXQ7Ci1FTkRQUk9DKHNlcnBlbnRfZGVjX2Jsa184d2F5KQorU1lN X0ZVTkNfRU5EKHNlcnBlbnRfZGVjX2Jsa184d2F5KQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvY3J5 cHRvL3NoYTEtbWIvc2hhMV9tYl9tZ3JfZmx1c2hfYXZ4Mi5TIGIvYXJjaC94ODYvY3J5cHRvL3No YTEtbWIvc2hhMV9tYl9tZ3JfZmx1c2hfYXZ4Mi5TCmluZGV4IDdjZmJhNzM4ZjEwNC4uYTFiZTNi MzM5OTBjIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9jcnlwdG8vc2hhMS1tYi9zaGExX21iX21ncl9m bHVzaF9hdngyLlMKKysrIGIvYXJjaC94ODYvY3J5cHRvL3NoYTEtbWIvc2hhMV9tYl9tZ3JfZmx1 c2hfYXZ4Mi5TCkBAIC0xMDMsNyArMTAzLDcgQEAgb2Zmc2V0ID0gXF9vZmZzZXQKIAogIyBKT0Iq IHNoYTFfbWJfbWdyX2ZsdXNoX2F2eDIoTUJfTUdSICpzdGF0ZSkKICMgYXJnIDEgOiByY3ggOiBz dGF0ZQotRU5UUlkoc2hhMV9tYl9tZ3JfZmx1c2hfYXZ4MikKK1NZTV9GVU5DX1NUQVJUKHNoYTFf bWJfbWdyX2ZsdXNoX2F2eDIpCiAJRlJBTUVfQkVHSU4KIAlwdXNoCSVyYngKIApAQCAtMjIwLDEz ICsyMjAsMTMgQEAgcmV0dXJuOgogcmV0dXJuX251bGw6CiAJeG9yICAgICBqb2JfcmF4LCBqb2Jf cmF4CiAJam1wICAgICByZXR1cm4KLUVORFBST0Moc2hhMV9tYl9tZ3JfZmx1c2hfYXZ4MikKK1NZ TV9GVU5DX0VORChzaGExX21iX21ncl9mbHVzaF9hdngyKQogCiAKICMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAKIC5hbGln biAxNgotRU5UUlkoc2hhMV9tYl9tZ3JfZ2V0X2NvbXBfam9iX2F2eDIpCitTWU1fRlVOQ19TVEFS VChzaGExX21iX21ncl9nZXRfY29tcF9qb2JfYXZ4MikKIAlwdXNoICAgICVyYngKIAogCSMjIGlm IGJpdCAzMiszIGlzIHNldCwgdGhlbiBhbGwgbGFuZXMgYXJlIGVtcHR5CkBAIC0yNzksNyArMjc5 LDcgQEAgRU5UUlkoc2hhMV9tYl9tZ3JfZ2V0X2NvbXBfam9iX2F2eDIpCiAJeG9yICAgICBqb2Jf cmF4LCBqb2JfcmF4CiAJcG9wICAgICAlcmJ4CiAJcmV0Ci1FTkRQUk9DKHNoYTFfbWJfbWdyX2dl dF9jb21wX2pvYl9hdngyKQorU1lNX0ZVTkNfRU5EKHNoYTFfbWJfbWdyX2dldF9jb21wX2pvYl9h dngyKQogCiAuc2VjdGlvbgkucm9kYXRhLmNzdDE2LmNsZWFyX2xvd19uaWJibGUsICJhTSIsIEBw cm9nYml0cywgMTYKIC5hbGlnbiAxNgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvY3J5cHRvL3NoYTEt bWIvc2hhMV9tYl9tZ3Jfc3VibWl0X2F2eDIuUyBiL2FyY2gveDg2L2NyeXB0by9zaGExLW1iL3No YTFfbWJfbWdyX3N1Ym1pdF9hdngyLlMKaW5kZXggN2E5M2IxYzBkNjlhLi5hNDZlM2IwNDM4NWUg MTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2NyeXB0by9zaGExLW1iL3NoYTFfbWJfbWdyX3N1Ym1pdF9h dngyLlMKKysrIGIvYXJjaC94ODYvY3J5cHRvL3NoYTEtbWIvc2hhMV9tYl9tZ3Jfc3VibWl0X2F2 eDIuUwpAQCAtOTgsNyArOTgsNyBAQCBsYW5lX2RhdGEgICAgICAgPSAlcjEwCiAjIEpPQiogc3Vi bWl0X21iX21ncl9zdWJtaXRfYXZ4MihNQl9NR1IgKnN0YXRlLCBqb2Jfc2hhMSAqam9iKQogIyBh cmcgMSA6IHJjeCA6IHN0YXRlCiAjIGFyZyAyIDogcmR4IDogam9iCi1FTlRSWShzaGExX21iX21n cl9zdWJtaXRfYXZ4MikKK1NZTV9GVU5DX1NUQVJUKHNoYTFfbWJfbWdyX3N1Ym1pdF9hdngyKQog CUZSQU1FX0JFR0lOCiAJcHVzaAklcmJ4CiAJcHVzaAklcjEyCkBAIC0yMDEsNyArMjAxLDcgQEAg cmV0dXJuX251bGw6CiAJeG9yICAgICBqb2JfcmF4LCBqb2JfcmF4CiAJam1wICAgICByZXR1cm4K IAotRU5EUFJPQyhzaGExX21iX21ncl9zdWJtaXRfYXZ4MikKK1NZTV9GVU5DX0VORChzaGExX21i X21ncl9zdWJtaXRfYXZ4MikKIAogLnNlY3Rpb24JLnJvZGF0YS5jc3QxNi5jbGVhcl9sb3dfbmli YmxlLCAiYU0iLCBAcHJvZ2JpdHMsIDE2CiAuYWxpZ24gMTYKZGlmZiAtLWdpdCBhL2FyY2gveDg2 L2NyeXB0by9zaGExLW1iL3NoYTFfeDhfYXZ4Mi5TIGIvYXJjaC94ODYvY3J5cHRvL3NoYTEtbWIv c2hhMV94OF9hdngyLlMKaW5kZXggMjBmNzdhYTYzM2RlLi4wNGQ3NjM1MjBhODIgMTAwNjQ0Ci0t LSBhL2FyY2gveDg2L2NyeXB0by9zaGExLW1iL3NoYTFfeDhfYXZ4Mi5TCisrKyBiL2FyY2gveDg2 L2NyeXB0by9zaGExLW1iL3NoYTFfeDhfYXZ4Mi5TCkBAIC0yOTQsNyArMjk0LDcgQEAgVzE0ICA9 IFRNUF8KICMgYXJnIDEgOiBwb2ludGVyIHRvIGFycmF5WzRdIG9mIHBvaW50ZXIgdG8gaW5wdXQg ZGF0YQogIyBhcmcgMiA6IHNpemUgKGluIGJsb2NrcykgOzsgYXNzdW1lZCB0byBiZSA+PSAxCiAj Ci1FTlRSWShzaGExX3g4X2F2eDIpCitTWU1fRlVOQ19TVEFSVChzaGExX3g4X2F2eDIpCiAKIAkj IHNhdmUgY2FsbGVlLXNhdmVkIGNsb2JiZXJlZCByZWdpc3RlcnMgdG8gY29tcGx5IHdpdGggQyBm dW5jdGlvbiBBQkkKIAlwdXNoCSVyMTIKQEAgLTQ1OCw3ICs0NTgsNyBAQCBsbG9vcDoKIAlwb3AJ JXIxMgogCiAJcmV0Ci1FTkRQUk9DKHNoYTFfeDhfYXZ4MikKK1NZTV9GVU5DX0VORChzaGExX3g4 X2F2eDIpCiAKIAogLnNlY3Rpb24JLnJvZGF0YS5jc3QzMi5LMDBfMTksICJhTSIsIEBwcm9nYml0 cywgMzIKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2NyeXB0by9zaGExX2F2eDJfeDg2XzY0X2FzbS5T IGIvYXJjaC94ODYvY3J5cHRvL3NoYTFfYXZ4Ml94ODZfNjRfYXNtLlMKaW5kZXggOWY3MTJhN2Rm ZDc5Li42ZGVjYzg1ZWY3YjcgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2NyeXB0by9zaGExX2F2eDJf eDg2XzY0X2FzbS5TCisrKyBiL2FyY2gveDg2L2NyeXB0by9zaGExX2F2eDJfeDg2XzY0X2FzbS5T CkBAIC02MzQsNyArNjM0LDcgQEAgX2xvb3AzOgogICogcGFyYW06IGZ1bmN0aW9uJ3MgbmFtZQog ICovCiAubWFjcm8gU0hBMV9WRUNUT1JfQVNNICBuYW1lCi0JRU5UUlkoXG5hbWUpCisJU1lNX0ZV TkNfU1RBUlQoXG5hbWUpCiAKIAlwdXNoCSVyYngKIAlwdXNoCSVyMTIKQEAgLTY3Niw3ICs2NzYs NyBAQCBfbG9vcDM6CiAKIAlyZXQKIAotCUVORFBST0MoXG5hbWUpCisJU1lNX0ZVTkNfRU5EKFxu YW1lKQogLmVuZG0KIAogLnNlY3Rpb24gLnJvZGF0YQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvY3J5 cHRvL3NoYTFfbmlfYXNtLlMgYi9hcmNoL3g4Ni9jcnlwdG8vc2hhMV9uaV9hc20uUwppbmRleCBl YmJkYmE3MmFlMDcuLjExZWZlM2E0NWExZiAxMDA2NDQKLS0tIGEvYXJjaC94ODYvY3J5cHRvL3No YTFfbmlfYXNtLlMKKysrIGIvYXJjaC94ODYvY3J5cHRvL3NoYTFfbmlfYXNtLlMKQEAgLTk1LDcg Kzk1LDcgQEAKICAqLwogLnRleHQKIC5hbGlnbiAzMgotRU5UUlkoc2hhMV9uaV90cmFuc2Zvcm0p CitTWU1fRlVOQ19TVEFSVChzaGExX25pX3RyYW5zZm9ybSkKIAltb3YJCSVyc3AsIFJTUFNBVkUK IAlzdWIJCSRGUkFNRV9TSVpFLCAlcnNwCiAJYW5kCQkkfjB4RiwgJXJzcApAQCAtMjkxLDcgKzI5 MSw3IEBAIEVOVFJZKHNoYTFfbmlfdHJhbnNmb3JtKQogCW1vdgkJUlNQU0FWRSwgJXJzcAogCiAJ cmV0Ci1FTkRQUk9DKHNoYTFfbmlfdHJhbnNmb3JtKQorU1lNX0ZVTkNfRU5EKHNoYTFfbmlfdHJh bnNmb3JtKQogCiAuc2VjdGlvbgkucm9kYXRhLmNzdDE2LlBTSFVGRkxFX0JZVEVfRkxJUF9NQVNL LCAiYU0iLCBAcHJvZ2JpdHMsIDE2CiAuYWxpZ24gMTYKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2Ny eXB0by9zaGExX3Nzc2UzX2FzbS5TIGIvYXJjaC94ODYvY3J5cHRvL3NoYTFfc3NzZTNfYXNtLlMK aW5kZXggNjIwNGJkNTM1MjhjLi5jMjUzMjU1ZmQ0YzEgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2Ny eXB0by9zaGExX3Nzc2UzX2FzbS5TCisrKyBiL2FyY2gveDg2L2NyeXB0by9zaGExX3Nzc2UzX2Fz bS5TCkBAIC03MSw3ICs3MSw3IEBACiAgKiBwYXJhbTogZnVuY3Rpb24ncyBuYW1lCiAgKi8KIC5t YWNybyBTSEExX1ZFQ1RPUl9BU00gIG5hbWUKLQlFTlRSWShcbmFtZSkKKwlTWU1fRlVOQ19TVEFS VChcbmFtZSkKIAogCXB1c2gJJXJieAogCXB1c2gJJXIxMgpAQCAtMTA1LDcgKzEwNSw3IEBACiAJ cG9wCSVyYngKIAlyZXQKIAotCUVORFBST0MoXG5hbWUpCisJU1lNX0ZVTkNfRU5EKFxuYW1lKQog LmVuZG0KIAogLyoKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2NyeXB0by9zaGEyNTYtYXZ4LWFzbS5T IGIvYXJjaC94ODYvY3J5cHRvL3NoYTI1Ni1hdngtYXNtLlMKaW5kZXggMDAxYmJjZjkzYzc5Li4y MmUxNGM4ZGQyZTQgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2NyeXB0by9zaGEyNTYtYXZ4LWFzbS5T CisrKyBiL2FyY2gveDg2L2NyeXB0by9zaGEyNTYtYXZ4LWFzbS5TCkBAIC0zNDcsNyArMzQ3LDcg QEAgYSA9IFRNUF8KICMjIGFyZyAzIDogTnVtIGJsb2NrcwogIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAudGV4 dAotRU5UUlkoc2hhMjU2X3RyYW5zZm9ybV9hdngpCitTWU1fRlVOQ19TVEFSVChzaGEyNTZfdHJh bnNmb3JtX2F2eCkKIC5hbGlnbiAzMgogCXB1c2hxICAgJXJieAogCXB1c2hxICAgJXIxMgpAQCAt NDYwLDcgKzQ2MCw3IEBAIGRvbmVfaGFzaDoKIAlwb3BxCSVyMTIKIAlwb3BxICAgICVyYngKIAly ZXQKLUVORFBST0Moc2hhMjU2X3RyYW5zZm9ybV9hdngpCitTWU1fRlVOQ19FTkQoc2hhMjU2X3Ry YW5zZm9ybV9hdngpCiAKIC5zZWN0aW9uCS5yb2RhdGEuY3N0MjU2LksyNTYsICJhTSIsIEBwcm9n Yml0cywgMjU2CiAuYWxpZ24gNjQKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2NyeXB0by9zaGEyNTYt YXZ4Mi1hc20uUyBiL2FyY2gveDg2L2NyeXB0by9zaGEyNTYtYXZ4Mi1hc20uUwppbmRleCAxNDIw ZGIxNWRjZGQuLjUxOWI1NTFhZDU3NiAxMDA2NDQKLS0tIGEvYXJjaC94ODYvY3J5cHRvL3NoYTI1 Ni1hdngyLWFzbS5TCisrKyBiL2FyY2gveDg2L2NyeXB0by9zaGEyNTYtYXZ4Mi1hc20uUwpAQCAt NTI2LDcgKzUyNiw3IEBAIFNUQUNLX1NJWkUJPSBfUlNQICAgICAgKyBfUlNQX1NJWkUKICMjIGFy ZyAzIDogTnVtIGJsb2NrcwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAudGV4dAotRU5UUlkoc2hhMjU2X3Ry YW5zZm9ybV9yb3J4KQorU1lNX0ZVTkNfU1RBUlQoc2hhMjU2X3RyYW5zZm9ybV9yb3J4KQogLmFs aWduIDMyCiAJcHVzaHEJJXJieAogCXB1c2hxCSVyMTIKQEAgLTcxMyw3ICs3MTMsNyBAQCBkb25l X2hhc2g6CiAJcG9wcQklcjEyCiAJcG9wcQklcmJ4CiAJcmV0Ci1FTkRQUk9DKHNoYTI1Nl90cmFu c2Zvcm1fcm9yeCkKK1NZTV9GVU5DX0VORChzaGEyNTZfdHJhbnNmb3JtX3JvcngpCiAKIC5zZWN0 aW9uCS5yb2RhdGEuY3N0NTEyLksyNTYsICJhTSIsIEBwcm9nYml0cywgNTEyCiAuYWxpZ24gNjQK ZGlmZiAtLWdpdCBhL2FyY2gveDg2L2NyeXB0by9zaGEyNTYtbWIvc2hhMjU2X21iX21ncl9mbHVz aF9hdngyLlMgYi9hcmNoL3g4Ni9jcnlwdG8vc2hhMjU2LW1iL3NoYTI1Nl9tYl9tZ3JfZmx1c2hf YXZ4Mi5TCmluZGV4IDE2YzRjY2IxZjE1NC4uMTFmMDBlZTBhM2E0IDEwMDY0NAotLS0gYS9hcmNo L3g4Ni9jcnlwdG8vc2hhMjU2LW1iL3NoYTI1Nl9tYl9tZ3JfZmx1c2hfYXZ4Mi5TCisrKyBiL2Fy Y2gveDg2L2NyeXB0by9zaGEyNTYtbWIvc2hhMjU2X21iX21ncl9mbHVzaF9hdngyLlMKQEAgLTEw MSw3ICsxMDEsNyBAQCBvZmZzZXQgPSBcX29mZnNldAogCiAjIEpPQl9TSEEyNTYqIHNoYTI1Nl9t Yl9tZ3JfZmx1c2hfYXZ4MihNQl9NR1IgKnN0YXRlKQogIyBhcmcgMSA6IHJjeCA6IHN0YXRlCi1F TlRSWShzaGEyNTZfbWJfbWdyX2ZsdXNoX2F2eDIpCitTWU1fRlVOQ19TVEFSVChzaGEyNTZfbWJf bWdyX2ZsdXNoX2F2eDIpCiAJRlJBTUVfQkVHSU4KICAgICAgICAgcHVzaCAgICAlcmJ4CiAKQEAg LTIyMCwxMiArMjIwLDEyIEBAIHJldHVybjoKIHJldHVybl9udWxsOgogCXhvcglqb2JfcmF4LCBq b2JfcmF4CiAJam1wCXJldHVybgotRU5EUFJPQyhzaGEyNTZfbWJfbWdyX2ZsdXNoX2F2eDIpCitT WU1fRlVOQ19FTkQoc2hhMjU2X21iX21ncl9mbHVzaF9hdngyKQogCiAjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKIAogLmFsaWduIDE2Ci1FTlRSWShzaGEyNTZfbWJfbWdyX2dldF9jb21wX2pvYl9hdngy KQorU1lNX0ZVTkNfU1RBUlQoc2hhMjU2X21iX21ncl9nZXRfY29tcF9qb2JfYXZ4MikKIAlwdXNo CSVyYngKIAogCSMjIGlmIGJpdCAzMiszIGlzIHNldCwgdGhlbiBhbGwgbGFuZXMgYXJlIGVtcHR5 CkBAIC0yODIsNyArMjgyLDcgQEAgRU5UUlkoc2hhMjU2X21iX21ncl9nZXRfY29tcF9qb2JfYXZ4 MikKIAl4b3IJam9iX3JheCwgam9iX3JheAogCXBvcAklcmJ4CiAJcmV0Ci1FTkRQUk9DKHNoYTI1 Nl9tYl9tZ3JfZ2V0X2NvbXBfam9iX2F2eDIpCitTWU1fRlVOQ19FTkQoc2hhMjU2X21iX21ncl9n ZXRfY29tcF9qb2JfYXZ4MikKIAogLnNlY3Rpb24JLnJvZGF0YS5jc3QxNi5jbGVhcl9sb3dfbmli YmxlLCAiYU0iLCBAcHJvZ2JpdHMsIDE2CiAuYWxpZ24gMTYKZGlmZiAtLWdpdCBhL2FyY2gveDg2 L2NyeXB0by9zaGEyNTYtbWIvc2hhMjU2X21iX21ncl9zdWJtaXRfYXZ4Mi5TIGIvYXJjaC94ODYv Y3J5cHRvL3NoYTI1Ni1tYi9zaGEyNTZfbWJfbWdyX3N1Ym1pdF9hdngyLlMKaW5kZXggYjM2YWU3 NDU0MDg0Li4yMjEzYzA0YTMwZGMgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2NyeXB0by9zaGEyNTYt bWIvc2hhMjU2X21iX21ncl9zdWJtaXRfYXZ4Mi5TCisrKyBiL2FyY2gveDg2L2NyeXB0by9zaGEy NTYtbWIvc2hhMjU2X21iX21ncl9zdWJtaXRfYXZ4Mi5TCkBAIC05Niw3ICs5Niw3IEBAIGxhbmVf ZGF0YQk9ICVyMTAKICMgSk9CKiBzaGEyNTZfbWJfbWdyX3N1Ym1pdF9hdngyKE1CX01HUiAqc3Rh dGUsIEpPQl9TSEEyNTYgKmpvYikKICMgYXJnIDEgOiByY3ggOiBzdGF0ZQogIyBhcmcgMiA6IHJk eCA6IGpvYgotRU5UUlkoc2hhMjU2X21iX21ncl9zdWJtaXRfYXZ4MikKK1NZTV9GVU5DX1NUQVJU KHNoYTI1Nl9tYl9tZ3Jfc3VibWl0X2F2eDIpCiAJRlJBTUVfQkVHSU4KIAlwdXNoCSVyYngKIAlw dXNoCSVyMTIKQEAgLTIwNiw3ICsyMDYsNyBAQCByZXR1cm5fbnVsbDoKIAl4b3IJam9iX3JheCwg am9iX3JheAogCWptcAlyZXR1cm4KIAotRU5EUFJPQyhzaGEyNTZfbWJfbWdyX3N1Ym1pdF9hdngy KQorU1lNX0ZVTkNfRU5EKHNoYTI1Nl9tYl9tZ3Jfc3VibWl0X2F2eDIpCiAKIC5zZWN0aW9uCS5y b2RhdGEuY3N0MTYuY2xlYXJfbG93X25pYmJsZSwgImFNIiwgQHByb2diaXRzLCAxNgogLmFsaWdu IDE2CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9jcnlwdG8vc2hhMjU2LW1iL3NoYTI1Nl94OF9hdngy LlMgYi9hcmNoL3g4Ni9jcnlwdG8vc2hhMjU2LW1iL3NoYTI1Nl94OF9hdngyLlMKaW5kZXggMTY4 N2M4MGM1OTk1Li4wNDJkMjM4MWY0MzUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2NyeXB0by9zaGEy NTYtbWIvc2hhMjU2X3g4X2F2eDIuUworKysgYi9hcmNoL3g4Ni9jcnlwdG8vc2hhMjU2LW1iL3No YTI1Nl94OF9hdngyLlMKQEAgLTI4MCw3ICsyODAsNyBAQCBhID0gVE1QXwogCSMgZ2VuZXJhbCBy ZWdpc3RlcnMgcHJlc2VydmVkIGluIG91dGVyIGNhbGxpbmcgcm91dGluZQogCSMgb3V0ZXIgY2Fs bGluZyByb3V0aW5lIHNhdmVzIGFsbCB0aGUgWE1NIHJlZ2lzdGVycwogCSMgc2F2ZSByc3AsIGFs bG9jYXRlIDMyLWJ5dGUgYWxpZ25lZCBmb3IgbG9jYWwgdmFyaWFibGVzCi1FTlRSWShzaGEyNTZf eDhfYXZ4MikKK1NZTV9GVU5DX1NUQVJUKHNoYTI1Nl94OF9hdngyKQogCiAJIyBzYXZlIGNhbGxl ZS1zYXZlZCBjbG9iYmVyZWQgcmVnaXN0ZXJzIHRvIGNvbXBseSB3aXRoIEMgZnVuY3Rpb24gQUJJ CiAJcHVzaCAgICAlcjEyCkBAIC00MzYsNyArNDM2LDcgQEAgTHJvdW5kc18xNl94eDoKIAlwb3Ag ICAgICVyMTIKIAogCXJldAotRU5EUFJPQyhzaGEyNTZfeDhfYXZ4MikKK1NZTV9GVU5DX0VORChz aGEyNTZfeDhfYXZ4MikKIAogLnNlY3Rpb24JLnJvZGF0YS5LMjU2XzgsICJhIiwgQHByb2diaXRz CiAuYWxpZ24gNjQKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2NyeXB0by9zaGEyNTYtc3NzZTMtYXNt LlMgYi9hcmNoL3g4Ni9jcnlwdG8vc2hhMjU2LXNzc2UzLWFzbS5TCmluZGV4IGM2YzA1ZWQyYzE2 YS4uNjljYzJmOTFkYzRjIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9jcnlwdG8vc2hhMjU2LXNzc2Uz LWFzbS5TCisrKyBiL2FyY2gveDg2L2NyeXB0by9zaGEyNTYtc3NzZTMtYXNtLlMKQEAgLTM1Myw3 ICszNTMsNyBAQCBhID0gVE1QXwogIyMgYXJnIDMgOiBOdW0gYmxvY2tzCiAjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKIC50ZXh0Ci1FTlRSWShzaGEyNTZfdHJhbnNmb3JtX3Nzc2UzKQorU1lNX0ZVTkNfU1RBUlQo c2hhMjU2X3RyYW5zZm9ybV9zc3NlMykKIC5hbGlnbiAzMgogCXB1c2hxICAgJXJieAogCXB1c2hx ICAgJXIxMgpAQCAtNDcxLDcgKzQ3MSw3IEBAIGRvbmVfaGFzaDoKIAlwb3BxICAgICVyYngKIAog CXJldAotRU5EUFJPQyhzaGEyNTZfdHJhbnNmb3JtX3Nzc2UzKQorU1lNX0ZVTkNfRU5EKHNoYTI1 Nl90cmFuc2Zvcm1fc3NzZTMpCiAKIC5zZWN0aW9uCS5yb2RhdGEuY3N0MjU2LksyNTYsICJhTSIs IEBwcm9nYml0cywgMjU2CiAuYWxpZ24gNjQKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2NyeXB0by9z aGEyNTZfbmlfYXNtLlMgYi9hcmNoL3g4Ni9jcnlwdG8vc2hhMjU2X25pX2FzbS5TCmluZGV4IGZi NThmNThlY2ZiYy4uN2FiYWRlMDRhM2EzIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9jcnlwdG8vc2hh MjU2X25pX2FzbS5TCisrKyBiL2FyY2gveDg2L2NyeXB0by9zaGEyNTZfbmlfYXNtLlMKQEAgLTk3 LDcgKzk3LDcgQEAKIAogLnRleHQKIC5hbGlnbiAzMgotRU5UUlkoc2hhMjU2X25pX3RyYW5zZm9y bSkKK1NZTV9GVU5DX1NUQVJUKHNoYTI1Nl9uaV90cmFuc2Zvcm0pCiAKIAlzaGwJCSQ2LCBOVU1f QkxLUwkJLyogIGNvbnZlcnQgdG8gYnl0ZXMgKi8KIAlqegkJLkxkb25lX2hhc2gKQEAgLTMyNyw3 ICszMjcsNyBAQCBFTlRSWShzaGEyNTZfbmlfdHJhbnNmb3JtKQogLkxkb25lX2hhc2g6CiAKIAly ZXQKLUVORFBST0Moc2hhMjU2X25pX3RyYW5zZm9ybSkKK1NZTV9GVU5DX0VORChzaGEyNTZfbmlf dHJhbnNmb3JtKQogCiAuc2VjdGlvbgkucm9kYXRhLmNzdDI1Ni5LMjU2LCAiYU0iLCBAcHJvZ2Jp dHMsIDI1NgogLmFsaWduIDY0CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9jcnlwdG8vc2hhNTEyLWF2 eC1hc20uUyBiL2FyY2gveDg2L2NyeXB0by9zaGE1MTItYXZ4LWFzbS5TCmluZGV4IDM5MjM1ZmVm ZTZmNy4uMzcwNGRkZDdlNWQ1IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9jcnlwdG8vc2hhNTEyLWF2 eC1hc20uUworKysgYi9hcmNoL3g4Ni9jcnlwdG8vc2hhNTEyLWF2eC1hc20uUwpAQCAtMjc3LDcg KzI3Nyw3IEBAIGZyYW1lX3NpemUgPSBmcmFtZV9HUFJTQVZFICsgR1BSU0FWRV9TSVpFCiAjIG1l c3NhZ2UgYmxvY2tzLgogIyBMIGlzIHRoZSBtZXNzYWdlIGxlbmd0aCBpbiBTSEE1MTIgYmxvY2tz CiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKLUVOVFJZKHNoYTUxMl90cmFuc2Zvcm1fYXZ4KQorU1lNX0ZVTkNf U1RBUlQoc2hhNTEyX3RyYW5zZm9ybV9hdngpCiAJY21wICQwLCBtc2dsZW4KIAlqZSBub3dvcmsK IApAQCAtMzY1LDcgKzM2NSw3IEBAIHVwZGF0ZWJsb2NrOgogCiBub3dvcms6CiAJcmV0Ci1FTkRQ Uk9DKHNoYTUxMl90cmFuc2Zvcm1fYXZ4KQorU1lNX0ZVTkNfRU5EKHNoYTUxMl90cmFuc2Zvcm1f YXZ4KQogCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICMjIyBCaW5hcnkgRGF0YQpkaWZmIC0tZ2l0IGEvYXJj aC94ODYvY3J5cHRvL3NoYTUxMi1hdngyLWFzbS5TIGIvYXJjaC94ODYvY3J5cHRvL3NoYTUxMi1h dngyLWFzbS5TCmluZGV4IGIxNmQ1NjAwNTE2Mi4uODBkODMwZTdlZTA5IDEwMDY0NAotLS0gYS9h cmNoL3g4Ni9jcnlwdG8vc2hhNTEyLWF2eDItYXNtLlMKKysrIGIvYXJjaC94ODYvY3J5cHRvL3No YTUxMi1hdngyLWFzbS5TCkBAIC01NjksNyArNTY5LDcgQEAgZnJhbWVfc2l6ZSA9IGZyYW1lX0dQ UlNBVkUgKyBHUFJTQVZFX1NJWkUKICMgICBtZXNzYWdlIGJsb2Nrcy4KICMgTCBpcyB0aGUgbWVz c2FnZSBsZW5ndGggaW4gU0hBNTEyIGJsb2NrcwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1FTlRSWShzaGE1 MTJfdHJhbnNmb3JtX3JvcngpCitTWU1fRlVOQ19TVEFSVChzaGE1MTJfdHJhbnNmb3JtX3Jvcngp CiAJIyBBbGxvY2F0ZSBTdGFjayBTcGFjZQogCW1vdgklcnNwLCAlcmF4CiAJc3ViCSRmcmFtZV9z aXplLCAlcnNwCkBAIC02ODIsNyArNjgyLDcgQEAgZG9uZV9oYXNoOgogCSMgUmVzdG9yZSBTdGFj ayBQb2ludGVyCiAJbW92CWZyYW1lX1JTUFNBVkUoJXJzcCksICVyc3AKIAlyZXQKLUVORFBST0Mo c2hhNTEyX3RyYW5zZm9ybV9yb3J4KQorU1lNX0ZVTkNfRU5EKHNoYTUxMl90cmFuc2Zvcm1fcm9y eCkKIAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIyMgQmluYXJ5IERhdGEKZGlmZiAtLWdpdCBhL2FyY2gv eDg2L2NyeXB0by9zaGE1MTItbWIvc2hhNTEyX21iX21ncl9mbHVzaF9hdngyLlMgYi9hcmNoL3g4 Ni9jcnlwdG8vc2hhNTEyLW1iL3NoYTUxMl9tYl9tZ3JfZmx1c2hfYXZ4Mi5TCmluZGV4IDdjNjI5 Y2FlYmMwNS4uODY0MmYzYTA0Mzg4IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9jcnlwdG8vc2hhNTEy LW1iL3NoYTUxMl9tYl9tZ3JfZmx1c2hfYXZ4Mi5TCisrKyBiL2FyY2gveDg2L2NyeXB0by9zaGE1 MTItbWIvc2hhNTEyX21iX21ncl9mbHVzaF9hdngyLlMKQEAgLTEwNyw3ICsxMDcsNyBAQCBvZmZz ZXQgPSBcX29mZnNldAogCiAjIEpPQiogc2hhNTEyX21iX21ncl9mbHVzaF9hdngyKE1CX01HUiAq c3RhdGUpCiAjIGFyZyAxIDogcmN4IDogc3RhdGUKLUVOVFJZKHNoYTUxMl9tYl9tZ3JfZmx1c2hf YXZ4MikKK1NZTV9GVU5DX1NUQVJUKHNoYTUxMl9tYl9tZ3JfZmx1c2hfYXZ4MikKIAlGUkFNRV9C RUdJTgogCXB1c2gJJXJieAogCkBAIC0yMTcsMTAgKzIxNywxMCBAQCByZXR1cm46CiByZXR1cm5f bnVsbDoKICAgICAgICAgeG9yICAgICBqb2JfcmF4LCBqb2JfcmF4CiAgICAgICAgIGptcCAgICAg cmV0dXJuCi1FTkRQUk9DKHNoYTUxMl9tYl9tZ3JfZmx1c2hfYXZ4MikKK1NZTV9GVU5DX0VORChz aGE1MTJfbWJfbWdyX2ZsdXNoX2F2eDIpCiAuYWxpZ24gMTYKIAotRU5UUlkoc2hhNTEyX21iX21n cl9nZXRfY29tcF9qb2JfYXZ4MikKK1NZTV9GVU5DX1NUQVJUKHNoYTUxMl9tYl9tZ3JfZ2V0X2Nv bXBfam9iX2F2eDIpCiAgICAgICAgIHB1c2ggICAgJXJieAogCiAJbW92ICAgICBfdW51c2VkX2xh bmVzKHN0YXRlKSwgdW51c2VkX2xhbmVzCkBAIC0yNzksNyArMjc5LDcgQEAgRU5UUlkoc2hhNTEy X21iX21ncl9nZXRfY29tcF9qb2JfYXZ4MikKICAgICAgICAgeG9yICAgICBqb2JfcmF4LCBqb2Jf cmF4CiAJcG9wICAgICAlcmJ4CiAgICAgICAgIHJldAotRU5EUFJPQyhzaGE1MTJfbWJfbWdyX2dl dF9jb21wX2pvYl9hdngyKQorU1lNX0ZVTkNfRU5EKHNoYTUxMl9tYl9tZ3JfZ2V0X2NvbXBfam9i X2F2eDIpCiAKIC5zZWN0aW9uCS5yb2RhdGEuY3N0OC5vbmUsICJhTSIsIEBwcm9nYml0cywgOAog LmFsaWduIDgKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2NyeXB0by9zaGE1MTItbWIvc2hhNTEyX21i X21ncl9zdWJtaXRfYXZ4Mi5TIGIvYXJjaC94ODYvY3J5cHRvL3NoYTUxMi1tYi9zaGE1MTJfbWJf bWdyX3N1Ym1pdF9hdngyLlMKaW5kZXggNGJhNzA5YmE3OGU1Li42MjkzMjcyM2Q2ZTkgMTAwNjQ0 Ci0tLSBhL2FyY2gveDg2L2NyeXB0by9zaGE1MTItbWIvc2hhNTEyX21iX21ncl9zdWJtaXRfYXZ4 Mi5TCisrKyBiL2FyY2gveDg2L2NyeXB0by9zaGE1MTItbWIvc2hhNTEyX21iX21ncl9zdWJtaXRf YXZ4Mi5TCkBAIC05OCw3ICs5OCw3IEBACiAjIEpPQiogc2hhNTEyX21iX21ncl9zdWJtaXRfYXZ4 MihNQl9NR1IgKnN0YXRlLCBKT0IgKmpvYikKICMgYXJnIDEgOiByY3ggOiBzdGF0ZQogIyBhcmcg MiA6IHJkeCA6IGpvYgotRU5UUlkoc2hhNTEyX21iX21ncl9zdWJtaXRfYXZ4MikKK1NZTV9GVU5D X1NUQVJUKHNoYTUxMl9tYl9tZ3Jfc3VibWl0X2F2eDIpCiAJRlJBTUVfQkVHSU4KIAlwdXNoCSVy YngKIAlwdXNoCSVyMTIKQEAgLTIwOCw3ICsyMDgsNyBAQCByZXR1cm46CiByZXR1cm5fbnVsbDoK IAl4b3IgICAgIGpvYl9yYXgsIGpvYl9yYXgKIAlqbXAgICAgIHJldHVybgotRU5EUFJPQyhzaGE1 MTJfbWJfbWdyX3N1Ym1pdF9hdngyKQorU1lNX0ZVTkNfRU5EKHNoYTUxMl9tYl9tZ3Jfc3VibWl0 X2F2eDIpCiAKIC8qIFVOVVNFRD8KIC5zZWN0aW9uCS5yb2RhdGEuY3N0MTYsICJhTSIsIEBwcm9n Yml0cywgMTYKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2NyeXB0by9zaGE1MTItbWIvc2hhNTEyX3g0 X2F2eDIuUyBiL2FyY2gveDg2L2NyeXB0by9zaGE1MTItbWIvc2hhNTEyX3g0X2F2eDIuUwppbmRl eCBlMjJlOTA3NjQzYTYuLjUwNDA2NWQxOWUwMyAxMDA2NDQKLS0tIGEvYXJjaC94ODYvY3J5cHRv L3NoYTUxMi1tYi9zaGE1MTJfeDRfYXZ4Mi5TCisrKyBiL2FyY2gveDg2L2NyeXB0by9zaGE1MTIt bWIvc2hhNTEyX3g0X2F2eDIuUwpAQCAtMjM5LDcgKzIzOSw3IEBAIGEgPSBUTVBfCiAjIHZvaWQg c2hhNTEyX3g0X2F2eDIodm9pZCAqU1RBVEUsIGNvbnN0IGludCBJTlBfU0laRSkKICMgYXJnIDEg OiBTVEFURSAgICA6IHBvaW50ZXIgdG8gaW5wdXQgZGF0YQogIyBhcmcgMiA6IElOUF9TSVpFIDog c2l6ZSBvZiBkYXRhIGluIGJsb2NrcyAoYXNzdW1lZCA+PSAxKQotRU5UUlkoc2hhNTEyX3g0X2F2 eDIpCitTWU1fRlVOQ19TVEFSVChzaGE1MTJfeDRfYXZ4MikKIAkjIGdlbmVyYWwgcmVnaXN0ZXJz IHByZXNlcnZlZCBpbiBvdXRlciBjYWxsaW5nIHJvdXRpbmUKIAkjIG91dGVyIGNhbGxpbmcgcm91 dGluZSBzYXZlcyBhbGwgdGhlIFhNTSByZWdpc3RlcnMKIAkjIHNhdmUgY2FsbGVlLXNhdmVkIGNs b2JiZXJlZCByZWdpc3RlcnMgdG8gY29tcGx5IHdpdGggQyBmdW5jdGlvbiBBQkkKQEAgLTM1OSw3 ICszNTksNyBAQCBMcm91bmRzXzE2X3h4OgogCiAJIyBvdXRlciBjYWxsaW5nIHJvdXRpbmUgcmVz dG9yZXMgWE1NIGFuZCBvdGhlciBHUCByZWdpc3RlcnMKIAlyZXQKLUVORFBST0Moc2hhNTEyX3g0 X2F2eDIpCitTWU1fRlVOQ19FTkQoc2hhNTEyX3g0X2F2eDIpCiAKIC5zZWN0aW9uCS5yb2RhdGEu SzUxMl80LCAiYSIsIEBwcm9nYml0cwogLmFsaWduIDY0CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9j cnlwdG8vc2hhNTEyLXNzc2UzLWFzbS5TIGIvYXJjaC94ODYvY3J5cHRvL3NoYTUxMi1zc3NlMy1h c20uUwppbmRleCA2NmJiZDkwNThhOTAuLjgzOGY5ODRlOTVkOSAxMDA2NDQKLS0tIGEvYXJjaC94 ODYvY3J5cHRvL3NoYTUxMi1zc3NlMy1hc20uUworKysgYi9hcmNoL3g4Ni9jcnlwdG8vc2hhNTEy LXNzc2UzLWFzbS5TCkBAIC0yNzUsNyArMjc1LDcgQEAgZnJhbWVfc2l6ZSA9IGZyYW1lX0dQUlNB VkUgKyBHUFJTQVZFX1NJWkUKICMgICBtZXNzYWdlIGJsb2Nrcy4KICMgTCBpcyB0aGUgbWVzc2Fn ZSBsZW5ndGggaW4gU0hBNTEyIGJsb2Nrcy4KICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotRU5UUlkoc2hhNTEy X3RyYW5zZm9ybV9zc3NlMykKK1NZTV9GVU5DX1NUQVJUKHNoYTUxMl90cmFuc2Zvcm1fc3NzZTMp CiAKIAljbXAgJDAsIG1zZ2xlbgogCWplIG5vd29yawpAQCAtMzY0LDcgKzM2NCw3IEBAIHVwZGF0 ZWJsb2NrOgogCiBub3dvcms6CiAJcmV0Ci1FTkRQUk9DKHNoYTUxMl90cmFuc2Zvcm1fc3NzZTMp CitTWU1fRlVOQ19FTkQoc2hhNTEyX3RyYW5zZm9ybV9zc3NlMykKIAogIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CiAjIyMgQmluYXJ5IERhdGEKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2NyeXB0by90d29maXNoLWF2 eC14ODZfNjQtYXNtXzY0LlMgYi9hcmNoL3g4Ni9jcnlwdG8vdHdvZmlzaC1hdngteDg2XzY0LWFz bV82NC5TCmluZGV4IDk2ZGRmZGE0ZDdiMi4uMTZlNTNjOThlNmEwIDEwMDY0NAotLS0gYS9hcmNo L3g4Ni9jcnlwdG8vdHdvZmlzaC1hdngteDg2XzY0LWFzbV82NC5TCisrKyBiL2FyY2gveDg2L2Ny eXB0by90d29maXNoLWF2eC14ODZfNjQtYXNtXzY0LlMKQEAgLTMzMCw3ICszMzAsNyBAQCBTWU1f RlVOQ19TVEFSVF9MT0NBTChfX3R3b2Zpc2hfZGVjX2JsazgpCiAJcmV0OwogU1lNX0ZVTkNfRU5E KF9fdHdvZmlzaF9kZWNfYmxrOCkKIAotRU5UUlkodHdvZmlzaF9lY2JfZW5jXzh3YXkpCitTWU1f RlVOQ19TVEFSVCh0d29maXNoX2VjYl9lbmNfOHdheSkKIAkvKiBpbnB1dDoKIAkgKgklcmRpOiBj dHgsIENUWAogCSAqCSVyc2k6IGRzdApAQCAtMzQ4LDkgKzM0OCw5IEBAIEVOVFJZKHR3b2Zpc2hf ZWNiX2VuY184d2F5KQogCiAJRlJBTUVfRU5ECiAJcmV0OwotRU5EUFJPQyh0d29maXNoX2VjYl9l bmNfOHdheSkKK1NZTV9GVU5DX0VORCh0d29maXNoX2VjYl9lbmNfOHdheSkKIAotRU5UUlkodHdv ZmlzaF9lY2JfZGVjXzh3YXkpCitTWU1fRlVOQ19TVEFSVCh0d29maXNoX2VjYl9kZWNfOHdheSkK IAkvKiBpbnB1dDoKIAkgKgklcmRpOiBjdHgsIENUWAogCSAqCSVyc2k6IGRzdApAQCAtMzY4LDkg KzM2OCw5IEBAIEVOVFJZKHR3b2Zpc2hfZWNiX2RlY184d2F5KQogCiAJRlJBTUVfRU5ECiAJcmV0 OwotRU5EUFJPQyh0d29maXNoX2VjYl9kZWNfOHdheSkKK1NZTV9GVU5DX0VORCh0d29maXNoX2Vj Yl9kZWNfOHdheSkKIAotRU5UUlkodHdvZmlzaF9jYmNfZGVjXzh3YXkpCitTWU1fRlVOQ19TVEFS VCh0d29maXNoX2NiY19kZWNfOHdheSkKIAkvKiBpbnB1dDoKIAkgKgklcmRpOiBjdHgsIENUWAog CSAqCSVyc2k6IGRzdApAQCAtMzkzLDkgKzM5Myw5IEBAIEVOVFJZKHR3b2Zpc2hfY2JjX2RlY184 d2F5KQogCiAJRlJBTUVfRU5ECiAJcmV0OwotRU5EUFJPQyh0d29maXNoX2NiY19kZWNfOHdheSkK K1NZTV9GVU5DX0VORCh0d29maXNoX2NiY19kZWNfOHdheSkKIAotRU5UUlkodHdvZmlzaF9jdHJf OHdheSkKK1NZTV9GVU5DX1NUQVJUKHR3b2Zpc2hfY3RyXzh3YXkpCiAJLyogaW5wdXQ6CiAJICoJ JXJkaTogY3R4LCBDVFgKIAkgKgklcnNpOiBkc3QKQEAgLTQyMCw5ICs0MjAsOSBAQCBFTlRSWSh0 d29maXNoX2N0cl84d2F5KQogCiAJRlJBTUVfRU5ECiAJcmV0OwotRU5EUFJPQyh0d29maXNoX2N0 cl84d2F5KQorU1lNX0ZVTkNfRU5EKHR3b2Zpc2hfY3RyXzh3YXkpCiAKLUVOVFJZKHR3b2Zpc2hf eHRzX2VuY184d2F5KQorU1lNX0ZVTkNfU1RBUlQodHdvZmlzaF94dHNfZW5jXzh3YXkpCiAJLyog aW5wdXQ6CiAJICoJJXJkaTogY3R4LCBDVFgKIAkgKgklcnNpOiBkc3QKQEAgLTQ0NCw5ICs0NDQs OSBAQCBFTlRSWSh0d29maXNoX3h0c19lbmNfOHdheSkKIAogCUZSQU1FX0VORAogCXJldDsKLUVO RFBST0ModHdvZmlzaF94dHNfZW5jXzh3YXkpCitTWU1fRlVOQ19FTkQodHdvZmlzaF94dHNfZW5j Xzh3YXkpCiAKLUVOVFJZKHR3b2Zpc2hfeHRzX2RlY184d2F5KQorU1lNX0ZVTkNfU1RBUlQodHdv ZmlzaF94dHNfZGVjXzh3YXkpCiAJLyogaW5wdXQ6CiAJICoJJXJkaTogY3R4LCBDVFgKIAkgKgkl cnNpOiBkc3QKQEAgLTQ2OCw0ICs0NjgsNCBAQCBFTlRSWSh0d29maXNoX3h0c19kZWNfOHdheSkK IAogCUZSQU1FX0VORAogCXJldDsKLUVORFBST0ModHdvZmlzaF94dHNfZGVjXzh3YXkpCitTWU1f RlVOQ19FTkQodHdvZmlzaF94dHNfZGVjXzh3YXkpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9jcnlw dG8vdHdvZmlzaC14ODZfNjQtYXNtXzY0LTN3YXkuUyBiL2FyY2gveDg2L2NyeXB0by90d29maXNo LXg4Nl82NC1hc21fNjQtM3dheS5TCmluZGV4IGU3MjczYTYwNmEwNy4uYzgzMGFlZjc3MDcwIDEw MDY0NAotLS0gYS9hcmNoL3g4Ni9jcnlwdG8vdHdvZmlzaC14ODZfNjQtYXNtXzY0LTN3YXkuUwor KysgYi9hcmNoL3g4Ni9jcnlwdG8vdHdvZmlzaC14ODZfNjQtYXNtXzY0LTN3YXkuUwpAQCAtMjM1 LDcgKzIzNSw3IEBACiAJcm9ycSAkMzIsCQkJUkFCMjsgXAogCW91dHVucGFjazMobW92LCBSSU8s IDIsIFJBQiwgMik7CiAKLUVOVFJZKF9fdHdvZmlzaF9lbmNfYmxrXzN3YXkpCitTWU1fRlVOQ19T VEFSVChfX3R3b2Zpc2hfZW5jX2Jsa18zd2F5KQogCS8qIGlucHV0OgogCSAqCSVyZGk6IGN0eCwg Q1RYCiAJICoJJXJzaTogZHN0CkBAIC0yODIsOSArMjgyLDkgQEAgRU5UUlkoX190d29maXNoX2Vu Y19ibGtfM3dheSkKIAlwb3BxICVyMTI7CiAJcG9wcSAlcjEzOwogCXJldDsKLUVORFBST0MoX190 d29maXNoX2VuY19ibGtfM3dheSkKK1NZTV9GVU5DX0VORChfX3R3b2Zpc2hfZW5jX2Jsa18zd2F5 KQogCi1FTlRSWSh0d29maXNoX2RlY19ibGtfM3dheSkKK1NZTV9GVU5DX1NUQVJUKHR3b2Zpc2hf ZGVjX2Jsa18zd2F5KQogCS8qIGlucHV0OgogCSAqCSVyZGk6IGN0eCwgQ1RYCiAJICoJJXJzaTog ZHN0CkBAIC0zMTcsNCArMzE3LDQgQEAgRU5UUlkodHdvZmlzaF9kZWNfYmxrXzN3YXkpCiAJcG9w cSAlcjEyOwogCXBvcHEgJXIxMzsKIAlyZXQ7Ci1FTkRQUk9DKHR3b2Zpc2hfZGVjX2Jsa18zd2F5 KQorU1lNX0ZVTkNfRU5EKHR3b2Zpc2hfZGVjX2Jsa18zd2F5KQpkaWZmIC0tZ2l0IGEvYXJjaC94 ODYvY3J5cHRvL3R3b2Zpc2gteDg2XzY0LWFzbV82NC5TIGIvYXJjaC94ODYvY3J5cHRvL3R3b2Zp c2gteDg2XzY0LWFzbV82NC5TCmluZGV4IGEzNTBjOTkwZGM4Ni4uNzRlZjZjNTVkNzVmIDEwMDY0 NAotLS0gYS9hcmNoL3g4Ni9jcnlwdG8vdHdvZmlzaC14ODZfNjQtYXNtXzY0LlMKKysrIGIvYXJj aC94ODYvY3J5cHRvL3R3b2Zpc2gteDg2XzY0LWFzbV82NC5TCkBAIC0yMTUsNyArMjE1LDcgQEAK IAl4b3IJJXI4ZCwJCWQgIyMgRDtcCiAJcm9yCSQxLAkJZCAjIyBEOwogCi1FTlRSWSh0d29maXNo X2VuY19ibGspCitTWU1fRlVOQ19TVEFSVCh0d29maXNoX2VuY19ibGspCiAJcHVzaHEgICAgUjEK IAogCS8qICVyZGkgY29udGFpbnMgdGhlIGN0eCBhZGRyZXNzICovCkBAIC0yNjYsOSArMjY2LDkg QEAgRU5UUlkodHdvZmlzaF9lbmNfYmxrKQogCXBvcHEJUjEKIAltb3ZsCSQxLCVlYXgKIAlyZXQK LUVORFBST0ModHdvZmlzaF9lbmNfYmxrKQorU1lNX0ZVTkNfRU5EKHR3b2Zpc2hfZW5jX2JsaykK IAotRU5UUlkodHdvZmlzaF9kZWNfYmxrKQorU1lNX0ZVTkNfU1RBUlQodHdvZmlzaF9kZWNfYmxr KQogCXB1c2hxICAgIFIxCiAKIAkvKiAlcmRpIGNvbnRhaW5zIHRoZSBjdHggYWRkcmVzcyAqLwpA QCAtMzE4LDQgKzMxOCw0IEBAIEVOVFJZKHR3b2Zpc2hfZGVjX2JsaykKIAlwb3BxCVIxCiAJbW92 bAkkMSwlZWF4CiAJcmV0Ci1FTkRQUk9DKHR3b2Zpc2hfZGVjX2JsaykKK1NZTV9GVU5DX0VORCh0 d29maXNoX2RlY19ibGspCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9lbnRyeS9lbnRyeV82NC5TIGIv YXJjaC94ODYvZW50cnkvZW50cnlfNjQuUwppbmRleCA2Zjg1ZjQzYTQ4NzcuLjNhOWYwZGQyMDli MiAxMDA2NDQKLS0tIGEvYXJjaC94ODYvZW50cnkvZW50cnlfNjQuUworKysgYi9hcmNoL3g4Ni9l bnRyeS9lbnRyeV82NC5TCkBAIC0xNSw3ICsxNSw3IEBACiAgKgkJCWF0IHRoZSB0b3Agb2YgdGhl IGtlcm5lbCBwcm9jZXNzIHN0YWNrLgogICoKICAqIFNvbWUgbWFjcm8gdXNhZ2U6Ci0gKiAtIEVO VFJZL0VORDoJCURlZmluZSBmdW5jdGlvbnMgaW4gdGhlIHN5bWJvbCB0YWJsZS4KKyAqIC0gU1lN X0ZVTkNfU1RBUlQvRU5EOkRlZmluZSBmdW5jdGlvbnMgaW4gdGhlIHN5bWJvbCB0YWJsZS4KICAq IC0gVFJBQ0VfSVJRXyo6CVRyYWNlIGhhcmRpcnEgc3RhdGUgZm9yIGxvY2sgZGVidWdnaW5nLgog ICogLSBpZHRlbnRyeToJCURlZmluZSBleGNlcHRpb24gZW50cnkgcG9pbnRzLgogICovCkBAIC0x MDA3LDcgKzEwMDcsNyBAQCBpZHRlbnRyeSBzaW1kX2NvcHJvY2Vzc29yX2Vycm9yCQlkb19zaW1k X2NvcHJvY2Vzc29yX2Vycm9yCWhhc19lcnJvcl9jb2RlPTAKIAkgKiBSZWxvYWQgZ3Mgc2VsZWN0 b3Igd2l0aCBleGNlcHRpb24gaGFuZGxpbmcKIAkgKiBlZGk6ICBuZXcgc2VsZWN0b3IKIAkgKi8K LUVOVFJZKG5hdGl2ZV9sb2FkX2dzX2luZGV4KQorU1lNX0ZVTkNfU1RBUlQobmF0aXZlX2xvYWRf Z3NfaW5kZXgpCiAJRlJBTUVfQkVHSU4KIAlwdXNoZnEKIAlESVNBQkxFX0lOVEVSUlVQVFMoQ0xC Ul9BTlkgJiB+Q0xCUl9SREkpCkBAIC0xMDIxLDcgKzEwMjEsNyBAQCBFTlRSWShuYXRpdmVfbG9h ZF9nc19pbmRleCkKIAlwb3BmcQogCUZSQU1FX0VORAogCXJldAotRU5EUFJPQyhuYXRpdmVfbG9h ZF9nc19pbmRleCkKK1NZTV9GVU5DX0VORChuYXRpdmVfbG9hZF9nc19pbmRleCkKIEVYUE9SVF9T WU1CT0wobmF0aXZlX2xvYWRfZ3NfaW5kZXgpCiAKIAlfQVNNX0VYVEFCTEUoLkxnc19jaGFuZ2Us IGJhZF9ncykKQEAgLTEwNDIsNyArMTA0Miw3IEBAIFNZTV9DT0RFX0VORChiYWRfZ3MpCiAJLnBy ZXZpb3VzCiAKIC8qIENhbGwgc29mdGlycSBvbiBpbnRlcnJ1cHQgc3RhY2suIEludGVycnVwdHMg YXJlIG9mZi4gKi8KLUVOVFJZKGRvX3NvZnRpcnFfb3duX3N0YWNrKQorU1lNX0ZVTkNfU1RBUlQo ZG9fc29mdGlycV9vd25fc3RhY2spCiAJcHVzaHEJJXJicAogCW1vdgklcnNwLCAlcmJwCiAJRU5U RVJfSVJRX1NUQUNLIHJlZ3M9MCBvbGRfcnNwPSVyMTEKQEAgLTEwNTAsNyArMTA1MCw3IEBAIEVO VFJZKGRvX3NvZnRpcnFfb3duX3N0YWNrKQogCUxFQVZFX0lSUV9TVEFDSyByZWdzPTAKIAlsZWF2 ZXEKIAlyZXQKLUVORFBST0MoZG9fc29mdGlycV9vd25fc3RhY2spCitTWU1fRlVOQ19FTkQoZG9f c29mdGlycV9vd25fc3RhY2spCiAKICNpZmRlZiBDT05GSUdfWEVOCiBpZHRlbnRyeSBoeXBlcnZp c29yX2NhbGxiYWNrIHhlbl9kb19oeXBlcnZpc29yX2NhbGxiYWNrIGhhc19lcnJvcl9jb2RlPTAK ZGlmZiAtLWdpdCBhL2FyY2gveDg2L2VudHJ5L2VudHJ5XzY0X2NvbXBhdC5TIGIvYXJjaC94ODYv ZW50cnkvZW50cnlfNjRfY29tcGF0LlMKaW5kZXggZDAzZGRmYzk1OWU2Li4xOWJmOTgyNTYxNzQg MTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2VudHJ5L2VudHJ5XzY0X2NvbXBhdC5TCisrKyBiL2FyY2gv eDg2L2VudHJ5L2VudHJ5XzY0X2NvbXBhdC5TCkBAIC00Niw3ICs0Niw3IEBACiAgKiBlYnAgIHVz ZXIgc3RhY2sKICAqIDAoJWVicCkgYXJnNgogICovCi1FTlRSWShlbnRyeV9TWVNFTlRFUl9jb21w YXQpCitTWU1fRlVOQ19TVEFSVChlbnRyeV9TWVNFTlRFUl9jb21wYXQpCiAJLyogSW50ZXJydXB0 cyBhcmUgb2ZmIG9uIGVudHJ5LiAqLwogCVNXQVBHUwogCkBAIC0xNDcsNyArMTQ3LDcgQEAgRU5U UlkoZW50cnlfU1lTRU5URVJfY29tcGF0KQogCXBvcGZxCiAJam1wCS5Mc3lzZW50ZXJfZmxhZ3Nf Zml4ZWQKIFNZTV9JTk5FUl9MQUJFTChfX2VuZF9lbnRyeV9TWVNFTlRFUl9jb21wYXQsIFNZTV9M X0dMT0JBTCkKLUVORFBST0MoZW50cnlfU1lTRU5URVJfY29tcGF0KQorU1lNX0ZVTkNfRU5EKGVu dHJ5X1NZU0VOVEVSX2NvbXBhdCkKIAogLyoKICAqIDMyLWJpdCBTWVNDQUxMIGVudHJ5LgpkaWZm IC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2FjcGkvd2FrZXVwXzY0LlMgYi9hcmNoL3g4Ni9rZXJu ZWwvYWNwaS93YWtldXBfNjQuUwppbmRleCA2YzYwZmUzNDY1ODMuLjA0MmZkMzBhYzQ5MyAxMDA2 NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2FjcGkvd2FrZXVwXzY0LlMKKysrIGIvYXJjaC94ODYv a2VybmVsL2FjcGkvd2FrZXVwXzY0LlMKQEAgLTEzLDcgKzEzLDcgQEAKIAkvKgogCSAqIEhvb3Jh eSwgd2UgYXJlIGluIExvbmcgNjQtYml0IG1vZGUgKGJ1dCBzdGlsbCBydW5uaW5nIGluIGxvdyBt ZW1vcnkpCiAJICovCi1FTlRSWSh3YWtldXBfbG9uZzY0KQorU1lNX0ZVTkNfU1RBUlQod2FrZXVw X2xvbmc2NCkKIAltb3ZxCXNhdmVkX21hZ2ljLCAlcmF4CiAJbW92cQkkMHgxMjM0NTY3ODlhYmNk ZWYwLCAlcmR4CiAJY21wcQklcmR4LCAlcmF4CkBAIC0zNCwxMyArMzQsMTMgQEAgRU5UUlkod2Fr ZXVwX2xvbmc2NCkKIAogCW1vdnEJc2F2ZWRfcmlwLCAlcmF4CiAJam1wCSolcmF4Ci1FTkRQUk9D KHdha2V1cF9sb25nNjQpCitTWU1fRlVOQ19FTkQod2FrZXVwX2xvbmc2NCkKIAogU1lNX0NPREVf U1RBUlRfTE9DQUwoYm9ndXNfNjRfbWFnaWMpCiAJam1wCWJvZ3VzXzY0X21hZ2ljCiBTWU1fQ09E RV9FTkQoYm9ndXNfNjRfbWFnaWMpCiAKLUVOVFJZKGRvX3N1c3BlbmRfbG93bGV2ZWwpCitTWU1f RlVOQ19TVEFSVChkb19zdXNwZW5kX2xvd2xldmVsKQogCUZSQU1FX0JFR0lOCiAJc3VicQkkOCwg JXJzcAogCXhvcmwJJWVheCwgJWVheApAQCAtMTIzLDcgKzEyMyw3IEBAIEVOVFJZKGRvX3N1c3Bl bmRfbG93bGV2ZWwpCiAJYWRkcQkkOCwgJXJzcAogCUZSQU1FX0VORAogCWptcAlyZXN0b3JlX3By b2Nlc3Nvcl9zdGF0ZQotRU5EUFJPQyhkb19zdXNwZW5kX2xvd2xldmVsKQorU1lNX0ZVTkNfRU5E KGRvX3N1c3BlbmRfbG93bGV2ZWwpCiAKIC5kYXRhCiBzYXZlZF9yYnA6CQkucXVhZAkwCmRpZmYg LS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvZnRyYWNlXzY0LlMgYi9hcmNoL3g4Ni9rZXJuZWwvZnRy YWNlXzY0LlMKaW5kZXggNTE5NzA4MDZjMmRmLi42OGI4YzRiM2U1NDMgMTAwNjQ0Ci0tLSBhL2Fy Y2gveDg2L2tlcm5lbC9mdHJhY2VfNjQuUworKysgYi9hcmNoL3g4Ni9rZXJuZWwvZnRyYWNlXzY0 LlMKQEAgLTE1MCwxMSArMTUwLDExIEBAIEVYUE9SVF9TWU1CT0wobWNvdW50KQogCiAjaWZkZWYg Q09ORklHX0RZTkFNSUNfRlRSQUNFCiAKLUVOVFJZKGZ1bmN0aW9uX2hvb2spCitTWU1fRlVOQ19T VEFSVChmdW5jdGlvbl9ob29rKQogCXJldHEKLUVORFBST0MoZnVuY3Rpb25faG9vaykKK1NZTV9G VU5DX0VORChmdW5jdGlvbl9ob29rKQogCi1FTlRSWShmdHJhY2VfY2FsbGVyKQorU1lNX0ZVTkNf U1RBUlQoZnRyYWNlX2NhbGxlcikKIAkvKiBzYXZlX21jb3VudF9yZWdzIGZpbGxzIGluIGZpcnN0 IHR3byBwYXJhbWV0ZXJzICovCiAJc2F2ZV9tY291bnRfcmVncwogCkBAIC0xODgsOSArMTg4LDkg QEAgU1lNX0lOTkVSX0xBQkVMKGZ0cmFjZV9ncmFwaF9jYWxsLCBTWU1fTF9HTE9CQUwpCiAvKiBU aGlzIGlzIHdlYWsgdG8ga2VlcCBnYXMgZnJvbSByZWxheGluZyB0aGUganVtcHMgKi8KIFdFQUso ZnRyYWNlX3N0dWIpCiAJcmV0cQotRU5EUFJPQyhmdHJhY2VfY2FsbGVyKQorU1lNX0ZVTkNfRU5E KGZ0cmFjZV9jYWxsZXIpCiAKLUVOVFJZKGZ0cmFjZV9yZWdzX2NhbGxlcikKK1NZTV9GVU5DX1NU QVJUKGZ0cmFjZV9yZWdzX2NhbGxlcikKIAkvKiBTYXZlIHRoZSBjdXJyZW50IGZsYWdzIGJlZm9y ZSBhbnkgb3BlcmF0aW9ucyB0aGF0IGNhbiBjaGFuZ2UgdGhlbSAqLwogCXB1c2hmcQogCkBAIC0y NTksMTIgKzI1OSwxMiBAQCBTWU1fSU5ORVJfTEFCRUwoZnRyYWNlX3JlZ3NfY2FsbGVyX2VuZCwg U1lNX0xfR0xPQkFMKQogCiAJam1wIGZ0cmFjZV9lcGlsb2d1ZQogCi1FTkRQUk9DKGZ0cmFjZV9y ZWdzX2NhbGxlcikKK1NZTV9GVU5DX0VORChmdHJhY2VfcmVnc19jYWxsZXIpCiAKIAogI2Vsc2Ug LyogISBDT05GSUdfRFlOQU1JQ19GVFJBQ0UgKi8KIAotRU5UUlkoZnVuY3Rpb25faG9vaykKK1NZ TV9GVU5DX1NUQVJUKGZ1bmN0aW9uX2hvb2spCiAJY21wcSAkZnRyYWNlX3N0dWIsIGZ0cmFjZV90 cmFjZV9mdW5jdGlvbgogCWpueiB0cmFjZQogCkBAIC0yOTUsMTEgKzI5NSwxMSBAQCB0cmFjZToK IAlyZXN0b3JlX21jb3VudF9yZWdzCiAKIAlqbXAgZmdyYXBoX3RyYWNlCi1FTkRQUk9DKGZ1bmN0 aW9uX2hvb2spCitTWU1fRlVOQ19FTkQoZnVuY3Rpb25faG9vaykKICNlbmRpZiAvKiBDT05GSUdf RFlOQU1JQ19GVFJBQ0UgKi8KIAogI2lmZGVmIENPTkZJR19GVU5DVElPTl9HUkFQSF9UUkFDRVIK LUVOVFJZKGZ0cmFjZV9ncmFwaF9jYWxsZXIpCitTWU1fRlVOQ19TVEFSVChmdHJhY2VfZ3JhcGhf Y2FsbGVyKQogCS8qIFNhdmVzIHJicCBpbnRvICVyZHggYW5kIGZpbGxzIGZpcnN0IHBhcmFtZXRl ciAgKi8KIAlzYXZlX21jb3VudF9yZWdzCiAKQEAgLTMxNyw3ICszMTcsNyBAQCBFTlRSWShmdHJh Y2VfZ3JhcGhfY2FsbGVyKQogCXJlc3RvcmVfbWNvdW50X3JlZ3MKIAogCXJldHEKLUVORFBST0Mo ZnRyYWNlX2dyYXBoX2NhbGxlcikKK1NZTV9GVU5DX0VORChmdHJhY2VfZ3JhcGhfY2FsbGVyKQog CiBTWU1fQ09ERV9TVEFSVChyZXR1cm5fdG9faGFuZGxlcikKIAlVTldJTkRfSElOVF9FTVBUWQpk aWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2hlYWRfNjQuUyBiL2FyY2gveDg2L2tlcm5lbC9o ZWFkXzY0LlMKaW5kZXggNDhlNzEwNDNiOTljLi5mNDM4M2Y0ZDQxYjEgMTAwNjQ0Ci0tLSBhL2Fy Y2gveDg2L2tlcm5lbC9oZWFkXzY0LlMKKysrIGIvYXJjaC94ODYva2VybmVsL2hlYWRfNjQuUwpA QCAtOTIsNyArOTIsNyBAQCBTWU1fQ09ERV9TVEFSVF9OT0FMSUdOKHN0YXJ0dXBfNjQpCiAJam1w IDFmCiBTWU1fQ09ERV9FTkQoc3RhcnR1cF82NCkKIAotRU5UUlkoc2Vjb25kYXJ5X3N0YXJ0dXBf NjQpCitTWU1fQ09ERV9TVEFSVChzZWNvbmRhcnlfc3RhcnR1cF82NCkKIAlVTldJTkRfSElOVF9F TVBUWQogCS8qCiAJICogQXQgdGhpcyBwb2ludCB0aGUgQ1BVIHJ1bnMgaW4gNjRiaXQgbW9kZSBD Uy5MID0gMSBDUy5EID0gMCwKQEAgLTI0Miw3ICsyNDIsNyBAQCBFTlRSWShzZWNvbmRhcnlfc3Rh cnR1cF82NCkKIAlwdXNocQklcmF4CQkjIHRhcmdldCBhZGRyZXNzIGluIG5lZ2F0aXZlIHNwYWNl CiAJbHJldHEKIC5MYWZ0ZXJfbHJldDoKLUVORChzZWNvbmRhcnlfc3RhcnR1cF82NCkKK1NZTV9D T0RFX0VORChzZWNvbmRhcnlfc3RhcnR1cF82NCkKIAogI2luY2x1ZGUgInZlcmlmeV9jcHUuUyIK IApAQCAtMjUyLDExICsyNTIsMTEgQEAgRU5EKHNlY29uZGFyeV9zdGFydHVwXzY0KQogICogdXAg YWxyZWFkeSBleGNlcHQgc3RhY2suIFdlIGp1c3Qgc2V0IHVwIHN0YWNrIGhlcmUuIFRoZW4gY2Fs bAogICogc3RhcnRfc2Vjb25kYXJ5KCkgdmlhIC5ManVtcF90b19DX2NvZGUuCiAgKi8KLUVOVFJZ KHN0YXJ0X2NwdTApCitTWU1fRlVOQ19TVEFSVChzdGFydF9jcHUwKQogCW1vdnEJaW5pdGlhbF9z dGFjayglcmlwKSwgJXJzcAogCVVOV0lORF9ISU5UX0VNUFRZCiAJam1wCS5ManVtcF90b19DX2Nv ZGUKLUVORFBST0Moc3RhcnRfY3B1MCkKK1NZTV9GVU5DX0VORChzdGFydF9jcHUwKQogI2VuZGlm CiAKIAkvKiBCb3RoIFNNUCBib290dXAgYW5kIEFDUEkgc3VzcGVuZCBjaGFuZ2UgdGhlc2UgdmFy aWFibGVzICovCkBAIC0yNzMsNyArMjczLDcgQEAgU1lNX0RBVEEoaW5pdGlhbF9zdGFjaywKIAlf X0ZJTklUREFUQQogCiAJX19JTklUCi1FTlRSWShlYXJseV9pZHRfaGFuZGxlcl9hcnJheSkKK1NZ TV9DT0RFX1NUQVJUKGVhcmx5X2lkdF9oYW5kbGVyX2FycmF5KQogCWkgPSAwCiAJLnJlcHQgTlVN X0VYQ0VQVElPTl9WRUNUT1JTCiAJLmlmICgoRVhDRVBUSU9OX0VSUkNPREVfTUFTSyA+PiBpKSAm IDEpID09IDAKQEAgLTI4OSw3ICsyODksNyBAQCBFTlRSWShlYXJseV9pZHRfaGFuZGxlcl9hcnJh eSkKIAkuZmlsbCBlYXJseV9pZHRfaGFuZGxlcl9hcnJheSArIGkqRUFSTFlfSURUX0hBTkRMRVJf U0laRSAtIC4sIDEsIDB4Y2MKIAkuZW5kcgogCVVOV0lORF9ISU5UX0lSRVRfUkVHUyBvZmZzZXQ9 MTYKLUVORChlYXJseV9pZHRfaGFuZGxlcl9hcnJheSkKK1NZTV9DT0RFX0VORChlYXJseV9pZHRf aGFuZGxlcl9hcnJheSkKIAogU1lNX0NPREVfU1RBUlRfTE9DQUwoZWFybHlfaWR0X2hhbmRsZXJf Y29tbW9uKQogCS8qCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9saWIvY2hlY2tzdW1fMzIuUyBiL2Fy Y2gveDg2L2xpYi9jaGVja3N1bV8zMi5TCmluZGV4IDQ2ZTcxYTc0ZTYxMi4uMjhhMTQ4ZGUxODQz IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9saWIvY2hlY2tzdW1fMzIuUworKysgYi9hcmNoL3g4Ni9s aWIvY2hlY2tzdW1fMzIuUwpAQCAtMjg0LDcgKzI4NCw3IEBAIHVuc2lnbmVkIGludCBjc3VtX3Bh cnRpYWxfY29weV9nZW5lcmljIChjb25zdCBjaGFyICpzcmMsIGNoYXIgKmRzdCwKICNkZWZpbmUg QVJHQkFTRSAxNgkJCiAjZGVmaW5lIEZQCQkxMgogCQkKLUVOVFJZKGNzdW1fcGFydGlhbF9jb3B5 X2dlbmVyaWMpCitTWU1fRlVOQ19TVEFSVChjc3VtX3BhcnRpYWxfY29weV9nZW5lcmljKQogCXN1 YmwgICQ0LCVlc3AJCiAJcHVzaGwgJWVkaQogCXB1c2hsICVlc2kKQEAgLTQwMiw3ICs0MDIsNyBA QCBEU1QoCW1vdmIgJWNsLCAoJWVkaSkJKQogCXBvcGwgJWVkaQogCXBvcGwgJWVjeAkJCSMgZXF1 aXZhbGVudCB0byBhZGRsICQ0LCVlc3AKIAlyZXQJCi1FTkRQUk9DKGNzdW1fcGFydGlhbF9jb3B5 X2dlbmVyaWMpCitTWU1fRlVOQ19FTkQoY3N1bV9wYXJ0aWFsX2NvcHlfZ2VuZXJpYykKIAogI2Vs c2UKIApAQCAtNDIwLDcgKzQyMCw3IEBAIEVORFBST0MoY3N1bV9wYXJ0aWFsX2NvcHlfZ2VuZXJp YykKIAogI2RlZmluZSBBUkdCQVNFIDEyCiAJCQotRU5UUlkoY3N1bV9wYXJ0aWFsX2NvcHlfZ2Vu ZXJpYykKK1NZTV9GVU5DX1NUQVJUKGNzdW1fcGFydGlhbF9jb3B5X2dlbmVyaWMpCiAJcHVzaGwg JWVieAogCXB1c2hsICVlZGkKIAlwdXNobCAlZXNpCkBAIC00ODcsNyArNDg3LDcgQEAgRFNUKAlt b3ZiICVkbCwgKCVlZGkpICAgICAgICAgKQogCXBvcGwgJWVkaQogCXBvcGwgJWVieAogCXJldAot RU5EUFJPQyhjc3VtX3BhcnRpYWxfY29weV9nZW5lcmljKQorU1lNX0ZVTkNfRU5EKGNzdW1fcGFy dGlhbF9jb3B5X2dlbmVyaWMpCiAJCQkJCiAjdW5kZWYgUk9VTkQKICN1bmRlZiBST1VORDEJCQpk aWZmIC0tZ2l0IGEvYXJjaC94ODYvbGliL2NsZWFyX3BhZ2VfNjQuUyBiL2FyY2gveDg2L2xpYi9j bGVhcl9wYWdlXzY0LlMKaW5kZXggODhhY2QzNDk5MTFiLi40N2FhMjgzMDAxMGIgMTAwNjQ0Ci0t LSBhL2FyY2gveDg2L2xpYi9jbGVhcl9wYWdlXzY0LlMKKysrIGIvYXJjaC94ODYvbGliL2NsZWFy X3BhZ2VfNjQuUwpAQCAtMTIsMTUgKzEyLDE1IEBACiAgKiBaZXJvIGEgcGFnZS4KICAqICVyZGkJ LSBwYWdlCiAgKi8KLUVOVFJZKGNsZWFyX3BhZ2VfcmVwKQorU1lNX0ZVTkNfU1RBUlQoY2xlYXJf cGFnZV9yZXApCiAJbW92bCAkNDA5Ni84LCVlY3gKIAl4b3JsICVlYXgsJWVheAogCXJlcCBzdG9z cQogCXJldAotRU5EUFJPQyhjbGVhcl9wYWdlX3JlcCkKK1NZTV9GVU5DX0VORChjbGVhcl9wYWdl X3JlcCkKIEVYUE9SVF9TWU1CT0xfR1BMKGNsZWFyX3BhZ2VfcmVwKQogCi1FTlRSWShjbGVhcl9w YWdlX29yaWcpCitTWU1fRlVOQ19TVEFSVChjbGVhcl9wYWdlX29yaWcpCiAJeG9ybCAgICVlYXgs JWVheAogCW1vdmwgICAkNDA5Ni82NCwlZWN4CiAJLnAyYWxpZ24gNApAQCAtMzksMTMgKzM5LDEz IEBAIEVOVFJZKGNsZWFyX3BhZ2Vfb3JpZykKIAlqbnoJLkxsb29wCiAJbm9wCiAJcmV0Ci1FTkRQ Uk9DKGNsZWFyX3BhZ2Vfb3JpZykKK1NZTV9GVU5DX0VORChjbGVhcl9wYWdlX29yaWcpCiBFWFBP UlRfU1lNQk9MX0dQTChjbGVhcl9wYWdlX29yaWcpCiAKLUVOVFJZKGNsZWFyX3BhZ2VfZXJtcykK K1NZTV9GVU5DX1NUQVJUKGNsZWFyX3BhZ2VfZXJtcykKIAltb3ZsICQ0MDk2LCVlY3gKIAl4b3Js ICVlYXgsJWVheAogCXJlcCBzdG9zYgogCXJldAotRU5EUFJPQyhjbGVhcl9wYWdlX2VybXMpCitT WU1fRlVOQ19FTkQoY2xlYXJfcGFnZV9lcm1zKQogRVhQT1JUX1NZTUJPTF9HUEwoY2xlYXJfcGFn ZV9lcm1zKQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbGliL2NtcHhjaGcxNmJfZW11LlMgYi9hcmNo L3g4Ni9saWIvY21weGNoZzE2Yl9lbXUuUwppbmRleCA5YjMzMDI0MmU3NDAuLmI2YmE2MzYwYjNj YSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbGliL2NtcHhjaGcxNmJfZW11LlMKKysrIGIvYXJjaC94 ODYvbGliL2NtcHhjaGcxNmJfZW11LlMKQEAgLTE5LDcgKzE5LDcgQEAKICAqICVyY3ggOiBoaWdo IDY0IGJpdHMgb2YgbmV3IHZhbHVlCiAgKiAlYWwgIDogT3BlcmF0aW9uIHN1Y2Nlc3NmdWwKICAq LwotRU5UUlkodGhpc19jcHVfY21weGNoZzE2Yl9lbXUpCitTWU1fRlVOQ19TVEFSVCh0aGlzX2Nw dV9jbXB4Y2hnMTZiX2VtdSkKIAogIwogIyBFbXVsYXRlICdjbXB4Y2hnMTZiICVnczooJXJzaSkn IGV4Y2VwdCB3ZSByZXR1cm4gdGhlIHJlc3VsdCBpbiAlYWwgbm90CkBAIC01MCw0ICs1MCw0IEBA IEVOVFJZKHRoaXNfY3B1X2NtcHhjaGcxNmJfZW11KQogCXhvciAlYWwsJWFsCiAJcmV0CiAKLUVO RFBST0ModGhpc19jcHVfY21weGNoZzE2Yl9lbXUpCitTWU1fRlVOQ19FTkQodGhpc19jcHVfY21w eGNoZzE2Yl9lbXUpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9saWIvY21weGNoZzhiX2VtdS5TIGIv YXJjaC94ODYvbGliL2NtcHhjaGc4Yl9lbXUuUwppbmRleCAwM2ExODZmYzA2ZWEuLjc3YWExOGRi Mzk2OCAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbGliL2NtcHhjaGc4Yl9lbXUuUworKysgYi9hcmNo L3g4Ni9saWIvY21weGNoZzhiX2VtdS5TCkBAIC0xOSw3ICsxOSw3IEBACiAgKiAlZWJ4IDogbG93 IDMyIGJpdHMgb2YgbmV3IHZhbHVlCiAgKiAlZWN4IDogaGlnaCAzMiBiaXRzIG9mIG5ldyB2YWx1 ZQogICovCi1FTlRSWShjbXB4Y2hnOGJfZW11KQorU1lNX0ZVTkNfU1RBUlQoY21weGNoZzhiX2Vt dSkKIAogIwogIyBFbXVsYXRlICdjbXB4Y2hnOGIgKCVlc2kpJyBvbiBVUCBleGNlcHQgd2UgZG9u J3QKQEAgLTQ4LDUgKzQ4LDUgQEAgRU5UUlkoY21weGNoZzhiX2VtdSkKIAlwb3BmbAogCXJldAog Ci1FTkRQUk9DKGNtcHhjaGc4Yl9lbXUpCitTWU1fRlVOQ19FTkQoY21weGNoZzhiX2VtdSkKIEVY UE9SVF9TWU1CT0woY21weGNoZzhiX2VtdSkKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2xpYi9jb3B5 X3BhZ2VfNjQuUyBiL2FyY2gveDg2L2xpYi9jb3B5X3BhZ2VfNjQuUwppbmRleCBmNTA1ODcwYmQ5 M2IuLjI0MDJkNGM0ODlkMiAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbGliL2NvcHlfcGFnZV82NC5T CisrKyBiL2FyY2gveDg2L2xpYi9jb3B5X3BhZ2VfNjQuUwpAQCAtMTMsMTIgKzEzLDEyIEBACiAg KiBwcmVmZXRjaCBkaXN0YW5jZSBiYXNlZCBvbiBTTVAvVVAuCiAgKi8KIAlBTElHTgotRU5UUlko Y29weV9wYWdlKQorU1lNX0ZVTkNfU1RBUlQoY29weV9wYWdlKQogCUFMVEVSTkFUSVZFICJqbXAg Y29weV9wYWdlX3JlZ3MiLCAiIiwgWDg2X0ZFQVRVUkVfUkVQX0dPT0QKIAltb3ZsCSQ0MDk2Lzgs ICVlY3gKIAlyZXAJbW92c3EKIAlyZXQKLUVORFBST0MoY29weV9wYWdlKQorU1lNX0ZVTkNfRU5E KGNvcHlfcGFnZSkKIEVYUE9SVF9TWU1CT0woY29weV9wYWdlKQogCiBTWU1fRlVOQ19TVEFSVF9M T0NBTChjb3B5X3BhZ2VfcmVncykKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2xpYi9jb3B5X3VzZXJf NjQuUyBiL2FyY2gveDg2L2xpYi9jb3B5X3VzZXJfNjQuUwppbmRleCAwMjBmNzVjYzhjZjYuLjVl OWU4MGMwNWE5NyAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbGliL2NvcHlfdXNlcl82NC5TCisrKyBi L2FyY2gveDg2L2xpYi9jb3B5X3VzZXJfNjQuUwpAQCAtMjksNyArMjksNyBAQAogICogT3V0cHV0 OgogICogZWF4IHVuY29waWVkIGJ5dGVzIG9yIDAgaWYgc3VjY2Vzc2Z1bC4KICAqLwotRU5UUlko Y29weV91c2VyX2dlbmVyaWNfdW5yb2xsZWQpCitTWU1fRlVOQ19TVEFSVChjb3B5X3VzZXJfZ2Vu ZXJpY191bnJvbGxlZCkKIAlBU01fU1RBQwogCWNtcGwgJDgsJWVkeAogCWpiIDIwZgkJLyogbGVz cyB0aGVuIDggYnl0ZXMsIGdvIHRvIGJ5dGUgY29weSBsb29wICovCkBAIC0xMTIsNyArMTEyLDcg QEAgRU5UUlkoY29weV91c2VyX2dlbmVyaWNfdW5yb2xsZWQpCiAJX0FTTV9FWFRBQkxFKDE5Yiw0 MGIpCiAJX0FTTV9FWFRBQkxFKDIxYiw1MGIpCiAJX0FTTV9FWFRBQkxFKDIyYiw1MGIpCi1FTkRQ Uk9DKGNvcHlfdXNlcl9nZW5lcmljX3Vucm9sbGVkKQorU1lNX0ZVTkNfRU5EKGNvcHlfdXNlcl9n ZW5lcmljX3Vucm9sbGVkKQogRVhQT1JUX1NZTUJPTChjb3B5X3VzZXJfZ2VuZXJpY191bnJvbGxl ZCkKIAogLyogU29tZSBDUFVzIHJ1biBmYXN0ZXIgdXNpbmcgdGhlIHN0cmluZyBjb3B5IGluc3Ry dWN0aW9ucy4KQEAgLTEzMyw3ICsxMzMsNyBAQCBFWFBPUlRfU1lNQk9MKGNvcHlfdXNlcl9nZW5l cmljX3Vucm9sbGVkKQogICogT3V0cHV0OgogICogZWF4IHVuY29waWVkIGJ5dGVzIG9yIDAgaWYg c3VjY2Vzc2Z1bC4KICAqLwotRU5UUlkoY29weV91c2VyX2dlbmVyaWNfc3RyaW5nKQorU1lNX0ZV TkNfU1RBUlQoY29weV91c2VyX2dlbmVyaWNfc3RyaW5nKQogCUFTTV9TVEFDCiAJY21wbCAkOCwl ZWR4CiAJamIgMmYJCS8qIGxlc3MgdGhhbiA4IGJ5dGVzLCBnbyB0byBieXRlIGNvcHkgbG9vcCAq LwpAQCAtMTU4LDcgKzE1OCw3IEBAIEVOVFJZKGNvcHlfdXNlcl9nZW5lcmljX3N0cmluZykKIAog CV9BU01fRVhUQUJMRSgxYiwxMWIpCiAJX0FTTV9FWFRBQkxFKDNiLDEyYikKLUVORFBST0MoY29w eV91c2VyX2dlbmVyaWNfc3RyaW5nKQorU1lNX0ZVTkNfRU5EKGNvcHlfdXNlcl9nZW5lcmljX3N0 cmluZykKIEVYUE9SVF9TWU1CT0woY29weV91c2VyX2dlbmVyaWNfc3RyaW5nKQogCiAvKgpAQCAt MTczLDcgKzE3Myw3IEBAIEVYUE9SVF9TWU1CT0woY29weV91c2VyX2dlbmVyaWNfc3RyaW5nKQog ICogT3V0cHV0OgogICogZWF4IHVuY29waWVkIGJ5dGVzIG9yIDAgaWYgc3VjY2Vzc2Z1bC4KICAq LwotRU5UUlkoY29weV91c2VyX2VuaGFuY2VkX2Zhc3Rfc3RyaW5nKQorU1lNX0ZVTkNfU1RBUlQo Y29weV91c2VyX2VuaGFuY2VkX2Zhc3Rfc3RyaW5nKQogCUFTTV9TVEFDCiAJY21wbCAkNjQsJWVk eAogCWpiIC5MX2NvcHlfc2hvcnRfc3RyaW5nCS8qIGxlc3MgdGhlbiA2NCBieXRlcywgYXZvaWQg dGhlIGNvc3RseSAncmVwJyAqLwpAQCAtMTkwLDcgKzE5MCw3IEBAIEVOVFJZKGNvcHlfdXNlcl9l bmhhbmNlZF9mYXN0X3N0cmluZykKIAkucHJldmlvdXMKIAogCV9BU01fRVhUQUJMRSgxYiwxMmIp Ci1FTkRQUk9DKGNvcHlfdXNlcl9lbmhhbmNlZF9mYXN0X3N0cmluZykKK1NZTV9GVU5DX0VORChj b3B5X3VzZXJfZW5oYW5jZWRfZmFzdF9zdHJpbmcpCiBFWFBPUlRfU1lNQk9MKGNvcHlfdXNlcl9l bmhhbmNlZF9mYXN0X3N0cmluZykKIAogLyoKQEAgLTIwMiw3ICsyMDIsNyBAQCBFWFBPUlRfU1lN Qk9MKGNvcHlfdXNlcl9lbmhhbmNlZF9mYXN0X3N0cmluZykKICAqICAtIFJlcXVpcmUgOC1ieXRl IGFsaWdubWVudCB3aGVuIHNpemUgaXMgOCBieXRlcyBvciBsYXJnZXIuCiAgKiAgLSBSZXF1aXJl IDQtYnl0ZSBhbGlnbm1lbnQgd2hlbiBzaXplIGlzIDQgYnl0ZXMuCiAgKi8KLUVOVFJZKF9fY29w eV91c2VyX25vY2FjaGUpCitTWU1fRlVOQ19TVEFSVChfX2NvcHlfdXNlcl9ub2NhY2hlKQogCUFT TV9TVEFDCiAKIAkvKiBJZiBzaXplIGlzIGxlc3MgdGhhbiA4IGJ5dGVzLCBnbyB0byA0LWJ5dGUg Y29weSAqLwpAQCAtMzQxLDUgKzM0MSw1IEBAIEVOVFJZKF9fY29weV91c2VyX25vY2FjaGUpCiAJ X0FTTV9FWFRBQkxFKDMxYiwuTF9maXh1cF80Yl9jb3B5KQogCV9BU01fRVhUQUJMRSg0MGIsLkxf Zml4dXBfMWJfY29weSkKIAlfQVNNX0VYVEFCTEUoNDFiLC5MX2ZpeHVwXzFiX2NvcHkpCi1FTkRQ Uk9DKF9fY29weV91c2VyX25vY2FjaGUpCitTWU1fRlVOQ19FTkQoX19jb3B5X3VzZXJfbm9jYWNo ZSkKIEVYUE9SVF9TWU1CT0woX19jb3B5X3VzZXJfbm9jYWNoZSkKZGlmZiAtLWdpdCBhL2FyY2gv eDg2L2xpYi9jc3VtLWNvcHlfNjQuUyBiL2FyY2gveDg2L2xpYi9jc3VtLWNvcHlfNjQuUwppbmRl eCA0NWE1M2RmZTE4NTkuLjUyM2U0OTY0MDc4ZiAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbGliL2Nz dW0tY29weV82NC5TCisrKyBiL2FyY2gveDg2L2xpYi9jc3VtLWNvcHlfNjQuUwpAQCAtNDUsNyAr NDUsNyBAQAogCS5lbmRtCiAKIAotRU5UUlkoY3N1bV9wYXJ0aWFsX2NvcHlfZ2VuZXJpYykKK1NZ TV9GVU5DX1NUQVJUKGNzdW1fcGFydGlhbF9jb3B5X2dlbmVyaWMpCiAJY21wbAkkMyo2NCwgJWVk eAogCWpsZQkuTGlnbm9yZQogCkBAIC0yMjEsNCArMjIxLDQgQEAgRU5UUlkoY3N1bV9wYXJ0aWFs X2NvcHlfZ2VuZXJpYykKIAlqeiAgIC5MZW5kZQogCW1vdmwgJC1FRkFVTFQsICglcmF4KQogCWpt cCAuTGVuZGUKLUVORFBST0MoY3N1bV9wYXJ0aWFsX2NvcHlfZ2VuZXJpYykKK1NZTV9GVU5DX0VO RChjc3VtX3BhcnRpYWxfY29weV9nZW5lcmljKQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbGliL2dl dHVzZXIuUyBiL2FyY2gveDg2L2xpYi9nZXR1c2VyLlMKaW5kZXggYTVkN2ZlN2ZlNDAxLi43MWRk OTY2NzYxOTQgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2xpYi9nZXR1c2VyLlMKKysrIGIvYXJjaC94 ODYvbGliL2dldHVzZXIuUwpAQCAtMzYsNyArMzYsNyBAQAogI2luY2x1ZGUgPGFzbS9leHBvcnQu aD4KIAogCS50ZXh0Ci1FTlRSWShfX2dldF91c2VyXzEpCitTWU1fRlVOQ19TVEFSVChfX2dldF91 c2VyXzEpCiAJbW92IFBFUl9DUFVfVkFSKGN1cnJlbnRfdGFzayksICVfQVNNX0RYCiAJY21wIFRB U0tfYWRkcl9saW1pdCglX0FTTV9EWCksJV9BU01fQVgKIAlqYWUgYmFkX2dldF91c2VyCkBAIC00 NywxMCArNDcsMTAgQEAgRU5UUlkoX19nZXRfdXNlcl8xKQogCXhvciAlZWF4LCVlYXgKIAlBU01f Q0xBQwogCXJldAotRU5EUFJPQyhfX2dldF91c2VyXzEpCitTWU1fRlVOQ19FTkQoX19nZXRfdXNl cl8xKQogRVhQT1JUX1NZTUJPTChfX2dldF91c2VyXzEpCiAKLUVOVFJZKF9fZ2V0X3VzZXJfMikK K1NZTV9GVU5DX1NUQVJUKF9fZ2V0X3VzZXJfMikKIAlhZGQgJDEsJV9BU01fQVgKIAlqYyBiYWRf Z2V0X3VzZXIKIAltb3YgUEVSX0NQVV9WQVIoY3VycmVudF90YXNrKSwgJV9BU01fRFgKQEAgLTYz LDEwICs2MywxMCBAQCBFTlRSWShfX2dldF91c2VyXzIpCiAJeG9yICVlYXgsJWVheAogCUFTTV9D TEFDCiAJcmV0Ci1FTkRQUk9DKF9fZ2V0X3VzZXJfMikKK1NZTV9GVU5DX0VORChfX2dldF91c2Vy XzIpCiBFWFBPUlRfU1lNQk9MKF9fZ2V0X3VzZXJfMikKIAotRU5UUlkoX19nZXRfdXNlcl80KQor U1lNX0ZVTkNfU1RBUlQoX19nZXRfdXNlcl80KQogCWFkZCAkMywlX0FTTV9BWAogCWpjIGJhZF9n ZXRfdXNlcgogCW1vdiBQRVJfQ1BVX1ZBUihjdXJyZW50X3Rhc2spLCAlX0FTTV9EWApAQCAtNzks MTAgKzc5LDEwIEBAIEVOVFJZKF9fZ2V0X3VzZXJfNCkKIAl4b3IgJWVheCwlZWF4CiAJQVNNX0NM QUMKIAlyZXQKLUVORFBST0MoX19nZXRfdXNlcl80KQorU1lNX0ZVTkNfRU5EKF9fZ2V0X3VzZXJf NCkKIEVYUE9SVF9TWU1CT0woX19nZXRfdXNlcl80KQogCi1FTlRSWShfX2dldF91c2VyXzgpCitT WU1fRlVOQ19TVEFSVChfX2dldF91c2VyXzgpCiAjaWZkZWYgQ09ORklHX1g4Nl82NAogCWFkZCAk NywlX0FTTV9BWAogCWpjIGJhZF9nZXRfdXNlcgpAQCAtMTExLDcgKzExMSw3IEBAIEVOVFJZKF9f Z2V0X3VzZXJfOCkKIAlBU01fQ0xBQwogCXJldAogI2VuZGlmCi1FTkRQUk9DKF9fZ2V0X3VzZXJf OCkKK1NZTV9GVU5DX0VORChfX2dldF91c2VyXzgpCiBFWFBPUlRfU1lNQk9MKF9fZ2V0X3VzZXJf OCkKIAogCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9saWIvaHdlaWdodC5TIGIvYXJjaC94ODYvbGli L2h3ZWlnaHQuUwppbmRleCBhMTRmOTkzOWMzNjUuLmRiZjhjYzk3YjdmNSAxMDA2NDQKLS0tIGEv YXJjaC94ODYvbGliL2h3ZWlnaHQuUworKysgYi9hcmNoL3g4Ni9saWIvaHdlaWdodC5TCkBAIC04 LDcgKzgsNyBAQAogICogdW5zaWduZWQgaW50IF9fc3dfaHdlaWdodDMyKHVuc2lnbmVkIGludCB3 KQogICogJXJkaTogdwogICovCi1FTlRSWShfX3N3X2h3ZWlnaHQzMikKK1NZTV9GVU5DX1NUQVJU KF9fc3dfaHdlaWdodDMyKQogCiAjaWZkZWYgQ09ORklHX1g4Nl82NAogCW1vdmwgJWVkaSwgJWVh eAkJCQkjIHcKQEAgLTMzLDEwICszMywxMCBAQCBFTlRSWShfX3N3X2h3ZWlnaHQzMikKIAlzaHJs ICQyNCwgJWVheAkJCQkjIHcgPSB3X3RtcCA+PiAyNAogCV9fQVNNX1NJWkUocG9wLCkgJV9fQVNN X1JFRyhkeCkKIAlyZXQKLUVORFBST0MoX19zd19od2VpZ2h0MzIpCitTWU1fRlVOQ19FTkQoX19z d19od2VpZ2h0MzIpCiBFWFBPUlRfU1lNQk9MKF9fc3dfaHdlaWdodDMyKQogCi1FTlRSWShfX3N3 X2h3ZWlnaHQ2NCkKK1NZTV9GVU5DX1NUQVJUKF9fc3dfaHdlaWdodDY0KQogI2lmZGVmIENPTkZJ R19YODZfNjQKIAlwdXNocSAgICVyZGkKIAlwdXNocSAgICVyZHgKQEAgLTc5LDUgKzc5LDUgQEAg RU5UUlkoX19zd19od2VpZ2h0NjQpCiAJcG9wbCAgICAlZWN4CiAJcmV0CiAjZW5kaWYKLUVORFBS T0MoX19zd19od2VpZ2h0NjQpCitTWU1fRlVOQ19FTkQoX19zd19od2VpZ2h0NjQpCiBFWFBPUlRf U1lNQk9MKF9fc3dfaHdlaWdodDY0KQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbGliL2lvbWFwX2Nv cHlfNjQuUyBiL2FyY2gveDg2L2xpYi9pb21hcF9jb3B5XzY0LlMKaW5kZXggMzMxNDdmZWYzNDUy Li4yMjQ2ZmJmMzJmYTggMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2xpYi9pb21hcF9jb3B5XzY0LlMK KysrIGIvYXJjaC94ODYvbGliL2lvbWFwX2NvcHlfNjQuUwpAQCAtMjAsOCArMjAsOCBAQAogLyoK ICAqIG92ZXJyaWRlIGdlbmVyaWMgdmVyc2lvbiBpbiBsaWIvaW9tYXBfY29weS5jCiAgKi8KLUVO VFJZKF9faW93cml0ZTMyX2NvcHkpCitTWU1fRlVOQ19TVEFSVChfX2lvd3JpdGUzMl9jb3B5KQog CW1vdmwgJWVkeCwlZWN4CiAJcmVwIG1vdnNkCiAJcmV0Ci1FTkRQUk9DKF9faW93cml0ZTMyX2Nv cHkpCitTWU1fRlVOQ19FTkQoX19pb3dyaXRlMzJfY29weSkKZGlmZiAtLWdpdCBhL2FyY2gveDg2 L2xpYi9tZW1jcHlfNjQuUyBiL2FyY2gveDg2L2xpYi9tZW1jcHlfNjQuUwppbmRleCA3Mjg3MDNj NDdkNTguLjliZWM2M2UyMTJhOCAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbGliL21lbWNweV82NC5T CisrKyBiL2FyY2gveDg2L2xpYi9tZW1jcHlfNjQuUwpAQCAtMTg4LDcgKzE4OCw3IEBAIFNZTV9G VU5DX0VORChtZW1jcHlfb3JpZykKICAqIE5vdGUgdGhhdCB3ZSBvbmx5IGNhdGNoIG1hY2hpbmUg Y2hlY2tzIHdoZW4gcmVhZGluZyB0aGUgc291cmNlIGFkZHJlc3Nlcy4KICAqIFdyaXRlcyB0byB0 YXJnZXQgYXJlIHBvc3RlZCBhbmQgZG9uJ3QgZ2VuZXJhdGUgbWFjaGluZSBjaGVja3MuCiAgKi8K LUVOVFJZKG1lbWNweV9tY3NhZmVfdW5yb2xsZWQpCitTWU1fRlVOQ19TVEFSVChtZW1jcHlfbWNz YWZlX3Vucm9sbGVkKQogCWNtcGwgJDgsICVlZHgKIAkvKiBMZXNzIHRoYW4gOCBieXRlcz8gR28g dG8gYnl0ZSBjb3B5IGxvb3AgKi8KIAlqYiAuTF9ub193aG9sZV93b3JkcwpAQCAtMjc2LDcgKzI3 Niw3IEBAIEVOVFJZKG1lbWNweV9tY3NhZmVfdW5yb2xsZWQpCiAuTF9kb25lX21lbWNweV90cmFw OgogCXhvcnEgJXJheCwgJXJheAogCXJldAotRU5EUFJPQyhtZW1jcHlfbWNzYWZlX3Vucm9sbGVk KQorU1lNX0ZVTkNfRU5EKG1lbWNweV9tY3NhZmVfdW5yb2xsZWQpCiBFWFBPUlRfU1lNQk9MX0dQ TChtZW1jcHlfbWNzYWZlX3Vucm9sbGVkKQogCiAJLnNlY3Rpb24gLmZpeHVwLCAiYXgiCmRpZmYg LS1naXQgYS9hcmNoL3g4Ni9saWIvbWVtbW92ZV82NC5TIGIvYXJjaC94ODYvbGliL21lbW1vdmVf NjQuUwppbmRleCA1MGMxNjQ4MzExYjMuLjMzNzgzMGQ3YTU5YyAxMDA2NDQKLS0tIGEvYXJjaC94 ODYvbGliL21lbW1vdmVfNjQuUworKysgYi9hcmNoL3g4Ni9saWIvbWVtbW92ZV82NC5TCkBAIC0y Nyw3ICsyNyw3IEBACiAud2VhayBtZW1tb3ZlCiAKIFNZTV9GVU5DX1NUQVJUX0FMSUFTKG1lbW1v dmUpCi1FTlRSWShfX21lbW1vdmUpCitTWU1fRlVOQ19TVEFSVChfX21lbW1vdmUpCiAKIAkvKiBI YW5kbGUgbW9yZSAzMiBieXRlcyBpbiBsb29wICovCiAJbW92ICVyZGksICVyYXgKQEAgLTIwNyw3 ICsyMDcsNyBAQCBFTlRSWShfX21lbW1vdmUpCiAJbW92YiAlcjExYiwgKCVyZGkpCiAxMzoKIAly ZXRxCi1FTkRQUk9DKF9fbWVtbW92ZSkKK1NZTV9GVU5DX0VORChfX21lbW1vdmUpCiBTWU1fRlVO Q19FTkRfQUxJQVMobWVtbW92ZSkKIEVYUE9SVF9TWU1CT0woX19tZW1tb3ZlKQogRVhQT1JUX1NZ TUJPTChtZW1tb3ZlKQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbGliL21lbXNldF82NC5TIGIvYXJj aC94ODYvbGliL21lbXNldF82NC5TCmluZGV4IDU2NGFiZjllY2VkYi4uOWZmMTVlZTQwNGE0IDEw MDY0NAotLS0gYS9hcmNoL3g4Ni9saWIvbWVtc2V0XzY0LlMKKysrIGIvYXJjaC94ODYvbGliL21l bXNldF82NC5TCkBAIC0yMCw3ICsyMCw3IEBACiAgKiByYXggICBvcmlnaW5hbCBkZXN0aW5hdGlv bgogICovCiBTWU1fRlVOQ19TVEFSVF9BTElBUyhtZW1zZXQpCi1FTlRSWShfX21lbXNldCkKK1NZ TV9GVU5DX1NUQVJUKF9fbWVtc2V0KQogCS8qCiAJICogU29tZSBDUFVzIHN1cHBvcnQgZW5oYW5j ZWQgUkVQIE1PVlNCL1NUT1NCIGZlYXR1cmUuIEl0IGlzIHJlY29tbWVuZGVkCiAJICogdG8gdXNl IGl0IHdoZW4gcG9zc2libGUuIElmIG5vdCBhdmFpbGFibGUsIHVzZSBmYXN0IHN0cmluZyBpbnN0 cnVjdGlvbnMuCkBAIC00Myw3ICs0Myw3IEBAIEVOVFJZKF9fbWVtc2V0KQogCXJlcCBzdG9zYgog CW1vdnEgJXI5LCVyYXgKIAlyZXQKLUVORFBST0MoX19tZW1zZXQpCitTWU1fRlVOQ19FTkQoX19t ZW1zZXQpCiBTWU1fRlVOQ19FTkRfQUxJQVMobWVtc2V0KQogRVhQT1JUX1NZTUJPTChtZW1zZXQp CiBFWFBPUlRfU1lNQk9MKF9fbWVtc2V0KQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbGliL21zci1y ZWcuUyBiL2FyY2gveDg2L2xpYi9tc3ItcmVnLlMKaW5kZXggZWQzM2NiYWIzOTU4Li5hMmI5Y2Fh NTI3NGMgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2xpYi9tc3ItcmVnLlMKKysrIGIvYXJjaC94ODYv bGliL21zci1yZWcuUwpAQCAtMTIsNyArMTIsNyBAQAogICoKICAqLwogLm1hY3JvIG9wX3NhZmVf cmVncyBvcAotRU5UUlkoXG9wXCgpX3NhZmVfcmVncykKK1NZTV9GVU5DX1NUQVJUKFxvcFwoKV9z YWZlX3JlZ3MpCiAJcHVzaHEgJXJieAogCXB1c2hxICVyMTIKIAltb3ZxCSVyZGksICVyMTAJLyog U2F2ZSBwb2ludGVyICovCkBAIC00MSwxMyArNDEsMTMgQEAgRU5UUlkoXG9wXCgpX3NhZmVfcmVn cykKIAlqbXAgICAgIDJiCiAKIAlfQVNNX0VYVEFCTEUoMWIsIDNiKQotRU5EUFJPQyhcb3BcKClf c2FmZV9yZWdzKQorU1lNX0ZVTkNfRU5EKFxvcFwoKV9zYWZlX3JlZ3MpCiAuZW5kbQogCiAjZWxz ZSAvKiBYODZfMzIgKi8KIAogLm1hY3JvIG9wX3NhZmVfcmVncyBvcAotRU5UUlkoXG9wXCgpX3Nh ZmVfcmVncykKK1NZTV9GVU5DX1NUQVJUKFxvcFwoKV9zYWZlX3JlZ3MpCiAJcHVzaGwgJWVieAog CXB1c2hsICVlYnAKIAlwdXNobCAlZXNpCkBAIC04Myw3ICs4Myw3IEBAIEVOVFJZKFxvcFwoKV9z YWZlX3JlZ3MpCiAJam1wICAgICAyYgogCiAJX0FTTV9FWFRBQkxFKDFiLCAzYikKLUVORFBST0Mo XG9wXCgpX3NhZmVfcmVncykKK1NZTV9GVU5DX0VORChcb3BcKClfc2FmZV9yZWdzKQogLmVuZG0K IAogI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9saWIvcHV0dXNlci5TIGIvYXJjaC94ODYv bGliL3B1dHVzZXIuUwppbmRleCA4MjM0ZDg1NTkzODUuLjllYzBmMzRhODU0MSAxMDA2NDQKLS0t IGEvYXJjaC94ODYvbGliL3B1dHVzZXIuUworKysgYi9hcmNoL3g4Ni9saWIvcHV0dXNlci5TCkBA IC0zNiw3ICszNiw3IEBACiAJCXJldAogCiAudGV4dAotRU5UUlkoX19wdXRfdXNlcl8xKQorU1lN X0ZVTkNfU1RBUlQoX19wdXRfdXNlcl8xKQogCUVOVEVSCiAJY21wIFRBU0tfYWRkcl9saW1pdCgl X0FTTV9CWCksJV9BU01fQ1gKIAlqYWUgYmFkX3B1dF91c2VyCkBAIC00NCwxMCArNDQsMTAgQEAg RU5UUlkoX19wdXRfdXNlcl8xKQogMToJbW92YiAlYWwsKCVfQVNNX0NYKQogCXhvciAlZWF4LCVl YXgKIAlFWElUCi1FTkRQUk9DKF9fcHV0X3VzZXJfMSkKK1NZTV9GVU5DX0VORChfX3B1dF91c2Vy XzEpCiBFWFBPUlRfU1lNQk9MKF9fcHV0X3VzZXJfMSkKIAotRU5UUlkoX19wdXRfdXNlcl8yKQor U1lNX0ZVTkNfU1RBUlQoX19wdXRfdXNlcl8yKQogCUVOVEVSCiAJbW92IFRBU0tfYWRkcl9saW1p dCglX0FTTV9CWCksJV9BU01fQlgKIAlzdWIgJDEsJV9BU01fQlgKQEAgLTU3LDEwICs1NywxMCBA QCBFTlRSWShfX3B1dF91c2VyXzIpCiAyOgltb3Z3ICVheCwoJV9BU01fQ1gpCiAJeG9yICVlYXgs JWVheAogCUVYSVQKLUVORFBST0MoX19wdXRfdXNlcl8yKQorU1lNX0ZVTkNfRU5EKF9fcHV0X3Vz ZXJfMikKIEVYUE9SVF9TWU1CT0woX19wdXRfdXNlcl8yKQogCi1FTlRSWShfX3B1dF91c2VyXzQp CitTWU1fRlVOQ19TVEFSVChfX3B1dF91c2VyXzQpCiAJRU5URVIKIAltb3YgVEFTS19hZGRyX2xp bWl0KCVfQVNNX0JYKSwlX0FTTV9CWAogCXN1YiAkMywlX0FTTV9CWApAQCAtNzAsMTAgKzcwLDEw IEBAIEVOVFJZKF9fcHV0X3VzZXJfNCkKIDM6CW1vdmwgJWVheCwoJV9BU01fQ1gpCiAJeG9yICVl YXgsJWVheAogCUVYSVQKLUVORFBST0MoX19wdXRfdXNlcl80KQorU1lNX0ZVTkNfRU5EKF9fcHV0 X3VzZXJfNCkKIEVYUE9SVF9TWU1CT0woX19wdXRfdXNlcl80KQogCi1FTlRSWShfX3B1dF91c2Vy XzgpCitTWU1fRlVOQ19TVEFSVChfX3B1dF91c2VyXzgpCiAJRU5URVIKIAltb3YgVEFTS19hZGRy X2xpbWl0KCVfQVNNX0JYKSwlX0FTTV9CWAogCXN1YiAkNywlX0FTTV9CWApAQCAtODYsNyArODYs NyBAQCBFTlRSWShfX3B1dF91c2VyXzgpCiAjZW5kaWYKIAl4b3IgJWVheCwlZWF4CiAJRVhJVAot RU5EUFJPQyhfX3B1dF91c2VyXzgpCitTWU1fRlVOQ19FTkQoX19wdXRfdXNlcl84KQogRVhQT1JU X1NZTUJPTChfX3B1dF91c2VyXzgpCiAKIFNZTV9DT0RFX1NUQVJUX0xPQ0FMKGJhZF9wdXRfdXNl cikKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2xpYi9yZXRwb2xpbmUuUyBiL2FyY2gveDg2L2xpYi9y ZXRwb2xpbmUuUwppbmRleCBjOTA5OTYxZTY3OGEuLjM2M2VjMTMyZGY3ZSAxMDA2NDQKLS0tIGEv YXJjaC94ODYvbGliL3JldHBvbGluZS5TCisrKyBiL2FyY2gveDg2L2xpYi9yZXRwb2xpbmUuUwpA QCAtMTEsMTEgKzExLDExIEBACiAubWFjcm8gVEhVTksgcmVnCiAJLnNlY3Rpb24gLnRleHQuX194 ODYuaW5kaXJlY3RfdGh1bmsKIAotRU5UUlkoX194ODZfaW5kaXJlY3RfdGh1bmtfXHJlZykKK1NZ TV9GVU5DX1NUQVJUKF9feDg2X2luZGlyZWN0X3RodW5rX1xyZWcpCiAJQ0ZJX1NUQVJUUFJPQwog CUpNUF9OT1NQRUMgJVxyZWcKIAlDRklfRU5EUFJPQwotRU5EUFJPQyhfX3g4Nl9pbmRpcmVjdF90 aHVua19ccmVnKQorU1lNX0ZVTkNfRU5EKF9feDg2X2luZGlyZWN0X3RodW5rX1xyZWcpCiAuZW5k bQogCiAvKgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbGliL3J3c2VtLlMgYi9hcmNoL3g4Ni9saWIv cndzZW0uUwppbmRleCBkYzJhYjZlYTY3NjguLmRjZDVjOTk3YjA2OCAxMDA2NDQKLS0tIGEvYXJj aC94ODYvbGliL3J3c2VtLlMKKysrIGIvYXJjaC94ODYvbGliL3J3c2VtLlMKQEAgLTg2LDcgKzg2 LDcgQEAKICNlbmRpZgogCiAvKiBGaXggdXAgc3BlY2lhbCBjYWxsaW5nIGNvbnZlbnRpb25zICov Ci1FTlRSWShjYWxsX3J3c2VtX2Rvd25fcmVhZF9mYWlsZWQpCitTWU1fRlVOQ19TVEFSVChjYWxs X3J3c2VtX2Rvd25fcmVhZF9mYWlsZWQpCiAJRlJBTUVfQkVHSU4KIAlzYXZlX2NvbW1vbl9yZWdz CiAJX19BU01fU0laRShwdXNoLCkgJV9fQVNNX1JFRyhkeCkKQEAgLTk2LDkgKzk2LDkgQEAgRU5U UlkoY2FsbF9yd3NlbV9kb3duX3JlYWRfZmFpbGVkKQogCXJlc3RvcmVfY29tbW9uX3JlZ3MKIAlG UkFNRV9FTkQKIAlyZXQKLUVORFBST0MoY2FsbF9yd3NlbV9kb3duX3JlYWRfZmFpbGVkKQorU1lN X0ZVTkNfRU5EKGNhbGxfcndzZW1fZG93bl9yZWFkX2ZhaWxlZCkKIAotRU5UUlkoY2FsbF9yd3Nl bV9kb3duX3JlYWRfZmFpbGVkX2tpbGxhYmxlKQorU1lNX0ZVTkNfU1RBUlQoY2FsbF9yd3NlbV9k b3duX3JlYWRfZmFpbGVkX2tpbGxhYmxlKQogCUZSQU1FX0JFR0lOCiAJc2F2ZV9jb21tb25fcmVn cwogCV9fQVNNX1NJWkUocHVzaCwpICVfX0FTTV9SRUcoZHgpCkBAIC0xMDgsOSArMTA4LDkgQEAg RU5UUlkoY2FsbF9yd3NlbV9kb3duX3JlYWRfZmFpbGVkX2tpbGxhYmxlKQogCXJlc3RvcmVfY29t bW9uX3JlZ3MKIAlGUkFNRV9FTkQKIAlyZXQKLUVORFBST0MoY2FsbF9yd3NlbV9kb3duX3JlYWRf ZmFpbGVkX2tpbGxhYmxlKQorU1lNX0ZVTkNfRU5EKGNhbGxfcndzZW1fZG93bl9yZWFkX2ZhaWxl ZF9raWxsYWJsZSkKIAotRU5UUlkoY2FsbF9yd3NlbV9kb3duX3dyaXRlX2ZhaWxlZCkKK1NZTV9G VU5DX1NUQVJUKGNhbGxfcndzZW1fZG93bl93cml0ZV9mYWlsZWQpCiAJRlJBTUVfQkVHSU4KIAlz YXZlX2NvbW1vbl9yZWdzCiAJbW92cSAlcmF4LCVyZGkKQEAgLTExOCw5ICsxMTgsOSBAQCBFTlRS WShjYWxsX3J3c2VtX2Rvd25fd3JpdGVfZmFpbGVkKQogCXJlc3RvcmVfY29tbW9uX3JlZ3MKIAlG UkFNRV9FTkQKIAlyZXQKLUVORFBST0MoY2FsbF9yd3NlbV9kb3duX3dyaXRlX2ZhaWxlZCkKK1NZ TV9GVU5DX0VORChjYWxsX3J3c2VtX2Rvd25fd3JpdGVfZmFpbGVkKQogCi1FTlRSWShjYWxsX3J3 c2VtX2Rvd25fd3JpdGVfZmFpbGVkX2tpbGxhYmxlKQorU1lNX0ZVTkNfU1RBUlQoY2FsbF9yd3Nl bV9kb3duX3dyaXRlX2ZhaWxlZF9raWxsYWJsZSkKIAlGUkFNRV9CRUdJTgogCXNhdmVfY29tbW9u X3JlZ3MKIAltb3ZxICVyYXgsJXJkaQpAQCAtMTI4LDkgKzEyOCw5IEBAIEVOVFJZKGNhbGxfcndz ZW1fZG93bl93cml0ZV9mYWlsZWRfa2lsbGFibGUpCiAJcmVzdG9yZV9jb21tb25fcmVncwogCUZS QU1FX0VORAogCXJldAotRU5EUFJPQyhjYWxsX3J3c2VtX2Rvd25fd3JpdGVfZmFpbGVkX2tpbGxh YmxlKQorU1lNX0ZVTkNfRU5EKGNhbGxfcndzZW1fZG93bl93cml0ZV9mYWlsZWRfa2lsbGFibGUp CiAKLUVOVFJZKGNhbGxfcndzZW1fd2FrZSkKK1NZTV9GVU5DX1NUQVJUKGNhbGxfcndzZW1fd2Fr ZSkKIAlGUkFNRV9CRUdJTgogCS8qIGRvIG5vdGhpbmcgaWYgc3RpbGwgb3V0c3RhbmRpbmcgYWN0 aXZlIHJlYWRlcnMgKi8KIAlfX0FTTV9IQUxGX1NJWkUoZGVjKSAlX19BU01fSEFMRl9SRUcoZHgp CkBAIC0xNDEsOSArMTQxLDkgQEAgRU5UUlkoY2FsbF9yd3NlbV93YWtlKQogCXJlc3RvcmVfY29t bW9uX3JlZ3MKIDE6CUZSQU1FX0VORAogCXJldAotRU5EUFJPQyhjYWxsX3J3c2VtX3dha2UpCitT WU1fRlVOQ19FTkQoY2FsbF9yd3NlbV93YWtlKQogCi1FTlRSWShjYWxsX3J3c2VtX2Rvd25ncmFk ZV93YWtlKQorU1lNX0ZVTkNfU1RBUlQoY2FsbF9yd3NlbV9kb3duZ3JhZGVfd2FrZSkKIAlGUkFN RV9CRUdJTgogCXNhdmVfY29tbW9uX3JlZ3MKIAlfX0FTTV9TSVpFKHB1c2gsKSAlX19BU01fUkVH KGR4KQpAQCAtMTUzLDQgKzE1Myw0IEBAIEVOVFJZKGNhbGxfcndzZW1fZG93bmdyYWRlX3dha2Up CiAJcmVzdG9yZV9jb21tb25fcmVncwogCUZSQU1FX0VORAogCXJldAotRU5EUFJPQyhjYWxsX3J3 c2VtX2Rvd25ncmFkZV93YWtlKQorU1lNX0ZVTkNfRU5EKGNhbGxfcndzZW1fZG93bmdyYWRlX3dh a2UpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tbS9tZW1fZW5jcnlwdF9ib290LlMgYi9hcmNoL3g4 Ni9tbS9tZW1fZW5jcnlwdF9ib290LlMKaW5kZXggNDBhNjA4NTA2M2Q2Li4yYzBhNmZiZDRmZTgg MTAwNjQ0Ci0tLSBhL2FyY2gveDg2L21tL21lbV9lbmNyeXB0X2Jvb3QuUworKysgYi9hcmNoL3g4 Ni9tbS9tZW1fZW5jcnlwdF9ib290LlMKQEAgLTE5LDcgKzE5LDcgQEAKIAogCS50ZXh0CiAJLmNv ZGU2NAotRU5UUlkoc21lX2VuY3J5cHRfZXhlY3V0ZSkKK1NZTV9GVU5DX1NUQVJUKHNtZV9lbmNy eXB0X2V4ZWN1dGUpCiAKIAkvKgogCSAqIEVudHJ5IHBhcmFtZXRlcnM6CkBAIC02OSw5ICs2OSw5 IEBAIEVOVFJZKHNtZV9lbmNyeXB0X2V4ZWN1dGUpCiAJcG9wCSVyYnAKIAogCXJldAotRU5EUFJP QyhzbWVfZW5jcnlwdF9leGVjdXRlKQorU1lNX0ZVTkNfRU5EKHNtZV9lbmNyeXB0X2V4ZWN1dGUp CiAKLUVOVFJZKF9fZW5jX2NvcHkpCitTWU1fRlVOQ19TVEFSVChfX2VuY19jb3B5KQogLyoKICAq IFJvdXRpbmUgdXNlZCB0byBlbmNyeXB0IG1lbW9yeSBpbiBwbGFjZS4KICAqICAgVGhpcyByb3V0 aW5lIG11c3QgYmUgcnVuIG91dHNpZGUgb2YgdGhlIGtlcm5lbCBwcm9wZXIgc2luY2UKQEAgLTE1 Niw0ICsxNTYsNCBAQCBFTlRSWShfX2VuY19jb3B5KQogCiAJcmV0CiAuTF9fZW5jX2NvcHlfZW5k OgotRU5EUFJPQyhfX2VuY19jb3B5KQorU1lNX0ZVTkNfRU5EKF9fZW5jX2NvcHkpCmRpZmYgLS1n aXQgYS9hcmNoL3g4Ni9wbGF0Zm9ybS9lZmkvZWZpX3N0dWJfNjQuUyBiL2FyY2gveDg2L3BsYXRm b3JtL2VmaS9lZmlfc3R1Yl82NC5TCmluZGV4IDc0NjI4ZWM3OGYyOS4uYjFkMjMxM2ZlM2JmIDEw MDY0NAotLS0gYS9hcmNoL3g4Ni9wbGF0Zm9ybS9lZmkvZWZpX3N0dWJfNjQuUworKysgYi9hcmNo L3g4Ni9wbGF0Zm9ybS9lZmkvZWZpX3N0dWJfNjQuUwpAQCAtMzksNyArMzksNyBAQAogCW1vdiAl cnNpLCAlY3IwOwkJCVwKIAltb3YgKCVyc3ApLCAlcnNwCiAKLUVOVFJZKGVmaV9jYWxsKQorU1lN X0ZVTkNfU1RBUlQoZWZpX2NhbGwpCiAJcHVzaHEgJXJicAogCW1vdnEgJXJzcCwgJXJicAogCVNB VkVfWE1NCkBAIC01NSw0ICs1NSw0IEBAIEVOVFJZKGVmaV9jYWxsKQogCVJFU1RPUkVfWE1NCiAJ cG9wcSAlcmJwCiAJcmV0Ci1FTkRQUk9DKGVmaV9jYWxsKQorU1lNX0ZVTkNfRU5EKGVmaV9jYWxs KQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvcGxhdGZvcm0vZWZpL2VmaV90aHVua182NC5TIGIvYXJj aC94ODYvcGxhdGZvcm0vZWZpL2VmaV90aHVua182NC5TCmluZGV4IGQ2NzdhN2ViMmQwYS4uMzE4 OWYxMzk0NzAxIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9wbGF0Zm9ybS9lZmkvZWZpX3RodW5rXzY0 LlMKKysrIGIvYXJjaC94ODYvcGxhdGZvcm0vZWZpL2VmaV90aHVua182NC5TCkBAIC0yNSw3ICsy NSw3IEBACiAKIAkudGV4dAogCS5jb2RlNjQKLUVOVFJZKGVmaTY0X3RodW5rKQorU1lNX0ZVTkNf U1RBUlQoZWZpNjRfdGh1bmspCiAJcHVzaAklcmJwCiAJcHVzaAklcmJ4CiAKQEAgLTYwLDcgKzYw LDcgQEAgRU5UUlkoZWZpNjRfdGh1bmspCiAJcG9wCSVyYngKIAlwb3AJJXJicAogCXJldHEKLUVO RFBST0MoZWZpNjRfdGh1bmspCitTWU1fRlVOQ19FTkQoZWZpNjRfdGh1bmspCiAKIC8qCiAgKiBX ZSBydW4gdGhpcyBmdW5jdGlvbiBmcm9tIHRoZSAxOjEgbWFwcGluZy4KZGlmZiAtLWdpdCBhL2Fy Y2gveDg2L3Bvd2VyL2hpYmVybmF0ZV9hc21fNjQuUyBiL2FyY2gveDg2L3Bvd2VyL2hpYmVybmF0 ZV9hc21fNjQuUwppbmRleCA0NDc1NWE4NDc4NTYuLmM4N2FlMDhmOTMxMiAxMDA2NDQKLS0tIGEv YXJjaC94ODYvcG93ZXIvaGliZXJuYXRlX2FzbV82NC5TCisrKyBiL2FyY2gveDg2L3Bvd2VyL2hp YmVybmF0ZV9hc21fNjQuUwpAQCAtMjMsNyArMjMsNyBAQAogI2luY2x1ZGUgPGFzbS9wcm9jZXNz b3ItZmxhZ3MuaD4KICNpbmNsdWRlIDxhc20vZnJhbWUuaD4KIAotRU5UUlkoc3dzdXNwX2FyY2hf c3VzcGVuZCkKK1NZTV9GVU5DX1NUQVJUKHN3c3VzcF9hcmNoX3N1c3BlbmQpCiAJbW92cQkkc2F2 ZWRfY29udGV4dCwgJXJheAogCW1vdnEJJXJzcCwgcHRfcmVnc19zcCglcmF4KQogCW1vdnEJJXJi cCwgcHRfcmVnc19icCglcmF4KQpAQCAtNTEsNyArNTEsNyBAQCBFTlRSWShzd3N1c3BfYXJjaF9z dXNwZW5kKQogCWNhbGwgc3dzdXNwX3NhdmUKIAlGUkFNRV9FTkQKIAlyZXQKLUVORFBST0Moc3dz dXNwX2FyY2hfc3VzcGVuZCkKK1NZTV9GVU5DX0VORChzd3N1c3BfYXJjaF9zdXNwZW5kKQogCiBT WU1fQ09ERV9TVEFSVChyZXN0b3JlX2ltYWdlKQogCS8qIHByZXBhcmUgdG8ganVtcCB0byB0aGUg aW1hZ2Uga2VybmVsICovCkBAIC0xMDMsNyArMTAzLDcgQEAgU1lNX0NPREVfRU5EKGNvcmVfcmVz dG9yZV9jb2RlKQogCiAJIC8qIGNvZGUgYmVsb3cgYmVsb25ncyB0byB0aGUgaW1hZ2Uga2VybmVs ICovCiAJLmFsaWduIFBBR0VfU0laRQotRU5UUlkocmVzdG9yZV9yZWdpc3RlcnMpCitTWU1fRlVO Q19TVEFSVChyZXN0b3JlX3JlZ2lzdGVycykKIAkvKiBnbyBiYWNrIHRvIHRoZSBvcmlnaW5hbCBw YWdlIHRhYmxlcyAqLwogCW1vdnEgICAgJXI5LCAlY3IzCiAKQEAgLTE0NSw0ICsxNDUsNCBAQCBF TlRSWShyZXN0b3JlX3JlZ2lzdGVycykKIAltb3ZxCSVyYXgsIGluX3N1c3BlbmQoJXJpcCkKIAog CXJldAotRU5EUFJPQyhyZXN0b3JlX3JlZ2lzdGVycykKK1NZTV9GVU5DX0VORChyZXN0b3JlX3Jl Z2lzdGVycykKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3hlbi94ZW4tYXNtLlMgYi9hcmNoL3g4Ni94 ZW4veGVuLWFzbS5TCmluZGV4IDgwMTllZGQwMTI1Yy4uZDdiZjZkNWNmY2I5IDEwMDY0NAotLS0g YS9hcmNoL3g4Ni94ZW4veGVuLWFzbS5TCisrKyBiL2FyY2gveDg2L3hlbi94ZW4tYXNtLlMKQEAg LTE4LDcgKzE4LDcgQEAKICAqIGV2ZW50IHN0YXR1cyB3aXRoIG9uZSBhbmQgb3BlcmF0aW9uLiAg SWYgdGhlcmUgYXJlIHBlbmRpbmcgZXZlbnRzLAogICogdGhlbiBlbnRlciB0aGUgaHlwZXJ2aXNv ciB0byBnZXQgdGhlbSBoYW5kbGVkLgogICovCi1FTlRSWSh4ZW5faXJxX2VuYWJsZV9kaXJlY3Qp CitTWU1fRlVOQ19TVEFSVCh4ZW5faXJxX2VuYWJsZV9kaXJlY3QpCiAJRlJBTUVfQkVHSU4KIAkv KiBVbm1hc2sgZXZlbnRzICovCiAJbW92YiAkMCwgUEVSX0NQVV9WQVIoeGVuX3ZjcHVfaW5mbykg KyBYRU5fdmNwdV9pbmZvX21hc2sKQEAgLTM3LDE3ICszNywxNyBAQCBFTlRSWSh4ZW5faXJxX2Vu YWJsZV9kaXJlY3QpCiAxOgogCUZSQU1FX0VORAogCXJldAotCUVORFBST0MoeGVuX2lycV9lbmFi bGVfZGlyZWN0KQorU1lNX0ZVTkNfRU5EKHhlbl9pcnFfZW5hYmxlX2RpcmVjdCkKIAogCiAvKgog ICogRGlzYWJsaW5nIGV2ZW50cyBpcyBzaW1wbHkgYSBtYXR0ZXIgb2YgbWFraW5nIHRoZSBldmVu dCBtYXNrCiAgKiBub24temVyby4KICAqLwotRU5UUlkoeGVuX2lycV9kaXNhYmxlX2RpcmVjdCkK K1NZTV9GVU5DX1NUQVJUKHhlbl9pcnFfZGlzYWJsZV9kaXJlY3QpCiAJbW92YiAkMSwgUEVSX0NQ VV9WQVIoeGVuX3ZjcHVfaW5mbykgKyBYRU5fdmNwdV9pbmZvX21hc2sKIAlyZXQKLUVORFBST0Mo eGVuX2lycV9kaXNhYmxlX2RpcmVjdCkKK1NZTV9GVU5DX0VORCh4ZW5faXJxX2Rpc2FibGVfZGly ZWN0KQogCiAvKgogICogKHhlbl8pc2F2ZV9mbCBpcyB1c2VkIHRvIGdldCB0aGUgY3VycmVudCBp bnRlcnJ1cHQgZW5hYmxlIHN0YXR1cy4KQEAgLTU4LDEyICs1OCwxMiBAQCBFTkRQUk9DKHhlbl9p cnFfZGlzYWJsZV9kaXJlY3QpCiAgKiB1bmRlZmluZWQuICBXZSBuZWVkIHRvIHRvZ2dsZSB0aGUg c3RhdGUgb2YgdGhlIGJpdCwgYmVjYXVzZSBYZW4gYW5kCiAgKiB4ODYgdXNlIG9wcG9zaXRlIHNl bnNlcyAobWFzayB2cyBlbmFibGUpLgogICovCi1FTlRSWSh4ZW5fc2F2ZV9mbF9kaXJlY3QpCitT WU1fRlVOQ19TVEFSVCh4ZW5fc2F2ZV9mbF9kaXJlY3QpCiAJdGVzdGIgJDB4ZmYsIFBFUl9DUFVf VkFSKHhlbl92Y3B1X2luZm8pICsgWEVOX3ZjcHVfaW5mb19tYXNrCiAJc2V0eiAlYWgKIAlhZGRi ICVhaCwgJWFoCiAJcmV0Ci0JRU5EUFJPQyh4ZW5fc2F2ZV9mbF9kaXJlY3QpCitTWU1fRlVOQ19F TkQoeGVuX3NhdmVfZmxfZGlyZWN0KQogCiAKIC8qCkBAIC03Myw3ICs3Myw3IEBAIEVOVFJZKHhl bl9zYXZlX2ZsX2RpcmVjdCkKICAqIGludGVycnVwdCBtYXNrIHN0YXRlLCBpdCBjaGVja3MgZm9y IHVubWFza2VkIHBlbmRpbmcgZXZlbnRzIGFuZAogICogZW50ZXJzIHRoZSBoeXBlcnZpc29yIHRv IGdldCB0aGVtIGRlbGl2ZXJlZCBpZiBzby4KICAqLwotRU5UUlkoeGVuX3Jlc3RvcmVfZmxfZGly ZWN0KQorU1lNX0ZVTkNfU1RBUlQoeGVuX3Jlc3RvcmVfZmxfZGlyZWN0KQogCUZSQU1FX0JFR0lO CiAjaWZkZWYgQ09ORklHX1g4Nl82NAogCXRlc3R3ICRYODZfRUZMQUdTX0lGLCAlZGkKQEAgLTk0 LDE0ICs5NCwxNCBAQCBFTlRSWSh4ZW5fcmVzdG9yZV9mbF9kaXJlY3QpCiAxOgogCUZSQU1FX0VO RAogCXJldAotCUVORFBST0MoeGVuX3Jlc3RvcmVfZmxfZGlyZWN0KQorU1lNX0ZVTkNfRU5EKHhl bl9yZXN0b3JlX2ZsX2RpcmVjdCkKIAogCiAvKgogICogRm9yY2UgYW4gZXZlbnQgY2hlY2sgYnkg bWFraW5nIGEgaHlwZXJjYWxsLCBidXQgcHJlc2VydmUgcmVncwogICogYmVmb3JlIG1ha2luZyB0 aGUgY2FsbC4KICAqLwotRU5UUlkoY2hlY2tfZXZlbnRzKQorU1lNX0ZVTkNfU1RBUlQoY2hlY2tf ZXZlbnRzKQogCUZSQU1FX0JFR0lOCiAjaWZkZWYgQ09ORklHX1g4Nl8zMgogCXB1c2ggJWVheApA QCAtMTM0LDQgKzEzNCw0IEBAIEVOVFJZKGNoZWNrX2V2ZW50cykKICNlbmRpZgogCUZSQU1FX0VO RAogCXJldAotRU5EUFJPQyhjaGVja19ldmVudHMpCitTWU1fRlVOQ19FTkQoY2hlY2tfZXZlbnRz KQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYveGVuL3hlbi1hc21fNjQuUyBiL2FyY2gveDg2L3hlbi94 ZW4tYXNtXzY0LlMKaW5kZXggNWEzZjVjMThjZDBjLi5kYWRhNzNkYjQwMmEgMTAwNjQ0Ci0tLSBh L2FyY2gveDg2L3hlbi94ZW4tYXNtXzY0LlMKKysrIGIvYXJjaC94ODYveGVuL3hlbi1hc21fNjQu UwpAQCAtMTIzLDcgKzEyMyw3IEBAIFNZTV9DT0RFX0VORCh4ZW5fc3lzcmV0NjQpCiAgKi8KIAog LyogTm9ybWFsIDY0LWJpdCBzeXN0ZW0gY2FsbCB0YXJnZXQgKi8KLUVOVFJZKHhlbl9zeXNjYWxs X3RhcmdldCkKK1NZTV9GVU5DX1NUQVJUKHhlbl9zeXNjYWxsX3RhcmdldCkKIAlwb3BxICVyY3gK IAlwb3BxICVyMTEKIApAQCAtMTM2LDEyICsxMzYsMTIgQEAgRU5UUlkoeGVuX3N5c2NhbGxfdGFy Z2V0KQogCW1vdnEgJF9fVVNFUl9DUywgMSo4KCVyc3ApCiAKIAlqbXAgZW50cnlfU1lTQ0FMTF82 NF9hZnRlcl9od2ZyYW1lCi1FTkRQUk9DKHhlbl9zeXNjYWxsX3RhcmdldCkKK1NZTV9GVU5DX0VO RCh4ZW5fc3lzY2FsbF90YXJnZXQpCiAKICNpZmRlZiBDT05GSUdfSUEzMl9FTVVMQVRJT04KIAog LyogMzItYml0IGNvbXBhdCBzeXNjYWxsIHRhcmdldCAqLwotRU5UUlkoeGVuX3N5c2NhbGwzMl90 YXJnZXQpCitTWU1fRlVOQ19TVEFSVCh4ZW5fc3lzY2FsbDMyX3RhcmdldCkKIAlwb3BxICVyY3gK IAlwb3BxICVyMTEKIApAQCAtMTU0LDI1ICsxNTQsMjUgQEAgRU5UUlkoeGVuX3N5c2NhbGwzMl90 YXJnZXQpCiAJbW92cSAkX19VU0VSMzJfQ1MsIDEqOCglcnNwKQogCiAJam1wIGVudHJ5X1NZU0NB TExfY29tcGF0X2FmdGVyX2h3ZnJhbWUKLUVORFBST0MoeGVuX3N5c2NhbGwzMl90YXJnZXQpCitT WU1fRlVOQ19FTkQoeGVuX3N5c2NhbGwzMl90YXJnZXQpCiAKIC8qIDMyLWJpdCBjb21wYXQgc3lz ZW50ZXIgdGFyZ2V0ICovCi1FTlRSWSh4ZW5fc3lzZW50ZXJfdGFyZ2V0KQorU1lNX0ZVTkNfU1RB UlQoeGVuX3N5c2VudGVyX3RhcmdldCkKIAltb3YgMCo4KCVyc3ApLCAlcmN4CiAJbW92IDEqOCgl cnNwKSwgJXIxMQogCW1vdiA1KjgoJXJzcCksICVyc3AKIAlqbXAgZW50cnlfU1lTRU5URVJfY29t cGF0Ci1FTkRQUk9DKHhlbl9zeXNlbnRlcl90YXJnZXQpCitTWU1fRlVOQ19FTkQoeGVuX3N5c2Vu dGVyX3RhcmdldCkKIAogI2Vsc2UgLyogIUNPTkZJR19JQTMyX0VNVUxBVElPTiAqLwogCiBTWU1f RlVOQ19TVEFSVF9BTElBUyh4ZW5fc3lzY2FsbDMyX3RhcmdldCkKLUVOVFJZKHhlbl9zeXNlbnRl cl90YXJnZXQpCitTWU1fRlVOQ19TVEFSVCh4ZW5fc3lzZW50ZXJfdGFyZ2V0KQogCWxlYSAxNigl cnNwKSwgJXJzcAkvKiBzdHJpcCAlcmN4LCAlcjExICovCiAJbW92ICQtRU5PU1lTLCAlcmF4CiAJ cHVzaHEgJDAKIAlqbXAgaHlwZXJjYWxsX2lyZXQKLUVORFBST0MoeGVuX3N5c2VudGVyX3Rhcmdl dCkKK1NZTV9GVU5DX0VORCh4ZW5fc3lzZW50ZXJfdGFyZ2V0KQogU1lNX0ZVTkNfRU5EX0FMSUFT KHhlbl9zeXNjYWxsMzJfdGFyZ2V0KQogCiAjZW5kaWYJLyogQ09ORklHX0lBMzJfRU1VTEFUSU9O ICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2xpbmthZ2UuaCBiL2luY2x1ZGUvbGludXgv bGlua2FnZS5oCmluZGV4IGU5MjBmZmEyYTk0My4uYTU3ZGE4MThkODhmIDEwMDY0NAotLS0gYS9p bmNsdWRlL2xpbnV4L2xpbmthZ2UuaAorKysgYi9pbmNsdWRlL2xpbnV4L2xpbmthZ2UuaApAQCAt MTA1LDExICsxMDUsMTMgQEAKIAogLyogPT09IERFUFJFQ0FURUQgYW5ub3RhdGlvbnMgPT09ICov CiAKKyNpZm5kZWYgQ09ORklHX1g4Nl82NAogI2lmbmRlZiBFTlRSWQogLyogZGVwcmVjYXRlZCwg dXNlIFNZTV9GVU5DX1NUQVJUICovCiAjZGVmaW5lIEVOVFJZKG5hbWUpIFwKIAlTWU1fRlVOQ19T VEFSVChuYW1lKQogI2VuZGlmCisjZW5kaWYgLyogQ09ORklHX1g4Nl82NCAqLwogI2VuZGlmIC8q IExJTktFUl9TQ1JJUFQgKi8KIAogI2lmbmRlZiBXRUFLCkBAIC0xMjQsNiArMTI2LDcgQEAKIAku c2l6ZSBuYW1lLCAuLW5hbWUKICNlbmRpZgogCisjaWZuZGVmIENPTkZJR19YODZfNjQKIC8qIElm IHN5bWJvbCAnbmFtZScgaXMgdHJlYXRlZCBhcyBhIHN1YnJvdXRpbmUgKGdldHMgY2FsbGVkLCBh bmQgcmV0dXJucykKICAqIHRoZW4gcGxlYXNlIHVzZSBFTkRQUk9DIHRvIG1hcmsgJ25hbWUnIGFz IFNUVF9GVU5DIGZvciB0aGUgYmVuZWZpdCBvZgogICogc3RhdGljIGFuYWx5c2lzIHRvb2xzIHN1 Y2ggYXMgc3RhY2sgZGVwdGggYW5hbHl6ZXIuCkBAIC0xMzMsNiArMTM2LDcgQEAKICNkZWZpbmUg RU5EUFJPQyhuYW1lKSBcCiAJU1lNX0ZVTkNfRU5EKG5hbWUpCiAjZW5kaWYKKyNlbmRpZiAvKiBD T05GSUdfWDg2XzY0ICovCiAKIC8qID09PSBnZW5lcmljIGFubm90YXRpb25zID09PSAqLwogCi0t IAoyLjE2LjMKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpo dHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752871AbeERJTM (ORCPT ); Fri, 18 May 2018 05:19:12 -0400 Received: from mx2.suse.de ([195.135.220.15]:45402 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753212AbeERJRw (ORCPT ); Fri, 18 May 2018 05:17:52 -0400 From: Jiri Slaby To: mingo@redhat.com Cc: linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, Jiri Slaby , "H. Peter Anvin" , Thomas Gleixner , x86@kernel.org, Herbert Xu , "David S. Miller" , "Rafael J. Wysocki" , Len Brown , Pavel Machek , Matt Fleming , Ard Biesheuvel , Boris Ostrovsky , Juergen Gross , linux-crypto@vger.kernel.org, linux-pm@vger.kernel.org, linux-efi@vger.kernel.org, xen-devel@lists.xenproject.org Subject: [PATCH v6 24/28] x86_64/asm: change all ENTRY+ENDPROC to SYM_FUNC_* Date: Fri, 18 May 2018 11:17:17 +0200 Message-Id: <20180518091721.7604-25-jslaby@suse.cz> X-Mailer: git-send-email 2.16.3 In-Reply-To: <20180518091721.7604-1-jslaby@suse.cz> References: <20180518091721.7604-1-jslaby@suse.cz> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org These are all functions which are invoked from elsewhere, so we annotate them as global using the new SYM_FUNC_START. And their ENDPROC's by SYM_FUNC_END. And make sure ENTRY/ENDPROC is not defined on X86_64, given these were the last users. Signed-off-by: Jiri Slaby Reviewed-by: Rafael J. Wysocki [hibernate] Reviewed-by: Boris Ostrovsky [xen bits] Cc: "H. Peter Anvin" Cc: Thomas Gleixner Cc: Ingo Molnar Cc: x86@kernel.org Cc: Herbert Xu Cc: "David S. Miller" Cc: "Rafael J. Wysocki" Cc: Len Brown Cc: Pavel Machek Cc: Matt Fleming Cc: Ard Biesheuvel Cc: Boris Ostrovsky Cc: Juergen Gross Cc: linux-crypto@vger.kernel.org Cc: linux-pm@vger.kernel.org Cc: linux-efi@vger.kernel.org Cc: xen-devel@lists.xenproject.org --- arch/x86/boot/compressed/efi_thunk_64.S | 4 +- arch/x86/boot/compressed/head_64.S | 16 +++--- arch/x86/boot/compressed/mem_encrypt.S | 8 +-- arch/x86/crypto/aes-i586-asm_32.S | 8 +-- arch/x86/crypto/aes-x86_64-asm_64.S | 4 +- arch/x86/crypto/aes_ctrby8_avx-x86_64.S | 12 ++--- arch/x86/crypto/aesni-intel_asm.S | 60 +++++++++++----------- arch/x86/crypto/aesni-intel_avx-x86_64.S | 24 ++++----- arch/x86/crypto/blowfish-x86_64-asm_64.S | 16 +++--- arch/x86/crypto/camellia-aesni-avx-asm_64.S | 24 ++++----- arch/x86/crypto/camellia-aesni-avx2-asm_64.S | 24 ++++----- arch/x86/crypto/camellia-x86_64-asm_64.S | 16 +++--- arch/x86/crypto/cast5-avx-x86_64-asm_64.S | 16 +++--- arch/x86/crypto/cast6-avx-x86_64-asm_64.S | 24 ++++----- arch/x86/crypto/chacha20-avx2-x86_64.S | 4 +- arch/x86/crypto/chacha20-ssse3-x86_64.S | 8 +-- arch/x86/crypto/crc32-pclmul_asm.S | 4 +- arch/x86/crypto/crc32c-pcl-intel-asm_64.S | 4 +- arch/x86/crypto/crct10dif-pcl-asm_64.S | 4 +- arch/x86/crypto/des3_ede-asm_64.S | 8 +-- arch/x86/crypto/ghash-clmulni-intel_asm.S | 8 +-- arch/x86/crypto/poly1305-avx2-x86_64.S | 4 +- arch/x86/crypto/poly1305-sse2-x86_64.S | 8 +-- arch/x86/crypto/salsa20-x86_64-asm_64.S | 4 +- arch/x86/crypto/serpent-avx-x86_64-asm_64.S | 24 ++++----- arch/x86/crypto/serpent-avx2-asm_64.S | 24 ++++----- arch/x86/crypto/serpent-sse2-x86_64-asm_64.S | 8 +-- arch/x86/crypto/sha1-mb/sha1_mb_mgr_flush_avx2.S | 8 +-- arch/x86/crypto/sha1-mb/sha1_mb_mgr_submit_avx2.S | 4 +- arch/x86/crypto/sha1-mb/sha1_x8_avx2.S | 4 +- arch/x86/crypto/sha1_avx2_x86_64_asm.S | 4 +- arch/x86/crypto/sha1_ni_asm.S | 4 +- arch/x86/crypto/sha1_ssse3_asm.S | 4 +- arch/x86/crypto/sha256-avx-asm.S | 4 +- arch/x86/crypto/sha256-avx2-asm.S | 4 +- .../crypto/sha256-mb/sha256_mb_mgr_flush_avx2.S | 8 +-- .../crypto/sha256-mb/sha256_mb_mgr_submit_avx2.S | 4 +- arch/x86/crypto/sha256-mb/sha256_x8_avx2.S | 4 +- arch/x86/crypto/sha256-ssse3-asm.S | 4 +- arch/x86/crypto/sha256_ni_asm.S | 4 +- arch/x86/crypto/sha512-avx-asm.S | 4 +- arch/x86/crypto/sha512-avx2-asm.S | 4 +- .../crypto/sha512-mb/sha512_mb_mgr_flush_avx2.S | 8 +-- .../crypto/sha512-mb/sha512_mb_mgr_submit_avx2.S | 4 +- arch/x86/crypto/sha512-mb/sha512_x4_avx2.S | 4 +- arch/x86/crypto/sha512-ssse3-asm.S | 4 +- arch/x86/crypto/twofish-avx-x86_64-asm_64.S | 24 ++++----- arch/x86/crypto/twofish-x86_64-asm_64-3way.S | 8 +-- arch/x86/crypto/twofish-x86_64-asm_64.S | 8 +-- arch/x86/entry/entry_64.S | 10 ++-- arch/x86/entry/entry_64_compat.S | 4 +- arch/x86/kernel/acpi/wakeup_64.S | 8 +-- arch/x86/kernel/ftrace_64.S | 20 ++++---- arch/x86/kernel/head_64.S | 12 ++--- arch/x86/lib/checksum_32.S | 8 +-- arch/x86/lib/clear_page_64.S | 12 ++--- arch/x86/lib/cmpxchg16b_emu.S | 4 +- arch/x86/lib/cmpxchg8b_emu.S | 4 +- arch/x86/lib/copy_page_64.S | 4 +- arch/x86/lib/copy_user_64.S | 16 +++--- arch/x86/lib/csum-copy_64.S | 4 +- arch/x86/lib/getuser.S | 16 +++--- arch/x86/lib/hweight.S | 8 +-- arch/x86/lib/iomap_copy_64.S | 4 +- arch/x86/lib/memcpy_64.S | 4 +- arch/x86/lib/memmove_64.S | 4 +- arch/x86/lib/memset_64.S | 4 +- arch/x86/lib/msr-reg.S | 8 +-- arch/x86/lib/putuser.S | 16 +++--- arch/x86/lib/retpoline.S | 4 +- arch/x86/lib/rwsem.S | 24 ++++----- arch/x86/mm/mem_encrypt_boot.S | 8 +-- arch/x86/platform/efi/efi_stub_64.S | 4 +- arch/x86/platform/efi/efi_thunk_64.S | 4 +- arch/x86/power/hibernate_asm_64.S | 8 +-- arch/x86/xen/xen-asm.S | 20 ++++---- arch/x86/xen/xen-asm_64.S | 16 +++--- include/linux/linkage.h | 4 ++ 78 files changed, 381 insertions(+), 377 deletions(-) diff --git a/arch/x86/boot/compressed/efi_thunk_64.S b/arch/x86/boot/compressed/efi_thunk_64.S index 31312070db22..593913692d16 100644 --- a/arch/x86/boot/compressed/efi_thunk_64.S +++ b/arch/x86/boot/compressed/efi_thunk_64.S @@ -23,7 +23,7 @@ .code64 .text -ENTRY(efi64_thunk) +SYM_FUNC_START(efi64_thunk) push %rbp push %rbx @@ -97,7 +97,7 @@ ENTRY(efi64_thunk) pop %rbx pop %rbp ret -ENDPROC(efi64_thunk) +SYM_FUNC_END(efi64_thunk) SYM_FUNC_START_LOCAL(efi_exit32) movq func_rt_ptr(%rip), %rax diff --git a/arch/x86/boot/compressed/head_64.S b/arch/x86/boot/compressed/head_64.S index d056c789f90d..109d2e00650b 100644 --- a/arch/x86/boot/compressed/head_64.S +++ b/arch/x86/boot/compressed/head_64.S @@ -45,7 +45,7 @@ __HEAD .code32 -ENTRY(startup_32) +SYM_FUNC_START(startup_32) /* * 32bit entry is 0 and it is ABI so immutable! * If we come here directly from a bootloader, @@ -222,11 +222,11 @@ ENTRY(startup_32) /* Jump from 32bit compatibility mode into 64bit mode. */ lret -ENDPROC(startup_32) +SYM_FUNC_END(startup_32) #ifdef CONFIG_EFI_MIXED .org 0x190 -ENTRY(efi32_stub_entry) +SYM_FUNC_START(efi32_stub_entry) add $0x4, %esp /* Discard return address */ popl %ecx popl %edx @@ -245,7 +245,7 @@ ENTRY(efi32_stub_entry) movl %eax, efi_config(%ebp) jmp startup_32 -ENDPROC(efi32_stub_entry) +SYM_FUNC_END(efi32_stub_entry) #endif .code64 @@ -405,7 +405,7 @@ SYM_CODE_END(startup_64) #ifdef CONFIG_EFI_STUB /* The entry point for the PE/COFF executable is efi_pe_entry. */ -ENTRY(efi_pe_entry) +SYM_FUNC_START(efi_pe_entry) movq %rcx, efi64_config(%rip) /* Handle */ movq %rdx, efi64_config+8(%rip) /* EFI System table pointer */ @@ -454,10 +454,10 @@ fail: movl BP_code32_start(%esi), %eax leaq startup_64(%rax), %rax jmp *%rax -ENDPROC(efi_pe_entry) +SYM_FUNC_END(efi_pe_entry) .org 0x390 -ENTRY(efi64_stub_entry) +SYM_FUNC_START(efi64_stub_entry) movq %rdi, efi64_config(%rip) /* Handle */ movq %rsi, efi64_config+8(%rip) /* EFI System table pointer */ @@ -466,7 +466,7 @@ ENTRY(efi64_stub_entry) movq %rdx, %rsi jmp handover_entry -ENDPROC(efi64_stub_entry) +SYM_FUNC_END(efi64_stub_entry) #endif .text diff --git a/arch/x86/boot/compressed/mem_encrypt.S b/arch/x86/boot/compressed/mem_encrypt.S index fabed28d2edd..ebf82e1f9300 100644 --- a/arch/x86/boot/compressed/mem_encrypt.S +++ b/arch/x86/boot/compressed/mem_encrypt.S @@ -18,7 +18,7 @@ .text .code32 -ENTRY(get_sev_encryption_bit) +SYM_FUNC_START(get_sev_encryption_bit) xor %eax, %eax #ifdef CONFIG_AMD_MEM_ENCRYPT @@ -85,10 +85,10 @@ ENTRY(get_sev_encryption_bit) #endif /* CONFIG_AMD_MEM_ENCRYPT */ ret -ENDPROC(get_sev_encryption_bit) +SYM_FUNC_END(get_sev_encryption_bit) .code64 -ENTRY(set_sev_encryption_mask) +SYM_FUNC_START(set_sev_encryption_mask) #ifdef CONFIG_AMD_MEM_ENCRYPT push %rbp push %rdx @@ -110,7 +110,7 @@ ENTRY(set_sev_encryption_mask) xor %rax, %rax ret -ENDPROC(set_sev_encryption_mask) +SYM_FUNC_END(set_sev_encryption_mask) .data SYM_DATA_LOCAL(enc_bit, .int 0xffffffff) diff --git a/arch/x86/crypto/aes-i586-asm_32.S b/arch/x86/crypto/aes-i586-asm_32.S index 2849dbc59e11..5b2636c58527 100644 --- a/arch/x86/crypto/aes-i586-asm_32.S +++ b/arch/x86/crypto/aes-i586-asm_32.S @@ -223,7 +223,7 @@ .extern crypto_ft_tab .extern crypto_fl_tab -ENTRY(aes_enc_blk) +SYM_FUNC_START(aes_enc_blk) push %ebp mov ctx(%esp),%ebp @@ -287,7 +287,7 @@ ENTRY(aes_enc_blk) mov %r0,(%ebp) pop %ebp ret -ENDPROC(aes_enc_blk) +SYM_FUNC_END(aes_enc_blk) // AES (Rijndael) Decryption Subroutine /* void aes_dec_blk(struct crypto_aes_ctx *ctx, u8 *out_blk, const u8 *in_blk) */ @@ -295,7 +295,7 @@ ENDPROC(aes_enc_blk) .extern crypto_it_tab .extern crypto_il_tab -ENTRY(aes_dec_blk) +SYM_FUNC_START(aes_dec_blk) push %ebp mov ctx(%esp),%ebp @@ -359,4 +359,4 @@ ENTRY(aes_dec_blk) mov %r0,(%ebp) pop %ebp ret -ENDPROC(aes_dec_blk) +SYM_FUNC_END(aes_dec_blk) diff --git a/arch/x86/crypto/aes-x86_64-asm_64.S b/arch/x86/crypto/aes-x86_64-asm_64.S index 8739cf7795de..22c44ad3ef42 100644 --- a/arch/x86/crypto/aes-x86_64-asm_64.S +++ b/arch/x86/crypto/aes-x86_64-asm_64.S @@ -49,7 +49,7 @@ #define R11 %r11 #define prologue(FUNC,KEY,B128,B192,r1,r2,r5,r6,r7,r8,r9,r10,r11) \ - ENTRY(FUNC); \ + SYM_FUNC_START(FUNC); \ movq r1,r2; \ leaq KEY+48(r8),r9; \ movq r10,r11; \ @@ -75,7 +75,7 @@ movl r7 ## E,8(r9); \ movl r8 ## E,12(r9); \ ret; \ - ENDPROC(FUNC); + SYM_FUNC_END(FUNC); #define round(TAB,OFFSET,r1,r2,r3,r4,r5,r6,r7,r8,ra,rb,rc,rd) \ movzbl r2 ## H,r5 ## E; \ diff --git a/arch/x86/crypto/aes_ctrby8_avx-x86_64.S b/arch/x86/crypto/aes_ctrby8_avx-x86_64.S index 5f6a5af9c489..ec437db1fa54 100644 --- a/arch/x86/crypto/aes_ctrby8_avx-x86_64.S +++ b/arch/x86/crypto/aes_ctrby8_avx-x86_64.S @@ -544,11 +544,11 @@ ddq_add_8: * aes_ctr_enc_128_avx_by8(void *in, void *iv, void *keys, void *out, * unsigned int num_bytes) */ -ENTRY(aes_ctr_enc_128_avx_by8) +SYM_FUNC_START(aes_ctr_enc_128_avx_by8) /* call the aes main loop */ do_aes_ctrmain KEY_128 -ENDPROC(aes_ctr_enc_128_avx_by8) +SYM_FUNC_END(aes_ctr_enc_128_avx_by8) /* * routine to do AES192 CTR enc/decrypt "by8" @@ -557,11 +557,11 @@ ENDPROC(aes_ctr_enc_128_avx_by8) * aes_ctr_enc_192_avx_by8(void *in, void *iv, void *keys, void *out, * unsigned int num_bytes) */ -ENTRY(aes_ctr_enc_192_avx_by8) +SYM_FUNC_START(aes_ctr_enc_192_avx_by8) /* call the aes main loop */ do_aes_ctrmain KEY_192 -ENDPROC(aes_ctr_enc_192_avx_by8) +SYM_FUNC_END(aes_ctr_enc_192_avx_by8) /* * routine to do AES256 CTR enc/decrypt "by8" @@ -570,8 +570,8 @@ ENDPROC(aes_ctr_enc_192_avx_by8) * aes_ctr_enc_256_avx_by8(void *in, void *iv, void *keys, void *out, * unsigned int num_bytes) */ -ENTRY(aes_ctr_enc_256_avx_by8) +SYM_FUNC_START(aes_ctr_enc_256_avx_by8) /* call the aes main loop */ do_aes_ctrmain KEY_256 -ENDPROC(aes_ctr_enc_256_avx_by8) +SYM_FUNC_END(aes_ctr_enc_256_avx_by8) diff --git a/arch/x86/crypto/aesni-intel_asm.S b/arch/x86/crypto/aesni-intel_asm.S index c85ecb163c78..8a0b154d3a9f 100644 --- a/arch/x86/crypto/aesni-intel_asm.S +++ b/arch/x86/crypto/aesni-intel_asm.S @@ -1596,7 +1596,7 @@ _esb_loop_\@: * poly = x^128 + x^127 + x^126 + x^121 + 1 * *****************************************************************************/ -ENTRY(aesni_gcm_dec) +SYM_FUNC_START(aesni_gcm_dec) FUNC_SAVE GCM_INIT %arg6, arg7, arg8, arg9 @@ -1604,7 +1604,7 @@ ENTRY(aesni_gcm_dec) GCM_COMPLETE arg10, arg11 FUNC_RESTORE ret -ENDPROC(aesni_gcm_dec) +SYM_FUNC_END(aesni_gcm_dec) /***************************************************************************** @@ -1684,7 +1684,7 @@ ENDPROC(aesni_gcm_dec) * * poly = x^128 + x^127 + x^126 + x^121 + 1 ***************************************************************************/ -ENTRY(aesni_gcm_enc) +SYM_FUNC_START(aesni_gcm_enc) FUNC_SAVE GCM_INIT %arg6, arg7, arg8, arg9 @@ -1693,7 +1693,7 @@ ENTRY(aesni_gcm_enc) GCM_COMPLETE arg10, arg11 FUNC_RESTORE ret -ENDPROC(aesni_gcm_enc) +SYM_FUNC_END(aesni_gcm_enc) /***************************************************************************** * void aesni_gcm_init(void *aes_ctx, // AES Key schedule. Starts on a 16 byte boundary. @@ -1706,12 +1706,12 @@ ENDPROC(aesni_gcm_enc) * const u8 *aad, // Additional Authentication Data (AAD) * u64 aad_len) // Length of AAD in bytes. */ -ENTRY(aesni_gcm_init) +SYM_FUNC_START(aesni_gcm_init) FUNC_SAVE GCM_INIT %arg3, %arg4,%arg5, %arg6 FUNC_RESTORE ret -ENDPROC(aesni_gcm_init) +SYM_FUNC_END(aesni_gcm_init) /***************************************************************************** * void aesni_gcm_enc_update(void *aes_ctx, // AES Key schedule. Starts on a 16 byte boundary. @@ -1721,12 +1721,12 @@ ENDPROC(aesni_gcm_init) * const u8 *in, // Plaintext input * u64 plaintext_len, // Length of data in bytes for encryption. */ -ENTRY(aesni_gcm_enc_update) +SYM_FUNC_START(aesni_gcm_enc_update) FUNC_SAVE GCM_ENC_DEC enc FUNC_RESTORE ret -ENDPROC(aesni_gcm_enc_update) +SYM_FUNC_END(aesni_gcm_enc_update) /***************************************************************************** * void aesni_gcm_dec_update(void *aes_ctx, // AES Key schedule. Starts on a 16 byte boundary. @@ -1736,12 +1736,12 @@ ENDPROC(aesni_gcm_enc_update) * const u8 *in, // Plaintext input * u64 plaintext_len, // Length of data in bytes for encryption. */ -ENTRY(aesni_gcm_dec_update) +SYM_FUNC_START(aesni_gcm_dec_update) FUNC_SAVE GCM_ENC_DEC dec FUNC_RESTORE ret -ENDPROC(aesni_gcm_dec_update) +SYM_FUNC_END(aesni_gcm_dec_update) /***************************************************************************** * void aesni_gcm_finalize(void *aes_ctx, // AES Key schedule. Starts on a 16 byte boundary. @@ -1751,12 +1751,12 @@ ENDPROC(aesni_gcm_dec_update) * u64 auth_tag_len); // Authenticated Tag Length in bytes. Valid values are 16 (most likely), * // 12 or 8. */ -ENTRY(aesni_gcm_finalize) +SYM_FUNC_START(aesni_gcm_finalize) FUNC_SAVE GCM_COMPLETE %arg3 %arg4 FUNC_RESTORE ret -ENDPROC(aesni_gcm_finalize) +SYM_FUNC_END(aesni_gcm_finalize) #endif @@ -1834,7 +1834,7 @@ SYM_FUNC_END(_key_expansion_256b) * int aesni_set_key(struct crypto_aes_ctx *ctx, const u8 *in_key, * unsigned int key_len) */ -ENTRY(aesni_set_key) +SYM_FUNC_START(aesni_set_key) FRAME_BEGIN #ifndef __x86_64__ pushl KEYP @@ -1943,12 +1943,12 @@ ENTRY(aesni_set_key) #endif FRAME_END ret -ENDPROC(aesni_set_key) +SYM_FUNC_END(aesni_set_key) /* * void aesni_enc(struct crypto_aes_ctx *ctx, u8 *dst, const u8 *src) */ -ENTRY(aesni_enc) +SYM_FUNC_START(aesni_enc) FRAME_BEGIN #ifndef __x86_64__ pushl KEYP @@ -1967,7 +1967,7 @@ ENTRY(aesni_enc) #endif FRAME_END ret -ENDPROC(aesni_enc) +SYM_FUNC_END(aesni_enc) /* * _aesni_enc1: internal ABI @@ -2137,7 +2137,7 @@ SYM_FUNC_END(_aesni_enc4) /* * void aesni_dec (struct crypto_aes_ctx *ctx, u8 *dst, const u8 *src) */ -ENTRY(aesni_dec) +SYM_FUNC_START(aesni_dec) FRAME_BEGIN #ifndef __x86_64__ pushl KEYP @@ -2157,7 +2157,7 @@ ENTRY(aesni_dec) #endif FRAME_END ret -ENDPROC(aesni_dec) +SYM_FUNC_END(aesni_dec) /* * _aesni_dec1: internal ABI @@ -2328,7 +2328,7 @@ SYM_FUNC_END(_aesni_dec4) * void aesni_ecb_enc(struct crypto_aes_ctx *ctx, const u8 *dst, u8 *src, * size_t len) */ -ENTRY(aesni_ecb_enc) +SYM_FUNC_START(aesni_ecb_enc) FRAME_BEGIN #ifndef __x86_64__ pushl LEN @@ -2382,13 +2382,13 @@ ENTRY(aesni_ecb_enc) #endif FRAME_END ret -ENDPROC(aesni_ecb_enc) +SYM_FUNC_END(aesni_ecb_enc) /* * void aesni_ecb_dec(struct crypto_aes_ctx *ctx, const u8 *dst, u8 *src, * size_t len); */ -ENTRY(aesni_ecb_dec) +SYM_FUNC_START(aesni_ecb_dec) FRAME_BEGIN #ifndef __x86_64__ pushl LEN @@ -2443,13 +2443,13 @@ ENTRY(aesni_ecb_dec) #endif FRAME_END ret -ENDPROC(aesni_ecb_dec) +SYM_FUNC_END(aesni_ecb_dec) /* * void aesni_cbc_enc(struct crypto_aes_ctx *ctx, const u8 *dst, u8 *src, * size_t len, u8 *iv) */ -ENTRY(aesni_cbc_enc) +SYM_FUNC_START(aesni_cbc_enc) FRAME_BEGIN #ifndef __x86_64__ pushl IVP @@ -2487,13 +2487,13 @@ ENTRY(aesni_cbc_enc) #endif FRAME_END ret -ENDPROC(aesni_cbc_enc) +SYM_FUNC_END(aesni_cbc_enc) /* * void aesni_cbc_dec(struct crypto_aes_ctx *ctx, const u8 *dst, u8 *src, * size_t len, u8 *iv) */ -ENTRY(aesni_cbc_dec) +SYM_FUNC_START(aesni_cbc_dec) FRAME_BEGIN #ifndef __x86_64__ pushl IVP @@ -2580,7 +2580,7 @@ ENTRY(aesni_cbc_dec) #endif FRAME_END ret -ENDPROC(aesni_cbc_dec) +SYM_FUNC_END(aesni_cbc_dec) #ifdef __x86_64__ .pushsection .rodata @@ -2642,7 +2642,7 @@ SYM_FUNC_END(_aesni_inc) * void aesni_ctr_enc(struct crypto_aes_ctx *ctx, const u8 *dst, u8 *src, * size_t len, u8 *iv) */ -ENTRY(aesni_ctr_enc) +SYM_FUNC_START(aesni_ctr_enc) FRAME_BEGIN cmp $16, LEN jb .Lctr_enc_just_ret @@ -2699,7 +2699,7 @@ ENTRY(aesni_ctr_enc) .Lctr_enc_just_ret: FRAME_END ret -ENDPROC(aesni_ctr_enc) +SYM_FUNC_END(aesni_ctr_enc) /* * _aesni_gf128mul_x_ble: internal ABI @@ -2723,7 +2723,7 @@ ENDPROC(aesni_ctr_enc) * void aesni_xts_crypt8(struct crypto_aes_ctx *ctx, const u8 *dst, u8 *src, * bool enc, u8 *iv) */ -ENTRY(aesni_xts_crypt8) +SYM_FUNC_START(aesni_xts_crypt8) FRAME_BEGIN cmpb $0, %cl movl $0, %ecx @@ -2827,6 +2827,6 @@ ENTRY(aesni_xts_crypt8) FRAME_END ret -ENDPROC(aesni_xts_crypt8) +SYM_FUNC_END(aesni_xts_crypt8) #endif diff --git a/arch/x86/crypto/aesni-intel_avx-x86_64.S b/arch/x86/crypto/aesni-intel_avx-x86_64.S index faecb1518bf8..ee056694e54d 100644 --- a/arch/x86/crypto/aesni-intel_avx-x86_64.S +++ b/arch/x86/crypto/aesni-intel_avx-x86_64.S @@ -1531,7 +1531,7 @@ _return_T_done\@: # (gcm_data *my_ctx_data, # u8 *hash_subkey)# /* H, the Hash sub key input. Data starts on a 16-byte boundary. */ ############################################################# -ENTRY(aesni_gcm_precomp_avx_gen2) +SYM_FUNC_START(aesni_gcm_precomp_avx_gen2) #the number of pushes must equal STACK_OFFSET push %r12 push %r13 @@ -1574,7 +1574,7 @@ ENTRY(aesni_gcm_precomp_avx_gen2) pop %r13 pop %r12 ret -ENDPROC(aesni_gcm_precomp_avx_gen2) +SYM_FUNC_END(aesni_gcm_precomp_avx_gen2) ############################################################################### #void aesni_gcm_enc_avx_gen2( @@ -1592,10 +1592,10 @@ ENDPROC(aesni_gcm_precomp_avx_gen2) # u64 auth_tag_len)# /* Authenticated Tag Length in bytes. # Valid values are 16 (most likely), 12 or 8. */ ############################################################################### -ENTRY(aesni_gcm_enc_avx_gen2) +SYM_FUNC_START(aesni_gcm_enc_avx_gen2) GCM_ENC_DEC_AVX ENC ret -ENDPROC(aesni_gcm_enc_avx_gen2) +SYM_FUNC_END(aesni_gcm_enc_avx_gen2) ############################################################################### #void aesni_gcm_dec_avx_gen2( @@ -1613,10 +1613,10 @@ ENDPROC(aesni_gcm_enc_avx_gen2) # u64 auth_tag_len)# /* Authenticated Tag Length in bytes. # Valid values are 16 (most likely), 12 or 8. */ ############################################################################### -ENTRY(aesni_gcm_dec_avx_gen2) +SYM_FUNC_START(aesni_gcm_dec_avx_gen2) GCM_ENC_DEC_AVX DEC ret -ENDPROC(aesni_gcm_dec_avx_gen2) +SYM_FUNC_END(aesni_gcm_dec_avx_gen2) #endif /* CONFIG_AS_AVX */ #ifdef CONFIG_AS_AVX2 @@ -2855,7 +2855,7 @@ _return_T_done\@: # u8 *hash_subkey)# /* H, the Hash sub key input. # Data starts on a 16-byte boundary. */ ############################################################# -ENTRY(aesni_gcm_precomp_avx_gen4) +SYM_FUNC_START(aesni_gcm_precomp_avx_gen4) #the number of pushes must equal STACK_OFFSET push %r12 push %r13 @@ -2898,7 +2898,7 @@ ENTRY(aesni_gcm_precomp_avx_gen4) pop %r13 pop %r12 ret -ENDPROC(aesni_gcm_precomp_avx_gen4) +SYM_FUNC_END(aesni_gcm_precomp_avx_gen4) ############################################################################### @@ -2917,10 +2917,10 @@ ENDPROC(aesni_gcm_precomp_avx_gen4) # u64 auth_tag_len)# /* Authenticated Tag Length in bytes. # Valid values are 16 (most likely), 12 or 8. */ ############################################################################### -ENTRY(aesni_gcm_enc_avx_gen4) +SYM_FUNC_START(aesni_gcm_enc_avx_gen4) GCM_ENC_DEC_AVX2 ENC ret -ENDPROC(aesni_gcm_enc_avx_gen4) +SYM_FUNC_END(aesni_gcm_enc_avx_gen4) ############################################################################### #void aesni_gcm_dec_avx_gen4( @@ -2938,9 +2938,9 @@ ENDPROC(aesni_gcm_enc_avx_gen4) # u64 auth_tag_len)# /* Authenticated Tag Length in bytes. # Valid values are 16 (most likely), 12 or 8. */ ############################################################################### -ENTRY(aesni_gcm_dec_avx_gen4) +SYM_FUNC_START(aesni_gcm_dec_avx_gen4) GCM_ENC_DEC_AVX2 DEC ret -ENDPROC(aesni_gcm_dec_avx_gen4) +SYM_FUNC_END(aesni_gcm_dec_avx_gen4) #endif /* CONFIG_AS_AVX2 */ diff --git a/arch/x86/crypto/blowfish-x86_64-asm_64.S b/arch/x86/crypto/blowfish-x86_64-asm_64.S index 8c1fcb6bad21..70c34850ee0b 100644 --- a/arch/x86/crypto/blowfish-x86_64-asm_64.S +++ b/arch/x86/crypto/blowfish-x86_64-asm_64.S @@ -118,7 +118,7 @@ bswapq RX0; \ xorq RX0, (RIO); -ENTRY(__blowfish_enc_blk) +SYM_FUNC_START(__blowfish_enc_blk) /* input: * %rdi: ctx * %rsi: dst @@ -154,9 +154,9 @@ ENTRY(__blowfish_enc_blk) .L__enc_xor: xor_block(); ret; -ENDPROC(__blowfish_enc_blk) +SYM_FUNC_END(__blowfish_enc_blk) -ENTRY(blowfish_dec_blk) +SYM_FUNC_START(blowfish_dec_blk) /* input: * %rdi: ctx * %rsi: dst @@ -186,7 +186,7 @@ ENTRY(blowfish_dec_blk) movq %r11, %r12; ret; -ENDPROC(blowfish_dec_blk) +SYM_FUNC_END(blowfish_dec_blk) /********************************************************************** 4-way blowfish, four blocks parallel @@ -298,7 +298,7 @@ ENDPROC(blowfish_dec_blk) bswapq RX3; \ xorq RX3, 24(RIO); -ENTRY(__blowfish_enc_blk_4way) +SYM_FUNC_START(__blowfish_enc_blk_4way) /* input: * %rdi: ctx * %rsi: dst @@ -345,9 +345,9 @@ ENTRY(__blowfish_enc_blk_4way) popq %rbx; popq %r12; ret; -ENDPROC(__blowfish_enc_blk_4way) +SYM_FUNC_END(__blowfish_enc_blk_4way) -ENTRY(blowfish_dec_blk_4way) +SYM_FUNC_START(blowfish_dec_blk_4way) /* input: * %rdi: ctx * %rsi: dst @@ -380,4 +380,4 @@ ENTRY(blowfish_dec_blk_4way) popq %r12; ret; -ENDPROC(blowfish_dec_blk_4way) +SYM_FUNC_END(blowfish_dec_blk_4way) diff --git a/arch/x86/crypto/camellia-aesni-avx-asm_64.S b/arch/x86/crypto/camellia-aesni-avx-asm_64.S index f4408ca55fdb..d01ddd73de65 100644 --- a/arch/x86/crypto/camellia-aesni-avx-asm_64.S +++ b/arch/x86/crypto/camellia-aesni-avx-asm_64.S @@ -893,7 +893,7 @@ SYM_FUNC_START_LOCAL(__camellia_dec_blk16) jmp .Ldec_max24; SYM_FUNC_END(__camellia_dec_blk16) -ENTRY(camellia_ecb_enc_16way) +SYM_FUNC_START(camellia_ecb_enc_16way) /* input: * %rdi: ctx, CTX * %rsi: dst (16 blocks) @@ -916,9 +916,9 @@ ENTRY(camellia_ecb_enc_16way) FRAME_END ret; -ENDPROC(camellia_ecb_enc_16way) +SYM_FUNC_END(camellia_ecb_enc_16way) -ENTRY(camellia_ecb_dec_16way) +SYM_FUNC_START(camellia_ecb_dec_16way) /* input: * %rdi: ctx, CTX * %rsi: dst (16 blocks) @@ -946,9 +946,9 @@ ENTRY(camellia_ecb_dec_16way) FRAME_END ret; -ENDPROC(camellia_ecb_dec_16way) +SYM_FUNC_END(camellia_ecb_dec_16way) -ENTRY(camellia_cbc_dec_16way) +SYM_FUNC_START(camellia_cbc_dec_16way) /* input: * %rdi: ctx, CTX * %rsi: dst (16 blocks) @@ -997,7 +997,7 @@ ENTRY(camellia_cbc_dec_16way) FRAME_END ret; -ENDPROC(camellia_cbc_dec_16way) +SYM_FUNC_END(camellia_cbc_dec_16way) #define inc_le128(x, minus_one, tmp) \ vpcmpeqq minus_one, x, tmp; \ @@ -1005,7 +1005,7 @@ ENDPROC(camellia_cbc_dec_16way) vpslldq $8, tmp, tmp; \ vpsubq tmp, x, x; -ENTRY(camellia_ctr_16way) +SYM_FUNC_START(camellia_ctr_16way) /* input: * %rdi: ctx, CTX * %rsi: dst (16 blocks) @@ -1110,7 +1110,7 @@ ENTRY(camellia_ctr_16way) FRAME_END ret; -ENDPROC(camellia_ctr_16way) +SYM_FUNC_END(camellia_ctr_16way) #define gf128mul_x_ble(iv, mask, tmp) \ vpsrad $31, iv, tmp; \ @@ -1256,7 +1256,7 @@ SYM_FUNC_START_LOCAL(camellia_xts_crypt_16way) ret; SYM_FUNC_END(camellia_xts_crypt_16way) -ENTRY(camellia_xts_enc_16way) +SYM_FUNC_START(camellia_xts_enc_16way) /* input: * %rdi: ctx, CTX * %rsi: dst (16 blocks) @@ -1268,9 +1268,9 @@ ENTRY(camellia_xts_enc_16way) leaq __camellia_enc_blk16, %r9; jmp camellia_xts_crypt_16way; -ENDPROC(camellia_xts_enc_16way) +SYM_FUNC_END(camellia_xts_enc_16way) -ENTRY(camellia_xts_dec_16way) +SYM_FUNC_START(camellia_xts_dec_16way) /* input: * %rdi: ctx, CTX * %rsi: dst (16 blocks) @@ -1286,4 +1286,4 @@ ENTRY(camellia_xts_dec_16way) leaq __camellia_dec_blk16, %r9; jmp camellia_xts_crypt_16way; -ENDPROC(camellia_xts_dec_16way) +SYM_FUNC_END(camellia_xts_dec_16way) diff --git a/arch/x86/crypto/camellia-aesni-avx2-asm_64.S b/arch/x86/crypto/camellia-aesni-avx2-asm_64.S index 916a3e2b8ea4..85f0a265dee8 100644 --- a/arch/x86/crypto/camellia-aesni-avx2-asm_64.S +++ b/arch/x86/crypto/camellia-aesni-avx2-asm_64.S @@ -936,7 +936,7 @@ SYM_FUNC_START_LOCAL(__camellia_dec_blk32) jmp .Ldec_max24; SYM_FUNC_END(__camellia_dec_blk32) -ENTRY(camellia_ecb_enc_32way) +SYM_FUNC_START(camellia_ecb_enc_32way) /* input: * %rdi: ctx, CTX * %rsi: dst (32 blocks) @@ -963,9 +963,9 @@ ENTRY(camellia_ecb_enc_32way) FRAME_END ret; -ENDPROC(camellia_ecb_enc_32way) +SYM_FUNC_END(camellia_ecb_enc_32way) -ENTRY(camellia_ecb_dec_32way) +SYM_FUNC_START(camellia_ecb_dec_32way) /* input: * %rdi: ctx, CTX * %rsi: dst (32 blocks) @@ -997,9 +997,9 @@ ENTRY(camellia_ecb_dec_32way) FRAME_END ret; -ENDPROC(camellia_ecb_dec_32way) +SYM_FUNC_END(camellia_ecb_dec_32way) -ENTRY(camellia_cbc_dec_32way) +SYM_FUNC_START(camellia_cbc_dec_32way) /* input: * %rdi: ctx, CTX * %rsi: dst (32 blocks) @@ -1065,7 +1065,7 @@ ENTRY(camellia_cbc_dec_32way) FRAME_END ret; -ENDPROC(camellia_cbc_dec_32way) +SYM_FUNC_END(camellia_cbc_dec_32way) #define inc_le128(x, minus_one, tmp) \ vpcmpeqq minus_one, x, tmp; \ @@ -1081,7 +1081,7 @@ ENDPROC(camellia_cbc_dec_32way) vpslldq $8, tmp1, tmp1; \ vpsubq tmp1, x, x; -ENTRY(camellia_ctr_32way) +SYM_FUNC_START(camellia_ctr_32way) /* input: * %rdi: ctx, CTX * %rsi: dst (32 blocks) @@ -1205,7 +1205,7 @@ ENTRY(camellia_ctr_32way) FRAME_END ret; -ENDPROC(camellia_ctr_32way) +SYM_FUNC_END(camellia_ctr_32way) #define gf128mul_x_ble(iv, mask, tmp) \ vpsrad $31, iv, tmp; \ @@ -1374,7 +1374,7 @@ SYM_FUNC_START_LOCAL(camellia_xts_crypt_32way) ret; SYM_FUNC_END(camellia_xts_crypt_32way) -ENTRY(camellia_xts_enc_32way) +SYM_FUNC_START(camellia_xts_enc_32way) /* input: * %rdi: ctx, CTX * %rsi: dst (32 blocks) @@ -1387,9 +1387,9 @@ ENTRY(camellia_xts_enc_32way) leaq __camellia_enc_blk32, %r9; jmp camellia_xts_crypt_32way; -ENDPROC(camellia_xts_enc_32way) +SYM_FUNC_END(camellia_xts_enc_32way) -ENTRY(camellia_xts_dec_32way) +SYM_FUNC_START(camellia_xts_dec_32way) /* input: * %rdi: ctx, CTX * %rsi: dst (32 blocks) @@ -1405,4 +1405,4 @@ ENTRY(camellia_xts_dec_32way) leaq __camellia_dec_blk32, %r9; jmp camellia_xts_crypt_32way; -ENDPROC(camellia_xts_dec_32way) +SYM_FUNC_END(camellia_xts_dec_32way) diff --git a/arch/x86/crypto/camellia-x86_64-asm_64.S b/arch/x86/crypto/camellia-x86_64-asm_64.S index 95ba6956a7f6..4d77c9dcddbd 100644 --- a/arch/x86/crypto/camellia-x86_64-asm_64.S +++ b/arch/x86/crypto/camellia-x86_64-asm_64.S @@ -190,7 +190,7 @@ bswapq RAB0; \ movq RAB0, 4*2(RIO); -ENTRY(__camellia_enc_blk) +SYM_FUNC_START(__camellia_enc_blk) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -235,9 +235,9 @@ ENTRY(__camellia_enc_blk) movq RR12, %r12; ret; -ENDPROC(__camellia_enc_blk) +SYM_FUNC_END(__camellia_enc_blk) -ENTRY(camellia_dec_blk) +SYM_FUNC_START(camellia_dec_blk) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -273,7 +273,7 @@ ENTRY(camellia_dec_blk) movq RR12, %r12; ret; -ENDPROC(camellia_dec_blk) +SYM_FUNC_END(camellia_dec_blk) /********************************************************************** 2-way camellia @@ -424,7 +424,7 @@ ENDPROC(camellia_dec_blk) bswapq RAB1; \ movq RAB1, 12*2(RIO); -ENTRY(__camellia_enc_blk_2way) +SYM_FUNC_START(__camellia_enc_blk_2way) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -471,9 +471,9 @@ ENTRY(__camellia_enc_blk_2way) movq RR12, %r12; popq %rbx; ret; -ENDPROC(__camellia_enc_blk_2way) +SYM_FUNC_END(__camellia_enc_blk_2way) -ENTRY(camellia_dec_blk_2way) +SYM_FUNC_START(camellia_dec_blk_2way) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -511,4 +511,4 @@ ENTRY(camellia_dec_blk_2way) movq RR12, %r12; movq RXOR, %rbx; ret; -ENDPROC(camellia_dec_blk_2way) +SYM_FUNC_END(camellia_dec_blk_2way) diff --git a/arch/x86/crypto/cast5-avx-x86_64-asm_64.S b/arch/x86/crypto/cast5-avx-x86_64-asm_64.S index b26df120413c..3789c61f6166 100644 --- a/arch/x86/crypto/cast5-avx-x86_64-asm_64.S +++ b/arch/x86/crypto/cast5-avx-x86_64-asm_64.S @@ -374,7 +374,7 @@ SYM_FUNC_START_LOCAL(__cast5_dec_blk16) jmp .L__dec_tail; SYM_FUNC_END(__cast5_dec_blk16) -ENTRY(cast5_ecb_enc_16way) +SYM_FUNC_START(cast5_ecb_enc_16way) /* input: * %rdi: ctx * %rsi: dst @@ -409,9 +409,9 @@ ENTRY(cast5_ecb_enc_16way) popq %r15; FRAME_END ret; -ENDPROC(cast5_ecb_enc_16way) +SYM_FUNC_END(cast5_ecb_enc_16way) -ENTRY(cast5_ecb_dec_16way) +SYM_FUNC_START(cast5_ecb_dec_16way) /* input: * %rdi: ctx * %rsi: dst @@ -447,9 +447,9 @@ ENTRY(cast5_ecb_dec_16way) popq %r15; FRAME_END ret; -ENDPROC(cast5_ecb_dec_16way) +SYM_FUNC_END(cast5_ecb_dec_16way) -ENTRY(cast5_cbc_dec_16way) +SYM_FUNC_START(cast5_cbc_dec_16way) /* input: * %rdi: ctx * %rsi: dst @@ -499,9 +499,9 @@ ENTRY(cast5_cbc_dec_16way) popq %r12; FRAME_END ret; -ENDPROC(cast5_cbc_dec_16way) +SYM_FUNC_END(cast5_cbc_dec_16way) -ENTRY(cast5_ctr_16way) +SYM_FUNC_START(cast5_ctr_16way) /* input: * %rdi: ctx * %rsi: dst @@ -575,4 +575,4 @@ ENTRY(cast5_ctr_16way) popq %r12; FRAME_END ret; -ENDPROC(cast5_ctr_16way) +SYM_FUNC_END(cast5_ctr_16way) diff --git a/arch/x86/crypto/cast6-avx-x86_64-asm_64.S b/arch/x86/crypto/cast6-avx-x86_64-asm_64.S index 0a68e42a00f9..e38ab4571a6b 100644 --- a/arch/x86/crypto/cast6-avx-x86_64-asm_64.S +++ b/arch/x86/crypto/cast6-avx-x86_64-asm_64.S @@ -356,7 +356,7 @@ SYM_FUNC_START_LOCAL(__cast6_dec_blk8) ret; SYM_FUNC_END(__cast6_dec_blk8) -ENTRY(cast6_ecb_enc_8way) +SYM_FUNC_START(cast6_ecb_enc_8way) /* input: * %rdi: ctx * %rsi: dst @@ -377,9 +377,9 @@ ENTRY(cast6_ecb_enc_8way) popq %r15; FRAME_END ret; -ENDPROC(cast6_ecb_enc_8way) +SYM_FUNC_END(cast6_ecb_enc_8way) -ENTRY(cast6_ecb_dec_8way) +SYM_FUNC_START(cast6_ecb_dec_8way) /* input: * %rdi: ctx * %rsi: dst @@ -400,9 +400,9 @@ ENTRY(cast6_ecb_dec_8way) popq %r15; FRAME_END ret; -ENDPROC(cast6_ecb_dec_8way) +SYM_FUNC_END(cast6_ecb_dec_8way) -ENTRY(cast6_cbc_dec_8way) +SYM_FUNC_START(cast6_cbc_dec_8way) /* input: * %rdi: ctx * %rsi: dst @@ -426,9 +426,9 @@ ENTRY(cast6_cbc_dec_8way) popq %r12; FRAME_END ret; -ENDPROC(cast6_cbc_dec_8way) +SYM_FUNC_END(cast6_cbc_dec_8way) -ENTRY(cast6_ctr_8way) +SYM_FUNC_START(cast6_ctr_8way) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -454,9 +454,9 @@ ENTRY(cast6_ctr_8way) popq %r12; FRAME_END ret; -ENDPROC(cast6_ctr_8way) +SYM_FUNC_END(cast6_ctr_8way) -ENTRY(cast6_xts_enc_8way) +SYM_FUNC_START(cast6_xts_enc_8way) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -481,9 +481,9 @@ ENTRY(cast6_xts_enc_8way) popq %r15; FRAME_END ret; -ENDPROC(cast6_xts_enc_8way) +SYM_FUNC_END(cast6_xts_enc_8way) -ENTRY(cast6_xts_dec_8way) +SYM_FUNC_START(cast6_xts_dec_8way) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -508,4 +508,4 @@ ENTRY(cast6_xts_dec_8way) popq %r15; FRAME_END ret; -ENDPROC(cast6_xts_dec_8way) +SYM_FUNC_END(cast6_xts_dec_8way) diff --git a/arch/x86/crypto/chacha20-avx2-x86_64.S b/arch/x86/crypto/chacha20-avx2-x86_64.S index f3cd26f48332..72c96a6aec8f 100644 --- a/arch/x86/crypto/chacha20-avx2-x86_64.S +++ b/arch/x86/crypto/chacha20-avx2-x86_64.S @@ -28,7 +28,7 @@ CTRINC: .octa 0x00000003000000020000000100000000 .text -ENTRY(chacha20_8block_xor_avx2) +SYM_FUNC_START(chacha20_8block_xor_avx2) # %rdi: Input state matrix, s # %rsi: 8 data blocks output, o # %rdx: 8 data blocks input, i @@ -445,4 +445,4 @@ ENTRY(chacha20_8block_xor_avx2) vzeroupper lea -8(%r10),%rsp ret -ENDPROC(chacha20_8block_xor_avx2) +SYM_FUNC_END(chacha20_8block_xor_avx2) diff --git a/arch/x86/crypto/chacha20-ssse3-x86_64.S b/arch/x86/crypto/chacha20-ssse3-x86_64.S index 512a2b500fd1..950dea7c92d1 100644 --- a/arch/x86/crypto/chacha20-ssse3-x86_64.S +++ b/arch/x86/crypto/chacha20-ssse3-x86_64.S @@ -23,7 +23,7 @@ CTRINC: .octa 0x00000003000000020000000100000000 .text -ENTRY(chacha20_block_xor_ssse3) +SYM_FUNC_START(chacha20_block_xor_ssse3) # %rdi: Input state matrix, s # %rsi: 1 data block output, o # %rdx: 1 data block input, i @@ -143,9 +143,9 @@ ENTRY(chacha20_block_xor_ssse3) movdqu %xmm3,0x30(%rsi) ret -ENDPROC(chacha20_block_xor_ssse3) +SYM_FUNC_END(chacha20_block_xor_ssse3) -ENTRY(chacha20_4block_xor_ssse3) +SYM_FUNC_START(chacha20_4block_xor_ssse3) # %rdi: Input state matrix, s # %rsi: 4 data blocks output, o # %rdx: 4 data blocks input, i @@ -627,4 +627,4 @@ ENTRY(chacha20_4block_xor_ssse3) lea -8(%r10),%rsp ret -ENDPROC(chacha20_4block_xor_ssse3) +SYM_FUNC_END(chacha20_4block_xor_ssse3) diff --git a/arch/x86/crypto/crc32-pclmul_asm.S b/arch/x86/crypto/crc32-pclmul_asm.S index 1c099dc08cc3..9fd28ff65bc2 100644 --- a/arch/x86/crypto/crc32-pclmul_asm.S +++ b/arch/x86/crypto/crc32-pclmul_asm.S @@ -103,7 +103,7 @@ * size_t len, uint crc32) */ -ENTRY(crc32_pclmul_le_16) /* buffer and buffer size are 16 bytes aligned */ +SYM_FUNC_START(crc32_pclmul_le_16) /* buffer and buffer size are 16 bytes aligned */ movdqa (BUF), %xmm1 movdqa 0x10(BUF), %xmm2 movdqa 0x20(BUF), %xmm3 @@ -238,4 +238,4 @@ fold_64: PEXTRD 0x01, %xmm1, %eax ret -ENDPROC(crc32_pclmul_le_16) +SYM_FUNC_END(crc32_pclmul_le_16) diff --git a/arch/x86/crypto/crc32c-pcl-intel-asm_64.S b/arch/x86/crypto/crc32c-pcl-intel-asm_64.S index d9b734d0c8cc..0e6690e3618c 100644 --- a/arch/x86/crypto/crc32c-pcl-intel-asm_64.S +++ b/arch/x86/crypto/crc32c-pcl-intel-asm_64.S @@ -74,7 +74,7 @@ # unsigned int crc_pcl(u8 *buffer, int len, unsigned int crc_init); .text -ENTRY(crc_pcl) +SYM_FUNC_START(crc_pcl) #define bufp %rdi #define bufp_dw %edi #define bufp_w %di @@ -311,7 +311,7 @@ do_return: popq %rdi popq %rbx ret -ENDPROC(crc_pcl) +SYM_FUNC_END(crc_pcl) .section .rodata, "a", @progbits ################################################################ diff --git a/arch/x86/crypto/crct10dif-pcl-asm_64.S b/arch/x86/crypto/crct10dif-pcl-asm_64.S index de04d3e98d8d..f56b499541e0 100644 --- a/arch/x86/crypto/crct10dif-pcl-asm_64.S +++ b/arch/x86/crypto/crct10dif-pcl-asm_64.S @@ -68,7 +68,7 @@ #define arg1_low32 %edi -ENTRY(crc_t10dif_pcl) +SYM_FUNC_START(crc_t10dif_pcl) .align 16 # adjust the 16-bit initial_crc value, scale it to 32 bits @@ -552,7 +552,7 @@ _only_less_than_2: jmp _barrett -ENDPROC(crc_t10dif_pcl) +SYM_FUNC_END(crc_t10dif_pcl) .section .rodata, "a", @progbits .align 16 diff --git a/arch/x86/crypto/des3_ede-asm_64.S b/arch/x86/crypto/des3_ede-asm_64.S index 8e49ce117494..82779c08029b 100644 --- a/arch/x86/crypto/des3_ede-asm_64.S +++ b/arch/x86/crypto/des3_ede-asm_64.S @@ -171,7 +171,7 @@ movl left##d, (io); \ movl right##d, 4(io); -ENTRY(des3_ede_x86_64_crypt_blk) +SYM_FUNC_START(des3_ede_x86_64_crypt_blk) /* input: * %rdi: round keys, CTX * %rsi: dst @@ -253,7 +253,7 @@ ENTRY(des3_ede_x86_64_crypt_blk) popq %rbx; ret; -ENDPROC(des3_ede_x86_64_crypt_blk) +SYM_FUNC_END(des3_ede_x86_64_crypt_blk) /*********************************************************************** * 3-way 3DES @@ -427,7 +427,7 @@ ENDPROC(des3_ede_x86_64_crypt_blk) #define __movq(src, dst) \ movq src, dst; -ENTRY(des3_ede_x86_64_crypt_blk_3way) +SYM_FUNC_START(des3_ede_x86_64_crypt_blk_3way) /* input: * %rdi: ctx, round keys * %rsi: dst (3 blocks) @@ -538,7 +538,7 @@ ENTRY(des3_ede_x86_64_crypt_blk_3way) popq %rbx; ret; -ENDPROC(des3_ede_x86_64_crypt_blk_3way) +SYM_FUNC_END(des3_ede_x86_64_crypt_blk_3way) .section .rodata, "a", @progbits .align 16 diff --git a/arch/x86/crypto/ghash-clmulni-intel_asm.S b/arch/x86/crypto/ghash-clmulni-intel_asm.S index c3db86842578..12e3a850257b 100644 --- a/arch/x86/crypto/ghash-clmulni-intel_asm.S +++ b/arch/x86/crypto/ghash-clmulni-intel_asm.S @@ -93,7 +93,7 @@ SYM_FUNC_START_LOCAL(__clmul_gf128mul_ble) SYM_FUNC_END(__clmul_gf128mul_ble) /* void clmul_ghash_mul(char *dst, const u128 *shash) */ -ENTRY(clmul_ghash_mul) +SYM_FUNC_START(clmul_ghash_mul) FRAME_BEGIN movups (%rdi), DATA movups (%rsi), SHASH @@ -104,13 +104,13 @@ ENTRY(clmul_ghash_mul) movups DATA, (%rdi) FRAME_END ret -ENDPROC(clmul_ghash_mul) +SYM_FUNC_END(clmul_ghash_mul) /* * void clmul_ghash_update(char *dst, const char *src, unsigned int srclen, * const u128 *shash); */ -ENTRY(clmul_ghash_update) +SYM_FUNC_START(clmul_ghash_update) FRAME_BEGIN cmp $16, %rdx jb .Lupdate_just_ret # check length @@ -133,4 +133,4 @@ ENTRY(clmul_ghash_update) .Lupdate_just_ret: FRAME_END ret -ENDPROC(clmul_ghash_update) +SYM_FUNC_END(clmul_ghash_update) diff --git a/arch/x86/crypto/poly1305-avx2-x86_64.S b/arch/x86/crypto/poly1305-avx2-x86_64.S index 3b6e70d085da..68b0f4386dc4 100644 --- a/arch/x86/crypto/poly1305-avx2-x86_64.S +++ b/arch/x86/crypto/poly1305-avx2-x86_64.S @@ -83,7 +83,7 @@ ORMASK: .octa 0x00000000010000000000000001000000 #define d3 %r12 #define d4 %r13 -ENTRY(poly1305_4block_avx2) +SYM_FUNC_START(poly1305_4block_avx2) # %rdi: Accumulator h[5] # %rsi: 64 byte input block m # %rdx: Poly1305 key r[5] @@ -385,4 +385,4 @@ ENTRY(poly1305_4block_avx2) pop %r12 pop %rbx ret -ENDPROC(poly1305_4block_avx2) +SYM_FUNC_END(poly1305_4block_avx2) diff --git a/arch/x86/crypto/poly1305-sse2-x86_64.S b/arch/x86/crypto/poly1305-sse2-x86_64.S index c88c670cb5fc..66715fbedc18 100644 --- a/arch/x86/crypto/poly1305-sse2-x86_64.S +++ b/arch/x86/crypto/poly1305-sse2-x86_64.S @@ -50,7 +50,7 @@ ORMASK: .octa 0x00000000010000000000000001000000 #define d3 %r11 #define d4 %r12 -ENTRY(poly1305_block_sse2) +SYM_FUNC_START(poly1305_block_sse2) # %rdi: Accumulator h[5] # %rsi: 16 byte input block m # %rdx: Poly1305 key r[5] @@ -276,7 +276,7 @@ ENTRY(poly1305_block_sse2) pop %r12 pop %rbx ret -ENDPROC(poly1305_block_sse2) +SYM_FUNC_END(poly1305_block_sse2) #define u0 0x00(%r8) @@ -301,7 +301,7 @@ ENDPROC(poly1305_block_sse2) #undef d0 #define d0 %r13 -ENTRY(poly1305_2block_sse2) +SYM_FUNC_START(poly1305_2block_sse2) # %rdi: Accumulator h[5] # %rsi: 16 byte input block m # %rdx: Poly1305 key r[5] @@ -581,4 +581,4 @@ ENTRY(poly1305_2block_sse2) pop %r12 pop %rbx ret -ENDPROC(poly1305_2block_sse2) +SYM_FUNC_END(poly1305_2block_sse2) diff --git a/arch/x86/crypto/salsa20-x86_64-asm_64.S b/arch/x86/crypto/salsa20-x86_64-asm_64.S index 03a4918f41ee..5984d8c2edc5 100644 --- a/arch/x86/crypto/salsa20-x86_64-asm_64.S +++ b/arch/x86/crypto/salsa20-x86_64-asm_64.S @@ -2,7 +2,7 @@ #include # enter salsa20_encrypt_bytes -ENTRY(salsa20_encrypt_bytes) +SYM_FUNC_START(salsa20_encrypt_bytes) mov %rsp,%r11 and $31,%r11 add $256,%r11 @@ -802,4 +802,4 @@ ENTRY(salsa20_encrypt_bytes) # comment:fp stack unchanged by jump # goto bytesatleast1 jmp ._bytesatleast1 -ENDPROC(salsa20_encrypt_bytes) +SYM_FUNC_END(salsa20_encrypt_bytes) diff --git a/arch/x86/crypto/serpent-avx-x86_64-asm_64.S b/arch/x86/crypto/serpent-avx-x86_64-asm_64.S index c2d4a1fc9ee8..72de86a8091e 100644 --- a/arch/x86/crypto/serpent-avx-x86_64-asm_64.S +++ b/arch/x86/crypto/serpent-avx-x86_64-asm_64.S @@ -677,7 +677,7 @@ SYM_FUNC_START_LOCAL(__serpent_dec_blk8_avx) ret; SYM_FUNC_END(__serpent_dec_blk8_avx) -ENTRY(serpent_ecb_enc_8way_avx) +SYM_FUNC_START(serpent_ecb_enc_8way_avx) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -693,9 +693,9 @@ ENTRY(serpent_ecb_enc_8way_avx) FRAME_END ret; -ENDPROC(serpent_ecb_enc_8way_avx) +SYM_FUNC_END(serpent_ecb_enc_8way_avx) -ENTRY(serpent_ecb_dec_8way_avx) +SYM_FUNC_START(serpent_ecb_dec_8way_avx) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -711,9 +711,9 @@ ENTRY(serpent_ecb_dec_8way_avx) FRAME_END ret; -ENDPROC(serpent_ecb_dec_8way_avx) +SYM_FUNC_END(serpent_ecb_dec_8way_avx) -ENTRY(serpent_cbc_dec_8way_avx) +SYM_FUNC_START(serpent_cbc_dec_8way_avx) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -729,9 +729,9 @@ ENTRY(serpent_cbc_dec_8way_avx) FRAME_END ret; -ENDPROC(serpent_cbc_dec_8way_avx) +SYM_FUNC_END(serpent_cbc_dec_8way_avx) -ENTRY(serpent_ctr_8way_avx) +SYM_FUNC_START(serpent_ctr_8way_avx) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -749,9 +749,9 @@ ENTRY(serpent_ctr_8way_avx) FRAME_END ret; -ENDPROC(serpent_ctr_8way_avx) +SYM_FUNC_END(serpent_ctr_8way_avx) -ENTRY(serpent_xts_enc_8way_avx) +SYM_FUNC_START(serpent_xts_enc_8way_avx) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -771,9 +771,9 @@ ENTRY(serpent_xts_enc_8way_avx) FRAME_END ret; -ENDPROC(serpent_xts_enc_8way_avx) +SYM_FUNC_END(serpent_xts_enc_8way_avx) -ENTRY(serpent_xts_dec_8way_avx) +SYM_FUNC_START(serpent_xts_dec_8way_avx) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -793,4 +793,4 @@ ENTRY(serpent_xts_dec_8way_avx) FRAME_END ret; -ENDPROC(serpent_xts_dec_8way_avx) +SYM_FUNC_END(serpent_xts_dec_8way_avx) diff --git a/arch/x86/crypto/serpent-avx2-asm_64.S b/arch/x86/crypto/serpent-avx2-asm_64.S index 52c527ce4b18..b866f1632803 100644 --- a/arch/x86/crypto/serpent-avx2-asm_64.S +++ b/arch/x86/crypto/serpent-avx2-asm_64.S @@ -673,7 +673,7 @@ SYM_FUNC_START_LOCAL(__serpent_dec_blk16) ret; SYM_FUNC_END(__serpent_dec_blk16) -ENTRY(serpent_ecb_enc_16way) +SYM_FUNC_START(serpent_ecb_enc_16way) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -693,9 +693,9 @@ ENTRY(serpent_ecb_enc_16way) FRAME_END ret; -ENDPROC(serpent_ecb_enc_16way) +SYM_FUNC_END(serpent_ecb_enc_16way) -ENTRY(serpent_ecb_dec_16way) +SYM_FUNC_START(serpent_ecb_dec_16way) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -715,9 +715,9 @@ ENTRY(serpent_ecb_dec_16way) FRAME_END ret; -ENDPROC(serpent_ecb_dec_16way) +SYM_FUNC_END(serpent_ecb_dec_16way) -ENTRY(serpent_cbc_dec_16way) +SYM_FUNC_START(serpent_cbc_dec_16way) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -738,9 +738,9 @@ ENTRY(serpent_cbc_dec_16way) FRAME_END ret; -ENDPROC(serpent_cbc_dec_16way) +SYM_FUNC_END(serpent_cbc_dec_16way) -ENTRY(serpent_ctr_16way) +SYM_FUNC_START(serpent_ctr_16way) /* input: * %rdi: ctx, CTX * %rsi: dst (16 blocks) @@ -763,9 +763,9 @@ ENTRY(serpent_ctr_16way) FRAME_END ret; -ENDPROC(serpent_ctr_16way) +SYM_FUNC_END(serpent_ctr_16way) -ENTRY(serpent_xts_enc_16way) +SYM_FUNC_START(serpent_xts_enc_16way) /* input: * %rdi: ctx, CTX * %rsi: dst (16 blocks) @@ -789,9 +789,9 @@ ENTRY(serpent_xts_enc_16way) FRAME_END ret; -ENDPROC(serpent_xts_enc_16way) +SYM_FUNC_END(serpent_xts_enc_16way) -ENTRY(serpent_xts_dec_16way) +SYM_FUNC_START(serpent_xts_dec_16way) /* input: * %rdi: ctx, CTX * %rsi: dst (16 blocks) @@ -815,4 +815,4 @@ ENTRY(serpent_xts_dec_16way) FRAME_END ret; -ENDPROC(serpent_xts_dec_16way) +SYM_FUNC_END(serpent_xts_dec_16way) diff --git a/arch/x86/crypto/serpent-sse2-x86_64-asm_64.S b/arch/x86/crypto/serpent-sse2-x86_64-asm_64.S index acc066c7c6b2..bdeee900df63 100644 --- a/arch/x86/crypto/serpent-sse2-x86_64-asm_64.S +++ b/arch/x86/crypto/serpent-sse2-x86_64-asm_64.S @@ -634,7 +634,7 @@ pxor t0, x3; \ movdqu x3, (3*4*4)(out); -ENTRY(__serpent_enc_blk_8way) +SYM_FUNC_START(__serpent_enc_blk_8way) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -697,9 +697,9 @@ ENTRY(__serpent_enc_blk_8way) xor_blocks(%rax, RA2, RB2, RC2, RD2, RK0, RK1, RK2); ret; -ENDPROC(__serpent_enc_blk_8way) +SYM_FUNC_END(__serpent_enc_blk_8way) -ENTRY(serpent_dec_blk_8way) +SYM_FUNC_START(serpent_dec_blk_8way) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -751,4 +751,4 @@ ENTRY(serpent_dec_blk_8way) write_blocks(%rax, RC2, RD2, RB2, RE2, RK0, RK1, RK2); ret; -ENDPROC(serpent_dec_blk_8way) +SYM_FUNC_END(serpent_dec_blk_8way) diff --git a/arch/x86/crypto/sha1-mb/sha1_mb_mgr_flush_avx2.S b/arch/x86/crypto/sha1-mb/sha1_mb_mgr_flush_avx2.S index 7cfba738f104..a1be3b33990c 100644 --- a/arch/x86/crypto/sha1-mb/sha1_mb_mgr_flush_avx2.S +++ b/arch/x86/crypto/sha1-mb/sha1_mb_mgr_flush_avx2.S @@ -103,7 +103,7 @@ offset = \_offset # JOB* sha1_mb_mgr_flush_avx2(MB_MGR *state) # arg 1 : rcx : state -ENTRY(sha1_mb_mgr_flush_avx2) +SYM_FUNC_START(sha1_mb_mgr_flush_avx2) FRAME_BEGIN push %rbx @@ -220,13 +220,13 @@ return: return_null: xor job_rax, job_rax jmp return -ENDPROC(sha1_mb_mgr_flush_avx2) +SYM_FUNC_END(sha1_mb_mgr_flush_avx2) ################################################################# .align 16 -ENTRY(sha1_mb_mgr_get_comp_job_avx2) +SYM_FUNC_START(sha1_mb_mgr_get_comp_job_avx2) push %rbx ## if bit 32+3 is set, then all lanes are empty @@ -279,7 +279,7 @@ ENTRY(sha1_mb_mgr_get_comp_job_avx2) xor job_rax, job_rax pop %rbx ret -ENDPROC(sha1_mb_mgr_get_comp_job_avx2) +SYM_FUNC_END(sha1_mb_mgr_get_comp_job_avx2) .section .rodata.cst16.clear_low_nibble, "aM", @progbits, 16 .align 16 diff --git a/arch/x86/crypto/sha1-mb/sha1_mb_mgr_submit_avx2.S b/arch/x86/crypto/sha1-mb/sha1_mb_mgr_submit_avx2.S index 7a93b1c0d69a..a46e3b04385e 100644 --- a/arch/x86/crypto/sha1-mb/sha1_mb_mgr_submit_avx2.S +++ b/arch/x86/crypto/sha1-mb/sha1_mb_mgr_submit_avx2.S @@ -98,7 +98,7 @@ lane_data = %r10 # JOB* submit_mb_mgr_submit_avx2(MB_MGR *state, job_sha1 *job) # arg 1 : rcx : state # arg 2 : rdx : job -ENTRY(sha1_mb_mgr_submit_avx2) +SYM_FUNC_START(sha1_mb_mgr_submit_avx2) FRAME_BEGIN push %rbx push %r12 @@ -201,7 +201,7 @@ return_null: xor job_rax, job_rax jmp return -ENDPROC(sha1_mb_mgr_submit_avx2) +SYM_FUNC_END(sha1_mb_mgr_submit_avx2) .section .rodata.cst16.clear_low_nibble, "aM", @progbits, 16 .align 16 diff --git a/arch/x86/crypto/sha1-mb/sha1_x8_avx2.S b/arch/x86/crypto/sha1-mb/sha1_x8_avx2.S index 20f77aa633de..04d763520a82 100644 --- a/arch/x86/crypto/sha1-mb/sha1_x8_avx2.S +++ b/arch/x86/crypto/sha1-mb/sha1_x8_avx2.S @@ -294,7 +294,7 @@ W14 = TMP_ # arg 1 : pointer to array[4] of pointer to input data # arg 2 : size (in blocks) ;; assumed to be >= 1 # -ENTRY(sha1_x8_avx2) +SYM_FUNC_START(sha1_x8_avx2) # save callee-saved clobbered registers to comply with C function ABI push %r12 @@ -458,7 +458,7 @@ lloop: pop %r12 ret -ENDPROC(sha1_x8_avx2) +SYM_FUNC_END(sha1_x8_avx2) .section .rodata.cst32.K00_19, "aM", @progbits, 32 diff --git a/arch/x86/crypto/sha1_avx2_x86_64_asm.S b/arch/x86/crypto/sha1_avx2_x86_64_asm.S index 9f712a7dfd79..6decc85ef7b7 100644 --- a/arch/x86/crypto/sha1_avx2_x86_64_asm.S +++ b/arch/x86/crypto/sha1_avx2_x86_64_asm.S @@ -634,7 +634,7 @@ _loop3: * param: function's name */ .macro SHA1_VECTOR_ASM name - ENTRY(\name) + SYM_FUNC_START(\name) push %rbx push %r12 @@ -676,7 +676,7 @@ _loop3: ret - ENDPROC(\name) + SYM_FUNC_END(\name) .endm .section .rodata diff --git a/arch/x86/crypto/sha1_ni_asm.S b/arch/x86/crypto/sha1_ni_asm.S index ebbdba72ae07..11efe3a45a1f 100644 --- a/arch/x86/crypto/sha1_ni_asm.S +++ b/arch/x86/crypto/sha1_ni_asm.S @@ -95,7 +95,7 @@ */ .text .align 32 -ENTRY(sha1_ni_transform) +SYM_FUNC_START(sha1_ni_transform) mov %rsp, RSPSAVE sub $FRAME_SIZE, %rsp and $~0xF, %rsp @@ -291,7 +291,7 @@ ENTRY(sha1_ni_transform) mov RSPSAVE, %rsp ret -ENDPROC(sha1_ni_transform) +SYM_FUNC_END(sha1_ni_transform) .section .rodata.cst16.PSHUFFLE_BYTE_FLIP_MASK, "aM", @progbits, 16 .align 16 diff --git a/arch/x86/crypto/sha1_ssse3_asm.S b/arch/x86/crypto/sha1_ssse3_asm.S index 6204bd53528c..c253255fd4c1 100644 --- a/arch/x86/crypto/sha1_ssse3_asm.S +++ b/arch/x86/crypto/sha1_ssse3_asm.S @@ -71,7 +71,7 @@ * param: function's name */ .macro SHA1_VECTOR_ASM name - ENTRY(\name) + SYM_FUNC_START(\name) push %rbx push %r12 @@ -105,7 +105,7 @@ pop %rbx ret - ENDPROC(\name) + SYM_FUNC_END(\name) .endm /* diff --git a/arch/x86/crypto/sha256-avx-asm.S b/arch/x86/crypto/sha256-avx-asm.S index 001bbcf93c79..22e14c8dd2e4 100644 --- a/arch/x86/crypto/sha256-avx-asm.S +++ b/arch/x86/crypto/sha256-avx-asm.S @@ -347,7 +347,7 @@ a = TMP_ ## arg 3 : Num blocks ######################################################################## .text -ENTRY(sha256_transform_avx) +SYM_FUNC_START(sha256_transform_avx) .align 32 pushq %rbx pushq %r12 @@ -460,7 +460,7 @@ done_hash: popq %r12 popq %rbx ret -ENDPROC(sha256_transform_avx) +SYM_FUNC_END(sha256_transform_avx) .section .rodata.cst256.K256, "aM", @progbits, 256 .align 64 diff --git a/arch/x86/crypto/sha256-avx2-asm.S b/arch/x86/crypto/sha256-avx2-asm.S index 1420db15dcdd..519b551ad576 100644 --- a/arch/x86/crypto/sha256-avx2-asm.S +++ b/arch/x86/crypto/sha256-avx2-asm.S @@ -526,7 +526,7 @@ STACK_SIZE = _RSP + _RSP_SIZE ## arg 3 : Num blocks ######################################################################## .text -ENTRY(sha256_transform_rorx) +SYM_FUNC_START(sha256_transform_rorx) .align 32 pushq %rbx pushq %r12 @@ -713,7 +713,7 @@ done_hash: popq %r12 popq %rbx ret -ENDPROC(sha256_transform_rorx) +SYM_FUNC_END(sha256_transform_rorx) .section .rodata.cst512.K256, "aM", @progbits, 512 .align 64 diff --git a/arch/x86/crypto/sha256-mb/sha256_mb_mgr_flush_avx2.S b/arch/x86/crypto/sha256-mb/sha256_mb_mgr_flush_avx2.S index 16c4ccb1f154..11f00ee0a3a4 100644 --- a/arch/x86/crypto/sha256-mb/sha256_mb_mgr_flush_avx2.S +++ b/arch/x86/crypto/sha256-mb/sha256_mb_mgr_flush_avx2.S @@ -101,7 +101,7 @@ offset = \_offset # JOB_SHA256* sha256_mb_mgr_flush_avx2(MB_MGR *state) # arg 1 : rcx : state -ENTRY(sha256_mb_mgr_flush_avx2) +SYM_FUNC_START(sha256_mb_mgr_flush_avx2) FRAME_BEGIN push %rbx @@ -220,12 +220,12 @@ return: return_null: xor job_rax, job_rax jmp return -ENDPROC(sha256_mb_mgr_flush_avx2) +SYM_FUNC_END(sha256_mb_mgr_flush_avx2) ############################################################################## .align 16 -ENTRY(sha256_mb_mgr_get_comp_job_avx2) +SYM_FUNC_START(sha256_mb_mgr_get_comp_job_avx2) push %rbx ## if bit 32+3 is set, then all lanes are empty @@ -282,7 +282,7 @@ ENTRY(sha256_mb_mgr_get_comp_job_avx2) xor job_rax, job_rax pop %rbx ret -ENDPROC(sha256_mb_mgr_get_comp_job_avx2) +SYM_FUNC_END(sha256_mb_mgr_get_comp_job_avx2) .section .rodata.cst16.clear_low_nibble, "aM", @progbits, 16 .align 16 diff --git a/arch/x86/crypto/sha256-mb/sha256_mb_mgr_submit_avx2.S b/arch/x86/crypto/sha256-mb/sha256_mb_mgr_submit_avx2.S index b36ae7454084..2213c04a30dc 100644 --- a/arch/x86/crypto/sha256-mb/sha256_mb_mgr_submit_avx2.S +++ b/arch/x86/crypto/sha256-mb/sha256_mb_mgr_submit_avx2.S @@ -96,7 +96,7 @@ lane_data = %r10 # JOB* sha256_mb_mgr_submit_avx2(MB_MGR *state, JOB_SHA256 *job) # arg 1 : rcx : state # arg 2 : rdx : job -ENTRY(sha256_mb_mgr_submit_avx2) +SYM_FUNC_START(sha256_mb_mgr_submit_avx2) FRAME_BEGIN push %rbx push %r12 @@ -206,7 +206,7 @@ return_null: xor job_rax, job_rax jmp return -ENDPROC(sha256_mb_mgr_submit_avx2) +SYM_FUNC_END(sha256_mb_mgr_submit_avx2) .section .rodata.cst16.clear_low_nibble, "aM", @progbits, 16 .align 16 diff --git a/arch/x86/crypto/sha256-mb/sha256_x8_avx2.S b/arch/x86/crypto/sha256-mb/sha256_x8_avx2.S index 1687c80c5995..042d2381f435 100644 --- a/arch/x86/crypto/sha256-mb/sha256_x8_avx2.S +++ b/arch/x86/crypto/sha256-mb/sha256_x8_avx2.S @@ -280,7 +280,7 @@ a = TMP_ # general registers preserved in outer calling routine # outer calling routine saves all the XMM registers # save rsp, allocate 32-byte aligned for local variables -ENTRY(sha256_x8_avx2) +SYM_FUNC_START(sha256_x8_avx2) # save callee-saved clobbered registers to comply with C function ABI push %r12 @@ -436,7 +436,7 @@ Lrounds_16_xx: pop %r12 ret -ENDPROC(sha256_x8_avx2) +SYM_FUNC_END(sha256_x8_avx2) .section .rodata.K256_8, "a", @progbits .align 64 diff --git a/arch/x86/crypto/sha256-ssse3-asm.S b/arch/x86/crypto/sha256-ssse3-asm.S index c6c05ed2c16a..69cc2f91dc4c 100644 --- a/arch/x86/crypto/sha256-ssse3-asm.S +++ b/arch/x86/crypto/sha256-ssse3-asm.S @@ -353,7 +353,7 @@ a = TMP_ ## arg 3 : Num blocks ######################################################################## .text -ENTRY(sha256_transform_ssse3) +SYM_FUNC_START(sha256_transform_ssse3) .align 32 pushq %rbx pushq %r12 @@ -471,7 +471,7 @@ done_hash: popq %rbx ret -ENDPROC(sha256_transform_ssse3) +SYM_FUNC_END(sha256_transform_ssse3) .section .rodata.cst256.K256, "aM", @progbits, 256 .align 64 diff --git a/arch/x86/crypto/sha256_ni_asm.S b/arch/x86/crypto/sha256_ni_asm.S index fb58f58ecfbc..7abade04a3a3 100644 --- a/arch/x86/crypto/sha256_ni_asm.S +++ b/arch/x86/crypto/sha256_ni_asm.S @@ -97,7 +97,7 @@ .text .align 32 -ENTRY(sha256_ni_transform) +SYM_FUNC_START(sha256_ni_transform) shl $6, NUM_BLKS /* convert to bytes */ jz .Ldone_hash @@ -327,7 +327,7 @@ ENTRY(sha256_ni_transform) .Ldone_hash: ret -ENDPROC(sha256_ni_transform) +SYM_FUNC_END(sha256_ni_transform) .section .rodata.cst256.K256, "aM", @progbits, 256 .align 64 diff --git a/arch/x86/crypto/sha512-avx-asm.S b/arch/x86/crypto/sha512-avx-asm.S index 39235fefe6f7..3704ddd7e5d5 100644 --- a/arch/x86/crypto/sha512-avx-asm.S +++ b/arch/x86/crypto/sha512-avx-asm.S @@ -277,7 +277,7 @@ frame_size = frame_GPRSAVE + GPRSAVE_SIZE # message blocks. # L is the message length in SHA512 blocks ######################################################################## -ENTRY(sha512_transform_avx) +SYM_FUNC_START(sha512_transform_avx) cmp $0, msglen je nowork @@ -365,7 +365,7 @@ updateblock: nowork: ret -ENDPROC(sha512_transform_avx) +SYM_FUNC_END(sha512_transform_avx) ######################################################################## ### Binary Data diff --git a/arch/x86/crypto/sha512-avx2-asm.S b/arch/x86/crypto/sha512-avx2-asm.S index b16d56005162..80d830e7ee09 100644 --- a/arch/x86/crypto/sha512-avx2-asm.S +++ b/arch/x86/crypto/sha512-avx2-asm.S @@ -569,7 +569,7 @@ frame_size = frame_GPRSAVE + GPRSAVE_SIZE # message blocks. # L is the message length in SHA512 blocks ######################################################################## -ENTRY(sha512_transform_rorx) +SYM_FUNC_START(sha512_transform_rorx) # Allocate Stack Space mov %rsp, %rax sub $frame_size, %rsp @@ -682,7 +682,7 @@ done_hash: # Restore Stack Pointer mov frame_RSPSAVE(%rsp), %rsp ret -ENDPROC(sha512_transform_rorx) +SYM_FUNC_END(sha512_transform_rorx) ######################################################################## ### Binary Data diff --git a/arch/x86/crypto/sha512-mb/sha512_mb_mgr_flush_avx2.S b/arch/x86/crypto/sha512-mb/sha512_mb_mgr_flush_avx2.S index 7c629caebc05..8642f3a04388 100644 --- a/arch/x86/crypto/sha512-mb/sha512_mb_mgr_flush_avx2.S +++ b/arch/x86/crypto/sha512-mb/sha512_mb_mgr_flush_avx2.S @@ -107,7 +107,7 @@ offset = \_offset # JOB* sha512_mb_mgr_flush_avx2(MB_MGR *state) # arg 1 : rcx : state -ENTRY(sha512_mb_mgr_flush_avx2) +SYM_FUNC_START(sha512_mb_mgr_flush_avx2) FRAME_BEGIN push %rbx @@ -217,10 +217,10 @@ return: return_null: xor job_rax, job_rax jmp return -ENDPROC(sha512_mb_mgr_flush_avx2) +SYM_FUNC_END(sha512_mb_mgr_flush_avx2) .align 16 -ENTRY(sha512_mb_mgr_get_comp_job_avx2) +SYM_FUNC_START(sha512_mb_mgr_get_comp_job_avx2) push %rbx mov _unused_lanes(state), unused_lanes @@ -279,7 +279,7 @@ ENTRY(sha512_mb_mgr_get_comp_job_avx2) xor job_rax, job_rax pop %rbx ret -ENDPROC(sha512_mb_mgr_get_comp_job_avx2) +SYM_FUNC_END(sha512_mb_mgr_get_comp_job_avx2) .section .rodata.cst8.one, "aM", @progbits, 8 .align 8 diff --git a/arch/x86/crypto/sha512-mb/sha512_mb_mgr_submit_avx2.S b/arch/x86/crypto/sha512-mb/sha512_mb_mgr_submit_avx2.S index 4ba709ba78e5..62932723d6e9 100644 --- a/arch/x86/crypto/sha512-mb/sha512_mb_mgr_submit_avx2.S +++ b/arch/x86/crypto/sha512-mb/sha512_mb_mgr_submit_avx2.S @@ -98,7 +98,7 @@ # JOB* sha512_mb_mgr_submit_avx2(MB_MGR *state, JOB *job) # arg 1 : rcx : state # arg 2 : rdx : job -ENTRY(sha512_mb_mgr_submit_avx2) +SYM_FUNC_START(sha512_mb_mgr_submit_avx2) FRAME_BEGIN push %rbx push %r12 @@ -208,7 +208,7 @@ return: return_null: xor job_rax, job_rax jmp return -ENDPROC(sha512_mb_mgr_submit_avx2) +SYM_FUNC_END(sha512_mb_mgr_submit_avx2) /* UNUSED? .section .rodata.cst16, "aM", @progbits, 16 diff --git a/arch/x86/crypto/sha512-mb/sha512_x4_avx2.S b/arch/x86/crypto/sha512-mb/sha512_x4_avx2.S index e22e907643a6..504065d19e03 100644 --- a/arch/x86/crypto/sha512-mb/sha512_x4_avx2.S +++ b/arch/x86/crypto/sha512-mb/sha512_x4_avx2.S @@ -239,7 +239,7 @@ a = TMP_ # void sha512_x4_avx2(void *STATE, const int INP_SIZE) # arg 1 : STATE : pointer to input data # arg 2 : INP_SIZE : size of data in blocks (assumed >= 1) -ENTRY(sha512_x4_avx2) +SYM_FUNC_START(sha512_x4_avx2) # general registers preserved in outer calling routine # outer calling routine saves all the XMM registers # save callee-saved clobbered registers to comply with C function ABI @@ -359,7 +359,7 @@ Lrounds_16_xx: # outer calling routine restores XMM and other GP registers ret -ENDPROC(sha512_x4_avx2) +SYM_FUNC_END(sha512_x4_avx2) .section .rodata.K512_4, "a", @progbits .align 64 diff --git a/arch/x86/crypto/sha512-ssse3-asm.S b/arch/x86/crypto/sha512-ssse3-asm.S index 66bbd9058a90..838f984e95d9 100644 --- a/arch/x86/crypto/sha512-ssse3-asm.S +++ b/arch/x86/crypto/sha512-ssse3-asm.S @@ -275,7 +275,7 @@ frame_size = frame_GPRSAVE + GPRSAVE_SIZE # message blocks. # L is the message length in SHA512 blocks. ######################################################################## -ENTRY(sha512_transform_ssse3) +SYM_FUNC_START(sha512_transform_ssse3) cmp $0, msglen je nowork @@ -364,7 +364,7 @@ updateblock: nowork: ret -ENDPROC(sha512_transform_ssse3) +SYM_FUNC_END(sha512_transform_ssse3) ######################################################################## ### Binary Data diff --git a/arch/x86/crypto/twofish-avx-x86_64-asm_64.S b/arch/x86/crypto/twofish-avx-x86_64-asm_64.S index 96ddfda4d7b2..16e53c98e6a0 100644 --- a/arch/x86/crypto/twofish-avx-x86_64-asm_64.S +++ b/arch/x86/crypto/twofish-avx-x86_64-asm_64.S @@ -330,7 +330,7 @@ SYM_FUNC_START_LOCAL(__twofish_dec_blk8) ret; SYM_FUNC_END(__twofish_dec_blk8) -ENTRY(twofish_ecb_enc_8way) +SYM_FUNC_START(twofish_ecb_enc_8way) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -348,9 +348,9 @@ ENTRY(twofish_ecb_enc_8way) FRAME_END ret; -ENDPROC(twofish_ecb_enc_8way) +SYM_FUNC_END(twofish_ecb_enc_8way) -ENTRY(twofish_ecb_dec_8way) +SYM_FUNC_START(twofish_ecb_dec_8way) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -368,9 +368,9 @@ ENTRY(twofish_ecb_dec_8way) FRAME_END ret; -ENDPROC(twofish_ecb_dec_8way) +SYM_FUNC_END(twofish_ecb_dec_8way) -ENTRY(twofish_cbc_dec_8way) +SYM_FUNC_START(twofish_cbc_dec_8way) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -393,9 +393,9 @@ ENTRY(twofish_cbc_dec_8way) FRAME_END ret; -ENDPROC(twofish_cbc_dec_8way) +SYM_FUNC_END(twofish_cbc_dec_8way) -ENTRY(twofish_ctr_8way) +SYM_FUNC_START(twofish_ctr_8way) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -420,9 +420,9 @@ ENTRY(twofish_ctr_8way) FRAME_END ret; -ENDPROC(twofish_ctr_8way) +SYM_FUNC_END(twofish_ctr_8way) -ENTRY(twofish_xts_enc_8way) +SYM_FUNC_START(twofish_xts_enc_8way) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -444,9 +444,9 @@ ENTRY(twofish_xts_enc_8way) FRAME_END ret; -ENDPROC(twofish_xts_enc_8way) +SYM_FUNC_END(twofish_xts_enc_8way) -ENTRY(twofish_xts_dec_8way) +SYM_FUNC_START(twofish_xts_dec_8way) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -468,4 +468,4 @@ ENTRY(twofish_xts_dec_8way) FRAME_END ret; -ENDPROC(twofish_xts_dec_8way) +SYM_FUNC_END(twofish_xts_dec_8way) diff --git a/arch/x86/crypto/twofish-x86_64-asm_64-3way.S b/arch/x86/crypto/twofish-x86_64-asm_64-3way.S index e7273a606a07..c830aef77070 100644 --- a/arch/x86/crypto/twofish-x86_64-asm_64-3way.S +++ b/arch/x86/crypto/twofish-x86_64-asm_64-3way.S @@ -235,7 +235,7 @@ rorq $32, RAB2; \ outunpack3(mov, RIO, 2, RAB, 2); -ENTRY(__twofish_enc_blk_3way) +SYM_FUNC_START(__twofish_enc_blk_3way) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -282,9 +282,9 @@ ENTRY(__twofish_enc_blk_3way) popq %r12; popq %r13; ret; -ENDPROC(__twofish_enc_blk_3way) +SYM_FUNC_END(__twofish_enc_blk_3way) -ENTRY(twofish_dec_blk_3way) +SYM_FUNC_START(twofish_dec_blk_3way) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -317,4 +317,4 @@ ENTRY(twofish_dec_blk_3way) popq %r12; popq %r13; ret; -ENDPROC(twofish_dec_blk_3way) +SYM_FUNC_END(twofish_dec_blk_3way) diff --git a/arch/x86/crypto/twofish-x86_64-asm_64.S b/arch/x86/crypto/twofish-x86_64-asm_64.S index a350c990dc86..74ef6c55d75f 100644 --- a/arch/x86/crypto/twofish-x86_64-asm_64.S +++ b/arch/x86/crypto/twofish-x86_64-asm_64.S @@ -215,7 +215,7 @@ xor %r8d, d ## D;\ ror $1, d ## D; -ENTRY(twofish_enc_blk) +SYM_FUNC_START(twofish_enc_blk) pushq R1 /* %rdi contains the ctx address */ @@ -266,9 +266,9 @@ ENTRY(twofish_enc_blk) popq R1 movl $1,%eax ret -ENDPROC(twofish_enc_blk) +SYM_FUNC_END(twofish_enc_blk) -ENTRY(twofish_dec_blk) +SYM_FUNC_START(twofish_dec_blk) pushq R1 /* %rdi contains the ctx address */ @@ -318,4 +318,4 @@ ENTRY(twofish_dec_blk) popq R1 movl $1,%eax ret -ENDPROC(twofish_dec_blk) +SYM_FUNC_END(twofish_dec_blk) diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S index 6f85f43a4877..3a9f0dd209b2 100644 --- a/arch/x86/entry/entry_64.S +++ b/arch/x86/entry/entry_64.S @@ -15,7 +15,7 @@ * at the top of the kernel process stack. * * Some macro usage: - * - ENTRY/END: Define functions in the symbol table. + * - SYM_FUNC_START/END:Define functions in the symbol table. * - TRACE_IRQ_*: Trace hardirq state for lock debugging. * - idtentry: Define exception entry points. */ @@ -1007,7 +1007,7 @@ idtentry simd_coprocessor_error do_simd_coprocessor_error has_error_code=0 * Reload gs selector with exception handling * edi: new selector */ -ENTRY(native_load_gs_index) +SYM_FUNC_START(native_load_gs_index) FRAME_BEGIN pushfq DISABLE_INTERRUPTS(CLBR_ANY & ~CLBR_RDI) @@ -1021,7 +1021,7 @@ ENTRY(native_load_gs_index) popfq FRAME_END ret -ENDPROC(native_load_gs_index) +SYM_FUNC_END(native_load_gs_index) EXPORT_SYMBOL(native_load_gs_index) _ASM_EXTABLE(.Lgs_change, bad_gs) @@ -1042,7 +1042,7 @@ SYM_CODE_END(bad_gs) .previous /* Call softirq on interrupt stack. Interrupts are off. */ -ENTRY(do_softirq_own_stack) +SYM_FUNC_START(do_softirq_own_stack) pushq %rbp mov %rsp, %rbp ENTER_IRQ_STACK regs=0 old_rsp=%r11 @@ -1050,7 +1050,7 @@ ENTRY(do_softirq_own_stack) LEAVE_IRQ_STACK regs=0 leaveq ret -ENDPROC(do_softirq_own_stack) +SYM_FUNC_END(do_softirq_own_stack) #ifdef CONFIG_XEN idtentry hypervisor_callback xen_do_hypervisor_callback has_error_code=0 diff --git a/arch/x86/entry/entry_64_compat.S b/arch/x86/entry/entry_64_compat.S index d03ddfc959e6..19bf98256174 100644 --- a/arch/x86/entry/entry_64_compat.S +++ b/arch/x86/entry/entry_64_compat.S @@ -46,7 +46,7 @@ * ebp user stack * 0(%ebp) arg6 */ -ENTRY(entry_SYSENTER_compat) +SYM_FUNC_START(entry_SYSENTER_compat) /* Interrupts are off on entry. */ SWAPGS @@ -147,7 +147,7 @@ ENTRY(entry_SYSENTER_compat) popfq jmp .Lsysenter_flags_fixed SYM_INNER_LABEL(__end_entry_SYSENTER_compat, SYM_L_GLOBAL) -ENDPROC(entry_SYSENTER_compat) +SYM_FUNC_END(entry_SYSENTER_compat) /* * 32-bit SYSCALL entry. diff --git a/arch/x86/kernel/acpi/wakeup_64.S b/arch/x86/kernel/acpi/wakeup_64.S index 6c60fe346583..042fd30ac493 100644 --- a/arch/x86/kernel/acpi/wakeup_64.S +++ b/arch/x86/kernel/acpi/wakeup_64.S @@ -13,7 +13,7 @@ /* * Hooray, we are in Long 64-bit mode (but still running in low memory) */ -ENTRY(wakeup_long64) +SYM_FUNC_START(wakeup_long64) movq saved_magic, %rax movq $0x123456789abcdef0, %rdx cmpq %rdx, %rax @@ -34,13 +34,13 @@ ENTRY(wakeup_long64) movq saved_rip, %rax jmp *%rax -ENDPROC(wakeup_long64) +SYM_FUNC_END(wakeup_long64) SYM_CODE_START_LOCAL(bogus_64_magic) jmp bogus_64_magic SYM_CODE_END(bogus_64_magic) -ENTRY(do_suspend_lowlevel) +SYM_FUNC_START(do_suspend_lowlevel) FRAME_BEGIN subq $8, %rsp xorl %eax, %eax @@ -123,7 +123,7 @@ ENTRY(do_suspend_lowlevel) addq $8, %rsp FRAME_END jmp restore_processor_state -ENDPROC(do_suspend_lowlevel) +SYM_FUNC_END(do_suspend_lowlevel) .data saved_rbp: .quad 0 diff --git a/arch/x86/kernel/ftrace_64.S b/arch/x86/kernel/ftrace_64.S index 51970806c2df..68b8c4b3e543 100644 --- a/arch/x86/kernel/ftrace_64.S +++ b/arch/x86/kernel/ftrace_64.S @@ -150,11 +150,11 @@ EXPORT_SYMBOL(mcount) #ifdef CONFIG_DYNAMIC_FTRACE -ENTRY(function_hook) +SYM_FUNC_START(function_hook) retq -ENDPROC(function_hook) +SYM_FUNC_END(function_hook) -ENTRY(ftrace_caller) +SYM_FUNC_START(ftrace_caller) /* save_mcount_regs fills in first two parameters */ save_mcount_regs @@ -188,9 +188,9 @@ SYM_INNER_LABEL(ftrace_graph_call, SYM_L_GLOBAL) /* This is weak to keep gas from relaxing the jumps */ WEAK(ftrace_stub) retq -ENDPROC(ftrace_caller) +SYM_FUNC_END(ftrace_caller) -ENTRY(ftrace_regs_caller) +SYM_FUNC_START(ftrace_regs_caller) /* Save the current flags before any operations that can change them */ pushfq @@ -259,12 +259,12 @@ SYM_INNER_LABEL(ftrace_regs_caller_end, SYM_L_GLOBAL) jmp ftrace_epilogue -ENDPROC(ftrace_regs_caller) +SYM_FUNC_END(ftrace_regs_caller) #else /* ! CONFIG_DYNAMIC_FTRACE */ -ENTRY(function_hook) +SYM_FUNC_START(function_hook) cmpq $ftrace_stub, ftrace_trace_function jnz trace @@ -295,11 +295,11 @@ trace: restore_mcount_regs jmp fgraph_trace -ENDPROC(function_hook) +SYM_FUNC_END(function_hook) #endif /* CONFIG_DYNAMIC_FTRACE */ #ifdef CONFIG_FUNCTION_GRAPH_TRACER -ENTRY(ftrace_graph_caller) +SYM_FUNC_START(ftrace_graph_caller) /* Saves rbp into %rdx and fills first parameter */ save_mcount_regs @@ -317,7 +317,7 @@ ENTRY(ftrace_graph_caller) restore_mcount_regs retq -ENDPROC(ftrace_graph_caller) +SYM_FUNC_END(ftrace_graph_caller) SYM_CODE_START(return_to_handler) UNWIND_HINT_EMPTY diff --git a/arch/x86/kernel/head_64.S b/arch/x86/kernel/head_64.S index 48e71043b99c..f4383f4d41b1 100644 --- a/arch/x86/kernel/head_64.S +++ b/arch/x86/kernel/head_64.S @@ -92,7 +92,7 @@ SYM_CODE_START_NOALIGN(startup_64) jmp 1f SYM_CODE_END(startup_64) -ENTRY(secondary_startup_64) +SYM_CODE_START(secondary_startup_64) UNWIND_HINT_EMPTY /* * At this point the CPU runs in 64bit mode CS.L = 1 CS.D = 0, @@ -242,7 +242,7 @@ ENTRY(secondary_startup_64) pushq %rax # target address in negative space lretq .Lafter_lret: -END(secondary_startup_64) +SYM_CODE_END(secondary_startup_64) #include "verify_cpu.S" @@ -252,11 +252,11 @@ END(secondary_startup_64) * up already except stack. We just set up stack here. Then call * start_secondary() via .Ljump_to_C_code. */ -ENTRY(start_cpu0) +SYM_FUNC_START(start_cpu0) movq initial_stack(%rip), %rsp UNWIND_HINT_EMPTY jmp .Ljump_to_C_code -ENDPROC(start_cpu0) +SYM_FUNC_END(start_cpu0) #endif /* Both SMP bootup and ACPI suspend change these variables */ @@ -273,7 +273,7 @@ SYM_DATA(initial_stack, __FINITDATA __INIT -ENTRY(early_idt_handler_array) +SYM_CODE_START(early_idt_handler_array) i = 0 .rept NUM_EXCEPTION_VECTORS .if ((EXCEPTION_ERRCODE_MASK >> i) & 1) == 0 @@ -289,7 +289,7 @@ ENTRY(early_idt_handler_array) .fill early_idt_handler_array + i*EARLY_IDT_HANDLER_SIZE - ., 1, 0xcc .endr UNWIND_HINT_IRET_REGS offset=16 -END(early_idt_handler_array) +SYM_CODE_END(early_idt_handler_array) SYM_CODE_START_LOCAL(early_idt_handler_common) /* diff --git a/arch/x86/lib/checksum_32.S b/arch/x86/lib/checksum_32.S index 46e71a74e612..28a148de1843 100644 --- a/arch/x86/lib/checksum_32.S +++ b/arch/x86/lib/checksum_32.S @@ -284,7 +284,7 @@ unsigned int csum_partial_copy_generic (const char *src, char *dst, #define ARGBASE 16 #define FP 12 -ENTRY(csum_partial_copy_generic) +SYM_FUNC_START(csum_partial_copy_generic) subl $4,%esp pushl %edi pushl %esi @@ -402,7 +402,7 @@ DST( movb %cl, (%edi) ) popl %edi popl %ecx # equivalent to addl $4,%esp ret -ENDPROC(csum_partial_copy_generic) +SYM_FUNC_END(csum_partial_copy_generic) #else @@ -420,7 +420,7 @@ ENDPROC(csum_partial_copy_generic) #define ARGBASE 12 -ENTRY(csum_partial_copy_generic) +SYM_FUNC_START(csum_partial_copy_generic) pushl %ebx pushl %edi pushl %esi @@ -487,7 +487,7 @@ DST( movb %dl, (%edi) ) popl %edi popl %ebx ret -ENDPROC(csum_partial_copy_generic) +SYM_FUNC_END(csum_partial_copy_generic) #undef ROUND #undef ROUND1 diff --git a/arch/x86/lib/clear_page_64.S b/arch/x86/lib/clear_page_64.S index 88acd349911b..47aa2830010b 100644 --- a/arch/x86/lib/clear_page_64.S +++ b/arch/x86/lib/clear_page_64.S @@ -12,15 +12,15 @@ * Zero a page. * %rdi - page */ -ENTRY(clear_page_rep) +SYM_FUNC_START(clear_page_rep) movl $4096/8,%ecx xorl %eax,%eax rep stosq ret -ENDPROC(clear_page_rep) +SYM_FUNC_END(clear_page_rep) EXPORT_SYMBOL_GPL(clear_page_rep) -ENTRY(clear_page_orig) +SYM_FUNC_START(clear_page_orig) xorl %eax,%eax movl $4096/64,%ecx .p2align 4 @@ -39,13 +39,13 @@ ENTRY(clear_page_orig) jnz .Lloop nop ret -ENDPROC(clear_page_orig) +SYM_FUNC_END(clear_page_orig) EXPORT_SYMBOL_GPL(clear_page_orig) -ENTRY(clear_page_erms) +SYM_FUNC_START(clear_page_erms) movl $4096,%ecx xorl %eax,%eax rep stosb ret -ENDPROC(clear_page_erms) +SYM_FUNC_END(clear_page_erms) EXPORT_SYMBOL_GPL(clear_page_erms) diff --git a/arch/x86/lib/cmpxchg16b_emu.S b/arch/x86/lib/cmpxchg16b_emu.S index 9b330242e740..b6ba6360b3ca 100644 --- a/arch/x86/lib/cmpxchg16b_emu.S +++ b/arch/x86/lib/cmpxchg16b_emu.S @@ -19,7 +19,7 @@ * %rcx : high 64 bits of new value * %al : Operation successful */ -ENTRY(this_cpu_cmpxchg16b_emu) +SYM_FUNC_START(this_cpu_cmpxchg16b_emu) # # Emulate 'cmpxchg16b %gs:(%rsi)' except we return the result in %al not @@ -50,4 +50,4 @@ ENTRY(this_cpu_cmpxchg16b_emu) xor %al,%al ret -ENDPROC(this_cpu_cmpxchg16b_emu) +SYM_FUNC_END(this_cpu_cmpxchg16b_emu) diff --git a/arch/x86/lib/cmpxchg8b_emu.S b/arch/x86/lib/cmpxchg8b_emu.S index 03a186fc06ea..77aa18db3968 100644 --- a/arch/x86/lib/cmpxchg8b_emu.S +++ b/arch/x86/lib/cmpxchg8b_emu.S @@ -19,7 +19,7 @@ * %ebx : low 32 bits of new value * %ecx : high 32 bits of new value */ -ENTRY(cmpxchg8b_emu) +SYM_FUNC_START(cmpxchg8b_emu) # # Emulate 'cmpxchg8b (%esi)' on UP except we don't @@ -48,5 +48,5 @@ ENTRY(cmpxchg8b_emu) popfl ret -ENDPROC(cmpxchg8b_emu) +SYM_FUNC_END(cmpxchg8b_emu) EXPORT_SYMBOL(cmpxchg8b_emu) diff --git a/arch/x86/lib/copy_page_64.S b/arch/x86/lib/copy_page_64.S index f505870bd93b..2402d4c489d2 100644 --- a/arch/x86/lib/copy_page_64.S +++ b/arch/x86/lib/copy_page_64.S @@ -13,12 +13,12 @@ * prefetch distance based on SMP/UP. */ ALIGN -ENTRY(copy_page) +SYM_FUNC_START(copy_page) ALTERNATIVE "jmp copy_page_regs", "", X86_FEATURE_REP_GOOD movl $4096/8, %ecx rep movsq ret -ENDPROC(copy_page) +SYM_FUNC_END(copy_page) EXPORT_SYMBOL(copy_page) SYM_FUNC_START_LOCAL(copy_page_regs) diff --git a/arch/x86/lib/copy_user_64.S b/arch/x86/lib/copy_user_64.S index 020f75cc8cf6..5e9e80c05a97 100644 --- a/arch/x86/lib/copy_user_64.S +++ b/arch/x86/lib/copy_user_64.S @@ -29,7 +29,7 @@ * Output: * eax uncopied bytes or 0 if successful. */ -ENTRY(copy_user_generic_unrolled) +SYM_FUNC_START(copy_user_generic_unrolled) ASM_STAC cmpl $8,%edx jb 20f /* less then 8 bytes, go to byte copy loop */ @@ -112,7 +112,7 @@ ENTRY(copy_user_generic_unrolled) _ASM_EXTABLE(19b,40b) _ASM_EXTABLE(21b,50b) _ASM_EXTABLE(22b,50b) -ENDPROC(copy_user_generic_unrolled) +SYM_FUNC_END(copy_user_generic_unrolled) EXPORT_SYMBOL(copy_user_generic_unrolled) /* Some CPUs run faster using the string copy instructions. @@ -133,7 +133,7 @@ EXPORT_SYMBOL(copy_user_generic_unrolled) * Output: * eax uncopied bytes or 0 if successful. */ -ENTRY(copy_user_generic_string) +SYM_FUNC_START(copy_user_generic_string) ASM_STAC cmpl $8,%edx jb 2f /* less than 8 bytes, go to byte copy loop */ @@ -158,7 +158,7 @@ ENTRY(copy_user_generic_string) _ASM_EXTABLE(1b,11b) _ASM_EXTABLE(3b,12b) -ENDPROC(copy_user_generic_string) +SYM_FUNC_END(copy_user_generic_string) EXPORT_SYMBOL(copy_user_generic_string) /* @@ -173,7 +173,7 @@ EXPORT_SYMBOL(copy_user_generic_string) * Output: * eax uncopied bytes or 0 if successful. */ -ENTRY(copy_user_enhanced_fast_string) +SYM_FUNC_START(copy_user_enhanced_fast_string) ASM_STAC cmpl $64,%edx jb .L_copy_short_string /* less then 64 bytes, avoid the costly 'rep' */ @@ -190,7 +190,7 @@ ENTRY(copy_user_enhanced_fast_string) .previous _ASM_EXTABLE(1b,12b) -ENDPROC(copy_user_enhanced_fast_string) +SYM_FUNC_END(copy_user_enhanced_fast_string) EXPORT_SYMBOL(copy_user_enhanced_fast_string) /* @@ -202,7 +202,7 @@ EXPORT_SYMBOL(copy_user_enhanced_fast_string) * - Require 8-byte alignment when size is 8 bytes or larger. * - Require 4-byte alignment when size is 4 bytes. */ -ENTRY(__copy_user_nocache) +SYM_FUNC_START(__copy_user_nocache) ASM_STAC /* If size is less than 8 bytes, go to 4-byte copy */ @@ -341,5 +341,5 @@ ENTRY(__copy_user_nocache) _ASM_EXTABLE(31b,.L_fixup_4b_copy) _ASM_EXTABLE(40b,.L_fixup_1b_copy) _ASM_EXTABLE(41b,.L_fixup_1b_copy) -ENDPROC(__copy_user_nocache) +SYM_FUNC_END(__copy_user_nocache) EXPORT_SYMBOL(__copy_user_nocache) diff --git a/arch/x86/lib/csum-copy_64.S b/arch/x86/lib/csum-copy_64.S index 45a53dfe1859..523e4964078f 100644 --- a/arch/x86/lib/csum-copy_64.S +++ b/arch/x86/lib/csum-copy_64.S @@ -45,7 +45,7 @@ .endm -ENTRY(csum_partial_copy_generic) +SYM_FUNC_START(csum_partial_copy_generic) cmpl $3*64, %edx jle .Lignore @@ -221,4 +221,4 @@ ENTRY(csum_partial_copy_generic) jz .Lende movl $-EFAULT, (%rax) jmp .Lende -ENDPROC(csum_partial_copy_generic) +SYM_FUNC_END(csum_partial_copy_generic) diff --git a/arch/x86/lib/getuser.S b/arch/x86/lib/getuser.S index a5d7fe7fe401..71dd96676194 100644 --- a/arch/x86/lib/getuser.S +++ b/arch/x86/lib/getuser.S @@ -36,7 +36,7 @@ #include .text -ENTRY(__get_user_1) +SYM_FUNC_START(__get_user_1) mov PER_CPU_VAR(current_task), %_ASM_DX cmp TASK_addr_limit(%_ASM_DX),%_ASM_AX jae bad_get_user @@ -47,10 +47,10 @@ ENTRY(__get_user_1) xor %eax,%eax ASM_CLAC ret -ENDPROC(__get_user_1) +SYM_FUNC_END(__get_user_1) EXPORT_SYMBOL(__get_user_1) -ENTRY(__get_user_2) +SYM_FUNC_START(__get_user_2) add $1,%_ASM_AX jc bad_get_user mov PER_CPU_VAR(current_task), %_ASM_DX @@ -63,10 +63,10 @@ ENTRY(__get_user_2) xor %eax,%eax ASM_CLAC ret -ENDPROC(__get_user_2) +SYM_FUNC_END(__get_user_2) EXPORT_SYMBOL(__get_user_2) -ENTRY(__get_user_4) +SYM_FUNC_START(__get_user_4) add $3,%_ASM_AX jc bad_get_user mov PER_CPU_VAR(current_task), %_ASM_DX @@ -79,10 +79,10 @@ ENTRY(__get_user_4) xor %eax,%eax ASM_CLAC ret -ENDPROC(__get_user_4) +SYM_FUNC_END(__get_user_4) EXPORT_SYMBOL(__get_user_4) -ENTRY(__get_user_8) +SYM_FUNC_START(__get_user_8) #ifdef CONFIG_X86_64 add $7,%_ASM_AX jc bad_get_user @@ -111,7 +111,7 @@ ENTRY(__get_user_8) ASM_CLAC ret #endif -ENDPROC(__get_user_8) +SYM_FUNC_END(__get_user_8) EXPORT_SYMBOL(__get_user_8) diff --git a/arch/x86/lib/hweight.S b/arch/x86/lib/hweight.S index a14f9939c365..dbf8cc97b7f5 100644 --- a/arch/x86/lib/hweight.S +++ b/arch/x86/lib/hweight.S @@ -8,7 +8,7 @@ * unsigned int __sw_hweight32(unsigned int w) * %rdi: w */ -ENTRY(__sw_hweight32) +SYM_FUNC_START(__sw_hweight32) #ifdef CONFIG_X86_64 movl %edi, %eax # w @@ -33,10 +33,10 @@ ENTRY(__sw_hweight32) shrl $24, %eax # w = w_tmp >> 24 __ASM_SIZE(pop,) %__ASM_REG(dx) ret -ENDPROC(__sw_hweight32) +SYM_FUNC_END(__sw_hweight32) EXPORT_SYMBOL(__sw_hweight32) -ENTRY(__sw_hweight64) +SYM_FUNC_START(__sw_hweight64) #ifdef CONFIG_X86_64 pushq %rdi pushq %rdx @@ -79,5 +79,5 @@ ENTRY(__sw_hweight64) popl %ecx ret #endif -ENDPROC(__sw_hweight64) +SYM_FUNC_END(__sw_hweight64) EXPORT_SYMBOL(__sw_hweight64) diff --git a/arch/x86/lib/iomap_copy_64.S b/arch/x86/lib/iomap_copy_64.S index 33147fef3452..2246fbf32fa8 100644 --- a/arch/x86/lib/iomap_copy_64.S +++ b/arch/x86/lib/iomap_copy_64.S @@ -20,8 +20,8 @@ /* * override generic version in lib/iomap_copy.c */ -ENTRY(__iowrite32_copy) +SYM_FUNC_START(__iowrite32_copy) movl %edx,%ecx rep movsd ret -ENDPROC(__iowrite32_copy) +SYM_FUNC_END(__iowrite32_copy) diff --git a/arch/x86/lib/memcpy_64.S b/arch/x86/lib/memcpy_64.S index 728703c47d58..9bec63e212a8 100644 --- a/arch/x86/lib/memcpy_64.S +++ b/arch/x86/lib/memcpy_64.S @@ -188,7 +188,7 @@ SYM_FUNC_END(memcpy_orig) * Note that we only catch machine checks when reading the source addresses. * Writes to target are posted and don't generate machine checks. */ -ENTRY(memcpy_mcsafe_unrolled) +SYM_FUNC_START(memcpy_mcsafe_unrolled) cmpl $8, %edx /* Less than 8 bytes? Go to byte copy loop */ jb .L_no_whole_words @@ -276,7 +276,7 @@ ENTRY(memcpy_mcsafe_unrolled) .L_done_memcpy_trap: xorq %rax, %rax ret -ENDPROC(memcpy_mcsafe_unrolled) +SYM_FUNC_END(memcpy_mcsafe_unrolled) EXPORT_SYMBOL_GPL(memcpy_mcsafe_unrolled) .section .fixup, "ax" diff --git a/arch/x86/lib/memmove_64.S b/arch/x86/lib/memmove_64.S index 50c1648311b3..337830d7a59c 100644 --- a/arch/x86/lib/memmove_64.S +++ b/arch/x86/lib/memmove_64.S @@ -27,7 +27,7 @@ .weak memmove SYM_FUNC_START_ALIAS(memmove) -ENTRY(__memmove) +SYM_FUNC_START(__memmove) /* Handle more 32 bytes in loop */ mov %rdi, %rax @@ -207,7 +207,7 @@ ENTRY(__memmove) movb %r11b, (%rdi) 13: retq -ENDPROC(__memmove) +SYM_FUNC_END(__memmove) SYM_FUNC_END_ALIAS(memmove) EXPORT_SYMBOL(__memmove) EXPORT_SYMBOL(memmove) diff --git a/arch/x86/lib/memset_64.S b/arch/x86/lib/memset_64.S index 564abf9ecedb..9ff15ee404a4 100644 --- a/arch/x86/lib/memset_64.S +++ b/arch/x86/lib/memset_64.S @@ -20,7 +20,7 @@ * rax original destination */ SYM_FUNC_START_ALIAS(memset) -ENTRY(__memset) +SYM_FUNC_START(__memset) /* * Some CPUs support enhanced REP MOVSB/STOSB feature. It is recommended * to use it when possible. If not available, use fast string instructions. @@ -43,7 +43,7 @@ ENTRY(__memset) rep stosb movq %r9,%rax ret -ENDPROC(__memset) +SYM_FUNC_END(__memset) SYM_FUNC_END_ALIAS(memset) EXPORT_SYMBOL(memset) EXPORT_SYMBOL(__memset) diff --git a/arch/x86/lib/msr-reg.S b/arch/x86/lib/msr-reg.S index ed33cbab3958..a2b9caa5274c 100644 --- a/arch/x86/lib/msr-reg.S +++ b/arch/x86/lib/msr-reg.S @@ -12,7 +12,7 @@ * */ .macro op_safe_regs op -ENTRY(\op\()_safe_regs) +SYM_FUNC_START(\op\()_safe_regs) pushq %rbx pushq %r12 movq %rdi, %r10 /* Save pointer */ @@ -41,13 +41,13 @@ ENTRY(\op\()_safe_regs) jmp 2b _ASM_EXTABLE(1b, 3b) -ENDPROC(\op\()_safe_regs) +SYM_FUNC_END(\op\()_safe_regs) .endm #else /* X86_32 */ .macro op_safe_regs op -ENTRY(\op\()_safe_regs) +SYM_FUNC_START(\op\()_safe_regs) pushl %ebx pushl %ebp pushl %esi @@ -83,7 +83,7 @@ ENTRY(\op\()_safe_regs) jmp 2b _ASM_EXTABLE(1b, 3b) -ENDPROC(\op\()_safe_regs) +SYM_FUNC_END(\op\()_safe_regs) .endm #endif diff --git a/arch/x86/lib/putuser.S b/arch/x86/lib/putuser.S index 8234d8559385..9ec0f34a8541 100644 --- a/arch/x86/lib/putuser.S +++ b/arch/x86/lib/putuser.S @@ -36,7 +36,7 @@ ret .text -ENTRY(__put_user_1) +SYM_FUNC_START(__put_user_1) ENTER cmp TASK_addr_limit(%_ASM_BX),%_ASM_CX jae bad_put_user @@ -44,10 +44,10 @@ ENTRY(__put_user_1) 1: movb %al,(%_ASM_CX) xor %eax,%eax EXIT -ENDPROC(__put_user_1) +SYM_FUNC_END(__put_user_1) EXPORT_SYMBOL(__put_user_1) -ENTRY(__put_user_2) +SYM_FUNC_START(__put_user_2) ENTER mov TASK_addr_limit(%_ASM_BX),%_ASM_BX sub $1,%_ASM_BX @@ -57,10 +57,10 @@ ENTRY(__put_user_2) 2: movw %ax,(%_ASM_CX) xor %eax,%eax EXIT -ENDPROC(__put_user_2) +SYM_FUNC_END(__put_user_2) EXPORT_SYMBOL(__put_user_2) -ENTRY(__put_user_4) +SYM_FUNC_START(__put_user_4) ENTER mov TASK_addr_limit(%_ASM_BX),%_ASM_BX sub $3,%_ASM_BX @@ -70,10 +70,10 @@ ENTRY(__put_user_4) 3: movl %eax,(%_ASM_CX) xor %eax,%eax EXIT -ENDPROC(__put_user_4) +SYM_FUNC_END(__put_user_4) EXPORT_SYMBOL(__put_user_4) -ENTRY(__put_user_8) +SYM_FUNC_START(__put_user_8) ENTER mov TASK_addr_limit(%_ASM_BX),%_ASM_BX sub $7,%_ASM_BX @@ -86,7 +86,7 @@ ENTRY(__put_user_8) #endif xor %eax,%eax EXIT -ENDPROC(__put_user_8) +SYM_FUNC_END(__put_user_8) EXPORT_SYMBOL(__put_user_8) SYM_CODE_START_LOCAL(bad_put_user) diff --git a/arch/x86/lib/retpoline.S b/arch/x86/lib/retpoline.S index c909961e678a..363ec132df7e 100644 --- a/arch/x86/lib/retpoline.S +++ b/arch/x86/lib/retpoline.S @@ -11,11 +11,11 @@ .macro THUNK reg .section .text.__x86.indirect_thunk -ENTRY(__x86_indirect_thunk_\reg) +SYM_FUNC_START(__x86_indirect_thunk_\reg) CFI_STARTPROC JMP_NOSPEC %\reg CFI_ENDPROC -ENDPROC(__x86_indirect_thunk_\reg) +SYM_FUNC_END(__x86_indirect_thunk_\reg) .endm /* diff --git a/arch/x86/lib/rwsem.S b/arch/x86/lib/rwsem.S index dc2ab6ea6768..dcd5c997b068 100644 --- a/arch/x86/lib/rwsem.S +++ b/arch/x86/lib/rwsem.S @@ -86,7 +86,7 @@ #endif /* Fix up special calling conventions */ -ENTRY(call_rwsem_down_read_failed) +SYM_FUNC_START(call_rwsem_down_read_failed) FRAME_BEGIN save_common_regs __ASM_SIZE(push,) %__ASM_REG(dx) @@ -96,9 +96,9 @@ ENTRY(call_rwsem_down_read_failed) restore_common_regs FRAME_END ret -ENDPROC(call_rwsem_down_read_failed) +SYM_FUNC_END(call_rwsem_down_read_failed) -ENTRY(call_rwsem_down_read_failed_killable) +SYM_FUNC_START(call_rwsem_down_read_failed_killable) FRAME_BEGIN save_common_regs __ASM_SIZE(push,) %__ASM_REG(dx) @@ -108,9 +108,9 @@ ENTRY(call_rwsem_down_read_failed_killable) restore_common_regs FRAME_END ret -ENDPROC(call_rwsem_down_read_failed_killable) +SYM_FUNC_END(call_rwsem_down_read_failed_killable) -ENTRY(call_rwsem_down_write_failed) +SYM_FUNC_START(call_rwsem_down_write_failed) FRAME_BEGIN save_common_regs movq %rax,%rdi @@ -118,9 +118,9 @@ ENTRY(call_rwsem_down_write_failed) restore_common_regs FRAME_END ret -ENDPROC(call_rwsem_down_write_failed) +SYM_FUNC_END(call_rwsem_down_write_failed) -ENTRY(call_rwsem_down_write_failed_killable) +SYM_FUNC_START(call_rwsem_down_write_failed_killable) FRAME_BEGIN save_common_regs movq %rax,%rdi @@ -128,9 +128,9 @@ ENTRY(call_rwsem_down_write_failed_killable) restore_common_regs FRAME_END ret -ENDPROC(call_rwsem_down_write_failed_killable) +SYM_FUNC_END(call_rwsem_down_write_failed_killable) -ENTRY(call_rwsem_wake) +SYM_FUNC_START(call_rwsem_wake) FRAME_BEGIN /* do nothing if still outstanding active readers */ __ASM_HALF_SIZE(dec) %__ASM_HALF_REG(dx) @@ -141,9 +141,9 @@ ENTRY(call_rwsem_wake) restore_common_regs 1: FRAME_END ret -ENDPROC(call_rwsem_wake) +SYM_FUNC_END(call_rwsem_wake) -ENTRY(call_rwsem_downgrade_wake) +SYM_FUNC_START(call_rwsem_downgrade_wake) FRAME_BEGIN save_common_regs __ASM_SIZE(push,) %__ASM_REG(dx) @@ -153,4 +153,4 @@ ENTRY(call_rwsem_downgrade_wake) restore_common_regs FRAME_END ret -ENDPROC(call_rwsem_downgrade_wake) +SYM_FUNC_END(call_rwsem_downgrade_wake) diff --git a/arch/x86/mm/mem_encrypt_boot.S b/arch/x86/mm/mem_encrypt_boot.S index 40a6085063d6..2c0a6fbd4fe8 100644 --- a/arch/x86/mm/mem_encrypt_boot.S +++ b/arch/x86/mm/mem_encrypt_boot.S @@ -19,7 +19,7 @@ .text .code64 -ENTRY(sme_encrypt_execute) +SYM_FUNC_START(sme_encrypt_execute) /* * Entry parameters: @@ -69,9 +69,9 @@ ENTRY(sme_encrypt_execute) pop %rbp ret -ENDPROC(sme_encrypt_execute) +SYM_FUNC_END(sme_encrypt_execute) -ENTRY(__enc_copy) +SYM_FUNC_START(__enc_copy) /* * Routine used to encrypt memory in place. * This routine must be run outside of the kernel proper since @@ -156,4 +156,4 @@ ENTRY(__enc_copy) ret .L__enc_copy_end: -ENDPROC(__enc_copy) +SYM_FUNC_END(__enc_copy) diff --git a/arch/x86/platform/efi/efi_stub_64.S b/arch/x86/platform/efi/efi_stub_64.S index 74628ec78f29..b1d2313fe3bf 100644 --- a/arch/x86/platform/efi/efi_stub_64.S +++ b/arch/x86/platform/efi/efi_stub_64.S @@ -39,7 +39,7 @@ mov %rsi, %cr0; \ mov (%rsp), %rsp -ENTRY(efi_call) +SYM_FUNC_START(efi_call) pushq %rbp movq %rsp, %rbp SAVE_XMM @@ -55,4 +55,4 @@ ENTRY(efi_call) RESTORE_XMM popq %rbp ret -ENDPROC(efi_call) +SYM_FUNC_END(efi_call) diff --git a/arch/x86/platform/efi/efi_thunk_64.S b/arch/x86/platform/efi/efi_thunk_64.S index d677a7eb2d0a..3189f1394701 100644 --- a/arch/x86/platform/efi/efi_thunk_64.S +++ b/arch/x86/platform/efi/efi_thunk_64.S @@ -25,7 +25,7 @@ .text .code64 -ENTRY(efi64_thunk) +SYM_FUNC_START(efi64_thunk) push %rbp push %rbx @@ -60,7 +60,7 @@ ENTRY(efi64_thunk) pop %rbx pop %rbp retq -ENDPROC(efi64_thunk) +SYM_FUNC_END(efi64_thunk) /* * We run this function from the 1:1 mapping. diff --git a/arch/x86/power/hibernate_asm_64.S b/arch/x86/power/hibernate_asm_64.S index 44755a847856..c87ae08f9312 100644 --- a/arch/x86/power/hibernate_asm_64.S +++ b/arch/x86/power/hibernate_asm_64.S @@ -23,7 +23,7 @@ #include #include -ENTRY(swsusp_arch_suspend) +SYM_FUNC_START(swsusp_arch_suspend) movq $saved_context, %rax movq %rsp, pt_regs_sp(%rax) movq %rbp, pt_regs_bp(%rax) @@ -51,7 +51,7 @@ ENTRY(swsusp_arch_suspend) call swsusp_save FRAME_END ret -ENDPROC(swsusp_arch_suspend) +SYM_FUNC_END(swsusp_arch_suspend) SYM_CODE_START(restore_image) /* prepare to jump to the image kernel */ @@ -103,7 +103,7 @@ SYM_CODE_END(core_restore_code) /* code below belongs to the image kernel */ .align PAGE_SIZE -ENTRY(restore_registers) +SYM_FUNC_START(restore_registers) /* go back to the original page tables */ movq %r9, %cr3 @@ -145,4 +145,4 @@ ENTRY(restore_registers) movq %rax, in_suspend(%rip) ret -ENDPROC(restore_registers) +SYM_FUNC_END(restore_registers) diff --git a/arch/x86/xen/xen-asm.S b/arch/x86/xen/xen-asm.S index 8019edd0125c..d7bf6d5cfcb9 100644 --- a/arch/x86/xen/xen-asm.S +++ b/arch/x86/xen/xen-asm.S @@ -18,7 +18,7 @@ * event status with one and operation. If there are pending events, * then enter the hypervisor to get them handled. */ -ENTRY(xen_irq_enable_direct) +SYM_FUNC_START(xen_irq_enable_direct) FRAME_BEGIN /* Unmask events */ movb $0, PER_CPU_VAR(xen_vcpu_info) + XEN_vcpu_info_mask @@ -37,17 +37,17 @@ ENTRY(xen_irq_enable_direct) 1: FRAME_END ret - ENDPROC(xen_irq_enable_direct) +SYM_FUNC_END(xen_irq_enable_direct) /* * Disabling events is simply a matter of making the event mask * non-zero. */ -ENTRY(xen_irq_disable_direct) +SYM_FUNC_START(xen_irq_disable_direct) movb $1, PER_CPU_VAR(xen_vcpu_info) + XEN_vcpu_info_mask ret -ENDPROC(xen_irq_disable_direct) +SYM_FUNC_END(xen_irq_disable_direct) /* * (xen_)save_fl is used to get the current interrupt enable status. @@ -58,12 +58,12 @@ ENDPROC(xen_irq_disable_direct) * undefined. We need to toggle the state of the bit, because Xen and * x86 use opposite senses (mask vs enable). */ -ENTRY(xen_save_fl_direct) +SYM_FUNC_START(xen_save_fl_direct) testb $0xff, PER_CPU_VAR(xen_vcpu_info) + XEN_vcpu_info_mask setz %ah addb %ah, %ah ret - ENDPROC(xen_save_fl_direct) +SYM_FUNC_END(xen_save_fl_direct) /* @@ -73,7 +73,7 @@ ENTRY(xen_save_fl_direct) * interrupt mask state, it checks for unmasked pending events and * enters the hypervisor to get them delivered if so. */ -ENTRY(xen_restore_fl_direct) +SYM_FUNC_START(xen_restore_fl_direct) FRAME_BEGIN #ifdef CONFIG_X86_64 testw $X86_EFLAGS_IF, %di @@ -94,14 +94,14 @@ ENTRY(xen_restore_fl_direct) 1: FRAME_END ret - ENDPROC(xen_restore_fl_direct) +SYM_FUNC_END(xen_restore_fl_direct) /* * Force an event check by making a hypercall, but preserve regs * before making the call. */ -ENTRY(check_events) +SYM_FUNC_START(check_events) FRAME_BEGIN #ifdef CONFIG_X86_32 push %eax @@ -134,4 +134,4 @@ ENTRY(check_events) #endif FRAME_END ret -ENDPROC(check_events) +SYM_FUNC_END(check_events) diff --git a/arch/x86/xen/xen-asm_64.S b/arch/x86/xen/xen-asm_64.S index 5a3f5c18cd0c..dada73db402a 100644 --- a/arch/x86/xen/xen-asm_64.S +++ b/arch/x86/xen/xen-asm_64.S @@ -123,7 +123,7 @@ SYM_CODE_END(xen_sysret64) */ /* Normal 64-bit system call target */ -ENTRY(xen_syscall_target) +SYM_FUNC_START(xen_syscall_target) popq %rcx popq %r11 @@ -136,12 +136,12 @@ ENTRY(xen_syscall_target) movq $__USER_CS, 1*8(%rsp) jmp entry_SYSCALL_64_after_hwframe -ENDPROC(xen_syscall_target) +SYM_FUNC_END(xen_syscall_target) #ifdef CONFIG_IA32_EMULATION /* 32-bit compat syscall target */ -ENTRY(xen_syscall32_target) +SYM_FUNC_START(xen_syscall32_target) popq %rcx popq %r11 @@ -154,25 +154,25 @@ ENTRY(xen_syscall32_target) movq $__USER32_CS, 1*8(%rsp) jmp entry_SYSCALL_compat_after_hwframe -ENDPROC(xen_syscall32_target) +SYM_FUNC_END(xen_syscall32_target) /* 32-bit compat sysenter target */ -ENTRY(xen_sysenter_target) +SYM_FUNC_START(xen_sysenter_target) mov 0*8(%rsp), %rcx mov 1*8(%rsp), %r11 mov 5*8(%rsp), %rsp jmp entry_SYSENTER_compat -ENDPROC(xen_sysenter_target) +SYM_FUNC_END(xen_sysenter_target) #else /* !CONFIG_IA32_EMULATION */ SYM_FUNC_START_ALIAS(xen_syscall32_target) -ENTRY(xen_sysenter_target) +SYM_FUNC_START(xen_sysenter_target) lea 16(%rsp), %rsp /* strip %rcx, %r11 */ mov $-ENOSYS, %rax pushq $0 jmp hypercall_iret -ENDPROC(xen_sysenter_target) +SYM_FUNC_END(xen_sysenter_target) SYM_FUNC_END_ALIAS(xen_syscall32_target) #endif /* CONFIG_IA32_EMULATION */ diff --git a/include/linux/linkage.h b/include/linux/linkage.h index e920ffa2a943..a57da818d88f 100644 --- a/include/linux/linkage.h +++ b/include/linux/linkage.h @@ -105,11 +105,13 @@ /* === DEPRECATED annotations === */ +#ifndef CONFIG_X86_64 #ifndef ENTRY /* deprecated, use SYM_FUNC_START */ #define ENTRY(name) \ SYM_FUNC_START(name) #endif +#endif /* CONFIG_X86_64 */ #endif /* LINKER_SCRIPT */ #ifndef WEAK @@ -124,6 +126,7 @@ .size name, .-name #endif +#ifndef CONFIG_X86_64 /* If symbol 'name' is treated as a subroutine (gets called, and returns) * then please use ENDPROC to mark 'name' as STT_FUNC for the benefit of * static analysis tools such as stack depth analyzer. @@ -133,6 +136,7 @@ #define ENDPROC(name) \ SYM_FUNC_END(name) #endif +#endif /* CONFIG_X86_64 */ /* === generic annotations === */ -- 2.16.3