X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fmlx5%2Fmlx5_vlan.c;h=3a07ad1b3fd480cfdd847f14d13cc6710173a645;hb=ecc1c29df8564d4e880e9b5946114763424cf60c;hp=ca8057124ac221d68034f15143e94a21a9cefbd7;hpb=aa7f63ab35ccac3ef696eb289a98fa851eca21fa;p=dpdk.git diff --git a/drivers/net/mlx5/mlx5_vlan.c b/drivers/net/mlx5/mlx5_vlan.c index ca8057124a..3a07ad1b3f 100644 --- a/drivers/net/mlx5/mlx5_vlan.c +++ b/drivers/net/mlx5/mlx5_vlan.c @@ -67,8 +67,6 @@ vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int on) { struct priv *priv = dev->data->dev_private; unsigned int i; - unsigned int r; - struct rxq *rxq; DEBUG("%p: %s VLAN filter ID %" PRIu16, (void *)dev, (on ? "enable" : "disable"), vlan_id); @@ -99,34 +97,9 @@ vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int on) priv->vlan_filter[priv->vlan_filter_n] = vlan_id; ++priv->vlan_filter_n; } - if (!priv->started) - return 0; - /* Rehash MAC flows in all RX queues. */ - if (priv->rss) { - rxq = &priv->rxq_parent; - r = 1; - } else { - rxq = (*priv->rxqs)[0]; - r = priv->rxqs_n; - } - for (i = 0; (i < r); rxq = (*priv->rxqs)[++i]) { - int ret; - - if (rxq == NULL) - continue; - rxq_mac_addrs_del(rxq); - ret = rxq_mac_addrs_add(rxq); - if (!ret) - continue; - /* Rollback. */ - while (i != 0) { - rxq = (*priv->rxqs)[--i]; - if (rxq != NULL) - rxq_mac_addrs_del(rxq); - } - return ret; - } - return 0; + /* Rehash MAC flows in all hash RX queues. */ + priv_mac_addrs_disable(priv); + return priv_mac_addrs_enable(priv); } /**