Messages in this thread |  | | | Subject | mmap() of kernel space buffer problem | | From | Juergen Hannappel <> | | Date | 07 Dec 1998 11:06:00 +0100 |
| |
Hello, in my VMEBus driver for the Universe PCI/VME Bridge i encountered a strange problem: I allocated (via __get_free_pages) a buffer in kernel space and mmap()ed that into user space with the followin code in the mmap() function of the driver: retval = remap_page_range(vma->vm_start, vma->vm_offset + virt_to_phys(p->DMA_buffer), vma->vm_end - vma->vm_start, vma->vm_page_prot); Then i can do DMA transfers (PCI Busmaster DMA) from this buffer to the VMEBus and in the other direction, from VME to the buffer. If i transfer from VME to the buffer the data are in the buffer, as a printk() in the driver shows --- but in the user space the mmap()ed buffer still contains only zeroes, even if a mmap() after the DMA transfer. If i write from userspace into the mmap()ed buffer the data appear in the kernel buffer and can also be transferred to the VMEBus. I am at a loss about the cause, so please give a hint at what is wrong.
Thanks, Juergen -- $RCSfile: .signature,v $ $Revision: 1.14 $ Phone: +49 228 73 2447 Dr. Juergen Hannappel Office: W148 FAX +49 228 73 7869 mailto:hannappe@lisa2.physik.uni-bonn.de Physikalisches Institut der Uni Bonn http://lisa2.physik.uni-bonn.de/~hannappe Nussallee 12, D-53115 Bonn, Germany
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
|  |