Deadlock on (faked) firmware crash, CUS239, modified 10.4.3 firmware.

Ben Greear greearb at
Wed Mar 30 15:28:05 PDT 2016

> Hmm.. If it still reproduces can you try the following diff?
> --- a/drivers/net/wireless/ath/ath10k/mac.c
> +++ b/drivers/net/wireless/ath/ath10k/mac.c
> @@ -3780,6 +3780,8 @@ void ath10k_mac_tx_push_pending(struct ath10k *ar)
>                  list_del_init(&artxq->list);
>                  if (ret != -ENOENT)
>                          list_add_tail(&artxq->list, &ar->txqs);
> +               else if (artxq == last)
> +                       last = list_last_entry(&ar->txqs, struct
> ath10k_txq, list);
>                  ath10k_htt_tx_txq_update(hw, txq);

Ok, I added this code, and can still reproduce the code.

Firmware is crashing multiple times a minute in this machine in it's
current configuration.  Right before it hung, firmware crashed and
was restarted, and then I get the hang notification.

I don't see any obvious bail-out in the tx_push_pending logic
if the firmware crashes?


Ben Greear <greearb at>
Candela Technologies Inc

More information about the ath10k mailing list