summaryrefslogtreecommitdiffstats
path: root/target/linux/ramips/files
diff options
context:
space:
mode:
authorGabor Juhos <juhosg@openwrt.org>2012-02-15 18:33:42 +0000
committerGabor Juhos <juhosg@openwrt.org>2012-02-15 18:33:42 +0000
commit8b8d9a83361130c5b33bdbb64413c898d62956e7 (patch)
tree3fdc23467a8e1bc7be68a6a51499eb60ae259807 /target/linux/ramips/files
parente57546de8301e27f3fb0d29973093ac076a181fa (diff)
downloadmaster-31e0f0ae-8b8d9a83361130c5b33bdbb64413c898d62956e7.tar.gz
master-31e0f0ae-8b8d9a83361130c5b33bdbb64413c898d62956e7.tar.bz2
master-31e0f0ae-8b8d9a83361130c5b33bdbb64413c898d62956e7.zip
ramips: raeth: add a helper function for skb allocation
SVN-Revision: 30555
Diffstat (limited to 'target/linux/ramips/files')
-rw-r--r--target/linux/ramips/files/drivers/net/ramips.c22
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,