diff mbox series

[5/5] dm: use list_count_nodes() for counting list nodes

Message ID 20240730111132.1097315-5-sughosh.ganu@linaro.org
State Accepted
Commit 939afc80b6b5de23d70789f3cb3a391dd31319b1
Headers show
Series [1/5] linux: list: add a function to count list nodes | expand

Commit Message

Sughosh Ganu July 30, 2024, 11:11 a.m. UTC
The linux kernel has the list_count_nodes() API functions which is
used for counting nodes of a list. This has now been imported in
U-Boot as part of an earlier commit. Use this function and drop the
list_count_items().

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
---
 drivers/core/util.c | 14 ++------------
 include/dm/util.h   |  8 --------
 test/dm/bus.c       |  5 +++--
 test/dm/core.c      |  9 +++++----
 test/dm/test-fdt.c  |  5 +++--
 5 files changed, 13 insertions(+), 28 deletions(-)

Comments

Simon Glass July 30, 2024, 7:44 p.m. UTC | #1
On Tue, 30 Jul 2024 at 05:12, Sughosh Ganu <sughosh.ganu@linaro.org> wrote:
>
> The linux kernel has the list_count_nodes() API functions which is
> used for counting nodes of a list. This has now been imported in
> U-Boot as part of an earlier commit. Use this function and drop the
> list_count_items().
>
> Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
> ---
>  drivers/core/util.c | 14 ++------------
>  include/dm/util.h   |  8 --------
>  test/dm/bus.c       |  5 +++--
>  test/dm/core.c      |  9 +++++----
>  test/dm/test-fdt.c  |  5 +++--
>  5 files changed, 13 insertions(+), 28 deletions(-)

Reviewed-by: Simon Glass <sjg@chromium.org>
Heinrich Schuchardt July 31, 2024, 6:23 a.m. UTC | #2
On 7/30/24 13:11, Sughosh Ganu wrote:
> The linux kernel has the list_count_nodes() API functions which is
> used for counting nodes of a list. This has now been imported in
> U-Boot as part of an earlier commit. Use this function and drop the
> list_count_items().
>
> Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>

Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>

> ---
>   drivers/core/util.c | 14 ++------------
>   include/dm/util.h   |  8 --------
>   test/dm/bus.c       |  5 +++--
>   test/dm/core.c      |  9 +++++----
>   test/dm/test-fdt.c  |  5 +++--
>   5 files changed, 13 insertions(+), 28 deletions(-)
>
> diff --git a/drivers/core/util.c b/drivers/core/util.c
> index 108a3bc4da..fa893485a0 100644
> --- a/drivers/core/util.c
> +++ b/drivers/core/util.c
> @@ -3,23 +3,13 @@
>    * Copyright (c) 2013 Google, Inc
>    */
>
> +#include <vsprintf.h>
>   #include <dm/device.h>
>   #include <dm/ofnode.h>
>   #include <dm/read.h>
>   #include <dm/util.h>
>   #include <linux/libfdt.h>
> -#include <vsprintf.h>
> -
> -int list_count_items(struct list_head *head)
> -{
> -	struct list_head *node;
> -	int count = 0;
> -
> -	list_for_each(node, head)
> -		count++;
> -
> -	return count;
> -}
> +#include <linux/list.h>
>
>   #if CONFIG_IS_ENABLED(OF_REAL)
>   int pci_get_devfn(struct udevice *dev)
> diff --git a/include/dm/util.h b/include/dm/util.h
> index 95c3527a37..ec518c51d9 100644
> --- a/include/dm/util.h
> +++ b/include/dm/util.h
> @@ -16,14 +16,6 @@ struct dm_stats;
>
>   struct list_head;
>
> -/**
> - * list_count_items() - Count number of items in a list
> - *
> - * @param head:		Head of list
> - * Return: number of items, or 0 if empty
> - */
> -int list_count_items(struct list_head *head);
> -
>   /**
>    * Dump out a tree of all devices starting @uclass
>    *
> diff --git a/test/dm/bus.c b/test/dm/bus.c
> index a338c7f567..95326f23da 100644
> --- a/test/dm/bus.c
> +++ b/test/dm/bus.c
> @@ -14,6 +14,7 @@
>   #include <dm/test.h>
>   #include <dm/uclass-internal.h>
>   #include <dm/util.h>
> +#include <linux/list.h>
>   #include <test/test.h>
>   #include <test/ut.h>
>
> @@ -27,14 +28,14 @@ static int dm_test_bus_children(struct unit_test_state *uts)
>   	struct uclass *uc;
>
>   	ut_assertok(uclass_get(UCLASS_TEST_FDT, &uc));
> -	ut_asserteq(num_devices, list_count_items(&uc->dev_head));
> +	ut_asserteq(num_devices, list_count_nodes(&uc->dev_head));
>
>   	/* Probe the bus, which should yield 3 more devices */
>   	ut_assertok(uclass_get_device(UCLASS_TEST_BUS, 0, &bus));
>   	num_devices += 3;
>
>   	ut_assertok(uclass_get(UCLASS_TEST_FDT, &uc));
> -	ut_asserteq(num_devices, list_count_items(&uc->dev_head));
> +	ut_asserteq(num_devices, list_count_nodes(&uc->dev_head));
>
>   	ut_assert(!dm_check_devices(uts, num_devices));
>
> diff --git a/test/dm/core.c b/test/dm/core.c
> index dbad1b317d..5bc5e8e82e 100644
> --- a/test/dm/core.c
> +++ b/test/dm/core.c
> @@ -16,6 +16,7 @@
>   #include <dm/util.h>
>   #include <dm/test.h>
>   #include <dm/uclass-internal.h>
> +#include <linux/list.h>
>   #include <test/test.h>
>   #include <test/ut.h>
>
> @@ -123,15 +124,15 @@ static int dm_test_autobind(struct unit_test_state *uts)
>   	 * device with no children.
>   	 */
>   	ut_assert(uts->root);
> -	ut_asserteq(1, list_count_items(gd->uclass_root));
> -	ut_asserteq(0, list_count_items(&gd->dm_root->child_head));
> +	ut_asserteq(1, list_count_nodes(gd->uclass_root));
> +	ut_asserteq(0, list_count_nodes(&gd->dm_root->child_head));
>   	ut_asserteq(0, dm_testdrv_op_count[DM_TEST_OP_POST_BIND]);
>
>   	ut_assertok(dm_scan_plat(false));
>
>   	/* We should have our test class now at least, plus more children */
> -	ut_assert(1 < list_count_items(gd->uclass_root));
> -	ut_assert(0 < list_count_items(&gd->dm_root->child_head));
> +	ut_assert(1 < list_count_nodes(gd->uclass_root));
> +	ut_assert(0 < list_count_nodes(&gd->dm_root->child_head));
>
>   	/* Our 3 dm_test_infox children should be bound to the test uclass */
>   	ut_asserteq(3, dm_testdrv_op_count[DM_TEST_OP_POST_BIND]);
> diff --git a/test/dm/test-fdt.c b/test/dm/test-fdt.c
> index 18c89eef43..31effff59c 100644
> --- a/test/dm/test-fdt.c
> +++ b/test/dm/test-fdt.c
> @@ -19,6 +19,7 @@
>   #include <dm/util.h>
>   #include <dm/of_access.h>
>   #include <linux/ioport.h>
> +#include <linux/list.h>
>   #include <test/test.h>
>   #include <test/ut.h>
>
> @@ -162,7 +163,7 @@ static int dm_test_fdt(struct unit_test_state *uts)
>   	ut_assert(!ret);
>
>   	/* These are num_devices compatible root-level device tree nodes */
> -	ut_asserteq(num_devices, list_count_items(&uc->dev_head));
> +	ut_asserteq(num_devices, list_count_nodes(&uc->dev_head));
>
>   	/* Each should have platform data but no private data */
>   	for (i = 0; i < num_devices; i++) {
> @@ -217,7 +218,7 @@ static int dm_test_fdt_pre_reloc(struct unit_test_state *uts)
>   	 * one with "bootph-all" property (a-test node), and the other
>   	 * one whose driver marked with DM_FLAG_PRE_RELOC flag (h-test node).
>   	 */
> -	ut_asserteq(2, list_count_items(&uc->dev_head));
> +	ut_asserteq(2, list_count_nodes(&uc->dev_head));
>
>   	return 0;
>   }
Ilias Apalodimas July 31, 2024, 7:31 a.m. UTC | #3
On Tue, 30 Jul 2024 at 14:12, Sughosh Ganu <sughosh.ganu@linaro.org> wrote:
>
> The linux kernel has the list_count_nodes() API functions which is
> used for counting nodes of a list. This has now been imported in
> U-Boot as part of an earlier commit. Use this function and drop the
> list_count_items().
>
> Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
> ---
>  drivers/core/util.c | 14 ++------------
>  include/dm/util.h   |  8 --------
>  test/dm/bus.c       |  5 +++--
>  test/dm/core.c      |  9 +++++----
>  test/dm/test-fdt.c  |  5 +++--
>  5 files changed, 13 insertions(+), 28 deletions(-)
>
> diff --git a/drivers/core/util.c b/drivers/core/util.c
> index 108a3bc4da..fa893485a0 100644
> --- a/drivers/core/util.c
> +++ b/drivers/core/util.c
> @@ -3,23 +3,13 @@
>   * Copyright (c) 2013 Google, Inc
>   */
>
> +#include <vsprintf.h>
>  #include <dm/device.h>
>  #include <dm/ofnode.h>
>  #include <dm/read.h>
>  #include <dm/util.h>
>  #include <linux/libfdt.h>
> -#include <vsprintf.h>
> -
> -int list_count_items(struct list_head *head)
> -{
> -       struct list_head *node;
> -       int count = 0;
> -
> -       list_for_each(node, head)
> -               count++;
> -
> -       return count;
> -}
> +#include <linux/list.h>
>
>  #if CONFIG_IS_ENABLED(OF_REAL)
>  int pci_get_devfn(struct udevice *dev)
> diff --git a/include/dm/util.h b/include/dm/util.h
> index 95c3527a37..ec518c51d9 100644
> --- a/include/dm/util.h
> +++ b/include/dm/util.h
> @@ -16,14 +16,6 @@ struct dm_stats;
>
>  struct list_head;
>
> -/**
> - * list_count_items() - Count number of items in a list
> - *
> - * @param head:                Head of list
> - * Return: number of items, or 0 if empty
> - */
> -int list_count_items(struct list_head *head);
> -
>  /**
>   * Dump out a tree of all devices starting @uclass
>   *
> diff --git a/test/dm/bus.c b/test/dm/bus.c
> index a338c7f567..95326f23da 100644
> --- a/test/dm/bus.c
> +++ b/test/dm/bus.c
> @@ -14,6 +14,7 @@
>  #include <dm/test.h>
>  #include <dm/uclass-internal.h>
>  #include <dm/util.h>
> +#include <linux/list.h>
>  #include <test/test.h>
>  #include <test/ut.h>
>
> @@ -27,14 +28,14 @@ static int dm_test_bus_children(struct unit_test_state *uts)
>         struct uclass *uc;
>
>         ut_assertok(uclass_get(UCLASS_TEST_FDT, &uc));
> -       ut_asserteq(num_devices, list_count_items(&uc->dev_head));
> +       ut_asserteq(num_devices, list_count_nodes(&uc->dev_head));
>
>         /* Probe the bus, which should yield 3 more devices */
>         ut_assertok(uclass_get_device(UCLASS_TEST_BUS, 0, &bus));
>         num_devices += 3;
>
>         ut_assertok(uclass_get(UCLASS_TEST_FDT, &uc));
> -       ut_asserteq(num_devices, list_count_items(&uc->dev_head));
> +       ut_asserteq(num_devices, list_count_nodes(&uc->dev_head));
>
>         ut_assert(!dm_check_devices(uts, num_devices));
>
> diff --git a/test/dm/core.c b/test/dm/core.c
> index dbad1b317d..5bc5e8e82e 100644
> --- a/test/dm/core.c
> +++ b/test/dm/core.c
> @@ -16,6 +16,7 @@
>  #include <dm/util.h>
>  #include <dm/test.h>
>  #include <dm/uclass-internal.h>
> +#include <linux/list.h>
>  #include <test/test.h>
>  #include <test/ut.h>
>
> @@ -123,15 +124,15 @@ static int dm_test_autobind(struct unit_test_state *uts)
>          * device with no children.
>          */
>         ut_assert(uts->root);
> -       ut_asserteq(1, list_count_items(gd->uclass_root));
> -       ut_asserteq(0, list_count_items(&gd->dm_root->child_head));
> +       ut_asserteq(1, list_count_nodes(gd->uclass_root));
> +       ut_asserteq(0, list_count_nodes(&gd->dm_root->child_head));
>         ut_asserteq(0, dm_testdrv_op_count[DM_TEST_OP_POST_BIND]);
>
>         ut_assertok(dm_scan_plat(false));
>
>         /* We should have our test class now at least, plus more children */
> -       ut_assert(1 < list_count_items(gd->uclass_root));
> -       ut_assert(0 < list_count_items(&gd->dm_root->child_head));
> +       ut_assert(1 < list_count_nodes(gd->uclass_root));
> +       ut_assert(0 < list_count_nodes(&gd->dm_root->child_head));
>
>         /* Our 3 dm_test_infox children should be bound to the test uclass */
>         ut_asserteq(3, dm_testdrv_op_count[DM_TEST_OP_POST_BIND]);
> diff --git a/test/dm/test-fdt.c b/test/dm/test-fdt.c
> index 18c89eef43..31effff59c 100644
> --- a/test/dm/test-fdt.c
> +++ b/test/dm/test-fdt.c
> @@ -19,6 +19,7 @@
>  #include <dm/util.h>
>  #include <dm/of_access.h>
>  #include <linux/ioport.h>
> +#include <linux/list.h>
>  #include <test/test.h>
>  #include <test/ut.h>
>
> @@ -162,7 +163,7 @@ static int dm_test_fdt(struct unit_test_state *uts)
>         ut_assert(!ret);
>
>         /* These are num_devices compatible root-level device tree nodes */
> -       ut_asserteq(num_devices, list_count_items(&uc->dev_head));
> +       ut_asserteq(num_devices, list_count_nodes(&uc->dev_head));
>
>         /* Each should have platform data but no private data */
>         for (i = 0; i < num_devices; i++) {
> @@ -217,7 +218,7 @@ static int dm_test_fdt_pre_reloc(struct unit_test_state *uts)
>          * one with "bootph-all" property (a-test node), and the other
>          * one whose driver marked with DM_FLAG_PRE_RELOC flag (h-test node).
>          */
> -       ut_asserteq(2, list_count_items(&uc->dev_head));
> +       ut_asserteq(2, list_count_nodes(&uc->dev_head));
>
>         return 0;
>  }
> --
> 2.34.1
>

Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
diff mbox series

Patch

diff --git a/drivers/core/util.c b/drivers/core/util.c
index 108a3bc4da..fa893485a0 100644
--- a/drivers/core/util.c
+++ b/drivers/core/util.c
@@ -3,23 +3,13 @@ 
  * Copyright (c) 2013 Google, Inc
  */
 
+#include <vsprintf.h>
 #include <dm/device.h>
 #include <dm/ofnode.h>
 #include <dm/read.h>
 #include <dm/util.h>
 #include <linux/libfdt.h>
-#include <vsprintf.h>
-
-int list_count_items(struct list_head *head)
-{
-	struct list_head *node;
-	int count = 0;
-
-	list_for_each(node, head)
-		count++;
-
-	return count;
-}
+#include <linux/list.h>
 
 #if CONFIG_IS_ENABLED(OF_REAL)
 int pci_get_devfn(struct udevice *dev)
diff --git a/include/dm/util.h b/include/dm/util.h
index 95c3527a37..ec518c51d9 100644
--- a/include/dm/util.h
+++ b/include/dm/util.h
@@ -16,14 +16,6 @@  struct dm_stats;
 
 struct list_head;
 
-/**
- * list_count_items() - Count number of items in a list
- *
- * @param head:		Head of list
- * Return: number of items, or 0 if empty
- */
-int list_count_items(struct list_head *head);
-
 /**
  * Dump out a tree of all devices starting @uclass
  *
diff --git a/test/dm/bus.c b/test/dm/bus.c
index a338c7f567..95326f23da 100644
--- a/test/dm/bus.c
+++ b/test/dm/bus.c
@@ -14,6 +14,7 @@ 
 #include <dm/test.h>
 #include <dm/uclass-internal.h>
 #include <dm/util.h>
+#include <linux/list.h>
 #include <test/test.h>
 #include <test/ut.h>
 
@@ -27,14 +28,14 @@  static int dm_test_bus_children(struct unit_test_state *uts)
 	struct uclass *uc;
 
 	ut_assertok(uclass_get(UCLASS_TEST_FDT, &uc));
-	ut_asserteq(num_devices, list_count_items(&uc->dev_head));
+	ut_asserteq(num_devices, list_count_nodes(&uc->dev_head));
 
 	/* Probe the bus, which should yield 3 more devices */
 	ut_assertok(uclass_get_device(UCLASS_TEST_BUS, 0, &bus));
 	num_devices += 3;
 
 	ut_assertok(uclass_get(UCLASS_TEST_FDT, &uc));
-	ut_asserteq(num_devices, list_count_items(&uc->dev_head));
+	ut_asserteq(num_devices, list_count_nodes(&uc->dev_head));
 
 	ut_assert(!dm_check_devices(uts, num_devices));
 
diff --git a/test/dm/core.c b/test/dm/core.c
index dbad1b317d..5bc5e8e82e 100644
--- a/test/dm/core.c
+++ b/test/dm/core.c
@@ -16,6 +16,7 @@ 
 #include <dm/util.h>
 #include <dm/test.h>
 #include <dm/uclass-internal.h>
+#include <linux/list.h>
 #include <test/test.h>
 #include <test/ut.h>
 
@@ -123,15 +124,15 @@  static int dm_test_autobind(struct unit_test_state *uts)
 	 * device with no children.
 	 */
 	ut_assert(uts->root);
-	ut_asserteq(1, list_count_items(gd->uclass_root));
-	ut_asserteq(0, list_count_items(&gd->dm_root->child_head));
+	ut_asserteq(1, list_count_nodes(gd->uclass_root));
+	ut_asserteq(0, list_count_nodes(&gd->dm_root->child_head));
 	ut_asserteq(0, dm_testdrv_op_count[DM_TEST_OP_POST_BIND]);
 
 	ut_assertok(dm_scan_plat(false));
 
 	/* We should have our test class now at least, plus more children */
-	ut_assert(1 < list_count_items(gd->uclass_root));
-	ut_assert(0 < list_count_items(&gd->dm_root->child_head));
+	ut_assert(1 < list_count_nodes(gd->uclass_root));
+	ut_assert(0 < list_count_nodes(&gd->dm_root->child_head));
 
 	/* Our 3 dm_test_infox children should be bound to the test uclass */
 	ut_asserteq(3, dm_testdrv_op_count[DM_TEST_OP_POST_BIND]);
diff --git a/test/dm/test-fdt.c b/test/dm/test-fdt.c
index 18c89eef43..31effff59c 100644
--- a/test/dm/test-fdt.c
+++ b/test/dm/test-fdt.c
@@ -19,6 +19,7 @@ 
 #include <dm/util.h>
 #include <dm/of_access.h>
 #include <linux/ioport.h>
+#include <linux/list.h>
 #include <test/test.h>
 #include <test/ut.h>
 
@@ -162,7 +163,7 @@  static int dm_test_fdt(struct unit_test_state *uts)
 	ut_assert(!ret);
 
 	/* These are num_devices compatible root-level device tree nodes */
-	ut_asserteq(num_devices, list_count_items(&uc->dev_head));
+	ut_asserteq(num_devices, list_count_nodes(&uc->dev_head));
 
 	/* Each should have platform data but no private data */
 	for (i = 0; i < num_devices; i++) {
@@ -217,7 +218,7 @@  static int dm_test_fdt_pre_reloc(struct unit_test_state *uts)
 	 * one with "bootph-all" property (a-test node), and the other
 	 * one whose driver marked with DM_FLAG_PRE_RELOC flag (h-test node).
 	 */
-	ut_asserteq(2, list_count_items(&uc->dev_head));
+	ut_asserteq(2, list_count_nodes(&uc->dev_head));
 
 	return 0;
 }