Avi Kivity
2006-Jun-22 18:08 UTC
[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@qumranet.com> --- 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 panic. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Avi Kivity
2006-Jun-25 10:17 UTC
[Xen-devel] Re: [PATCH] fix linux ioremap() of domain local memory
Avi Kivity wrote:> 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.This is bogus: ioremap_nocache() does accept machine addresses, but x86_64 agpgart passes it a physical address. This is because x86_64 lacks the address translation bits: --- /dev/null 2006-06-25 13:08:55.714359750 +0300 +++ include/asm-x86_64/mach-xen/asm/agp.h 2006-06-25 13:15:12.000000000 +0300 @@ -0,0 +1 @@ +#include "../../../asm-i386/mach-xen/asm/agp.h" Still locks up hard when starting up X, but now the gart table is remapped correctly at least. -- error compiling committee.c: too many arguments to function _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel