Re: 2.6.23-rc2-mm1: sleeping function called from invalid contextat kernel/mutex.c:86

From: Ingo Molnar
Date: Fri Aug 10 2007 - 03:40:29 EST



* Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:

> We seem to have made a mess in there. timer_list_show() ends up
> calling lookup_module_symbol_name(), which takes a mutex. However
> print_symbol() (which is called at oops time, interrupt time, etc)
> calls module_address_lookup(), which is basically the same, only it
> doesn't take the mutex.

hm, current upstream does:

static void print_name_offset(struct seq_file *m, void *sym)
{
char symname[KSYM_NAME_LEN];

if (lookup_symbol_name((unsigned long)sym, symname) < 0)

why was that changed? I think symbol lookups for debug purposes have to
be lockless, fundamentally.

Ingo
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/