RDSRDMA: Fix cleanup of rds_iw_mr_pool
authorJonathan Lallinger <jonathan@ogc.us>
Thu, 29 Sep 2011 07:58:41 +0000 (07:58 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 29 Sep 2011 18:57:19 +0000 (14:57 -0400)
In the rds_iw_mr_pool struct the free_pinned field keeps track of
memory pinned by free MRs. While this field is incremented properly
upon allocation, it is never decremented upon unmapping. This would
cause the rds_rdma module to crash the kernel upon unloading, by
triggering the BUG_ON in the rds_iw_destroy_mr_pool function.

This change keeps track of the MRs that become unpinned, so that
free_pinned can be decremented appropriately.

Signed-off-by: Jonathan Lallinger <jonathan@ogc.us>
Signed-off-by: Steve Wise <swise@ogc.us>
Signed-off-by: David S. Miller <davem@davemloft.net>

No differences found