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

Re: [Xen-devel] [PATCH] Fix >4G i386 PAE grant table interface



>>> Steven Rostedt <srostedt@xxxxxxxxxx> 02.11.06 17:53 >>>
>It has been discovered that i386 boxes with more than 4G of RAM would 
>randomly crash.  It was traced to the interface of blktap using 
>gnttab_set_map_op.
>
>It would pass in the 64 bit pte entry, but the gnttab_set_map_op would 
>only take a 32 bit (on i386) unsigned long as a parameter. So we lose 
>the top 32bits.
>
>Luckily!  The kernel/HV ABI used a uint64_t as the variable to pass the 
>address.  So this does *NOT* break the current kernel/HV ABI.
>
>But after the HV grabs the 64 bit address from the guest, it too calls a 
>function that uses a unsigned long (32bits on i386) to pass that address 
>with.  So the HV side also chops off the top 64 bits of the variable.
>
>
>This patch updates both the linux-2.6-sparse tree and the xen HV to use 
>uint64_t instead of unsigned long for those particular functions.  This 
>patch has been tested on RHEL5 Beta on a box with 12G i386.
>
>Signed-off-by: Steven Rostedt <srostedt@xxxxxxxxxx>

After integrating the kernel part of this patch in my tree, I found that
almost the whole kernel got rebuilt.
include/asm-{i386,x86_64}/mach-xen/asm/fixmap.h were needlessly
including include/xen/gnttab.h. Removing this made necessary explicit
inclusion of that header in tpm_xen.c, the build of which should not
have succeeded on non-x86 architectures before.

Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>

Index: head-2006-10-30/drivers/char/tpm/tpm_xen.c
===================================================================
--- head-2006-10-30.orig/drivers/char/tpm/tpm_xen.c     2006-10-30 
13:36:39.000000000 +0100
+++ head-2006-10-30/drivers/char/tpm/tpm_xen.c  2006-11-03 10:41:32.000000000 
+0100
@@ -41,6 +41,7 @@
 #include <xen/evtchn.h>
 #include <xen/interface/grant_table.h>
 #include <xen/interface/io/tpmif.h>
+#include <xen/gnttab.h>
 #include <xen/xenbus.h>
 #include "tpm.h"
 #include "tpm_vtpm.h"
Index: head-2006-10-30/include/asm-i386/mach-xen/asm/fixmap.h
===================================================================
--- head-2006-10-30.orig/include/asm-i386/mach-xen/asm/fixmap.h 2006-08-28 
10:57:30.000000000 +0200
+++ head-2006-10-30/include/asm-i386/mach-xen/asm/fixmap.h      2006-11-03 
10:30:39.000000000 +0100
@@ -27,7 +27,6 @@ extern unsigned long __FIXADDR_TOP;
 #include <asm/acpi.h>
 #include <asm/apicdef.h>
 #include <asm/page.h>
-#include <xen/gnttab.h>
 #ifdef CONFIG_HIGHMEM
 #include <linux/threads.h>
 #include <asm/kmap_types.h>
Index: head-2006-10-30/include/asm-x86_64/mach-xen/asm/fixmap.h
===================================================================
--- head-2006-10-30.orig/include/asm-x86_64/mach-xen/asm/fixmap.h       
2006-08-28 10:57:30.000000000 +0200
+++ head-2006-10-30/include/asm-x86_64/mach-xen/asm/fixmap.h    2006-11-03 
10:30:50.000000000 +0100
@@ -14,7 +14,6 @@
 #include <linux/config.h>
 #include <linux/kernel.h>
 #include <asm/apicdef.h>
-#include <xen/gnttab.h>
 #include <asm/page.h>
 #include <asm/vsyscall.h>
 #include <asm/vsyscall32.h>


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


 


Rackspace

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