Commit a9efc04c authored by Andy Shevchenko's avatar Andy Shevchenko Committed by Greg Kroah-Hartman
Browse files

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: default avatarLucas De Marchi <lucas.demarchi@intel.com>
Acked-by: default avatarJani Nikula <jani.nikula@intel.com>
Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20221123144901.40493-1-andriy.shevchenko@linux.intel.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 944fe915
Loading
Loading
Loading
Loading
+1 −12
Original line number Diff line number Diff line
@@ -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)
{
	return *(unsigned long *)(p + x);
@@ -2189,7 +2178,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);

+15 −0
Original line number Diff line number Diff line
@@ -655,6 +655,21 @@ 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.
 */
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
 * @pos:	the type * to cursor