From patchwork Tue May 7 13:41:34 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ori Kam X-Patchwork-Id: 53308 X-Patchwork-Delegate: shahafs@mellanox.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 534C72BB8; Tue, 7 May 2019 15:42:07 +0200 (CEST) Received: from mellanox.co.il (mail-il-dmz.mellanox.com [193.47.165.129]) by dpdk.org (Postfix) with ESMTP id DAEC028FD for ; Tue, 7 May 2019 15:42:05 +0200 (CEST) Received: from Internal Mail-Server by MTLPINE2 (envelope-from orika@mellanox.com) with ESMTPS (AES256-SHA encrypted); 7 May 2019 16:42:03 +0300 Received: from pegasus03.mtr.labs.mlnx (pegasus03.mtr.labs.mlnx [10.210.16.124]) by labmailer.mlnx (8.13.8/8.13.8) with ESMTP id x47Dg3ZA024000; Tue, 7 May 2019 16:42:03 +0300 From: Ori Kam To: yskoh@mellanox.com, shahafs@mellanox.com, matan@mellanox.com Cc: dev@dpdk.org, orika@mellanox.com Date: Tue, 7 May 2019 13:41:34 +0000 Message-Id: <1557236494-4808-1-git-send-email-orika@mellanox.com> X-Mailer: git-send-email 1.8.3.1 Subject: [dpdk-dev] [PATCH] net/mlx5: fix errno in case of unsupported Direct Rules X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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 --- drivers/net/mlx5/mlx5_glue.c | 25 ++++++++++++++++++++++--- 1 file 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 @@ #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 @@ return mlx5dv_dr_action_create_dest_table(tbl); #else (void)tbl; + errno = ENOTSUP; return NULL; #endif } @@ -389,6 +391,7 @@ #else (void)domain; (void)vport; + errno = ENOTSUP; return NULL; #endif } @@ -399,6 +402,7 @@ #ifdef HAVE_MLX5DV_DR_ESWITCH return mlx5dv_dr_action_create_drop(); #else + errno = ENOTSUP; return NULL; #endif } @@ -411,6 +415,7 @@ #else (void)domain; (void)level; + errno = ENOTSUP; return NULL; #endif } @@ -422,7 +427,8 @@ return mlx5dv_dr_table_destroy(tbl); #else (void)tbl; - return 0; + errno = ENOTSUP; + return errno; #endif } @@ -435,6 +441,7 @@ #else (void)ctx; (void)domain; + errno = ENOTSUP; return NULL; #endif } @@ -446,7 +453,8 @@ return mlx5dv_dr_domain_destroy(domain); #else (void)domain; - return 0; + errno = ENOTSUP; + return errno; #endif } @@ -467,6 +475,7 @@ (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 @@ (void)context; (void)qp_init_attr_ex; (void)dv_qp_init_attr; + errno = ENOTSUP; return NULL; #endif } @@ -527,6 +537,7 @@ (void)context; (void)matcher_attr; (void)tbl; + errno = ENOTSUP; return NULL; #endif } @@ -581,6 +592,7 @@ #else (void)counter_obj; (void)offset; + errno = ENOTSUP; return NULL; #endif } @@ -603,6 +615,7 @@ #endif #else (void)qp; + errno = ENOTSUP; return NULL; #endif } @@ -641,6 +654,7 @@ (void)flags; (void)actions_sz; (void)actions; + errno = ENOTSUP; return NULL; #endif } @@ -681,6 +695,7 @@ (void)flags; (void)data_sz; (void)data; + errno = ENOTSUP; return NULL; #endif } @@ -702,6 +717,7 @@ #endif #endif (void)tag; + errno = ENOTSUP; return NULL; } @@ -726,7 +742,8 @@ #endif #else (void)matcher; - return 0; + errno = ENOTSUP; + return errno; #endif } @@ -740,6 +757,7 @@ }); #else (void)device; + errno = ENOTSUP; return NULL; #endif } @@ -757,6 +775,7 @@ (void)inlen; (void)out; (void)outlen; + errno = ENOTSUP; return NULL; #endif }