ftrace: do not process freed records
Impact: keep from converting freed records When the tracer is started or stopped, it converts all code pointed to by the saved records into callers to ftrace or nops. When modules are unloaded, their records are freed, but they still exist within the record pages. This patch changes the code to skip over freed records. Signed-off-by: Steven Rostedt <srostedt@redhat.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
b17e8a37a1
commit
918c115410
|
@ -488,8 +488,12 @@ static void ftrace_replace_code(int enable)
|
|||
for (i = 0; i < pg->index; i++) {
|
||||
rec = &pg->records[i];
|
||||
|
||||
/* don't modify code that has already faulted */
|
||||
if (rec->flags & FTRACE_FL_FAILED)
|
||||
/*
|
||||
* Skip over free records and records that have
|
||||
* failed.
|
||||
*/
|
||||
if (rec->flags & FTRACE_FL_FREE ||
|
||||
rec->flags & FTRACE_FL_FAILED)
|
||||
continue;
|
||||
|
||||
/* ignore updates to this record's mcount site */
|
||||
|
|
Loading…
Reference in New Issue