On Tue, Apr 03, 2018 at 05:54:14PM +0200, Daniel Kiper wrote:
> Commit 0d31d16 (x86/setup: do not relocate Xen over current Xen image
> placement) disallowed src/dst images overlaps when relocating Xen image.
> Though it deliberately allowed destination region between __image_base__
> and (__image_base__ + XEN_IMG_OFFSET) overlaps with the end of source
> image. And here is the problem. If anything between __page_tables_start
> and __page_tables_end in source image lands in the overlap then some or
> even all page table entries may not be updated. This usually means boom
> in early boot which will be difficult to the investigate. So, I think
> that we have three choices to fix the issue:
> - drop XEN_IMG_OFFSET from
> if ( (end > s) && (end - reloc_size + XEN_IMG_OFFSET >= __pa(_end)) )
> - add XEN_IMG_OFFSET to xen_phys_start in PFN_DOWN(xen_phys_start)
> used in loops as one of conditions,
> - change PFN_DOWN(xen_phys_start) to PFN_DOWN(xen_remap_end_pfn)
> proposed in earlier version of this patch.
> This patch implements the first option. This way we will avoid all kinds
> of overlaps which are always full can of worms.
> Signed-off-by: Daniel Kiper <daniel.ki...@oracle.com>
Xen-devel mailing list