Skip to content
Snippets Groups Projects
Commit 2c445971 authored by Iago Toral's avatar Iago Toral Committed by Marge Bot
Browse files

v3dv: fix debug dump on BO free


We were resetting the BO struct right before dumping its data. Fix
this by moving the reset later.

Fixes: 44fa8304 ('v3dv: add a refcount mechanism to BOs')
Reviewed-by: default avatarAlejandro Piñeiro <apinheiro@igalia.com>
Part-of: <mesa/mesa!19672>
parent 947e183f
No related branches found
No related tags found
No related merge requests found
......@@ -135,16 +135,9 @@ bo_free(struct v3dv_device *device,
assert(p_atomic_read(&bo->refcnt) == 0);
assert(bo->map == NULL);
/* Our BO structs are stored in a sparse array in the physical device,
* so we don't want to free the BO pointer, instead we want to reset it
* to 0, to signal that array entry as being free.
*/
uint32_t handle = bo->handle;
memset(bo, 0, sizeof(*bo));
struct drm_gem_close c;
memset(&c, 0, sizeof(c));
c.handle = handle;
c.handle = bo->handle;
int ret = v3dv_ioctl(device->pdevice->render_fd, DRM_IOCTL_GEM_CLOSE, &c);
if (ret != 0)
fprintf(stderr, "close object %d: %s\n", bo->handle, strerror(errno));
......@@ -160,6 +153,12 @@ bo_free(struct v3dv_device *device,
bo_dump_stats(device);
}
/* Our BO structs are stored in a sparse array in the physical device,
* so we don't want to free the BO pointer, instead we want to reset it
* to 0, to signal that array entry as being free.
*/
memset(bo, 0, sizeof(*bo));
return ret == 0;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment