Subject: Re: [PATCH net 1/2] net: dsa: sja1105: Force a negative value for enum sja1105_speed_t

From: Andrew Lunn <[email-masked]>
Date: Sat, 1 Jun 2019 18:03:56 +0200

On Sat, Jun 01, 2019 at 01:37:34PM +0300, Vladimir Oltean wrote:
> The code in sja1105_adjust_port_config relies on the fact that an
> invalid link speed is detected by sja1105_get_speed_cfg and returned as
> -EINVAL.  However storing this into an enum that only has positive
> members will cast it into an unsigned value, and it will miss the
> negative check.
> 
> So make the -EINVAL value part of the enum, so that it is stored as a
> signed number and passes the negative check.
> 
> Fixes: 8aa9ebccae87 ("net: dsa: Introduce driver for NXP SJA1105 5-port L2 switch")
> Signed-off-by: Vladimir Oltean <[email-masked]>

Hi Vladimir

It seems like just using a switch statement would be simpler, and more
likely to be correct. And it would avoid adding SJA1105_SPEED_INVALID
= -EINVAL which feels hackish.

  Andrew