ide__sti usage

From: Zwane Mwaikambo (zwane@linuxpower.ca)
Date: Sun Jul 07 2002 - 05:54:28 EST


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