• Ira Weiny's avatar
    tee: Remove call to get_kernel_pages() · 0249a75b
    Ira Weiny authored
    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: default avatarIra Weiny <ira.weiny@intel.com>
    Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
    Reviewed-by: default avatarSumit Garg <sumit.garg@linaro.org>
    Signed-off-by: default avatarJens Wiklander <jens.wiklander@linaro.org>
    0249a75b
tee_shm.c 12.4 KB