One of our engineers, Maciek, is working on a driver and stumbled upon what looks like a bug in the Xen kernel.  The report I got was:

 

We recently started to provide mmap functionality in our driver for Linux. Function for this:

 

int

NalMmap(

    struct file*                            File,

    struct vm_area_struct*  Vma

    )

{

    if(remap_pfn_range(Vma,

        Vma->vm_start,

        Vma->vm_pgoff,

        Vma->vm_end - Vma->vm_start,

        Vma->vm_page_prot))

    {

        return -EAGAIN;

    }

 

    return 0;

}

 

We discovered that this doesn’t work for xen kernels (but it doesn’t return any error, just does not map). I found that it is suggested to use io_remap_pfn_range instead of remap_pfn_range. After switching function everything still works on standard kernel, but on xen this time it returns error.

 

--

Don Dugger

"Censeo Toto nos in Kansa esse decisse." - D. Gale

Ph: 303/443-3786