Linux-kernel mailing list archive 1998-49,: mmap() of kernel space buffer problem

# mmap() of kernel space buffer problem

Juergen Hannappel (hannappe@lisa2.physik.uni-bonn.de)
07 Dec 1998 11:06:00 +0100

- Messages sorted by: [ date ][ thread ][ subject ][ author ]
- Next message: Nathan Myers: "2.1.131 Oops"
- Previous message: Neil Conway: "Re: Problem with 1G RAM"

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/

- Next message: Nathan Myers: "2.1.131 Oops"
- Previous message: Neil Conway: "Re: Problem with 1G RAM"