diff options
author | Shiraz Saleem <shiraz.saleem@intel.com> | 2017-06-24 00:04:02 +0300 |
---|---|---|
committer | Doug Ledford <dledford@redhat.com> | 2017-07-20 18:20:49 +0300 |
commit | 44b99f88cdd5b47046c511aa64ae71ad2c9e5b1e (patch) | |
tree | 8ee34b27c00f573fcf0befe3aa5a9c4fea929635 /drivers/infiniband/hw/i40iw/i40iw_main.c | |
parent | c709d7f229a273c7c5664e9dfe5432b031842d0c (diff) | |
download | linux-44b99f88cdd5b47046c511aa64ae71ad2c9e5b1e.tar.xz |
i40iw: Avoid memory leak of CQP request objects
Control Queue Pair (CQP) request objects, which have
not received a completion upon interface close, remain
in memory.
To fix this, identify and free all pending CQP request
objects during destroy CQP OP.
Signed-off-by: Shiraz Saleem <shiraz.saleem@intel.com>
Signed-off-by: Henry Orosco <henry.orosco@intel.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'drivers/infiniband/hw/i40iw/i40iw_main.c')
-rw-r--r-- | drivers/infiniband/hw/i40iw/i40iw_main.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/i40iw/i40iw_main.c b/drivers/infiniband/hw/i40iw/i40iw_main.c index 3bad7d967abe..ae8463ff59a7 100644 --- a/drivers/infiniband/hw/i40iw/i40iw_main.c +++ b/drivers/infiniband/hw/i40iw/i40iw_main.c @@ -243,6 +243,8 @@ static void i40iw_destroy_cqp(struct i40iw_device *iwdev, bool free_hwcqp) if (free_hwcqp) dev->cqp_ops->cqp_destroy(dev->cqp); + i40iw_cleanup_pending_cqp_op(iwdev); + i40iw_free_dma_mem(dev->hw, &cqp->sq); kfree(cqp->scratch_array); iwdev->cqp.scratch_array = NULL; |