diff mbox series

[net] net: dsa: bcm_sf2: Qualify phydev->dev_flags based on port

Message ID 20210310221758.2969808-1-f.fainelli@gmail.com (mailing list archive)
State Accepted
Delegated to: Netdev Maintainers
Headers show
Series [net] net: dsa: bcm_sf2: Qualify phydev->dev_flags based on port | expand

Checks

Context Check Description
netdev/apply success Patch already applied to net
netdev/tree_selection success Clearly marked for net

Commit Message

Florian Fainelli March 10, 2021, 10:17 p.m. UTC
Similar to commit 92696286f3bb37ba50e4bd8d1beb24afb759a799 ("net:
bcmgenet: Set phydev->dev_flags only for internal PHYs") we need to
qualify the phydev->dev_flags based on whether the port is connected to
an internal or external PHY otherwise we risk having a flags collision
with a completely different interpretation depending on the driver.

Fixes: aa9aef77c761 ("net: dsa: bcm_sf2: communicate integrated PHY revision to PHY driver")
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
---
 drivers/net/dsa/bcm_sf2.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Comments

Vladimir Oltean March 11, 2021, 12:36 a.m. UTC | #1
On Wed, Mar 10, 2021 at 02:17:58PM -0800, Florian Fainelli wrote:
> Similar to commit 92696286f3bb37ba50e4bd8d1beb24afb759a799 ("net:
> bcmgenet: Set phydev->dev_flags only for internal PHYs") we need to
> qualify the phydev->dev_flags based on whether the port is connected to
> an internal or external PHY otherwise we risk having a flags collision
> with a completely different interpretation depending on the driver.
> 
> Fixes: aa9aef77c761 ("net: dsa: bcm_sf2: communicate integrated PHY revision to PHY driver")
> Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
> ---
>  drivers/net/dsa/bcm_sf2.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/dsa/bcm_sf2.c b/drivers/net/dsa/bcm_sf2.c
> index 1277e5f48b7f..321924a241f8 100644
> --- a/drivers/net/dsa/bcm_sf2.c
> +++ b/drivers/net/dsa/bcm_sf2.c
> @@ -643,7 +643,10 @@ static u32 bcm_sf2_sw_get_phy_flags(struct dsa_switch *ds, int port)
>  	 * in bits 15:8 and the patch level in bits 7:0 which is exactly what
>  	 * the REG_PHY_REVISION register layout is.
>  	 */
> -	return priv->hw_params.gphy_rev;
> +	if (priv->int_phy_mask & BIT(port))
> +		return priv->hw_params.gphy_rev;
> +	else
> +		return 0;
>  }
>  
>  static void bcm_sf2_sw_validate(struct dsa_switch *ds, int port,
> -- 
> 2.25.1
> 

Checkpatch probably tells you that "else" statements are not useful
after "return", but either way, this is good.

Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
diff mbox series

Patch

diff --git a/drivers/net/dsa/bcm_sf2.c b/drivers/net/dsa/bcm_sf2.c
index 1277e5f48b7f..321924a241f8 100644
--- a/drivers/net/dsa/bcm_sf2.c
+++ b/drivers/net/dsa/bcm_sf2.c
@@ -643,7 +643,10 @@  static u32 bcm_sf2_sw_get_phy_flags(struct dsa_switch *ds, int port)
 	 * in bits 15:8 and the patch level in bits 7:0 which is exactly what
 	 * the REG_PHY_REVISION register layout is.
 	 */
-	return priv->hw_params.gphy_rev;
+	if (priv->int_phy_mask & BIT(port))
+		return priv->hw_params.gphy_rev;
+	else
+		return 0;
 }
 
 static void bcm_sf2_sw_validate(struct dsa_switch *ds, int port,