mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 19:51:31 -04:00
jump_label: Provide hotplug context variants
As using the normal static key API under the hotplug lock is pretty much impossible, let's provide a variant of some of them that require the hotplug lock to have already been taken. These function are only meant to be used in CPU hotplug callbacks. Signed-off-by: Marc Zyngier <[email protected]> Signed-off-by: Peter Zijlstra (Intel) <[email protected]> Cc: Leo Yan <[email protected]> Cc: Linus Torvalds <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: [email protected] Link: http://lkml.kernel.org/r/[email protected] Signed-off-by: Ingo Molnar <[email protected]>
This commit is contained in:
parent
8b7b412807
commit
5a40527f8f
3 changed files with 42 additions and 6 deletions
|
|
@ -154,6 +154,21 @@ and 'static_key_count()'. In general, if you use these functions, they
|
|||
should be protected with the same mutex used around the enable/disable
|
||||
or increment/decrement function.
|
||||
|
||||
Note that switching branches results in some locks being taken,
|
||||
particularly the CPU hotplug lock (in order to avoid races against
|
||||
CPUs being brought in the kernel whilst the kernel is getting
|
||||
patched). Calling the static key API from within a hotplug notifier is
|
||||
thus a sure deadlock recipe. In order to still allow use of the
|
||||
functionnality, the following functions are provided:
|
||||
|
||||
static_key_enable_cpuslocked()
|
||||
static_key_disable_cpuslocked()
|
||||
static_branch_enable_cpuslocked()
|
||||
static_branch_disable_cpuslocked()
|
||||
|
||||
These functions are *not* general purpose, and must only be used when
|
||||
you really know that you're in the above context, and no other.
|
||||
|
||||
Where an array of keys is required, it can be defined as::
|
||||
|
||||
DEFINE_STATIC_KEY_ARRAY_TRUE(keys, count);
|
||||
|
|
|
|||
Loading…
Reference in a new issue