Bugs in wake-queue logic.

Janusz Dziedzic janusz.dziedzic at tieto.com
Thu Dec 3 22:06:44 PST 2015


On 3 December 2015 at 20:52, Ben Greear <greearb at candelatech.com> wrote:
> So, after tweaking a firmware image to actually be able to use
> all tx-buffers, then queues can actually be stopped on the host
> now.
>
> I'm now getting splats related to tx-queue being
> out of range.
>
> Why are we using vdev_id as the queue-id below?
>
This is comment in the code:

        /* Using vdev_id as queue number will make it very easy to do per-vif
         * tx queue locking. This shouldn't wrap due to interface combinations
         * but do a modulo for correctness sake and prevent using offchannel tx
         * queues for regular vif tx.
         */

BR
Janusz

> void ath10k_mac_vif_tx_unlock(struct ath10k_vif *arvif, int reason)
> {
>         struct ath10k *ar = arvif->ar;
>
>         lockdep_assert_held(&ar->htt.tx_lock);
>
>         WARN_ON(reason >= BITS_PER_LONG);
>         arvif->tx_paused &= ~BIT(reason);
>
>         if (ar->tx_paused)
>                 return;
>
>         if (arvif->tx_paused)
>                 return;
>
>         ieee80211_wake_queue(ar->hw, arvif->vdev_id);
> }
>
>
> Thanks,
> Ben
>
> --
> Ben Greear <greearb at candelatech.com>
> Candela Technologies Inc  http://www.candelatech.com
>
>
> _______________________________________________
> ath10k mailing list
> ath10k at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/ath10k



More information about the ath10k mailing list