Patch "jump_labels: API for flushing deferred jump label updates" has been added to the 4.4-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
jump_labels: API for flushing deferred jump label updates
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
jump_labels-api-for-flushing-deferred-jump-label-updates.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
b6416e61012429e0277bd15a229222fd17afc1c1Mon Sep 17 00:00:00 2001
From: David Matlack <[email protected]>
Date: Fri, 16 Dec 2016 14:30:35 -0800
Subject: jump_labels: API for flushing deferred jump label updates
From: David Matlack <[email protected]>
commit b6416e61012429e0277bd15a229222fd17afc1c1 upstream.
Modules that use static_key_deferred need a way to synchronize with any delayed work that is still pending when the module is unloaded. Introduce static_key_deferred_flush() which flushes any pending jump label updates.
--- include/linux/jump_label_ratelimit.h | 5 +++++ kernel/jump_label.c | 7 +++++++ 2 files changed, 12 insertions(+)
include/linux/jump_label_ratelimit.h +5 -0
@@ -14,6 +14,7 @@ struct static_key_deferred {#ifdef HAVE_JUMP_LABEL extern void static_key_slow_dec_deferred (struct static_key_deferred *key); +extern void static_key_deferred_flush (struct static_key_deferred *key);extern void jump_label_rate_limit (struct static_key_deferred *key,unsigned long rl);
@@ -26,6 +27,10 @@ static inline void static_key_slow_dec_dSTATIC_KEY_CHECK_USE ();static_key_slow_dec (&key->key); } +static inline void static_key_deferred_flush (struct static_key_deferred *key) +{ +STATIC_KEY_CHECK_USE (); +}static inline void jump_label_rate_limit (struct static_key_deferred *key,unsigned long rl)
kernel/jump_label.c +7 -0
@@ -138,6 +138,13 @@ void static_key_slow_dec_deferred(struct }EXPORT_SYMBOL_GPL (static_key_slow_dec_deferred); +void static_key_deferred_flush (struct static_key_deferred *key) +{ +STATIC_KEY_CHECK_USE (); +flush_delayed_work (&key->work); +} +EXPORT_SYMBOL_GPL (static_key_deferred_flush); +void jump_label_rate_limit (struct static_key_deferred *key,unsigned long rl) {
Patches currently in stable-queue which might be from [email protected] are
queue-4.4/kvm-x86-flush-pending-lapic-jump-label-updates-on-module-unload.patch queue-4.4/jump_labels-api-for-flushing-deferred-jump-label-updates.patch