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

Commit 529363b7 authored by Frederic Weisbecker's avatar Frederic Weisbecker Committed by Arnaldo Carvalho de Melo
Browse files

perf callchain: Don't give arbitrary gender to callchain tree nodes



Some little callchain tree nodes shyly asked me if they can have
sisters.

How cute!

Cc: Ingo Molnar <mingo@elte.hu>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
LKML-Reference: <1294977121-5700-5-git-send-email-fweisbec@gmail.com>
Signed-off-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 16537f13
Loading
Loading
Loading
Loading
+4 −4
Original line number Original line Diff line number Diff line
@@ -26,10 +26,10 @@ bool ip_callchain__valid(struct ip_callchain *chain, const event_t *event)
}
}


#define chain_for_each_child(child, parent)	\
#define chain_for_each_child(child, parent)	\
	list_for_each_entry(child, &parent->children, brothers)
	list_for_each_entry(child, &parent->children, siblings)


#define chain_for_each_child_safe(child, next, parent)	\
#define chain_for_each_child_safe(child, next, parent)	\
	list_for_each_entry_safe(child, next, &parent->children, brothers)
	list_for_each_entry_safe(child, next, &parent->children, siblings)


static void
static void
rb_insert_callchain(struct rb_root *root, struct callchain_node *chain,
rb_insert_callchain(struct rb_root *root, struct callchain_node *chain,
@@ -189,7 +189,7 @@ create_child(struct callchain_node *parent, bool inherit_children)
		chain_for_each_child(next, new)
		chain_for_each_child(next, new)
			next->parent = new;
			next->parent = new;
	}
	}
	list_add_tail(&new->brothers, &parent->children);
	list_add_tail(&new->siblings, &parent->children);


	return new;
	return new;
}
}
@@ -419,7 +419,7 @@ merge_chain_branch(struct callchain_cursor *cursor,
		if (err)
		if (err)
			break;
			break;


		list_del(&child->brothers);
		list_del(&child->siblings);
		free(child);
		free(child);
	}
	}


+2 −2
Original line number Original line Diff line number Diff line
@@ -16,7 +16,7 @@ enum chain_mode {


struct callchain_node {
struct callchain_node {
	struct callchain_node	*parent;
	struct callchain_node	*parent;
	struct list_head	brothers;
	struct list_head	siblings;
	struct list_head	children;
	struct list_head	children;
	struct list_head	val;
	struct list_head	val;
	struct rb_node		rb_node; /* to sort nodes in an rbtree */
	struct rb_node		rb_node; /* to sort nodes in an rbtree */
@@ -72,7 +72,7 @@ struct callchain_cursor {


static inline void callchain_init(struct callchain_root *root)
static inline void callchain_init(struct callchain_root *root)
{
{
	INIT_LIST_HEAD(&root->node.brothers);
	INIT_LIST_HEAD(&root->node.siblings);
	INIT_LIST_HEAD(&root->node.children);
	INIT_LIST_HEAD(&root->node.children);
	INIT_LIST_HEAD(&root->node.val);
	INIT_LIST_HEAD(&root->node.val);