> On Sun, Mar 24, 2019 at 03:51:43PM +0100, Lorenzo Bianconi wrote:
> > + int idx;
> > +
> > sq = &dev->q_tx[i];
> > q = sq->q;
> >
> > - spin_lock_bh(&q->lock);
> > - while (true) {
> > - if (!q->entry[q->head].done || !q->queued)
> > + while (q->queued > n_queued) {
> > + if (!q->entry[q->head].done)
> > break;
> If you place done = false here you will not need additional idx
> variable.As Felix suggested, I would set done to false at the end of the loop, after tx_complete_skb > > > dev->drv->tx_complete_skb(dev, i, &entry); > > - spin_lock_bh(&q->lock); > > + q->entry[idx].done = false; > > } > > > > + spin_lock_bh(&q->lock); > This patch does not apply for me as there is missing > mt76_txq_schedule(dev, sq); Sorry I forgot to mention this patch is based on https://patchwork.kernel.org/patch/10856027/. Have you applied it? > > > + > > + sq->swq_queued -= n_sw_queued; > > + q->queued -= n_queued; > > + > Naming is confusing, it should rather be n_dequeued, n_sw_dequeued. I just followed dma counterpart naming convention, but I can modify it. Regards, Lorenzo > > Stanislaw
signature.asc
Description: PGP signature
