|
@@ -818,6 +818,12 @@ static void fec_enet_bd_init(struct net_device *dev)
|
|
|
for (i = 0; i < txq->bd.ring_size; i++) {
|
|
|
/* Initialize the BD for every fragment in the page. */
|
|
|
bdp->cbd_sc = cpu_to_fec16(0);
|
|
|
+ if (bdp->cbd_bufaddr &&
|
|
|
+ !IS_TSO_HEADER(txq, fec32_to_cpu(bdp->cbd_bufaddr)))
|
|
|
+ dma_unmap_single(&fep->pdev->dev,
|
|
|
+ fec32_to_cpu(bdp->cbd_bufaddr),
|
|
|
+ fec16_to_cpu(bdp->cbd_datlen),
|
|
|
+ DMA_TO_DEVICE);
|
|
|
if (txq->tx_skbuff[i]) {
|
|
|
dev_kfree_skb_any(txq->tx_skbuff[i]);
|
|
|
txq->tx_skbuff[i] = NULL;
|