mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-15 16:24:13 +08:00
[PATCH] IB/ipath: fix some memory leaks on failure paths
Signed-off-by: Robert Walsh <robert.walsh@qlogic.com> Signed-off-by: Bryan O'Sullivan <bryan.osullivan@qlogic.com> Cc: "Michael S. Tsirkin" <mst@mellanox.co.il> Cc: Roland Dreier <rolandd@cisco.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
4a45b7d4ec
commit
60460dfd42
@ -115,6 +115,7 @@ static int create_port0_egr(struct ipath_devdata *dd)
|
|||||||
"eager TID %u\n", e);
|
"eager TID %u\n", e);
|
||||||
while (e != 0)
|
while (e != 0)
|
||||||
dev_kfree_skb(skbs[--e]);
|
dev_kfree_skb(skbs[--e]);
|
||||||
|
vfree(skbs);
|
||||||
ret = -ENOMEM;
|
ret = -ENOMEM;
|
||||||
goto bail;
|
goto bail;
|
||||||
}
|
}
|
||||||
|
@ -692,6 +692,7 @@ struct ib_qp *ipath_create_qp(struct ib_pd *ibpd,
|
|||||||
case IB_QPT_GSI:
|
case IB_QPT_GSI:
|
||||||
qp = kmalloc(sizeof(*qp), GFP_KERNEL);
|
qp = kmalloc(sizeof(*qp), GFP_KERNEL);
|
||||||
if (!qp) {
|
if (!qp) {
|
||||||
|
vfree(swq);
|
||||||
ret = ERR_PTR(-ENOMEM);
|
ret = ERR_PTR(-ENOMEM);
|
||||||
goto bail;
|
goto bail;
|
||||||
}
|
}
|
||||||
@ -702,6 +703,7 @@ struct ib_qp *ipath_create_qp(struct ib_pd *ibpd,
|
|||||||
qp->r_rq.wq = vmalloc(qp->r_rq.size * sz);
|
qp->r_rq.wq = vmalloc(qp->r_rq.size * sz);
|
||||||
if (!qp->r_rq.wq) {
|
if (!qp->r_rq.wq) {
|
||||||
kfree(qp);
|
kfree(qp);
|
||||||
|
vfree(swq);
|
||||||
ret = ERR_PTR(-ENOMEM);
|
ret = ERR_PTR(-ENOMEM);
|
||||||
goto bail;
|
goto bail;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user