linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Borislav Petkov <bp@alien8.de>
To: Jiri Slaby <jslaby@suse.cz>
Cc: mingo@redhat.com, linux-arch@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	Thomas Gleixner <tglx@linutronix.de>,
	"H. Peter Anvin" <hpa@zytor.com>,
	x86@kernel.org
Subject: Re: [PATCH v7 06/28] x86/asm: annotate local pseudo-functions
Date: Sat, 9 Feb 2019 13:24:05 +0100	[thread overview]
Message-ID: <20190209122405.GB5089@zn.tnic> (raw)
In-Reply-To: <20190130124711.12463-7-jslaby@suse.cz>

On Wed, Jan 30, 2019 at 01:46:49PM +0100, Jiri Slaby wrote:
> Use the newly added SYM_CODE_START_LOCAL* to annotate starts of all
> pseudo-functions (those ending END until now) which do not have ".globl"
> annotation. This is needed to balance END for tools that generate
> debuginfo. Note that we switch from END to SYM_CODE_END too so that
> everybody can see the pairing.
> 
> We are not annotating C-like functions (which handle frame ptr etc.)
> here, hence we use SYM_CODE_* macros here, not SYM_FUNC_*.  Note that
> early_idt_handler_common already had ENDPROC -- switch that to
> SYM_CODE_END for the same reason as above.
> 
> bogus_64_magic, bad_address, bad_get_user*, and bad_put_user are now
> aligned, as they are separate functions. They do not mind to be aligned
> -- no need to be compact there.
> 
> early_idt_handler_common is aligned now too, as it is after
> early_idt_handler_array, so as well no need to be compact there.
> 
> verify_cpu is self-standing and included in other .S files, so align it
> too.
> 
> The others have alignment preserved to what it used to be (using the
> _NOALIGN variant of macros).
> 
> [v3] annotate more functions
> [v4] describe the alignments changes
> 
> Signed-off-by: Jiri Slaby <jslaby@suse.cz>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Ingo Molnar <mingo@redhat.com>
> Cc: "H. Peter Anvin" <hpa@zytor.com>
> Cc: <x86@kernel.org>
> ---
>  arch/x86/entry/entry_32.S        | 5 ++---
>  arch/x86/entry/entry_64.S        | 3 ++-
>  arch/x86/kernel/acpi/wakeup_64.S | 3 ++-
>  arch/x86/kernel/head_32.S        | 4 ++--
>  arch/x86/kernel/head_64.S        | 4 ++--
>  arch/x86/kernel/verify_cpu.S     | 4 ++--
>  arch/x86/lib/getuser.S           | 8 ++++----
>  arch/x86/lib/putuser.S           | 4 ++--
>  8 files changed, 18 insertions(+), 17 deletions(-)
> 
> diff --git a/arch/x86/entry/entry_32.S b/arch/x86/entry/entry_32.S
> index d309f30cf7af..306ae3e9a24c 100644
> --- a/arch/x86/entry/entry_32.S
> +++ b/arch/x86/entry/entry_32.S
> @@ -737,8 +737,7 @@ END(ret_from_fork)
>   */
>  
>  	# userspace resumption stub bypassing syscall exit tracing
> -	ALIGN
> -ret_from_exception:
> +SYM_CODE_START_LOCAL(ret_from_exception)

This wants to be a local label instead, no?

.Lret_from_exception:

...

>  	preempt_stop(CLBR_ANY)
>  ret_from_intr:
>  #ifdef CONFIG_VM86
> @@ -761,7 +760,7 @@ ENTRY(resume_userspace)
>  	movl	%esp, %eax
>  	call	prepare_exit_to_usermode
>  	jmp	restore_all
> -END(ret_from_exception)
> +SYM_CODE_END(ret_from_exception)
>  
>  #ifdef CONFIG_PREEMPT
>  ENTRY(resume_kernel)
> diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S
> index 1f0efdb7b629..463f9edd78a4 100644
> --- a/arch/x86/entry/entry_64.S
> +++ b/arch/x86/entry/entry_64.S
> @@ -1006,7 +1006,7 @@ EXPORT_SYMBOL(native_load_gs_index)
>  	_ASM_EXTABLE(.Lgs_change, bad_gs)
>  	.section .fixup, "ax"
>  	/* running with kernelgs */
> -bad_gs:
> +SYM_CODE_START_LOCAL_NOALIGN(bad_gs)

Ditto.

>  	SWAPGS					/* switch back to user gs */
>  .macro ZAP_GS
>  	/* This can't be a string because the preprocessor needs to see it. */
> @@ -1017,6 +1017,7 @@ bad_gs:
>  	xorl	%eax, %eax
>  	movl	%eax, %gs
>  	jmp	2b
> +SYM_CODE_END(bad_gs)
>  	.previous
>  
>  /* Call softirq on interrupt stack. Interrupts are off. */
> diff --git a/arch/x86/kernel/acpi/wakeup_64.S b/arch/x86/kernel/acpi/wakeup_64.S
> index 551758f48eb7..6c60fe346583 100644
> --- a/arch/x86/kernel/acpi/wakeup_64.S
> +++ b/arch/x86/kernel/acpi/wakeup_64.S
> @@ -36,8 +36,9 @@ ENTRY(wakeup_long64)
>  	jmp	*%rax
>  ENDPROC(wakeup_long64)
>  
> -bogus_64_magic:
> +SYM_CODE_START_LOCAL(bogus_64_magic)

Ditto.

>  	jmp	bogus_64_magic
> +SYM_CODE_END(bogus_64_magic)
>  
>  ENTRY(do_suspend_lowlevel)
>  	FRAME_BEGIN
> diff --git a/arch/x86/kernel/head_32.S b/arch/x86/kernel/head_32.S
> index d1e213da4782..0bae769b7b59 100644
> --- a/arch/x86/kernel/head_32.S
> +++ b/arch/x86/kernel/head_32.S
> @@ -409,7 +409,7 @@ ENTRY(early_idt_handler_array)
>  	.endr
>  ENDPROC(early_idt_handler_array)
>  	
> -early_idt_handler_common:
> +SYM_CODE_START_LOCAL(early_idt_handler_common)

This one too - all those are used only in this compilation unit so not
having them as symbols at all is fine AFAICT.

Same for the rest of the local symbols in this patch, except verify_cpu.

-- 
Regards/Gruss,
    Boris.

Good mailing practices for 400: avoid top-posting and trim the reply.

  reply	other threads:[~2019-02-09 12:24 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-30 12:46 [PATCH v7 00/28] New macros for assembler symbols Jiri Slaby
2019-01-30 12:46 ` [PATCH v7 01/28] linkage: new " Jiri Slaby
2019-01-31 16:00   ` Borislav Petkov
2019-02-01 13:53     ` Jiri Slaby
2019-01-30 12:46 ` [PATCH v7 02/28] x86/asm/suspend: drop ENTRY from local data Jiri Slaby
2019-01-30 15:12   ` [tip:x86/cleanups] x86/asm/suspend: Drop " tip-bot for Jiri Slaby
2019-01-30 12:46 ` [PATCH v7 03/28] x86/asm/suspend: use SYM_DATA for data Jiri Slaby
2019-02-04 20:18   ` Borislav Petkov
2019-02-05  7:34     ` Jiri Slaby
2019-02-05  8:07       ` Borislav Petkov
2019-01-30 12:46 ` [PATCH v7 04/28] x86/asm: annotate relocate_kernel Jiri Slaby
2019-02-08 19:53   ` Borislav Petkov
2019-01-30 12:46 ` [PATCH v7 05/28] x86/asm/entry: annotate THUNKs Jiri Slaby
2019-02-09 11:25   ` Borislav Petkov
2019-02-12 10:27     ` Jiri Slaby
2019-02-12 11:05       ` Borislav Petkov
2019-02-12 11:38         ` Jiri Slaby
2019-02-12 11:46           ` Borislav Petkov
2019-02-12 11:51             ` Jiri Slaby
2019-02-12 12:13               ` Borislav Petkov
2019-02-14 10:03                 ` Jiri Slaby
2019-02-14 10:34                   ` Borislav Petkov
2019-01-30 12:46 ` [PATCH v7 06/28] x86/asm: annotate local pseudo-functions Jiri Slaby
2019-02-09 12:24   ` Borislav Petkov [this message]
2019-01-30 12:46 ` [PATCH v7 07/28] x86/asm/crypto: annotate local functions Jiri Slaby
2019-02-25 10:13   ` Borislav Petkov
2019-01-30 12:46 ` [PATCH v7 08/28] x86/boot/compressed: " Jiri Slaby
2019-01-30 12:46 ` [PATCH v7 09/28] x86/asm: annotate aliases Jiri Slaby
2019-01-30 12:46 ` [PATCH v7 10/28] x86/asm/entry: annotate interrupt symbols properly Jiri Slaby
2019-01-30 12:46 ` [PATCH v7 11/28] x86/asm/head: annotate data appropriatelly Jiri Slaby
2019-02-25 14:53   ` Borislav Petkov
2019-01-30 12:46 ` [PATCH v7 12/28] x86/boot/compressed: " Jiri Slaby
2019-01-30 12:46 ` [PATCH v7 13/28] um: " Jiri Slaby
2019-01-30 12:46 ` [PATCH v7 14/28] xen/pvh: " Jiri Slaby
2019-01-30 12:46 ` [PATCH v7 15/28] x86/asm/purgatory: start using annotations Jiri Slaby
2019-01-30 12:46 ` [PATCH v7 16/28] x86/asm: do not annotate functions by GLOBAL Jiri Slaby
2019-01-30 12:47 ` [PATCH v7 17/28] x86/asm: use SYM_INNER_LABEL instead of GLOBAL Jiri Slaby
2019-01-30 12:47 ` [PATCH v7 18/28] x86/asm/realmode: use SYM_DATA_* " Jiri Slaby
2019-01-30 12:47 ` [PATCH v7 19/28] x86/asm: kill the last GLOBAL user and remove the macro Jiri Slaby
2019-01-30 12:47 ` [PATCH v7 20/28] x86/asm: make some functions local Jiri Slaby
2019-01-30 12:47 ` [PATCH v7 21/28] x86/asm/ftrace: mark function_hook as function Jiri Slaby
2019-01-30 12:47 ` [PATCH v7 22/28] x86_64/asm: add ENDs to some functions and relabel with SYM_CODE_* Jiri Slaby
2019-01-30 12:47 ` [PATCH v7 23/28] x86_64/asm: change all ENTRY+END to SYM_CODE_* Jiri Slaby
2019-01-30 12:47 ` [PATCH v7 24/28] x86_64/asm: change all ENTRY+ENDPROC to SYM_FUNC_* Jiri Slaby
2019-01-30 12:47 ` [PATCH v7 25/28] x86_32/asm: add ENDs to some functions and relabel with SYM_CODE_* Jiri Slaby
2019-01-30 12:47 ` [PATCH v7 26/28] x86_32/asm: change all ENTRY+END to SYM_CODE_* Jiri Slaby
2019-01-30 12:47 ` [PATCH v7 27/28] x86_32/asm: change all ENTRY+ENDPROC to SYM_FUNC_* Jiri Slaby
2019-01-30 12:47 ` [PATCH v7 28/28] x86/asm: replace WEAK uses by SYM_INNER_LABEL_ALIGN Jiri Slaby

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190209122405.GB5089@zn.tnic \
    --to=bp@alien8.de \
    --cc=hpa@zytor.com \
    --cc=jslaby@suse.cz \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=tglx@linutronix.de \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).