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.