Messages in this thread | | | Date | Mon, 6 Apr 2009 13:58:07 -0400 | From | Mathieu Desnoyers <> | Subject | Re: [BUGFIX][PATCH -tip] x86: fix text_poke to handle highmem pages |
| |
* Masami Hiramatsu (mhiramat@redhat.com) wrote: > Mathieu Desnoyers wrote: > > * Masami Hiramatsu (mhiramat@redhat.com) wrote: > >> Fix a bug in text_poke to handle highmem pages, because module > >> text pages are possible to be highmem pages on x86-32. > >> In that case, since fixmap can't handle those pages, text_poke > >> uses kmap_atomic. > >> > > > > Hrm, can you remind me what would be the downside of using kmap_atomic > > in every scenarios (highmem and non-highmem) then ? > > kmap_atomic can handle only highmem pages. If you passes lowmem pages, > it returns just original vaddr of it. (because kmap is only for > highmem support) >
OK, and if we are doing a second kmap_atomic() of a module text page which is already mapped, does the second kmap_atomic return the vaddr of the page originally mapped or is it creating a second mapping ?
Because if we ever decide to enforce read-only page mapping for module text pages, touching highmem pages too, we will run into real trouble if those happen to be the same page.
Mathieu
> > > > I would try to avoid "special cases" as much as possible, because they > > just make problems harder to reproduce. > > Actually, this bug is a special case because it happens only on PAE kernel. > > > > > The idea would be to either add fixmap highmem support, or to simply use > > kmap_atomic() for all cases until we add fixmap highmem support. > > > > > Thank you, > > -- > Masami Hiramatsu > > Software Engineer > Hitachi Computer Products (America) Inc. > Software Solutions Division > > e-mail: mhiramat@redhat.com >
-- Mathieu Desnoyers OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
| |