Confidential computing guests require memory to be accepted before use. The unaccepted memory bitmap maintained by firmware does not track hotplugged memory ranges. Call arch_accept_memory() during the hot-add path to explicitly validate and transition the newly added memory to a private state, making it usable by the guest. Signed-off-by: Pratik R. Sampat --- mm/memory_hotplug.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c index a63ec679d861..8cfbf0541430 100644 --- a/mm/memory_hotplug.c +++ b/mm/memory_hotplug.c @@ -38,6 +38,7 @@ #include #include +#include #include "internal.h" #include "shuffle.h" @@ -1567,6 +1568,9 @@ int add_memory_resource(int nid, struct resource *res, mhp_t mhp_flags) if (!strcmp(res->name, "System RAM")) firmware_map_add_hotplug(start, start + size, "System RAM"); + if (IS_ENABLED(CONFIG_UNACCEPTED_MEMORY)) + arch_accept_memory(start, start + size); + /* device_online() will take the lock when calling online_pages() */ mem_hotplug_done(); -- 2.52.0