mirror of
				https://github.com/optim-enterprises-bv/openwrt-ipq.git
				synced 2025-10-31 18:28:28 +00:00 
			
		
		
		
	kernel: backport list_count_nodes()
It's needed by various stuff we backport. That includes NVMEM changes queued for v6.8. Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
This commit is contained in:
		| @@ -11,7 +11,7 @@ include $(INCLUDE_DIR)/kernel.mk | ||||
| PKG_NAME:=mac80211 | ||||
|  | ||||
| PKG_VERSION:=6.5 | ||||
| PKG_RELEASE:=1 | ||||
| PKG_RELEASE:=2 | ||||
| # PKG_SOURCE_URL:=@KERNEL/linux/kernel/projects/backports/stable/v5.15.58/ | ||||
| PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources/ | ||||
| PKG_HASH:=908c22dceba185eab83caa5a1e58ce6b3ebdc58f099c3fd3e11c7352ebfab2d7 | ||||
|   | ||||
| @@ -0,0 +1,26 @@ | ||||
| From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl> | ||||
| Date: Fri, 15 Dec 2023 10:17:21 +0100 | ||||
| Subject: [PATCH] list: don't backport list_count_nodes() | ||||
| MIME-Version: 1.0 | ||||
| Content-Type: text/plain; charset=UTF-8 | ||||
| Content-Transfer-Encoding: 8bit | ||||
|  | ||||
| It's redundant in OpenWrt as it backports it on its own. This fixes: | ||||
| backport-include/linux/list.h:11:22: error: redefinition of 'list_count_nodes' | ||||
|  | ||||
| Signed-off-by: Rafał Miłecki <rafal@milecki.pl> | ||||
| --- | ||||
|  backport-include/linux/list.h | 2 +- | ||||
|  1 file changed, 1 insertion(+), 1 deletion(-) | ||||
|  | ||||
| --- a/backport-include/linux/list.h | ||||
| +++ b/backport-include/linux/list.h | ||||
| @@ -3,7 +3,7 @@ | ||||
|  #include_next <linux/list.h> | ||||
|  #include <linux/version.h> | ||||
|   | ||||
| -#if LINUX_VERSION_IS_LESS(6,3,0) | ||||
| +#if 0 /* OpenWrt backports list_count_nodes() on its own */ | ||||
|  /** | ||||
|   * list_count_nodes - count nodes in the list | ||||
|   * @head:	the head for your list. | ||||
| @@ -0,0 +1,75 @@ | ||||
| From 4d70c74659d9746502b23d055dba03d1d28ec388 Mon Sep 17 00:00:00 2001 | ||||
| From: Andy Shevchenko <andriy.shevchenko@linux.intel.com> | ||||
| Date: Wed, 30 Nov 2022 15:48:35 +0200 | ||||
| Subject: [PATCH] i915: Move list_count() to list.h as list_count_nodes() 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: Lucas De Marchi <lucas.demarchi@intel.com> | ||||
| Acked-by: Jani Nikula <jani.nikula@intel.com> | ||||
| Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> | ||||
| Link: https://lore.kernel.org/r/20221130134838.23805-1-andriy.shevchenko@linux.intel.com | ||||
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | ||||
| --- | ||||
|  drivers/gpu/drm/i915/gt/intel_engine_cs.c | 15 ++------------- | ||||
|  include/linux/list.h                      | 15 +++++++++++++++ | ||||
|  2 files changed, 17 insertions(+), 13 deletions(-) | ||||
|  | ||||
| --- a/drivers/gpu/drm/i915/gt/intel_engine_cs.c | ||||
| +++ b/drivers/gpu/drm/i915/gt/intel_engine_cs.c | ||||
| @@ -1639,17 +1639,6 @@ static void print_request_ring(struct dr | ||||
|  	} | ||||
|  } | ||||
|   | ||||
| -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); | ||||
| @@ -1824,8 +1813,8 @@ void intel_engine_dump(struct intel_engi | ||||
|  	spin_lock_irqsave(&engine->sched_engine->lock, flags); | ||||
|  	engine_dump_active_requests(engine, m); | ||||
|   | ||||
| -	drm_printf(m, "\tOn hold?: %lu\n", | ||||
| -		   list_count(&engine->sched_engine->hold)); | ||||
| +	drm_printf(m, "\tOn hold?: %zu\n", | ||||
| +		   list_count_nodes(&engine->sched_engine->hold)); | ||||
|  	spin_unlock_irqrestore(&engine->sched_engine->lock, flags); | ||||
|   | ||||
|  	drm_printf(m, "\tMMIO base:  0x%08x\n", engine->mmio_base); | ||||
| --- a/include/linux/list.h | ||||
| +++ b/include/linux/list.h | ||||
| @@ -628,6 +628,21 @@ static inline void list_splice_tail_init | ||||
|  	     pos = n, n = pos->prev) | ||||
|   | ||||
|  /** | ||||
| + * list_count_nodes - count nodes in the list | ||||
| + * @head:	the head for your list. | ||||
| + */ | ||||
| +static inline size_t list_count_nodes(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 | ||||
|   * @head:	the head for your list. | ||||
| @@ -0,0 +1,73 @@ | ||||
| From 4d70c74659d9746502b23d055dba03d1d28ec388 Mon Sep 17 00:00:00 2001 | ||||
| From: Andy Shevchenko <andriy.shevchenko@linux.intel.com> | ||||
| Date: Wed, 30 Nov 2022 15:48:35 +0200 | ||||
| Subject: [PATCH] i915: Move list_count() to list.h as list_count_nodes() 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: Lucas De Marchi <lucas.demarchi@intel.com> | ||||
| Acked-by: Jani Nikula <jani.nikula@intel.com> | ||||
| Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> | ||||
| Link: https://lore.kernel.org/r/20221130134838.23805-1-andriy.shevchenko@linux.intel.com | ||||
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | ||||
| --- | ||||
|  drivers/gpu/drm/i915/gt/intel_engine_cs.c | 15 ++------------- | ||||
|  include/linux/list.h                      | 15 +++++++++++++++ | ||||
|  2 files changed, 17 insertions(+), 13 deletions(-) | ||||
|  | ||||
| --- a/drivers/gpu/drm/i915/gt/intel_execlists_submission.c | ||||
| +++ b/drivers/gpu/drm/i915/gt/intel_execlists_submission.c | ||||
| @@ -4154,17 +4154,6 @@ void intel_execlists_show_requests(struc | ||||
|  	spin_unlock_irqrestore(&sched_engine->lock, flags); | ||||
|  } | ||||
|   | ||||
| -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; | ||||
| -} | ||||
| - | ||||
|  void intel_execlists_dump_active_requests(struct intel_engine_cs *engine, | ||||
|  					  struct i915_request *hung_rq, | ||||
|  					  struct drm_printer *m) | ||||
| @@ -4176,7 +4165,7 @@ void intel_execlists_dump_active_request | ||||
|  	intel_engine_dump_active_requests(&engine->sched_engine->requests, hung_rq, m); | ||||
|   | ||||
|  	drm_printf(m, "\tOn hold?: %lu\n", | ||||
| -		   list_count(&engine->sched_engine->hold)); | ||||
| +		   list_count_nodes(&engine->sched_engine->hold)); | ||||
|   | ||||
|  	spin_unlock_irqrestore(&engine->sched_engine->lock, flags); | ||||
|  } | ||||
| --- a/include/linux/list.h | ||||
| +++ b/include/linux/list.h | ||||
| @@ -656,6 +656,21 @@ static inline void list_splice_tail_init | ||||
|  	     pos = n, n = pos->prev) | ||||
|   | ||||
|  /** | ||||
| + * list_count_nodes - count nodes in the list | ||||
| + * @head:	the head for your list. | ||||
| + */ | ||||
| +static inline size_t list_count_nodes(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 | ||||
|   * @head:	the head for your list. | ||||
		Reference in New Issue
	
	Block a user
	 Rafał Miłecki
					Rafał Miłecki