mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-23 12:43:29 +02:00
Merge tag 'locking-urgent-2020-12-27' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull locking fixes from Ingo Molnar: "Misc fixes/updates: - Fix static keys usage in module __init sections - Add separate MAINTAINERS entry for static branches/calls - Fix lockdep splat with CONFIG_PREEMPTIRQ_EVENTS=y tracing" * tag 'locking-urgent-2020-12-27' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: softirq: Avoid bad tracing / lockdep interaction jump_label/static_call: Add MAINTAINERS jump_label: Fix usage in module __init
This commit is contained in:
16
MAINTAINERS
16
MAINTAINERS
@@ -16917,6 +16917,22 @@ M: Ion Badulescu <ionut@badula.org>
|
||||
S: Odd Fixes
|
||||
F: drivers/net/ethernet/adaptec/starfire*
|
||||
|
||||
STATIC BRANCH/CALL
|
||||
M: Peter Zijlstra <peterz@infradead.org>
|
||||
M: Josh Poimboeuf <jpoimboe@redhat.com>
|
||||
M: Jason Baron <jbaron@akamai.com>
|
||||
R: Steven Rostedt <rostedt@goodmis.org>
|
||||
R: Ard Biesheuvel <ardb@kernel.org>
|
||||
S: Supported
|
||||
F: arch/*/include/asm/jump_label*.h
|
||||
F: arch/*/include/asm/static_call*.h
|
||||
F: arch/*/kernel/jump_label.c
|
||||
F: arch/*/kernel/static_call.c
|
||||
F: include/linux/jump_label*.h
|
||||
F: include/linux/static_call*.h
|
||||
F: kernel/jump_label.c
|
||||
F: kernel/static_call.c
|
||||
|
||||
STEC S1220 SKD DRIVER
|
||||
M: Damien Le Moal <Damien.LeMoal@wdc.com>
|
||||
L: linux-block@vger.kernel.org
|
||||
|
@@ -793,6 +793,7 @@ int jump_label_text_reserved(void *start, void *end)
|
||||
static void jump_label_update(struct static_key *key)
|
||||
{
|
||||
struct jump_entry *stop = __stop___jump_table;
|
||||
bool init = system_state < SYSTEM_RUNNING;
|
||||
struct jump_entry *entry;
|
||||
#ifdef CONFIG_MODULES
|
||||
struct module *mod;
|
||||
@@ -804,15 +805,16 @@ static void jump_label_update(struct static_key *key)
|
||||
|
||||
preempt_disable();
|
||||
mod = __module_address((unsigned long)key);
|
||||
if (mod)
|
||||
if (mod) {
|
||||
stop = mod->jump_entries + mod->num_jump_entries;
|
||||
init = mod->state == MODULE_STATE_COMING;
|
||||
}
|
||||
preempt_enable();
|
||||
#endif
|
||||
entry = static_key_entries(key);
|
||||
/* if there are no users, entry can be NULL */
|
||||
if (entry)
|
||||
__jump_label_update(key, entry, stop,
|
||||
system_state < SYSTEM_RUNNING);
|
||||
__jump_label_update(key, entry, stop, init);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_STATIC_KEYS_SELFTEST
|
||||
|
@@ -186,7 +186,7 @@ void __local_bh_enable_ip(unsigned long ip, unsigned int cnt)
|
||||
* Keep preemption disabled until we are done with
|
||||
* softirq processing:
|
||||
*/
|
||||
preempt_count_sub(cnt - 1);
|
||||
__preempt_count_sub(cnt - 1);
|
||||
|
||||
if (unlikely(!in_interrupt() && local_softirq_pending())) {
|
||||
/*
|
||||
|
Reference in New Issue
Block a user