Re: Bug? Sparc linux defines MAP_LOCKED == MAP_GROWSDOWN

Jamie Lokier (jamie@shareable.org)
Sat, 18 Jan 2003 08:53:31 +0000


David S. Miller wrote:
> From: Jamie Lokier <jamie@shareable.org>
> Date: Sat, 18 Jan 2003 03:29:40 +0000
>
> On Sparc and Sparc64, MAP_LOCKED and MAP_GROWSDOWN are both defined
> as 0x100. This is a bug, isn't it?
>
> Unfortunately it's one we're going to have to live with somehow.
> Probably by just saying MAP_GROWSDOWN is totally unsupported.
> I see no real use for it anyways.

I've never seen the point of it either - MAP_GROWSDOWN just allows the
stack to grow until it overwrites the next vma down, as far as I can
tell. No guard page or anything.

I think MAP_GROWSDOWN should simply be deleted on all architectures
(some don't support it even though they define the flag anyway).

However if that doesn't happen, isn't it best if MAP_LOCKED on the
Sparc _doesn't_ imply MAP_GROWSDOWN? That could lead to some peculiar
failure modes, if a program pokes an unmapped address (which a few do
for one reason or another) and happens to have a MAP_LOCKED region
above it.

I.e. I suggest renumbering MAP_GROWSDOWN in <asm-sparc{,64}/mman.h>.
Nobody in userspace will be using that, whereas there probably are a
few programs using MAP_LOCKED, and getting MAP_GROWSDOWN behaviour as
a bonus is a genuine bug.

cheers,
-- Jamie
-
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/