diff
51-    for (;
52-         read_ptr != tfd_num;
53-         txq->read_ptr = iwl_txq_inc_wrap(trans, txq->read_ptr),
54-         read_ptr = iwl_txq_get_cmd_index(txq, txq->read_ptr)) {
51+    do {
55         struct sk_buff *skb = txq->entries[read_ptr].skb;
57         if (WARN_ON_ONCE(!skb))
58-            continue;
58+            goto next_iteration;
60         iwl_txq_free_tso_page(trans, skb);
        /* Rest of the loop body */
69         iwl_txq_free_tfd(trans, txq);
70+    next_iteration:
71+        txq->read_ptr = iwl_txq_inc_wrap(trans, txq->read_ptr);
72+        read_ptr = iwl_txq_get_cmd_index(txq, txq->read_ptr);
73+    } while (read_ptr != tfd_num);
