|
@@ -5060,6 +5060,10 @@ static unsigned long __meminit zone_spanned_pages_in_node(int nid,
|
|
{
|
|
{
|
|
unsigned long zone_start_pfn, zone_end_pfn;
|
|
unsigned long zone_start_pfn, zone_end_pfn;
|
|
|
|
|
|
|
|
+ /* When hotadd a new node, the node should be empty */
|
|
|
|
+ if (!node_start_pfn && !node_end_pfn)
|
|
|
|
+ return 0;
|
|
|
|
+
|
|
/* Get the start and end of the zone */
|
|
/* Get the start and end of the zone */
|
|
zone_start_pfn = arch_zone_lowest_possible_pfn[zone_type];
|
|
zone_start_pfn = arch_zone_lowest_possible_pfn[zone_type];
|
|
zone_end_pfn = arch_zone_highest_possible_pfn[zone_type];
|
|
zone_end_pfn = arch_zone_highest_possible_pfn[zone_type];
|
|
@@ -5123,6 +5127,10 @@ static unsigned long __meminit zone_absent_pages_in_node(int nid,
|
|
unsigned long zone_high = arch_zone_highest_possible_pfn[zone_type];
|
|
unsigned long zone_high = arch_zone_highest_possible_pfn[zone_type];
|
|
unsigned long zone_start_pfn, zone_end_pfn;
|
|
unsigned long zone_start_pfn, zone_end_pfn;
|
|
|
|
|
|
|
|
+ /* When hotadd a new node, the node should be empty */
|
|
|
|
+ if (!node_start_pfn && !node_end_pfn)
|
|
|
|
+ return 0;
|
|
|
|
+
|
|
zone_start_pfn = clamp(node_start_pfn, zone_low, zone_high);
|
|
zone_start_pfn = clamp(node_start_pfn, zone_low, zone_high);
|
|
zone_end_pfn = clamp(node_end_pfn, zone_low, zone_high);
|
|
zone_end_pfn = clamp(node_end_pfn, zone_low, zone_high);
|
|
|
|
|