提交 a9efc04c 编写于 作者: A Andy Shevchenko 提交者: Greg Kroah-Hartman

i915: Move list_count() to list.h for broader use

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.
Reviewed-by: NLucas De Marchi <lucas.demarchi@intel.com>
Acked-by: NJani Nikula <jani.nikula@intel.com>
Signed-off-by: NAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20221123144901.40493-1-andriy.shevchenko@linux.intel.comSigned-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
上级 944fe915
...@@ -2004,17 +2004,6 @@ static void print_request_ring(struct drm_printer *m, struct i915_request *rq) ...@@ -2004,17 +2004,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) static unsigned long read_ul(void *p, size_t x)
{ {
return *(unsigned long *)(p + x); return *(unsigned long *)(p + x);
...@@ -2189,7 +2178,7 @@ void intel_engine_dump(struct intel_engine_cs *engine, ...@@ -2189,7 +2178,7 @@ void intel_engine_dump(struct intel_engine_cs *engine,
spin_lock_irqsave(&engine->sched_engine->lock, flags); spin_lock_irqsave(&engine->sched_engine->lock, flags);
engine_dump_active_requests(engine, m); 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)); list_count(&engine->sched_engine->hold));
spin_unlock_irqrestore(&engine->sched_engine->lock, flags); spin_unlock_irqrestore(&engine->sched_engine->lock, flags);
......
...@@ -655,6 +655,21 @@ static inline void list_splice_tail_init(struct list_head *list, ...@@ -655,6 +655,21 @@ static inline void list_splice_tail_init(struct list_head *list,
!list_is_head(pos, (head)); \ !list_is_head(pos, (head)); \
pos = n, n = pos->prev) pos = n, n = pos->prev)
/**
* list_count - count nodes in the list
* @head: the head for your list.
*/
static inline size_t list_count(struct list_head *head)
{
struct list_head *pos;
size_t count = 0;
list_for_each(pos, head)
count++;
return count;
}
/** /**
* list_entry_is_head - test if the entry points to the head of the list * list_entry_is_head - test if the entry points to the head of the list
* @pos: the type * to cursor * @pos: the type * to cursor
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册