Hey, Jens, I'm a little slow in looking at this, hopefully it's not completely noise... > @@ -2157,7 +2194,12 @@ static irqreturn_t ahci_interrupt(int irq, void *dev_instance) > > ap = host->ports[i]; > if (ap) { > - ahci_port_intr(ap); > + if (!blk_iopoll_enabled) > + ahci_port_intr(ap); > + else if (blk_iopoll_sched_prep(&ap->iopoll)) { > + ap_irq_disable(ap); > + blk_iopoll_sched(&ap->iopoll); > + } > VPRINTK("port %u\n", i); > } else { > VPRINTK("port %u (no irq)\n", i); It seems to me that, if blk_iopoll_sched_prep() fails, the interrupt will be dropped on the floor; would you not need an explicit ahci_port_intr() call in that case too? Unless I've misunderstood as usual... Documenting the "zero means failure" nature of blk_iopoll_sched_prep() might also be a good idea; I predict confusion otherwise. jon -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html