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

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

Merge "ion: ensure CMO target is valid"

parents 6b98eae6 c2629022
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -1517,6 +1517,11 @@ static int ion_sync_for_device(struct ion_client *client, int fd)
	}
	buffer = dmabuf->priv;

	if (get_secure_vmid(buffer->flags) > 0) {
		pr_err("%s: cannot sync a secure dmabuf\n", __func__);
		dma_buf_put(dmabuf);
		return -EINVAL;
	}
	dma_sync_sg_for_device(NULL, buffer->sg_table->sgl,
			       buffer->sg_table->nents, DMA_BIDIRECTIONAL);
	dma_buf_put(dmabuf);
+6 −6
Original line number Diff line number Diff line
/* Copyright (c) 2011-2016, The Linux Foundation. All rights reserved.
/* Copyright (c) 2011-2017, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
@@ -329,7 +329,7 @@ int ion_do_cache_op(struct ion_client *client, struct ion_handle *handle,
	if (!ION_IS_CACHED(flags))
		return 0;

	if (flags & ION_FLAG_SECURE)
	if (get_secure_vmid(flags) > 0)
		return 0;

	table = ion_sg_table(client, handle);
@@ -713,11 +713,11 @@ long msm_ion_custom_ioctl(struct ion_client *client,

		down_read(&mm->mmap_sem);

		start = (unsigned long) data.flush_data.vaddr;
		end = (unsigned long) data.flush_data.vaddr
			+ data.flush_data.length;
		start = (unsigned long)data.flush_data.vaddr +
			data.flush_data.offset;
		end = start + data.flush_data.length;

		if (start && check_vaddr_bounds(start, end)) {
		if (check_vaddr_bounds(start, end)) {
			pr_err("%s: virtual address %pK is out of bounds\n",
				__func__, data.flush_data.vaddr);
			ret = -EINVAL;