diff options
Diffstat (limited to 'drivers/net/ethernet/mellanox/mlx4/en_netdev.c')
| -rw-r--r-- | drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 22 | 
1 files changed, 11 insertions, 11 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c index 995d4b6d5c1..f278b10ef71 100644 --- a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c +++ b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c @@ -1637,6 +1637,17 @@ void mlx4_en_stop_port(struct net_device *dev, int detach)  	/* Flush multicast filter */  	mlx4_SET_MCAST_FLTR(mdev->dev, priv->port, 0, 1, MLX4_MCAST_CONFIG); +	/* Remove flow steering rules for the port*/ +	if (mdev->dev->caps.steering_mode == +	    MLX4_STEERING_MODE_DEVICE_MANAGED) { +		ASSERT_RTNL(); +		list_for_each_entry_safe(flow, tmp_flow, +					 &priv->ethtool_list, list) { +			mlx4_flow_detach(mdev->dev, flow->id); +			list_del(&flow->list); +		} +	} +  	mlx4_en_destroy_drop_qp(priv);  	/* Free TX Rings */ @@ -1657,17 +1668,6 @@ void mlx4_en_stop_port(struct net_device *dev, int detach)  	if (!(mdev->dev->caps.flags2 & MLX4_DEV_CAP_FLAGS2_REASSIGN_MAC_EN))  		mdev->mac_removed[priv->port] = 1; -	/* Remove flow steering rules for the port*/ -	if (mdev->dev->caps.steering_mode == -	    MLX4_STEERING_MODE_DEVICE_MANAGED) { -		ASSERT_RTNL(); -		list_for_each_entry_safe(flow, tmp_flow, -					 &priv->ethtool_list, list) { -			mlx4_flow_detach(mdev->dev, flow->id); -			list_del(&flow->list); -		} -	} -  	/* Free RX Rings */  	for (i = 0; i < priv->rx_ring_num; i++) {  		mlx4_en_deactivate_rx_ring(priv, &priv->rx_ring[i]);  |