[PATCH] drm/amdgpu: set bulk_moveable to false when a per VM is released

Huang Rui ray.huang at amd.com
Sat Sep 8 09:12:12 UTC 2018


On Wed, Sep 05, 2018 at 05:08:26PM +0200, Christian König wrote:
> Otherwise we might run into a use after free during bulk move.
> 
> Signed-off-by: Christian König <christian.koenig at amd.com>

Is this patch able to fix the KASAN?
[   66.143009] ==================================================================
[   66.143254] BUG: KASAN: use-after-free in ttm_bo_bulk_move_lru_tail+0x2b/0x100 [ttm]
[   66.143263] Read of size 8 at addr ffff8801f193d550 by task gnome-shel:cs0/4194

Tom, may we have your tested-by?

Reviewed-by: Huang Rui <ray.huang at amd.com>

> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> index ea5e277ae038..ed1e6abda391 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> @@ -2513,8 +2513,12 @@ void amdgpu_vm_bo_rmv(struct amdgpu_device *adev,
>  		      struct amdgpu_bo_va *bo_va)
>  {
>  	struct amdgpu_bo_va_mapping *mapping, *next;
> +	struct amdgpu_bo *bo = bo_va->base.bo;
>  	struct amdgpu_vm *vm = bo_va->base.vm;
>  
> +	if (bo && bo->tbo.resv == vm->root.base.bo->tbo.resv)
> +		vm->bulk_moveable = false;
> +
>  	list_del(&bo_va->base.bo_list);
>  
>  	spin_lock(&vm->invalidated_lock);
> -- 
> 2.17.1
> 
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx


More information about the amd-gfx mailing list