# git rev-parse -q --verify 9ef34630a4614ee1cd478f9859ebea55d55f10ec^{commit} 9ef34630a4614ee1cd478f9859ebea55d55f10ec already have revision, skipping fetch # git checkout -q -f -B kisskb 9ef34630a4614ee1cd478f9859ebea55d55f10ec # git clean -qxdf # < git log -1 # commit 9ef34630a4614ee1cd478f9859ebea55d55f10ec # Author: Oliver O'Halloran # Date: Fri Dec 7 02:17:14 2018 +1100 # # powerpc/mm: Fallback to RAM if the altmap is unusable # # The "altmap" is used to provide a pool of memory that is reserved for # the vmemmap backing of hot-plugged memory. This is useful when adding # large amount of ZONE_DEVICE memory to a system with a limited amount of # normal memory. # # On ppc64 we use huge pages to map the vmemmap which requires the backing # storage to be contigious and aligned to the hugepage size. The altmap # implementation allows for the altmap provider to reserve a few PFNs at # the start of the range for it's own uses and when this occurs the # first chunk of the altmap is not usable for hugepage mappings. On hash # there is no sane way to fall back to a normal sized page mapping so we # fail the allocation. This results in memory hotplug failing with # ENOMEM when the new range doesn't fall into an existing vmemmap block. # # This patch handles this case by falling back to using system memory # rather than failing if we cannot allocate from the altmap. This # fallback should only ever be used for the first vmemmap block so it # should not cause excess memory consumption. # # Fixes: 7b73d978a5d0 ("mm: pass the vmem_altmap to vmemmap_populate") # Signed-off-by: Oliver O'Halloran # Signed-off-by: Michael Ellerman # < /opt/cross/kisskb/gcc-4.6.3-nolibc/powerpc-linux/bin/powerpc-linux-gcc --version # < git log --format=%s --max-count=1 9ef34630a4614ee1cd478f9859ebea55d55f10ec # < make -s -j 120 ARCH=powerpc O=/kisskb/build/powerpc-fixes_44x_canyonlands_defconfig_powerpc CROSS_COMPILE=/opt/cross/kisskb/gcc-4.6.3-nolibc/powerpc-linux/bin/powerpc-linux- 44x/canyonlands_defconfig # make -s -j 120 ARCH=powerpc O=/kisskb/build/powerpc-fixes_44x_canyonlands_defconfig_powerpc CROSS_COMPILE=/opt/cross/kisskb/gcc-4.6.3-nolibc/powerpc-linux/bin/powerpc-linux- /kisskb/src/kernel/printk/printk.c: In function 'devkmsg_sysctl_set_loglvl': /kisskb/src/kernel/printk/printk.c:186:16: warning: 'old' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/fs/proc/inode.c: In function 'proc_reg_open': /kisskb/src/include/linux/list.h:65:12: warning: 'pdeo' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/fs/proc/inode.c:341:21: note: 'pdeo' was declared here /kisskb/src/drivers/base/regmap/regmap.c: In function 'regmap_raw_read': /kisskb/src/drivers/base/regmap/regmap.c:2594:6: warning: 'ret' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/drivers/i2c/i2c-core-base.c: In function 'i2c_generic_scl_recovery': /kisskb/src/drivers/i2c/i2c-core-base.c:235:5: warning: 'ret' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/drivers/base/regmap/regmap.c: In function '_regmap_raw_write': /kisskb/src/drivers/base/regmap/regmap.c:1855:6: warning: 'ret' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/drivers/tty/serial/8250/8250_core.c: In function 'univ8250_release_irq': /kisskb/src/drivers/tty/serial/8250/8250_core.c:247:18: warning: 'i' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/drivers/tty/serial/8250/8250_core.c:227:19: note: 'i' was declared here Completed OK # rm -rf /kisskb/build/powerpc-fixes_44x_canyonlands_defconfig_powerpc # Build took: 0:00:20.855252