[Mesa-dev] [PATCH] winsys/radeon: Only add bo to hash table when creating flink
Jerome Glisse
j.glisse at gmail.com
Fri Mar 1 14:08:08 PST 2013
On Fri, Mar 1, 2013 at 4:34 PM, Martin Andersson <g02maran at 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 <jglisse at redhat.com>
More information about the mesa-dev
mailing list