[RFC PATCH 2/3] wifi: ath11k: make external IRQ control idempotent

Mark Ruvald wabsie at gmail.com
Wed Jul 29 06:40:47 PDT 2026


> can you elaborate the scenario where the repeated lifecycle disable
> happen for better understand ?

Hey Karthikeyan, the scenario is a failed reset retry:

ath11k_core_reset()
  disable IRQ/NAPI                 depth 0 -> 1
  power-cycle
  recovery does not complete
    another reset_work is queued
      reset_count > 1
        wait_for(reset_complete) times out
          disable IRQ/NAPI again   depth 1 -> 2

later recovery succeeds
  enable IRQ/NAPI                  depth 2 -> 1

NAPI is then enabled, but the IRQ remains masked. The patch makes the second
lifecycle disable a no-op - ie idempotent.

This is an error/retry path, mainly the PCI/MHI reset path.

I haven't reproduced that exact sequence on hardware, but it was under
suspicion during testing, reloading of modules and kexec etc.
So this patch is more of a belt-and-suspenders kind of thing.
Idempotency helps me sleep at night.

regards Mark



More information about the ath11k mailing list