diff mbox series

nouveau: reset the bo resource bus info after an eviction

Message ID 20240311072037.287905-1-airlied@gmail.com (mailing list archive)
State New, archived
Headers show
Series nouveau: reset the bo resource bus info after an eviction | expand

Commit Message

Dave Airlie March 11, 2024, 7:20 a.m. UTC
From: Dave Airlie <airlied@redhat.com>

Later attempts to refault the bo won't happen and the whole
GPU does to lunch. I think Christian's refactoring of this
code out to the driver broke this not very well tested path.

Fixes: 141b15e59175 ("drm/nouveau: move io_reserve_lru handling into the driver v5")
Cc: Christian König <christian.koenig@amd.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
---
 drivers/gpu/drm/nouveau/nouveau_bo.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Timur Tabi March 11, 2024, 1:02 p.m. UTC | #1
On Mon, 2024-03-11 at 17:20 +1000, Dave Airlie wrote:
> Later attempts to refault the bo won't happen and the whole
> GPU does to lunch. I think Christian's refactoring of this

Typo:  I think you meant "goes to lunch".
Christian König March 11, 2024, 1:51 p.m. UTC | #2
Am 11.03.24 um 08:20 schrieb Dave Airlie:
> From: Dave Airlie <airlied@redhat.com>
>
> Later attempts to refault the bo won't happen and the whole
> GPU does to lunch. I think Christian's refactoring of this
> code out to the driver broke this not very well tested path.

Yeah that is certainly possible.

>
> Fixes: 141b15e59175 ("drm/nouveau: move io_reserve_lru handling into the driver v5")
> Cc: Christian König <christian.koenig@amd.com>
> Signed-off-by: Dave Airlie <airlied@redhat.com>

Acked-by: Christian König <christian.koenig@amd.com>

> ---
>   drivers/gpu/drm/nouveau/nouveau_bo.c | 2 ++
>   1 file changed, 2 insertions(+)
>
> diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c
> index c6c544d7c911..a4e8f625fce6 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_bo.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
> @@ -1271,6 +1271,8 @@ nouveau_ttm_io_mem_reserve(struct ttm_device *bdev, struct ttm_resource *reg)
>   			drm_vma_node_unmap(&nvbo->bo.base.vma_node,
>   					   bdev->dev_mapping);
>   			nouveau_ttm_io_mem_free_locked(drm, nvbo->bo.resource);
> +			nvbo->bo.resource->bus.offset = 0;
> +			nvbo->bo.resource->bus.addr = NULL;
>   			goto retry;
>   		}
>
diff mbox series

Patch

diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c
index c6c544d7c911..a4e8f625fce6 100644
--- a/drivers/gpu/drm/nouveau/nouveau_bo.c
+++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
@@ -1271,6 +1271,8 @@  nouveau_ttm_io_mem_reserve(struct ttm_device *bdev, struct ttm_resource *reg)
 			drm_vma_node_unmap(&nvbo->bo.base.vma_node,
 					   bdev->dev_mapping);
 			nouveau_ttm_io_mem_free_locked(drm, nvbo->bo.resource);
+			nvbo->bo.resource->bus.offset = 0;
+			nvbo->bo.resource->bus.addr = NULL;
 			goto retry;
 		}