[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <874iqji6n1.ffs@tglx>
Date: Mon, 24 Nov 2025 20:15:46 +0100
From: Thomas Gleixner <tglx@...utronix.de>
To: kernel test robot <lkp@...el.com>
Cc: llvm@...ts.linux.dev, oe-kbuild-all@...ts.linux.dev,
linux-kernel@...r.kernel.org, x86@...nel.org, Ingo Molnar
<mingo@...nel.org>, "Peter Zijlstra (Intel)" <peterz@...radead.org>,
Mathieu Desnoyers <mathieu.desnoyers@...icios.com>,
linuxppc-dev@...ts.ozlabs.org, Nathan Chancellor <nathan@...nel.org>
Subject: Re: [tip:core/rseq 25/39] include/linux/rseq_entry.h:132:3: error:
invalid operand for instruction
On Tue, Nov 25 2025 at 01:37, kernel test robot wrote:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git core/rseq
> head: 21782b3a5cd40892cb2995aa1ec3e74dd1112f1d
> commit: abc850e7616c91ebaa3f5ba3617ab0a104d45039 [25/39] rseq: Provide and use rseq_update_user_cs()
> config: powerpc-randconfig-002-20251124 (https://download.01.org/0day-ci/archive/20251125/202511250134.i0Jm8d7I-lkp@intel.com/config)
> compiler: clang version 16.0.6 (https://github.com/llvm/llvm-project 7cbf1a2591520c2491aa35339f227775f4d3adf6)
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251125/202511250134.i0Jm8d7I-lkp@intel.com/reproduce)
>
> If you fix the issue in a separate patch/commit (i.e. not just a new version of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <lkp@...el.com>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202511250134.i0Jm8d7I-lkp@intel.com/
>
> All errors (new ones prefixed by >>):
>
> In file included from kernel/rseq.c:75:
>>> include/linux/rseq_entry.h:132:3: error: invalid operand for instruction
> unsafe_get_user(start_ip, &ucs->start_ip, efault);
> ^
> include/linux/uaccess.h:606:2: note: expanded from macro 'unsafe_get_user'
> arch_unsafe_get_user(x, ptr, local_label); \
> ^
> arch/powerpc/include/asm/uaccess.h:458:2: note: expanded from macro 'arch_unsafe_get_user'
> __get_user_size_goto(__gu_val, __gu_addr, sizeof(*(p)), e); \
> ^
> arch/powerpc/include/asm/uaccess.h:282:2: note: expanded from macro '__get_user_size_goto'
> __get_user_size_allowed(x, ptr, size, __gus_retval); \
> ^
> arch/powerpc/include/asm/uaccess.h:273:10: note: expanded from macro '__get_user_size_allowed'
> case 8: __get_user_asm2(x, (u64 __user *)ptr, retval); break; \
> ^
> arch/powerpc/include/asm/uaccess.h:256:4: note: expanded from macro '__get_user_asm2'
> " li %1+1,0\n" \
> ^
> <inline asm>:7:5: note: instantiated into assembly here
> li 31+1,0
Definitely not a problem of tip core/rseq. It just ends up in
__get_user_asm2() and then the compiler gets unhappy about the PowerPC
inline assembly for whatever reason.
Thanks,
tglx
Powered by blists - more mailing lists