habanalabs: free signal handle on failure
authorOded Gabbay <ogabbay@kernel.org>
Tue, 30 Nov 2021 12:54:53 +0000 (14:54 +0200)
committerOded Gabbay <ogabbay@kernel.org>
Sun, 26 Dec 2021 06:59:08 +0000 (08:59 +0200)
Fix a bug where in case of failure to allocate idr, the handle's
memory wasn't freed as part of the error handling code.

Signed-off-by: Oded Gabbay <ogabbay@kernel.org>
drivers/misc/habanalabs/common/command_submission.c

index 8be547b..d169418 100644 (file)
@@ -1838,7 +1838,7 @@ static int cs_ioctl_reserve_signals(struct hl_fpriv *hpriv,
        if (hdl_id < 0) {
                dev_err(hdev->dev, "Failed to allocate IDR for a new signal reservation\n");
                rc = -EINVAL;
-               goto out;
+               goto free_handle;
        }
 
        handle->id = hdl_id;
@@ -1891,7 +1891,9 @@ remove_idr:
        idr_remove(&mgr->handles, hdl_id);
        spin_unlock(&mgr->lock);
 
+free_handle:
        kfree(handle);
+
 out:
        return rc;
 }