From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933878AbdBQKun (ORCPT ); Fri, 17 Feb 2017 05:50:43 -0500 Received: from mx2.suse.de ([195.135.220.15]:44828 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755475AbdBQKsC (ORCPT ); Fri, 17 Feb 2017 05:48:02 -0500 From: Jiri Slaby To: mingo@redhat.com Cc: tglx@linutronix.de, hpa@zytor.com, x86@kernel.org, jpoimboe@redhat.com, linux-kernel@vger.kernel.org, Jiri Slaby , "Rafael J. Wysocki" , Pavel Machek , linux-pm@vger.kernel.org, Boris Ostrovsky , Juergen Gross , xen-devel@lists.xenproject.org Subject: [PATCH 02/10] x86: assembly, use ENDPROC for functions Date: Fri, 17 Feb 2017 11:47:49 +0100 Message-Id: <20170217104757.28588-2-jslaby@suse.cz> X-Mailer: git-send-email 2.11.1 In-Reply-To: <20170217104757.28588-1-jslaby@suse.cz> References: <20170217104757.28588-1-jslaby@suse.cz> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Somewhere END was used to end a function, elsewhere, nothing was used. So unify it and mark them all by ENDPROC. Signed-off-by: Jiri Slaby Cc: Thomas Gleixner Cc: Ingo Molnar Cc: "H. Peter Anvin" Cc: Cc: "Rafael J. Wysocki" Cc: Pavel Machek Cc: Cc: Boris Ostrovsky Cc: Juergen Gross Cc: --- arch/x86/entry/entry_64.S | 40 ++++++++++++++++++------------------ arch/x86/entry/entry_64_compat.S | 4 ++-- arch/x86/kernel/mcount_64.S | 10 +++++---- arch/x86/power/hibernate_asm_64.S | 2 ++ arch/x86/realmode/rm/reboot.S | 1 + arch/x86/realmode/rm/trampoline_64.S | 4 ++++ arch/x86/realmode/rm/wakeup_asm.S | 1 + arch/x86/xen/xen-asm_64.S | 2 ++ arch/x86/xen/xen-head.S | 2 +- arch/x86/xen/xen-pvh.S | 2 +- 10 files changed, 40 insertions(+), 28 deletions(-) diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S index 044d18ebc43c..2f06104e2b5e 100644 --- a/arch/x86/entry/entry_64.S +++ b/arch/x86/entry/entry_64.S @@ -324,7 +324,7 @@ syscall_return_via_sysret: opportunistic_sysret_failed: SWAPGS jmp restore_c_regs_and_iret -END(entry_SYSCALL_64) +ENDPROC(entry_SYSCALL_64) ENTRY(stub_ptregs_64) /* @@ -350,13 +350,13 @@ ENTRY(stub_ptregs_64) 1: jmp *%rax /* Called from C */ -END(stub_ptregs_64) +ENDPROC(stub_ptregs_64) .macro ptregs_stub func ENTRY(ptregs_\func) leaq \func(%rip), %rax jmp stub_ptregs_64 -END(ptregs_\func) +ENDPROC(ptregs_\func) .endm /* Instantiate ptregs_stub for each ptregs-using syscall */ @@ -399,7 +399,7 @@ ENTRY(__switch_to_asm) popq %rbp jmp __switch_to -END(__switch_to_asm) +ENDPROC(__switch_to_asm) /* * A newly forked process directly context switches into this address. @@ -435,7 +435,7 @@ ENTRY(ret_from_fork) */ movq $0, RAX(%rsp) jmp 2b -END(ret_from_fork) +ENDPROC(ret_from_fork) /* * Build the entry stubs with some assembler magic. @@ -450,7 +450,7 @@ ENTRY(irq_entries_start) jmp common_interrupt .align 8 .endr -END(irq_entries_start) +ENDPROC(irq_entries_start) /* * Interrupt entry/exit. @@ -652,7 +652,7 @@ native_irq_return_ldt: */ jmp native_irq_return_iret #endif -END(common_interrupt) +ENDPROC(common_interrupt) /* * APIC interrupts. @@ -664,7 +664,7 @@ ENTRY(\sym) .Lcommon_\sym: interrupt \do_sym jmp ret_from_intr -END(\sym) +ENDPROC(\sym) .endm #ifdef CONFIG_TRACING @@ -830,7 +830,7 @@ ENTRY(\sym) jmp error_exit /* %ebx: no swapgs flag */ .endif -END(\sym) +ENDPROC(\sym) .endm #ifdef CONFIG_TRACING @@ -873,7 +873,7 @@ ENTRY(native_load_gs_index) SWAPGS popfq ret -END(native_load_gs_index) +ENDPROC(native_load_gs_index) EXPORT_SYMBOL(native_load_gs_index) _ASM_EXTABLE(.Lgs_change, bad_gs) @@ -903,7 +903,7 @@ ENTRY(do_softirq_own_stack) leaveq decl PER_CPU_VAR(irq_count) ret -END(do_softirq_own_stack) +ENDPROC(do_softirq_own_stack) #ifdef CONFIG_XEN idtentry xen_hypervisor_callback xen_do_hypervisor_callback has_error_code=0 @@ -939,7 +939,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) +ENDPROC(xen_do_hypervisor_callback) /* * Hypervisor uses this for application faults while it executes. @@ -985,7 +985,7 @@ ENTRY(xen_failsafe_callback) SAVE_EXTRA_REGS ENCODE_FRAME_POINTER jmp error_exit -END(xen_failsafe_callback) +ENDPROC(xen_failsafe_callback) apicinterrupt3 HYPERVISOR_CALLBACK_VECTOR \ xen_hvm_callback_vector xen_evtchn_do_upcall @@ -1036,7 +1036,7 @@ ENTRY(paranoid_entry) SWAPGS xorl %ebx, %ebx 1: ret -END(paranoid_entry) +ENDPROC(paranoid_entry) /* * "Paranoid" exit path from exception stack. This is invoked @@ -1065,7 +1065,7 @@ paranoid_exit_restore: RESTORE_C_REGS REMOVE_PT_GPREGS_FROM_STACK 8 INTERRUPT_RETURN -END(paranoid_exit) +ENDPROC(paranoid_exit) /* * Save all registers in pt_regs, and switch gs if needed. @@ -1147,7 +1147,7 @@ ENTRY(error_entry) mov %rax, %rsp decl %ebx jmp .Lerror_entry_from_usermode_after_swapgs -END(error_entry) +ENDPROC(error_entry) /* @@ -1162,7 +1162,7 @@ ENTRY(error_exit) testl %eax, %eax jnz retint_kernel jmp retint_user -END(error_exit) +ENDPROC(error_exit) /* Runs on exception stack */ ENTRY(nmi) @@ -1510,12 +1510,12 @@ nmi_restore: * mode, so this cannot result in a fault. */ INTERRUPT_RETURN -END(nmi) +ENDPROC(nmi) ENTRY(ignore_sysret) mov $-ENOSYS, %eax sysret -END(ignore_sysret) +ENDPROC(ignore_sysret) ENTRY(rewind_stack_do_exit) /* Prevent any naive code from trying to unwind to our caller. */ @@ -1526,4 +1526,4 @@ ENTRY(rewind_stack_do_exit) call do_exit 1: jmp 1b -END(rewind_stack_do_exit) +ENDPROC(rewind_stack_do_exit) diff --git a/arch/x86/entry/entry_64_compat.S b/arch/x86/entry/entry_64_compat.S index e1721dafbcb1..966c09ffd62d 100644 --- a/arch/x86/entry/entry_64_compat.S +++ b/arch/x86/entry/entry_64_compat.S @@ -262,7 +262,7 @@ sysret32_from_system_call: movq RSP-ORIG_RAX(%rsp), %rsp swapgs sysretl -END(entry_SYSCALL_compat) +ENDPROC(entry_SYSCALL_compat) /* * 32-bit legacy system call entry. @@ -340,7 +340,7 @@ ENTRY(entry_INT80_compat) TRACE_IRQS_ON SWAPGS jmp restore_regs_and_iret -END(entry_INT80_compat) +ENDPROC(entry_INT80_compat) ALIGN GLOBAL(stub32_clone) diff --git a/arch/x86/kernel/mcount_64.S b/arch/x86/kernel/mcount_64.S index 3e35675e201e..5255c7888c50 100644 --- a/arch/x86/kernel/mcount_64.S +++ b/arch/x86/kernel/mcount_64.S @@ -145,7 +145,7 @@ ENTRY(fentry_hook) retq -END(fentry_hook) +ENDPROC(fentry_hook) ENTRY(ftrace_caller) /* save_mcount_regs fills in first two parameters */ @@ -177,6 +177,7 @@ GLOBAL(ftrace_epilogue) GLOBAL(ftrace_graph_call) jmp ftrace_stub #endif +ENDPROC(ftrace_caller) /* This is weak to keep gas from relaxing the jumps */ WEAK(ftrace_stub) @@ -252,7 +253,7 @@ GLOBAL(ftrace_regs_caller_end) jmp ftrace_epilogue -END(ftrace_regs_caller) +ENDPROC(ftrace_regs_caller) #else /* ! CONFIG_DYNAMIC_FTRACE */ @@ -288,7 +289,7 @@ trace: restore_mcount_regs jmp fgraph_trace -END(fentry_hook) +ENDPROC(fentry_hook) #endif /* CONFIG_DYNAMIC_FTRACE */ EXPORT_SYMBOL(fentry_hook) #endif /* CONFIG_FUNCTION_TRACER */ @@ -312,7 +313,7 @@ ENTRY(ftrace_graph_caller) restore_mcount_regs retq -END(ftrace_graph_caller) +ENDPROC(ftrace_graph_caller) ENTRY(return_to_handler) subq $24, %rsp @@ -329,4 +330,5 @@ ENTRY(return_to_handler) movq (%rsp), %rax addq $24, %rsp jmp *%rdi +ENDPROC(return_to_handler) #endif diff --git a/arch/x86/power/hibernate_asm_64.S b/arch/x86/power/hibernate_asm_64.S index ce8da3a0412c..ec6b26fd3a7e 100644 --- a/arch/x86/power/hibernate_asm_64.S +++ b/arch/x86/power/hibernate_asm_64.S @@ -68,6 +68,7 @@ ENTRY(restore_image) /* jump to relocated restore code */ movq relocated_restore_code(%rip), %rcx jmpq *%rcx +ENDPROC(restore_image) /* code below has been relocated to a safe page */ ENTRY(core_restore_code) @@ -98,6 +99,7 @@ ENTRY(core_restore_code) .Ldone: /* jump to the restore_registers address from the image header */ jmpq *%r8 +ENDPROC(core_restore_code) /* code below belongs to the image kernel */ .align PAGE_SIZE diff --git a/arch/x86/realmode/rm/reboot.S b/arch/x86/realmode/rm/reboot.S index d66c607bdc58..c8855d50f9c1 100644 --- a/arch/x86/realmode/rm/reboot.S +++ b/arch/x86/realmode/rm/reboot.S @@ -62,6 +62,7 @@ GLOBAL(machine_real_restart_paging_off) movl %ecx, %gs movl %ecx, %ss ljmpw $8, $1f +ENDPROC(machine_real_restart_asm) /* * This is 16-bit protected mode code to disable paging and the cache, diff --git a/arch/x86/realmode/rm/trampoline_64.S b/arch/x86/realmode/rm/trampoline_64.S index dac7b20d2f9d..fe21a26a09fe 100644 --- a/arch/x86/realmode/rm/trampoline_64.S +++ b/arch/x86/realmode/rm/trampoline_64.S @@ -79,6 +79,8 @@ ENTRY(trampoline_start) no_longmode: hlt jmp no_longmode +ENDPROC(trampoline_start) + #include "../kernel/verify_cpu.S" .section ".text32","ax" @@ -116,6 +118,7 @@ ENTRY(startup_32) * the new gdt/idt that has __KERNEL_CS with CS.L = 1. */ ljmpl $__KERNEL_CS, $pa_startup_64 +ENDPROC(startup_32) .section ".text64","ax" .code64 @@ -123,6 +126,7 @@ ENTRY(startup_32) ENTRY(startup_64) # Now jump into the kernel using virtual addresses jmpq *tr_start(%rip) +ENDPROC(startup_64) .section ".rodata","a" # Duplicate the global descriptor table diff --git a/arch/x86/realmode/rm/wakeup_asm.S b/arch/x86/realmode/rm/wakeup_asm.S index 9e7e14797a72..08203a187446 100644 --- a/arch/x86/realmode/rm/wakeup_asm.S +++ b/arch/x86/realmode/rm/wakeup_asm.S @@ -134,6 +134,7 @@ ENTRY(wakeup_start) #else jmp trampoline_start #endif +ENDPROC(wakeup_start) bogus_real_magic: 1: diff --git a/arch/x86/xen/xen-asm_64.S b/arch/x86/xen/xen-asm_64.S index c3df43141e70..d617bea76039 100644 --- a/arch/x86/xen/xen-asm_64.S +++ b/arch/x86/xen/xen-asm_64.S @@ -49,6 +49,7 @@ ENTRY(xen_iret) 1: jmp hypercall_iret ENDPATCH(xen_iret) RELOC(xen_iret, 1b+1) +ENDPROC(xen_iret) ENTRY(xen_sysret64) /* @@ -68,6 +69,7 @@ ENTRY(xen_sysret64) 1: jmp hypercall_iret ENDPATCH(xen_sysret64) RELOC(xen_sysret64, 1b+1) +ENDPROC(xen_sysret64) /* * Xen handles syscall callbacks much like ordinary exceptions, which diff --git a/arch/x86/xen/xen-head.S b/arch/x86/xen/xen-head.S index 39ea5484763a..0e793c1f0d45 100644 --- a/arch/x86/xen/xen-head.S +++ b/arch/x86/xen/xen-head.S @@ -32,7 +32,7 @@ ENTRY(startup_xen) mov $init_thread_union+THREAD_SIZE, %_ASM_SP jmp xen_start_kernel - +ENDPROC(startup_xen) __FINIT .pushsection .text diff --git a/arch/x86/xen/xen-pvh.S b/arch/x86/xen/xen-pvh.S index 5e246716d58f..512fda03c93f 100644 --- a/arch/x86/xen/xen-pvh.S +++ b/arch/x86/xen/xen-pvh.S @@ -133,7 +133,7 @@ ENTRY(pvh_start_xen) ljmp $__BOOT_CS, $_pa(startup_32) #endif -END(pvh_start_xen) +ENDPROC(pvh_start_xen) .section ".init.data","aw" .balign 8 -- 2.11.1 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jiri Slaby Subject: [PATCH 02/10] x86: assembly, use ENDPROC for functions Date: Fri, 17 Feb 2017 11:47:49 +0100 Message-ID: <20170217104757.28588-2-jslaby@suse.cz> References: <20170217104757.28588-1-jslaby@suse.cz> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170217104757.28588-1-jslaby@suse.cz> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: mingo@redhat.com Cc: Juergen Gross , hpa@zytor.com, linux-pm@vger.kernel.org, x86@kernel.org, "Rafael J. Wysocki" , linux-kernel@vger.kernel.org, Pavel Machek , jpoimboe@redhat.com, xen-devel@lists.xenproject.org, tglx@linutronix.de, Jiri Slaby , Boris Ostrovsky List-Id: linux-pm@vger.kernel.org U29tZXdoZXJlIEVORCB3YXMgdXNlZCB0byBlbmQgYSBmdW5jdGlvbiwgZWxzZXdoZXJlLCBub3Ro aW5nIHdhcyB1c2VkLgpTbyB1bmlmeSBpdCBhbmQgbWFyayB0aGVtIGFsbCBieSBFTkRQUk9DLgoK U2lnbmVkLW9mZi1ieTogSmlyaSBTbGFieSA8anNsYWJ5QHN1c2UuY3o+CkNjOiBUaG9tYXMgR2xl aXhuZXIgPHRnbHhAbGludXRyb25peC5kZT4KQ2M6IEluZ28gTW9sbmFyIDxtaW5nb0ByZWRoYXQu Y29tPgpDYzogIkguIFBldGVyIEFudmluIiA8aHBhQHp5dG9yLmNvbT4KQ2M6IDx4ODZAa2VybmVs Lm9yZz4KQ2M6ICJSYWZhZWwgSi4gV3lzb2NraSIgPHJqd0Byand5c29ja2kubmV0PgpDYzogUGF2 ZWwgTWFjaGVrIDxwYXZlbEB1Y3cuY3o+CkNjOiA8bGludXgtcG1Admdlci5rZXJuZWwub3JnPgpD YzogQm9yaXMgT3N0cm92c2t5IDxib3Jpcy5vc3Ryb3Zza3lAb3JhY2xlLmNvbT4KQ2M6IEp1ZXJn ZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4KQ2M6IDx4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVj dC5vcmc+Ci0tLQogYXJjaC94ODYvZW50cnkvZW50cnlfNjQuUyAgICAgICAgICAgIHwgNDAgKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tCiBhcmNoL3g4Ni9lbnRyeS9lbnRyeV82 NF9jb21wYXQuUyAgICAgfCAgNCArKy0tCiBhcmNoL3g4Ni9rZXJuZWwvbWNvdW50XzY0LlMgICAg ICAgICAgfCAxMCArKysrKy0tLS0KIGFyY2gveDg2L3Bvd2VyL2hpYmVybmF0ZV9hc21fNjQuUyAg ICB8ICAyICsrCiBhcmNoL3g4Ni9yZWFsbW9kZS9ybS9yZWJvb3QuUyAgICAgICAgfCAgMSArCiBh cmNoL3g4Ni9yZWFsbW9kZS9ybS90cmFtcG9saW5lXzY0LlMgfCAgNCArKysrCiBhcmNoL3g4Ni9y ZWFsbW9kZS9ybS93YWtldXBfYXNtLlMgICAgfCAgMSArCiBhcmNoL3g4Ni94ZW4veGVuLWFzbV82 NC5TICAgICAgICAgICAgfCAgMiArKwogYXJjaC94ODYveGVuL3hlbi1oZWFkLlMgICAgICAgICAg ICAgIHwgIDIgKy0KIGFyY2gveDg2L3hlbi94ZW4tcHZoLlMgICAgICAgICAgICAgICB8ICAyICst CiAxMCBmaWxlcyBjaGFuZ2VkLCA0MCBpbnNlcnRpb25zKCspLCAyOCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9hcmNoL3g4Ni9lbnRyeS9lbnRyeV82NC5TIGIvYXJjaC94ODYvZW50cnkvZW50 cnlfNjQuUwppbmRleCAwNDRkMThlYmM0M2MuLjJmMDYxMDRlMmI1ZSAxMDA2NDQKLS0tIGEvYXJj aC94ODYvZW50cnkvZW50cnlfNjQuUworKysgYi9hcmNoL3g4Ni9lbnRyeS9lbnRyeV82NC5TCkBA IC0zMjQsNyArMzI0LDcgQEAgc3lzY2FsbF9yZXR1cm5fdmlhX3N5c3JldDoKIG9wcG9ydHVuaXN0 aWNfc3lzcmV0X2ZhaWxlZDoKIAlTV0FQR1MKIAlqbXAJcmVzdG9yZV9jX3JlZ3NfYW5kX2lyZXQK LUVORChlbnRyeV9TWVNDQUxMXzY0KQorRU5EUFJPQyhlbnRyeV9TWVNDQUxMXzY0KQogCiBFTlRS WShzdHViX3B0cmVnc182NCkKIAkvKgpAQCAtMzUwLDEzICszNTAsMTMgQEAgRU5UUlkoc3R1Yl9w dHJlZ3NfNjQpCiAKIDE6CiAJam1wCSolcmF4CQkJCS8qIENhbGxlZCBmcm9tIEMgKi8KLUVORChz dHViX3B0cmVnc182NCkKK0VORFBST0Moc3R1Yl9wdHJlZ3NfNjQpCiAKIC5tYWNybyBwdHJlZ3Nf c3R1YiBmdW5jCiBFTlRSWShwdHJlZ3NfXGZ1bmMpCiAJbGVhcQlcZnVuYyglcmlwKSwgJXJheAog CWptcAlzdHViX3B0cmVnc182NAotRU5EKHB0cmVnc19cZnVuYykKK0VORFBST0MocHRyZWdzX1xm dW5jKQogLmVuZG0KIAogLyogSW5zdGFudGlhdGUgcHRyZWdzX3N0dWIgZm9yIGVhY2ggcHRyZWdz LXVzaW5nIHN5c2NhbGwgKi8KQEAgLTM5OSw3ICszOTksNyBAQCBFTlRSWShfX3N3aXRjaF90b19h c20pCiAJcG9wcQklcmJwCiAKIAlqbXAJX19zd2l0Y2hfdG8KLUVORChfX3N3aXRjaF90b19hc20p CitFTkRQUk9DKF9fc3dpdGNoX3RvX2FzbSkKIAogLyoKICAqIEEgbmV3bHkgZm9ya2VkIHByb2Nl c3MgZGlyZWN0bHkgY29udGV4dCBzd2l0Y2hlcyBpbnRvIHRoaXMgYWRkcmVzcy4KQEAgLTQzNSw3 ICs0MzUsNyBAQCBFTlRSWShyZXRfZnJvbV9mb3JrKQogCSAqLwogCW1vdnEJJDAsIFJBWCglcnNw KQogCWptcAkyYgotRU5EKHJldF9mcm9tX2ZvcmspCitFTkRQUk9DKHJldF9mcm9tX2ZvcmspCiAK IC8qCiAgKiBCdWlsZCB0aGUgZW50cnkgc3R1YnMgd2l0aCBzb21lIGFzc2VtYmxlciBtYWdpYy4K QEAgLTQ1MCw3ICs0NTAsNyBAQCBFTlRSWShpcnFfZW50cmllc19zdGFydCkKIAlqbXAJY29tbW9u X2ludGVycnVwdAogCS5hbGlnbgk4CiAgICAgLmVuZHIKLUVORChpcnFfZW50cmllc19zdGFydCkK K0VORFBST0MoaXJxX2VudHJpZXNfc3RhcnQpCiAKIC8qCiAgKiBJbnRlcnJ1cHQgZW50cnkvZXhp dC4KQEAgLTY1Miw3ICs2NTIsNyBAQCBuYXRpdmVfaXJxX3JldHVybl9sZHQ6CiAJICovCiAJam1w CW5hdGl2ZV9pcnFfcmV0dXJuX2lyZXQKICNlbmRpZgotRU5EKGNvbW1vbl9pbnRlcnJ1cHQpCitF TkRQUk9DKGNvbW1vbl9pbnRlcnJ1cHQpCiAKIC8qCiAgKiBBUElDIGludGVycnVwdHMuCkBAIC02 NjQsNyArNjY0LDcgQEAgRU5UUlkoXHN5bSkKIC5MY29tbW9uX1xzeW06CiAJaW50ZXJydXB0IFxk b19zeW0KIAlqbXAJcmV0X2Zyb21faW50cgotRU5EKFxzeW0pCitFTkRQUk9DKFxzeW0pCiAuZW5k bQogCiAjaWZkZWYgQ09ORklHX1RSQUNJTkcKQEAgLTgzMCw3ICs4MzAsNyBAQCBFTlRSWShcc3lt KQogCiAJam1wCWVycm9yX2V4aXQJCQkvKiAlZWJ4OiBubyBzd2FwZ3MgZmxhZyAqLwogCS5lbmRp ZgotRU5EKFxzeW0pCitFTkRQUk9DKFxzeW0pCiAuZW5kbQogCiAjaWZkZWYgQ09ORklHX1RSQUNJ TkcKQEAgLTg3Myw3ICs4NzMsNyBAQCBFTlRSWShuYXRpdmVfbG9hZF9nc19pbmRleCkKIAlTV0FQ R1MKIAlwb3BmcQogCXJldAotRU5EKG5hdGl2ZV9sb2FkX2dzX2luZGV4KQorRU5EUFJPQyhuYXRp dmVfbG9hZF9nc19pbmRleCkKIEVYUE9SVF9TWU1CT0wobmF0aXZlX2xvYWRfZ3NfaW5kZXgpCiAK IAlfQVNNX0VYVEFCTEUoLkxnc19jaGFuZ2UsIGJhZF9ncykKQEAgLTkwMyw3ICs5MDMsNyBAQCBF TlRSWShkb19zb2Z0aXJxX293bl9zdGFjaykKIAlsZWF2ZXEKIAlkZWNsCVBFUl9DUFVfVkFSKGly cV9jb3VudCkKIAlyZXQKLUVORChkb19zb2Z0aXJxX293bl9zdGFjaykKK0VORFBST0MoZG9fc29m dGlycV9vd25fc3RhY2spCiAKICNpZmRlZiBDT05GSUdfWEVOCiBpZHRlbnRyeSB4ZW5faHlwZXJ2 aXNvcl9jYWxsYmFjayB4ZW5fZG9faHlwZXJ2aXNvcl9jYWxsYmFjayBoYXNfZXJyb3JfY29kZT0w CkBAIC05MzksNyArOTM5LDcgQEAgRU5UUlkoeGVuX2RvX2h5cGVydmlzb3JfY2FsbGJhY2spCQkv KiBkb19oeXBlcnZpc29yX2NhbGxiYWNrKHN0cnVjdCAqcHRfcmVncykgKi8KIAljYWxsCXhlbl9t YXliZV9wcmVlbXB0X2hjYWxsCiAjZW5kaWYKIAlqbXAJZXJyb3JfZXhpdAotRU5EKHhlbl9kb19o eXBlcnZpc29yX2NhbGxiYWNrKQorRU5EUFJPQyh4ZW5fZG9faHlwZXJ2aXNvcl9jYWxsYmFjaykK IAogLyoKICAqIEh5cGVydmlzb3IgdXNlcyB0aGlzIGZvciBhcHBsaWNhdGlvbiBmYXVsdHMgd2hp bGUgaXQgZXhlY3V0ZXMuCkBAIC05ODUsNyArOTg1LDcgQEAgRU5UUlkoeGVuX2ZhaWxzYWZlX2Nh bGxiYWNrKQogCVNBVkVfRVhUUkFfUkVHUwogCUVOQ09ERV9GUkFNRV9QT0lOVEVSCiAJam1wCWVy cm9yX2V4aXQKLUVORCh4ZW5fZmFpbHNhZmVfY2FsbGJhY2spCitFTkRQUk9DKHhlbl9mYWlsc2Fm ZV9jYWxsYmFjaykKIAogYXBpY2ludGVycnVwdDMgSFlQRVJWSVNPUl9DQUxMQkFDS19WRUNUT1Ig XAogCXhlbl9odm1fY2FsbGJhY2tfdmVjdG9yIHhlbl9ldnRjaG5fZG9fdXBjYWxsCkBAIC0xMDM2 LDcgKzEwMzYsNyBAQCBFTlRSWShwYXJhbm9pZF9lbnRyeSkKIAlTV0FQR1MKIAl4b3JsCSVlYngs ICVlYngKIDE6CXJldAotRU5EKHBhcmFub2lkX2VudHJ5KQorRU5EUFJPQyhwYXJhbm9pZF9lbnRy eSkKIAogLyoKICAqICJQYXJhbm9pZCIgZXhpdCBwYXRoIGZyb20gZXhjZXB0aW9uIHN0YWNrLiAg VGhpcyBpcyBpbnZva2VkCkBAIC0xMDY1LDcgKzEwNjUsNyBAQCBwYXJhbm9pZF9leGl0X3Jlc3Rv cmU6CiAJUkVTVE9SRV9DX1JFR1MKIAlSRU1PVkVfUFRfR1BSRUdTX0ZST01fU1RBQ0sgOAogCUlO VEVSUlVQVF9SRVRVUk4KLUVORChwYXJhbm9pZF9leGl0KQorRU5EUFJPQyhwYXJhbm9pZF9leGl0 KQogCiAvKgogICogU2F2ZSBhbGwgcmVnaXN0ZXJzIGluIHB0X3JlZ3MsIGFuZCBzd2l0Y2ggZ3Mg aWYgbmVlZGVkLgpAQCAtMTE0Nyw3ICsxMTQ3LDcgQEAgRU5UUlkoZXJyb3JfZW50cnkpCiAJbW92 CSVyYXgsICVyc3AKIAlkZWNsCSVlYngKIAlqbXAJLkxlcnJvcl9lbnRyeV9mcm9tX3VzZXJtb2Rl X2FmdGVyX3N3YXBncwotRU5EKGVycm9yX2VudHJ5KQorRU5EUFJPQyhlcnJvcl9lbnRyeSkKIAog CiAvKgpAQCAtMTE2Miw3ICsxMTYyLDcgQEAgRU5UUlkoZXJyb3JfZXhpdCkKIAl0ZXN0bAklZWF4 LCAlZWF4CiAJam56CXJldGludF9rZXJuZWwKIAlqbXAJcmV0aW50X3VzZXIKLUVORChlcnJvcl9l eGl0KQorRU5EUFJPQyhlcnJvcl9leGl0KQogCiAvKiBSdW5zIG9uIGV4Y2VwdGlvbiBzdGFjayAq LwogRU5UUlkobm1pKQpAQCAtMTUxMCwxMiArMTUxMCwxMiBAQCBubWlfcmVzdG9yZToKIAkgKiBt b2RlLCBzbyB0aGlzIGNhbm5vdCByZXN1bHQgaW4gYSBmYXVsdC4KIAkgKi8KIAlJTlRFUlJVUFRf UkVUVVJOCi1FTkQobm1pKQorRU5EUFJPQyhubWkpCiAKIEVOVFJZKGlnbm9yZV9zeXNyZXQpCiAJ bW92CSQtRU5PU1lTLCAlZWF4CiAJc3lzcmV0Ci1FTkQoaWdub3JlX3N5c3JldCkKK0VORFBST0Mo aWdub3JlX3N5c3JldCkKIAogRU5UUlkocmV3aW5kX3N0YWNrX2RvX2V4aXQpCiAJLyogUHJldmVu dCBhbnkgbmFpdmUgY29kZSBmcm9tIHRyeWluZyB0byB1bndpbmQgdG8gb3VyIGNhbGxlci4gKi8K QEAgLTE1MjYsNCArMTUyNiw0IEBAIEVOVFJZKHJld2luZF9zdGFja19kb19leGl0KQogCiAJY2Fs bAlkb19leGl0CiAxOglqbXAgMWIKLUVORChyZXdpbmRfc3RhY2tfZG9fZXhpdCkKK0VORFBST0Mo cmV3aW5kX3N0YWNrX2RvX2V4aXQpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9lbnRyeS9lbnRyeV82 NF9jb21wYXQuUyBiL2FyY2gveDg2L2VudHJ5L2VudHJ5XzY0X2NvbXBhdC5TCmluZGV4IGUxNzIx ZGFmYmNiMS4uOTY2YzA5ZmZkNjJkIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9lbnRyeS9lbnRyeV82 NF9jb21wYXQuUworKysgYi9hcmNoL3g4Ni9lbnRyeS9lbnRyeV82NF9jb21wYXQuUwpAQCAtMjYy LDcgKzI2Miw3IEBAIHN5c3JldDMyX2Zyb21fc3lzdGVtX2NhbGw6CiAJbW92cQlSU1AtT1JJR19S QVgoJXJzcCksICVyc3AKIAlzd2FwZ3MKIAlzeXNyZXRsCi1FTkQoZW50cnlfU1lTQ0FMTF9jb21w YXQpCitFTkRQUk9DKGVudHJ5X1NZU0NBTExfY29tcGF0KQogCiAvKgogICogMzItYml0IGxlZ2Fj eSBzeXN0ZW0gY2FsbCBlbnRyeS4KQEAgLTM0MCw3ICszNDAsNyBAQCBFTlRSWShlbnRyeV9JTlQ4 MF9jb21wYXQpCiAJVFJBQ0VfSVJRU19PTgogCVNXQVBHUwogCWptcAlyZXN0b3JlX3JlZ3NfYW5k X2lyZXQKLUVORChlbnRyeV9JTlQ4MF9jb21wYXQpCitFTkRQUk9DKGVudHJ5X0lOVDgwX2NvbXBh dCkKIAogCUFMSUdOCiBHTE9CQUwoc3R1YjMyX2Nsb25lKQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYv a2VybmVsL21jb3VudF82NC5TIGIvYXJjaC94ODYva2VybmVsL21jb3VudF82NC5TCmluZGV4IDNl MzU2NzVlMjAxZS4uNTI1NWM3ODg4YzUwIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvbWNv dW50XzY0LlMKKysrIGIvYXJjaC94ODYva2VybmVsL21jb3VudF82NC5TCkBAIC0xNDUsNyArMTQ1 LDcgQEAKIAogRU5UUlkoZmVudHJ5X2hvb2spCiAJcmV0cQotRU5EKGZlbnRyeV9ob29rKQorRU5E UFJPQyhmZW50cnlfaG9vaykKIAogRU5UUlkoZnRyYWNlX2NhbGxlcikKIAkvKiBzYXZlX21jb3Vu dF9yZWdzIGZpbGxzIGluIGZpcnN0IHR3byBwYXJhbWV0ZXJzICovCkBAIC0xNzcsNiArMTc3LDcg QEAgR0xPQkFMKGZ0cmFjZV9lcGlsb2d1ZSkKIEdMT0JBTChmdHJhY2VfZ3JhcGhfY2FsbCkKIAlq bXAgZnRyYWNlX3N0dWIKICNlbmRpZgorRU5EUFJPQyhmdHJhY2VfY2FsbGVyKQogCiAvKiBUaGlz IGlzIHdlYWsgdG8ga2VlcCBnYXMgZnJvbSByZWxheGluZyB0aGUganVtcHMgKi8KIFdFQUsoZnRy YWNlX3N0dWIpCkBAIC0yNTIsNyArMjUzLDcgQEAgR0xPQkFMKGZ0cmFjZV9yZWdzX2NhbGxlcl9l bmQpCiAKIAlqbXAgZnRyYWNlX2VwaWxvZ3VlCiAKLUVORChmdHJhY2VfcmVnc19jYWxsZXIpCitF TkRQUk9DKGZ0cmFjZV9yZWdzX2NhbGxlcikKIAogCiAjZWxzZSAvKiAhIENPTkZJR19EWU5BTUlD X0ZUUkFDRSAqLwpAQCAtMjg4LDcgKzI4OSw3IEBAIHRyYWNlOgogCXJlc3RvcmVfbWNvdW50X3Jl Z3MKIAogCWptcCBmZ3JhcGhfdHJhY2UKLUVORChmZW50cnlfaG9vaykKK0VORFBST0MoZmVudHJ5 X2hvb2spCiAjZW5kaWYgLyogQ09ORklHX0RZTkFNSUNfRlRSQUNFICovCiBFWFBPUlRfU1lNQk9M KGZlbnRyeV9ob29rKQogI2VuZGlmIC8qIENPTkZJR19GVU5DVElPTl9UUkFDRVIgKi8KQEAgLTMx Miw3ICszMTMsNyBAQCBFTlRSWShmdHJhY2VfZ3JhcGhfY2FsbGVyKQogCXJlc3RvcmVfbWNvdW50 X3JlZ3MKIAogCXJldHEKLUVORChmdHJhY2VfZ3JhcGhfY2FsbGVyKQorRU5EUFJPQyhmdHJhY2Vf Z3JhcGhfY2FsbGVyKQogCiBFTlRSWShyZXR1cm5fdG9faGFuZGxlcikKIAlzdWJxICAkMjQsICVy c3AKQEAgLTMyOSw0ICszMzAsNSBAQCBFTlRSWShyZXR1cm5fdG9faGFuZGxlcikKIAltb3ZxICgl cnNwKSwgJXJheAogCWFkZHEgJDI0LCAlcnNwCiAJam1wIColcmRpCitFTkRQUk9DKHJldHVybl90 b19oYW5kbGVyKQogI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9wb3dlci9oaWJlcm5hdGVf YXNtXzY0LlMgYi9hcmNoL3g4Ni9wb3dlci9oaWJlcm5hdGVfYXNtXzY0LlMKaW5kZXggY2U4ZGEz YTA0MTJjLi5lYzZiMjZmZDNhN2UgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3Bvd2VyL2hpYmVybmF0 ZV9hc21fNjQuUworKysgYi9hcmNoL3g4Ni9wb3dlci9oaWJlcm5hdGVfYXNtXzY0LlMKQEAgLTY4 LDYgKzY4LDcgQEAgRU5UUlkocmVzdG9yZV9pbWFnZSkKIAkvKiBqdW1wIHRvIHJlbG9jYXRlZCBy ZXN0b3JlIGNvZGUgKi8KIAltb3ZxCXJlbG9jYXRlZF9yZXN0b3JlX2NvZGUoJXJpcCksICVyY3gK IAlqbXBxCSolcmN4CitFTkRQUk9DKHJlc3RvcmVfaW1hZ2UpCiAKIAkvKiBjb2RlIGJlbG93IGhh cyBiZWVuIHJlbG9jYXRlZCB0byBhIHNhZmUgcGFnZSAqLwogRU5UUlkoY29yZV9yZXN0b3JlX2Nv ZGUpCkBAIC05OCw2ICs5OSw3IEBAIEVOVFJZKGNvcmVfcmVzdG9yZV9jb2RlKQogLkxkb25lOgog CS8qIGp1bXAgdG8gdGhlIHJlc3RvcmVfcmVnaXN0ZXJzIGFkZHJlc3MgZnJvbSB0aGUgaW1hZ2Ug aGVhZGVyICovCiAJam1wcQkqJXI4CitFTkRQUk9DKGNvcmVfcmVzdG9yZV9jb2RlKQogCiAJIC8q IGNvZGUgYmVsb3cgYmVsb25ncyB0byB0aGUgaW1hZ2Uga2VybmVsICovCiAJLmFsaWduIFBBR0Vf U0laRQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvcmVhbG1vZGUvcm0vcmVib290LlMgYi9hcmNoL3g4 Ni9yZWFsbW9kZS9ybS9yZWJvb3QuUwppbmRleCBkNjZjNjA3YmRjNTguLmM4ODU1ZDUwZjljMSAx MDA2NDQKLS0tIGEvYXJjaC94ODYvcmVhbG1vZGUvcm0vcmVib290LlMKKysrIGIvYXJjaC94ODYv cmVhbG1vZGUvcm0vcmVib290LlMKQEAgLTYyLDYgKzYyLDcgQEAgR0xPQkFMKG1hY2hpbmVfcmVh bF9yZXN0YXJ0X3BhZ2luZ19vZmYpCiAJbW92bAklZWN4LCAlZ3MKIAltb3ZsCSVlY3gsICVzcwog CWxqbXB3CSQ4LCAkMWYKK0VORFBST0MobWFjaGluZV9yZWFsX3Jlc3RhcnRfYXNtKQogCiAvKgog ICogVGhpcyBpcyAxNi1iaXQgcHJvdGVjdGVkIG1vZGUgY29kZSB0byBkaXNhYmxlIHBhZ2luZyBh bmQgdGhlIGNhY2hlLApkaWZmIC0tZ2l0IGEvYXJjaC94ODYvcmVhbG1vZGUvcm0vdHJhbXBvbGlu ZV82NC5TIGIvYXJjaC94ODYvcmVhbG1vZGUvcm0vdHJhbXBvbGluZV82NC5TCmluZGV4IGRhYzdi MjBkMmY5ZC4uZmUyMWEyNmEwOWZlIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9yZWFsbW9kZS9ybS90 cmFtcG9saW5lXzY0LlMKKysrIGIvYXJjaC94ODYvcmVhbG1vZGUvcm0vdHJhbXBvbGluZV82NC5T CkBAIC03OSw2ICs3OSw4IEBAIEVOVFJZKHRyYW1wb2xpbmVfc3RhcnQpCiBub19sb25nbW9kZToK IAlobHQKIAlqbXAgbm9fbG9uZ21vZGUKK0VORFBST0ModHJhbXBvbGluZV9zdGFydCkKKwogI2lu Y2x1ZGUgIi4uL2tlcm5lbC92ZXJpZnlfY3B1LlMiCiAKIAkuc2VjdGlvbiAiLnRleHQzMiIsImF4 IgpAQCAtMTE2LDYgKzExOCw3IEBAIEVOVFJZKHN0YXJ0dXBfMzIpCiAJICogdGhlIG5ldyBnZHQv aWR0IHRoYXQgaGFzIF9fS0VSTkVMX0NTIHdpdGggQ1MuTCA9IDEuCiAJICovCiAJbGptcGwJJF9f S0VSTkVMX0NTLCAkcGFfc3RhcnR1cF82NAorRU5EUFJPQyhzdGFydHVwXzMyKQogCiAJLnNlY3Rp b24gIi50ZXh0NjQiLCJheCIKIAkuY29kZTY0CkBAIC0xMjMsNiArMTI2LDcgQEAgRU5UUlkoc3Rh cnR1cF8zMikKIEVOVFJZKHN0YXJ0dXBfNjQpCiAJIyBOb3cganVtcCBpbnRvIHRoZSBrZXJuZWwg dXNpbmcgdmlydHVhbCBhZGRyZXNzZXMKIAlqbXBxCSp0cl9zdGFydCglcmlwKQorRU5EUFJPQyhz dGFydHVwXzY0KQogCiAJLnNlY3Rpb24gIi5yb2RhdGEiLCJhIgogCSMgRHVwbGljYXRlIHRoZSBn bG9iYWwgZGVzY3JpcHRvciB0YWJsZQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvcmVhbG1vZGUvcm0v d2FrZXVwX2FzbS5TIGIvYXJjaC94ODYvcmVhbG1vZGUvcm0vd2FrZXVwX2FzbS5TCmluZGV4IDll N2UxNDc5N2E3Mi4uMDgyMDNhMTg3NDQ2IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9yZWFsbW9kZS9y bS93YWtldXBfYXNtLlMKKysrIGIvYXJjaC94ODYvcmVhbG1vZGUvcm0vd2FrZXVwX2FzbS5TCkBA IC0xMzQsNiArMTM0LDcgQEAgRU5UUlkod2FrZXVwX3N0YXJ0KQogI2Vsc2UKIAlqbXAJdHJhbXBv bGluZV9zdGFydAogI2VuZGlmCitFTkRQUk9DKHdha2V1cF9zdGFydCkKIAogYm9ndXNfcmVhbF9t YWdpYzoKIDE6CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni94ZW4veGVuLWFzbV82NC5TIGIvYXJjaC94 ODYveGVuL3hlbi1hc21fNjQuUwppbmRleCBjM2RmNDMxNDFlNzAuLmQ2MTdiZWE3NjAzOSAxMDA2 NDQKLS0tIGEvYXJjaC94ODYveGVuL3hlbi1hc21fNjQuUworKysgYi9hcmNoL3g4Ni94ZW4veGVu LWFzbV82NC5TCkBAIC00OSw2ICs0OSw3IEBAIEVOVFJZKHhlbl9pcmV0KQogMToJam1wIGh5cGVy Y2FsbF9pcmV0CiBFTkRQQVRDSCh4ZW5faXJldCkKIFJFTE9DKHhlbl9pcmV0LCAxYisxKQorRU5E UFJPQyh4ZW5faXJldCkKIAogRU5UUlkoeGVuX3N5c3JldDY0KQogCS8qCkBAIC02OCw2ICs2OSw3 IEBAIEVOVFJZKHhlbl9zeXNyZXQ2NCkKIDE6CWptcCBoeXBlcmNhbGxfaXJldAogRU5EUEFUQ0go eGVuX3N5c3JldDY0KQogUkVMT0MoeGVuX3N5c3JldDY0LCAxYisxKQorRU5EUFJPQyh4ZW5fc3lz cmV0NjQpCiAKIC8qCiAgKiBYZW4gaGFuZGxlcyBzeXNjYWxsIGNhbGxiYWNrcyBtdWNoIGxpa2Ug b3JkaW5hcnkgZXhjZXB0aW9ucywgd2hpY2gKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3hlbi94ZW4t aGVhZC5TIGIvYXJjaC94ODYveGVuL3hlbi1oZWFkLlMKaW5kZXggMzllYTU0ODQ3NjNhLi4wZTc5 M2MxZjBkNDUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3hlbi94ZW4taGVhZC5TCisrKyBiL2FyY2gv eDg2L3hlbi94ZW4taGVhZC5TCkBAIC0zMiw3ICszMiw3IEBAIEVOVFJZKHN0YXJ0dXBfeGVuKQog CW1vdiAkaW5pdF90aHJlYWRfdW5pb24rVEhSRUFEX1NJWkUsICVfQVNNX1NQCiAKIAlqbXAgeGVu X3N0YXJ0X2tlcm5lbAotCitFTkRQUk9DKHN0YXJ0dXBfeGVuKQogCV9fRklOSVQKIAogLnB1c2hz ZWN0aW9uIC50ZXh0CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni94ZW4veGVuLXB2aC5TIGIvYXJjaC94 ODYveGVuL3hlbi1wdmguUwppbmRleCA1ZTI0NjcxNmQ1OGYuLjUxMmZkYTAzYzkzZiAxMDA2NDQK LS0tIGEvYXJjaC94ODYveGVuL3hlbi1wdmguUworKysgYi9hcmNoL3g4Ni94ZW4veGVuLXB2aC5T CkBAIC0xMzMsNyArMTMzLDcgQEAgRU5UUlkocHZoX3N0YXJ0X3hlbikKIAogCWxqbXAgJF9fQk9P VF9DUywgJF9wYShzdGFydHVwXzMyKQogI2VuZGlmCi1FTkQocHZoX3N0YXJ0X3hlbikKK0VORFBS T0MocHZoX3N0YXJ0X3hlbikKIAogCS5zZWN0aW9uICIuaW5pdC5kYXRhIiwiYXciCiAJLmJhbGln biA4Ci0tIAoyLjExLjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0 dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK