lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
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

Powered by Openwall GNU/*/Linux Powered by OpenVZ