Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e10076f5 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "ion: Set the page private bit on secure buffers"

parents f9cfd49b cca0f22c
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -52,9 +52,12 @@ static int get_secure_vmid(unsigned long flags)
static void ion_system_secure_heap_free(struct ion_buffer *buffer)
{
	int ret = 0;
	int i;
	u32 source_vm;
	int dest_vmid;
	int dest_perms;
	struct sg_table *sgt;
	struct scatterlist *sg;
	struct ion_heap *heap = buffer->heap;
	struct ion_system_secure_heap *secure_heap = container_of(heap,
						struct ion_system_secure_heap,
@@ -76,6 +79,10 @@ static void ion_system_secure_heap_free(struct ion_buffer *buffer)
		return;
	}

	sgt = buffer->priv_virt;
	for_each_sg(sgt->sgl, sg, sgt->nents, i)
		ClearPagePrivate(sg_page(sg));

	buffer->heap = secure_heap->sys_heap;
	secure_heap->sys_heap->ops->free(buffer);
}
@@ -86,9 +93,12 @@ static int ion_system_secure_heap_allocate(struct ion_heap *heap,
					unsigned long flags)
{
	int ret = 0;
	int i;
	u32 source_vm;
	int dest_vmid;
	int dest_perms;
	struct sg_table *sgt;
	struct scatterlist *sg;
	struct ion_system_secure_heap *secure_heap = container_of(heap,
						struct ion_system_secure_heap,
						heap);
@@ -123,6 +133,11 @@ static int ion_system_secure_heap_allocate(struct ion_heap *heap,
		pr_err("%s: Assign call failed\n", __func__);
		goto err;
	}

	sgt = buffer->priv_virt;
	for_each_sg(sgt->sgl, sg, sgt->nents, i)
		SetPagePrivate(sg_page(sg));

	return ret;

err: