@@ -6005,6 +6005,7 @@ static DEFINE_MUTEX(scratch_mutex);
unsigned long trace_adjust_address(struct trace_array *tr, unsigned long addr)
{
struct trace_scratch *tscratch;
+ unsigned long raddr;
int i;
/* If we don't have last boot delta, return the address */
@@ -6020,7 +6021,9 @@ unsigned long trace_adjust_address(struct trace_array *tr, unsigned long addr)
return addr + tr->module_delta[i - 1];
}
- return addr + tr->text_delta;
+ raddr = addr + tr->text_delta;
+ return is_kernel_core_data(raddr) || is_kernel_rodata(raddr) ||
+ __is_kernel(raddr) ? raddr : addr;
}
static int save_mod(struct module *mod, void *data)