[PATCH v7 01/15] arm64: kexec_file: Stop using the Image text_offset
sashiko-bot at kernel.org
sashiko-bot at kernel.org
Mon Oct 26 02:32:26 PDT 2026
> image_load() adds text_offset to kernel_segment->mem and subtracts it
> from kernel_segment->memsz. For CMA backed segments this breaks the
> load path: the payload is copied to page_address(cma), which is the CMA
> base, while image->start is set to the adjusted address, so kexec jumps
> into the middle of the kernel. kimage_map_segment() has the same
> mismatch when a segment has been moved.
>
> The adjusted memsz also breaks the release path: the CMA pages are
> freed using segment->memsz >> PAGE_SHIFT, which is fewer than were
> allocated, leaking the tail of the allocation.
>
> Since commit 751c263bb74f ("arm64: remove TEXT_OFFSET randomization")
> TEXT_OFFSET is always zero. This has been upstream since v5.8, so no
> LTS kernel carries a non-zero text_offset. Drop the adjustment and
> reject images with a non-zero value instead of booting them from a
> wrong address. With the adjustment gone, segments stay at their CMA
> base and the release size matches the allocation.
>
> Cc: Catalin Marinas <catalin.marinas at arm.com>
> Cc: Will Deacon <will at kernel.org>
> Cc: Mike Rapoport <rppt at kernel.org>
> Link: https://lore.kernel.org/all/20260921090450.807575-2-ruanjinjie@huawei.com/
> Link: https://lore.kernel.org/all/20260921090450.807575-3-ruanjinjie@huawei.com/
> Fixes: 07d24902977e ("kexec: enable CMA based contiguous allocation")
> Suggested-by: Mike Rapoport <rppt at kernel.org>
> Signed-off-by: Jinjie Ruan <ruanjinjie at huawei.com>
Sashiko has reviewed this patch and found no issues.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261026075201.699550-1-ruanjinjie@huawei.com?part=1
More information about the kexec
mailing list