From: Hadar Hen Zion <had...@mellanox.com>

Currently we support only one ethtool private flag. Prepare
mlx4_en_set_priv_flags function to support more than one private flag.
Will be used in the next patch to support hardware accelerated 802.1ad
vlan.


Signed-off-by: Hadar Hen Zion <had...@mellanox.com>
Signed-off-by: Amir Vadai <am...@mellanox.com>
---
 drivers/net/ethernet/mellanox/mlx4/en_ethtool.c | 35 ++++++++++++-------------
 1 file changed, 17 insertions(+), 18 deletions(-)

diff --git a/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c 
b/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c
index 99ba1c5..70f6553 100644
--- a/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c
+++ b/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c
@@ -1801,30 +1801,29 @@ static int mlx4_en_set_priv_flags(struct net_device 
*dev, u32 flags)
        bool bf_enabled_old = !!(priv->pflags & MLX4_EN_PRIV_FLAGS_BLUEFLAME);
        int i;
 
-       if (bf_enabled_new == bf_enabled_old)
-               return 0; /* Nothing to do */
+       if (bf_enabled_new != bf_enabled_old) {
+               if (bf_enabled_new) {
+                       bool bf_supported = true;
 
-       if (bf_enabled_new) {
-               bool bf_supported = true;
+                       for (i = 0; i < priv->tx_ring_num; i++)
+                               bf_supported &= priv->tx_ring[i]->bf_alloced;
 
-               for (i = 0; i < priv->tx_ring_num; i++)
-                       bf_supported &= priv->tx_ring[i]->bf_alloced;
+                       if (!bf_supported) {
+                               en_err(priv, "BlueFlame is not supported\n");
+                               return -EINVAL;
+                       }
 
-               if (!bf_supported) {
-                       en_err(priv, "BlueFlame is not supported\n");
-                       return -EINVAL;
+                       priv->pflags |= MLX4_EN_PRIV_FLAGS_BLUEFLAME;
+               } else {
+                       priv->pflags &= ~MLX4_EN_PRIV_FLAGS_BLUEFLAME;
                }
 
-               priv->pflags |= MLX4_EN_PRIV_FLAGS_BLUEFLAME;
-       } else {
-               priv->pflags &= ~MLX4_EN_PRIV_FLAGS_BLUEFLAME;
-       }
-
-       for (i = 0; i < priv->tx_ring_num; i++)
-               priv->tx_ring[i]->bf_enabled = bf_enabled_new;
+               for (i = 0; i < priv->tx_ring_num; i++)
+                       priv->tx_ring[i]->bf_enabled = bf_enabled_new;
 
-       en_info(priv, "BlueFlame %s\n",
-               bf_enabled_new ?  "Enabled" : "Disabled");
+               en_info(priv, "BlueFlame %s\n",
+                       bf_enabled_new ?  "Enabled" : "Disabled");
+       }
 
        return 0;
 }
-- 
2.4.3.413.ga5fe668

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to