On Thu, Aug 11, 2016 at 07:01:36PM +0200, Christoph Hellwig wrote: > On Thu, Aug 11, 2016 at 12:36:37PM -0400, Tejun Heo wrote: > > > diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c > > > index 7461a58..dcf2c72 100644 > > > --- a/drivers/ata/libahci.c > > > +++ b/drivers/ata/libahci.c > > > @@ -2524,7 +2524,7 @@ static int ahci_host_activate_multi_irqs(struct ata_host *host, > > > > > > /* Do not receive interrupts sent by dummy ports */ > > > if (!pp) { > > > - disable_irq(irq + i); > > > + disable_irq(irq); > > > continue; > > > } > > > > I'm not following. The driver at that point has irqs in the range > > [@irq, @irq + @host->n_ports - 1] and is trying to activate them and > > the above code block disables irq for a port which should be skipped. > > Why wouldn't it need to be indexed? > > Because ahci_irq_vector does that indexing already. This call changed > when Dan added ahci_irq_vector to support the MSI-X case - since > then ahci_irq_vector either does the base irq + index logic for > MSI or uses the msix_entries array for MSI-X, and irq contains the > result of that operation. lol, sorry. Was looking at an old (v4.0) tree. Applying to libata/for-4.8-fixes. Thanks. -- tejun -- 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