2014-10-11 08:52:19

by Hu Keping

[permalink] [raw]
Subject: Memory trample when using /dev/mem

Hi there,

Recently, I run a little testcase about using mmap to check
some physical address.What I found was that the different task can
read and write the same physical address at the same time.

For example,
I make proc1 to access 0x20000000, read and write "512" to
that address every 2 seconds. Meanwhile,I make proc2 to access
0x200000000, read and write "1024" to that address every 1 seconds.
The output is a mess, though it needs not be worry on this case,
but what about the proc1 and proc2 are both driver, and they mmap to the
same physical address?

As there are many drivers using /dev/mem and we can not
make sure that the different task will not trample on
each others memory.Shall we add some printk to help locating the problem
when error happened?


Thanks,
Hu Keping


2014-10-11 09:04:33

by Richard Weinberger

[permalink] [raw]
Subject: Re: Memory trample when using /dev/mem

On Sat, Oct 11, 2014 at 10:51 AM, Hu Keping <[email protected]> wrote:
> As there are many drivers using /dev/mem and we can not
> make sure that the different task will not trample on
> each others memory.Shall we add some printk to help locating the problem
> when error happened?

Actually no driver should use /dev/mem.
Please have a look at UIO.

--
Thanks,
//richard