On Tue, 2011-03-15 at 08:19 +0100, Tejun Heo wrote: > Hello, > > On Tue, Mar 15, 2011 at 05:20:40AM +0100, Maxime Bizon wrote: > > On Mon, 2011-03-14 at 18:59 -0600, Robert Hancock wrote: > > > > > Where is ahci_thaw being called? It shouldn't be called before the IRQ > > > handler is registered - I think it should only be called from the > > > error > > > > it is not > > > > ahci_pmp_attach/ahci_pmp_detach are the one setting the irq_mask too > > soon > > Does the following patch fix the problem? Thanks. no it doesn't, but this one does: diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c index 26d4523..6a01e3d 100644 --- a/drivers/ata/libahci.c +++ b/drivers/ata/libahci.c @@ -1897,7 +1897,9 @@ static void ahci_pmp_attach(struct ata_port *ap) ahci_enable_fbs(ap); pp->intr_mask |= PORT_IRQ_BAD_PMP; - writel(pp->intr_mask, port_mmio + PORT_IRQ_MASK); + + if (!(ap->pflags & (ATA_PFLAG_FROZEN | ATA_PFLAG_INITIALIZING)) + writel(pp->intr_mask, port_mmio + PORT_IRQ_MASK); } static void ahci_pmp_detach(struct ata_port *ap) @@ -1913,7 +1915,9 @@ static void ahci_pmp_detach(struct ata_port *ap) writel(cmd, port_mmio + PORT_CMD); pp->intr_mask &= ~PORT_IRQ_BAD_PMP; - writel(pp->intr_mask, port_mmio + PORT_IRQ_MASK); + + if (!(ap->pflags & (ATA_PFLAG_FROZEN | ATA_PFLAG_INITIALIZING)) + writel(pp->intr_mask, port_mmio + PORT_IRQ_MASK); } int ahci_port_resume(struct ata_port *ap) -- Maxime -- 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