After further debugging found that irq_enable is not being invoked by kernel in kernel/irq/chip.c after the few interrupts when we do wlan scan. In ARM64, when an interrupt arises who invokes irq_disable(struct irq_desc *desc)/irq_enable(struct irq_desc *desc) functions. >From my debugging for successful interrupt handling irq_disable->handler->irq_enabling is happening, irrespective of IRQD_IRQ_DISABLED state, is it correct ? Regards, Bharat > > Just to add, im using 4.6 kernel version. And the card is working on ARM, X86 > machine. > > > Subject: CPU stall with TP-Link wifi PCIe card > > > > Hi, > > > > We are testing TP-link wifi PCIe card(TL-WDN4800) on our soc > > (pcie-xilinx- nwl.c). This card is using legacy interrupts and it > > doesn't support MSI. > > > > When we do scan on wifi interface(using "iw dev wlan0 scan") cpu is > > getting stalled making whole system hang. > > > > After debugging found that IRQ is being disabled after getting 1 or 2 > > interrupts immediately after we run the scan command. > > > > But interrupts are being received to root port continuously but not > > being serviced by EP due to following condition, due to continuous > > interrupts cpu is getting stalled. > > > > In handle_simple_irq: > > > > if (unlikely(!desc->action || irqd_irq_disabled(&desc->irq_data))) { > > desc->istate |= IRQS_PENDING; > > goto out_unlock; > > } > > > > The irqd_irq_disabled(&desc->irq_data) is returning 1 after 1 or 2 > > interrupts after we scan. > > > > Can any one tell why irq is going into disabled state ? > > > > What might be the source that's making it go into disabled state ? > > > > Thanks & Regards, > > Bharat > > -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html