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)
commit85a64889492b45f931ddac87ec09d84aa7347ee1
tree1ceadcb10339e74551d6cb2ff6a09fcc83433655
parent605b91c8f619047ed6d88e24c531d4bdddad46f4
RDSRDMA: Fix cleanup of rds_iw_mr_pool

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>
net/rds/iw_rdma.c