Re: SMP BUG

From: Russell King
Date: Thu Feb 16 2006 - 05:20:54 EST


On Wed, Feb 15, 2006 at 03:23:02PM -0800, Linus Torvalds wrote:
> Does this fix the ARM oops?

It fixes that exact oops but only by preventing us getting that far
due to another oops.

We call cpu_up, which sends a CPU_UP_PREPARE event. This causes the
migration thread to be spawned, and rq->migration_thread to be set.

Eventually, we call the architecture __cpu_up(), which ends up
calling init_idle(). Due to this patch, init_idle() then NULLs out
rq->migration_thread.

Later, we send a CPU_ONLINE event, which then tries to do
wake_up_process(rq->migration_thread) - resulting in a NULL pointer
deref in try_to_wake_up().

Hence, with this patch, it looks like rq will be used prior to
initialisation. I could try commenting out the migration_thread
initialisation to NULL, but I suspect that there may be other
problems associated with this patch (eg, rq->migration_queue).

--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of: 2.6 Serial core
-
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/