Merge "mm/Kconfig: Enable MEMORY_HOTPLUG for arm64"

This commit is contained in:
qctecmdr 2020-01-02 17:29:40 -08:00 • committed by Gerrit - the friendly Code Review server
commit 1acaa06d58
2 changed files with 34 additions and 1 deletions

View file

@ -519,7 +519,36 @@ out:
}
static DEVICE_ATTR_WO(probe);
#endif
#ifdef CONFIG_MEMORY_HOTREMOVE
static ssize_t remove_store(struct device *dev,
struct device_attribute *attr, const char *buf,
size_t count)
{
u64 phys_addr;
int nid, ret;
unsigned long pages_per_block = PAGES_PER_SECTION * sections_per_block;
ret = kstrtoull(buf, 0, &phys_addr);
if (ret)
return ret;
if (phys_addr & ((pages_per_block << PAGE_SHIFT) - 1))
return -EINVAL;
nid = memory_add_physaddr_to_nid(phys_addr);
ret = lock_device_hotplug_sysfs();
if (ret)
return ret;
remove_memory(nid, phys_addr,
MIN_MEMORY_BLOCK_SIZE * sections_per_block);
unlock_device_hotplug();
return count;
}
static DEVICE_ATTR_WO(remove);
#endif /* CONFIG_MEMORY_HOTREMOVE */
#endif /* CONFIG_ARCH_MEMORY_PROBE */
#ifdef CONFIG_MEMORY_FAILURE
/*
@ -775,6 +804,9 @@ bool is_memblock_offlined(struct memory_block *mem)
static struct attribute *memory_root_attrs[] = {
#ifdef CONFIG_ARCH_MEMORY_PROBE
&dev_attr_probe.attr,
#ifdef CONFIG_MEMORY_HOTREMOVE
&dev_attr_remove.attr,
#endif
#endif
#ifdef CONFIG_MEMORY_FAILURE

View file

@ -154,6 +154,7 @@ config MEMORY_HOTPLUG
bool "Allow for memory hot-add"
depends on SPARSEMEM || X86_64_ACPI_NUMA
depends on ARCH_ENABLE_MEMORY_HOTPLUG
depends on ARM64
config MEMORY_HOTPLUG_SPARSE
def_bool y