[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