From c1287d67c3a91aa19e4d9bbd3ad943cfbfa6bed4 Mon Sep 17 00:00:00 2001 From: Sumanth Korikkar Date: Wed, 5 Nov 2025 13:55:28 +0100 Subject: [PATCH] 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 --- drivers/s390/char/sclp_mem.c | 2 ++ 1 file changed, 2 insertions(+) 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; -- 2.47.3