diff options
-rw-r--r-- | mm/memory_hotplug.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c index eca4aac1a83b..c6cd8b515424 100644 --- a/mm/memory_hotplug.c +++ b/mm/memory_hotplug.c | |||
@@ -581,11 +581,19 @@ static int online_pages_range(unsigned long start_pfn, unsigned long nr_pages, | |||
581 | return 0; | 581 | return 0; |
582 | } | 582 | } |
583 | 583 | ||
584 | #ifdef CONFIG_MOVABLE_NODE | ||
585 | /* when CONFIG_MOVABLE_NODE, we allow online node don't have normal memory */ | ||
586 | static bool can_online_high_movable(struct zone *zone) | ||
587 | { | ||
588 | return true; | ||
589 | } | ||
590 | #else /* #ifdef CONFIG_MOVABLE_NODE */ | ||
584 | /* ensure every online node has NORMAL memory */ | 591 | /* ensure every online node has NORMAL memory */ |
585 | static bool can_online_high_movable(struct zone *zone) | 592 | static bool can_online_high_movable(struct zone *zone) |
586 | { | 593 | { |
587 | return node_state(zone_to_nid(zone), N_NORMAL_MEMORY); | 594 | return node_state(zone_to_nid(zone), N_NORMAL_MEMORY); |
588 | } | 595 | } |
596 | #endif /* #ifdef CONFIG_MOVABLE_NODE */ | ||
589 | 597 | ||
590 | /* check which state of node_states will be changed when online memory */ | 598 | /* check which state of node_states will be changed when online memory */ |
591 | static void node_states_check_changes_online(unsigned long nr_pages, | 599 | static void node_states_check_changes_online(unsigned long nr_pages, |
@@ -1093,6 +1101,13 @@ check_pages_isolated(unsigned long start_pfn, unsigned long end_pfn) | |||
1093 | return offlined; | 1101 | return offlined; |
1094 | } | 1102 | } |
1095 | 1103 | ||
1104 | #ifdef CONFIG_MOVABLE_NODE | ||
1105 | /* when CONFIG_MOVABLE_NODE, we allow online node don't have normal memory */ | ||
1106 | static bool can_offline_normal(struct zone *zone, unsigned long nr_pages) | ||
1107 | { | ||
1108 | return true; | ||
1109 | } | ||
1110 | #else /* #ifdef CONFIG_MOVABLE_NODE */ | ||
1096 | /* ensure the node has NORMAL memory if it is still online */ | 1111 | /* ensure the node has NORMAL memory if it is still online */ |
1097 | static bool can_offline_normal(struct zone *zone, unsigned long nr_pages) | 1112 | static bool can_offline_normal(struct zone *zone, unsigned long nr_pages) |
1098 | { | 1113 | { |
@@ -1116,6 +1131,7 @@ static bool can_offline_normal(struct zone *zone, unsigned long nr_pages) | |||
1116 | */ | 1131 | */ |
1117 | return present_pages == 0; | 1132 | return present_pages == 0; |
1118 | } | 1133 | } |
1134 | #endif /* #ifdef CONFIG_MOVABLE_NODE */ | ||
1119 | 1135 | ||
1120 | /* check which state of node_states will be changed when offline memory */ | 1136 | /* check which state of node_states will be changed when offline memory */ |
1121 | static void node_states_check_changes_offline(unsigned long nr_pages, | 1137 | static void node_states_check_changes_offline(unsigned long nr_pages, |