> > @@ -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) {
> 
> ...

Reply via email to