]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
net: fec: align rx data buffer size for dma map/unmap
authorNimrod Andy <B38611@freescale.com>
Tue, 23 Sep 2014 07:40:57 +0000 (15:40 +0800)
committerNitin Garg <nitin.garg@freescale.com>
Fri, 16 Jan 2015 03:18:06 +0000 (21:18 -0600)
Align allocated rx data buffer size for dma map/unmap, otherwise
kernel print warning when enable DMA_API_DEBUG.

Signed-off-by: Fugang Duan <B38611@freescale.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/freescale/fec_main.c

index e2323069662fce3e7dd7b131bc01ee82241d56f2..ce3c103d057287966bb95a16de6a6d20f6e78b0b 100644 (file)
@@ -1410,7 +1410,8 @@ fec_enet_rx_queue(struct net_device *ndev, int budget, u16 queue_id)
                index = fec_enet_get_bd_index(rxq->rx_bd_base, bdp, fep);
                data = rxq->rx_skbuff[index]->data;
                dma_sync_single_for_cpu(&fep->pdev->dev, bdp->cbd_bufaddr,
-                                       FEC_ENET_RX_FRSIZE, DMA_FROM_DEVICE);
+                                       FEC_ENET_RX_FRSIZE - fep->rx_align,
+                                       DMA_FROM_DEVICE);
 
                if (id_entry->driver_data & FEC_QUIRK_SWAP_FRAME)
                        swap_buffer(data, pkt_len);
@@ -1482,7 +1483,8 @@ fec_enet_rx_queue(struct net_device *ndev, int budget, u16 queue_id)
                }
 
                dma_sync_single_for_device(&fep->pdev->dev, bdp->cbd_bufaddr,
-                                       FEC_ENET_RX_FRSIZE, DMA_FROM_DEVICE);
+                                          FEC_ENET_RX_FRSIZE - fep->rx_align,
+                                          DMA_FROM_DEVICE);
 rx_processing_done:
                /* Clear the status flags for this buffer */
                status &= ~BD_ENET_RX_STATS;
@@ -2455,7 +2457,7 @@ static void fec_enet_free_buffers(struct net_device *ndev)
                        if (skb) {
                                dma_unmap_single(&fep->pdev->dev,
                                                 bdp->cbd_bufaddr,
-                                                FEC_ENET_RX_FRSIZE,
+                                                FEC_ENET_RX_FRSIZE - fep->rx_align,
                                                 DMA_FROM_DEVICE);
                                dev_kfree_skb(skb);
                        }