Distribution: Debian unstable Hardware Environment: IBM ThinkPad T41 Software Environment: Kernel compiled with gcc 3.3.3 Problem Description: When unloading processor.o, Oops appears. When the module is loaded again, it does not work any more (the processor does not change to C2/C3 when idle). printing eip: d28a023e Oops: 0000 [#1] CPU: 0 EIP: 0060:[mrt_lock+307390910/1070090112] Not tainted EFLAGS: 00010216 EIP is at 0xd28a023e eax: 00ef8485 ebx: 00001008 ecx: 00ef7ead edx: 00001008 esi: cfa64eb0 edi: c0105000 ebp: cfa64e00 esp: c0341fc0 ds: 007b es: 007b ss: 0068 Process swapper (pid: 0, threadinfo=c0340000 task=c02d88a0) Stack: 0009f600 00000001 c0340000 0009f600 c0105000 0008e000 c010709f 00000816 c0342690 c02d88a0 00000000 c035d6d0 00000000 c03423ea c0361ca0 c010017e Call Trace: [<c0105000>] rest_init+0x0/0x5d [<c010709f>] cpu_idle+0x2c/0x35 [_edata+16528/50395] start_kernel+0x182/0x1b0 [_edata+15850/50395] unknown_bootoption+0x0/0xfd Code: Bad EIP value. <0>Kernel panic: Attempted to kill the idle task! Steps to reproduce: mopdprobe processor rmmod processor
please try remove thermal.o before removing processor.o, can this help?
No, it seems to be related to pre-emptive kernel. After recompiling the kernel without pre-emption enabled, everything is OK.
Created attachment 1746 [details] patch for the error please try this patch, in my system, with this patch the error is fixed. Thanks
I have tried it and it did fix the problem. Thanks.
Created attachment 1789 [details] updated patch previous patch can't handle SMP situation. please try the new one. Thanks.
sorry, other parts of ACPI may cause the patch failed, I will provide a final patch later.
Created attachment 1851 [details] patch for prevent sleeping in atomic area This patch is to fix sleep in atomic area issue. Your oops can be fixed by this one and attachment 1789 [details] combined. Please try it. Thanks.
Tried the patches with 2.6.1 and works ok.
Created attachment 2217 [details] updated patch updated patch
Attachments 1851 & 2217 combined can reslove the problem.
*** Bug 2350 has been marked as a duplicate of this bug. ***
Created attachment 2598 [details] patch for 2.4 kernel Attachement 2217 is for 2.6 kernel. I guess all platforms which use 'idle' from a module will suffer the similar problem. But the patch only addes support for IA64, IA32, and X86_64. It should be ported to other platforms.
*** Bug 2705 has been marked as a duplicate of this bug. ***
*** Bug 3013 has been marked as a duplicate of this bug. ***
When will the patch be merged?
Created attachment 3407 [details] use synchronize_kernel to quiesce after changing idle function Could you please also test this patch for me? Thanks
the synchronize_kernel patches fixes the problem for me Distro: Mandrake cooker hardware: Epox 8k9a3+ ( VIA KT400 )
Thank you for confirming that, i feel that the previous patch may be a bit too complex.
thanks for fixing it :-)