[PATCH 1/2] h8300: Correct signature of test_bit()

From: Geert Uytterhoeven
Date: Tue Jan 03 2017 - 12:54:41 EST


mm/filemap.c: In function 'clear_bit_unlock_is_negative_byte':
mm/filemap.c:933:9: warning: passing argument 2 of 'test_bit' discards 'volatile' qualifier from pointer target type
return test_bit(PG_waiters, mem);
^
In file included from include/linux/bitops.h:36:0,
from include/linux/kernel.h:10,
from include/linux/list.h:8,
from include/linux/wait.h:6,
from include/linux/fs.h:5,
from include/linux/dax.h:4,
from mm/filemap.c:14:
arch/h8300/include/asm/bitops.h:68:90: 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()").
---
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 05999aba1d6ab364..30eaf5b9bf7319ad 100644
--- a/arch/h8300/include/asm/bitops.h
+++ b/arch/h8300/include/asm/bitops.h
@@ -65,7 +65,7 @@ static inline void FNAME(int nr, volatile unsigned long *addr) \

#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;
--
1.9.1