| From: Pasha Tatashin <pasha.tatashin@soleen.com> |
| Subject: kho: mm: don't allow deferred struct page with KHO |
| Date: Fri, 8 Aug 2025 20:18:03 +0000 |
| |
| KHO uses struct pages for the preserved memory early in boot, however, |
| with deferred struct page initialization, only a small portion of memory |
| has properly initialized struct pages. |
| |
| This problem was detected where vmemmap is poisoned, and illegal flag |
| combinations are detected. |
| |
| Don't allow them to be enabled together, and later we will have to teach |
| KHO to work properly with deferred struct page init kernel feature. |
| |
| Link: https://lkml.kernel.org/r/20250808201804.772010-3-pasha.tatashin@soleen.com |
| Fixes: 4e1d010e3bda ("kexec: add config option for KHO") |
| Signed-off-by: Pasha Tatashin <pasha.tatashin@soleen.com> |
| Acked-by: Mike Rapoport (Microsoft) <rppt@kernel.org> |
| Acked-by: Pratyush Yadav <pratyush@kernel.org> |
| Cc: Alexander Graf <graf@amazon.com> |
| Cc: Arnd Bergmann <arnd@arndb.de> |
| Cc: Baoquan He <bhe@redhat.com> |
| Cc: Changyuan Lyu <changyuanl@google.com> |
| Cc: Coiby Xu <coxu@redhat.com> |
| Cc: Dave Vasilevsky <dave@vasilevsky.ca> |
| Cc: Eric Biggers <ebiggers@google.com> |
| Cc: Kees Cook <kees@kernel.org> |
| Cc: <stable@vger.kernel.org> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| kernel/Kconfig.kexec | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| --- a/kernel/Kconfig.kexec~kho-mm-dont-allow-deferred-struct-page-with-kho |
| +++ a/kernel/Kconfig.kexec |
| @@ -97,6 +97,7 @@ config KEXEC_JUMP |
| config KEXEC_HANDOVER |
| bool "kexec handover" |
| depends on ARCH_SUPPORTS_KEXEC_HANDOVER && ARCH_SUPPORTS_KEXEC_FILE |
| + depends on !DEFERRED_STRUCT_PAGE_INIT |
| select MEMBLOCK_KHO_SCRATCH |
| select KEXEC_FILE |
| select DEBUG_FS |
| _ |