ide__sti usage

Zwane Mwaikambo (zwane@linuxpower.ca)
Sun, 7 Jul 2002 12:54:28 +0200 (SAST)


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/