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

Commit 6a766ca4 authored by Hariprasad Dhalinarasimha's avatar Hariprasad Dhalinarasimha
Browse files

qseecom: Removal of flags and options to protect listener memory



With the new ION design all memory allocated from secure heaps is
secured already at allocation time. This commit effectively rolls
back a change introduced to secure this memory at runtime.

Change-Id: I94bf0a7f6d477b04da7ad6786111f8c970516842
Acked-by: default avatarChristian Bolis <cbolis@qti.qualcomm.com>
Signed-off-by: default avatarHariprasad Dhalinarasimha <hnamgund@codeaurora.org>
parent 66619aa7
Loading
Loading
Loading
Loading
+0 −47
Original line number Diff line number Diff line
@@ -1214,28 +1214,6 @@ static int qseecom_send_cmd(struct qseecom_dev_handle *data, void __user *argp)
	return ret;
}

static int qseecom_unprotect_buffer(void __user *argp)
{
	int ret = 0;
	struct ion_handle *ihandle;
	int32_t ion_fd;

	ret = copy_from_user(&ion_fd, argp, sizeof(ion_fd));
	if (ret) {
		pr_err("copy_from_user failed");
		return ret;
	}

	ihandle = ion_import_dma_buf(qseecom.ion_clnt, ion_fd);

	ret = msm_ion_unsecure_buffer(qseecom.ion_clnt, ihandle);
	if (ret)
		return -EINVAL;
	if (!IS_ERR_OR_NULL(ihandle))
		ion_free(qseecom.ion_clnt, ihandle);
	return 0;
}

static int __qseecom_update_cmd_buf(void *msg, bool cleanup,
					struct qseecom_dev_handle *data,
					bool listener_svc)
@@ -1284,21 +1262,6 @@ static int __qseecom_update_cmd_buf(void *msg, bool cleanup,
				pr_err("Ion client can't retrieve the handle\n");
				return -ENOMEM;
			}
			switch (lstnr_resp->protection_mode) {
			case QSEOS_PROTECT_BUFFER:
				 ret = msm_ion_secure_buffer(qseecom.ion_clnt,
								ihandle,
								VIDEO_PIXEL,
								0);
				break;
			case QSEOS_UNPROTECT_PROTECTED_BUFFER:
				ret = msm_ion_unsecure_buffer(qseecom.ion_clnt,
								ihandle);
				break;
			case QSEOS_UNPROTECTED_BUFFER:
			default:
				break;
			}
			field = lstnr_resp->resp_buf_ptr +
				lstnr_resp->ifd_data[i].cmd_buf_offset;
		} else {
@@ -3131,16 +3094,6 @@ static long qseecom_ioctl(struct file *file, unsigned cmd,
			pr_err("failed qseecom_send_mod_resp: %d\n", ret);
		break;
	}
	case QSEECOM_IOCTL_UNPROTECT_BUF: {
		/* Only one client allowed here at a time */
		atomic_inc(&data->ioctl_count);
		ret = qseecom_unprotect_buffer(argp);
		atomic_dec(&data->ioctl_count);
		wake_up_all(&data->abort_wq);
		if (ret)
			pr_err("failed qseecom_unprotect: %d\n", ret);
		break;
	}
	default:
		return -EINVAL;
	}
+0 −11
Original line number Diff line number Diff line
@@ -157,12 +157,6 @@ struct qseecom_is_es_activated_req {
	int is_activated; /* out */
};

enum qseecom_buffer_protection {
	QSEOS_UNPROTECTED_BUFFER,
	QSEOS_PROTECT_BUFFER,
	QSEOS_UNPROTECT_PROTECTED_BUFFER,
};

enum qseecom_bandwidth_request_mode {
	INACTIVE = 0,
	LOW,
@@ -181,7 +175,6 @@ struct qseecom_send_modfd_listener_resp {
	void *resp_buf_ptr; /* in */
	unsigned int resp_len; /* in */
	struct qseecom_ion_fd_info ifd_data[MAX_ION_FD]; /* in */
	enum qseecom_buffer_protection protection_mode; /* in */
};


@@ -251,10 +244,6 @@ struct qseecom_send_modfd_listener_resp {
#define QSEECOM_IOCTL_SEND_MODFD_RESP \
	_IOWR(QSEECOM_IOC_MAGIC, 21, struct qseecom_send_modfd_listener_resp)

#define QSEECOM_IOCTL_UNPROTECT_BUF \
	_IOWR(QSEECOM_IOC_MAGIC, 22, int)


#define QSEECOM_IOCTL_SET_BUS_SCALING_REQ \
	_IOWR(QSEECOM_IOC_MAGIC, 23, int)