Re: [PATCH 03/16] IA64: use ACCESS_ONCE for rlimits

From: Ingo Molnar
Date: Wed Nov 18 2009 - 21:29:09 EST



* Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:

> So the rule is: if you access unlocked values, you use ACCESS_ONCE().
> You don't say "but it can't matter". Because you simply don't know.

Most of the time we are being lax about it, especially when it's some
global value we are accessing, which can only be changed as a sysadmin
via a sysctl or so.

[ For example we access pid_max in kernel/pid.c, outside of any lock and
without ACCESS_ONCE() - but that particular case is not a big deal
because changes to pid_max via a sysctl are so rare and are
privileged, and because the effects of any race there are benign. ]

But this patch series is about setrlimit, which makes the per task
rlimit value pretty SMP-volatile (a parallel, unprivileged setrlimit can
race with usage of the value elsewhere) - and the rlimits have security
relevance as well so some extra care in accessing them outside of locks
is prudent IMO.

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