Hi Bart, Martin
I'm seeing a number of deadlocks, most of them due to ide__sti
enabling interrupts in a critical section which needs to be protected
against interrupts too.
Another dangerous scenario is the following, from here the usage of
ide__sti becomes questionable.
queue_commands() {
ide__sti();
start_request();
}
...
start_request() {
spin_unlock_irq();
frob_ide();
spin_lock_irq();
}
and also;
if (ch->unmask)
ide__sti(); /* local CPU only */
/* service this interrupt, may set handler for next interrupt */
startstop = handler(drive, drive->rq);
spin_lock_irq(ch->lock);
If someone can explain to me what ide__sti really is trying to achieve
i'd greatly appreciate it.
Regards,
Zwane Mwaikambo
-- function.linuxpower.ca- 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/
This archive was generated by hypermail 2b29 : Sun Jul 07 2002 - 22:00:17 EST