diff mbox series

[for-rc] RDMA/hfi1: Fix memory leak in _dev_comp_vect_mappings_create

Message ID 20200205110530.12129-1-kamalheib1@gmail.com (mailing list archive)
State Mainlined
Commit 8a4f300b978edbbaa73ef9eca660e45eb9f13873
Delegated to: Jason Gunthorpe
Headers show
Series [for-rc] RDMA/hfi1: Fix memory leak in _dev_comp_vect_mappings_create | expand

Commit Message

Kamal Heib Feb. 5, 2020, 11:05 a.m. UTC
Make sure to free the allocated cpumask_var_t's to avoid the following
reported memory leak by kmemleak:

$ cat /sys/kernel/debug/kmemleak
unreferenced object 0xffff8897f812d6a8 (size 8):
  comm "kworker/1:1", pid 347, jiffies 4294751400 (age 101.703s)
  hex dump (first 8 bytes):
    00 00 00 00 00 00 00 00                          ........
  backtrace:
    [<00000000bff49664>] alloc_cpumask_var_node+0x4c/0xb0
    [<0000000075d3ca81>] hfi1_comp_vectors_set_up+0x20f/0x800 [hfi1]
    [<0000000098d420df>] hfi1_init_dd+0x3311/0x4960 [hfi1]
    [<0000000071be7e52>] init_one+0x25e/0xf10 [hfi1]
    [<000000005483d4c2>] local_pci_probe+0xd4/0x180
    [<000000007c3cbc6e>] work_for_cpu_fn+0x51/0xa0
    [<000000001d626905>] process_one_work+0x8f0/0x17b0
    [<000000007e569e7e>] worker_thread+0x536/0xb50
    [<00000000fd39a4a5>] kthread+0x30c/0x3d0
    [<0000000056f2edb3>] ret_from_fork+0x3a/0x50

Fixes: 5d18ee67d4c1 ("IB/{hfi1, rdmavt, qib}: Implement CQ completion vector support")
Signed-off-by: Kamal Heib <kamalheib1@gmail.com>
---
 drivers/infiniband/hw/hfi1/affinity.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Dennis Dalessandro Feb. 5, 2020, 7:31 p.m. UTC | #1
On 2/5/2020 6:05 AM, Kamal Heib wrote:
> Make sure to free the allocated cpumask_var_t's to avoid the following
> reported memory leak by kmemleak:
> 
> $ cat /sys/kernel/debug/kmemleak
> unreferenced object 0xffff8897f812d6a8 (size 8):
>    comm "kworker/1:1", pid 347, jiffies 4294751400 (age 101.703s)
>    hex dump (first 8 bytes):
>      00 00 00 00 00 00 00 00                          ........
>    backtrace:
>      [<00000000bff49664>] alloc_cpumask_var_node+0x4c/0xb0
>      [<0000000075d3ca81>] hfi1_comp_vectors_set_up+0x20f/0x800 [hfi1]
>      [<0000000098d420df>] hfi1_init_dd+0x3311/0x4960 [hfi1]
>      [<0000000071be7e52>] init_one+0x25e/0xf10 [hfi1]
>      [<000000005483d4c2>] local_pci_probe+0xd4/0x180
>      [<000000007c3cbc6e>] work_for_cpu_fn+0x51/0xa0
>      [<000000001d626905>] process_one_work+0x8f0/0x17b0
>      [<000000007e569e7e>] worker_thread+0x536/0xb50
>      [<00000000fd39a4a5>] kthread+0x30c/0x3d0
>      [<0000000056f2edb3>] ret_from_fork+0x3a/0x50
> 
> Fixes: 5d18ee67d4c1 ("IB/{hfi1, rdmavt, qib}: Implement CQ completion vector support")
> Signed-off-by: Kamal Heib <kamalheib1@gmail.com>
> ---
>   drivers/infiniband/hw/hfi1/affinity.c | 2 ++
>   1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/infiniband/hw/hfi1/affinity.c b/drivers/infiniband/hw/hfi1/affinity.c
> index c142b23bb401..1aeea5d65c01 100644
> --- a/drivers/infiniband/hw/hfi1/affinity.c
> +++ b/drivers/infiniband/hw/hfi1/affinity.c
> @@ -479,6 +479,8 @@ static int _dev_comp_vect_mappings_create(struct hfi1_devdata *dd,
>   			  rvt_get_ibdev_name(&(dd)->verbs_dev.rdi), i, cpu);
>   	}
>   
> +	free_cpumask_var(available_cpus);
> +	free_cpumask_var(non_intr_cpus);
>   	return 0;
>   
>   fail:
> 

Perhaps this should also target stable kernel?

Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Jason Gunthorpe Feb. 11, 2020, 5:52 p.m. UTC | #2
On Wed, Feb 05, 2020 at 01:05:30PM +0200, Kamal Heib wrote:
> Make sure to free the allocated cpumask_var_t's to avoid the following
> reported memory leak by kmemleak:
> 
> $ cat /sys/kernel/debug/kmemleak
> unreferenced object 0xffff8897f812d6a8 (size 8):
>   comm "kworker/1:1", pid 347, jiffies 4294751400 (age 101.703s)
>   hex dump (first 8 bytes):
>     00 00 00 00 00 00 00 00                          ........
>   backtrace:
>     [<00000000bff49664>] alloc_cpumask_var_node+0x4c/0xb0
>     [<0000000075d3ca81>] hfi1_comp_vectors_set_up+0x20f/0x800 [hfi1]
>     [<0000000098d420df>] hfi1_init_dd+0x3311/0x4960 [hfi1]
>     [<0000000071be7e52>] init_one+0x25e/0xf10 [hfi1]
>     [<000000005483d4c2>] local_pci_probe+0xd4/0x180
>     [<000000007c3cbc6e>] work_for_cpu_fn+0x51/0xa0
>     [<000000001d626905>] process_one_work+0x8f0/0x17b0
>     [<000000007e569e7e>] worker_thread+0x536/0xb50
>     [<00000000fd39a4a5>] kthread+0x30c/0x3d0
>     [<0000000056f2edb3>] ret_from_fork+0x3a/0x50
> 
> Fixes: 5d18ee67d4c1 ("IB/{hfi1, rdmavt, qib}: Implement CQ completion vector support")
> Signed-off-by: Kamal Heib <kamalheib1@gmail.com>
> Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
> ---
>  drivers/infiniband/hw/hfi1/affinity.c | 2 ++
>  1 file changed, 2 insertions(+)

Applied to for-rc, thanks

Jason
diff mbox series

Patch

diff --git a/drivers/infiniband/hw/hfi1/affinity.c b/drivers/infiniband/hw/hfi1/affinity.c
index c142b23bb401..1aeea5d65c01 100644
--- a/drivers/infiniband/hw/hfi1/affinity.c
+++ b/drivers/infiniband/hw/hfi1/affinity.c
@@ -479,6 +479,8 @@  static int _dev_comp_vect_mappings_create(struct hfi1_devdata *dd,
 			  rvt_get_ibdev_name(&(dd)->verbs_dev.rdi), i, cpu);
 	}
 
+	free_cpumask_var(available_cpus);
+	free_cpumask_var(non_intr_cpus);
 	return 0;
 
 fail: