OSDN Git Service

h8300: Correct signature of test_bit()
authorGeert Uytterhoeven <geert@linux-m68k.org>
Thu, 21 Jun 2018 19:24:44 +0000 (21:24 +0200)
committerYoshinori Sato <ysato@users.sourceforge.jp>
Wed, 22 Aug 2018 10:14:19 +0000 (19:14 +0900)
    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@linux-m68k.org>
Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp>
arch/h8300/include/asm/bitops.h

index b7ac7cf..647a83b 100644 (file)
@@ -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;