diff options
author | willy tarreau <w@1wt.eu> | 2014-01-16 02:20:13 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-01-16 18:15:42 -0500 |
commit | a1a65ab18a9da16e322e88305324c38cd797caa9 (patch) | |
tree | bfa1a46ea1d711308422c6ea691592f5c76f30c8 /drivers/net/ethernet/marvell | |
parent | 6c4989748759f433bf999f33c1ff3853ed5ca945 (diff) |
net: mvneta: factor rx refilling code
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>
Diffstat (limited to 'drivers/net/ethernet/marvell')
-rw-r--r-- | drivers/net/ethernet/marvell/mvneta.c | 23 |
1 files changed, 3 insertions, 20 deletions
diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c index 2fb9559ba6fe..eccafd13b882 100644 --- a/drivers/net/ethernet/marvell/mvneta.c +++ b/drivers/net/ethernet/marvell/mvneta.c | |||
@@ -1969,32 +1969,15 @@ static int mvneta_poll(struct napi_struct *napi, int budget) | |||
1969 | static int mvneta_rxq_fill(struct mvneta_port *pp, struct mvneta_rx_queue *rxq, | 1969 | static int mvneta_rxq_fill(struct mvneta_port *pp, struct mvneta_rx_queue *rxq, |
1970 | int num) | 1970 | int num) |
1971 | { | 1971 | { |
1972 | struct net_device *dev = pp->dev; | ||
1973 | int i; | 1972 | int i; |
1974 | 1973 | ||
1975 | for (i = 0; i < num; i++) { | 1974 | for (i = 0; i < num; i++) { |
1976 | struct sk_buff *skb; | 1975 | memset(rxq->descs + i, 0, sizeof(struct mvneta_rx_desc)); |
1977 | struct mvneta_rx_desc *rx_desc; | 1976 | if (mvneta_rx_refill(pp, rxq->descs + i) != 0) { |
1978 | unsigned long phys_addr; | 1977 | netdev_err(pp->dev, "%s:rxq %d, %d of %d buffs filled\n", |
1979 | |||
1980 | skb = dev_alloc_skb(pp->pkt_size); | ||
1981 | if (!skb) { | ||
1982 | netdev_err(dev, "%s:rxq %d, %d of %d buffs filled\n", | ||
1983 | __func__, rxq->id, i, num); | 1978 | __func__, rxq->id, i, num); |
1984 | break; | 1979 | break; |
1985 | } | 1980 | } |
1986 | |||
1987 | rx_desc = rxq->descs + i; | ||
1988 | memset(rx_desc, 0, sizeof(struct mvneta_rx_desc)); | ||
1989 | phys_addr = dma_map_single(dev->dev.parent, skb->head, | ||
1990 | MVNETA_RX_BUF_SIZE(pp->pkt_size), | ||
1991 | DMA_FROM_DEVICE); | ||
1992 | if (unlikely(dma_mapping_error(dev->dev.parent, phys_addr))) { | ||
1993 | dev_kfree_skb(skb); | ||
1994 | break; | ||
1995 | } | ||
1996 | |||
1997 | mvneta_rx_desc_fill(rx_desc, phys_addr, (u32)skb); | ||
1998 | } | 1981 | } |
1999 | 1982 | ||
2000 | /* Add this number of RX descriptors as non occupied (ready to | 1983 | /* Add this number of RX descriptors as non occupied (ready to |