CPU stall with TP-Link wifi PCIe card

From: Bharat Kumar Gogada
Date: Wed Nov 30 2016 - 10:05:29 EST


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