This reverts commit d265ebe41c911314bd273c218a37088835959fa1. Disabling threaded NAPI causes the Lenovo ThinkPad X13s to hang (e.g. no more interrupts received) almost immediately during RX. Apparently something broke since commit 13aa2fb692d3 ("wifi: ath11k: Enable threaded NAPI") so that a simple revert is no longer possible. As commit d265ebe41c91 ("Revert "wifi: ath11k: Enable threaded NAPI"") does not address the underlying issue reported with QCN9074, it seems we need to reenable threaded NAPI before fixing both bugs properly. Fixes: d265ebe41c91 ("Revert "wifi: ath11k: Enable threaded NAPI"") Signed-off-by: Johan Hovold <johan+linaro@xxxxxxxxxx> --- Hi Kalle, Disabling threaded NAPI caused a severe regression in 6.5-rc5 by making the X13s completely unusable (e.g. no keyboard input, I've seen an RCU splat once). I'm supposed to be on holiday this week, but thanks to the rain I gave rc5 a try and ran into this. I've added Bjorn, Mani and Konrad on CC who may be able to help with debugging this further if needed while I'm out-of-office. Johan drivers/net/wireless/ath/ath11k/ahb.c | 1 + drivers/net/wireless/ath/ath11k/pcic.c | 1 + 2 files changed, 2 insertions(+) diff --git a/drivers/net/wireless/ath/ath11k/ahb.c b/drivers/net/wireless/ath/ath11k/ahb.c index 139da578831a..1cebba7889d7 100644 --- a/drivers/net/wireless/ath/ath11k/ahb.c +++ b/drivers/net/wireless/ath/ath11k/ahb.c @@ -376,6 +376,7 @@ static void ath11k_ahb_ext_irq_enable(struct ath11k_base *ab) struct ath11k_ext_irq_grp *irq_grp = &ab->ext_irq_grp[i]; if (!irq_grp->napi_enabled) { + dev_set_threaded(&irq_grp->napi_ndev, true); napi_enable(&irq_grp->napi); irq_grp->napi_enabled = true; } diff --git a/drivers/net/wireless/ath/ath11k/pcic.c b/drivers/net/wireless/ath/ath11k/pcic.c index c63083633b37..c899616fbee4 100644 --- a/drivers/net/wireless/ath/ath11k/pcic.c +++ b/drivers/net/wireless/ath/ath11k/pcic.c @@ -466,6 +466,7 @@ void ath11k_pcic_ext_irq_enable(struct ath11k_base *ab) struct ath11k_ext_irq_grp *irq_grp = &ab->ext_irq_grp[i]; if (!irq_grp->napi_enabled) { + dev_set_threaded(&irq_grp->napi_ndev, true); napi_enable(&irq_grp->napi); irq_grp->napi_enabled = true; } -- 2.41.0