--- sys/dev/vmware/vmxnet3/if_vmx.c (revision 350104) +++ sys/dev/vmware/vmxnet3/if_vmx.c (working copy) @@ -1393,10 +1393,11 @@ vmxnet3_isc_txd_credits_update(void *vsc, uint16_t return (1); vmxnet3_barrier(sc, VMXNET3_BARRIER_RD); - if (++txc->vxcr_next == txc->vxcr_ndesc) { + if (txc->vxcr_next + 1 == txc->vxcr_ndesc) { txc->vxcr_next = 0; txc->vxcr_gen ^= 1; - } + } else + txc->vxcr_next++; if (txcd->eop_idx < txr->vxtxr_next) processed += txr->vxtxr_ndesc -