#include "etnaviv_priv.h"
#include "etnaviv_drmif.h"
-void bo_del(struct etna_bo *bo);
+void _etna_bo_del(struct etna_bo *bo);
extern pthread_mutex_t etna_drm_table_lock;
static void add_bucket(struct etna_bo_cache *cache, int size)
if (time && ((time - bo->free_time) <= 1))
break;
+ VG_BO_OBTAIN(bo);
list_del(&bo->list);
- bo_del(bo);
+ _etna_bo_del(bo);
}
}
*size = bucket->size;
bo = find_in_bucket(bucket, flags);
if (bo) {
+ VG_BO_OBTAIN(bo);
p_atomic_set(&bo->refcnt, 1);
etna_device_ref(bo->dev);
return bo;
clock_gettime(CLOCK_MONOTONIC, &time);
bo->free_time = time.tv_sec;
+ VG_BO_RELEASE(bo);
list_addtail(&bo->list, &bucket->list);
etna_bo_cache_cleanup(cache, time.tv_sec);