Re: [PATCH] fix gcc -W warning in netdevice.h

From: Jesper Juhl
Date: Thu Jun 16 2005 - 14:11:23 EST


On 6/16/05, Mikael Pettersson <mikpe@xxxxxxxxx> wrote:
> Jesper Juhl writes:
> > --- linux-2.6.12-rc6-mm1-orig/include/linux/netdevice.h 2005-06-12 15:58:58.000000000 +0200
> > +++ linux-2.6.12-rc6-mm1/include/linux/netdevice.h 2005-06-16 00:52:14.000000000 +0200
> > @@ -778,7 +778,7 @@ enum {
> > static inline u32 netif_msg_init(int debug_value, int default_msg_enable_bits)
> > {
> > /* use default */
> > - if (debug_value < 0 || debug_value >= (sizeof(u32) * 8))
> > + if (debug_value < 0 || debug_value >= (int)(sizeof(u32) * 8))
> > return default_msg_enable_bits;
>
> I'd change debug_value to unsigned, and drop the "< 0" test and the
> now redundant "(int)" cast. Both cleaner and faster. Win Win :-)

Hmm, yes, even if some caller is currently passing negative values
those values would (when implicitly converted to unsigned) have a
value significantly greater than (sizeof(u32) * 8), so the first if
statement would still be true and the function would then still behave
exactely the same... nice.

Here's a patch.

Signed-off-by: Jesper Juhl <jesper.juhl@xxxxxxxxx>
---

include/linux/netdevice.h | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
--- linux-2.6.12-rc6-mm1-orig/include/linux/netdevice.h 2005-06-12
15:58:58.000000000 +0200
+++ linux-2.6.12-rc6-mm1/include/linux/netdevice.h 2005-06-16
21:08:18.000000000 +0200
@@ -775,10 +775,10 @@ enum {
#define netif_msg_hw(p) ((p)->msg_enable & NETIF_MSG_HW)
#define netif_msg_wol(p) ((p)->msg_enable & NETIF_MSG_WOL)

-static inline u32 netif_msg_init(int debug_value, int default_msg_enable_bits)
+static inline u32 netif_msg_init(unsigned int debug_value, int
default_msg_enable_bits)
{
/* use default */
- if (debug_value < 0 || debug_value >= (sizeof(u32) * 8))
+ if (debug_value >= (sizeof(u32) * 8))
return default_msg_enable_bits;
if (debug_value == 0) /* no output */
return 0;


(patch also attached since gmail tends to mangle inline patches - grrr)

--
Jesper Juhl <jesper.juhl@xxxxxxxxx>
Don't top-post http://www.catb.org/~esr/jargon/html/T/top-post.html
Plain text mails only, please http://www.expita.com/nomime.html
--- linux-2.6.12-rc6-mm1-orig/include/linux/netdevice.h 2005-06-12 15:58:58.000000000 +0200
+++ linux-2.6.12-rc6-mm1/include/linux/netdevice.h 2005-06-16 21:08:18.000000000 +0200
@@ -775,10 +775,10 @@ enum {
#define netif_msg_hw(p) ((p)->msg_enable & NETIF_MSG_HW)
#define netif_msg_wol(p) ((p)->msg_enable & NETIF_MSG_WOL)

-static inline u32 netif_msg_init(int debug_value, int default_msg_enable_bits)
+static inline u32 netif_msg_init(unsigned int debug_value, int default_msg_enable_bits)
{
/* use default */
- if (debug_value < 0 || debug_value >= (sizeof(u32) * 8))
+ if (debug_value >= (sizeof(u32) * 8))
return default_msg_enable_bits;
if (debug_value == 0) /* no output */
return 0;