Re: [patch] irqlock patch -G3. [was Re: odd memory corruption

Linus Torvalds (torvalds@transmeta.com)
Tue, 23 Jul 2002 20:18:30 -0700 (PDT)


On Tue, 23 Jul 2002, Andrew Morton wrote:
>
> And yet here we have a case where a spin_unlock() will
> go and turn on local interrupts. Only with CONFIG_PREEMPT,
> and even then, extremely rarely.

I think that's just a bug, the same way it was a bug that preemtion would
sometimes set tsk->state to TASK_RUNNING.

I think Robert already sent a fix: make "preempt_schedule()" refuse to
schedule if local interrupts are disabled.

That, together with making it a warning (so that we can _fix_ places that
have unbalanced irq/spinlock behaviour) shoul dbe fine. Eventually, if we
think all places are fixed, we can remove the test from
preempt_schedule().

Linus

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