Skip to contentSkip to conversation

mm/page_owner: Clean up init_pages_in_zone()

PATCH Applied Oscar Salvador 1 participant 1 message Jan 17, 2018

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH v3 1/1 mm/page_owner: Clean up init_pages_in_zone()

This patch cleans up init_pages_in_zone() function.

v2 -> v3: Added suggestions made by Vlastimil Babka v1 -> v2: Added suggestions made by Michal Hocko

@Andrew: Could you please replace the patch that it's in the -mm tree (next-20180115) with commit b5dc82ee364757fcd1d67f2ea8fa4e19bedd6e48 with this one? Thanks

---
 mm/page_owner.c | 14 +++++---------
 1 file changed, 5 insertions(+), 9 deletions(-)
mm/page_owner.c +5 -9
index 8602fb41b293..ee55d55a7822 100644
@@ -528,21 +528,17 @@ read_page_owner(struct file *file, char __user *buf, size_t count, loff_t *ppos)
 
 static void init_pages_in_zone(pg_data_t *pgdat, struct zone *zone)
 {
-	struct page *page;
-	struct page_ext *page_ext;
-	unsigned long pfn = zone->zone_start_pfn, block_end_pfn;
-	unsigned long end_pfn = pfn + zone->spanned_pages;
+	unsigned long pfn = zone->zone_start_pfn;
+	unsigned long end_pfn = zone_end_pfn(zone);
 	unsigned long count = 0;
 
-	/* Scan block by block. First and last block may be incomplete */
-	pfn = zone->zone_start_pfn;
-
 	/*
 	 * Walk the zone in pageblock_nr_pages steps. If a page block spans
 	 * a zone boundary, it will be double counted between zones. This does
 	 * not matter as the mixed block count will still be correct
 	 */
 	for (; pfn < end_pfn; ) {
+		unsigned long block_end_pfn;
 		if (!pfn_valid(pfn)) {
 			pfn = ALIGN(pfn + 1, pageblock_nr_pages);
 			continue;
@@ -551,9 +547,9 @@ static void init_pages_in_zone(pg_data_t *pgdat, struct zone *zone)
 		block_end_pfn = ALIGN(pfn + 1, pageblock_nr_pages);
 		block_end_pfn = min(block_end_pfn, end_pfn);
 
-		page = pfn_to_page(pfn);
-
 		for (; pfn < block_end_pfn; pfn++) {
+			struct page *page;
+			struct page_ext *page_ext;
 			if (!pfn_valid_within(pfn))
 				continue;
 
Signature · 7 lines
2.13.6

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to [email protected].  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>