Re: [PATCH] cacheflush.h: Add forward declaration for struct folio

From: Guenter Roeck
Date: Wed Mar 23 2022 - 00:12:12 EST


On Wed, Mar 23, 2022 at 03:35:10PM +1200, Herbert Xu wrote:
> On Tue, Mar 22, 2022 at 06:13:27AM -0700, Guenter Roeck wrote:
> > On Wed, Mar 09, 2022 at 03:20:01PM +1200, Herbert Xu wrote:
> > > This patch turns the new SHA driver into a tristate and also allows
> > > compile testing.
> > >
> > > Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
> >
> > This results in:
> >
> > Building s390:allmodconfig ... failed
> > --------------
> > Error log:
> > In file included from drivers/crypto/xilinx/zynqmp-sha.c:6:
> > include/linux/cacheflush.h:12:46: error: 'struct folio' declared inside parameter list will not be visible outside of this definition or declaration [-Werror]
> > 12 | static inline void flush_dcache_folio(struct folio *folio)
>
> This should be fixed in cacheflush.h:
>
> ---8<---
> The struct folio is not declared in cacheflush.h so we need to
> provide a forward declaration as otherwise users of this header
> file may get warnings.
>
> Reported-by: Guenter Roeck <linux@xxxxxxxxxxxx>
> Fixes: 522a0032af00 ("Add linux/cacheflush.h")
> Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>

Tested-by: Guenter Roeck <linux@xxxxxxxxxxxx>

Guenter
>
> diff --git a/include/linux/cacheflush.h b/include/linux/cacheflush.h
> index fef8b607f97e..a6189d21f2ba 100644
> --- a/include/linux/cacheflush.h
> +++ b/include/linux/cacheflush.h
> @@ -4,6 +4,8 @@
>
> #include <asm/cacheflush.h>
>
> +struct folio;
> +
> #if ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE
> #ifndef ARCH_IMPLEMENTS_FLUSH_DCACHE_FOLIO
> void flush_dcache_folio(struct folio *folio);
> --
> Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
> Home Page: http://gondor.apana.org.au/~herbert/
> PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt