• A
    perf machine: Add missing dsos->root rbtree root initialization · e167f995
    Arnaldo Carvalho de Melo 提交于
    A segfault happens on 'perf test hists_link' because we end up using a
    struct machines on the stack, and then machines__init() was not
    initializing the newly introduced rb_root, just the existing list_head.
    
    When we introduced struct dsos, to group the two ways to store dsos,
    i.e. the linked list and the rbtree, we didn't turned the initialization
    done in:
    
    	machines__init(machines->host) ->
    		machine__init() ->
    			INIT_LIST_HEAD
    
    into a dsos__init() to keep on initializing the list_head but _as well_
    initializing the rb_root, oops.
    
    All worked because outside perf-test we probably zalloc the whole thing
    which ends up initializing it in to NULL.
    
    So the problem looks contained to 'perf test' that uses it on stack,
    etc.
    Reported-by: NJiri Olsa <jolsa@redhat.com>
    Acked-by: Waiman Long <Waiman.Long@hp.com>,
    Cc: Adrian Hunter <adrian.hunter@intel.com>,
    Cc: Don Zickus <dzickus@redhat.com>
    Cc: Douglas Hatch <doug.hatch@hp.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Scott J Norton <scott.norton@hp.com>
    Cc: Waiman Long <Waiman.Long@hp.com>,
    Link: http://lkml.kernel.org/r/20141014180353.GF3198@kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
    e167f995
machine.c 37.9 KB