mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-11 13:27:06 +09:00
Merge tag 'v4.9.215' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable into odroidg12-4.9.y
This is the 4.9.215 stable release
This commit is contained in:
@@ -5457,9 +5457,10 @@ static void *fpid_next(struct seq_file *m, void *v, loff_t *pos)
|
||||
struct trace_array *tr = m->private;
|
||||
struct trace_pid_list *pid_list = rcu_dereference_sched(tr->function_pids);
|
||||
|
||||
if (v == FTRACE_NO_PIDS)
|
||||
if (v == FTRACE_NO_PIDS) {
|
||||
(*pos)++;
|
||||
return NULL;
|
||||
|
||||
}
|
||||
return trace_pid_next(pid_list, v, pos);
|
||||
}
|
||||
|
||||
|
||||
@@ -126,9 +126,10 @@ static void *trigger_next(struct seq_file *m, void *t, loff_t *pos)
|
||||
{
|
||||
struct trace_event_file *event_file = event_file_data(m->private);
|
||||
|
||||
if (t == SHOW_AVAILABLE_TRIGGERS)
|
||||
if (t == SHOW_AVAILABLE_TRIGGERS) {
|
||||
(*pos)++;
|
||||
return NULL;
|
||||
|
||||
}
|
||||
return seq_list_next(t, &event_file->triggers, pos);
|
||||
}
|
||||
|
||||
|
||||
@@ -277,18 +277,22 @@ static int tracing_stat_init(void)
|
||||
|
||||
d_tracing = tracing_init_dentry();
|
||||
if (IS_ERR(d_tracing))
|
||||
return 0;
|
||||
return -ENODEV;
|
||||
|
||||
stat_dir = tracefs_create_dir("trace_stat", d_tracing);
|
||||
if (!stat_dir)
|
||||
if (!stat_dir) {
|
||||
pr_warn("Could not create tracefs 'trace_stat' entry\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int init_stat_file(struct stat_session *session)
|
||||
{
|
||||
if (!stat_dir && tracing_stat_init())
|
||||
return -ENODEV;
|
||||
int ret;
|
||||
|
||||
if (!stat_dir && (ret = tracing_stat_init()))
|
||||
return ret;
|
||||
|
||||
session->file = tracefs_create_file(session->ts->name, 0644,
|
||||
stat_dir,
|
||||
@@ -301,7 +305,7 @@ static int init_stat_file(struct stat_session *session)
|
||||
int register_stat_tracer(struct tracer_stat *trace)
|
||||
{
|
||||
struct stat_session *session, *node;
|
||||
int ret;
|
||||
int ret = -EINVAL;
|
||||
|
||||
if (!trace)
|
||||
return -EINVAL;
|
||||
@@ -312,17 +316,15 @@ int register_stat_tracer(struct tracer_stat *trace)
|
||||
/* Already registered? */
|
||||
mutex_lock(&all_stat_sessions_mutex);
|
||||
list_for_each_entry(node, &all_stat_sessions, session_list) {
|
||||
if (node->ts == trace) {
|
||||
mutex_unlock(&all_stat_sessions_mutex);
|
||||
return -EINVAL;
|
||||
}
|
||||
if (node->ts == trace)
|
||||
goto out;
|
||||
}
|
||||
mutex_unlock(&all_stat_sessions_mutex);
|
||||
|
||||
ret = -ENOMEM;
|
||||
/* Init the session */
|
||||
session = kzalloc(sizeof(*session), GFP_KERNEL);
|
||||
if (!session)
|
||||
return -ENOMEM;
|
||||
goto out;
|
||||
|
||||
session->ts = trace;
|
||||
INIT_LIST_HEAD(&session->session_list);
|
||||
@@ -331,15 +333,16 @@ int register_stat_tracer(struct tracer_stat *trace)
|
||||
ret = init_stat_file(session);
|
||||
if (ret) {
|
||||
destroy_session(session);
|
||||
return ret;
|
||||
goto out;
|
||||
}
|
||||
|
||||
ret = 0;
|
||||
/* Register */
|
||||
mutex_lock(&all_stat_sessions_mutex);
|
||||
list_add_tail(&session->session_list, &all_stat_sessions);
|
||||
out:
|
||||
mutex_unlock(&all_stat_sessions_mutex);
|
||||
|
||||
return 0;
|
||||
return ret;
|
||||
}
|
||||
|
||||
void unregister_stat_tracer(struct tracer_stat *trace)
|
||||
|
||||
Reference in New Issue
Block a user