Re: [PATCH v7 05/28] x86/asm/entry: annotate THUNKs

From: Borislav Petkov
Date: Sat Feb 09 2019 - 06:26:02 EST


On Wed, Jan 30, 2019 at 01:46:48PM +0100, Jiri Slaby wrote:
> Place SYM_*_START_NOALIGN and SYM_*_END around the THUNK macro body.
> Preserve @function by FUNC (64bit) and CODE (32bit). Given it was not
> marked as aligned, use NOALIGN.
>
> The common tail .L_restore is put inside SYM_CODE_START_LOCAL_NOALIGN
> and SYM_CODE_END too.
>
> The result:
> Value Size Type Bind Vis Ndx Name
> 0000 28 FUNC GLOBAL DEFAULT 1 trace_hardirqs_on_thunk
> 001c 28 FUNC GLOBAL DEFAULT 1 trace_hardirqs_off_thunk
> 0038 24 FUNC GLOBAL DEFAULT 1 lockdep_sys_exit_thunk
> 0050 24 FUNC GLOBAL DEFAULT 1 ___preempt_schedule
> 0068 24 FUNC GLOBAL DEFAULT 1 ___preempt_schedule_notra
>
> Signed-off-by: Jiri Slaby <jslaby@xxxxxxx>
> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> Cc: Ingo Molnar <mingo@xxxxxxxxxx>
> Cc: "H. Peter Anvin" <hpa@xxxxxxxxx>
> Cc: <x86@xxxxxxxxxx>
> ---
> arch/x86/entry/thunk_32.S | 4 ++--
> arch/x86/entry/thunk_64.S | 8 ++++----
> 2 files changed, 6 insertions(+), 6 deletions(-)

...

> @@ -57,7 +56,7 @@
> #if defined(CONFIG_TRACE_IRQFLAGS) \
> || defined(CONFIG_DEBUG_LOCK_ALLOC) \
> || defined(CONFIG_PREEMPT)
> -.L_restore:
> +SYM_CODE_START_LOCAL_NOALIGN(.L_restore)
> popq %r11
> popq %r10
> popq %r9
> @@ -70,4 +69,5 @@
> popq %rbp
> ret
> _ASM_NOKPROBE(.L_restore)
> +SYM_CODE_END(.L_restore)

That local label doesn't even land in the symbol table:

$ readelf -a arch/x86/entry/thunk_64.o | grep restore
$

so no need to touch it, AFAICT. And all local labels, for that matter.

--
Regards/Gruss,
Boris.

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