Loading arch/s390/Kconfig +3 −0 Original line number Diff line number Diff line Loading @@ -317,6 +317,9 @@ config ARCH_ENABLE_MEMORY_HOTPLUG def_bool y depends on SPARSEMEM config ARCH_ENABLE_MEMORY_HOTREMOVE def_bool y source "mm/Kconfig" comment "I/O subsystem configuration" Loading arch/s390/mm/init.c +12 −1 Original line number Diff line number Diff line Loading @@ -179,7 +179,7 @@ int arch_add_memory(int nid, u64 start, u64 size) int rc; pgdat = NODE_DATA(nid); zone = pgdat->node_zones + ZONE_NORMAL; zone = pgdat->node_zones + ZONE_MOVABLE; rc = vmem_add_mapping(start, size); if (rc) return rc; Loading @@ -189,3 +189,14 @@ int arch_add_memory(int nid, u64 start, u64 size) return rc; } #endif /* CONFIG_MEMORY_HOTPLUG */ #ifdef CONFIG_MEMORY_HOTREMOVE int remove_memory(u64 start, u64 size) { unsigned long start_pfn, end_pfn; start_pfn = PFN_DOWN(start); end_pfn = start_pfn + PFN_DOWN(size); return offline_pages(start_pfn, end_pfn, 120 * HZ); } #endif /* CONFIG_MEMORY_HOTREMOVE */ drivers/s390/char/sclp_cmd.c +5 −0 Original line number Diff line number Diff line Loading @@ -427,6 +427,8 @@ static int sclp_mem_notifier(struct notifier_block *nb, sclp_attach_storage(id); switch (action) { case MEM_ONLINE: case MEM_GOING_OFFLINE: case MEM_CANCEL_OFFLINE: break; case MEM_GOING_ONLINE: rc = sclp_mem_change_state(start, size, 1); Loading @@ -434,6 +436,9 @@ static int sclp_mem_notifier(struct notifier_block *nb, case MEM_CANCEL_ONLINE: sclp_mem_change_state(start, size, 0); break; case MEM_OFFLINE: sclp_mem_change_state(start, size, 0); break; default: rc = -EINVAL; break; Loading Loading
arch/s390/Kconfig +3 −0 Original line number Diff line number Diff line Loading @@ -317,6 +317,9 @@ config ARCH_ENABLE_MEMORY_HOTPLUG def_bool y depends on SPARSEMEM config ARCH_ENABLE_MEMORY_HOTREMOVE def_bool y source "mm/Kconfig" comment "I/O subsystem configuration" Loading
arch/s390/mm/init.c +12 −1 Original line number Diff line number Diff line Loading @@ -179,7 +179,7 @@ int arch_add_memory(int nid, u64 start, u64 size) int rc; pgdat = NODE_DATA(nid); zone = pgdat->node_zones + ZONE_NORMAL; zone = pgdat->node_zones + ZONE_MOVABLE; rc = vmem_add_mapping(start, size); if (rc) return rc; Loading @@ -189,3 +189,14 @@ int arch_add_memory(int nid, u64 start, u64 size) return rc; } #endif /* CONFIG_MEMORY_HOTPLUG */ #ifdef CONFIG_MEMORY_HOTREMOVE int remove_memory(u64 start, u64 size) { unsigned long start_pfn, end_pfn; start_pfn = PFN_DOWN(start); end_pfn = start_pfn + PFN_DOWN(size); return offline_pages(start_pfn, end_pfn, 120 * HZ); } #endif /* CONFIG_MEMORY_HOTREMOVE */
drivers/s390/char/sclp_cmd.c +5 −0 Original line number Diff line number Diff line Loading @@ -427,6 +427,8 @@ static int sclp_mem_notifier(struct notifier_block *nb, sclp_attach_storage(id); switch (action) { case MEM_ONLINE: case MEM_GOING_OFFLINE: case MEM_CANCEL_OFFLINE: break; case MEM_GOING_ONLINE: rc = sclp_mem_change_state(start, size, 1); Loading @@ -434,6 +436,9 @@ static int sclp_mem_notifier(struct notifier_block *nb, case MEM_CANCEL_ONLINE: sclp_mem_change_state(start, size, 0); break; case MEM_OFFLINE: sclp_mem_change_state(start, size, 0); break; default: rc = -EINVAL; break; Loading