* [PATCH net-next] net/mlx5: rsc_dump and hv_vhca return NULL on create error
@ 2026-08-11 6:16 Tariq Toukan
2026-08-13 9:26 ` Simon Horman
2026-08-13 11:40 ` patchwork-bot+netdevbpf
0 siblings, 2 replies; 4+ messages in thread
From: Tariq Toukan @ 2026-08-11 6:16 UTC (permalink / raw)
To: Andrew Lunn, David S. Miller, Eric Dumazet, Jakub Kicinski,
netdev, Paolo Abeni
Cc: Eran Ben Elisha, Feng Liu, Gal Pressman, Kees Cook,
Leon Romanovsky, linux-kernel, linux-rdma, Mark Bloch,
Michael Guralnik, Saeed Mahameed, Shay Drori, Tariq Toukan
From: Michael Guralnik <michaelgur@nvidia.com>
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 <michaelgur@nvidia.com>
Reviewed-by: Shay Drori <shayd@nvidia.com>
Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
---
.../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
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH net-next] net/mlx5: rsc_dump and hv_vhca return NULL on create error
2026-08-11 6:16 [PATCH net-next] net/mlx5: rsc_dump and hv_vhca return NULL on create error Tariq Toukan
@ 2026-08-13 9:26 ` Simon Horman
2026-08-13 11:33 ` Paolo Abeni
2026-08-13 11:40 ` patchwork-bot+netdevbpf
1 sibling, 1 reply; 4+ messages in thread
From: Simon Horman @ 2026-08-13 9:26 UTC (permalink / raw)
To: Tariq Toukan
Cc: Andrew Lunn, David S. Miller, Eric Dumazet, Jakub Kicinski,
netdev, Paolo Abeni, Eran Ben Elisha, Feng Liu, Gal Pressman,
Kees Cook, Leon Romanovsky, linux-kernel, linux-rdma, Mark Bloch,
Michael Guralnik, Saeed Mahameed, Shay Drori
On Tue, Aug 11, 2026 at 09:16:37AM +0300, Tariq Toukan wrote:
> From: Michael Guralnik <michaelgur@nvidia.com>
>
> 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 <michaelgur@nvidia.com>
> Reviewed-by: Shay Drori <shayd@nvidia.com>
> Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
...
> diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.h b/drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.h
> @@ -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;
> }
The AI-generated review on netdev-ai [1] points out that the
return; line is unnecessary and inconsistent with surrounding code.
[1] https://netdev-ai.bots.linux.dev/sashiko/#/patchset/20260811061637.3195320-1-tariqt%40nvidia.com
But that not withstanding this looks good to me.
Reviewed-by: Simon Horman <horms@kernel.org>
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH net-next] net/mlx5: rsc_dump and hv_vhca return NULL on create error
2026-08-13 9:26 ` Simon Horman
@ 2026-08-13 11:33 ` Paolo Abeni
0 siblings, 0 replies; 4+ messages in thread
From: Paolo Abeni @ 2026-08-13 11:33 UTC (permalink / raw)
To: Simon Horman, Tariq Toukan
Cc: Andrew Lunn, David S. Miller, Eric Dumazet, Jakub Kicinski,
netdev, Eran Ben Elisha, Feng Liu, Gal Pressman, Kees Cook,
Leon Romanovsky, linux-kernel, linux-rdma, Mark Bloch,
Michael Guralnik, Saeed Mahameed, Shay Drori
On 8/13/26 11:26 AM, Simon Horman wrote:
>> @@ -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;
>> }
>
> The AI-generated review on netdev-ai [1] points out that the
> return; line is unnecessary and inconsistent with surrounding code.
I'll remove the line when I'll apply the patch
/P
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH net-next] net/mlx5: rsc_dump and hv_vhca return NULL on create error
2026-08-11 6:16 [PATCH net-next] net/mlx5: rsc_dump and hv_vhca return NULL on create error Tariq Toukan
2026-08-13 9:26 ` Simon Horman
@ 2026-08-13 11:40 ` patchwork-bot+netdevbpf
1 sibling, 0 replies; 4+ messages in thread
From: patchwork-bot+netdevbpf @ 2026-08-13 11:40 UTC (permalink / raw)
To: Tariq Toukan
Cc: andrew+netdev, davem, edumazet, kuba, netdev, pabeni, eranbe,
feliu, gal, kees, leon, linux-kernel, linux-rdma, mbloch,
michaelgur, saeedm, shayd
Hello:
This patch was applied to netdev/net-next.git (main)
by Paolo Abeni <pabeni@redhat.com>:
On Tue, 11 Aug 2026 09:16:37 +0300 you wrote:
> From: Michael Guralnik <michaelgur@nvidia.com>
>
> 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.
>
> [...]
Here is the summary with links:
- [net-next] net/mlx5: rsc_dump and hv_vhca return NULL on create error
https://git.kernel.org/netdev/net-next/c/03a105c83243
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-08-13 11:41 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-11 6:16 [PATCH net-next] net/mlx5: rsc_dump and hv_vhca return NULL on create error Tariq Toukan
2026-08-13 9:26 ` Simon Horman
2026-08-13 11:33 ` Paolo Abeni
2026-08-13 11:40 ` patchwork-bot+netdevbpf
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox