mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 12:28:41 +08:00
rethook: use preempt_{disable, enable}_notrace in rethook_trampoline_handler
This patch replaces preempt_{disable, enable} with its corresponding
notrace version in rethook_trampoline_handler so no worries about stack
recursion or overflow introduced by preempt_count_{add, sub} under
fprobe + rethook context.
Link: https://lore.kernel.org/all/20230517034510.15639-2-zegao@tencent.com/
Fixes: 54ecbe6f1e
("rethook: Add a generic return hook")
Signed-off-by: Ze Gao <zegao@tencent.com>
Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
This commit is contained in:
parent
6049674b57
commit
be243bacfb
@ -288,7 +288,7 @@ unsigned long rethook_trampoline_handler(struct pt_regs *regs,
|
||||
* These loops must be protected from rethook_free_rcu() because those
|
||||
* are accessing 'rhn->rethook'.
|
||||
*/
|
||||
preempt_disable();
|
||||
preempt_disable_notrace();
|
||||
|
||||
/*
|
||||
* Run the handler on the shadow stack. Do not unlink the list here because
|
||||
@ -321,7 +321,7 @@ unsigned long rethook_trampoline_handler(struct pt_regs *regs,
|
||||
first = first->next;
|
||||
rethook_recycle(rhn);
|
||||
}
|
||||
preempt_enable();
|
||||
preempt_enable_notrace();
|
||||
|
||||
return correct_ret_addr;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user