Re: do_mmap

Alan Cox (alan@lxorguk.ukuu.org.uk)
31 May 2002 19:59:30 +0100


On Fri, 2002-05-31 at 18:30, Linus Torvalds wrote:
> >> is it possible to have 0 as a valid address? - if not, this should
> >> be the return on errors.
> >
> >SuS explicitly says that 0 is not a valid mmap return address.
>
> But if so, SuS is _very_ _very_ wrong.
>
> The fact is, if you use something like vm86 mode, you absolutely _need_
> to be able to explicitly mmap at address 0.
>
> So it is correct (and in fact there is no other sane way to do it) to
> say
>
> addr = mmap(NULL, 1024*1024,
> PROT_READ | PROT_WRITE ,
> MAP_ANONYMOUS | MAP_PRIVATE | MAP_FIXED,
> -1, 0);
>
> and if SuS says that mmap must not return NULL for this case, then SuS
> is so full of sh*t that it's not worth worrying about.

SuS doesn't have this requirement in the case of MAP_FIXED.

For normal maps it says

"When the implementation selects a value for pa, it never places a mapping
at address 0, nor does it replace any extant mapping."

For MAP_FIXED it says the return value shal be that of pa (first
argument) exactly

-
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/