{
        int ret;
        u32 count;
+       int num_pkts;
+       int tx_num_deferred;
        unsigned long flags;
        struct vmxnet3_tx_ctx ctx;
        union Vmxnet3_GenericDesc *gdesc;
 #else
        gdesc = ctx.sop_txd;
 #endif
+       tx_num_deferred = le32_to_cpu(tq->shared->txNumDeferred);
        if (ctx.mss) {
                gdesc->txd.hlen = ctx.eth_ip_hdr_size + ctx.l4_hdr_size;
                gdesc->txd.om = VMXNET3_OM_TSO;
                gdesc->txd.msscof = ctx.mss;
-               le32_add_cpu(&tq->shared->txNumDeferred, (skb->len -
-                            gdesc->txd.hlen + ctx.mss - 1) / ctx.mss);
+               num_pkts = (skb->len - gdesc->txd.hlen + ctx.mss - 1) / ctx.mss;
        } else {
                if (skb->ip_summed == CHECKSUM_PARTIAL) {
                        gdesc->txd.hlen = ctx.eth_ip_hdr_size;
                        gdesc->txd.om = 0;
                        gdesc->txd.msscof = 0;
                }
-               le32_add_cpu(&tq->shared->txNumDeferred, 1);
+               num_pkts = 1;
        }
+       le32_add_cpu(&tq->shared->txNumDeferred, num_pkts);
+       tx_num_deferred += num_pkts;
 
        if (skb_vlan_tag_present(skb)) {
                gdesc->txd.ti = 1;
 
        spin_unlock_irqrestore(&tq->tx_lock, flags);
 
-       if (le32_to_cpu(tq->shared->txNumDeferred) >=
-                                       le32_to_cpu(tq->shared->txThreshold)) {
+       if (tx_num_deferred >= le32_to_cpu(tq->shared->txThreshold)) {
                tq->shared->txNumDeferred = 0;
                VMXNET3_WRITE_BAR0_REG(adapter,
                                       VMXNET3_REG_TXPROD + tq->qid * 8,
 
 /*
  * Version numbers
  */
-#define VMXNET3_DRIVER_VERSION_STRING   "1.4.11.0-k"
+#define VMXNET3_DRIVER_VERSION_STRING   "1.4.12.0-k"
 
 /* a 32-bit int, each byte encode a verion number in VMXNET3_DRIVER_VERSION */
-#define VMXNET3_DRIVER_VERSION_NUM      0x01040b00
+#define VMXNET3_DRIVER_VERSION_NUM      0x01040c00
 
 #if defined(CONFIG_PCI_MSI)
        /* RSS only makes sense if MSI-X is supported. */