Loading drivers/gpu/ion/msm/msm_ion.c +13 −14 Original line number Diff line number Diff line Loading @@ -805,7 +805,14 @@ static long msm_ion_custom_ioctl(struct ion_client *client, sizeof(struct ion_flush_data))) return -EFAULT; if (!data.handle) { if (data.handle >= 0) { handle = ion_handle_get_by_id(client, (int)data.handle); if (IS_ERR(handle)) { pr_info("%s: Could not find handle: %d\n", __func__, (int)data.handle); return PTR_ERR(handle); } } else { handle = ion_import_dma_buf(client, data.fd); if (IS_ERR(handle)) { pr_info("%s: Could not import handle: %p\n", Loading @@ -820,28 +827,20 @@ static long msm_ion_custom_ioctl(struct ion_client *client, end = (unsigned long) data.vaddr + data.length; if (start && check_vaddr_bounds(start, end)) { up_read(&mm->mmap_sem); pr_err("%s: virtual address %p is out of bounds\n", __func__, data.vaddr); if (!data.handle) ion_free(client, handle); return -EINVAL; ret = -EINVAL; } else { ret = ion_do_cache_op(client, handle, data.vaddr, data.offset, data.length, cmd); } ret = ion_do_cache_op(client, data.handle ? data.handle : handle, data.vaddr, data.offset, data.length, cmd); up_read(&mm->mmap_sem); if (!data.handle) ion_free(client, handle); if (ret < 0) return ret; break; } case ION_IOC_PREFETCH: { Loading Loading
drivers/gpu/ion/msm/msm_ion.c +13 −14 Original line number Diff line number Diff line Loading @@ -805,7 +805,14 @@ static long msm_ion_custom_ioctl(struct ion_client *client, sizeof(struct ion_flush_data))) return -EFAULT; if (!data.handle) { if (data.handle >= 0) { handle = ion_handle_get_by_id(client, (int)data.handle); if (IS_ERR(handle)) { pr_info("%s: Could not find handle: %d\n", __func__, (int)data.handle); return PTR_ERR(handle); } } else { handle = ion_import_dma_buf(client, data.fd); if (IS_ERR(handle)) { pr_info("%s: Could not import handle: %p\n", Loading @@ -820,28 +827,20 @@ static long msm_ion_custom_ioctl(struct ion_client *client, end = (unsigned long) data.vaddr + data.length; if (start && check_vaddr_bounds(start, end)) { up_read(&mm->mmap_sem); pr_err("%s: virtual address %p is out of bounds\n", __func__, data.vaddr); if (!data.handle) ion_free(client, handle); return -EINVAL; ret = -EINVAL; } else { ret = ion_do_cache_op(client, handle, data.vaddr, data.offset, data.length, cmd); } ret = ion_do_cache_op(client, data.handle ? data.handle : handle, data.vaddr, data.offset, data.length, cmd); up_read(&mm->mmap_sem); if (!data.handle) ion_free(client, handle); if (ret < 0) return ret; break; } case ION_IOC_PREFETCH: { Loading