From 1189e4f23009fc9dcda3200c239057e0ebe8c91a Mon Sep 17 00:00:00 2001 From: qiuchangping Date: Fri, 24 Mar 2017 18:48:09 +0800 Subject: [PATCH] Synchronize codes for OxygenOS 3.5.8 The changes list: 1.Recording 4K video capture process caused by the phone into the crash 2.Fix some stability issue and crash issue 3.add some secure patch Change-Id: I1d03e03d42b95c14ebe7178da659e5dabef1cc68 --- drivers/gpu/msm/kgsl.c | 27 +++------------------------ 1 file changed, 3 insertions(+), 24 deletions(-) diff --git a/drivers/gpu/msm/kgsl.c b/drivers/gpu/msm/kgsl.c index fcbc9fb690bf7..276fb2fa4b657 100644 --- a/drivers/gpu/msm/kgsl.c +++ b/drivers/gpu/msm/kgsl.c @@ -2778,20 +2778,6 @@ static int kgsl_setup_phys_file(struct kgsl_mem_entry *entry, } #endif -static int check_vma_flags(struct vm_area_struct *vma, - unsigned int flags) -{ - unsigned long flags_requested = (VM_READ | VM_WRITE); - - if (flags & KGSL_MEMFLAGS_GPUREADONLY) - flags_requested &= ~VM_WRITE; - - if ((vma->vm_flags & flags_requested) == flags_requested) - return 0; - - return -EFAULT; -} - static int check_vma(struct vm_area_struct *vma, struct file *vmfile, struct kgsl_memdesc *memdesc) { @@ -2805,7 +2791,7 @@ static int check_vma(struct vm_area_struct *vma, struct file *vmfile, if (vma->vm_start != memdesc->useraddr || (memdesc->useraddr + memdesc->size) != vma->vm_end) return -EINVAL; - return check_vma_flags(vma, memdesc->flags); + return 0; } static int memdesc_sg_virt(struct kgsl_memdesc *memdesc, struct file *vmfile) @@ -2814,7 +2800,7 @@ static int memdesc_sg_virt(struct kgsl_memdesc *memdesc, struct file *vmfile) long npages = 0, i; unsigned long sglen = memdesc->size / PAGE_SIZE; struct page **pages = NULL; - int write = ((memdesc->flags & KGSL_MEMFLAGS_GPUREADONLY) ? 0 : 1); + int write = (memdesc->flags & KGSL_MEMFLAGS_GPUREADONLY) != 0; if (sglen == 0 || sglen >= LONG_MAX) return -EINVAL; @@ -2900,7 +2886,6 @@ static int kgsl_setup_useraddr(struct kgsl_mem_entry *entry, struct kgsl_map_user_mem *param = data; struct dma_buf *dmabuf = NULL; struct vm_area_struct *vma = NULL; - int ret; if (param->len == 0 || param->offset != 0 || param->hostptr == 0 @@ -2918,12 +2903,6 @@ static int kgsl_setup_useraddr(struct kgsl_mem_entry *entry, if (vma && vma->vm_file) { int fd; - ret = check_vma_flags(vma, entry->memdesc.flags); - if (ret) { - up_read(¤t->mm->mmap_sem); - return ret; - } - /* * Check to see that this isn't our own memory that we have * already mapped @@ -2942,7 +2921,7 @@ static int kgsl_setup_useraddr(struct kgsl_mem_entry *entry, up_read(¤t->mm->mmap_sem); if (!IS_ERR_OR_NULL(dmabuf)) { - ret = kgsl_setup_dma_buf(entry, pagetable, device, dmabuf); + int ret = kgsl_setup_dma_buf(entry, pagetable, device, dmabuf); if (ret) dma_buf_put(dmabuf); else {