On 30/01/2019 14:38, Wei Liu wrote:
> On Wed, Jan 30, 2019 at 12:46:45PM +0000, Wei Liu wrote:
>> On Wed, Jan 30, 2019 at 12:30:44PM +0000, Andrew Cooper wrote:
>>>>> There are at least two bugs here.
>>>>>
>>>>> 1) RSDP was a late addition to the PVH boot protocol.  Xen's PVH
>>>>> entrypoint must not mandate its existence, because there are releases of
>>>>> the domain builder which don't provide it.
>>>> The inner Xen, in this case, can fall back to scanning low 1MB memory
>>>> for RSDP.
>>>
>>> Agreed.
> 
> ---8<---
> From 46e3686355da177955ca63ce3e8cf6a80cdb897d Mon Sep 17 00:00:00 2001
> From: Wei Liu <wei.l...@citrix.com>
> Date: Wed, 30 Jan 2019 13:31:32 +0000
> Subject: [PATCH] x86/pvh: don't mandate presence of RSDP pointer
> 
> RSDP hint is not mandatory according to PVH spec. Only set the hint if
> pvh_info contains a valid pointer. The guest (xen) will fall back to
> scanning for RSDP in lower 1MB of memory.
> 
> Reported-by: Andrew Cooper <andrew.coop...@citrix.com>
> Signed-off-by: Wei Liu <wei.l...@citrix.com>
> ---
>  xen/arch/x86/guest/pvh-boot.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/arch/x86/guest/pvh-boot.c b/xen/arch/x86/guest/pvh-boot.c
> index 544775eeb4..c6e21fa83b 100644
> --- a/xen/arch/x86/guest/pvh-boot.c
> +++ b/xen/arch/x86/guest/pvh-boot.c
> @@ -79,8 +79,8 @@ static void __init convert_pvh_info(multiboot_info_t **mbi,
>          pvh_mbi_mods[i].string    = entry[i].cmdline_paddr;
>      }
>  
> -    BUG_ON(!pvh_info->rsdp_paddr);
> -    rsdp_hint = pvh_info->rsdp_paddr;
> +    if ( pvh_info->rsdp_paddr )

Why do you need the if here? rsdp_hint is NULL initially.

So just removing the BUG_ON() seems to be required.


Juergen


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

Reply via email to