Messages in this thread Patch in this message | | | From | Jiasheng Jiang <> | Subject | [PATCH] habanalabs: Fix freeing uninitialized pointers | Date | Wed, 8 Feb 2023 15:05:59 +0800 |
| |
As the memory allocated by kcalloc has not been set to zero, it may contain uninitialized pointers. Therefore, free the non-NULL pointers may cause undefined behaviour.
Fixes: 5574cb2194b1 ("habanalabs: Assign each CQ with its own work queue") Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn> --- drivers/misc/habanalabs/common/device.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/misc/habanalabs/common/device.c b/drivers/misc/habanalabs/common/device.c index 87ab329e65d4..dc6fcb9cca7a 100644 --- a/drivers/misc/habanalabs/common/device.c +++ b/drivers/misc/habanalabs/common/device.c @@ -901,9 +901,8 @@ static int device_early_init(struct hl_device *hdev) free_eq_wq: destroy_workqueue(hdev->eq_wq); free_cq_wq: - for (i = 0 ; i < hdev->asic_prop.completion_queues_count ; i++) - if (hdev->cq_wq[i]) - destroy_workqueue(hdev->cq_wq[i]); + while (i--) + destroy_workqueue(hdev->cq_wq[i]); kfree(hdev->cq_wq); asid_fini: hl_asid_fini(hdev); -- 2.25.1
| |