File tree Expand file tree Collapse file tree 1 file changed +6
-1
lines changed Expand file tree Collapse file tree 1 file changed +6
-1
lines changed Original file line number Diff line number Diff line change @@ -1074,6 +1074,11 @@ static void pt_addr_filters_fini(struct perf_event *event)
10741074 event -> hw .addr_filters = NULL ;
10751075}
10761076
1077+ static inline bool valid_kernel_ip (unsigned long ip )
1078+ {
1079+ return virt_addr_valid (ip ) && kernel_ip (ip );
1080+ }
1081+
10771082static int pt_event_addr_filters_validate (struct list_head * filters )
10781083{
10791084 struct perf_addr_filter * filter ;
@@ -1084,7 +1089,7 @@ static int pt_event_addr_filters_validate(struct list_head *filters)
10841089 if (!filter -> range || !filter -> size )
10851090 return - EOPNOTSUPP ;
10861091
1087- if (!filter -> inode && !kernel_ip (filter -> offset ))
1092+ if (!filter -> inode && !valid_kernel_ip (filter -> offset ))
10881093 return - EINVAL ;
10891094
10901095 if (++ range > pt_cap_get (PT_CAP_num_address_ranges ))
You can’t perform that action at this time.
0 commit comments