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

[Xen-devel] [PATCH] fix linux ioremap() of domain local memory

is_local_lowmem() treats its physical address input as a machine address; this causes agpgart to fail while calling ioremap_nocache().

X still does not load on my Athlon 64 / Via S3 Unichrome, so perhaps best not to apply just yet.

Signed-off-by: Avi Kivity <avi@xxxxxxxxxxxx>

--- xen-ioremap-fix/linux-2.6-xen-sparse/arch/i386/mm/ioremap-xen.c~ioremap     
2006-06-22 20:30:20.000000000 +0300
+++ xen-ioremap-fix/linux-2.6-xen-sparse/arch/i386/mm/ioremap-xen.c     
2006-06-22 20:31:09.000000000 +0300
@@ -206,13 +206,11 @@
 * Does @address reside within a non-highmem page that is local to this virtual
 * machine (i.e., not an I/O page, nor a memory page belonging to another VM).
- * See the comment that accompanies mfn_to_local_pfn() in page.h to understand
- * why this works.
static inline int is_local_lowmem(unsigned long address)
        extern unsigned long max_low_pfn;
-       return (mfn_to_local_pfn(address >> PAGE_SHIFT) < max_low_pfn);
+       return ((address >> PAGE_SHIFT) < max_low_pfn);


Do not meddle in the internals of kernels, for they are subtle and quick to 

Xen-devel mailing list



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