Re: PROBLEM: Is remap_page_range() working properly?

From: Andrea Santoro (mc8835@mclink.it)
Date: Sat Sep 23 2000 - 07:56:41 EST


Thanx for the answer.

> You can only remap reserved or I/O space
> Read drivers/sound a bit - it has code that allocates, reserves and remaps
> memory

Oh, now I see why I found so many references to
remap_page_range() in sound cards code. But there is still
something that seems odd to me:

1) Why using the remap_page_range() to perform the mmap() of
/dev/mem ?
In this way, as I happened to find out, you can mmap() only the
reserved pages of physical memory, when theoretically /dev/mem
should grant you access to the whole physical memory in the
system; and performing a read() or write() system call on /dev/mem
affects even non-reserved pages (I tested the read(), and the code
of write() seems to me to behave in the same way).
Is there any theoretical reason that suggests that mmap() should
not be able to read pages accessible with read() and write()?

2) Wouldn't it be a good idea to change the comment about the
remap_page_range()? It states:

> maps a range of physical memory into the requested pages. the
> old mappings are removed. any references to nonexistent pages
> results in null mappings (currently treated as "copy-on-access")

There is no reference to the fact that only the reserved pages in
physical memory can be mapped. No mention of I/O addresses is
present, as well. And no mention that references to non-reserved
physical pages will result in null mappings.

just my 2c, of course.

- Andrea Santoro
- mc8835@mclink.it
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Sep 23 2000 - 21:00:29 EST