From: Sumanth Korikkar Date: Wed, 5 Nov 2025 12:55:28 +0000 (+0100) Subject: s390/sclp_mem: Consider global memory_hotplug.memmap_on_memory setting X-Git-Tag: v6.19-rc1~206^2~22 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c1287d67c3a91aa19e4d9bbd3ad943cfbfa6bed4;p=thirdparty%2Flinux.git s390/sclp_mem: Consider global memory_hotplug.memmap_on_memory setting When the global kernel command line parameter memory_hotplug.memmap_on_memory is set to false, per-memory-block memmap_on_memory setting can still be set to true. However, when configuring memory block, add_memory_resource() would configure it without memmap_on_memory. i.e. Even if the MHP_MEMMAP_ON_MEMORY flag is set, mhp_supports_memmap_on_memory() returns false unless the kernel command line parameter "memory_hotplug.memmap_on_memory" is enabled. When both the flag and the cmdline parameter are set, the memory block can be configured with or without memmap_on_memory support. To ensure consistent behavior, permit configuring per-memory-block memmap_on_memory only when the memory_hotplug.memmap_on_memory kernel command line parameter is enabled. This is similar to commit 73954d379efd ("dax: add a sysfs knob to control memmap_on_memory behavior") Fixes: ff18dcb19aab ("s390/sclp: Add support for dynamic (de)configuration of memory") Signed-off-by: Sumanth Korikkar Reviewed-by: Heiko Carstens Signed-off-by: Heiko Carstens --- diff --git a/drivers/s390/char/sclp_mem.c b/drivers/s390/char/sclp_mem.c index 3a7a69615d99d..bc515a24b3f2b 100644 --- a/drivers/s390/char/sclp_mem.c +++ b/drivers/s390/char/sclp_mem.c @@ -275,6 +275,8 @@ static ssize_t sclp_memmap_on_memory_store(struct kobject *kobj, struct kobj_att rc = kstrtobool(buf, &value); if (rc) return rc; + if (value && !mhp_supports_memmap_on_memory()) + return -EOPNOTSUPP; rc = lock_device_hotplug_sysfs(); if (rc) return rc;