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