|
From: Arnaldo C. de M. <ac...@re...> - 2010-04-26 14:02:47
|
Em Wed, Apr 21, 2010 at 03:56:16PM -0400, Masami Hiramatsu escreveu:
> If dso->node member is not initilized, it causes a segmentation
> fault when adding to other lists. It should be initilized in
> dso__new().
>
> Signed-off-by: Masami Hiramatsu <mhi...@re...>
> Cc: Arnaldo Carvalho de Melo <ac...@re...>
> Cc: Peter Zijlstra <pe...@in...>
> Cc: Paul Mackerras <pa...@sa...>
> Cc: Mike Galbraith <ef...@gm...>
> Cc: Frederic Weisbecker <fwe...@gm...>
> Cc: Ingo Molnar <mi...@el...>
> ---
>
> tools/perf/util/symbol.c | 1 +
> 1 files changed, 1 insertions(+), 0 deletions(-)
>
> diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c
> index e782e7d..e77c33a 100644
> --- a/tools/perf/util/symbol.c
> +++ b/tools/perf/util/symbol.c
> @@ -189,6 +189,7 @@ struct dso *dso__new(const char *name)
> self->sorted_by_name = 0;
> self->has_build_id = 0;
> self->kernel = DSO_TYPE_USER;
> + INIT_LIST_HEAD(&self->node);
> }
>
> return self;
Trying to understand how this would be a problem, as:
static inline void __list_add(struct list_head *new,
struct list_head *prev,
struct list_head *next)
{
next->prev = new;
new->next = next;
new->prev = prev;
prev->next = new;
}
This is not a list head, just a node.
Looking at other messages where you described the problem to try to
understand why this would help.
- Arnaldo
|