]> git.itanic.dy.fi Git - linux-stable/blobdiff - drivers/net/ethernet/freescale/enetc/enetc_pf.c
net: enetc: move enetc_set_psfp() out of the common enetc_set_features()
[linux-stable] / drivers / net / ethernet / freescale / enetc / enetc_pf.c
index c4a0e836d4f098231249c18d6b06dbde73490a34..201b5f3f634eb24e1a7eb63453d36f388ea6749e 100644 (file)
@@ -709,6 +709,13 @@ static int enetc_pf_set_features(struct net_device *ndev,
 {
        netdev_features_t changed = ndev->features ^ features;
        struct enetc_ndev_priv *priv = netdev_priv(ndev);
+       int err;
+
+       if (changed & NETIF_F_HW_TC) {
+               err = enetc_set_psfp(ndev, !!(features & NETIF_F_HW_TC));
+               if (err)
+                       return err;
+       }
 
        if (changed & NETIF_F_HW_VLAN_CTAG_FILTER) {
                struct enetc_pf *pf = enetc_si_priv(priv->si);
@@ -722,7 +729,9 @@ static int enetc_pf_set_features(struct net_device *ndev,
        if (changed & NETIF_F_LOOPBACK)
                enetc_set_loopback(ndev, !!(features & NETIF_F_LOOPBACK));
 
-       return enetc_set_features(ndev, features);
+       enetc_set_features(ndev, features);
+
+       return 0;
 }
 
 static const struct net_device_ops enetc_ndev_ops = {