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

[Xen-changelog] [xen-unstable] hvmloader: allow create_mp_tables() to allocate the table



# HG changeset patch
# User Ian Campbell <ian.campbell@xxxxxxxxxx>
# Date 1306943270 -3600
# Node ID 2f56ad4fc13b2ff29745e5fa2d2e10a65c9d8967
# Parent  d943f14c306e7e4e8b5e2ebd81cb6333c667989d
hvmloader: allow create_mp_tables() to allocate the table

Will be used by SeaBIOS.

Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
---


diff -r d943f14c306e -r 2f56ad4fc13b tools/firmware/hvmloader/mp_tables.c
--- a/tools/firmware/hvmloader/mp_tables.c      Wed Jun 01 16:47:27 2011 +0100
+++ b/tools/firmware/hvmloader/mp_tables.c      Wed Jun 01 16:47:50 2011 +0100
@@ -266,12 +266,27 @@
     int vcpu_nr, i, length;
     void *base;
     struct mp_io_intr_entry *mpiie;
-    struct mp_floating_pointer_struct *mpfps = _mpfps;
+    struct mp_floating_pointer_struct *mpfps;
 
     vcpu_nr = hvm_info->nr_vcpus;
 
     printf("Creating MP tables ...\n");
 
+    if (!_mpfps) {
+        int sz;
+
+        sz  = sizeof(struct mp_floating_pointer_struct);
+        sz += sizeof(struct mp_config_table);
+        sz += sizeof(struct mp_proc_entry) * vcpu_nr;
+        sz += sizeof(struct mp_bus_entry);
+        sz += sizeof(struct mp_ioapic_entry);
+        sz += sizeof(struct mp_io_intr_entry) * 16;
+
+        base = mem_alloc(sz, 0);
+    }
+
+    mpfps = _mpfps;
+
     base = &mpfps[1];
 
     p = base + sizeof(struct mp_config_table);

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

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