|
@@ -1427,6 +1427,7 @@ ldc_start_done:
|
|
dr->prod = (dr->prod + 1) & (VNET_TX_RING_SIZE - 1);
|
|
dr->prod = (dr->prod + 1) & (VNET_TX_RING_SIZE - 1);
|
|
if (unlikely(vnet_tx_dring_avail(dr) < 1)) {
|
|
if (unlikely(vnet_tx_dring_avail(dr) < 1)) {
|
|
netif_tx_stop_queue(txq);
|
|
netif_tx_stop_queue(txq);
|
|
|
|
+ smp_rmb();
|
|
if (vnet_tx_dring_avail(dr) > VNET_TX_WAKEUP_THRESH(dr))
|
|
if (vnet_tx_dring_avail(dr) > VNET_TX_WAKEUP_THRESH(dr))
|
|
netif_tx_wake_queue(txq);
|
|
netif_tx_wake_queue(txq);
|
|
}
|
|
}
|