Re: build problems on architectures where FIXADDR_* stuff is not

Andrew Morton (akpm@digeo.com)
Tue, 13 May 2003 16:56:06 -0700


Andrew Morton <akpm@digeo.com> wrote:
>
> The new code in get_user_pages() is rather rude - it's returning a
> statically allocated VMA which isn't in the VMA tree - the caller (who
> holds mmap_sem()) could reasonably expect that the VMA can be located via
> find_vma(), or removed from the tree or whatever. But it cannot.
>
> I think it needs to be redone. Either by stuffing a VMA into every
> process's mm which describes the fixmap area, or by failing
> get_user_pages() if the caller has passed in a non-NULL `vmas' and is
> requesting access to the fixmap area.

Or by lazily instantiating the fixmap VMA within get_user_pages(). So if
someone happens to want to access the fixmap, that's when the vma which
describes it gets stuffed into the tree.

That'd require that get_user_pages() be called under down_write(mmap_sem).

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