Messages in this thread Patch in this message | | | Date | Wed, 2 Mar 2022 14:20:23 +0100 | From | Peter Zijlstra <> | Subject | Re: [PATCH v2 12/39] x86/ibt,ftrace: Search for __fentry__ location |
| |
On Tue, Mar 01, 2022 at 02:20:16PM -0500, Steven Rostedt wrote: > On Wed, 02 Mar 2022 00:27:51 +0530 > "Naveen N. Rao" <naveen.n.rao@linux.vnet.ibm.com> wrote: > > > Won't this cause issues with ftrace_set_filter_ip() and others? If the > > passed-in ip points to func+0 when the actual ftrace location is at some > > offset, the ftrace location check in ftrace_match_addr() will now pass, > > resulting in adding func+0 to the hash. Should we also update > > ftrace_match_addr() to use the ip returned by ftrace_location()? > > > > Yes, ftrace_match_addr() would need to be updated, or at least > ftrace_set_filter_ip() which is the only user ftrace_match_addr(), and is > currently only used by kprobes, live kernel patching and the direct > trampoline example code.
Like so, or is something else needed?
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c index 68ecd3e35342..d1b30b5c5c23 100644 --- a/kernel/trace/ftrace.c +++ b/kernel/trace/ftrace.c @@ -4980,7 +4980,8 @@ ftrace_match_addr(struct ftrace_hash *hash, unsigned long ip, int remove) { struct ftrace_func_entry *entry; - if (!ftrace_location(ip)) + ip = ftrace_location(ip); + if (!ip) return -EINVAL; if (remove) {
| |