Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 30bd39cd authored by Li Zefan's avatar Li Zefan Committed by Steven Rostedt
Browse files

tracing/events: use list_for_entry_continue



Simplify s_next() and t_next().

Acked-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
Signed-off-by: default avatarLi Zefan <lizf@cn.fujitsu.com>
LKML-Reference: <4AB32389.1030005@cn.fujitsu.com>
Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
parent ee6c2c1b
Loading
Loading
Loading
Loading
+15 −34
Original line number Diff line number Diff line
@@ -271,42 +271,32 @@ ftrace_event_write(struct file *file, const char __user *ubuf,
static void *
t_next(struct seq_file *m, void *v, loff_t *pos)
{
	struct list_head *list = m->private;
	struct ftrace_event_call *call;
	struct ftrace_event_call *call = v;

	(*pos)++;

	for (;;) {
		if (list == &ftrace_events)
			return NULL;

		call = list_entry(list, struct ftrace_event_call, list);

	list_for_each_entry_continue(call, &ftrace_events, list) {
		/*
		 * The ftrace subsystem is for showing formats only.
		 * They can not be enabled or disabled via the event files.
		 */
		if (call->regfunc)
			break;

		list = list->next;
			return call;
	}

	m->private = list->next;

	return call;
	return NULL;
}

static void *t_start(struct seq_file *m, loff_t *pos)
{
	struct ftrace_event_call *call = NULL;
	struct ftrace_event_call *call;
	loff_t l;

	mutex_lock(&event_mutex);

	m->private = ftrace_events.next;
	call = list_entry(&ftrace_events, struct ftrace_event_call, list);
	for (l = 0; l <= *pos; ) {
		call = t_next(m, NULL, &l);
		call = t_next(m, call, &l);
		if (!call)
			break;
	}
@@ -316,37 +306,28 @@ static void *t_start(struct seq_file *m, loff_t *pos)
static void *
s_next(struct seq_file *m, void *v, loff_t *pos)
{
	struct list_head *list = m->private;
	struct ftrace_event_call *call;
	struct ftrace_event_call *call = v;

	(*pos)++;

 retry:
	if (list == &ftrace_events)
		return NULL;

	call = list_entry(list, struct ftrace_event_call, list);

	if (!call->enabled) {
		list = list->next;
		goto retry;
	list_for_each_entry_continue(call, &ftrace_events, list) {
		if (call->enabled)
			return call;
	}

	m->private = list->next;

	return call;
	return NULL;
}

static void *s_start(struct seq_file *m, loff_t *pos)
{
	struct ftrace_event_call *call = NULL;
	struct ftrace_event_call *call;
	loff_t l;

	mutex_lock(&event_mutex);

	m->private = ftrace_events.next;
	call = list_entry(&ftrace_events, struct ftrace_event_call, list);
	for (l = 0; l <= *pos; ) {
		call = s_next(m, NULL, &l);
		call = s_next(m, call, &l);
		if (!call)
			break;
	}