summaryrefslogtreecommitdiff
path: root/drivers/bus
diff options
context:
space:
mode:
authorStephen Hemminger <stephen@networkplumber.org>2019-03-12 10:11:52 -0700
committerThomas Monjalon <thomas@monjalon.net>2019-03-29 13:55:58 +0100
commit4764beda0daab873adec4fa0bbe65cc099689c2c (patch)
tree320c260ab3c7d9455f53d70500ad57d4bf272c8e /drivers/bus
parenta6ffe11b7245ec12d4df4b8b0577291604b5e082 (diff)
downloaddpdk-4764beda0daab873adec4fa0bbe65cc099689c2c.zip
dpdk-4764beda0daab873adec4fa0bbe65cc099689c2c.tar.gz
dpdk-4764beda0daab873adec4fa0bbe65cc099689c2c.tar.xz
bus/fslmc: remove unneeded strdup
The fslmc bus code was duplicating the device name and doing extra initialization. The code can be simplified to just use the device name directly. Compile tested only; do not have this hardware. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Diffstat (limited to 'drivers/bus')
-rw-r--r--drivers/bus/fslmc/fslmc_bus.c38
1 files changed, 12 insertions, 26 deletions
diff --git a/drivers/bus/fslmc/fslmc_bus.c b/drivers/bus/fslmc/fslmc_bus.c
index a252578..eaa39a2 100644
--- a/drivers/bus/fslmc/fslmc_bus.c
+++ b/drivers/bus/fslmc/fslmc_bus.c
@@ -229,49 +229,35 @@ static int
rte_fslmc_parse(const char *name, void *addr)
{
uint16_t dev_id;
- char *t_ptr = NULL, *dname = NULL;
+ char *t_ptr;
/* 'name' is expected to contain name of device, for example, dpio.1,
* dpni.2, etc.
*/
-
- dname = strdup(name);
- if (!dname)
- return -EINVAL;
- t_ptr = dname;
-
- if (strncmp("dpni", t_ptr, 4) &&
- strncmp("dpseci", t_ptr, 6) &&
- strncmp("dpcon", t_ptr, 5) &&
- strncmp("dpbp", t_ptr, 4) &&
- strncmp("dpio", t_ptr, 4) &&
- strncmp("dpci", t_ptr, 4) &&
- strncmp("dpmcp", t_ptr, 5) &&
- strncmp("dpdmai", t_ptr, 6) &&
- strncmp("dpdmux", t_ptr, 6)) {
+ if (strncmp("dpni", name, 4) &&
+ strncmp("dpseci", name, 6) &&
+ strncmp("dpcon", name, 5) &&
+ strncmp("dpbp", name, 4) &&
+ strncmp("dpio", name, 4) &&
+ strncmp("dpci", name, 4) &&
+ strncmp("dpmcp", name, 5) &&
+ strncmp("dpdmai", name, 6) &&
+ strncmp("dpdmux", name, 6)) {
DPAA2_BUS_DEBUG("Unknown or unsupported device (%s)", name);
goto err_out;
}
t_ptr = strchr(name, '.');
- if (!t_ptr) {
- DPAA2_BUS_ERR("Incorrect device string observed (%s)", t_ptr);
- goto err_out;
- }
-
- t_ptr = (char *)(t_ptr + 1);
- if (sscanf(t_ptr, "%hu", &dev_id) <= 0) {
- DPAA2_BUS_ERR("Incorrect device string observed (%s)", t_ptr);
+ if (!t_ptr || sscanf(t_ptr + 1, "%hu", &dev_id) != 1) {
+ DPAA2_BUS_ERR("Missing device id in device name (%s)", name);
goto err_out;
}
- free(dname);
if (addr)
strcpy(addr, name);
return 0;
err_out:
- free(dname);
return -EINVAL;
}