Subject: Re: linux-next: build failure after merge of the net-next tree

From: Stephen Rothwell <[email-masked]>
Date: Fri, 13 Sep 2024 20:41:38 +1000

Hi Jakub,

On Thu, 12 Sep 2024 20:05:43 -0700 Jakub Kicinski <[email-masked]> wrote:
>
> On Fri, 13 Sep 2024 12:53:02 +1000 Stephen Rothwell wrote:
> > /home/sfr/next/tmp/ccuSzwiR.s: Assembler messages:
> > /home/sfr/next/tmp/ccuSzwiR.s:2579: Error: operand out of domain (39 is not a multiple of 4)
> > make[5]: *** [/home/sfr/next/next/scripts/Makefile.build:229: net/core/page_pool.o] Error 1  
> 
> Ugh, bad times for networking, I just "fixed" the HSR one a few hours
> ago. Any idea what line of code this is? I'm dusting off my powerpc
> build but the error is somewhat enigmatic.

I have bisected it (just using the net-next tree) to commit

8ab79ed50cf10f338465c296012500de1081646f is the first bad commit
commit 8ab79ed50cf10f338465c296012500de1081646f
Author: Mina Almasry <[email-masked]>
Date:   Tue Sep 10 17:14:49 2024 +0000

    page_pool: devmem support

And it may be pointing at arch/powerpc/include/asm/atomic.h line 200
which is this:

static __inline__ s64 arch_atomic64_read(const atomic64_t *v)
{
        s64 t;

        /* -mprefixed can generate offsets beyond range, fall back hack */
        if (IS_ENABLED(CONFIG_PPC_KERNEL_PREFIXED))
                __asm__ __volatile__("ld %0,0(%1)" : "=r"(t) : "b"(&v->counter))
;
        else
                __asm__ __volatile__("ld%U1%X1 %0,%1" : "=r"(t) : "m<>"(v->counter));

        return t;
}

The second "asm" above (CONFIG_PPC_KERNEL_PREFIXED is not set).  I am
guessing by searching for "39" in net/core/page_pool.s

This is maybe called from page_pool_unref_netmem()

-- 
Cheers,
Stephen Rothwell