Message ID | 20141205112025.330971A5D4F@localhost.localdomain (mailing list archive) |
---|---|
State | Rejected |
Delegated to: | Scott Wood |
Headers | show |
On Fri, Dec 05, 2014 at 12:20:25PM +0100, LEROY Christophe wrote: > When size is equal to 1, the test is always true so lets eliminate both 0 and 1 > at first. > > include/asm-generic/termios-base.h: In function 'user_termio_to_kernel_termios': > include/asm-generic/termios-base.h:35:2: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits] > if (get_user(termios->c_line, &termio->c_line) < 0) > ^ > include/asm-generic/termios-base.h: In function 'kernel_termios_to_user_termio': > include/asm-generic/termios-base.h:57:6: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits] > put_user(termios->c_line, &termio->c_line) < 0 || > ^ > > Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr> > --- > arch/powerpc/include/asm/uaccess.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/powerpc/include/asm/uaccess.h b/arch/powerpc/include/asm/uaccess.h > index 9485b43..f3028d2 100644 > --- a/arch/powerpc/include/asm/uaccess.h > +++ b/arch/powerpc/include/asm/uaccess.h > @@ -54,7 +54,7 @@ > > #define __access_ok(addr, size, segment) \ > (((addr) <= (segment).seg) && \ > - (((size) == 0) || (((size) - 1) <= ((segment).seg - (addr))))) > + (((size) <= 1) || (((size) - 1) <= ((segment).seg - (addr))))) Again, I don't think Linux enables this warning. What did you do to produce this? In any case, it's a bad warning that doesn't take macros into account, and the answer is not to make the code less clear by hiding the fact that zero is a special case. -Scott
diff --git a/arch/powerpc/include/asm/uaccess.h b/arch/powerpc/include/asm/uaccess.h index 9485b43..f3028d2 100644 --- a/arch/powerpc/include/asm/uaccess.h +++ b/arch/powerpc/include/asm/uaccess.h @@ -54,7 +54,7 @@ #define __access_ok(addr, size, segment) \ (((addr) <= (segment).seg) && \ - (((size) == 0) || (((size) - 1) <= ((segment).seg - (addr))))) + (((size) <= 1) || (((size) - 1) <= ((segment).seg - (addr))))) #endif
When size is equal to 1, the test is always true so lets eliminate both 0 and 1 at first. include/asm-generic/termios-base.h: In function 'user_termio_to_kernel_termios': include/asm-generic/termios-base.h:35:2: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits] if (get_user(termios->c_line, &termio->c_line) < 0) ^ include/asm-generic/termios-base.h: In function 'kernel_termios_to_user_termio': include/asm-generic/termios-base.h:57:6: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits] put_user(termios->c_line, &termio->c_line) < 0 || ^ Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr> --- arch/powerpc/include/asm/uaccess.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)