From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?iso-8859-1?Q?N=E9lio?= Laranjeiro Subject: Re: [PATCH 2/2] net/mlx5: fix probe return value polarity Date: Wed, 2 May 2018 08:49:41 +0200 Message-ID: <20180502064941.4vwdku7ellgzq6cx@laranjeiro-vm.dev.6wind.com> References: <20180501111806.112319-1-shahafs@mellanox.com> <20180501111806.112319-2-shahafs@mellanox.com> <246A35AF-2BFD-41C6-BEFC-A93D559FBA88@mellanox.com> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Cc: Shahaf Shuler , Adrien Mazarguil , "dev@dpdk.org" To: Yongseok Koh Return-path: Received: from mail-wm0-f66.google.com (mail-wm0-f66.google.com [74.125.82.66]) by dpdk.org (Postfix) with ESMTP id E8C6FDD2 for ; Wed, 2 May 2018 08:48:36 +0200 (CEST) Received: by mail-wm0-f66.google.com with SMTP id a137so16107795wme.1 for ; Tue, 01 May 2018 23:48:36 -0700 (PDT) Content-Disposition: inline In-Reply-To: <246A35AF-2BFD-41C6-BEFC-A93D559FBA88@mellanox.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On Wed, May 02, 2018 at 01:54:37AM +0000, Yongseok Koh wrote: > > > On May 1, 2018, at 4:18 AM, Shahaf Shuler wrote: > > > > mlx5 prefixed function returns a negative errno value. > > the error handler on mlx5_pci_probe is doing the same. > > > > Fixes: a6d83b6a9209 ("net/mlx5: standardize on negative errno values") > > Cc: nelio.laranjeiro@6wind.com > > > > Signed-off-by: Shahaf Shuler > > --- > > drivers/net/mlx5/mlx5.c | 8 ++++++-- > > 1 file changed, 6 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c > > index 46cb370a29..ab860b5985 100644 > > --- a/drivers/net/mlx5/mlx5.c > > +++ b/drivers/net/mlx5/mlx5.c > > @@ -804,12 +804,16 @@ mlx5_pci_probe(struct rte_pci_driver *pci_drv __rte_unused, > > goto error; > > Shouldn't you do the same for mlx5_uar_init_secondary()? > Looks like a few more. E.g. mlx5_args(), mlx5_get_mtu() and mlx5_uar_init_primary(). > What about ibv_query_port() and mlx5_flow_create_drop_queue()? > > Thanks > > > /* Receive command fd from primary process */ > > err = mlx5_socket_connect(eth_dev); > > - if (err < 0) > > + if (err < 0) { > > + err = -err; > > Instead of changing sign, how about 'err = rte_errno;' ? +1 > However, err looks redundant to me because mlx5_* funcs set rte_errno. Not it is not, rte_errno is the strict equivalent of errno but instead of being global to the process, it is global per logical core, its cannot be determined nor modified at the beginning of the function thus the function must track any failure and report it accordingly. > Here, err is used to set rte_errno at the end. It is just a optimization to avoid a lot of rte_errno sets among the function, it must only be set if err != 0. > Thanks, > Yongseok > > > goto error; > > + } > > /* Remap UAR for Tx queues. */ > > err = mlx5_tx_uar_remap(eth_dev, err); > > - if (err) > > + if (err) { > > + err = -err; > > goto error; > > + } > > /* > > * Ethdev pointer is still required as input since > > * the primary device is not accessible from the > > -- > > 2.12.0 > > Regards, -- Nélio Laranjeiro 6WIND