mirror of https://gitee.com/openkylin/linux.git
iw_cxgb4: Fix an error handling path in 'c4iw_get_dma_mr()'
The error handling path of 'c4iw_get_dma_mr()' does not free resources
in the correct order.
If an error occures, it can leak 'mhp->wr_waitp'.
Fixes: a3f12da0e9
("iw_cxgb4: allocate wait object for each memory object")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: Doug Ledford <dledford@redhat.com>
This commit is contained in:
parent
43731753c4
commit
3d69191086
|
@ -489,10 +489,10 @@ struct ib_mr *c4iw_get_dma_mr(struct ib_pd *pd, int acc)
|
||||||
err_dereg_mem:
|
err_dereg_mem:
|
||||||
dereg_mem(&rhp->rdev, mhp->attr.stag, mhp->attr.pbl_size,
|
dereg_mem(&rhp->rdev, mhp->attr.stag, mhp->attr.pbl_size,
|
||||||
mhp->attr.pbl_addr, mhp->dereg_skb, mhp->wr_waitp);
|
mhp->attr.pbl_addr, mhp->dereg_skb, mhp->wr_waitp);
|
||||||
err_free_wr_wait:
|
|
||||||
c4iw_put_wr_wait(mhp->wr_waitp);
|
|
||||||
err_free_skb:
|
err_free_skb:
|
||||||
kfree_skb(mhp->dereg_skb);
|
kfree_skb(mhp->dereg_skb);
|
||||||
|
err_free_wr_wait:
|
||||||
|
c4iw_put_wr_wait(mhp->wr_waitp);
|
||||||
err_free_mhp:
|
err_free_mhp:
|
||||||
kfree(mhp);
|
kfree(mhp);
|
||||||
return ERR_PTR(ret);
|
return ERR_PTR(ret);
|
||||||
|
|
Loading…
Reference in New Issue