Commit cfd79983 authored by Masami Hiramatsu's avatar Masami Hiramatsu Committed by Steven Rostedt (VMware)
Browse files

tracing/boot: Fix to loop on only subkeys

Since the commit e5efaeb8 ("bootconfig: Support mixing
a value and subkeys under a key") allows to co-exist a value
node and key nodes under a node, xbc_node_for_each_child()
is not only returning key node but also a value node.
In the boot-time tracing using xbc_node_for_each_child() to
iterate the events, groups and instances, but those must be
key nodes. Thus it must use xbc_node_for_each_subkey().

Link: https://lkml.kernel.org/r/163112988361.74896.2267026262061819145.stgit@devnote2



Fixes: e5efaeb8 ("bootconfig: Support mixing a value and subkeys under a key")
Signed-off-by: default avatarMasami Hiramatsu <mhiramat@kernel.org>
Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
parent 04178ea1
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -522,14 +522,14 @@ trace_boot_init_events(struct trace_array *tr, struct xbc_node *node)
	if (!node)
		return;
	/* per-event key starts with "event.GROUP.EVENT" */
	xbc_node_for_each_child(node, gnode) {
	xbc_node_for_each_subkey(node, gnode) {
		data = xbc_node_get_data(gnode);
		if (!strcmp(data, "enable")) {
			enable_all = true;
			continue;
		}
		enable = false;
		xbc_node_for_each_child(gnode, enode) {
		xbc_node_for_each_subkey(gnode, enode) {
			data = xbc_node_get_data(enode);
			if (!strcmp(data, "enable")) {
				enable = true;
@@ -625,7 +625,7 @@ trace_boot_init_instances(struct xbc_node *node)
	if (!node)
		return;

	xbc_node_for_each_child(node, inode) {
	xbc_node_for_each_subkey(node, inode) {
		p = xbc_node_get_data(inode);
		if (!p || *p == '\0')
			continue;