linux-next: build failure after merge of the percpu tree

Message ID 20231211171406.71fdc29b@canb.auug.org.au
State New
Headers
Series linux-next: build failure after merge of the percpu tree |

Commit Message

Stephen Rothwell Dec. 11, 2023, 6:14 a.m. UTC
  Hi all,

After merging the percpu tree, today's linux-next build (sparc64
defconfig) failed like this:

mm/percpu.c: In function 'pcpu_page_first_chunk':
mm/percpu.c:3336:17: error: implicit declaration of function 'flush_cache_vmap_early'; did you mean 'flush_cache_vmap'? [-Werror=implicit-function-declaration]
 3336 |                 flush_cache_vmap_early(unit_addr, unit_addr + ai->unit_size); 
      |                 ^~~~~~~~~~~~~~~~~~~~~~
      |                 flush_cache_vmap
cc1: some warnings being treated as errors

Caused by commit

  a95c15a43f4a ("mm: Introduce flush_cache_vmap_early() and its riscv implementation")

I have applied the following fix patch for today.  Are there other
archs that don't use asm-generic/cacheflush.h?

From: Stephen Rothwell <sfr@canb.auug.org.au>
Date: Mon, 11 Dec 2023 16:57:00 +1100
Subject: [PATCH] fix up for "mm: Introduce flush_cache_vmap_early() and its riscv implementation"

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
---
 arch/sparc/include/asm/cacheflush.h | 7 +++++++
 1 file changed, 7 insertions(+)
  

Comments

Alexandre Ghiti Dec. 11, 2023, 8:31 a.m. UTC | #1
Hi Stephen,

On Mon, Dec 11, 2023 at 7:14 AM Stephen Rothwell <sfr@canb.auug.org.au> wrote:
>
> Hi all,
>
> After merging the percpu tree, today's linux-next build (sparc64
> defconfig) failed like this:
>
> mm/percpu.c: In function 'pcpu_page_first_chunk':
> mm/percpu.c:3336:17: error: implicit declaration of function 'flush_cache_vmap_early'; did you mean 'flush_cache_vmap'? [-Werror=implicit-function-declaration]
>  3336 |                 flush_cache_vmap_early(unit_addr, unit_addr + ai->unit_size);
>       |                 ^~~~~~~~~~~~~~~~~~~~~~
>       |                 flush_cache_vmap
> cc1: some warnings being treated as errors
>
> Caused by commit
>
>   a95c15a43f4a ("mm: Introduce flush_cache_vmap_early() and its riscv implementation")
>
> I have applied the following fix patch for today.  Are there other
> archs that don't use asm-generic/cacheflush.h?

It seems like most archs do not include this file, I should have
checked. As I'm a bit scared of the possible side-effects of including
asm-generic/cacheflush.h, I'll define flush_cache_vmap_early() on all
archs that do define flush_cache_vmap().

Stephen, do you want a patch fix? Or do you want me to send a new
version of the current patches so that you can drop them for now?

Sorry for the oversight,

Thanks,

Alex

>
> From: Stephen Rothwell <sfr@canb.auug.org.au>
> Date: Mon, 11 Dec 2023 16:57:00 +1100
> Subject: [PATCH] fix up for "mm: Introduce flush_cache_vmap_early() and its riscv implementation"
>
> Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
> ---
>  arch/sparc/include/asm/cacheflush.h | 7 +++++++
>  1 file changed, 7 insertions(+)
>
> diff --git a/arch/sparc/include/asm/cacheflush.h b/arch/sparc/include/asm/cacheflush.h
> index 881ac76eab93..9d87b2bcb217 100644
> --- a/arch/sparc/include/asm/cacheflush.h
> +++ b/arch/sparc/include/asm/cacheflush.h
> @@ -10,4 +10,11 @@
>  #else
>  #include <asm/cacheflush_32.h>
>  #endif
> +
> +#ifndef __ASSEMBLY__
> +static inline void flush_cache_vmap_early(unsigned long start, unsigned long end)
> +{
> +}
> +#endif
> +
>  #endif
> --
> 2.40.1
>
> --
> Cheers,
> Stephen Rothwell
  
Dennis Zhou Dec. 11, 2023, 7:25 p.m. UTC | #2
Hello,

On Mon, Dec 11, 2023 at 09:31:25AM +0100, Alexandre Ghiti wrote:
> Hi Stephen,
> 
> On Mon, Dec 11, 2023 at 7:14 AM Stephen Rothwell <sfr@canb.auug.org.au> wrote:
> >
> > Hi all,
> >
> > After merging the percpu tree, today's linux-next build (sparc64
> > defconfig) failed like this:
> >
> > mm/percpu.c: In function 'pcpu_page_first_chunk':
> > mm/percpu.c:3336:17: error: implicit declaration of function 'flush_cache_vmap_early'; did you mean 'flush_cache_vmap'? [-Werror=implicit-function-declaration]
> >  3336 |                 flush_cache_vmap_early(unit_addr, unit_addr + ai->unit_size);
> >       |                 ^~~~~~~~~~~~~~~~~~~~~~
> >       |                 flush_cache_vmap
> > cc1: some warnings being treated as errors
> >
> > Caused by commit
> >
> >   a95c15a43f4a ("mm: Introduce flush_cache_vmap_early() and its riscv implementation")
> >
> > I have applied the following fix patch for today.  Are there other
> > archs that don't use asm-generic/cacheflush.h?
> 

I'm surprised automation didn't catch this as this should have failed
for any sparc build? It passed `sparc allmodconfig gcc` on my branches.

> It seems like most archs do not include this file, I should have
> checked. As I'm a bit scared of the possible side-effects of including
> asm-generic/cacheflush.h, I'll define flush_cache_vmap_early() on all
> archs that do define flush_cache_vmap().
> 

Hmmm. That makes sense, but we'd still need to check so we have the
generic #ifndef definition included everywhere too.

> Stephen, do you want a patch fix? Or do you want me to send a new
> version of the current patches so that you can drop them for now?
> 

The for-next tree gets recreated from pulls of the maintainers' trees.
I'm going to drop the series from percpu and then we can go again with a
v2.

> Sorry for the oversight,
> 

All good it happens. It's why the automation is there.

Thanks,
Dennis

> Thanks,
> 
> Alex
> 
> >
> > From: Stephen Rothwell <sfr@canb.auug.org.au>
> > Date: Mon, 11 Dec 2023 16:57:00 +1100
> > Subject: [PATCH] fix up for "mm: Introduce flush_cache_vmap_early() and its riscv implementation"
> >
> > Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
> > ---
> >  arch/sparc/include/asm/cacheflush.h | 7 +++++++
> >  1 file changed, 7 insertions(+)
> >
> > diff --git a/arch/sparc/include/asm/cacheflush.h b/arch/sparc/include/asm/cacheflush.h
> > index 881ac76eab93..9d87b2bcb217 100644
> > --- a/arch/sparc/include/asm/cacheflush.h
> > +++ b/arch/sparc/include/asm/cacheflush.h
> > @@ -10,4 +10,11 @@
> >  #else
> >  #include <asm/cacheflush_32.h>
> >  #endif
> > +
> > +#ifndef __ASSEMBLY__
> > +static inline void flush_cache_vmap_early(unsigned long start, unsigned long end)
> > +{
> > +}
> > +#endif
> > +
> >  #endif
> > --
> > 2.40.1
> >
> > --
> > Cheers,
> > Stephen Rothwell
  

Patch

diff --git a/arch/sparc/include/asm/cacheflush.h b/arch/sparc/include/asm/cacheflush.h
index 881ac76eab93..9d87b2bcb217 100644
--- a/arch/sparc/include/asm/cacheflush.h
+++ b/arch/sparc/include/asm/cacheflush.h
@@ -10,4 +10,11 @@ 
 #else
 #include <asm/cacheflush_32.h>
 #endif
+
+#ifndef __ASSEMBLY__
+static inline void flush_cache_vmap_early(unsigned long start, unsigned long end)
+{
+}
+#endif
+
 #endif