|
@@ -51,7 +51,7 @@ static unsigned int stmmac_jumbo_frm(void *p, struct sk_buff *skb, int csum)
|
|
desc->des3 = desc->des2 + BUF_SIZE_4KiB;
|
|
desc->des3 = desc->des2 + BUF_SIZE_4KiB;
|
|
priv->hw->desc->prepare_tx_desc(desc, 1, bmax,
|
|
priv->hw->desc->prepare_tx_desc(desc, 1, bmax,
|
|
csum);
|
|
csum);
|
|
-
|
|
|
|
|
|
+ wmb();
|
|
entry = (++priv->cur_tx) % txsize;
|
|
entry = (++priv->cur_tx) % txsize;
|
|
desc = priv->dma_tx + entry;
|
|
desc = priv->dma_tx + entry;
|
|
|
|
|
|
@@ -59,6 +59,7 @@ static unsigned int stmmac_jumbo_frm(void *p, struct sk_buff *skb, int csum)
|
|
len, DMA_TO_DEVICE);
|
|
len, DMA_TO_DEVICE);
|
|
desc->des3 = desc->des2 + BUF_SIZE_4KiB;
|
|
desc->des3 = desc->des2 + BUF_SIZE_4KiB;
|
|
priv->hw->desc->prepare_tx_desc(desc, 0, len, csum);
|
|
priv->hw->desc->prepare_tx_desc(desc, 0, len, csum);
|
|
|
|
+ wmb();
|
|
priv->hw->desc->set_tx_owner(desc);
|
|
priv->hw->desc->set_tx_owner(desc);
|
|
priv->tx_skbuff[entry] = NULL;
|
|
priv->tx_skbuff[entry] = NULL;
|
|
} else {
|
|
} else {
|