diff options
Diffstat (limited to 'kernel/trace/trace_boot.c')
| -rw-r--r-- | kernel/trace/trace_boot.c | 20 | 
1 files changed, 8 insertions, 12 deletions
| diff --git a/kernel/trace/trace_boot.c b/kernel/trace/trace_boot.c index 06d7feb5255f..9de29bb45a27 100644 --- a/kernel/trace/trace_boot.c +++ b/kernel/trace/trace_boot.c @@ -95,24 +95,20 @@ trace_boot_add_kprobe_event(struct xbc_node *node, const char *event)  	struct xbc_node *anode;  	char buf[MAX_BUF_LEN];  	const char *val; -	int ret; +	int ret = 0; -	kprobe_event_cmd_init(&cmd, buf, MAX_BUF_LEN); +	xbc_node_for_each_array_value(node, "probes", anode, val) { +		kprobe_event_cmd_init(&cmd, buf, MAX_BUF_LEN); -	ret = kprobe_event_gen_cmd_start(&cmd, event, NULL); -	if (ret) -		return ret; +		ret = kprobe_event_gen_cmd_start(&cmd, event, val); +		if (ret) +			break; -	xbc_node_for_each_array_value(node, "probes", anode, val) { -		ret = kprobe_event_add_field(&cmd, val); +		ret = kprobe_event_gen_cmd_end(&cmd);  		if (ret) -			return ret; +			pr_err("Failed to add probe: %s\n", buf);  	} -	ret = kprobe_event_gen_cmd_end(&cmd); -	if (ret) -		pr_err("Failed to add probe: %s\n", buf); -  	return ret;  }  #else | 
