Re: [PATCH -next] mm: make use of the helper macro LIST_HEAD()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 2024/8/28 3:22, Uladzislau Rezki wrote:
On Tue, Aug 27, 2024 at 09:57:24AM +0800, Hongbo Li wrote:
list_head can be initialized automatically with LIST_HEAD()
instead of calling INIT_LIST_HEAD(). Here we can simplify
the code.

Signed-off-by: Hongbo Li <lihongbo22@xxxxxxxxxx>
---
  mm/vmalloc.c | 4 +---
  1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index 3f9b6bd707d2..3f7b38481fcc 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -2141,13 +2141,11 @@ decay_va_pool_node(struct vmap_node *vn, bool full_decay)
  	INIT_LIST_HEAD(&decay_list);
for (i = 0; i < MAX_VA_SIZE_PAGES; i++) {
-		struct list_head tmp_list;
+		LIST_HEAD(tmp_list);
if (list_empty(&vn->pool[i].head))
  			continue;
- INIT_LIST_HEAD(&tmp_list);
-
  		/* Detach the pool, so no-one can access it. */
  		spin_lock(&vn->pool_lock);
  		list_replace_init(&vn->pool[i].head, &tmp_list);
--
2.34.1

Maybe extend it to:

<snip>
diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index 57862865e808..e9c6f29a46ad 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -2131,23 +2131,18 @@ reclaim_list_global(struct list_head *head)
  static void
  decay_va_pool_node(struct vmap_node *vn, bool full_decay)
  {
+	struct rb_root decay_root = RB_ROOT;
+	LIST_HEAD(decay_list);
yeah, seems reasonable, and thank you!

Thanks,
Hongbo

  	struct vmap_area *va, *nva;
-	struct list_head decay_list;
-	struct rb_root decay_root;
  	unsigned long n_decay;
  	int i;
- decay_root = RB_ROOT;
-	INIT_LIST_HEAD(&decay_list);
-
  	for (i = 0; i < MAX_VA_SIZE_PAGES; i++) {
-		struct list_head tmp_list;
+		LIST_HEAD(tmp_list);
if (list_empty(&vn->pool[i].head))
  			continue;
- INIT_LIST_HEAD(&tmp_list);
-
  		/* Detach the pool, so no-one can access it. */
  		spin_lock(&vn->pool_lock);
  		list_replace_init(&vn->pool[i].head, &tmp_list);
<snip>

?

--
Uladzislau Rezki




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux