net: dsa: qca8k: Fix port enable for CPU port
authorAndrew Lunn <andrew@lunn.ch>
Wed, 25 Sep 2019 00:47:07 +0000 (02:47 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 27 Sep 2019 08:30:58 +0000 (10:30 +0200)
The CPU port does not have a PHY connected to it. So calling
phy_support_asym_pause() results in an Opps. As with other DSA
drivers, add a guard that the port is a user port.

Reported-by: Michal Vokáč <michal.vokac@ysoft.com>
Fixes: 0394a63acfe2 ("net: dsa: enable and disable all ports")
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Tested-by: Michal Vokáč <michal.vokac@ysoft.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/qca8k.c

index 16f15c93a102c9b66d76c22ae0e8e310a6b6edf5..684aa51684dbd09cfa209afb3dbbb4b074087b60 100644 (file)
@@ -936,6 +936,9 @@ qca8k_port_enable(struct dsa_switch *ds, int port,
 {
        struct qca8k_priv *priv = (struct qca8k_priv *)ds->priv;
 
+       if (!dsa_is_user_port(ds, port))
+               return 0;
+
        qca8k_port_set_status(priv, port, 1);
        priv->port_sts[port].enabled = 1;