diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_bo.h b/src/gallium/winsys/radeon/drm/radeon_drm_bo.h index 7d257cad403..5f4553edc42 100644 --- a/src/gallium/winsys/radeon/drm/radeon_drm_bo.h +++ b/src/gallium/winsys/radeon/drm/radeon_drm_bo.h @@ -70,7 +70,11 @@ static inline void radeon_ws_bo_reference(struct radeon_winsys *rws, struct radeon_bo **dst, struct radeon_bo *src) { - radeon_bo_reference(rws, (struct pb_buffer_lean**)dst, (struct pb_buffer_lean*)src); + struct pb_buffer_lean *p_dst_base = &(*dst)->base; + + radeon_bo_reference(rws, &p_dst_base, (struct pb_buffer_lean*)src); + + *dst = (struct radeon_bo *)p_dst_base; } void *radeon_bo_do_map(struct radeon_bo *bo);