[v3,20/43] bus/fslmc: fix invalid error FD code

Message ID 20241014120126.170790-21-vanshika.shukla@nxp.com (mailing list archive)
State Superseded
Delegated to: Thomas Monjalon
Headers
Series DPAA2 specific patches |

Checks

Context Check Description
ci/checkpatch success coding style OK

Commit Message

Vanshika Shukla Oct. 14, 2024, 12:01 p.m. UTC
From: Rohit Raj <rohit.raj@nxp.com>

Since error code was being set to 0 in case of error which is a valid
fd, it caused memory leak issue.
This issue have been fixed by changing zero to a valid non fd error.
CID: 26661848

Signed-off-by: Rohit Raj <rohit.raj@nxp.com>
---
 drivers/bus/fslmc/fslmc_vfio.c | 19 ++++++-------------
 1 file changed, 6 insertions(+), 13 deletions(-)
  

Patch

diff --git a/drivers/bus/fslmc/fslmc_vfio.c b/drivers/bus/fslmc/fslmc_vfio.c
index a7fe59d25b..0cebca4f03 100644
--- a/drivers/bus/fslmc/fslmc_vfio.c
+++ b/drivers/bus/fslmc/fslmc_vfio.c
@@ -1,7 +1,7 @@ 
 /* SPDX-License-Identifier: BSD-3-Clause
  *
  *   Copyright (c) 2015-2016 Freescale Semiconductor, Inc. All rights reserved.
- *   Copyright 2016-2023 NXP
+ *   Copyright 2016-2024 NXP
  *
  */
 
@@ -41,8 +41,6 @@ 
 #include "portal/dpaa2_hw_pvt.h"
 #include "portal/dpaa2_hw_dpio.h"
 
-#define FSLMC_CONTAINER_MAX_LEN 8 /**< Of the format dprc.XX */
-
 #define FSLMC_VFIO_MP "fslmc_vfio_mp_sync"
 
 /* Container is composed by multiple groups, however,
@@ -415,18 +413,16 @@  fslmc_vfio_open_group_fd(const char *group_name)
 	    mp_reply.nb_received == 1) {
 		mp_rep = &mp_reply.msgs[0];
 		p = (struct vfio_mp_param *)mp_rep->param;
-		if (p->result == SOCKET_OK && mp_rep->num_fds == 1) {
+		if (p->result == SOCKET_OK && mp_rep->num_fds == 1)
 			vfio_group_fd = mp_rep->fds[0];
-		} else if (p->result == SOCKET_NO_FD) {
+		else if (p->result == SOCKET_NO_FD)
 			DPAA2_BUS_ERR("Bad VFIO group fd");
-			vfio_group_fd = 0;
-		}
 	}
 
 	free(mp_reply.msgs);
 
 add_vfio_group:
-	if (vfio_group_fd <= 0) {
+	if (vfio_group_fd < 0) {
 		if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
 			DPAA2_BUS_ERR("Open VFIO group(%s) failed(%d)",
 				filename, vfio_group_fd);
@@ -1802,14 +1798,11 @@  fslmc_vfio_setup_group(void)
 	}
 
 	vfio_group_fd = fslmc_vfio_group_fd_by_name(group_name);
-	if (vfio_group_fd <= 0) {
+	if (vfio_group_fd < 0) {
 		vfio_group_fd = fslmc_vfio_open_group_fd(group_name);
-		if (vfio_group_fd <= 0) {
+		if (vfio_group_fd < 0) {
 			DPAA2_BUS_ERR("%s: open group name(%s) failed(%d)",
 				__func__, group_name, vfio_group_fd);
-			if (!vfio_group_fd)
-				close(vfio_group_fd);
-			DPAA2_BUS_ERR("Failed to create MC VFIO group");
 			return -rte_errno;
 		}
 	}