diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-06-25 19:07:58 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-06-25 19:07:58 -0400 |
commit | 61b9175808670d9abf52156803ae0ed1e3706ac4 (patch) | |
tree | feeaf7190aff1daa6ae365fd7c1107ea2d60fb9f /drivers/infiniband/core | |
parent | f36f44de721db44b4c2944133c3c5c2e06f633f0 (diff) | |
parent | 3f1244a2f8d3892f991b662cea49b2a0b4e0c115 (diff) |
Merge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband
* 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband:
IB/iser: iSER Kconfig and Makefile
IB/iser: iSER handling of memory for RDMA
IB/iser: iSER RDMA CM (CMA) and IB verbs interaction
IB/iser: iSER initiator iSCSI PDU and TX/RX
IB/iser: iSCSI iSER transport provider high level code
IB/iser: iSCSI iSER transport provider header file
IB/uverbs: Remove unnecessary list_del()s
IB/uverbs: Don't free wr list when it's known to be empty
Diffstat (limited to 'drivers/infiniband/core')
-rw-r--r-- | drivers/infiniband/core/uverbs_cmd.c | 2 | ||||
-rw-r--r-- | drivers/infiniband/core/uverbs_main.c | 6 |
2 files changed, 1 insertions, 7 deletions
diff --git a/drivers/infiniband/core/uverbs_cmd.c b/drivers/infiniband/core/uverbs_cmd.c index 76bf61e9b552..a908a7bdcd7f 100644 --- a/drivers/infiniband/core/uverbs_cmd.c +++ b/drivers/infiniband/core/uverbs_cmd.c | |||
@@ -1530,7 +1530,6 @@ ssize_t ib_uverbs_post_send(struct ib_uverbs_file *file, | |||
1530 | out_put: | 1530 | out_put: |
1531 | put_qp_read(qp); | 1531 | put_qp_read(qp); |
1532 | 1532 | ||
1533 | out: | ||
1534 | while (wr) { | 1533 | while (wr) { |
1535 | if (is_ud && wr->wr.ud.ah) | 1534 | if (is_ud && wr->wr.ud.ah) |
1536 | put_ah_read(wr->wr.ud.ah); | 1535 | put_ah_read(wr->wr.ud.ah); |
@@ -1539,6 +1538,7 @@ out: | |||
1539 | wr = next; | 1538 | wr = next; |
1540 | } | 1539 | } |
1541 | 1540 | ||
1541 | out: | ||
1542 | kfree(user_wr); | 1542 | kfree(user_wr); |
1543 | 1543 | ||
1544 | return ret ? ret : in_len; | 1544 | return ret ? ret : in_len; |
diff --git a/drivers/infiniband/core/uverbs_main.c b/drivers/infiniband/core/uverbs_main.c index e57d3c50f75f..e725cccc7cde 100644 --- a/drivers/infiniband/core/uverbs_main.c +++ b/drivers/infiniband/core/uverbs_main.c | |||
@@ -188,7 +188,6 @@ static int ib_uverbs_cleanup_ucontext(struct ib_uverbs_file *file, | |||
188 | 188 | ||
189 | idr_remove_uobj(&ib_uverbs_ah_idr, uobj); | 189 | idr_remove_uobj(&ib_uverbs_ah_idr, uobj); |
190 | ib_destroy_ah(ah); | 190 | ib_destroy_ah(ah); |
191 | list_del(&uobj->list); | ||
192 | kfree(uobj); | 191 | kfree(uobj); |
193 | } | 192 | } |
194 | 193 | ||
@@ -200,7 +199,6 @@ static int ib_uverbs_cleanup_ucontext(struct ib_uverbs_file *file, | |||
200 | idr_remove_uobj(&ib_uverbs_qp_idr, uobj); | 199 | idr_remove_uobj(&ib_uverbs_qp_idr, uobj); |
201 | ib_uverbs_detach_umcast(qp, uqp); | 200 | ib_uverbs_detach_umcast(qp, uqp); |
202 | ib_destroy_qp(qp); | 201 | ib_destroy_qp(qp); |
203 | list_del(&uobj->list); | ||
204 | ib_uverbs_release_uevent(file, &uqp->uevent); | 202 | ib_uverbs_release_uevent(file, &uqp->uevent); |
205 | kfree(uqp); | 203 | kfree(uqp); |
206 | } | 204 | } |
@@ -213,7 +211,6 @@ static int ib_uverbs_cleanup_ucontext(struct ib_uverbs_file *file, | |||
213 | 211 | ||
214 | idr_remove_uobj(&ib_uverbs_cq_idr, uobj); | 212 | idr_remove_uobj(&ib_uverbs_cq_idr, uobj); |
215 | ib_destroy_cq(cq); | 213 | ib_destroy_cq(cq); |
216 | list_del(&uobj->list); | ||
217 | ib_uverbs_release_ucq(file, ev_file, ucq); | 214 | ib_uverbs_release_ucq(file, ev_file, ucq); |
218 | kfree(ucq); | 215 | kfree(ucq); |
219 | } | 216 | } |
@@ -225,7 +222,6 @@ static int ib_uverbs_cleanup_ucontext(struct ib_uverbs_file *file, | |||
225 | 222 | ||
226 | idr_remove_uobj(&ib_uverbs_srq_idr, uobj); | 223 | idr_remove_uobj(&ib_uverbs_srq_idr, uobj); |
227 | ib_destroy_srq(srq); | 224 | ib_destroy_srq(srq); |
228 | list_del(&uobj->list); | ||
229 | ib_uverbs_release_uevent(file, uevent); | 225 | ib_uverbs_release_uevent(file, uevent); |
230 | kfree(uevent); | 226 | kfree(uevent); |
231 | } | 227 | } |
@@ -243,7 +239,6 @@ static int ib_uverbs_cleanup_ucontext(struct ib_uverbs_file *file, | |||
243 | memobj = container_of(uobj, struct ib_umem_object, uobject); | 239 | memobj = container_of(uobj, struct ib_umem_object, uobject); |
244 | ib_umem_release_on_close(mrdev, &memobj->umem); | 240 | ib_umem_release_on_close(mrdev, &memobj->umem); |
245 | 241 | ||
246 | list_del(&uobj->list); | ||
247 | kfree(memobj); | 242 | kfree(memobj); |
248 | } | 243 | } |
249 | 244 | ||
@@ -252,7 +247,6 @@ static int ib_uverbs_cleanup_ucontext(struct ib_uverbs_file *file, | |||
252 | 247 | ||
253 | idr_remove_uobj(&ib_uverbs_pd_idr, uobj); | 248 | idr_remove_uobj(&ib_uverbs_pd_idr, uobj); |
254 | ib_dealloc_pd(pd); | 249 | ib_dealloc_pd(pd); |
255 | list_del(&uobj->list); | ||
256 | kfree(uobj); | 250 | kfree(uobj); |
257 | } | 251 | } |
258 | 252 | ||