diff mbox series

[RFC,1/7] tee: optee: allow kernel pages to register as shm

Message ID 1560421833-27414-2-git-send-email-sumit.garg@linaro.org
State Superseded
Headers show
Series Introduce TEE based Trusted Keys support | expand

Commit Message

Sumit Garg June 13, 2019, 10:30 a.m. UTC
Kernel pages are marked as normal type memory only so allow kernel pages
to be registered as shared memory with OP-TEE.

Signed-off-by: Sumit Garg <sumit.garg@linaro.org>

---
 drivers/tee/optee/call.c | 7 +++++++
 1 file changed, 7 insertions(+)

-- 
2.7.4

Comments

Sumit Garg June 14, 2019, 5:12 a.m. UTC | #1
On Thu, 13 Jun 2019 at 20:47, Jarkko Sakkinen
<jarkko.sakkinen@linux.intel.com> wrote:
>

> On Thu, Jun 13, 2019 at 06:17:14PM +0300, Jarkko Sakkinen wrote:

> > On Thu, Jun 13, 2019 at 06:12:57PM +0300, Jarkko Sakkinen wrote:

> > > On Thu, Jun 13, 2019 at 04:00:27PM +0530, Sumit Garg wrote:

> > > > Kernel pages are marked as normal type memory only so allow kernel pages

> > > > to be registered as shared memory with OP-TEE.

> > > >

> > > > Signed-off-by: Sumit Garg <sumit.garg@linaro.org>

> > >

> > > Just out of pure interest why this was not allowed before?

> >

> > Please spare me and ignore that one :-) Obviouslly because it

> > was not used.

> >

> > Acked-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>

>

> Actually,

>

> Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>

>


Thanks.

-Sumit

> /Jarkko
Jens Wiklander June 14, 2019, 8:15 a.m. UTC | #2
On Thu, Jun 13, 2019 at 04:00:27PM +0530, Sumit Garg wrote:
> Kernel pages are marked as normal type memory only so allow kernel pages

> to be registered as shared memory with OP-TEE.

> 

> Signed-off-by: Sumit Garg <sumit.garg@linaro.org>


Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>


Thanks,
Jens
diff mbox series

Patch

diff --git a/drivers/tee/optee/call.c b/drivers/tee/optee/call.c
index aa94270..bce45b1 100644
--- a/drivers/tee/optee/call.c
+++ b/drivers/tee/optee/call.c
@@ -553,6 +553,13 @@  static int check_mem_type(unsigned long start, size_t num_pages)
 	struct mm_struct *mm = current->mm;
 	int rc;
 
+	/*
+	 * Allow kernel address to register with OP-TEE as kernel
+	 * pages are configured as normal memory only.
+	 */
+	if (virt_addr_valid(start))
+		return 0;
+
 	down_read(&mm->mmap_sem);
 	rc = __check_mem_type(find_vma(mm, start),
 			      start + num_pages * PAGE_SIZE);