[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20100204144511.b50d3191.kamezawa.hiroyu@jp.fujitsu.com>
Date: Thu, 4 Feb 2010 14:45:11 +0900
From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@...fujitsu.com>
To: Oleg Kutkov <elenbert@...il.com>
Cc: linux-kernel@...r.kernel.org
Subject: Re: Problem with set_memory_rw
On Thu, 04 Feb 2010 07:26:25 +0200
Oleg Kutkov <elenbert@...il.com> wrote:
> Hello, this is my first post in a mailing list, so excuse me if
> something wrong...
> I'm new in kernel and try to do some manipulation with memory pages.
> For manipulating memory page attributes i used set_memory_rw(),
> but function returning 0 and i can't continue writing to memory,
> because page, that i want to change, is read only by default.
> This is part of my code:
>
>
> long unsigned addr;
>
> addr = 0x0509940; //this is addres in memory, that i want
> to overwrite (read only, for default)
>
> set_memory_rw(addr, 1); //try to set rw permission on this addres for
> one memory page.
>
>
> So, function return zero, this is error, as i can understand. If i try
> to write by this address - kernel write in log error messages, such as
> "Unable to handle kernel request at address 0x0509940".
> This is kernel bug or something wrong in my code?
>
> Thank for any help.
>
set_memory_rw()'s 1st argument requires virtual address.
So, you need virtual address of the page you want.
- phys_to_virt() ... convert physical address to virtual address.
- virt_to_phys() ... convert virtual address to physical.
Anyway, RW is vitual address mapping's attribute and not for physical.
Thanks,
-Kame
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists