Michal Kazior <michal.kazior@xxxxxxxxx> writes: > ath10k assumed all interrupts were directed to it. > This isn't the case for legacy shared interrupts. > ath10k consumed interrupts for other devices. > > Check device irq status and return IRQ_NONE when > appropriate. > > Signed-off-by: Michal Kazior <michal.kazior@xxxxxxxxx> [...] > @@ -2085,6 +2103,9 @@ static irqreturn_t ath10k_pci_interrupt_handler(int irq, void *arg) > struct ath10k *ar = arg; > struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); > > + if (!ath10k_pci_irq_pending(ar)) > + return IRQ_NONE; > + > if (ar_pci->num_msi_intrs == 0) { > /* > * IMPORTANT: INTR_CLR regiser has to be set after What if you move ath10k_pci_irq_pending() call after ar_pci->num_msi_intrs == 0 check? That way you could remove the "ar_pci->num_msi_intrs == 0" check from irq_pending() function. -- Kalle Valo -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html