threadirqs and kthreadd_task

From: ajay kanala
Date: Sat Oct 18 2014 - 07:11:33 EST


Hi,
I have been trying to enable "threadirqs" command line option on
3.10.12 kernel and kernel crashes with NULL pointer access for
kthreadd_task in wake_up_process function:

[ 0.000000] Call Trace:
[ 0.000000] [<8005544c>] wake_up_process+0xc/0x48
[ 0.000000] [<8004c1b8>] kthread_create_on_node+0x64/0xc4
[ 0.000000] [<8006d338>] __setup_irq+0x130/0x634
[ 0.000000] [<8006d89c>] setup_irq+0x60/0xb4
[ 0.000000] [<8050267c>] icu_of_init+0x1f8/0x2f8
[ 0.000000] [<80517b30>] of_irq_init+0x2c8/0x304
[ 0.000000] [<805007bc>] start_kernel+0x218/0x3a4

But as far as i see, kthreadd_task is initialized in start_kernel -->
rest_init function which is much later than setting up interrupts (
init_IRQ ):

So my question is, how are systems working which enabled "threadirqs"
command line option enabled ( the code flow seems similar even on 3.17
kernel ). Am i missing the obvious?

thanks for pointers

-- Ajay
--
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/