bus/dpaa: fix fd check before close

The fd is possibly a negative value while it is passed as an
argument to function "close". Fix the check to the fd.

Fixes: b9c94167904f ("bus/dpaa: decouple FQ portal alloc and init")
Cc: stable@dpdk.org

Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
This commit is contained in:
Yunjian Wang 2020-09-15 19:57:40 +08:00 committed by Ferruh Yigit
parent 0ff5592471
commit c61dc97136

View File

@ -142,7 +142,7 @@ struct qman_portal *fsl_qman_fq_portal_create(int *fd)
struct qm_portal_config *q_pcfg;
struct dpaa_ioctl_irq_map irq_map;
struct dpaa_ioctl_portal_map q_map = {0};
int q_fd = 0, ret;
int q_fd, ret;
q_pcfg = kzalloc((sizeof(struct qm_portal_config)), 0);
if (!q_pcfg) {
@ -179,7 +179,7 @@ struct qman_portal *fsl_qman_fq_portal_create(int *fd)
if (!portal) {
pr_err("Qman portal initialisation failed (%d)\n",
q_pcfg->cpu);
goto err;
goto err_alloc;
}
irq_map.type = dpaa_portal_qman;
@ -188,9 +188,9 @@ struct qman_portal *fsl_qman_fq_portal_create(int *fd)
*fd = q_fd;
return portal;
err_alloc:
close(q_fd);
err:
if (q_fd)
close(q_fd);
process_portal_unmap(&q_map.addr);
kfree(q_pcfg);
return NULL;