lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20251125231834.GA4012217@ax162>
Date: Tue, 25 Nov 2025 16:18:34 -0700
From: Nathan Chancellor <nathan@...nel.org>
To: "Christophe Leroy (CS GROUP)" <chleroy@...nel.org>
Cc: Thomas Gleixner <tglx@...utronix.de>, kernel test robot <lkp@...el.com>,
	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
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 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/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.
> 
> 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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ