On 09/06/15 13:03, Jan Beulich wrote:
> Destination pages need mappings to be added to the page tables in the
> v1 case (where nothing else calls machine_kexec_add_page() for them).
>
> Further, without the tools mapping the low 1Mb (expected by at least
> some Linux version), we need to do so in the hypervisor in the v1 case.
>
> Suggested-by: David Vrabel <david.vra...@citrix.com>
> Signed-off-by: Jan Beulich <jbeul...@suse.com>
> Tested-by: Alan Robinson <alan.robin...@ts.fujitsu.com>
>
> --- a/xen/common/kexec.c
> +++ b/xen/common/kexec.c
> @@ -1003,6 +1003,24 @@ static int kexec_do_load_v1(xen_kexec_lo
>      if ( ret < 0 )
>          goto error;
>  
> +    if ( arch == EM_386 || arch == EM_X86_64 )
> +    {
> +        /*
> +         * Ensure 0 - 1 MiB is mapped and accessible by the image.
> +         *
> +         * This allows access to VGA memory and the region purgatory copies
> +         * in the crash case.
> +         */
> +        unsigned long addr;
> +
> +        for ( addr = 0; addr < (1UL << 20); addr += PAGE_SIZE )

MB(1)

Otherwise, Reviewed-by: Andrew Cooper <andrew.coop...@citrix.com>

> +        {
> +            ret = machine_kexec_add_page(kimage, addr, addr);
> +            if ( ret < 0 )
> +                goto error;
> +        }
> +    }
> +
>      ret = kexec_load_slot(kimage);
>      if ( ret < 0 )
>          goto error;
> --- a/xen/common/kimage.c
> +++ b/xen/common/kimage.c
> @@ -923,6 +923,11 @@ int kimage_build_ind(struct kexec_image 
>              ret = kimage_add_page(image, page_to_maddr(xen_page));
>              if ( ret < 0 )
>                  goto done;
> +
> +            ret = machine_kexec_add_page(image, dest, dest);
> +            if ( ret < 0 )
> +                goto done;
> +
>              dest += PAGE_SIZE;
>              break;
>          }
>
>
>
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

Reply via email to