Re: stable-rc: 4.14 and 4.19: arch/x86/kernel/head_32.S:126: Error: invalid character '(' in mnemonic

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Nov 03, 2023 at 04:59:59PM +0100, Greg Kroah-Hartman wrote:
> On Fri, Nov 03, 2023 at 04:57:40PM +0100, Greg Kroah-Hartman wrote:
> > On Fri, Nov 03, 2023 at 09:07:32PM +0530, Naresh Kamboju wrote:
> > > Following warnings and errors have been noticed while building i386 build
> > > on stable-rc linux.4.19.y and linux.4.14.y.
> > > 
> > > Reported-by: Linux Kernel Functional Testing <lkft@xxxxxxxxxx>
> > > 
> > > Build log:
> > > ==========
> > > kernel/profile.c: In function 'profile_dead_cpu':
> > > kernel/profile.c:346:27: warning: the comparison will always evaluate
> > > as 'true' for the address of 'prof_cpu_mask' will never be NULL
> > > [-Waddress]
> > >   346 |         if (prof_cpu_mask != NULL)
> > >       |                           ^~
> > > kernel/profile.c:49:22: note: 'prof_cpu_mask' declared here
> > >    49 | static cpumask_var_t prof_cpu_mask;
> > >       |                      ^~~~~~~~~~~~~
> > > kernel/profile.c: In function 'profile_online_cpu':
> > > kernel/profile.c:383:27: warning: the comparison will always evaluate
> > > as 'true' for the address of 'prof_cpu_mask' will never be NULL
> > > [-Waddress]
> > >   383 |         if (prof_cpu_mask != NULL)
> > >       |                           ^~
> > > kernel/profile.c:49:22: note: 'prof_cpu_mask' declared here
> > >    49 | static cpumask_var_t prof_cpu_mask;
> > >       |                      ^~~~~~~~~~~~~
> > > kernel/profile.c: In function 'profile_tick':
> > > kernel/profile.c:413:47: warning: the comparison will always evaluate
> > > as 'true' for the address of 'prof_cpu_mask' will never be NULL
> > > [-Waddress]
> > >   413 |         if (!user_mode(regs) && prof_cpu_mask != NULL &&
> > >       |                                               ^~
> > > kernel/profile.c:49:22: note: 'prof_cpu_mask' declared here
> > >    49 | static cpumask_var_t prof_cpu_mask;
> > >       |                      ^~~~~~~~~~~~~
> > 
> > Those are not due to this set of patches, right?
> > 
> > > arch/x86/kernel/head_32.S: Assembler messages:
> > > arch/x86/kernel/head_32.S:126: Error: invalid character '(' in mnemonic
> > > arch/x86/kernel/head_32.S:57:  Info: macro invoked from here
> > > arch/x86/kernel/head_32.S:128: Error: invalid character '(' in mnemonic
> > > arch/x86/kernel/head_32.S:57:  Info: macro invoked from here
> > 
> > This is odd, nothing touches this file either.
> > 
> > 7e09ac27f43b ("x86: Fix .brk attribute in linker script") is backported
> > here, perhaps that is the issue?  If you revert that, does the error go
> > away?
> 
> Nope, that's not the issue.
> 
> > Let me see if I can build a 32 bit kernel anymore...
> 
> I can do this now, let me figure it out...

Sorry, I think this is my bad. 4.14 and 4.19 do not have
SYM_DATA_START() or SYM_DATA_END() but I did not do a 32-bit x86 build
to see the error. I think this should be the fix, it builds for me at
least. Would you prefer a new set of patches for 4.14 and 4.19 or could
this just be squashed in to my existing backport of a1e2c031ec39
("x86/mm: Simplify RESERVE_BRK()")? Sorry for not catching 7e09ac27f43b
as a fix for that either.

Cheers,
Nathan

diff --git a/arch/x86/include/asm/setup.h b/arch/x86/include/asm/setup.h
index e0e6aad9cd51..c5ed79159975 100644
--- a/arch/x86/include/asm/setup.h
+++ b/arch/x86/include/asm/setup.h
@@ -123,9 +123,9 @@ asmlinkage void __init x86_64_start_reservations(char *real_mode_data);
 
 .macro __RESERVE_BRK name, size
 	.pushsection .bss..brk, "aw"
-SYM_DATA_START(__brk_\name)
+GLOBAL(__brk_\name)
 	.skip \size
-SYM_DATA_END(__brk_\name)
+END(__brk_\name)
 	.popsection
 .endm
 



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux