Thomas Bogendoerfer 14082e
From: Miaoqian Lin <linmq006@gmail.com>
Thomas Bogendoerfer 14082e
Date: Wed, 22 Dec 2021 06:54:53 +0000
Thomas Bogendoerfer 14082e
Subject: net/mlx5: DR, Fix NULL vs IS_ERR checking in dr_domain_init_resources
Thomas Bogendoerfer 14082e
Patch-mainline: v5.16-rc8
Thomas Bogendoerfer 14082e
Git-commit: 6b8b42585886c59a008015083282aae434349094
Thomas Bogendoerfer 14082e
References: bsc#1208845 CVE-2023-23006
Thomas Bogendoerfer 14082e
Thomas Bogendoerfer 14082e
The mlx5_get_uars_page() function  returns error pointers.
Thomas Bogendoerfer 14082e
Using IS_ERR() to check the return value to fix this.
Thomas Bogendoerfer 14082e
Thomas Bogendoerfer 14082e
Fixes: 4ec9e7b02697 ("net/mlx5: DR, Expose steering domain functionality")
Thomas Bogendoerfer 14082e
Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
Thomas Bogendoerfer 14082e
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
Thomas Bogendoerfer 14082e
Acked-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
Thomas Bogendoerfer 14082e
---
Thomas Bogendoerfer 14082e
 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_domain.c |    5 +++--
Thomas Bogendoerfer 14082e
 1 file changed, 3 insertions(+), 2 deletions(-)
Thomas Bogendoerfer 14082e
Thomas Bogendoerfer 14082e
--- a/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_domain.c
Thomas Bogendoerfer 14082e
+++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_domain.c
Thomas Bogendoerfer 14082e
@@ -2,6 +2,7 @@
Thomas Bogendoerfer 14082e
 /* Copyright (c) 2019 Mellanox Technologies. */
Thomas Bogendoerfer 14082e
 
Thomas Bogendoerfer 14082e
 #include <linux/mlx5/eswitch.h>
Thomas Bogendoerfer 14082e
+#include <linux/err.h>
Thomas Bogendoerfer 14082e
 #include "dr_types.h"
Thomas Bogendoerfer 14082e
 
Thomas Bogendoerfer 14082e
 static int dr_domain_init_cache(struct mlx5dr_domain *dmn)
Thomas Bogendoerfer 14082e
@@ -64,9 +65,9 @@ static int dr_domain_init_resources(stru
Thomas Bogendoerfer 14082e
 	}
Thomas Bogendoerfer 14082e
 
Thomas Bogendoerfer 14082e
 	dmn->uar = mlx5_get_uars_page(dmn->mdev);
Thomas Bogendoerfer 14082e
-	if (!dmn->uar) {
Thomas Bogendoerfer 14082e
+	if (IS_ERR(dmn->uar)) {
Thomas Bogendoerfer 14082e
 		mlx5dr_err(dmn, "Couldn't allocate UAR\n");
Thomas Bogendoerfer 14082e
-		ret = -ENOMEM;
Thomas Bogendoerfer 14082e
+		ret = PTR_ERR(dmn->uar);
Thomas Bogendoerfer 14082e
 		goto clean_pd;
Thomas Bogendoerfer 14082e
 	}
Thomas Bogendoerfer 14082e