[PATCH v2] drm/xe: Invalidate userptr VMA on page pin fault
Yang, Fei
fei.yang at intel.com
Sat Mar 9 07:01:19 UTC 2024
Snip
> diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c index 643b3701a738..fff7be376bc4 100644
> --- a/drivers/gpu/drm/xe/xe_vm.c
> +++ b/drivers/gpu/drm/xe/xe_vm.c
> @@ -724,11 +724,18 @@ int xe_vm_userptr_pin(struct xe_vm *vm)
> list_for_each_entry_safe(uvma, next, &vm->userptr.repin_list,
> userptr.repin_link) {
> err = xe_vma_userptr_pin_pages(uvma);
> - if (err < 0)
> - return err;
> -
> list_del_init(&uvma->userptr.repin_link);
> - list_move_tail(&uvma->vma.combined_links.rebind, &vm->rebind_list);
> + if (err == -EFAULT) {
why checking for EFAULT only?
> + err = xe_vm_invalidate_vma(&uvma->vma);
> + if (err)
> + return err;
> + } else {
> + if (err < 0)
> + return err;
For errors other than EFAULT, we would return without invalidating the vma?
> +
> + list_move_tail(&uvma->vma.combined_links.rebind,
> + &vm->rebind_list);
> + }
> }
>
> return 0;
-Fei
More information about the Intel-xe
mailing list