diff options
| author | Sean Paul <seanpaul@chromium.org> | 2017-07-17 11:43:05 -0400 |
|---|---|---|
| committer | Sean Paul <seanpaul@chromium.org> | 2017-07-17 11:56:07 -0400 |
| commit | ef434a0c2ce765ad33026375db7d23aebd5e9532 (patch) | |
| tree | 4bdac59f0bac3a6508741e6bd62da6e770fc3bc1 /kernel/livepatch/patch.c | |
| parent | 76250f2b743b72cb685cc51ac0cdabb32957180b (diff) | |
| parent | 1ed134e6526b1b513a14fba938f6d96aa1c7f3dd (diff) | |
| download | cachepc-linux-ef434a0c2ce765ad33026375db7d23aebd5e9532.tar.gz cachepc-linux-ef434a0c2ce765ad33026375db7d23aebd5e9532.zip | |
Merge branch 'drm-misc-next-fixes' into drm-misc-fixes
Pick up
1ed134e6526b drm/vc4: Fix VBLANK handling in crtc->enable() path
From drm-misc-next-fixes, it was applied after the last pull request
was sent from that branch. We'll send it through drm-fixes instead.
Diffstat (limited to 'kernel/livepatch/patch.c')
| -rw-r--r-- | kernel/livepatch/patch.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/kernel/livepatch/patch.c b/kernel/livepatch/patch.c index f8269036bf0b..52c4e907c14b 100644 --- a/kernel/livepatch/patch.c +++ b/kernel/livepatch/patch.c @@ -59,7 +59,11 @@ static void notrace klp_ftrace_handler(unsigned long ip, ops = container_of(fops, struct klp_ops, fops); - rcu_read_lock(); + /* + * A variant of synchronize_sched() is used to allow patching functions + * where RCU is not watching, see klp_synchronize_transition(). + */ + preempt_disable_notrace(); func = list_first_or_null_rcu(&ops->func_stack, struct klp_func, stack_node); @@ -115,7 +119,7 @@ static void notrace klp_ftrace_handler(unsigned long ip, klp_arch_set_pc(regs, (unsigned long)func->new_func); unlock: - rcu_read_unlock(); + preempt_enable_notrace(); } /* |
