From: Roland Dreier It's cleaner to kfree mthca_mr, and not rely on the fact that ib_mr is the first field in mthca_mr. Signed-off-by: Michael S. Tsirkin Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton --- 25-akpm/drivers/infiniband/hw/mthca/mthca_provider.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) diff -puN drivers/infiniband/hw/mthca/mthca_provider.c~ib-mthca-clean-up-mthca_dereg_mr drivers/infiniband/hw/mthca/mthca_provider.c --- 25/drivers/infiniband/hw/mthca/mthca_provider.c~ib-mthca-clean-up-mthca_dereg_mr Fri Apr 1 14:14:26 2005 +++ 25-akpm/drivers/infiniband/hw/mthca/mthca_provider.c Fri Apr 1 14:14:26 2005 @@ -568,8 +568,9 @@ static struct ib_mr *mthca_reg_phys_mr(s static int mthca_dereg_mr(struct ib_mr *mr) { - mthca_free_mr(to_mdev(mr->device), to_mmr(mr)); - kfree(mr); + struct mthca_mr *mmr = to_mmr(mr); + mthca_free_mr(to_mdev(mr->device), mmr); + kfree(mmr); return 0; } _