aboutsummaryrefslogtreecommitdiffstats
path: root/mm
diff options
context:
space:
mode:
Diffstat (limited to 'mm')
-rw-r--r--mm/memory_hotplug.c16
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 */
586static 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 */
585static bool can_online_high_movable(struct zone *zone) 592static 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 */
591static void node_states_check_changes_online(unsigned long nr_pages, 599static 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 */
1106static 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 */
1097static bool can_offline_normal(struct zone *zone, unsigned long nr_pages) 1112static 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 */
1121static void node_states_check_changes_offline(unsigned long nr_pages, 1137static void node_states_check_changes_offline(unsigned long nr_pages,