tracing/boot: Fix to loop on only subkeys
[ Upstream commit cfd799837dbc48499abb05d1891b3d9992354d3a ] Since the commite5efaeb8a8
("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:e5efaeb8a8
("bootconfig: Support mixing a value and subkeys under a key") Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
59faa7816d
commit
57df1f724b
@ -235,14 +235,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;
|
||||
@ -338,7 +338,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;
|
||||
|
Loading…
Reference in New Issue
Block a user