Re: [BUG REPORT] arch/x86/include/asm/uaccess_64.h:119: Error: junk at end of line

From: Borislav Petkov
Date: Mon Apr 17 2023 - 15:26:16 EST


On Mon, Apr 17, 2023 at 11:32:19AM -0700, H. Peter Anvin wrote:
> We do have assembly-aware macros for this; I believe they are called _UL() etc.

It doesn't work even if I do:

#define ALT_FLAG_NOT BIT_MASK(0)

and that macro has the UL() wrappery for the __ASSEMBLY__ preprocessor case
because where it gets used, ALTERNATIVE_3() in __clear_user(),
__ASSEMBLY__ is there not defined, ofc - it is C code.

So it does:

"# ALT: oldinstr3\n" "661:\n\t" "rep stosb" "\n662:\n" "# ALT: padding3\n"...
" .4byte " "((((((1UL))) << ((0) % 64)) << 16) | ((18*32+ 4)))"

which those old gas things don't have support yet for.

And U and L suffixes are C-syntax, strictly speaking. So assembler
numbers don't need them. Even if binutils has support for them:

$ binutils-gdb> git tag --contains e140100a5da85568e83ffe8e77d3f5e4a59ddee8 | head
binutils-2_27
...

$ binutils-gdb> git tag --contains 86b80085c889cd388fa677a5ae9053fd4be3776c | head
binutils-2_28
...


--
Regards/Gruss,
Boris.

https://people.kernel.org/tglx/notes-about-netiquette