From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0CD49ECE58C for ; Fri, 11 Oct 2019 11:52:18 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id DA6AE206CD for ; Fri, 11 Oct 2019 11:52:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728296AbfJKLwL (ORCPT ); Fri, 11 Oct 2019 07:52:11 -0400 Received: from mx2.suse.de ([195.135.220.15]:33440 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728090AbfJKLvZ (ORCPT ); Fri, 11 Oct 2019 07:51:25 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 222B3B493; Fri, 11 Oct 2019 11:51:24 +0000 (UTC) From: Jiri Slaby To: bp@alien8.de Cc: tglx@linutronix.de, mingo@redhat.com, hpa@zytor.com, x86@kernel.org, linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, Jiri Slaby , Matt Fleming , Ard Biesheuvel , linux-efi@vger.kernel.org, xen-devel@lists.xenproject.org Subject: [PATCH v9 20/28] x86/asm: Make some functions local Date: Fri, 11 Oct 2019 13:51:00 +0200 Message-Id: <20191011115108.12392-21-jslaby@suse.cz> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191011115108.12392-1-jslaby@suse.cz> References: <20191011115108.12392-1-jslaby@suse.cz> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org There is a couple of assembly functions, which are invoked only locally in the file they are defined. In C, they are marked "static". In assembly, annotate them using SYM_{FUNC,CODE}_START_LOCAL (and switch their ENDPROC to SYM_{FUNC,CODE}_END too). Whether FUNC or CODE is used, depends on whether ENDPROC or END was used for a particular function before. Signed-off-by: Jiri Slaby Cc: Borislav Petkov Cc: "H. Peter Anvin" Cc: Thomas Gleixner Cc: Ingo Molnar Cc: x86@kernel.org Cc: Matt Fleming Cc: Ard Biesheuvel Cc: linux-efi@vger.kernel.org Cc: xen-devel@lists.xenproject.org --- arch/x86/boot/compressed/efi_thunk_64.S | 8 ++++---- arch/x86/entry/entry_64.S | 21 +++++++++++---------- arch/x86/lib/copy_page_64.S | 4 ++-- arch/x86/lib/memcpy_64.S | 12 ++++++------ arch/x86/lib/memset_64.S | 8 ++++---- arch/x86/platform/efi/efi_thunk_64.S | 12 ++++++------ arch/x86/platform/pvh/head.S | 4 ++-- 7 files changed, 35 insertions(+), 34 deletions(-) diff --git a/arch/x86/boot/compressed/efi_thunk_64.S b/arch/x86/boot/compressed/efi_thunk_64.S index d66000d23921..31312070db22 100644 --- a/arch/x86/boot/compressed/efi_thunk_64.S +++ b/arch/x86/boot/compressed/efi_thunk_64.S @@ -99,12 +99,12 @@ ENTRY(efi64_thunk) ret ENDPROC(efi64_thunk) -ENTRY(efi_exit32) +SYM_FUNC_START_LOCAL(efi_exit32) movq func_rt_ptr(%rip), %rax push %rax mov %rdi, %rax ret -ENDPROC(efi_exit32) +SYM_FUNC_END(efi_exit32) .code32 /* @@ -112,7 +112,7 @@ ENDPROC(efi_exit32) * * The stack should represent the 32-bit calling convention. */ -ENTRY(efi_enter32) +SYM_FUNC_START_LOCAL(efi_enter32) movl $__KERNEL_DS, %eax movl %eax, %ds movl %eax, %es @@ -172,7 +172,7 @@ ENTRY(efi_enter32) btsl $X86_CR0_PG_BIT, %eax movl %eax, %cr0 lret -ENDPROC(efi_enter32) +SYM_FUNC_END(efi_enter32) .data .balign 8 diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S index 57d246048ac6..1568da63bf16 100644 --- a/arch/x86/entry/entry_64.S +++ b/arch/x86/entry/entry_64.S @@ -1101,7 +1101,8 @@ idtentry hypervisor_callback xen_do_hypervisor_callback has_error_code=0 * existing activation in its critical region -- if so, we pop the current * activation and restart the handler using the previous one. */ -ENTRY(xen_do_hypervisor_callback) /* do_hypervisor_callback(struct *pt_regs) */ +/* do_hypervisor_callback(struct *pt_regs) */ +SYM_CODE_START_LOCAL(xen_do_hypervisor_callback) /* * Since we don't modify %rdi, evtchn_do_upall(struct *pt_regs) will @@ -1119,7 +1120,7 @@ ENTRY(xen_do_hypervisor_callback) /* do_hypervisor_callback(struct *pt_regs) */ call xen_maybe_preempt_hcall #endif jmp error_exit -END(xen_do_hypervisor_callback) +SYM_CODE_END(xen_do_hypervisor_callback) /* * Hypervisor uses this for application faults while it executes. @@ -1214,7 +1215,7 @@ idtentry machine_check do_mce has_error_code=0 paranoid=1 * Use slow, but surefire "are we in kernel?" check. * Return: ebx=0: need swapgs on exit, ebx=1: otherwise */ -ENTRY(paranoid_entry) +SYM_CODE_START_LOCAL(paranoid_entry) UNWIND_HINT_FUNC cld PUSH_AND_CLEAR_REGS save_ret=1 @@ -1248,7 +1249,7 @@ ENTRY(paranoid_entry) FENCE_SWAPGS_KERNEL_ENTRY ret -END(paranoid_entry) +SYM_CODE_END(paranoid_entry) /* * "Paranoid" exit path from exception stack. This is invoked @@ -1262,7 +1263,7 @@ END(paranoid_entry) * * On entry, ebx is "no swapgs" flag (1: don't need swapgs, 0: need it) */ -ENTRY(paranoid_exit) +SYM_CODE_START_LOCAL(paranoid_exit) UNWIND_HINT_REGS DISABLE_INTERRUPTS(CLBR_ANY) TRACE_IRQS_OFF_DEBUG @@ -1279,12 +1280,12 @@ ENTRY(paranoid_exit) RESTORE_CR3 scratch_reg=%rbx save_reg=%r14 .Lparanoid_exit_restore: jmp restore_regs_and_return_to_kernel -END(paranoid_exit) +SYM_CODE_END(paranoid_exit) /* * Save all registers in pt_regs, and switch GS if needed. */ -ENTRY(error_entry) +SYM_CODE_START_LOCAL(error_entry) UNWIND_HINT_FUNC cld PUSH_AND_CLEAR_REGS save_ret=1 @@ -1364,16 +1365,16 @@ ENTRY(error_entry) call fixup_bad_iret mov %rax, %rsp jmp .Lerror_entry_from_usermode_after_swapgs -END(error_entry) +SYM_CODE_END(error_entry) -ENTRY(error_exit) +SYM_CODE_START_LOCAL(error_exit) UNWIND_HINT_REGS DISABLE_INTERRUPTS(CLBR_ANY) TRACE_IRQS_OFF testb $3, CS(%rsp) jz retint_kernel jmp .Lretint_user -END(error_exit) +SYM_CODE_END(error_exit) /* * Runs on exception stack. Xen PV does not go through this path at all, diff --git a/arch/x86/lib/copy_page_64.S b/arch/x86/lib/copy_page_64.S index fd2d09afa097..f505870bd93b 100644 --- a/arch/x86/lib/copy_page_64.S +++ b/arch/x86/lib/copy_page_64.S @@ -21,7 +21,7 @@ ENTRY(copy_page) ENDPROC(copy_page) EXPORT_SYMBOL(copy_page) -ENTRY(copy_page_regs) +SYM_FUNC_START_LOCAL(copy_page_regs) subq $2*8, %rsp movq %rbx, (%rsp) movq %r12, 1*8(%rsp) @@ -86,4 +86,4 @@ ENTRY(copy_page_regs) movq 1*8(%rsp), %r12 addq $2*8, %rsp ret -ENDPROC(copy_page_regs) +SYM_FUNC_END(copy_page_regs) diff --git a/arch/x86/lib/memcpy_64.S b/arch/x86/lib/memcpy_64.S index 57a64266ba69..3265b21e86c0 100644 --- a/arch/x86/lib/memcpy_64.S +++ b/arch/x86/lib/memcpy_64.S @@ -29,7 +29,7 @@ * rax original destination */ SYM_FUNC_START_ALIAS(__memcpy) -ENTRY(memcpy) +SYM_FUNC_START_LOCAL(memcpy) ALTERNATIVE_2 "jmp memcpy_orig", "", X86_FEATURE_REP_GOOD, \ "jmp memcpy_erms", X86_FEATURE_ERMS @@ -41,7 +41,7 @@ ENTRY(memcpy) movl %edx, %ecx rep movsb ret -ENDPROC(memcpy) +SYM_FUNC_END(memcpy) SYM_FUNC_END_ALIAS(__memcpy) EXPORT_SYMBOL(memcpy) EXPORT_SYMBOL(__memcpy) @@ -50,14 +50,14 @@ EXPORT_SYMBOL(__memcpy) * memcpy_erms() - enhanced fast string memcpy. This is faster and * simpler than memcpy. Use memcpy_erms when possible. */ -ENTRY(memcpy_erms) +SYM_FUNC_START_LOCAL(memcpy_erms) movq %rdi, %rax movq %rdx, %rcx rep movsb ret -ENDPROC(memcpy_erms) +SYM_FUNC_END(memcpy_erms) -ENTRY(memcpy_orig) +SYM_FUNC_START_LOCAL(memcpy_orig) movq %rdi, %rax cmpq $0x20, %rdx @@ -182,7 +182,7 @@ ENTRY(memcpy_orig) .Lend: retq -ENDPROC(memcpy_orig) +SYM_FUNC_END(memcpy_orig) #ifndef CONFIG_UML diff --git a/arch/x86/lib/memset_64.S b/arch/x86/lib/memset_64.S index 927ac44d34aa..564abf9ecedb 100644 --- a/arch/x86/lib/memset_64.S +++ b/arch/x86/lib/memset_64.S @@ -59,16 +59,16 @@ EXPORT_SYMBOL(__memset) * * rax original destination */ -ENTRY(memset_erms) +SYM_FUNC_START_LOCAL(memset_erms) movq %rdi,%r9 movb %sil,%al movq %rdx,%rcx rep stosb movq %r9,%rax ret -ENDPROC(memset_erms) +SYM_FUNC_END(memset_erms) -ENTRY(memset_orig) +SYM_FUNC_START_LOCAL(memset_orig) movq %rdi,%r10 /* expand byte value */ @@ -139,4 +139,4 @@ ENTRY(memset_orig) subq %r8,%rdx jmp .Lafter_bad_alignment .Lfinal: -ENDPROC(memset_orig) +SYM_FUNC_END(memset_orig) diff --git a/arch/x86/platform/efi/efi_thunk_64.S b/arch/x86/platform/efi/efi_thunk_64.S index 46c58b08739c..d677a7eb2d0a 100644 --- a/arch/x86/platform/efi/efi_thunk_64.S +++ b/arch/x86/platform/efi/efi_thunk_64.S @@ -67,7 +67,7 @@ ENDPROC(efi64_thunk) * * This function must be invoked with a 1:1 mapped stack. */ -ENTRY(__efi64_thunk) +SYM_FUNC_START_LOCAL(__efi64_thunk) movl %ds, %eax push %rax movl %es, %eax @@ -114,14 +114,14 @@ ENTRY(__efi64_thunk) or %rcx, %rax 1: ret -ENDPROC(__efi64_thunk) +SYM_FUNC_END(__efi64_thunk) -ENTRY(efi_exit32) +SYM_FUNC_START_LOCAL(efi_exit32) movq func_rt_ptr(%rip), %rax push %rax mov %rdi, %rax ret -ENDPROC(efi_exit32) +SYM_FUNC_END(efi_exit32) .code32 /* @@ -129,7 +129,7 @@ ENDPROC(efi_exit32) * * The stack should represent the 32-bit calling convention. */ -ENTRY(efi_enter32) +SYM_FUNC_START_LOCAL(efi_enter32) movl $__KERNEL_DS, %eax movl %eax, %ds movl %eax, %es @@ -145,7 +145,7 @@ ENTRY(efi_enter32) pushl %eax lret -ENDPROC(efi_enter32) +SYM_FUNC_END(efi_enter32) .data .balign 8 diff --git a/arch/x86/platform/pvh/head.S b/arch/x86/platform/pvh/head.S index 4e63480bb223..43b4d864817e 100644 --- a/arch/x86/platform/pvh/head.S +++ b/arch/x86/platform/pvh/head.S @@ -50,7 +50,7 @@ #define PVH_DS_SEL (PVH_GDT_ENTRY_DS * 8) #define PVH_CANARY_SEL (PVH_GDT_ENTRY_CANARY * 8) -ENTRY(pvh_start_xen) +SYM_CODE_START_LOCAL(pvh_start_xen) cld lgdt (_pa(gdt)) @@ -146,7 +146,7 @@ ENTRY(pvh_start_xen) ljmp $PVH_CS_SEL, $_pa(startup_32) #endif -END(pvh_start_xen) +SYM_CODE_END(pvh_start_xen) .section ".init.data","aw" .balign 8 -- 2.23.0 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BE6DAECE58E for ; Fri, 11 Oct 2019 11:51:51 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 91E4A206CD for ; Fri, 11 Oct 2019 11:51:51 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 91E4A206CD Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.cz Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iItSC-0000NR-DA; Fri, 11 Oct 2019 11:51:28 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iItSA-0000N6-FU for xen-devel@lists.xenproject.org; Fri, 11 Oct 2019 11:51:26 +0000 X-Inumbo-ID: 7355c6a8-ec1d-11e9-bbab-bc764e2007e4 Received: from mx1.suse.de (unknown [195.135.220.15]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 7355c6a8-ec1d-11e9-bbab-bc764e2007e4; Fri, 11 Oct 2019 11:51:25 +0000 (UTC) X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 222B3B493; Fri, 11 Oct 2019 11:51:24 +0000 (UTC) From: Jiri Slaby To: bp@alien8.de Date: Fri, 11 Oct 2019 13:51:00 +0200 Message-Id: <20191011115108.12392-21-jslaby@suse.cz> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191011115108.12392-1-jslaby@suse.cz> References: <20191011115108.12392-1-jslaby@suse.cz> MIME-Version: 1.0 Subject: [Xen-devel] [PATCH v9 20/28] x86/asm: Make some functions local X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: linux-arch@vger.kernel.org, linux-efi@vger.kernel.org, Ard Biesheuvel , Matt Fleming , x86@kernel.org, linux-kernel@vger.kernel.org, mingo@redhat.com, hpa@zytor.com, xen-devel@lists.xenproject.org, tglx@linutronix.de, Jiri Slaby Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" VGhlcmUgaXMgYSBjb3VwbGUgb2YgYXNzZW1ibHkgZnVuY3Rpb25zLCB3aGljaCBhcmUgaW52b2tl ZCBvbmx5IGxvY2FsbHkKaW4gdGhlIGZpbGUgdGhleSBhcmUgZGVmaW5lZC4gSW4gQywgdGhleSBh cmUgbWFya2VkICJzdGF0aWMiLiBJbgphc3NlbWJseSwgYW5ub3RhdGUgdGhlbSB1c2luZyBTWU1f e0ZVTkMsQ09ERX1fU1RBUlRfTE9DQUwgKGFuZCBzd2l0Y2gKdGhlaXIgRU5EUFJPQyB0byBTWU1f e0ZVTkMsQ09ERX1fRU5EIHRvbykuIFdoZXRoZXIgRlVOQyBvciBDT0RFIGlzIHVzZWQsCmRlcGVu ZHMgb24gd2hldGhlciBFTkRQUk9DIG9yIEVORCB3YXMgdXNlZCBmb3IgYSBwYXJ0aWN1bGFyIGZ1 bmN0aW9uCmJlZm9yZS4KClNpZ25lZC1vZmYtYnk6IEppcmkgU2xhYnkgPGpzbGFieUBzdXNlLmN6 PgpDYzogQm9yaXNsYXYgUGV0a292IDxicEBhbGllbjguZGU+CkNjOiAiSC4gUGV0ZXIgQW52aW4i IDxocGFAenl0b3IuY29tPgpDYzogVGhvbWFzIEdsZWl4bmVyIDx0Z2x4QGxpbnV0cm9uaXguZGU+ CkNjOiBJbmdvIE1vbG5hciA8bWluZ29AcmVkaGF0LmNvbT4KQ2M6IHg4NkBrZXJuZWwub3JnCkNj OiBNYXR0IEZsZW1pbmcgPG1hdHRAY29kZWJsdWVwcmludC5jby51az4KQ2M6IEFyZCBCaWVzaGV1 dmVsIDxhcmQuYmllc2hldXZlbEBsaW5hcm8ub3JnPgpDYzogbGludXgtZWZpQHZnZXIua2VybmVs Lm9yZwpDYzogeGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCi0tLQogYXJjaC94ODYvYm9v dC9jb21wcmVzc2VkL2VmaV90aHVua182NC5TIHwgIDggKysrKy0tLS0KIGFyY2gveDg2L2VudHJ5 L2VudHJ5XzY0LlMgICAgICAgICAgICAgICB8IDIxICsrKysrKysrKysrLS0tLS0tLS0tLQogYXJj aC94ODYvbGliL2NvcHlfcGFnZV82NC5TICAgICAgICAgICAgIHwgIDQgKystLQogYXJjaC94ODYv bGliL21lbWNweV82NC5TICAgICAgICAgICAgICAgIHwgMTIgKysrKysrLS0tLS0tCiBhcmNoL3g4 Ni9saWIvbWVtc2V0XzY0LlMgICAgICAgICAgICAgICAgfCAgOCArKysrLS0tLQogYXJjaC94ODYv cGxhdGZvcm0vZWZpL2VmaV90aHVua182NC5TICAgIHwgMTIgKysrKysrLS0tLS0tCiBhcmNoL3g4 Ni9wbGF0Zm9ybS9wdmgvaGVhZC5TICAgICAgICAgICAgfCAgNCArKy0tCiA3IGZpbGVzIGNoYW5n ZWQsIDM1IGluc2VydGlvbnMoKyksIDM0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2FyY2gv eDg2L2Jvb3QvY29tcHJlc3NlZC9lZmlfdGh1bmtfNjQuUyBiL2FyY2gveDg2L2Jvb3QvY29tcHJl c3NlZC9lZmlfdGh1bmtfNjQuUwppbmRleCBkNjYwMDBkMjM5MjEuLjMxMzEyMDcwZGIyMiAxMDA2 NDQKLS0tIGEvYXJjaC94ODYvYm9vdC9jb21wcmVzc2VkL2VmaV90aHVua182NC5TCisrKyBiL2Fy Y2gveDg2L2Jvb3QvY29tcHJlc3NlZC9lZmlfdGh1bmtfNjQuUwpAQCAtOTksMTIgKzk5LDEyIEBA IEVOVFJZKGVmaTY0X3RodW5rKQogCXJldAogRU5EUFJPQyhlZmk2NF90aHVuaykKIAotRU5UUlko ZWZpX2V4aXQzMikKK1NZTV9GVU5DX1NUQVJUX0xPQ0FMKGVmaV9leGl0MzIpCiAJbW92cQlmdW5j X3J0X3B0ciglcmlwKSwgJXJheAogCXB1c2gJJXJheAogCW1vdgklcmRpLCAlcmF4CiAJcmV0Ci1F TkRQUk9DKGVmaV9leGl0MzIpCitTWU1fRlVOQ19FTkQoZWZpX2V4aXQzMikKIAogCS5jb2RlMzIK IC8qCkBAIC0xMTIsNyArMTEyLDcgQEAgRU5EUFJPQyhlZmlfZXhpdDMyKQogICoKICAqIFRoZSBz dGFjayBzaG91bGQgcmVwcmVzZW50IHRoZSAzMi1iaXQgY2FsbGluZyBjb252ZW50aW9uLgogICov Ci1FTlRSWShlZmlfZW50ZXIzMikKK1NZTV9GVU5DX1NUQVJUX0xPQ0FMKGVmaV9lbnRlcjMyKQog CW1vdmwJJF9fS0VSTkVMX0RTLCAlZWF4CiAJbW92bAklZWF4LCAlZHMKIAltb3ZsCSVlYXgsICVl cwpAQCAtMTcyLDcgKzE3Miw3IEBAIEVOVFJZKGVmaV9lbnRlcjMyKQogCWJ0c2wJJFg4Nl9DUjBf UEdfQklULCAlZWF4CiAJbW92bAklZWF4LCAlY3IwCiAJbHJldAotRU5EUFJPQyhlZmlfZW50ZXIz MikKK1NZTV9GVU5DX0VORChlZmlfZW50ZXIzMikKIAogCS5kYXRhCiAJLmJhbGlnbgk4CmRpZmYg LS1naXQgYS9hcmNoL3g4Ni9lbnRyeS9lbnRyeV82NC5TIGIvYXJjaC94ODYvZW50cnkvZW50cnlf NjQuUwppbmRleCA1N2QyNDYwNDhhYzYuLjE1NjhkYTYzYmYxNiAxMDA2NDQKLS0tIGEvYXJjaC94 ODYvZW50cnkvZW50cnlfNjQuUworKysgYi9hcmNoL3g4Ni9lbnRyeS9lbnRyeV82NC5TCkBAIC0x MTAxLDcgKzExMDEsOCBAQCBpZHRlbnRyeSBoeXBlcnZpc29yX2NhbGxiYWNrIHhlbl9kb19oeXBl cnZpc29yX2NhbGxiYWNrIGhhc19lcnJvcl9jb2RlPTAKICAqIGV4aXN0aW5nIGFjdGl2YXRpb24g aW4gaXRzIGNyaXRpY2FsIHJlZ2lvbiAtLSBpZiBzbywgd2UgcG9wIHRoZSBjdXJyZW50CiAgKiBh Y3RpdmF0aW9uIGFuZCByZXN0YXJ0IHRoZSBoYW5kbGVyIHVzaW5nIHRoZSBwcmV2aW91cyBvbmUu CiAgKi8KLUVOVFJZKHhlbl9kb19oeXBlcnZpc29yX2NhbGxiYWNrKQkJLyogZG9faHlwZXJ2aXNv cl9jYWxsYmFjayhzdHJ1Y3QgKnB0X3JlZ3MpICovCisvKiBkb19oeXBlcnZpc29yX2NhbGxiYWNr KHN0cnVjdCAqcHRfcmVncykgKi8KK1NZTV9DT0RFX1NUQVJUX0xPQ0FMKHhlbl9kb19oeXBlcnZp c29yX2NhbGxiYWNrKQogCiAvKgogICogU2luY2Ugd2UgZG9uJ3QgbW9kaWZ5ICVyZGksIGV2dGNo bl9kb191cGFsbChzdHJ1Y3QgKnB0X3JlZ3MpIHdpbGwKQEAgLTExMTksNyArMTEyMCw3IEBAIEVO VFJZKHhlbl9kb19oeXBlcnZpc29yX2NhbGxiYWNrKQkJLyogZG9faHlwZXJ2aXNvcl9jYWxsYmFj ayhzdHJ1Y3QgKnB0X3JlZ3MpICovCiAJY2FsbAl4ZW5fbWF5YmVfcHJlZW1wdF9oY2FsbAogI2Vu ZGlmCiAJam1wCWVycm9yX2V4aXQKLUVORCh4ZW5fZG9faHlwZXJ2aXNvcl9jYWxsYmFjaykKK1NZ TV9DT0RFX0VORCh4ZW5fZG9faHlwZXJ2aXNvcl9jYWxsYmFjaykKIAogLyoKICAqIEh5cGVydmlz b3IgdXNlcyB0aGlzIGZvciBhcHBsaWNhdGlvbiBmYXVsdHMgd2hpbGUgaXQgZXhlY3V0ZXMuCkBA IC0xMjE0LDcgKzEyMTUsNyBAQCBpZHRlbnRyeSBtYWNoaW5lX2NoZWNrCQlkb19tY2UJCQloYXNf ZXJyb3JfY29kZT0wCXBhcmFub2lkPTEKICAqIFVzZSBzbG93LCBidXQgc3VyZWZpcmUgImFyZSB3 ZSBpbiBrZXJuZWw/IiBjaGVjay4KICAqIFJldHVybjogZWJ4PTA6IG5lZWQgc3dhcGdzIG9uIGV4 aXQsIGVieD0xOiBvdGhlcndpc2UKICAqLwotRU5UUlkocGFyYW5vaWRfZW50cnkpCitTWU1fQ09E RV9TVEFSVF9MT0NBTChwYXJhbm9pZF9lbnRyeSkKIAlVTldJTkRfSElOVF9GVU5DCiAJY2xkCiAJ UFVTSF9BTkRfQ0xFQVJfUkVHUyBzYXZlX3JldD0xCkBAIC0xMjQ4LDcgKzEyNDksNyBAQCBFTlRS WShwYXJhbm9pZF9lbnRyeSkKIAlGRU5DRV9TV0FQR1NfS0VSTkVMX0VOVFJZCiAKIAlyZXQKLUVO RChwYXJhbm9pZF9lbnRyeSkKK1NZTV9DT0RFX0VORChwYXJhbm9pZF9lbnRyeSkKIAogLyoKICAq ICJQYXJhbm9pZCIgZXhpdCBwYXRoIGZyb20gZXhjZXB0aW9uIHN0YWNrLiAgVGhpcyBpcyBpbnZv a2VkCkBAIC0xMjYyLDcgKzEyNjMsNyBAQCBFTkQocGFyYW5vaWRfZW50cnkpCiAgKgogICogT24g ZW50cnksIGVieCBpcyAibm8gc3dhcGdzIiBmbGFnICgxOiBkb24ndCBuZWVkIHN3YXBncywgMDog bmVlZCBpdCkKICAqLwotRU5UUlkocGFyYW5vaWRfZXhpdCkKK1NZTV9DT0RFX1NUQVJUX0xPQ0FM KHBhcmFub2lkX2V4aXQpCiAJVU5XSU5EX0hJTlRfUkVHUwogCURJU0FCTEVfSU5URVJSVVBUUyhD TEJSX0FOWSkKIAlUUkFDRV9JUlFTX09GRl9ERUJVRwpAQCAtMTI3OSwxMiArMTI4MCwxMiBAQCBF TlRSWShwYXJhbm9pZF9leGl0KQogCVJFU1RPUkVfQ1IzCXNjcmF0Y2hfcmVnPSVyYnggc2F2ZV9y ZWc9JXIxNAogLkxwYXJhbm9pZF9leGl0X3Jlc3RvcmU6CiAJam1wIHJlc3RvcmVfcmVnc19hbmRf cmV0dXJuX3RvX2tlcm5lbAotRU5EKHBhcmFub2lkX2V4aXQpCitTWU1fQ09ERV9FTkQocGFyYW5v aWRfZXhpdCkKIAogLyoKICAqIFNhdmUgYWxsIHJlZ2lzdGVycyBpbiBwdF9yZWdzLCBhbmQgc3dp dGNoIEdTIGlmIG5lZWRlZC4KICAqLwotRU5UUlkoZXJyb3JfZW50cnkpCitTWU1fQ09ERV9TVEFS VF9MT0NBTChlcnJvcl9lbnRyeSkKIAlVTldJTkRfSElOVF9GVU5DCiAJY2xkCiAJUFVTSF9BTkRf Q0xFQVJfUkVHUyBzYXZlX3JldD0xCkBAIC0xMzY0LDE2ICsxMzY1LDE2IEBAIEVOVFJZKGVycm9y X2VudHJ5KQogCWNhbGwJZml4dXBfYmFkX2lyZXQKIAltb3YJJXJheCwgJXJzcAogCWptcAkuTGVy cm9yX2VudHJ5X2Zyb21fdXNlcm1vZGVfYWZ0ZXJfc3dhcGdzCi1FTkQoZXJyb3JfZW50cnkpCitT WU1fQ09ERV9FTkQoZXJyb3JfZW50cnkpCiAKLUVOVFJZKGVycm9yX2V4aXQpCitTWU1fQ09ERV9T VEFSVF9MT0NBTChlcnJvcl9leGl0KQogCVVOV0lORF9ISU5UX1JFR1MKIAlESVNBQkxFX0lOVEVS UlVQVFMoQ0xCUl9BTlkpCiAJVFJBQ0VfSVJRU19PRkYKIAl0ZXN0YgkkMywgQ1MoJXJzcCkKIAlq eglyZXRpbnRfa2VybmVsCiAJam1wCS5McmV0aW50X3VzZXIKLUVORChlcnJvcl9leGl0KQorU1lN X0NPREVfRU5EKGVycm9yX2V4aXQpCiAKIC8qCiAgKiBSdW5zIG9uIGV4Y2VwdGlvbiBzdGFjay4g IFhlbiBQViBkb2VzIG5vdCBnbyB0aHJvdWdoIHRoaXMgcGF0aCBhdCBhbGwsCmRpZmYgLS1naXQg YS9hcmNoL3g4Ni9saWIvY29weV9wYWdlXzY0LlMgYi9hcmNoL3g4Ni9saWIvY29weV9wYWdlXzY0 LlMKaW5kZXggZmQyZDA5YWZhMDk3Li5mNTA1ODcwYmQ5M2IgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2 L2xpYi9jb3B5X3BhZ2VfNjQuUworKysgYi9hcmNoL3g4Ni9saWIvY29weV9wYWdlXzY0LlMKQEAg LTIxLDcgKzIxLDcgQEAgRU5UUlkoY29weV9wYWdlKQogRU5EUFJPQyhjb3B5X3BhZ2UpCiBFWFBP UlRfU1lNQk9MKGNvcHlfcGFnZSkKIAotRU5UUlkoY29weV9wYWdlX3JlZ3MpCitTWU1fRlVOQ19T VEFSVF9MT0NBTChjb3B5X3BhZ2VfcmVncykKIAlzdWJxCSQyKjgsCSVyc3AKIAltb3ZxCSVyYngs CSglcnNwKQogCW1vdnEJJXIxMiwJMSo4KCVyc3ApCkBAIC04Niw0ICs4Niw0IEBAIEVOVFJZKGNv cHlfcGFnZV9yZWdzKQogCW1vdnEJMSo4KCVyc3ApLCAlcjEyCiAJYWRkcQkkMio4LCAlcnNwCiAJ cmV0Ci1FTkRQUk9DKGNvcHlfcGFnZV9yZWdzKQorU1lNX0ZVTkNfRU5EKGNvcHlfcGFnZV9yZWdz KQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbGliL21lbWNweV82NC5TIGIvYXJjaC94ODYvbGliL21l bWNweV82NC5TCmluZGV4IDU3YTY0MjY2YmE2OS4uMzI2NWIyMWU4NmMwIDEwMDY0NAotLS0gYS9h cmNoL3g4Ni9saWIvbWVtY3B5XzY0LlMKKysrIGIvYXJjaC94ODYvbGliL21lbWNweV82NC5TCkBA IC0yOSw3ICsyOSw3IEBACiAgKiByYXggb3JpZ2luYWwgZGVzdGluYXRpb24KICAqLwogU1lNX0ZV TkNfU1RBUlRfQUxJQVMoX19tZW1jcHkpCi1FTlRSWShtZW1jcHkpCitTWU1fRlVOQ19TVEFSVF9M T0NBTChtZW1jcHkpCiAJQUxURVJOQVRJVkVfMiAiam1wIG1lbWNweV9vcmlnIiwgIiIsIFg4Nl9G RUFUVVJFX1JFUF9HT09ELCBcCiAJCSAgICAgICJqbXAgbWVtY3B5X2VybXMiLCBYODZfRkVBVFVS RV9FUk1TCiAKQEAgLTQxLDcgKzQxLDcgQEAgRU5UUlkobWVtY3B5KQogCW1vdmwgJWVkeCwgJWVj eAogCXJlcCBtb3ZzYgogCXJldAotRU5EUFJPQyhtZW1jcHkpCitTWU1fRlVOQ19FTkQobWVtY3B5 KQogU1lNX0ZVTkNfRU5EX0FMSUFTKF9fbWVtY3B5KQogRVhQT1JUX1NZTUJPTChtZW1jcHkpCiBF WFBPUlRfU1lNQk9MKF9fbWVtY3B5KQpAQCAtNTAsMTQgKzUwLDE0IEBAIEVYUE9SVF9TWU1CT0wo X19tZW1jcHkpCiAgKiBtZW1jcHlfZXJtcygpIC0gZW5oYW5jZWQgZmFzdCBzdHJpbmcgbWVtY3B5 LiBUaGlzIGlzIGZhc3RlciBhbmQKICAqIHNpbXBsZXIgdGhhbiBtZW1jcHkuIFVzZSBtZW1jcHlf ZXJtcyB3aGVuIHBvc3NpYmxlLgogICovCi1FTlRSWShtZW1jcHlfZXJtcykKK1NZTV9GVU5DX1NU QVJUX0xPQ0FMKG1lbWNweV9lcm1zKQogCW1vdnEgJXJkaSwgJXJheAogCW1vdnEgJXJkeCwgJXJj eAogCXJlcCBtb3ZzYgogCXJldAotRU5EUFJPQyhtZW1jcHlfZXJtcykKK1NZTV9GVU5DX0VORCht ZW1jcHlfZXJtcykKIAotRU5UUlkobWVtY3B5X29yaWcpCitTWU1fRlVOQ19TVEFSVF9MT0NBTCht ZW1jcHlfb3JpZykKIAltb3ZxICVyZGksICVyYXgKIAogCWNtcHEgJDB4MjAsICVyZHgKQEAgLTE4 Miw3ICsxODIsNyBAQCBFTlRSWShtZW1jcHlfb3JpZykKIAogLkxlbmQ6CiAJcmV0cQotRU5EUFJP QyhtZW1jcHlfb3JpZykKK1NZTV9GVU5DX0VORChtZW1jcHlfb3JpZykKIAogI2lmbmRlZiBDT05G SUdfVU1MCiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2xpYi9tZW1zZXRfNjQuUyBiL2FyY2gveDg2 L2xpYi9tZW1zZXRfNjQuUwppbmRleCA5MjdhYzQ0ZDM0YWEuLjU2NGFiZjllY2VkYiAxMDA2NDQK LS0tIGEvYXJjaC94ODYvbGliL21lbXNldF82NC5TCisrKyBiL2FyY2gveDg2L2xpYi9tZW1zZXRf NjQuUwpAQCAtNTksMTYgKzU5LDE2IEBAIEVYUE9SVF9TWU1CT0woX19tZW1zZXQpCiAgKgogICog cmF4ICAgb3JpZ2luYWwgZGVzdGluYXRpb24KICAqLwotRU5UUlkobWVtc2V0X2VybXMpCitTWU1f RlVOQ19TVEFSVF9MT0NBTChtZW1zZXRfZXJtcykKIAltb3ZxICVyZGksJXI5CiAJbW92YiAlc2ls LCVhbAogCW1vdnEgJXJkeCwlcmN4CiAJcmVwIHN0b3NiCiAJbW92cSAlcjksJXJheAogCXJldAot RU5EUFJPQyhtZW1zZXRfZXJtcykKK1NZTV9GVU5DX0VORChtZW1zZXRfZXJtcykKIAotRU5UUlko bWVtc2V0X29yaWcpCitTWU1fRlVOQ19TVEFSVF9MT0NBTChtZW1zZXRfb3JpZykKIAltb3ZxICVy ZGksJXIxMAogCiAJLyogZXhwYW5kIGJ5dGUgdmFsdWUgICovCkBAIC0xMzksNCArMTM5LDQgQEAg RU5UUlkobWVtc2V0X29yaWcpCiAJc3VicSAlcjgsJXJkeAogCWptcCAuTGFmdGVyX2JhZF9hbGln bm1lbnQKIC5MZmluYWw6Ci1FTkRQUk9DKG1lbXNldF9vcmlnKQorU1lNX0ZVTkNfRU5EKG1lbXNl dF9vcmlnKQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvcGxhdGZvcm0vZWZpL2VmaV90aHVua182NC5T IGIvYXJjaC94ODYvcGxhdGZvcm0vZWZpL2VmaV90aHVua182NC5TCmluZGV4IDQ2YzU4YjA4NzM5 Yy4uZDY3N2E3ZWIyZDBhIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9wbGF0Zm9ybS9lZmkvZWZpX3Ro dW5rXzY0LlMKKysrIGIvYXJjaC94ODYvcGxhdGZvcm0vZWZpL2VmaV90aHVua182NC5TCkBAIC02 Nyw3ICs2Nyw3IEBAIEVORFBST0MoZWZpNjRfdGh1bmspCiAgKgogICogVGhpcyBmdW5jdGlvbiBt dXN0IGJlIGludm9rZWQgd2l0aCBhIDE6MSBtYXBwZWQgc3RhY2suCiAgKi8KLUVOVFJZKF9fZWZp NjRfdGh1bmspCitTWU1fRlVOQ19TVEFSVF9MT0NBTChfX2VmaTY0X3RodW5rKQogCW1vdmwJJWRz LCAlZWF4CiAJcHVzaAklcmF4CiAJbW92bAklZXMsICVlYXgKQEAgLTExNCwxNCArMTE0LDE0IEBA IEVOVFJZKF9fZWZpNjRfdGh1bmspCiAJb3IJJXJjeCwgJXJheAogMToKIAlyZXQKLUVORFBST0Mo X19lZmk2NF90aHVuaykKK1NZTV9GVU5DX0VORChfX2VmaTY0X3RodW5rKQogCi1FTlRSWShlZmlf ZXhpdDMyKQorU1lNX0ZVTkNfU1RBUlRfTE9DQUwoZWZpX2V4aXQzMikKIAltb3ZxCWZ1bmNfcnRf cHRyKCVyaXApLCAlcmF4CiAJcHVzaAklcmF4CiAJbW92CSVyZGksICVyYXgKIAlyZXQKLUVORFBS T0MoZWZpX2V4aXQzMikKK1NZTV9GVU5DX0VORChlZmlfZXhpdDMyKQogCiAJLmNvZGUzMgogLyoK QEAgLTEyOSw3ICsxMjksNyBAQCBFTkRQUk9DKGVmaV9leGl0MzIpCiAgKgogICogVGhlIHN0YWNr IHNob3VsZCByZXByZXNlbnQgdGhlIDMyLWJpdCBjYWxsaW5nIGNvbnZlbnRpb24uCiAgKi8KLUVO VFJZKGVmaV9lbnRlcjMyKQorU1lNX0ZVTkNfU1RBUlRfTE9DQUwoZWZpX2VudGVyMzIpCiAJbW92 bAkkX19LRVJORUxfRFMsICVlYXgKIAltb3ZsCSVlYXgsICVkcwogCW1vdmwJJWVheCwgJWVzCkBA IC0xNDUsNyArMTQ1LDcgQEAgRU5UUlkoZWZpX2VudGVyMzIpCiAJcHVzaGwJJWVheAogCiAJbHJl dAotRU5EUFJPQyhlZmlfZW50ZXIzMikKK1NZTV9GVU5DX0VORChlZmlfZW50ZXIzMikKIAogCS5k YXRhCiAJLmJhbGlnbgk4CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9wbGF0Zm9ybS9wdmgvaGVhZC5T IGIvYXJjaC94ODYvcGxhdGZvcm0vcHZoL2hlYWQuUwppbmRleCA0ZTYzNDgwYmIyMjMuLjQzYjRk ODY0ODE3ZSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvcGxhdGZvcm0vcHZoL2hlYWQuUworKysgYi9h cmNoL3g4Ni9wbGF0Zm9ybS9wdmgvaGVhZC5TCkBAIC01MCw3ICs1MCw3IEBACiAjZGVmaW5lIFBW SF9EU19TRUwJCShQVkhfR0RUX0VOVFJZX0RTICogOCkKICNkZWZpbmUgUFZIX0NBTkFSWV9TRUwJ CShQVkhfR0RUX0VOVFJZX0NBTkFSWSAqIDgpCiAKLUVOVFJZKHB2aF9zdGFydF94ZW4pCitTWU1f Q09ERV9TVEFSVF9MT0NBTChwdmhfc3RhcnRfeGVuKQogCWNsZAogCiAJbGdkdCAoX3BhKGdkdCkp CkBAIC0xNDYsNyArMTQ2LDcgQEAgRU5UUlkocHZoX3N0YXJ0X3hlbikKIAogCWxqbXAgJFBWSF9D U19TRUwsICRfcGEoc3RhcnR1cF8zMikKICNlbmRpZgotRU5EKHB2aF9zdGFydF94ZW4pCitTWU1f Q09ERV9FTkQocHZoX3N0YXJ0X3hlbikKIAogCS5zZWN0aW9uICIuaW5pdC5kYXRhIiwiYXciCiAJ LmJhbGlnbiA4Ci0tIAoyLjIzLjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5w cm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8v eGVuLWRldmVs