mirror-linux/kernel/liveupdate
Mike Rapoport (Microsoft) 7b71205ae1 kho: fix restoring of contiguous ranges of order-0 pages
When contiguous ranges of order-0 pages are restored, kho_restore_page()
calls prep_compound_page() with the first page in the range and order as
parameters and then kho_restore_pages() calls split_page() to make sure
all pages in the range are order-0.

However, since split_page() is not intended to split compound pages and
with VM_DEBUG enabled it will trigger a VM_BUG_ON_PAGE().

Update kho_restore_page() so that it will use prep_compound_page() when it
restores a folio and make sure it properly sets page count for both large
folios and ranges of order-0 pages.

Link: https://lkml.kernel.org/r/20251125110917.843744-3-rppt@kernel.org
Fixes: a667300bd5 ("kho: add support for preserving vmalloc allocations")
Signed-off-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
Reported-by: Pratyush Yadav <pratyush@kernel.org>
Cc: Alexander Graf <graf@amazon.com>
Cc: Pasha Tatashin <pasha.tatashin@soleen.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2025-11-27 14:24:44 -08:00
..
Kconfig liveupdate: luo_core: Live Update Orchestrator 2025-11-27 14:24:37 -08:00
Makefile liveupdate: luo_file: implement file systems callbacks 2025-11-27 14:24:38 -08:00
kexec_handover.c kho: fix restoring of contiguous ranges of order-0 pages 2025-11-27 14:24:44 -08:00
kexec_handover_debug.c
kexec_handover_debugfs.c kho: remove abort functionality and support state refresh 2025-11-27 14:24:36 -08:00
kexec_handover_internal.h kho: remove abort functionality and support state refresh 2025-11-27 14:24:36 -08:00
luo_core.c liveupdate: luo_core: add user interface 2025-11-27 14:24:38 -08:00
luo_file.c liveupdate: luo_file: add private argument to store runtime state 2025-11-27 14:24:40 -08:00
luo_internal.h liveupdate: luo_file: implement file systems callbacks 2025-11-27 14:24:38 -08:00
luo_session.c liveupdate: luo_session: add ioctls for file preservation 2025-11-27 14:24:39 -08:00