Users should be able to set configs by perf-config,
whether there aren't config files or not.

But if there aren't config files,
it fail to set configs on the config files.
So automatically create config files if not exists.

If not free config_set after perf_config_set__init() failed,
we can do that.

Before:

  $ rm -f ~/.perfconfig && perf config --user report.children=false

  $ cat ~/.perfconfig
  cat: /root/.perfconfig: No such file or directory

After:

  $ rm -f ~/.perfconfig && perf config --user report.children=false

  $ cat ~/.perfconfig
  # this file is auto-generated.
  [report]
      children = false

NOTE:
The config set will be freed at the tail end.
(i.e. by perf_config_set__delete() at the end of cmd_config())

Cc: Jiri Olsa <[email protected]>
Cc: Namhyung Kim <[email protected]>
Signed-off-by: Taeung Song <[email protected]>
---
 tools/perf/util/config.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/tools/perf/util/config.c b/tools/perf/util/config.c
index 8d724f0..1cc5d80 100644
--- a/tools/perf/util/config.c
+++ b/tools/perf/util/config.c
@@ -691,10 +691,7 @@ struct perf_config_set *perf_config_set__new(void)
 
        if (set) {
                INIT_LIST_HEAD(&set->sections);
-               if (perf_config_set__init(set) < 0) {
-                       perf_config_set__delete(set);
-                       set = NULL;
-               }
+               perf_config_set__init(set);
        }
 
        return set;
-- 
2.7.4

Reply via email to