From 11aff98c848255f5ed3c339915e5ddccb12d57fb Mon Sep 17 00:00:00 2001
From: Zhang Xiantao <xiantao.zhang@intel.com>
Date: Thu, 20 Dec 2007 19:34:38 +0800
Subject: [PATCH] kvm: qemu: Add one empty entry in hob to adapt the requirement
of open guest firmware.
Since open guest firmware use hard-code to check
hob entries, so add one empty entry to workaround it.
Signed-off-by: Zhang Xiantao <xiantao.zhang@intel.com>
---
 qemu/target-ia64/firmware.c |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/qemu/target-ia64/firmware.c b/qemu/target-ia64/firmware.c
index 7b1a65d..2469350 100644
--- a/qemu/target-ia64/firmware.c
+++ b/qemu/target-ia64/firmware.c
@@ -72,6 +72,7 @@ typedef enum {
     HOB_TYPE_PAL_VM_INFO,
     HOB_TYPE_PAL_VM_PAGE_SIZE,
     HOB_TYPE_NR_VCPU,
+    HOB_TYPE_NR_NVRAM,
     HOB_TYPE_MAX
 } hob_type_t;
 
@@ -191,6 +192,13 @@ get_hob_size(void* hob_buf)
     return phit->length;
 }
 
+static  int
+add_max_hob_entry(void* hob_buf)
+{
+    long max_hob = 0;
+    return hob_add(hob_buf, HOB_TYPE_MAX, &max_hob, sizeof(long));
+}
+
 static int
 build_hob(void* hob_buf, unsigned long hob_buf_size,
           unsigned long dom_mem_size, unsigned long vcpus)
@@ -216,6 +224,10 @@ build_hob(void* hob_buf, unsigned long hob_buf_size,
         goto err_out;
     }
 
+    if (add_max_hob_entry(hob_buf) < 0) {
+        Hob_Output("Add max hob entry failed, buffer too small");
+        goto err_out;
+    }
     return 0;
 
 err_out:
-- 
1.5.2

