Re: [-mmotm] BUG: scheduling while atomic: swapper

From: Ryan Hope
Date: Tue Aug 26 2008 - 10:15:36 EST


Thanks for getting back to me on this guys. Yes I am using mmotm, the
daily -mm broken out tree... THe bug happens while booting, and it
shows up many times. Anyway I checked microcode_intel.c and the
function in question looks like this:

static int __init microcode_intel_module_init(void)
{
struct cpuinfo_x86 *c = &cpu_data(get_cpu());

if (c->x86_vendor == X86_VENDOR_INTEL)
return microcode_init(&microcode_intel_ops, THIS_MODULE);
else
return -ENODEV;
}

I will try the changes in he patch in Jame's post.... and report back. THanks.

-Ryan

On Tue, Aug 26, 2008 at 6:02 AM, Dmitry Adamushko
<dmitry.adamushko@xxxxxxxxx> wrote:
> 2008/8/26 james toy <unk.nown@xxxxxxxx>:
>> Andrew,
>>
>> Yes, ours does look like this -- however when i checked the git diff on git
>> web i found:
>>
>> index d2d9d74..6dd8907 100644 (file)
>> --- a/arch/x86/kernel/microcode_intel.c
>> +++ b/arch/x86/kernel/microcode_intel.c
>> @@ -531,12 +531,14 @@ static struct microcode_ops microcode_intel_ops = {
>>
>> static int __init microcode_intel_module_init(void)
>> {
>> - struct cpuinfo_x86 *c = &cpu_data(get_cpu());
>> + struct cpuinfo_x86 *c = &cpu_data(0);
>
> (err... I'm a bit confused by the use of "fixed" here. The snippet
> posted by Andrew illustrates how it was _before_ the fix,
> i.e. it's the version that causes the "scheduling while atomic" bug).
>
> IOW, If your local version has cpu_data(get_cpu()) in
> microcode_intel_module_init(), then it explains the trace you have
> observed. That also means you are not up-to-date with -next.
>
>
> --
> Best regards,
> Dmitry Adamushko
>
--
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/