Messages in this thread | | | Date | Thu, 24 Feb 2022 11:01:30 -0500 | From | Steven Rostedt <> | Subject | Re: [PATCH v2 12/39] x86/ibt,ftrace: Search for __fentry__ location |
| |
On Thu, 24 Feb 2022 10:58:47 -0500 Steven Rostedt <rostedt@goodmis.org> wrote:
> On Fri, 25 Feb 2022 00:55:20 +0900 > Masami Hiramatsu <mhiramat@kernel.org> wrote: > > > > unsigned long ftrace_location(unsigned long ip) > > > { > > > - return ftrace_location_range(ip, ip); > > > + struct dyn_ftrace *rec; > > > + unsigned long offset; > > > + unsigned long size; > > > + > > > + rec = lookup_rec(ip, ip); > > > + if (!rec) { > > > + if (!kallsyms_lookup_size_offset(ip, &size, &offset)) > > > + goto out; > > > + > > > + if (!offset) > > > > Isn't this 'if (offset)' ? > > No, the point to only look for the fentry location if the ip passed in > points to the start of the function. IOW, +0 offset. >
I do agree with Masami that it is confusing. Please add a comment:
/* Search the entire function if ip is the start of the function */ if (!offset) [..]
-- Steve
> > > > > > > + rec = lookup_rec(ip - offset, (ip - offset) + size); > > > + } > > > + > > > + if (rec) > > > + return rec->ip; > > > + > > > +out: > > > + return 0;
| |