2023-12-11 06:14:36

by Stephen Rothwell

[permalink] [raw]
Subject: linux-next: build failure after merge of the percpu tree

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 <[email protected]>
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 <[email protected]>
---
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


Attachments:
(No filename) (499.00 B)
OpenPGP digital signature

2023-12-11 08:31:51

by Alexandre Ghiti

[permalink] [raw]
Subject: Re: linux-next: build failure after merge of the percpu tree

Hi Stephen,

On Mon, Dec 11, 2023 at 7:14 AM Stephen Rothwell <[email protected]> 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 <[email protected]>
> 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 <[email protected]>
> ---
> 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

2023-12-11 19:25:33

by Dennis Zhou

[permalink] [raw]
Subject: Re: linux-next: build failure after merge of the percpu tree

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 <[email protected]> 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 <[email protected]>
> > 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 <[email protected]>
> > ---
> > 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