@@ -1160,6 +1160,24 @@ static int trace__tool_process(struct perf_tool *tool,
1160
1160
return trace__process_event (trace , machine , event , sample );
1161
1161
}
1162
1162
1163
+ static char * trace__machine__resolve_kernel_addr (void * vmachine , unsigned long long * addrp , char * * modp )
1164
+ {
1165
+ struct machine * machine = vmachine ;
1166
+
1167
+ if (machine -> kptr_restrict_warned )
1168
+ return NULL ;
1169
+
1170
+ if (symbol_conf .kptr_restrict ) {
1171
+ pr_warning ("Kernel address maps (/proc/{kallsyms,modules}) are restricted.\n\n"
1172
+ "Check /proc/sys/kernel/kptr_restrict.\n\n"
1173
+ "Kernel samples will not be resolved.\n" );
1174
+ machine -> kptr_restrict_warned = true;
1175
+ return NULL ;
1176
+ }
1177
+
1178
+ return machine__resolve_kernel_addr (vmachine , addrp , modp );
1179
+ }
1180
+
1163
1181
static int trace__symbols_init (struct trace * trace , struct perf_evlist * evlist )
1164
1182
{
1165
1183
int err = symbol__init (NULL );
@@ -1171,7 +1189,7 @@ static int trace__symbols_init(struct trace *trace, struct perf_evlist *evlist)
1171
1189
if (trace -> host == NULL )
1172
1190
return - ENOMEM ;
1173
1191
1174
- if (trace_event__register_resolver (trace -> host , machine__resolve_kernel_addr ) < 0 )
1192
+ if (trace_event__register_resolver (trace -> host , trace__machine__resolve_kernel_addr ) < 0 )
1175
1193
return - errno ;
1176
1194
1177
1195
err = __machine__synthesize_threads (trace -> host , & trace -> tool , & trace -> opts .target ,
0 commit comments