mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 18:41:58 +09:00
rethook: use preempt_{disable, enable}_notrace in rethook_trampoline_handler
commitbe243bacfbupstream. 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> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
4e38a02b22
commit
c46d3efb4d
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user