Re: [PATCH] h8300: Correct signature of test_bit()

From: Yoshinori Sato
Date: Sun Jul 22 2018 - 10:14:01 EST


On Fri, 22 Jun 2018 04:24:44 +0900,
Geert Uytterhoeven wrote:
>
> mm/filemap.c: In function 'clear_bit_unlock_is_negative_byte':
> mm/filemap.c:1181:30: warning: passing argument 2 of 'test_bit' discards 'volatile' qualifier from pointer target type [-Wdiscarded-qualifiers]
> return test_bit(PG_waiters, mem);
> ^~~
> In file included from include/linux/bitops.h:38,
> from include/linux/kernel.h:11,
> from include/linux/list.h:9,
> from include/linux/wait.h:7,
> from include/linux/wait_bit.h:8,
> from include/linux/fs.h:6,
> from include/linux/dax.h:5,
> from mm/filemap.c:14:
> arch/h8300/include/asm/bitops.h:69:57: note: expected 'const long unsigned int *' but argument is of type 'volatile void *'
> static inline int test_bit(int nr, const unsigned long *addr)
> ~~~~~~~~~~~~~~~~~~~~~^~~~
>
> Make the bitmask pointed to by the "addr" parameter volatile to fix
> this, like is done on other architectures.
>
> Signed-off-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
> ---
> Exposed by commit 98473f9f3f9bd404 ("mm/filemap: fix parameters to
> test_bit()").
>
> v2:
> - Rebased.
> ---
> arch/h8300/include/asm/bitops.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/h8300/include/asm/bitops.h b/arch/h8300/include/asm/bitops.h
> index ea0cb0cf6a8bb2ed..92285bec7b4023ef 100644
> --- a/arch/h8300/include/asm/bitops.h
> +++ b/arch/h8300/include/asm/bitops.h
> @@ -66,7 +66,7 @@ H8300_GEN_BITOP(change_bit, "bnot")
>
> #undef H8300_GEN_BITOP
>
> -static inline int test_bit(int nr, const unsigned long *addr)
> +static inline int test_bit(int nr, const volatile unsigned long *addr)
> {
> int ret = 0;
> unsigned char *b_addr;
> --
> 2.17.1
>

Sorry. too late reply.
Applied to h8300-next.
Thanks.

--
Yosinori Sato