[PATCH xf86-video-ati] Use xorg_list_append for the DRM event list

Deucher, Alexander Alexander.Deucher at amd.com
Wed Aug 16 16:19:42 UTC 2017


> -----Original Message-----
> From: amd-gfx [mailto:amd-gfx-bounces at lists.freedesktop.org] On Behalf
> Of Michel Dänzer
> Sent: Wednesday, August 16, 2017 5:36 AM
> To: amd-gfx at lists.freedesktop.org
> Subject: [PATCH xf86-video-ati] Use xorg_list_append for the DRM event list
> 
> From: Michel Dänzer <michel.daenzer at amd.com>
> 
> We were adding entries at the start of the list, i.e. the list was
> ordered from most recently added to least recently added. However, the
> corresponding DRM events are generally expected to arrive in the same
> order as they are queued, which means that radeon_drm_queue_alloc
> would
> generally have to traverse the whole list to find the entry
> corresponding to an arrived event. Fix this by adding entries at the end
> of the list.
> 
> Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>

Reviewed-by: Alex Deucher <alexander.deucher at amd.com>

> ---
>  src/radeon_drm_queue.c | 2 +-
>  src/radeon_list.h      | 7 +++++++
>  2 files changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/src/radeon_drm_queue.c b/src/radeon_drm_queue.c
> index 31f24350e..37fdafeb9 100644
> --- a/src/radeon_drm_queue.c
> +++ b/src/radeon_drm_queue.c
> @@ -105,7 +105,7 @@ radeon_drm_queue_alloc(xf86CrtcPtr crtc, ClientPtr
> client,
>      e->handler = handler;
>      e->abort = abort;
> 
> -    xorg_list_add(&e->list, &radeon_drm_queue);
> +    xorg_list_append(&e->list, &radeon_drm_queue);
> 
>      return e->seq;
>  }
> diff --git a/src/radeon_list.h b/src/radeon_list.h
> index a0038c96c..f9e4ff73c 100644
> --- a/src/radeon_list.h
> +++ b/src/radeon_list.h
> @@ -35,6 +35,13 @@
>  #define xorg_list_del			list_del
>  #define xorg_list_for_each_entry	list_for_each_entry
>  #define xorg_list_for_each_entry_safe	list_for_each_entry_safe
> +
> +static inline void
> +xorg_list_append(struct list *entry, struct list *head)
> +{
> +    __list_add(entry, head->prev, head);
> +}
> +
>  #endif
> 
>  #endif /* _RADEON_LIST_H_ */
> --
> 2.14.1
> 
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx


More information about the amd-gfx mailing list