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

Re: [Xen-devel] Userspace PIO access under xen



Quoting r. Ian Pratt <m+Ian.Pratt@xxxxxxxxxxxx>:
> Subject: RE: [Xen-devel] Userspace PIO access under xen
> 
>  
> 
> > The following simple program (below) mmaps PCI I/O memory 
> > into userspace. This works fine under linux, but not in Xen dom0.
> > 
> > Linux:
> > 
> > # ./test1 /sys/bus/pci/devices/0000\:07\:00.0/resource0 0 0 0
> > 
> > Xen dom0:
> > 
> > # ./test1 /sys/bus/pci/devices/0000\:07\:00.0/resource0 0 0 0xf000eef3
> 
> 
> Interesting -- I didn't know you could use /sys/bus/pci/devices/ for
> mapping memory.
> 
> Change pci_mmap_page_range in arch/xen/arch/pci/i386.c to use
> io_remap_pfn_range
> 
> I'll check something in.
> 
> Ian
> 

OK, the following seems to work. Thanks!

---

Make pci_mmap_page_range use io_remap_pfn_range.
This fixes mmap for resources under /sys/bus/pci/devices/

Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxxxxxx>

Index: linux-2.6.12-xen0/arch/i386/pci/i386.c
===================================================================
--- linux-2.6.12-xen0/arch/i386/pci/i386.c
+++ linux-2.6.12-xen0/arch/i386/pci/i386.c
@@ -295,7 +295,7 @@ int pci_mmap_page_range(struct pci_dev *
        /* Write-combine setting is ignored, it is changed via the mtrr
         * interfaces on this platform.
         */
-       if (remap_pfn_range(vma, vma->vm_start, vma->vm_pgoff,
+       if (io_remap_pfn_range(vma, vma->vm_start, vma->vm_pgoff,
                             vma->vm_end - vma->vm_start,
                             vma->vm_page_prot))
                return -EAGAIN;

-- 
MST

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