diff options
author | Mark Brown <broonie@kernel.org> | 2018-05-21 19:17:37 +0100 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2018-05-21 19:17:37 +0100 |
commit | 08556e03ad36b2c6219aba90de88ccf58038e208 (patch) | |
tree | 1619cc5f466534b66b351985526e82da32b52028 /drivers/infiniband/hw/cxgb4/device.c | |
parent | d1480f9b535fa3901b7f303959bc196b304472a9 (diff) | |
parent | 6ba89b52ba6916bc7a3d390d70951e992c0ca39e (diff) |
Merge tag 'v4.9.101' into linux-linaro-lsk-v4.9
This is the 4.9.101 stable release
Diffstat (limited to 'drivers/infiniband/hw/cxgb4/device.c')
-rw-r--r-- | drivers/infiniband/hw/cxgb4/device.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/infiniband/hw/cxgb4/device.c b/drivers/infiniband/hw/cxgb4/device.c index b85a1a983e07..9e0f2ccf1d10 100644 --- a/drivers/infiniband/hw/cxgb4/device.c +++ b/drivers/infiniband/hw/cxgb4/device.c @@ -856,6 +856,11 @@ static int c4iw_rdev_open(struct c4iw_rdev *rdev) rdev->status_page->db_off = 0; + init_completion(&rdev->rqt_compl); + init_completion(&rdev->pbl_compl); + kref_init(&rdev->rqt_kref); + kref_init(&rdev->pbl_kref); + return 0; err_free_status_page: free_page((unsigned long)rdev->status_page); @@ -872,12 +877,14 @@ destroy_resource: static void c4iw_rdev_close(struct c4iw_rdev *rdev) { - destroy_workqueue(rdev->free_workq); kfree(rdev->wr_log); free_page((unsigned long)rdev->status_page); c4iw_pblpool_destroy(rdev); c4iw_rqtpool_destroy(rdev); + wait_for_completion(&rdev->pbl_compl); + wait_for_completion(&rdev->rqt_compl); c4iw_destroy_resource(&rdev->resource); + destroy_workqueue(rdev->free_workq); } static void c4iw_dealloc(struct uld_ctx *ctx) |