All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] m68k: fix warnings on use of test_bit()
@ 2017-03-27  3:10 Greg Ungerer
  2017-03-27  7:33 ` Geert Uytterhoeven
  0 siblings, 1 reply; 2+ messages in thread
From: Greg Ungerer @ 2017-03-27  3:10 UTC (permalink / raw)
  To: linux-m68k; +Cc: geert, Greg Ungerer

Compiling for m68k targets will give the following warning:

mm/filemap.c: In function ‘clear_bit_unlock_is_negative_byte’:
mm/filemap.c:940: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: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/m68k/include/asm/bitops.h:151:19: note: expected ‘const long unsigned int *’ but argument is of type ‘volatile void *’
 static inline int test_bit(int nr, const unsigned long *vaddr)
                   ^

(This is true at least for a gcc-5.4.0 based toolchain).

The problem is that the m68k test_bit() arguments do not match the
Documemtation/core-api/atomic_ops.rst defined one. (Most other
architectures define it with "const volatile unsigned long *addr" too).

Change the m68k test_bit() definition to more closely match the documented
definition. This cleans up the warning.

Signed-off-by: Greg Ungerer <gerg@linux-m68k.org>
---
 arch/m68k/include/asm/bitops.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/m68k/include/asm/bitops.h b/arch/m68k/include/asm/bitops.h
index b4a9b0d..dda58cf 100644
--- a/arch/m68k/include/asm/bitops.h
+++ b/arch/m68k/include/asm/bitops.h
@@ -148,7 +148,7 @@ static inline void bfchg_mem_change_bit(int nr, volatile unsigned long *vaddr)
 #define __change_bit(nr, vaddr)	change_bit(nr, vaddr)
 
 
-static inline int test_bit(int nr, const unsigned long *vaddr)
+static inline int test_bit(int nr, const volatile unsigned long *vaddr)
 {
 	return (vaddr[nr >> 5] & (1UL << (nr & 31))) != 0;
 }
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] m68k: fix warnings on use of test_bit()
  2017-03-27  3:10 [PATCH] m68k: fix warnings on use of test_bit() Greg Ungerer
@ 2017-03-27  7:33 ` Geert Uytterhoeven
  0 siblings, 0 replies; 2+ messages in thread
From: Geert Uytterhoeven @ 2017-03-27  7:33 UTC (permalink / raw)
  To: Greg Ungerer; +Cc: Linux/m68k

Hi Greg,

On Mon, Mar 27, 2017 at 5:10 AM, Greg Ungerer <gerg@linux-m68k.org> wrote:
> Compiling for m68k targets will give the following warning:
>
> mm/filemap.c: In function ‘clear_bit_unlock_is_negative_byte’:
> mm/filemap.c:940: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: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/m68k/include/asm/bitops.h:151:19: note: expected ‘const long unsigned int *’ but argument is of type ‘volatile void *’
>  static inline int test_bit(int nr, const unsigned long *vaddr)
>                    ^
>
> (This is true at least for a gcc-5.4.0 based toolchain).
>
> The problem is that the m68k test_bit() arguments do not match the
> Documemtation/core-api/atomic_ops.rst defined one. (Most other
> architectures define it with "const volatile unsigned long *addr" too).
>
> Change the m68k test_bit() definition to more closely match the documented
> definition. This cleans up the warning.
>
> Signed-off-by: Greg Ungerer <gerg@linux-m68k.org>

Already fixed and queued for v4.11, cfr. "[PATCH 2/2] m68k/bitops: Correct
signature of test_bit()" (https://lkml.org/lkml/2017/1/3/505).

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2017-03-27  7:33 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-03-27  3:10 [PATCH] m68k: fix warnings on use of test_bit() Greg Ungerer
2017-03-27  7:33 ` Geert Uytterhoeven

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.