2024-03-28 13:45:37

by Naresh Kamboju

[permalink] [raw]
Subject: next: sh: mm/cache-sh4.c:250:51: error: too few arguments to function 'folio_flags'

While building sh defconfig with gcc-11 the following build warnings /
errors noticed on Linux next-20240328 tag.

sh:
build:
* gcc-11-shx3_defconfig - Failed
* gcc-11-dreamcast_defconfig - Failed
* gcc-11-defconfig - Failed

Reported-by: Linux Kernel Functional Testing <[email protected]>

Build error:
---------
arch/sh/kernel/cpu/sh4/fpu.c:389:6: warning: no previous prototype for
'float_raise' [-Wmissing-prototypes]
389 | void float_raise(unsigned int flags)
| ^~~~~~~~~~~
arch/sh/kernel/cpu/sh4/fpu.c:394:5: warning: no previous prototype for
'float_rounding_mode' [-Wmissing-prototypes]
394 | int float_rounding_mode(void)
| ^~~~~~~~~~~~~~~~~~~
In file included from include/linux/thread_info.h:27,
from include/asm-generic/preempt.h:5,
from ./arch/sh/include/generated/asm/preempt.h:1,
from include/linux/preempt.h:79,
from include/linux/spinlock.h:56,
from include/linux/mmzone.h:8,
from include/linux/gfp.h:7,
from include/linux/mm.h:7,
from arch/sh/mm/cache-sh4.c:14:
arch/sh/mm/cache-sh4.c: In function 'sh4_flush_cache_page':
arch/sh/mm/cache-sh4.c:250:51: error: too few arguments to function
'folio_flags'
250 | test_bit(PG_dcache_clean, folio_flags(folio)) &&
| ^~~~~~~~~~~

steps to reproduce:
----------
# tuxmake --runtime podman --target-arch sh --toolchain gcc-11
--kconfig defconfig


Links:
- https://qa-reports.linaro.org/lkft/linux-next-master/build/next-20240328/testrun/23229659/suite/build/test/gcc-11-defconfig/log
- https://qa-reports.linaro.org/lkft/linux-next-master/build/next-20240328/testrun/23229659/suite/build/test/gcc-11-defconfig/history/
- https://qa-reports.linaro.org/lkft/linux-next-master/build/next-20240328/testrun/23229659/suite/build/test/gcc-11-defconfig/details/

--
Linaro LKFT
https://lkft.linaro.org


2024-03-28 18:46:28

by Andrew Morton

[permalink] [raw]
Subject: Re: next: sh: mm/cache-sh4.c:250:51: error: too few arguments to function 'folio_flags'

On Thu, 28 Mar 2024 19:12:26 +0530 Naresh Kamboju <[email protected]> wrote:

> While building sh defconfig with gcc-11 the following build warnings /
> errors noticed on Linux next-20240328 tag.
>
> sh:
> build:
> * gcc-11-shx3_defconfig - Failed
> * gcc-11-dreamcast_defconfig - Failed
> * gcc-11-defconfig - Failed
>
> Reported-by: Linux Kernel Functional Testing <[email protected]>
>
> Build error:
> ---------
> arch/sh/kernel/cpu/sh4/fpu.c:389:6: warning: no previous prototype for
> 'float_raise' [-Wmissing-prototypes]
> 389 | void float_raise(unsigned int flags)
> | ^~~~~~~~~~~
> arch/sh/kernel/cpu/sh4/fpu.c:394:5: warning: no previous prototype for
> 'float_rounding_mode' [-Wmissing-prototypes]
> 394 | int float_rounding_mode(void)
> | ^~~~~~~~~~~~~~~~~~~
> In file included from include/linux/thread_info.h:27,
> from include/asm-generic/preempt.h:5,
> from ./arch/sh/include/generated/asm/preempt.h:1,
> from include/linux/preempt.h:79,
> from include/linux/spinlock.h:56,
> from include/linux/mmzone.h:8,
> from include/linux/gfp.h:7,
> from include/linux/mm.h:7,
> from arch/sh/mm/cache-sh4.c:14:
> arch/sh/mm/cache-sh4.c: In function 'sh4_flush_cache_page':
> arch/sh/mm/cache-sh4.c:250:51: error: too few arguments to function
> 'folio_flags'
> 250 | test_bit(PG_dcache_clean, folio_flags(folio)) &&
> | ^~~~~~~~~~~
>

Thanks.

--- a/arch/sh/mm/cache-sh4.c~sh-remove-use-of-pg_arch_1-on-individual-pages-fix
+++ a/arch/sh/mm/cache-sh4.c
@@ -247,7 +247,7 @@ static void sh4_flush_cache_page(void *a
* another ASID than the current one.
*/
map_coherent = (current_cpu_data.dcache.n_aliases &&
- test_bit(PG_dcache_clean, folio_flags(folio)) &&
+ test_bit(PG_dcache_clean, folio_flags(folio, 0)) &&
page_mapped(page));
if (map_coherent)
vaddr = kmap_coherent(page, address);
_


2024-03-28 18:48:04

by Matthew Wilcox

[permalink] [raw]
Subject: Re: next: sh: mm/cache-sh4.c:250:51: error: too few arguments to function 'folio_flags'

On Thu, Mar 28, 2024 at 11:46:12AM -0700, Andrew Morton wrote:
> --- a/arch/sh/mm/cache-sh4.c~sh-remove-use-of-pg_arch_1-on-individual-pages-fix
> +++ a/arch/sh/mm/cache-sh4.c
> @@ -247,7 +247,7 @@ static void sh4_flush_cache_page(void *a
> * another ASID than the current one.
> */
> map_coherent = (current_cpu_data.dcache.n_aliases &&
> - test_bit(PG_dcache_clean, folio_flags(folio)) &&
> + test_bit(PG_dcache_clean, folio_flags(folio, 0)) &&

Yup.
https://lore.kernel.org/linux-mm/[email protected]/