* remap_page_range
@ 2004-11-17 20:43 Thiago Robert dos Santos
2004-11-18 2:02 ` remap_page_range William Lee Irwin III
0 siblings, 1 reply; 2+ messages in thread
From: Thiago Robert dos Santos @ 2004-11-17 20:43 UTC (permalink / raw)
To: linux-kernel
[-- Attachment #1: Type: text/plain, Size: 1287 bytes --]
All,
I'm having a problem with remap_page_range in the 2.6 kernel series. I
use remap_page_range inside the mmap function of a module I wrote in
order to map a given device's memory into user space.
Apparently, everything works fine but I just can't access the device's
memory (even tough I get a valid point from the mmap system call). This
is the mmap function I wrote:
static int
pcimap_mmap (struct file *filp, struct vm_area_struct *vma)
{
int unit, reg;
unsigned long size, phy_addr;
unit = MINOR(filp->f_dentry->d_inode->i_rdev) >> 4;
reg = MINOR(filp->f_dentry->d_inode->i_rdev) & 0x0f;
size = vma->vm_end - vma->vm_start;
/* Mapping must be page aligned and not larger than the region size */
if ((size + vma->vm_pgoff * PAGE_SIZE) > pcidevs[unit].reg[reg].size)
{
return -EINVAL;
}
/* Get device's memory physical address for mapping */
phy_addr = pcidevs[unit].reg[reg].phy_addr + vma->vm_pgoff * PAGE_SIZE;
/* Map device's memory in the requested address space range */
if (remap_page_range (vma, phy_addr, 0, size, vma->vm_page_prot))
{
return -EAGAIN;
}
filp->f_dentry->d_inode->i_count.counter++;
return 0;
}
Can anyone help me?
Thanks in advance.
Thiago Robert
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: pcimap.c --]
[-- Type: text/x-csrc; name="pcimap.c", Size: 0 bytes --]
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: pcimap.h --]
[-- Type: text/x-chdr; name="pcimap.h", Size: 0 bytes --]
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #4: debug.h --]
[-- Type: text/x-chdr; name="debug.h", Size: 0 bytes --]
[-- Attachment #5: Makefile --]
[-- Type: application/octet-stream, Size: 0 bytes --]
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #6: pcimap_test.c --]
[-- Type: text/x-csrc; name="pcimap_test.c", Size: 0 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: remap_page_range
2004-11-17 20:43 remap_page_range Thiago Robert dos Santos
@ 2004-11-18 2:02 ` William Lee Irwin III
0 siblings, 0 replies; 2+ messages in thread
From: William Lee Irwin III @ 2004-11-18 2:02 UTC (permalink / raw)
To: Thiago Robert dos Santos; +Cc: linux-kernel
On Wed, Nov 17, 2004 at 06:43:46PM -0200, Thiago Robert dos Santos wrote:
> I'm having a problem with remap_page_range in the 2.6 kernel series. I
> use remap_page_range inside the mmap function of a module I wrote in
> order to map a given device's memory into user space.
> Apparently, everything works fine but I just can't access the device's
> memory (even tough I get a valid point from the mmap system call). This
> is the mmap function I wrote:
> static int
> pcimap_mmap (struct file *filp, struct vm_area_struct *vma)
> {
(1) set PG_reserved on all struct pages covering the physical region
(2) set VM_RESERVED|VM_IO in vma->vm_flags
-- wli
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2004-11-18 2:07 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-11-17 20:43 remap_page_range Thiago Robert dos Santos
2004-11-18 2:02 ` remap_page_range William Lee Irwin III
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.