diff --git a/src/etnaviv/drm/etnaviv_bo.c b/src/etnaviv/drm/etnaviv_bo.c index 38b56953c32..5cbc088b241 100644 --- a/src/etnaviv/drm/etnaviv_bo.c +++ b/src/etnaviv/drm/etnaviv_bo.c @@ -87,7 +87,11 @@ static struct etna_bo *lookup_bo(void *tbl, uint32_t handle) bo = etna_bo_ref(entry->data); /* don't break the bucket if this bo was found in one */ - list_delinit(&bo->list); + if (list_is_linked(&bo->list)) { + VG_BO_OBTAIN(bo); + etna_device_ref(bo->dev); + list_delinit(&bo->list); + } } return bo;