[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20230417192604.GJZD2dTM64OGLdJj2E@fat_crate.local>
Date: Mon, 17 Apr 2023 21:26:04 +0200
From: Borislav Petkov <bp@...en8.de>
To: "H. Peter Anvin" <hpa@...or.com>
Cc: Willy Tarreau <w@....eu>, Jingbo Xu <jefflexu@...ux.alibaba.com>,
tglx@...utronix.de, mingo@...hat.com, dave.hansen@...ux.intel.com,
x86@...nel.org,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: [BUG REPORT] arch/x86/include/asm/uaccess_64.h:119: Error: junk
at end of line
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
Powered by blists - more mailing lists