Just so we don't forget, we need to add something like this to the
uverbs code on your branch.
(I didn't even compile test but you get the idea...)
--- src/linux-kernel/infiniband/core/uverbs_main.c (revision 3620)
+++ src/linux-kernel/infiniband/core/uverbs_main.c (working copy)
@@ -119,7 +119,13 @@ static int ib_dealloc_ucontext(struct ib
down(&ib_uverbs_idr_mutex);
- /* XXX Free AHs */
+ list_for_each_entry_safe(uobj, tmp, &context->ah_list, list) {
+ struct ib_ah *ah = idr_find(&ib_uverbs_ah_idr, uobj->id);
+ idr_remove(&ib_uverbs_ah_idr, uobj->id);
+ ib_destroy_ah(ah);
+ list_del(&uobj->list);
+ kfree(uobj);
+ }
list_for_each_entry_safe(uobj, tmp, &context->qp_list, list) {
struct ib_qp *qp = idr_find(&ib_uverbs_qp_idr, uobj->id);
_______________________________________________
openib-general mailing list
[email protected]
http://openib.org/mailman/listinfo/openib-general
To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general