]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
mm, PM: Use for_each_valid_pfn() in kernel/power/snapshot.c
authorDavid Woodhouse <dwmw@amazon.co.uk>
Fri, 4 Apr 2025 13:27:30 +0000 (14:27 +0100)
committerDavid Woodhouse <dwmw@amazon.co.uk>
Wed, 23 Apr 2025 07:32:39 +0000 (08:32 +0100)
Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
kernel/power/snapshot.c

index 4e6e24e8b85441ffe1ae515db268fe495517a686..f151c7a45584e1799a749b8a58a8c42f909f65b1 100644 (file)
@@ -1094,16 +1094,15 @@ static void mark_nosave_pages(struct memory_bitmap *bm)
                         ((unsigned long long) region->end_pfn << PAGE_SHIFT)
                                - 1);
 
-               for (pfn = region->start_pfn; pfn < region->end_pfn; pfn++)
-                       if (pfn_valid(pfn)) {
-                               /*
-                                * It is safe to ignore the result of
-                                * mem_bm_set_bit_check() here, since we won't
-                                * touch the PFNs for which the error is
-                                * returned anyway.
-                                */
-                               mem_bm_set_bit_check(bm, pfn);
-                       }
+               for_each_valid_pfn (pfn, region->start_pfn, region->end_pfn) {
+                       /*
+                        * It is safe to ignore the result of
+                        * mem_bm_set_bit_check() here, since we won't
+                        * touch the PFNs for which the error is
+                        * returned anyway.
+                        */
+                       mem_bm_set_bit_check(bm, pfn);
+               }
        }
 }
 
@@ -1255,21 +1254,20 @@ static void mark_free_pages(struct zone *zone)
        spin_lock_irqsave(&zone->lock, flags);
 
        max_zone_pfn = zone_end_pfn(zone);
-       for (pfn = zone->zone_start_pfn; pfn < max_zone_pfn; pfn++)
-               if (pfn_valid(pfn)) {
-                       page = pfn_to_page(pfn);
+       for_each_valid_pfn(pfn, zone->zone_start_pfn, max_zone_pfn) {
+               page = pfn_to_page(pfn);
 
-                       if (!--page_count) {
-                               touch_nmi_watchdog();
-                               page_count = WD_PAGE_COUNT;
-                       }
+               if (!--page_count) {
+                       touch_nmi_watchdog();
+                       page_count = WD_PAGE_COUNT;
+               }
 
-                       if (page_zone(page) != zone)
-                               continue;
+               if (page_zone(page) != zone)
+                       continue;
 
-                       if (!swsusp_page_is_forbidden(page))
-                               swsusp_unset_page_free(page);
-               }
+               if (!swsusp_page_is_forbidden(page))
+                       swsusp_unset_page_free(page);
+       }
 
        for_each_migratetype_order(order, t) {
                list_for_each_entry(page,