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

[Xen-changelog] [xen-unstable] x86 numa: Fix post-boot ACPI SLIT accesses.



# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1267131806 0
# Node ID 94535cc638355c1981c10626f720df97f7c99f55
# Parent  5db0a9bd6a500233194283206ee1cbd8cc52f47d
x86 numa: Fix post-boot ACPI SLIT accesses.

Signed-off-by: Nitin A Kamble <nitin.a.kamble@xxxxxxxxx>
---
 xen/arch/x86/srat.c |   19 +++++++++++++++----
 1 files changed, 15 insertions(+), 4 deletions(-)

diff -r 5db0a9bd6a50 -r 94535cc63835 xen/arch/x86/srat.c
--- a/xen/arch/x86/srat.c       Thu Feb 25 21:00:54 2010 +0000
+++ b/xen/arch/x86/srat.c       Thu Feb 25 21:03:26 2010 +0000
@@ -140,11 +140,22 @@ static __init int slit_valid(struct acpi
 /* Callback for SLIT parsing */
 void __init acpi_numa_slit_init(struct acpi_table_slit *slit)
 {
+#ifdef CONFIG_X86_64
+       unsigned long mfn;
        if (!slit_valid(slit)) {
-               printk(KERN_INFO "ACPI: SLIT table looks invalid. Not used.\n");
-               return;
-       }
-       acpi_slit = slit;
+               printk(KERN_INFO "ACPI: SLIT table looks invalid. "
+                      "Not used.\n");
+               return;
+       }
+       mfn = alloc_boot_pages(PFN_UP(slit->header.length), 1);
+       if (!mfn) {
+               printk(KERN_ERR "ACPI: Unable to allocate memory for "
+                      "saving ACPI SLIT numa information.\n");
+               return;
+       }
+       acpi_slit = mfn_to_virt(mfn);
+       memcpy(acpi_slit, slit, slit->header.length);
+#endif
 }
 
 /* Callback for Proximity Domain -> LAPIC mapping */

_______________________________________________
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®.