summaryrefslogtreecommitdiffstats
path: root/net/ipv6
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2017-08-01 17:24:04 +0200
committerIngo Molnar <mingo@kernel.org>2017-08-10 12:28:56 +0200
commit1dbb6704de91b169a58d0c8221624afd6a95cfc7 (patch)
tree46273515a9b79413d2f00629b7e253189e903219 /net/ipv6
parent83ced169d9a01f22eb39f1fcc1f89ad9d223238f (diff)
downloadlinux-stable-1dbb6704de91b169a58d0c8221624afd6a95cfc7.tar.gz
linux-stable-1dbb6704de91b169a58d0c8221624afd6a95cfc7.tar.bz2
linux-stable-1dbb6704de91b169a58d0c8221624afd6a95cfc7.zip
jump_label: Fix concurrent static_key_enable/disable()
static_key_enable/disable are trying to cap the static key count to 0/1. However, their use of key->enabled is outside jump_label_lock so they do not really ensure that. Rewrite them to do a quick check for an already enabled (respectively, already disabled), and then recheck under the jump label lock. Unlike static_key_slow_inc/dec, a failed check under the jump label lock does not modify key->enabled. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Cc: Eric Dumazet <eric.dumazet@gmail.com> Cc: Jason Baron <jbaron@akamai.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Link: http://lkml.kernel.org/r/1501601046-35683-2-git-send-email-pbonzini@redhat.com Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'net/ipv6')
0 files changed, 0 insertions, 0 deletions