Mathieu Poirier <mathieu.poir...@linaro.org> writes: > At this time function perf_addr_filter_needs_mmap() will _not_ > return true on a user space 'stop' filter. But stop filters > needs exactly the same kind of mapping that range and start > filters get.
Indeed. > > Signed-off-by: Mathieu Poirier <mathieu.poir...@linaro.org> > --- > kernel/events/core.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/kernel/events/core.c b/kernel/events/core.c > index b9aa8f0ff070..b0bf00c728c2 100644 > --- a/kernel/events/core.c > +++ b/kernel/events/core.c > @@ -6498,7 +6498,7 @@ got_name: > */ > static bool perf_addr_filter_needs_mmap(struct perf_addr_filter *filter) > { > - return filter->filter && filter->inode; > + return filter->inode; > } Maybe kill the function altogether and instead: diff --git a/kernel/events/core.c b/kernel/events/core.c index a001be5d4b..bc8e1ad170 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -7905,7 +7905,8 @@ static void perf_event_addr_filters_apply(struct perf_event *event) list_for_each_entry(filter, &ifh->list, entry) { event->addr_filters_offs[count] = 0; - if (perf_addr_filter_needs_mmap(filter)) + /* file-based filter */ + if (filter->inode) event->addr_filters_offs[count] = perf_addr_filter_apply(filter, mm); Thanks, -- Alex