]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
mm/khugepaged: use list_xxx() helper to improve readability
authorWei Yang <richard.weiyang@gmail.com>
Fri, 22 Aug 2025 02:57:32 +0000 (02:57 +0000)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 12 Sep 2025 00:25:16 +0000 (17:25 -0700)
In general, khugepaged_scan_mm_slot() iterates khugepaged_scan.mm_head list
to get a mm_struct for collapse memory.

Use list_xxx() helper would be more obvious to the list iteration
operation.

No functional change.

Link: https://lkml.kernel.org/r/20250822025732.9025-1-richard.weiyang@gmail.com
Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Acked-by: SeongJae Park <sj@kernel.org>
Reviewed-by: Zi Yan <ziy@nvidia.com>
Acked-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Baolin Wang <baolin.wang@linux.alibaba.com>
Reviewed-by: Dev Jain <dev.jain@arm.com>
Cc: Barry Song <baohua@kernel.org>
Cc: Mariano Pache <npache@redhat.com>
Cc: Ryan Roberts <ryan.roberts@arm.com>
Cc: Wei Yang <richard.weiyang@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/khugepaged.c

index db6709294a85b1f1583793223f027b586efb9747..4ec324a4c1fe1bf82343a9770db62e097d18b5f7 100644 (file)
@@ -2402,7 +2402,7 @@ static unsigned int khugepaged_scan_mm_slot(unsigned int pages, int *result,
                mm_slot = khugepaged_scan.mm_slot;
                slot = &mm_slot->slot;
        } else {
-               slot = list_entry(khugepaged_scan.mm_head.next,
+               slot = list_first_entry(&khugepaged_scan.mm_head,
                                     struct mm_slot, mm_node);
                mm_slot = mm_slot_entry(slot, struct khugepaged_mm_slot, slot);
                khugepaged_scan.address = 0;
@@ -2515,9 +2515,8 @@ breakouterloop_mmap_lock:
                 * khugepaged runs here, khugepaged_exit will find
                 * mm_slot not pointing to the exiting mm.
                 */
-               if (slot->mm_node.next != &khugepaged_scan.mm_head) {
-                       slot = list_entry(slot->mm_node.next,
-                                         struct mm_slot, mm_node);
+               if (!list_is_last(&slot->mm_node, &khugepaged_scan.mm_head)) {
+                       slot = list_next_entry(slot, mm_node);
                        khugepaged_scan.mm_slot =
                                mm_slot_entry(slot, struct khugepaged_mm_slot, slot);
                        khugepaged_scan.address = 0;