[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [Xen 4.12 bug] HVM/PVH boot confusion



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.liu2@xxxxxxxxxx>
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.cooper3@xxxxxxxxxx>
Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx>
---
 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 )
+        rsdp_hint = pvh_info->rsdp_paddr;
 
     *mbi = &pvh_mbi;
     *mod = pvh_mbi_mods;
-- 
2.11.0


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

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.