On Fri, Mar 1, 2013 at 4:34 PM, Martin Andersson <g02ma...@gmail.com> wrote: > The problem is that we mix bo handles and flinked names in the hash > table. Because kms type handles are not flinked they should not be > added to the hash table. If we do that we will sooner or later > get a situation where we will overwrite a correct entry because > the bo handle was the same as a flinked name. > --- > src/gallium/winsys/radeon/drm/radeon_drm_bo.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_bo.c > b/src/gallium/winsys/radeon/drm/radeon_drm_bo.c > index 2d41c26..f4ac526 100644 > --- a/src/gallium/winsys/radeon/drm/radeon_drm_bo.c > +++ b/src/gallium/winsys/radeon/drm/radeon_drm_bo.c > @@ -957,16 +957,16 @@ static boolean radeon_winsys_bo_get_handle(struct > pb_buffer *buffer, > > bo->flinked = TRUE; > bo->flink = flink.name; > + > + pipe_mutex_lock(bo->mgr->bo_handles_mutex); > + util_hash_table_set(bo->mgr->bo_handles, > (void*)(uintptr_t)bo->flink, bo); > + pipe_mutex_unlock(bo->mgr->bo_handles_mutex); > } > whandle->handle = bo->flink; > } else if (whandle->type == DRM_API_HANDLE_TYPE_KMS) { > whandle->handle = bo->handle; > } > > - pipe_mutex_lock(bo->mgr->bo_handles_mutex); > - util_hash_table_set(bo->mgr->bo_handles, > (void*)(uintptr_t)whandle->handle, bo); > - pipe_mutex_unlock(bo->mgr->bo_handles_mutex); > - > whandle->stride = stride; > return TRUE; > } > -- > 1.8.1.4 >
Reviewed-by: Jerome Glisse <jgli...@redhat.com> _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev