[Intel-gfx] [PATCH 1/5] drm/i915: Add list_for_each_entry_safe_continue_reverse
Tvrtko Ursulin
tvrtko.ursulin at linux.intel.com
Fri Jun 5 14:50:05 UTC 2020
On 05/06/2020 10:58, Chris Wilson wrote:
> One more list iterator variant, for when we want to unwind from inside
> one list iterator with the intention of restarting from the current
> entry as the new head of the list.
>
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> ---
> drivers/gpu/drm/i915/i915_utils.h | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/i915_utils.h b/drivers/gpu/drm/i915/i915_utils.h
> index 03a73d2bd50d..6ebccdd12d4c 100644
> --- a/drivers/gpu/drm/i915/i915_utils.h
> +++ b/drivers/gpu/drm/i915/i915_utils.h
> @@ -266,6 +266,12 @@ static inline int list_is_last_rcu(const struct list_head *list,
> return READ_ONCE(list->next) == head;
> }
>
> +#define list_for_each_entry_safe_continue_reverse(pos, n, head, member) \
> + for (pos = list_prev_entry(pos, member), \
> + n = list_prev_entry(pos, member); \
> + &pos->member != (head); \
> + pos = n, n = list_prev_entry(n, member))
> +
> /*
> * Wait until the work is finally complete, even if it tries to postpone
> * by requeueing itself. Note, that if the worker never cancels itself,
>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
Regards,
Tvrtko
More information about the Intel-gfx
mailing list