On Wed, Aug 28, 2019 at 06:43:50PM +0200, Michal Suchanek wrote: > +ifdef CONFIG_COMPAT > +obj-y += sys_ppc32.o ptrace32.o signal_32.o > +endif
This should be: obj-$(CONFIG_COMPAT) += sys_ppc32.o ptrace32.o signal_32.o > /* This value is used to mark exception frames on the stack. */ > exception_marker: > diff --git a/arch/powerpc/kernel/signal.c b/arch/powerpc/kernel/signal.c > index 60436432399f..73d0f53ffc1a 100644 > --- a/arch/powerpc/kernel/signal.c > +++ b/arch/powerpc/kernel/signal.c > @@ -277,7 +277,7 @@ static void do_signal(struct task_struct *tsk) > > rseq_signal_deliver(&ksig, tsk->thread.regs); > > - if (is32) { > + if ((IS_ENABLED(CONFIG_PPC32) || IS_ENABLED(CONFIG_COMPAT)) && is32) { I think we should fix the is_32bit_task definitions instead so that callers don't need this mess. I'd suggest something like: #ifdef CONFIG_COMPAT #define is_32bit_task() test_thread_flag(TIF_32BIT) #else #define is_32bit_task() IS_ENABLED(CONFIG_PPC32) #endif