]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
s390/sclp_mem: Consider global memory_hotplug.memmap_on_memory setting
authorSumanth Korikkar <sumanthk@linux.ibm.com>
Wed, 5 Nov 2025 12:55:28 +0000 (13:55 +0100)
committerHeiko Carstens <hca@linux.ibm.com>
Thu, 6 Nov 2025 13:18:23 +0000 (14:18 +0100)
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 <sumanthk@linux.ibm.com>
Reviewed-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
drivers/s390/char/sclp_mem.c

index 3a7a69615d99d703a105deceac14f40fa917fe7e..bc515a24b3f2bebdd4d564e0f9a865a7a7daf57a 100644 (file)
@@ -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;