> static void ahci_freeze(struct ata_port *ap) > { > + void __iomem *mmio = ap->host->iomap[AHCI_PCI_BAR]; > void __iomem *port_mmio = ahci_port_base(ap); > > /* turn IRQ off */ > writel(0, port_mmio + PORT_IRQ_MASK); > + > + /* clear IRQ pending bit */ > + writel(1 << ap->port_no, mmio + HOST_IRQ_STAT); Neither of those two are going to help in all cases. They are PCI writes to mmio so they are posted. You don't know they hit the device until a read cycle coming back has completed, so you need to read something after doing this to be sure. - To unsubscribe from this list: 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