summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOri Kam <orika@mellanox.com>2019-05-07 13:41:34 +0000
committerFerruh Yigit <ferruh.yigit@intel.com>2019-05-08 17:29:31 +0200
commit617ecc900087868adca9bccd148e7446aabf5743 (patch)
tree7d25d28e54cd7b986a4a94c46a69bdf6320c41e9
parent10cfa5f2d4affef0561e5245aad4bc69b29cd671 (diff)
downloaddpdk-617ecc900087868adca9bccd148e7446aabf5743.zip
dpdk-617ecc900087868adca9bccd148e7446aabf5743.tar.gz
dpdk-617ecc900087868adca9bccd148e7446aabf5743.tar.xz
net/mlx5: fix errno for unsupported Direct Rules
When Direct Rules API is not supported we don't set the errno. This results in failing the function but with errno equals to zero. The result of this is that a function that failed, is considered as a function that worked correctly. This commit fixes this issue by setting the errno to ENOTSUP and returning this error when error value should be returned. Since RDMA-CORE are returning positive errno we are also returning positive error values. Fixes: 4f84a19779ca ("net/mlx5: add Direct Rules API") Signed-off-by: Ori Kam <orika@mellanox.com> Acked-by: Shahaf Shuler <shahafs@mellanox.com>
-rw-r--r--drivers/net/mlx5/mlx5_glue.c25
1 files changed, 22 insertions, 3 deletions
diff --git a/drivers/net/mlx5/mlx5_glue.c b/drivers/net/mlx5/mlx5_glue.c
index 6172e0d..21cd3bb 100644
--- a/drivers/net/mlx5/mlx5_glue.c
+++ b/drivers/net/mlx5/mlx5_glue.c
@@ -296,6 +296,7 @@ mlx5_glue_create_counters(struct ibv_context *context,
#ifndef HAVE_IBV_DEVICE_COUNTERS_SET_V45
(void)context;
(void)init_attr;
+ errno = ENOTSUP;
return NULL;
#else
return ibv_create_counters(context, init_attr);
@@ -377,6 +378,7 @@ mlx5_glue_dr_create_flow_action_dest_flow_tbl(void *tbl)
return mlx5dv_dr_action_create_dest_table(tbl);
#else
(void)tbl;
+ errno = ENOTSUP;
return NULL;
#endif
}
@@ -389,6 +391,7 @@ mlx5_glue_dr_create_flow_action_dest_vport(void *domain, uint32_t vport)
#else
(void)domain;
(void)vport;
+ errno = ENOTSUP;
return NULL;
#endif
}
@@ -399,6 +402,7 @@ mlx5_glue_dr_create_flow_action_drop(void)
#ifdef HAVE_MLX5DV_DR_ESWITCH
return mlx5dv_dr_action_create_drop();
#else
+ errno = ENOTSUP;
return NULL;
#endif
}
@@ -411,6 +415,7 @@ mlx5_glue_dr_create_flow_tbl(void *domain, uint32_t level)
#else
(void)domain;
(void)level;
+ errno = ENOTSUP;
return NULL;
#endif
}
@@ -422,7 +427,8 @@ mlx5_glue_dr_destroy_flow_tbl(void *tbl)
return mlx5dv_dr_table_destroy(tbl);
#else
(void)tbl;
- return 0;
+ errno = ENOTSUP;
+ return errno;
#endif
}
@@ -435,6 +441,7 @@ mlx5_glue_dr_create_domain(struct ibv_context *ctx,
#else
(void)ctx;
(void)domain;
+ errno = ENOTSUP;
return NULL;
#endif
}
@@ -446,7 +453,8 @@ mlx5_glue_dr_destroy_domain(void *domain)
return mlx5dv_dr_domain_destroy(domain);
#else
(void)domain;
- return 0;
+ errno = ENOTSUP;
+ return errno;
#endif
}
@@ -467,6 +475,7 @@ mlx5_glue_dv_create_wq(struct ibv_context *context,
(void)context;
(void)wq_attr;
(void)mlx5_wq_attr;
+ errno = ENOTSUP;
return NULL;
#else
return mlx5dv_create_wq(context, wq_attr, mlx5_wq_attr);
@@ -504,6 +513,7 @@ mlx5_glue_dv_create_qp(struct ibv_context *context,
(void)context;
(void)qp_init_attr_ex;
(void)dv_qp_init_attr;
+ errno = ENOTSUP;
return NULL;
#endif
}
@@ -527,6 +537,7 @@ mlx5_glue_dv_create_flow_matcher(struct ibv_context *context,
(void)context;
(void)matcher_attr;
(void)tbl;
+ errno = ENOTSUP;
return NULL;
#endif
}
@@ -581,6 +592,7 @@ mlx5_glue_dv_create_flow_action_counter(void *counter_obj, uint32_t offset)
#else
(void)counter_obj;
(void)offset;
+ errno = ENOTSUP;
return NULL;
#endif
}
@@ -603,6 +615,7 @@ mlx5_glue_dv_create_flow_action_dest_ibv_qp(void *qp)
#endif
#else
(void)qp;
+ errno = ENOTSUP;
return NULL;
#endif
}
@@ -641,6 +654,7 @@ mlx5_glue_dv_create_flow_action_modify_header
(void)flags;
(void)actions_sz;
(void)actions;
+ errno = ENOTSUP;
return NULL;
#endif
}
@@ -681,6 +695,7 @@ mlx5_glue_dv_create_flow_action_packet_reformat
(void)flags;
(void)data_sz;
(void)data;
+ errno = ENOTSUP;
return NULL;
#endif
}
@@ -702,6 +717,7 @@ mlx5_glue_dv_create_flow_action_tag(uint32_t tag)
#endif
#endif
(void)tag;
+ errno = ENOTSUP;
return NULL;
}
@@ -726,7 +742,8 @@ mlx5_glue_dv_destroy_flow_matcher(void *matcher)
#endif
#else
(void)matcher;
- return 0;
+ errno = ENOTSUP;
+ return errno;
#endif
}
@@ -740,6 +757,7 @@ mlx5_glue_dv_open_device(struct ibv_device *device)
});
#else
(void)device;
+ errno = ENOTSUP;
return NULL;
#endif
}
@@ -757,6 +775,7 @@ mlx5_glue_devx_obj_create(struct ibv_context *ctx,
(void)inlen;
(void)out;
(void)outlen;
+ errno = ENOTSUP;
return NULL;
#endif
}