diff --git a/drivers/gpu/drm/xe/xe_vm_madvise.c b/drivers/gpu/drm/xe/xe_vm_madvise.c index 32f92743d851..5b775f742233 100644 --- a/drivers/gpu/drm/xe/xe_vm_madvise.c +++ b/drivers/gpu/drm/xe/xe_vm_madvise.c @@ -267,11 +267,6 @@ int xe_vm_madvise_ioctl(struct drm_device *dev, void *data, if (XE_IOCTL_ERR(xe, !vm)) return -EINVAL; - if (XE_IOCTL_ERR(xe, xe_vm_is_closed_or_banned(vm))) { - err = -ENOENT; - goto put_vm; - } - if (XE_IOCTL_ERR(xe, !xe_vm_in_fault_mode(vm))) { err = -EINVAL; goto put_vm; @@ -279,6 +274,11 @@ int xe_vm_madvise_ioctl(struct drm_device *dev, void *data, down_read(&vm->lock); + if (XE_IOCTL_ERR(xe, xe_vm_is_closed_or_banned(vm))) { + err = -ENOENT; + goto unlock_vm; + } + vmas = get_vmas(vm, &num_vmas, args->addr, args->range); if (XE_IOCTL_ERR(xe, err)) goto unlock_vm;