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:
parent
0ff5592471
commit
c61dc97136
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user