On Thu, 10 Mar 2022 14:47:18 +0100 Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote: > diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c > index acb50fb7ed2d..2d86d3c09d64 100644 > --- a/kernel/trace/ftrace.c > +++ b/kernel/trace/ftrace.c > @@ -5354,6 +5381,11 @@ int modify_ftrace_direct(unsigned long ip, > mutex_lock(&direct_mutex); > > mutex_lock(&ftrace_lock); > + > + ip = ftrace_location(ip); > + if (!ip) > + goto out_unlock; > + Perhaps this should go into find_direct_entry() instead, as I think you are adding it before all the find_direct_entry() callers. And find_direct_entry will update the ip. -- Steve > entry = find_direct_entry(&ip, &rec); > if (!entry) > goto out_unlock;