[PATCH net-next] net/mlx5: rsc_dump and hv_vhca return NULL on create error

Tariq Toukan <[email protected]>
Newsgroups org.kernel.vger.linux-rdma,org.kernel.vger.linux-kernel,org.kernel.vger.netdev
Message-ID <[email protected]>
From: Michael Guralnik <[email protected]>

All callers of these create functions treat NULL and ERR_PTR as
equivalent error cases. Align the return convention to NULL-on-failure
to simplify the checks at usage sites.

Since its return value is never checked and failure is non-fatal, change
hv_vhca init function to return void.

Signed-off-by: Michael Guralnik <[email protected]>
Reviewed-by: Shay Drori <[email protected]>
Signed-off-by: Tariq Toukan <[email protected]>
---
 .../mellanox/mlx5/core/diag/rsc_dump.c        | 12 +++++-----
 .../ethernet/mellanox/mlx5/core/en/health.c   |  2 +-
 .../ethernet/mellanox/mlx5/core/lib/hv_vhca.c | 22 +++++++++----------
 .../ethernet/mellanox/mlx5/core/lib/hv_vhca.h |  6 ++---
 4 files changed, 20 insertions(+), 22 deletions(-)

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/diag/rsc_dump.c b/drivers/net/ethernet/mellanox/mlx5/core/diag/rsc_dump.c
index e770088de129..8044419fb5eb 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/diag/rsc_dump.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/diag/rsc_dump.c
@@ -130,7 +130,7 @@ struct mlx5_rsc_dump_cmd *mlx5_rsc_dump_cmd_create(struct mlx5_core_dev *dev,
 	struct mlx5_rsc_dump_cmd *cmd;
 	int sgmt_type;
 
-	if (IS_ERR_OR_NULL(dev->rsc_dump))
+	if (!dev->rsc_dump)
 		return ERR_PTR(-EOPNOTSUPP);
 
 	sgmt_type = dev->rsc_dump->fw_segment_type[key->rsc];
@@ -165,7 +165,7 @@ int mlx5_rsc_dump_next(struct mlx5_core_dev *dev, struct mlx5_rsc_dump_cmd *cmd,
 	bool more_dump;
 	int err;
 
-	if (IS_ERR_OR_NULL(dev->rsc_dump))
+	if (!dev->rsc_dump)
 		return -EOPNOTSUPP;
 
 	err = mlx5_rsc_dump_trigger(dev, cmd, page);
@@ -257,14 +257,14 @@ struct mlx5_rsc_dump *mlx5_rsc_dump_create(struct mlx5_core_dev *dev)
 	}
 	rsc_dump = kzalloc_obj(*rsc_dump);
 	if (!rsc_dump)
-		return ERR_PTR(-ENOMEM);
+		return NULL;
 
 	return rsc_dump;
 }
 
 void mlx5_rsc_dump_destroy(struct mlx5_core_dev *dev)
 {
-	if (IS_ERR_OR_NULL(dev->rsc_dump))
+	if (!dev->rsc_dump)
 		return;
 	kfree(dev->rsc_dump);
 }
@@ -274,7 +274,7 @@ int mlx5_rsc_dump_init(struct mlx5_core_dev *dev)
 	struct mlx5_rsc_dump *rsc_dump = dev->rsc_dump;
 	int err;
 
-	if (IS_ERR_OR_NULL(dev->rsc_dump))
+	if (!dev->rsc_dump)
 		return 0;
 
 	err = mlx5_core_alloc_pd(dev, &rsc_dump->pdn);
@@ -303,7 +303,7 @@ int mlx5_rsc_dump_init(struct mlx5_core_dev *dev)
 
 void mlx5_rsc_dump_cleanup(struct mlx5_core_dev *dev)
 {
-	if (IS_ERR_OR_NULL(dev->rsc_dump))
+	if (!dev->rsc_dump)
 		return;
 
 	mlx5_core_destroy_mkey(dev, dev->rsc_dump->mkey);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/health.c b/drivers/net/ethernet/mellanox/mlx5/core/en/health.c
index cb972b2d46e2..45574f8b10eb 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/health.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/health.c
@@ -186,7 +186,7 @@ int mlx5e_health_rsc_fmsg_dump(struct mlx5e_priv *priv, struct mlx5_rsc_key *key
 	struct page *page;
 	int size;
 
-	if (IS_ERR_OR_NULL(mdev->rsc_dump))
+	if (!mdev->rsc_dump)
 		return -EOPNOTSUPP;
 
 	page = alloc_page(GFP_KERNEL);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c
index 305752dab7bd..4c4cf6da519f 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c
@@ -44,12 +44,12 @@ struct mlx5_hv_vhca *mlx5_hv_vhca_create(struct mlx5_core_dev *dev)
 
 	hv_vhca = kzalloc_obj(*hv_vhca);
 	if (!hv_vhca)
-		return ERR_PTR(-ENOMEM);
+		return NULL;
 
 	hv_vhca->work_queue = create_singlethread_workqueue("mlx5_hv_vhca");
 	if (!hv_vhca->work_queue) {
 		kfree(hv_vhca);
-		return ERR_PTR(-ENOMEM);
+		return NULL;
 	}
 
 	hv_vhca->dev = dev;
@@ -60,7 +60,7 @@ struct mlx5_hv_vhca *mlx5_hv_vhca_create(struct mlx5_core_dev *dev)
 
 void mlx5_hv_vhca_destroy(struct mlx5_hv_vhca *hv_vhca)
 {
-	if (IS_ERR_OR_NULL(hv_vhca))
+	if (!hv_vhca)
 		return;
 
 	destroy_workqueue(hv_vhca->work_queue);
@@ -198,28 +198,26 @@ static void mlx5_hv_vhca_control_agent_destroy(struct mlx5_hv_vhca_agent *agent)
 	mlx5_hv_vhca_agent_destroy(agent);
 }
 
-int mlx5_hv_vhca_init(struct mlx5_hv_vhca *hv_vhca)
+void mlx5_hv_vhca_init(struct mlx5_hv_vhca *hv_vhca)
 {
 	struct mlx5_hv_vhca_agent *agent;
 	int err;
 
-	if (IS_ERR_OR_NULL(hv_vhca))
-		return IS_ERR_OR_NULL(hv_vhca);
+	if (!hv_vhca)
+		return;
 
 	err = mlx5_hv_register_invalidate(hv_vhca->dev, hv_vhca,
 					  mlx5_hv_vhca_invalidate);
 	if (err)
-		return err;
+		return;
 
 	agent = mlx5_hv_vhca_control_agent_create(hv_vhca);
 	if (IS_ERR_OR_NULL(agent)) {
 		mlx5_hv_unregister_invalidate(hv_vhca->dev);
-		return IS_ERR_OR_NULL(agent);
+		return;
 	}
 
 	hv_vhca->agents[MLX5_HV_VHCA_AGENT_CONTROL] = agent;
-
-	return 0;
 }
 
 void mlx5_hv_vhca_cleanup(struct mlx5_hv_vhca *hv_vhca)
@@ -227,7 +225,7 @@ void mlx5_hv_vhca_cleanup(struct mlx5_hv_vhca *hv_vhca)
 	struct mlx5_hv_vhca_agent *agent;
 	int i;
 
-	if (IS_ERR_OR_NULL(hv_vhca))
+	if (!hv_vhca)
 		return;
 
 	agent = hv_vhca->agents[MLX5_HV_VHCA_AGENT_CONTROL];
@@ -261,7 +259,7 @@ mlx5_hv_vhca_agent_create(struct mlx5_hv_vhca *hv_vhca,
 {
 	struct mlx5_hv_vhca_agent *agent;
 
-	if (IS_ERR_OR_NULL(hv_vhca))
+	if (!hv_vhca)
 		return ERR_PTR(-ENOMEM);
 
 	if (type >= MLX5_HV_VHCA_AGENT_MAX)
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.h b/drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.h
index 8b3974cf0ee4..393dc5b62a17 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.h
+++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.h
@@ -31,7 +31,7 @@ struct mlx5_hv_vhca_control_block {
 
 struct mlx5_hv_vhca *mlx5_hv_vhca_create(struct mlx5_core_dev *dev);
 void mlx5_hv_vhca_destroy(struct mlx5_hv_vhca *hv_vhca);
-int mlx5_hv_vhca_init(struct mlx5_hv_vhca *hv_vhca);
+void mlx5_hv_vhca_init(struct mlx5_hv_vhca *hv_vhca);
 void mlx5_hv_vhca_cleanup(struct mlx5_hv_vhca *hv_vhca);
 void mlx5_hv_vhca_invalidate(void *context, u64 block_mask);
 
@@ -63,9 +63,9 @@ static inline void mlx5_hv_vhca_destroy(struct mlx5_hv_vhca *hv_vhca)
 {
 }
 
-static inline int mlx5_hv_vhca_init(struct mlx5_hv_vhca *hv_vhca)
+static inline void mlx5_hv_vhca_init(struct mlx5_hv_vhca *hv_vhca)
 {
-	return 0;
+	return;
 }
 
 static inline void mlx5_hv_vhca_cleanup(struct mlx5_hv_vhca *hv_vhca)

base-commit: d67e5dbda22604d0fcde32fce58c65f88676e676
-- 
2.44.0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.