From: Arnaldo Carvalho de Melo on
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 <mhiramat(a)redhat.com>
> Cc: Arnaldo Carvalho de Melo <acme(a)redhat.com>
> Cc: Peter Zijlstra <peterz(a)infradead.org>
> Cc: Paul Mackerras <paulus(a)samba.org>
> Cc: Mike Galbraith <efault(a)gmx.de>
> Cc: Frederic Weisbecker <fweisbec(a)gmail.com>
> Cc: Ingo Molnar <mingo(a)elte.hu>
> ---
>
> 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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/