Subject: Re: [PATCH net-next V6] net/mlx5: Improve write-combining test reliability for ARM64 Grace CPUs

From: Nathan Chancellor <[email-masked]>
Date: Wed, 1 Oct 2025 09:36:55 -0700

On Wed, Oct 01, 2025 at 11:55:14AM -0300, Jason Gunthorpe wrote:
> On Wed, Oct 01, 2025 at 11:28:09AM +0200, Paolo Abeni wrote:
> 
> > > +static void mlx5_iowrite64_copy(struct mlx5_wc_sq *sq, __be32 mmio_wqe[16],
> > > +				size_t mmio_wqe_size, unsigned int offset)
> > > +{
> > > +#if IS_ENABLED(CONFIG_KERNEL_MODE_NEON) && IS_ENABLED(CONFIG_ARM64)
> > > +	if (cpu_has_neon()) {
> > > +		kernel_neon_begin();
> > > +		asm volatile
> > > +		(".arch_extension simd;\n\t"
> > 
> > Here I'm observing build errors with aarch64-linux-gnu-gcc 12.1.1
> > 20220507 (Red Hat Cross 12.1.1-1):
> 
> > /tmp/cchqHdeI.s: Assembler messages:
> > /tmp/cchqHdeI.s:746: Error: unknown architectural extension `simd;'
> 
> This is a binutils error not gcc.. What is the binutils version?

I can reproduce this with at least binutils 2.36.1, which is in the
kernel.org GCC 8.5.0 toolchain.

Removing the semicolon resolves the issue for me and matches the format
of .arch_extension in the rest of the kernel. I am guessing binutils
became less strict with parsing at some point.

Cheers,
Nathan