[PATCH] drm/xe: Fix uninitialized variable in xe_vm_bind_ioctl()
Ghimiray, Himal Prasad
himal.prasad.ghimiray at intel.com
Wed Mar 12 06:21:14 UTC 2025
On 12-03-2025 08:08, Matthew Brost wrote:
> The error handling assumes that vm_bind_ioctl_check_args() will
> initialize "bind_ops" but there are a couple early returns where that's
> not true. Initialize "bind_ops" to NULL from the start.
>
> Also if vm_bind_ioctl_check_args, fails set bind_ops to NULL after
> freeing.
>
> Fixes: b43e864af0d4 ("drm/xe/uapi: Add DRM_XE_VM_BIND_FLAG_CPU_ADDR_MIRROR")
> Reported-by: Dan Carpenter <dan.carpenter at linaro.org>
> Signed-off-by: Dan Carpenter <dan.carpenter at linaro.org>
> Signed-off-by: Matthew Brost <matthew.brost at intel.com>
LGTM
Reviewed-by: Himal Prasad Ghimiray <himal.prasad.ghimiray at intel.com>
> ---
> drivers/gpu/drm/xe/xe_vm.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
> index 60303998bd61..2e6db5759d26 100644
> --- a/drivers/gpu/drm/xe/xe_vm.c
> +++ b/drivers/gpu/drm/xe/xe_vm.c
> @@ -3177,8 +3177,10 @@ static int vm_bind_ioctl_check_args(struct xe_device *xe, struct xe_vm *vm,
> return 0;
>
> free_bind_ops:
> - if (args->num_binds > 1)
> + if (args->num_binds > 1) {
> kvfree(*bind_ops);
> + *bind_ops = NULL;
> + }
> return err;
> }
>
> @@ -3284,7 +3286,7 @@ int xe_vm_bind_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
> struct xe_exec_queue *q = NULL;
> u32 num_syncs, num_ufence = 0;
> struct xe_sync_entry *syncs = NULL;
> - struct drm_xe_vm_bind_op *bind_ops;
> + struct drm_xe_vm_bind_op *bind_ops = NULL;
> struct xe_vma_ops vops;
> struct dma_fence *fence;
> int err;
More information about the Intel-xe
mailing list