On Tue, Nov 25, 2025 at 08:38:40AM +0100, Christophe Leroy (CS GROUP) wrote: > > > Le 24/11/2025 à 20:15, Thomas Gleixner a écrit : > > 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/[email protected]/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/[email protected]/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 <[email protected]> > > > | Closes: > > > https://lore.kernel.org/oe-kbuild-all/[email protected]/ > > > > > > 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. > > I see it is a CLANG build. > > CLANG might be less flexible, can you test with following change ?
That avoids the error for me. I notice that this does not reproduce beyond clang-16 for me so I am going to bisect LLVM to see what fixes this error. > diff --git a/arch/powerpc/include/asm/uaccess.h > b/arch/powerpc/include/asm/uaccess.h > index 4f5a46a77fa2..33d5f7ade254 100644 > --- a/arch/powerpc/include/asm/uaccess.h > +++ b/arch/powerpc/include/asm/uaccess.h > @@ -253,7 +253,7 @@ __gus_failed: > \ > ".section .fixup,\"ax\"\n" \ > "4: li %0,%3\n" \ > " li %1,0\n" \ > - " li %1+1,0\n" \ > + " li %L1,0\n" \ > " b 3b\n" \ > ".previous\n" \ > EX_TABLE(1b, 4b) \ > > > Thanks > Christophe
