Use one code block when returning because the interface type is unsupported and also check if some unsupported port gets configured. In addition fix a double the and use dsa_is_cpu_port() instated of manually getting the CPU port. Signed-off-by: Hauke Mehrtens <hauke@xxxxxxxxxx> --- drivers/net/dsa/lantiq_gswip.c | 38 ++++++++++++++++++-------------------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/drivers/net/dsa/lantiq_gswip.c b/drivers/net/dsa/lantiq_gswip.c index 9c28d0b2fcdb..4e3732b5790f 100644 --- a/drivers/net/dsa/lantiq_gswip.c +++ b/drivers/net/dsa/lantiq_gswip.c @@ -615,32 +615,24 @@ static void gswip_phylink_validate(struct dsa_switch *ds, int port, if (!phy_interface_mode_is_rgmii(state->interface) && state->interface != PHY_INTERFACE_MODE_MII && state->interface != PHY_INTERFACE_MODE_REVMII && - state->interface != PHY_INTERFACE_MODE_RMII) { - bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS); - dev_err(ds->dev, - "Unsupported interface: %d\n", state->interface); - return; - } + state->interface != PHY_INTERFACE_MODE_RMII) + goto unsupported; break; case 2: case 3: case 4: - if (state->interface != PHY_INTERFACE_MODE_INTERNAL) { - bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS); - dev_err(ds->dev, - "Unsupported interface: %d\n", state->interface); - return; - } + if (state->interface != PHY_INTERFACE_MODE_INTERNAL) + goto unsupported; break; case 5: if (!phy_interface_mode_is_rgmii(state->interface) && - state->interface != PHY_INTERFACE_MODE_INTERNAL) { - bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS); - dev_err(ds->dev, - "Unsupported interface: %d\n", state->interface); - return; - } + state->interface != PHY_INTERFACE_MODE_INTERNAL) + goto unsupported; break; + default: + bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS); + dev_err(ds->dev, "Unsupported port: %i\n", port); + return; } /* Allow all the expected bits */ @@ -667,6 +659,12 @@ static void gswip_phylink_validate(struct dsa_switch *ds, int port, __ETHTOOL_LINK_MODE_MASK_NBITS); bitmap_and(state->advertising, state->advertising, mask, __ETHTOOL_LINK_MODE_MASK_NBITS); + return; + +unsupported: + bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS); + dev_err(ds->dev, "Unsupported interface: %d\n", state->interface); + return; } static void gswip_phylink_mac_config(struct dsa_switch *ds, int port, @@ -970,7 +968,7 @@ static int gswip_gphy_fw_list(struct gswip_priv *priv, int err; int i = 0; - /* The The VRX200 rev 1.1 uses the GSWIP 2.0 and needs the older + /* The VRX200 rev 1.1 uses the GSWIP 2.0 and needs the older * GPHY firmware. The VRX200 rev 1.2 uses the GSWIP 2.1 and also * needs a different GPHY firmware. */ @@ -1097,7 +1095,7 @@ static int gswip_probe(struct platform_device *pdev) dev_err(dev, "dsa switch register failed: %i\n", err); goto mdio_bus; } - if (priv->ds->dst->cpu_dp->index != priv->hw_info->cpu_port) { + if (!dsa_is_cpu_port(priv->ds, priv->hw_info->cpu_port)) { dev_err(dev, "wrong CPU port defined, HW only supports port: %i", priv->hw_info->cpu_port); err = -EINVAL; -- 2.11.0