summaryrefslogtreecommitdiffstats
path: root/crypto/cipher.c
diff options
context:
space:
mode:
authorPeter Zijlstra2011-01-17 13:45:37 +0100
committerIngo Molnar2011-01-18 15:10:35 +0100
commitc5ed5145591774bd9a2960ba4ca45a02fc70aad1 (patch)
treef7e53164a33e1a0a41a4b3a7b508835361e39689 /crypto/cipher.c
parentperf tools: Fix tracepoint id to string perf.data header table (diff)
downloadkernel-qcow2-linux-c5ed5145591774bd9a2960ba4ca45a02fc70aad1.tar.gz
kernel-qcow2-linux-c5ed5145591774bd9a2960ba4ca45a02fc70aad1.tar.xz
kernel-qcow2-linux-c5ed5145591774bd9a2960ba4ca45a02fc70aad1.zip
perf: Fix contexted inheritance
Linus reported that the RCU lockdep annotation bits triggered for this rcu_dereference() because we're not holding rcu_read_lock(). Going over the code I cannot convince myself its correct: - holding a ref on the parent_ctx, doesn't avoid it being uncloned concurrently (as the comment says), so we can race with a free. - holding parent_ctx->mutex doesn't avoid the above free from taking place either, it would at best avoid parent_ctx from being freed. I.e. the warning is correct. To fix the bug, serialize against the unclone_ctx() call by extending the reach of the parent_ctx->lock. Reported-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Paul Mackerras <paulus@samba.org> Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com> LKML-Reference: <new-submission> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'crypto/cipher.c')
0 files changed, 0 insertions, 0 deletions