Messages in this thread | | | Date | Thu, 24 Feb 2022 14:46:31 -0800 | From | Josh Poimboeuf <> | Subject | Re: [PATCH v2 12/39] x86/ibt,ftrace: Search for __fentry__ location |
| |
On Thu, Feb 24, 2022 at 11:01:30AM -0500, Steven Rostedt wrote: > 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 'offset' is zero then why the math here? ^^^^^^^^^^^ ^^^^^^^^^^^ -- Josh
| |