2015-04-07 08:08:19

by Christophe Leroy

[permalink] [raw]
Subject: Re: powerpc32: fix warning from include/linux/mm.h


Le 21/03/2015 00:52, Scott Wood a ?crit :
> On Fri, Dec 05, 2014 at 12:20:20PM +0100, LEROY Christophe wrote:
>> include/linux/mm.h: In function 'is_vmalloc_addr':
>> include/linux/mm.h:367:14: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
>> return addr >= VMALLOC_START && addr < VMALLOC_END;
>> ^
>>
>> Signed-off-by: Christophe Leroy <[email protected]>
>> ---
>> arch/powerpc/include/asm/pgtable-ppc32.h | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
> That warning doesn't appear to be enabled. What config are you seeing
> this with?
I'm used to adding EXTRA_CFLAGS=-Wextra when checking my own drivers,
as it helps finding additional bugs.

When doing that, the only warnings I get outside of my own code are this
one, and the other one in my proposed patch identified "powerpc32: fix
warning from include/asm-generic/termios-base.h"

I though it would be worth fixing those two warnings in order to get a
perfectly clean code.

Christophe


2015-04-07 21:20:05

by Scott Wood

[permalink] [raw]
Subject: Re: powerpc32: fix warning from include/linux/mm.h

On Tue, 2015-04-07 at 10:07 +0200, leroy christophe wrote:
> Le 21/03/2015 00:52, Scott Wood a écrit :
> > On Fri, Dec 05, 2014 at 12:20:20PM +0100, LEROY Christophe wrote:
> >> include/linux/mm.h: In function 'is_vmalloc_addr':
> >> include/linux/mm.h:367:14: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
> >> return addr >= VMALLOC_START && addr < VMALLOC_END;
> >> ^
> >>
> >> Signed-off-by: Christophe Leroy <[email protected]>
> >> ---
> >> arch/powerpc/include/asm/pgtable-ppc32.h | 2 +-
> >> 1 file changed, 1 insertion(+), 1 deletion(-)
> > That warning doesn't appear to be enabled. What config are you seeing
> > this with?
> I'm used to adding EXTRA_CFLAGS=-Wextra when checking my own drivers,
> as it helps finding additional bugs.

It also produces a lot of noise, which is why Linux doesn't enable it.
E.g. it enables useless "unused parameter" warnings all over the place.

> When doing that, the only warnings I get outside of my own code are this
> one, and the other one in my proposed patch identified "powerpc32: fix
> warning from include/asm-generic/termios-base.h"
>
> I though it would be worth fixing those two warnings in order to get a
> perfectly clean code.

In general I don't think we should clutter up the code with suppression
for warnings we don't enable, but in this case we do end up with a value
that would be negative if considered as signed. Instead of changing
VMALLOC_OFFSET, though, I'd address it where the problem is actually
introduced -- which is casting high_memory to (long) rather than
(unsigned long) or (uintptr_t).

-Scott