Subject: Re: tg3: Use *_UNKNOWN ethtool definitions

From: "Matt Carlson" <[email-masked]>
Date: Fri, 17 Feb 2012 16:54:45 -0800

On Fri, Feb 17, 2012 at 09:48:30AM +0300, Dan Carpenter wrote:
> Hello Matt Carlson,
> 
> The patch e740522e6d3a: "tg3: Use *_UNKNOWN ethtool definitions" from 
> Feb 13, 2012, leads to the following Smatch warning:
> drivers/net/ethernet/broadcom/tg3.c:1822 tg3_adjust_link()
> 	 error: tp->link_config.active_speed is never equal to -1 (wrong type 0 - 65535).
> 
> -       if ((phydev->link && tp->link_config.active_speed == SPEED_INVALID) ||
> -           (!phydev->link && tp->link_config.active_speed != SPEED_INVALID) ||
> +       if ((phydev->link && tp->link_config.active_speed == SPEED_UNKNOWN) ||
> +           (!phydev->link && tp->link_config.active_speed != SPEED_UNKNOWN) ||
> 
> Since tp->link_config.active_speed is an unsigned short, it never is
> equal to SPEED_UNKNOWN (-1).
> 
> I introduced the SPEED_UNKNOWN so I feel bad that it's causing trouble
> now.  :/
> 
> Also this warning:
> drivers/net/ethernet/broadcom/tg3.c:3909 tg3_phy_copper_begin(14)
> error: tp->link_config.speed is never equal to -1 (wrong type 0 - 65535).

Do you have any problems with changing SPEED_UNKNOWN from -1 to 0xffff?