ib_uverbs: Fix pages leak when using XRC SRQs
authorSébastien Dugué <sebastien.dugue@atos.net>
Thu, 9 Apr 2015 09:13:41 +0000 (11:13 +0200)
committerDoug Ledford <dledford@redhat.com>
Wed, 15 Apr 2015 20:06:39 +0000 (16:06 -0400)
commita233c4b54c882817ae9dd73384d5dd75d3e57498
tree070df64a981bb07eb250aa67f10d1f1252d500d5
parentc841e12add6926d64aa608687893465330b5a03e
ib_uverbs: Fix pages leak when using XRC SRQs

Hello,

  When an application using XRCs abruptly terminates, the mmaped pages
of the CQ buffers are leaked.

  This comes from the fact that when resources are released in
ib_uverbs_cleanup_ucontext(), we fail to release the CQs because their
refcount is not 0.

  When creating an XRC SRQ, we increment the associated CQ refcount.
This refcount is only decremented when the SRQ is released.

  Therefore we need to release the SRQs prior to the CQs to make sure
that all references to the CQs are gone before trying to release these.

Signed-off-by: Sebastien Dugue <sebastien.dugue@bull.net>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/core/uverbs_main.c