When I look into implements of create_hist_fields(), I think there can be following two simplifications: 1. If something wrong happened in parse_var_defs(), free_var_defs() would have been called in it, so no need goto free again after calling it; 2. After calling create_key_fields(), regardless of the value of 'ret', it then always runs into 'out: ', so the judge of 'ret' is redundant.
No functional changes.
Signed-off-by: Zheng Yejian zhengyejian1@huawei.com --- kernel/trace/trace_events_hist.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/kernel/trace/trace_events_hist.c b/kernel/trace/trace_events_hist.c index 2784951e0fc8..832c4ccf41ab 100644 --- a/kernel/trace/trace_events_hist.c +++ b/kernel/trace/trace_events_hist.c @@ -4454,7 +4454,7 @@ static int create_hist_fields(struct hist_trigger_data *hist_data,
ret = parse_var_defs(hist_data); if (ret) - goto out; + return ret;
ret = create_val_fields(hist_data, file); if (ret) @@ -4465,8 +4465,7 @@ static int create_hist_fields(struct hist_trigger_data *hist_data, goto out;
ret = create_key_fields(hist_data, file); - if (ret) - goto out; + out: free_var_defs(hist_data);