Ok, it /seems/ that things are happier (though still not entirely happy) if I explicitly acknowledge the interrupt by writing the dma status register back again. This doesn't seem to be done anywhere in the IDE interrupt routine, but is in the libata one. I'm afraid I don't understand IDE well enough to have any idea what's going on here - is it possible that a piix in native mode (rather than legacy mode) and sharing an interrupt needs some special handling? -- Matthew Garrett | mjg59@xxxxxxxxxxxxx - : send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html