Messages in this thread Patch in this message | | | From | Jiri Slaby <> | Subject | [PATCH 1/1] kernel core: use helpers for rlimits fix | Date | Wed, 10 Feb 2010 20:59:08 +0100 |
| |
This is unmerged part of kernel-core-use-helpers-for-rlimits.patch
Please amend.
--
Make sure compiler won't do weird things with limits. E.g. fetching them twice may return 2 different values after writable limits are implemented.
I.e. either use rlimit helpers added in 3e10e716abf3c71bdb5d86b8f507f9e72236c9cd or ACCESS_ONCE if not applicable.
Signed-off-by: Jiri Slaby <jslaby@suse.cz> Cc: Ingo Molnar <mingo@elte.hu> Cc: Andrew Morton <akpm@linux-foundation.org> --- kernel/fork.c | 8 +++++--- 1 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/kernel/fork.c b/kernel/fork.c index 11a84db..13ec487 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -828,12 +828,14 @@ void __cleanup_sighand(struct sighand_struct *sighand) */ static void posix_cpu_timers_init_group(struct signal_struct *sig) { + unsigned long cpu_limit; + /* Thread group counters. */ thread_group_cputime_init(sig); - if (sig->rlim[RLIMIT_CPU].rlim_cur != RLIM_INFINITY) { - sig->cputime_expires.prof_exp = - secs_to_cputime(sig->rlim[RLIMIT_CPU].rlim_cur); + cpu_limit = ACCESS_ONCE(sig->rlim[RLIMIT_CPU].rlim_cur); + if (cpu_limit != RLIM_INFINITY) { + sig->cputime_expires.prof_exp = secs_to_cputime(cpu_limit); sig->cputimer.running = 1; } -- 1.6.6.1
| |