Commit efbca048 authored by Tomer Tayar's avatar Tomer Tayar Committed by Oded Gabbay
Browse files

accel/habanalabs: use exported size from dma_buf and not from phys_pg_pack



The 'exported_size' member in 'struct hl_vm_phys_pg_pack' is used to
keep the exported dma-buf size, to be later used when the buffer is
mapped.
However it is possible that the same phys_pg_pack will be exported more
than once, and independently of when the mapping takes place.
Remove this member from the phys_pg_pack structure, and simply use the
size in the dma-buf object as the exported size when mapping.

Signed-off-by: default avatarTomer Tayar <ttayar@habana.ai>
Reviewed-by: default avatarOded Gabbay <ogabbay@kernel.org>
Signed-off-by: default avatarOded Gabbay <ogabbay@kernel.org>
parent dfdbc55a
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -2159,7 +2159,6 @@ struct hl_vm_hw_block_list_node {
 * @pages: the physical page array.
 * @npages: num physical pages in the pack.
 * @total_size: total size of all the pages in this list.
 * @exported_size: buffer exported size.
 * @node: used to attach to deletion list that is used when all the allocations are cleared
 *        at the teardown of the context.
 * @mapping_cnt: number of shared mappings.
@@ -2176,7 +2175,6 @@ struct hl_vm_phys_pg_pack {
	u64			*pages;
	u64			npages;
	u64			total_size;
	u64			exported_size;
	struct list_head	node;
	atomic_t		mapping_cnt;
	u32			asid;
+1 −2
Original line number Diff line number Diff line
@@ -1719,7 +1719,7 @@ static struct sg_table *hl_map_dmabuf(struct dma_buf_attachment *attachment,
						phys_pg_pack->pages,
						phys_pg_pack->npages,
						phys_pg_pack->page_size,
						phys_pg_pack->exported_size,
						hl_dmabuf->dmabuf->size,
						attachment->dev,
						dir);
	else
@@ -2044,7 +2044,6 @@ static int export_dmabuf_from_addr(struct hl_ctx *ctx, u64 addr, u64 size, u64 o
		if (rc)
			goto dec_memhash_export_cnt;

		phys_pg_pack->exported_size = size;
		hl_dmabuf->phys_pg_pack = phys_pg_pack;
		hl_dmabuf->memhash_hnode = hnode;
	} else {