Merge "msm: kgsl: Avoid copying aux_command_generic struct twice"

This commit is contained in:
qctecmdr 2021-03-11 10:14:27 -08:00 • committed by Gerrit - the friendly Code Review server
commit cc681776ca
2 changed files with 3 additions and 26 deletions

View file

@ -2018,7 +2018,7 @@ long kgsl_ioctl_gpu_aux_command(struct kgsl_device_private *dev_priv,
}
ret = kgsl_drawobj_add_timeline(dev_priv, timelineobj,
cmdlist, param->cmdsize);
u64_to_user_ptr(generic.priv), generic.size);
if (ret)
goto err;

View file

@ -820,25 +820,6 @@ static int drawobj_init(struct kgsl_device *device,
return 0;
}
static int get_aux_command(void __user *ptr, u64 generic_size,
int type, void *auxcmd, size_t auxcmd_size)
{
struct kgsl_gpu_aux_command_generic generic;
u64 size;
if (copy_struct_from_user(&generic, sizeof(generic), ptr, generic_size))
return -EFAULT;
if (generic.type != type)
return -EINVAL;
size = min_t(u64, auxcmd_size, generic.size);
if (copy_from_user(auxcmd, u64_to_user_ptr(generic.priv), size))
return -EFAULT;
return 0;
}
struct kgsl_drawobj_timeline *
kgsl_drawobj_timeline_create(struct kgsl_device *device,
struct kgsl_context *context)
@ -870,12 +851,8 @@ int kgsl_drawobj_add_timeline(struct kgsl_device_private *dev_priv,
struct kgsl_gpu_aux_command_timeline cmd;
int i, ret;
memset(&cmd, 0, sizeof(cmd));
ret = get_aux_command(src, cmdsize,
KGSL_GPU_AUX_COMMAND_TIMELINE, &cmd, sizeof(cmd));
if (ret)
return ret;
if (copy_struct_from_user(&cmd, sizeof(cmd), src, cmdsize))
return -EFAULT;
if (!cmd.count)
return -EINVAL;