summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorDafna Hirschfeld <dhirschfeld@habana.ai>2023-03-21 17:17:37 +0300
committerOded Gabbay <ogabbay@kernel.org>2023-04-08 10:39:33 +0300
commitfb10da9337105d51fcc9f64801ede35e098b6ec5 (patch)
treef6a07b9537d6aedb572d2aa6c5c4baf11d39441d /drivers
parent957b247bca4309b07df991ce114ea7a617b2c9fb (diff)
downloadlinux-fb10da9337105d51fcc9f64801ede35e098b6ec5.tar.xz
accel/habanalabs: check return value of add_va_block_locked
since the function might fail and we should propagate the failure. Signed-off-by: Dafna Hirschfeld <dhirschfeld@habana.ai> Reviewed-by: Oded Gabbay <ogabbay@kernel.org> Signed-off-by: Oded Gabbay <ogabbay@kernel.org> Reviewed-by: Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/accel/habanalabs/common/memory.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/accel/habanalabs/common/memory.c b/drivers/accel/habanalabs/common/memory.c
index 17b79d717896..a7b6a273ce21 100644
--- a/drivers/accel/habanalabs/common/memory.c
+++ b/drivers/accel/habanalabs/common/memory.c
@@ -605,6 +605,7 @@ static u64 get_va_block(struct hl_device *hdev,
bool is_align_pow_2 = is_power_of_2(va_range->page_size);
bool is_hint_dram_addr = hl_is_dram_va(hdev, hint_addr);
bool force_hint = flags & HL_MEM_FORCE_HINT;
+ int rc;
if (is_align_pow_2)
align_mask = ~((u64)va_block_align - 1);
@@ -722,9 +723,13 @@ static u64 get_va_block(struct hl_device *hdev,
kfree(new_va_block);
}
- if (add_prev)
- add_va_block_locked(hdev, &va_range->list, prev_start,
- prev_end);
+ if (add_prev) {
+ rc = add_va_block_locked(hdev, &va_range->list, prev_start, prev_end);
+ if (rc) {
+ reserved_valid_start = 0;
+ goto out;
+ }
+ }
print_va_list_locked(hdev, &va_range->list);
out: