diff options
author | Gabor Juhos <juhosg@openwrt.org> | 2012-02-15 18:33:42 +0000 |
---|---|---|
committer | Gabor Juhos <juhosg@openwrt.org> | 2012-02-15 18:33:42 +0000 |
commit | 8b8d9a83361130c5b33bdbb64413c898d62956e7 (patch) | |
tree | 3fdc23467a8e1bc7be68a6a51499eb60ae259807 | |
parent | e57546de8301e27f3fb0d29973093ac076a181fa (diff) | |
download | upstream-8b8d9a83361130c5b33bdbb64413c898d62956e7.tar.gz upstream-8b8d9a83361130c5b33bdbb64413c898d62956e7.tar.bz2 upstream-8b8d9a83361130c5b33bdbb64413c898d62956e7.zip |
ramips: raeth: add a helper function for skb allocation
SVN-Revision: 30555
-rw-r--r-- | target/linux/ramips/files/drivers/net/ramips.c | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/target/linux/ramips/files/drivers/net/ramips.c b/target/linux/ramips/files/drivers/net/ramips.c index f9864500f7..7f0f8c469e 100644 --- a/target/linux/ramips/files/drivers/net/ramips.c +++ b/target/linux/ramips/files/drivers/net/ramips.c @@ -88,6 +88,20 @@ ramips_hw_set_macaddr(unsigned char *mac) RAMIPS_GDMA1_MAC_ADRL); } +static struct sk_buff * +ramips_alloc_skb(struct raeth_priv *re) +{ + struct sk_buff *skb; + + skb = netdev_alloc_skb(re->netdev, MAX_RX_LENGTH + NET_IP_ALIGN); + if (!skb) + return NULL; + + skb_reserve(skb, NET_IP_ALIGN); + + return skb; +} + #if defined(CONFIG_RALINK_RT288X) || defined(CONFIG_RALINK_RT3883) #define RAMIPS_MDIO_RETRY 1000 @@ -522,13 +536,10 @@ ramips_alloc_dma(struct raeth_priv *re) dma_addr_t dma_addr; struct sk_buff *new_skb; - new_skb = netdev_alloc_skb(re->netdev, - MAX_RX_LENGTH + NET_IP_ALIGN); + new_skb = ramips_alloc_skb(re); if (!new_skb) goto err_cleanup; - skb_reserve(new_skb, NET_IP_ALIGN); - dma_addr = dma_map_single(&re->netdev->dev, new_skb->data, MAX_RX_LENGTH, DMA_FROM_DEVICE); re->rx_dma[i] = dma_addr; @@ -629,7 +640,7 @@ ramips_eth_rx_hw(unsigned long ptr) rx_skb = re->rx_skb[rx]; pktlen = RX_DMA_PLEN0(re->rx[rx].rxd2); - new_skb = netdev_alloc_skb(dev, MAX_RX_LENGTH + NET_IP_ALIGN); + new_skb = ramips_alloc_skb(re); /* Reuse the buffer on allocation failures */ if (new_skb) { dma_addr_t dma_addr; @@ -646,7 +657,6 @@ ramips_eth_rx_hw(unsigned long ptr) netif_rx(rx_skb); re->rx_skb[rx] = new_skb; - skb_reserve(new_skb, NET_IP_ALIGN); dma_addr = dma_map_single(&re->netdev->dev, new_skb->data, |