[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <87leoc2pbf.fsf@intel.com>
Date: Tue, 15 Nov 2022 17:46:28 +0200
From: Jani Nikula <jani.nikula@...ux.intel.com>
To: Andy Shevchenko <andriy.shevchenko@...ux.intel.com>,
Jakob Koschel <jakobkoschel@...il.com>,
Andy Shevchenko <andriy.shevchenko@...ux.intel.com>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Mathias Nyman <mathias.nyman@...ux.intel.com>,
intel-gfx@...ts.freedesktop.org, dri-devel@...ts.freedesktop.org,
linux-kernel@...r.kernel.org, linux-usb@...r.kernel.org
Cc: Joonas Lahtinen <joonas.lahtinen@...ux.intel.com>,
Rodrigo Vivi <rodrigo.vivi@...el.com>,
Tvrtko Ursulin <tvrtko.ursulin@...ux.intel.com>,
David Airlie <airlied@...il.com>,
Daniel Vetter <daniel@...ll.ch>,
Kevin Cernekee <cernekee@...il.com>,
Mathias Nyman <mathias.nyman@...el.com>,
Andrew Morton <akpm@...ux-foundation.org>
Subject: Re: [PATCH v2 1/4] i915: Move list_count() to list.h for broader use
On Mon, 14 Nov 2022, Andy Shevchenko <andriy.shevchenko@...ux.intel.com> wrote:
> Some of the existing users, and definitely will be new ones, want to
> count existing nodes in the list. Provide a generic API for that by
> moving code from i915 to list.h.
I think I'd find list_length() a much more natural name for this.
*shrug*
Acked-by: Jani Nikula <jani.nikula@...el.com>
regardless of what you decide to do with name or static inline etc.
>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@...ux.intel.com>
> ---
> v2: dropped the duplicate code in i915 (LKP)
> drivers/gpu/drm/i915/gt/intel_engine_cs.c | 13 +------------
> include/linux/list.h | 13 +++++++++++++
> 2 files changed, 14 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/gt/intel_engine_cs.c b/drivers/gpu/drm/i915/gt/intel_engine_cs.c
> index 6ae8b07cfaa1..b5d474be564d 100644
> --- a/drivers/gpu/drm/i915/gt/intel_engine_cs.c
> +++ b/drivers/gpu/drm/i915/gt/intel_engine_cs.c
> @@ -2085,17 +2085,6 @@ static void print_request_ring(struct drm_printer *m, struct i915_request *rq)
> }
> }
>
> -static unsigned long list_count(struct list_head *list)
> -{
> - struct list_head *pos;
> - unsigned long count = 0;
> -
> - list_for_each(pos, list)
> - count++;
> -
> - return count;
> -}
> -
> static unsigned long read_ul(void *p, size_t x)
> {
> return *(unsigned long *)(p + x);
> @@ -2270,7 +2259,7 @@ void intel_engine_dump(struct intel_engine_cs *engine,
> spin_lock_irqsave(&engine->sched_engine->lock, flags);
> engine_dump_active_requests(engine, m);
>
> - drm_printf(m, "\tOn hold?: %lu\n",
> + drm_printf(m, "\tOn hold?: %zu\n",
> list_count(&engine->sched_engine->hold));
> spin_unlock_irqrestore(&engine->sched_engine->lock, flags);
>
> diff --git a/include/linux/list.h b/include/linux/list.h
> index 61762054b4be..098eccf8c1b6 100644
> --- a/include/linux/list.h
> +++ b/include/linux/list.h
> @@ -655,6 +655,19 @@ static inline void list_splice_tail_init(struct list_head *list,
> !list_is_head(pos, (head)); \
> pos = n, n = pos->prev)
>
> +/**
> + * list_count - count nodes in the list
> + * @head: the head for your list.
> + */
> +#define list_count(head) \
> +({ \
> + struct list_head *__tmp; \
> + size_t __i = 0; \
> + list_for_each(__tmp, head) \
> + __i++; \
> + __i; \
> +})
> +
> /**
> * list_entry_is_head - test if the entry points to the head of the list
> * @pos: the type * to cursor
--
Jani Nikula, Intel Open Source Graphics Center
Powered by blists - more mailing lists