Move from the deprecated mmap hook to the new mmap_prepare hook, using the PFN remap mmap action to map the shared memory.
Signed-off-by: Lorenzo Stoakes (ARM) ljs@kernel.org --- drivers/tee/tee_shm.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/drivers/tee/tee_shm.c b/drivers/tee/tee_shm.c index daa4af1e089e..8fcbf0232aeb 100644 --- a/drivers/tee/tee_shm.c +++ b/drivers/tee/tee_shm.c @@ -567,10 +567,9 @@ static int tee_shm_fop_release(struct inode *inode, struct file *filp) return 0; }
-static int tee_shm_fop_mmap(struct file *filp, struct vm_area_struct *vma) +static int tee_shm_fop_mmap_prepare(struct vm_area_desc *desc) { - struct tee_shm *shm = filp->private_data; - size_t size = vma->vm_end - vma->vm_start; + struct tee_shm *shm = desc->file->private_data;
/* Refuse sharing shared memory provided by application */ if (shm->flags & TEE_SHM_USER_MAPPED) @@ -580,17 +579,18 @@ static int tee_shm_fop_mmap(struct file *filp, struct vm_area_struct *vma) return -EINVAL;
/* check for overflowing the buffer's size */ - if (vma->vm_pgoff + vma_pages(vma) > shm->size >> PAGE_SHIFT) + if (desc->pgoff + vma_desc_pages(desc) > shm->size >> PAGE_SHIFT) return -EINVAL;
- return remap_pfn_range(vma, vma->vm_start, shm->paddr >> PAGE_SHIFT, - size, vma->vm_page_prot); + mmap_action_remap_full(desc, shm->paddr >> PAGE_SHIFT); + + return 0; }
static const struct file_operations tee_shm_fops = { .owner = THIS_MODULE, .release = tee_shm_fop_release, - .mmap = tee_shm_fop_mmap, + .mmap_prepare = tee_shm_fop_mmap_prepare, };
/**