tee: Remove call to get_kernel_pages()
authorIra Weiny <ira.weiny@intel.com>
Sat, 4 Feb 2023 04:06:34 +0000 (20:06 -0800)
committerJens Wiklander <jens.wiklander@linaro.org>
Mon, 13 Feb 2023 13:16:40 +0000 (14:16 +0100)
commit0249a75b365911f91b87935bc08a4795a6fa7dd0
tree49f9d088d7dfaaa7ae7fc9d8873fa6684c646d5e
parentc83900393aa133d5fefdbf2ab3377c7fbeec0c07
tee: Remove call to get_kernel_pages()

The kernel pages used by shm_get_kernel_pages() are allocated using
GFP_KERNEL through the following call stack:

trusted_instantiate()
trusted_payload_alloc() -> GFP_KERNEL
<trusted key op>
tee_shm_register_kernel_buf()
register_shm_helper()
shm_get_kernel_pages()

Where <trusted key op> is one of:

trusted_key_unseal()
trusted_key_get_random()
trusted_key_seal()

Because the pages can't be from highmem get_kernel_pages() boils down to
a get_page() call.

Remove the get_kernel_pages() call and open code the get_page().

In case a highmem page does slip through warn on once for a kmap'ed
address.

Cc: Jens Wiklander <jens.wiklander@linaro.org>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: "Fabio M. De Francesco" <fmdefrancesco@gmail.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Ira Weiny <ira.weiny@intel.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Sumit Garg <sumit.garg@linaro.org>
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
drivers/tee/tee_shm.c