net: dsa: qca8k: do not cache unneeded EEE fields
authorVivien Didelot <vivien.didelot@savoirfairelinux.com>
Tue, 1 Aug 2017 20:32:34 +0000 (16:32 -0400)
committerDavid S. Miller <davem@davemloft.net>
Wed, 2 Aug 2017 03:09:09 +0000 (20:09 -0700)
The qca8k driver is currently caching a bitfield of the supported member
of a ethtool_eee private structure, which is unused.

Only the eee_enabled field of the private ethtool_eee copy is updated,
thus using p->advertised and p->lp_advertised is also erroneous.

Remove the usage of these private ethtool_eee members and only rely on
phy_ethtool_get_eee to assign the eee_active member.

Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/qca8k.c

index 9d6b5d2f7a4aa03157b0ad6f2d8a14d62a733b0d..c316c55aabc6abe48c15e0eb1db0e36e7bf1c5a5 100644 (file)
@@ -658,12 +658,8 @@ static int
 qca8k_eee_init(struct dsa_switch *ds, int port,
               struct phy_device *phy)
 {
-       struct qca8k_priv *priv = (struct qca8k_priv *)ds->priv;
-       struct ethtool_eee *p = &priv->port_sts[port].eee;
        int ret;
 
-       p->supported = (SUPPORTED_1000baseT_Full | SUPPORTED_100baseT_Full);
-
        ret = phy_init_eee(phy, 0);
        if (ret)
                return 0;
@@ -705,12 +701,7 @@ qca8k_get_eee(struct dsa_switch *ds, int port,
        int ret;
 
        ret = phy_ethtool_get_eee(netdev->phydev, p);
-       if (!ret)
-               e->eee_active =
-                       !!(p->supported & p->advertised & p->lp_advertised);
-       else
-               e->eee_active = 0;
-
+       e->eee_active = p->eee_active;
        e->eee_enabled = p->eee_enabled;
 
        return ret;