linux/drivers/infiniband/hw
Kaike Wan 5c15abc432 IB/hfi1: Fix memory leaks in sysfs registration and unregistration
When the hfi1 driver is unloaded, kmemleak will report the following
issue:

unreferenced object 0xffff8888461a4c08 (size 8):
comm "kworker/0:0", pid 5, jiffies 4298601264 (age 2047.134s)
hex dump (first 8 bytes):
73 64 6d 61 30 00 ff ff sdma0...
backtrace:
[<00000000311a6ef5>] kvasprintf+0x62/0xd0
[<00000000ade94d9f>] kobject_set_name_vargs+0x1c/0x90
[<0000000060657dbb>] kobject_init_and_add+0x5d/0xb0
[<00000000346fe72b>] 0xffffffffa0c5ecba
[<000000006cfc5819>] 0xffffffffa0c866b9
[<0000000031c65580>] 0xffffffffa0c38e87
[<00000000e9739b3f>] local_pci_probe+0x41/0x80
[<000000006c69911d>] work_for_cpu_fn+0x16/0x20
[<00000000601267b5>] process_one_work+0x171/0x380
[<0000000049a0eefa>] worker_thread+0x1d1/0x3f0
[<00000000909cf2b9>] kthread+0xf8/0x130
[<0000000058f5f874>] ret_from_fork+0x35/0x40

This patch fixes the issue by:

- Releasing dd->per_sdma[i].kobject in hfi1_unregister_sysfs().
  - This will fix the memory leak.

- Calling kobject_put() to unwind operations only for those entries in
   dd->per_sdma[] whose operations have succeeded (including the current
   one that has just failed) in hfi1_verbs_register_sysfs().

Cc: <stable@vger.kernel.org>
Fixes: 0cb2aa690c ("IB/hfi1: Add sysfs interface for affinity setup")
Link: https://lore.kernel.org/r/20200326163807.21129.27371.stgit@awfm-01.aw.intel.com
Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Kaike Wan <kaike.wan@intel.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
2020-03-27 13:13:36 -03:00
..
bnxt_re RDMA/bnxt_re: Wait for all the CQ events before freeing CQ data structures 2020-03-24 20:15:36 -03:00
cxgb4 Linux 5.6-rc4 2020-03-04 13:11:06 -04:00
efa RDMA/efa: Use in-kernel offsetofend() to check field availability 2020-03-18 21:06:37 -03:00
hfi1 IB/hfi1: Fix memory leaks in sysfs registration and unregistration 2020-03-27 13:13:36 -03:00
hns RDMA/hns: Remove redundant judgment of qp_type 2020-03-26 16:52:29 -03:00
i40iw i40iw: Report correct firmware version 2020-03-18 13:53:44 -03:00
mlx4 RDMA/mlx4: Delete duplicated offsetofend implementation 2020-03-13 10:42:48 -03:00
mlx5 IB/mlx5: Move to fully dynamic UAR mode once user space supports it 2020-03-27 12:59:05 -03:00
mthca RDMA/providers: Fix return value when QP type isn't supported 2020-03-04 12:13:42 -04:00
ocrdma RDMA/providers: Fix return value when QP type isn't supported 2020-03-04 12:13:42 -04:00
qedr RDMA/providers: Fix return value when QP type isn't supported 2020-03-04 12:13:42 -04:00
qib IB/hfi1, qib: Ensure RCU is locked when accessing list 2020-03-02 11:10:21 -04:00
usnic RDMA/providers: Fix return value when QP type isn't supported 2020-03-04 12:13:42 -04:00
vmw_pvrdma RDMA/providers: Fix return value when QP type isn't supported 2020-03-04 12:13:42 -04:00
Makefile RDMA/iw_cxgb3: Remove the iw_cxgb3 module from kernel 2019-10-04 15:08:59 -03:00