RDMA/irdma: Fix memory leak of PBLE objects
[ Upstream commit b69a6979dbaa2453675fe9c71bdc2497fedb11f9 ]
On rmmod of irdma, the PBLE object memory is not being freed. PBLE object
memory are not statically pre-allocated at function initialization time
unlike other HMC objects. PBLEs objects and the Segment Descriptors (SD)
for it can be dynamically allocated during scale up and SD's remain
allocated till function deinitialization.
Fix this leak by adding IRDMA_HMC_IW_PBLE to the iw_hmc_obj_types[] table
and skip pbles in irdma_create_hmc_obj but not in irdma_del_hmc_objects().
Fixes: 44d9e52977 ("RDMA/irdma: Implement device initialization definitions")
Signed-off-by: Mustafa Ismail <mustafa.ismail@intel.com>
Signed-off-by: Shiraz Saleem <shiraz.saleem@intel.com>
Link: https://lore.kernel.org/r/20230315145231.931-3-shiraz.saleem@intel.com
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
aa2607bae4
commit
810250c9c6
@@ -41,6 +41,7 @@ static enum irdma_hmc_rsrc_type iw_hmc_obj_types[] = {
|
||||
IRDMA_HMC_IW_XFFL,
|
||||
IRDMA_HMC_IW_Q1,
|
||||
IRDMA_HMC_IW_Q1FL,
|
||||
IRDMA_HMC_IW_PBLE,
|
||||
IRDMA_HMC_IW_TIMER,
|
||||
IRDMA_HMC_IW_FSIMC,
|
||||
IRDMA_HMC_IW_FSIAV,
|
||||
@@ -829,6 +830,8 @@ irdma_create_hmc_objs(struct irdma_pci_f *rf, bool privileged, enum irdma_vers v
|
||||
info.entry_type = rf->sd_type;
|
||||
|
||||
for (i = 0; i < IW_HMC_OBJ_TYPE_NUM; i++) {
|
||||
if (iw_hmc_obj_types[i] == IRDMA_HMC_IW_PBLE)
|
||||
continue;
|
||||
if (dev->hmc_info->hmc_obj[iw_hmc_obj_types[i]].cnt) {
|
||||
info.rsrc_type = iw_hmc_obj_types[i];
|
||||
info.count = dev->hmc_info->hmc_obj[info.rsrc_type].cnt;
|
||||
|
||||
Reference in New Issue
Block a user