habanalabs: avoid returning a valid handle if map_block() fails
map_block() sets the block id handle even if get_hw_block_id() fails, and in this case it uses block id 0 which might be a valid id. Modify it to set the handle only if get_hw_block_id() succeeds. Signed-off-by: Tomer Tayar <ttayar@habana.ai> Reviewed-by: Oded Gabbay <ogabbay@kernel.org> Signed-off-by: Oded Gabbay <ogabbay@kernel.org>
This commit is contained in:
parent
0c876b47a5
commit
7fa6c0fe8b
|
@ -1418,18 +1418,23 @@ vm_type_err:
|
|||
return rc;
|
||||
}
|
||||
|
||||
static int map_block(struct hl_device *hdev, u64 address, u64 *handle,
|
||||
u32 *size)
|
||||
static int map_block(struct hl_device *hdev, u64 address, u64 *handle, u32 *size)
|
||||
{
|
||||
u32 block_id = 0;
|
||||
u32 block_id;
|
||||
int rc;
|
||||
|
||||
*handle = 0;
|
||||
if (size)
|
||||
*size = 0;
|
||||
|
||||
rc = hdev->asic_funcs->get_hw_block_id(hdev, address, size, &block_id);
|
||||
if (rc)
|
||||
return rc;
|
||||
|
||||
*handle = block_id | HL_MMAP_TYPE_BLOCK;
|
||||
*handle <<= PAGE_SHIFT;
|
||||
|
||||
return rc;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void hw_block_vm_close(struct vm_area_struct *vma)
|
||||
|
|
Loading…
Reference in New Issue