[9/9,v4] bus/fslmc: sanitize device name parsing for clarity

Message ID 20191105142321.7478-10-nipun.gupta@nxp.com
State New
Headers show
Series
  • DPAA and FSLMC driver fixes and cleanup
Related show

Commit Message

Nipun Gupta Nov. 5, 2019, 2:23 p.m.
remove unnecessary dup and free

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>

Reviewed-by: Nipun Gupta <nipun.gupta@nxp.com>

---
 drivers/bus/fslmc/fslmc_bus.c | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

-- 
2.17.1

Patch

diff --git a/drivers/bus/fslmc/fslmc_bus.c b/drivers/bus/fslmc/fslmc_bus.c
index 9caf5b6b9..b3e964aa9 100644
--- a/drivers/bus/fslmc/fslmc_bus.c
+++ b/drivers/bus/fslmc/fslmc_bus.c
@@ -235,8 +235,9 @@  rte_fslmc_parse(const char *name, void *addr)
 {
 	uint16_t dev_id;
 	char *t_ptr;
-	char *sep = NULL;
+	const char *sep;
 	uint8_t sep_exists = 0;
+	int ret = -1;
 
 	DPAA2_BUS_DEBUG("Parsing dev=(%s)", name);
 
@@ -266,10 +267,11 @@  rte_fslmc_parse(const char *name, void *addr)
 		} else {
 			DPAA2_BUS_DEBUG("Invalid device for matching (%s).",
 					name);
+			ret = -EINVAL;
 			goto err_out;
 		}
 	} else
-		sep = strdup(name);
+		sep = name;
 
 jump_out:
 	/* Validate device name */
@@ -283,26 +285,23 @@  rte_fslmc_parse(const char *name, void *addr)
 	    strncmp("dpdmai", sep, 6) &&
 	    strncmp("dpdmux", sep, 6)) {
 		DPAA2_BUS_DEBUG("Unknown or unsupported device (%s)", sep);
+		ret = -EINVAL;
 		goto err_out;
 	}
 
 	t_ptr = strchr(sep, '.');
 	if (!t_ptr || sscanf(t_ptr + 1, "%hu", &dev_id) != 1) {
 		DPAA2_BUS_ERR("Missing device id in device name (%s)", sep);
+		ret = -EINVAL;
 		goto err_out;
 	}
 
-	if (addr) {
+	if (addr)
 		strcpy(addr, sep);
-		if (!sep_exists && sep)
-			free(sep);
-		return 0;
-	}
 
+	ret = 0;
 err_out:
-	if (!sep_exists && sep)
-		free(sep);
-	return -EINVAL;
+	return ret;
 }
 
 static int