[PATCH 8/9] x86: check kexec relocation code fits in a page

Daniel Kiper daniel.kiper at oracle.com
Mon Sep 16 08:34:34 EDT 2013


On Thu, Sep 12, 2013 at 08:49:06PM +0100, David Vrabel wrote:
> From: David Vrabel <david.vrabel at citrix.com>
>
> The kexec relocation (control) code must fit in a single page so add a
> link time check for this.
>
> Signed-off-by: David Vrabel <david.vrabel at citrix.com>
> ---
>  xen/arch/x86/xen.lds.S |    2 ++
>  1 files changed, 2 insertions(+), 0 deletions(-)
>
> diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
> index 9600cdf..078bac6 100644
> --- a/xen/arch/x86/xen.lds.S
> +++ b/xen/arch/x86/xen.lds.S
> @@ -198,3 +198,5 @@ SECTIONS
>    .stab.indexstr 0 : { *(.stab.indexstr) }
>    .comment 0 : { *(.comment) }
>  }
> +
> +ASSERT(__kexec_reloc_size <= PAGE_SIZE, "kexec control code is too large")

ASSERT(kexec_reloc_size - kexec_reloc <= PAGE_SIZE, "kexec control code is too large")

This way you could remove this crazy __kexec_reloc_size variable.
Last time I sent broken solution for that issue. This one works.

Daniel



More information about the kexec mailing list