Binary file names have to be supplied for both range and start/stop filters but the current code only process the filename if an address range filter is specified. This code adds processing of the filename for start/stop filters.
Signed-off-by: Mathieu Poirier <[email protected]> Acked-by: Alexander Shishkin <[email protected]> --- kernel/events/core.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/kernel/events/core.c b/kernel/events/core.c index a19550d80ab1..0662279c5729 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -7905,8 +7905,10 @@ perf_event_parse_addr_filter(struct perf_event *event, char *fstr, goto fail; } - if (token == IF_SRC_FILE) { - filename = match_strdup(&args[2]); + if (token == IF_SRC_FILE || token == IF_SRC_FILEADDR) { + int fpos = filter->range ? 2 : 1; + + filename = match_strdup(&args[fpos]); if (!filename) { ret = -ENOMEM; goto fail; -- 2.7.4

