|
@@ -1441,12 +1441,12 @@ static void tracing_stop_tr(struct trace_array *tr)
|
|
|
|
|
|
void trace_stop_cmdline_recording(void);
|
|
|
|
|
|
-static void trace_save_cmdline(struct task_struct *tsk)
|
|
|
+static int trace_save_cmdline(struct task_struct *tsk)
|
|
|
{
|
|
|
unsigned pid, idx;
|
|
|
|
|
|
if (!tsk->pid || unlikely(tsk->pid > PID_MAX_DEFAULT))
|
|
|
- return;
|
|
|
+ return 0;
|
|
|
|
|
|
/*
|
|
|
* It's not the end of the world if we don't get
|
|
@@ -1455,7 +1455,7 @@ static void trace_save_cmdline(struct task_struct *tsk)
|
|
|
* so if we miss here, then better luck next time.
|
|
|
*/
|
|
|
if (!arch_spin_trylock(&trace_cmdline_lock))
|
|
|
- return;
|
|
|
+ return 0;
|
|
|
|
|
|
idx = map_pid_to_cmdline[tsk->pid];
|
|
|
if (idx == NO_CMDLINE_MAP) {
|
|
@@ -1480,6 +1480,8 @@ static void trace_save_cmdline(struct task_struct *tsk)
|
|
|
memcpy(&saved_cmdlines[idx], tsk->comm, TASK_COMM_LEN);
|
|
|
|
|
|
arch_spin_unlock(&trace_cmdline_lock);
|
|
|
+
|
|
|
+ return 1;
|
|
|
}
|
|
|
|
|
|
void trace_find_cmdline(int pid, char comm[])
|
|
@@ -1521,9 +1523,8 @@ void tracing_record_cmdline(struct task_struct *tsk)
|
|
|
if (!__this_cpu_read(trace_cmdline_save))
|
|
|
return;
|
|
|
|
|
|
- __this_cpu_write(trace_cmdline_save, false);
|
|
|
-
|
|
|
- trace_save_cmdline(tsk);
|
|
|
+ if (trace_save_cmdline(tsk))
|
|
|
+ __this_cpu_write(trace_cmdline_save, false);
|
|
|
}
|
|
|
|
|
|
void
|