]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
net: mvneta: factor rx refilling code
authorwilly tarreau <w@1wt.eu>
Thu, 16 Jan 2014 07:20:13 +0000 (08:20 +0100)
committerDavid S. Miller <davem@davemloft.net>
Thu, 16 Jan 2014 23:15:42 +0000 (15:15 -0800)
Make mvneta_rxq_fill() use mvneta_rx_refill() instead of using
duplicate code.

Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Gregory CLEMENT <gregory.clement@free-electrons.com>
Tested-by: Arnaud Ebalard <arno@natisbad.org>
Signed-off-by: Willy Tarreau <w@1wt.eu>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/marvell/mvneta.c

index 2fb9559ba6fe3708461ccd0a9477eb1277f40143..eccafd13b882c7722339c1b3aeaf01787ca11c9e 100644 (file)
@@ -1969,32 +1969,15 @@ static int mvneta_poll(struct napi_struct *napi, int budget)
 static int mvneta_rxq_fill(struct mvneta_port *pp, struct mvneta_rx_queue *rxq,
                           int num)
 {
-       struct net_device *dev = pp->dev;
        int i;
 
        for (i = 0; i < num; i++) {
-               struct sk_buff *skb;
-               struct mvneta_rx_desc *rx_desc;
-               unsigned long phys_addr;
-
-               skb = dev_alloc_skb(pp->pkt_size);
-               if (!skb) {
-                       netdev_err(dev, "%s:rxq %d, %d of %d buffs  filled\n",
+               memset(rxq->descs + i, 0, sizeof(struct mvneta_rx_desc));
+               if (mvneta_rx_refill(pp, rxq->descs + i) != 0) {
+                       netdev_err(pp->dev, "%s:rxq %d, %d of %d buffs  filled\n",
                                __func__, rxq->id, i, num);
                        break;
                }
-
-               rx_desc = rxq->descs + i;
-               memset(rx_desc, 0, sizeof(struct mvneta_rx_desc));
-               phys_addr = dma_map_single(dev->dev.parent, skb->head,
-                                          MVNETA_RX_BUF_SIZE(pp->pkt_size),
-                                          DMA_FROM_DEVICE);
-               if (unlikely(dma_mapping_error(dev->dev.parent, phys_addr))) {
-                       dev_kfree_skb(skb);
-                       break;
-               }
-
-               mvneta_rx_desc_fill(rx_desc, phys_addr, (u32)skb);
        }
 
        /* Add this number of RX descriptors as non occupied (ready to