> > @@ -1959,10 +1966,29 @@ static bool idpf_tx_clean_buf_ring(struct
> idpf_tx_queue *txq, u16 compl_tag,
> > };
> > u16 ntc, orig_idx = idx;
> >
> > + tx_buf = &txq->tx_buf[buf_id];
> > + if (tx_buf->type == LIBETH_SQE_SKB) {
> > + if (skb_shinfo(tx_buf->skb)->tx_flags & SKBTX_IN_PROGRESS)
> > + idpf_tx_read_tstamp(txq, tx_buf->skb);
> > +
> > + libeth_tx_complete(tx_buf, &cp);
> > + idpf_post_buf_refill(txq->refillq, buf_id);
> > + }
> > +
> > + while (idpf_tx_buf_next(tx_buf) != IDPF_TXBUF_NULL) {
> > + u16 buf_id = idpf_tx_buf_next(tx_buf);
> > +
> > + tx_buf = &txq->tx_buf[buf_id];
> > + libeth_tx_complete(tx_buf, &cp);
> > + idpf_post_buf_refill(txq->refillq, buf_id);
> > + }
> > +
> > + return true;
>
> This is not a full review.
> And I guess this is an artifact of the development of this patch-set.
Correct, it's removed in the final patch of the series, but I can remove it in
this patch instead. Will send a v3 shortly.
Thanks!
Josh
> But the code in this function below this line appears to be unreachable.
>
> Flagged by Smatch.
>
> > +
> > tx_buf = &txq->tx_buf[idx];
> >
> > if (unlikely(tx_buf->type <= LIBETH_SQE_CTX ||
> > - idpf_tx_buf_compl_tag(tx_buf) != compl_tag))
> > + idpf_tx_buf_compl_tag(tx_buf) != buf_id))
> > return false;
> >
> > if (tx_buf->type == LIBETH_SQE_SKB) {
>
> ...