|
@@ -230,7 +230,7 @@ static void grow_zone_span(struct zone *zone, unsigned long start_pfn,
|
|
|
zone_span_writelock(zone);
|
|
|
|
|
|
old_zone_end_pfn = zone_end_pfn(zone);
|
|
|
- if (!zone->spanned_pages || start_pfn < zone->zone_start_pfn)
|
|
|
+ if (zone_is_empty(zone) || start_pfn < zone->zone_start_pfn)
|
|
|
zone->zone_start_pfn = start_pfn;
|
|
|
|
|
|
zone->spanned_pages = max(old_zone_end_pfn, end_pfn) -
|
|
@@ -305,7 +305,7 @@ static int __meminit move_pfn_range_left(struct zone *z1, struct zone *z2,
|
|
|
goto out_fail;
|
|
|
|
|
|
/* use start_pfn for z1's start_pfn if z1 is empty */
|
|
|
- if (z1->spanned_pages)
|
|
|
+ if (!zone_is_empty(z1))
|
|
|
z1_start_pfn = z1->zone_start_pfn;
|
|
|
else
|
|
|
z1_start_pfn = start_pfn;
|
|
@@ -347,7 +347,7 @@ static int __meminit move_pfn_range_right(struct zone *z1, struct zone *z2,
|
|
|
goto out_fail;
|
|
|
|
|
|
/* use end_pfn for z2's end_pfn if z2 is empty */
|
|
|
- if (z2->spanned_pages)
|
|
|
+ if (!zone_is_empty(z2))
|
|
|
z2_end_pfn = zone_end_pfn(z2);
|
|
|
else
|
|
|
z2_end_pfn = end_pfn;
|