From: Vladimir Oltean <olte...@gmail.com> Date: Mon, 3 Jun 2019 02:31:37 +0300
> The hardware values for link speed are held in the sja1105_speed_t enum. > However they do not increase in the order that sja1105_get_speed_cfg was > iterating over them (basically from SJA1105_SPEED_AUTO - 0 - to > SJA1105_SPEED_1000MBPS - 1 - skipping the other two). > > Another bug is that 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 take the simplest approach and remove the sja1105_get_speed_cfg > function and replace it with a simple switch-case statement. > > Fixes: 8aa9ebccae87 ("net: dsa: Introduce driver for NXP SJA1105 5-port L2 > switch") > Signed-off-by: Vladimir Oltean <olte...@gmail.com> > Suggested-by: Andrew Lunn <and...@lunn.ch> Applied.