net/mlx5: rebuild flows on updating RETA
authorYongseok Koh <yskoh@mellanox.com>
Mon, 20 Mar 2017 23:04:35 +0000 (16:04 -0700)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 4 Apr 2017 17:03:02 +0000 (19:03 +0200)
Currently mlx5_dev_rss_reta_update() just updates tables in the host,
therefore it isn't immediately effective until restarting the device by
calling mlx5_dev_stop()/mlx5_dev_start() to update the changes in the
device side. This patch adds rebuilding the device-specific data
structure and applying it to the device right away.

Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
drivers/net/mlx5/mlx5_rss.c

index 0702f1a..a2dd7d1 100644 (file)
@@ -357,8 +357,11 @@ mlx5_dev_rss_reta_update(struct rte_eth_dev *dev,
        int ret;
        struct priv *priv = dev->data->dev_private;
 
+       mlx5_dev_stop(dev);
        priv_lock(priv);
        ret = priv_dev_rss_reta_update(priv, reta_conf, reta_size);
        priv_unlock(priv);
-       return -ret;
+       if (ret)
+               return -ret;
+       return mlx5_dev_start(dev);
 }