Hello,

here is my analysis of the problem:
Commit c9353bf483d3 plumps the budget down into the
ath10k_htt_rx_extract_amsdu function. Per extracted msdu frame the
budget is reduced by one until either we have no budget left or all
msdus are extracted from the amsdu. The function then checks whether all
frames were extracted, if not it returns -EAGAIN.

The error happens if we have to extract more frames then we have
budget_left, because not all frames are extracted and
ath10k_htt_rx_in_ord_ind enters this error path:

case -EAGAIN:
        /* fall through */
default:
        /* Should not happen. */
        ath10k_warn(ar, "failed to extract amsdu: %d\n", ret);
        htt->rx_confused = true;
        __skb_queue_purge(&list);
        return -EIO;

Which is not recoverable by the driver, only through hardware reset.

MfG
Rouven Czerwinski

_______________________________________________
ath10k mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/ath10k

Reply via email to