net/mlx5: add warning message for Direct Verbs flow
authorYongseok Koh <yskoh@mellanox.com>
Tue, 23 Oct 2018 16:52:09 +0000 (16:52 +0000)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 26 Oct 2018 20:14:06 +0000 (22:14 +0200)
In case that the library doesn't support DV flow, if enabled by
'dv_flow_en=1', print out a warning message and disable it.

Fixes: 51e72d386c99 ("net/mlx5: add runtime parameter to enable Direct Verbs")

Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
Acked-by: Ori Kam <orika@mellanox.com>
drivers/net/mlx5/mlx5.c
drivers/net/mlx5/mlx5_flow.c

index d29c195..410c0c3 100644 (file)
@@ -1009,6 +1009,12 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev,
 #if !defined(HAVE_IBV_DEVICE_COUNTERS_SET_V42) && \
        !defined(HAVE_IBV_DEVICE_COUNTERS_SET_V45)
        DRV_LOG(DEBUG, "counters are not supported");
+#endif
+#ifndef HAVE_IBV_FLOW_DV_SUPPORT
+       if (config.dv_flow_en) {
+               DRV_LOG(WARNING, "DV flow is not supported");
+               config.dv_flow_en = 0;
+       }
 #endif
        config.ind_table_max_size =
                attr.rss_caps.max_rwq_indirection_table_size;
index 7cea631..106c55d 100644 (file)
@@ -1679,25 +1679,19 @@ const struct mlx5_flow_driver_ops mlx5_flow_null_drv_ops = {
  *   Pointer to the flow attributes.
  *
  * @return
- *   flow driver type if supported, MLX5_FLOW_TYPE_MAX otherwise.
+ *   flow driver type, MLX5_FLOW_TYPE_MAX otherwise.
  */
 static enum mlx5_flow_drv_type
-flow_get_drv_type(struct rte_eth_dev *dev __rte_unused,
-                 const struct rte_flow_attr *attr)
+flow_get_drv_type(struct rte_eth_dev *dev, const struct rte_flow_attr *attr)
 {
-       struct priv *priv __rte_unused = dev->data->dev_private;
+       struct priv *priv = dev->data->dev_private;
        enum mlx5_flow_drv_type type = MLX5_FLOW_TYPE_MAX;
 
-       if (attr->transfer) {
+       if (attr->transfer)
                type = MLX5_FLOW_TYPE_TCF;
-       } else {
-#ifdef HAVE_IBV_FLOW_DV_SUPPORT
-               type = priv->config.dv_flow_en ?  MLX5_FLOW_TYPE_DV :
-                                                 MLX5_FLOW_TYPE_VERBS;
-#else
-               type = MLX5_FLOW_TYPE_VERBS;
-#endif
-       }
+       else
+               type = priv->config.dv_flow_en ? MLX5_FLOW_TYPE_DV :
+                                                MLX5_FLOW_TYPE_VERBS;
        return type;
 }