aboutsummaryrefslogtreecommitdiff
path: root/mm/mincore.c
diff options
context:
space:
mode:
authorPeter Zijlstra <peterz@infradead.org>2012-06-22 13:36:05 +0200
committerBen Hutchings <ben@decadent.org.uk>2012-08-10 00:11:14 +0100
commitb75bfc42974aaf089ae7eae5d3c6bf362f57ee93 (patch)
treefdccebf8528123755b151ae4d504a6bb3c286368 /mm/mincore.c
parent46159f6e9d9a41a0ec1914f983e7ca6e416330c1 (diff)
sched: Fix race in task_group()
commit 8323f26ce3425460769605a6aece7a174edaa7d1 upstream Stefan reported a crash on a kernel before a3e5d1091c1 ("sched: Don't call task_group() too many times in set_task_rq()"), he found the reason to be that the multiple task_group() invocations in set_task_rq() returned different values. Looking at all that I found a lack of serialization and plain wrong comments. The below tries to fix it using an extra pointer which is updated under the appropriate scheduler locks. Its not pretty, but I can't really see another way given how all the cgroup stuff works. Reported-and-tested-by: Stefan Bader <stefan.bader@canonical.com> Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Link: http://lkml.kernel.org/r/1340364965.18025.71.camel@twins Signed-off-by: Ingo Molnar <mingo@kernel.org> (backported to previous file names and layout) Signed-off-by: Stefan Bader <stefan.bader@canonical.com> Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Diffstat (limited to 'mm/mincore.c')
0 files changed, 0 insertions, 0 deletions