Jelajahi Sumber

qseecom: check for state first before performing ioctl

Before initating the ioctl lets first check the state of qseecom
is yet ready or not.

Test:
1. L0 Validation
2. Introduced a sleep in init path and tested the qseecom node.

Change-Id: Ic93ab91a4281ff615b629fdeb936fcd924589b5d
Signed-off-by: Nitin LNU <[email protected]>
Nitin LNU 1 tahun lalu
induk
melakukan
88d0774828
1 mengubah file dengan 10 tambahan dan 0 penghapusan
  1. 10 0
      qseecom/qseecom.c

+ 10 - 0
qseecom/qseecom.c

@@ -7639,6 +7639,16 @@ long qseecom_ioctl(struct file *file,
 	struct qseecom_dev_handle *data = file->private_data;
 	void __user *argp = (void __user *) arg;
 	bool perf_enabled = false;
+
+	if (atomic_read(&qseecom.qseecom_state) != QSEECOM_STATE_READY) {
+		pr_err("Not allowed to be called in %d state\n",
+				atomic_read(&qseecom.qseecom_state));
+		/* since the state is not ready returning device not configured yet
+		 * i.e operation can't be performed on device yet.
+		 */
+		return -ENXIO;
+	}
+
 	if (!data) {
 		pr_err("Invalid/uninitialized device handle\n");
 		return -EINVAL;