summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabor Juhos <juhosg@openwrt.org>2012-02-11 15:11:55 +0000
committerGabor Juhos <juhosg@openwrt.org>2012-02-11 15:11:55 +0000
commit617954ca5df08ac025b3a3c5d84b698a049b202d (patch)
tree7107ff7631dd40784a4bc08d0ab2e78345a25e7e
parentd1d492eaf95fecf38f002e177de79c475c5dab32 (diff)
downloadmtk-20170518-617954ca5df08ac025b3a3c5d84b698a049b202d.zip
mtk-20170518-617954ca5df08ac025b3a3c5d84b698a049b202d.tar.gz
mtk-20170518-617954ca5df08ac025b3a3c5d84b698a049b202d.tar.bz2
ramips: raeth: add a temporary pktlen variable
SVN-Revision: 30442
-rw-r--r--target/linux/ramips/files/drivers/net/ramips.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/target/linux/ramips/files/drivers/net/ramips.c b/target/linux/ramips/files/drivers/net/ramips.c
index 84c9fe4..338d200 100644
--- a/target/linux/ramips/files/drivers/net/ramips.c
+++ b/target/linux/ramips/files/drivers/net/ramips.c
@@ -269,22 +269,25 @@ ramips_eth_rx_hw(unsigned long ptr)
while (max_rx) {
struct sk_buff *rx_skb, *new_skb;
+ int pktlen;
rx = (ramips_fe_rr(RAMIPS_RX_CALC_IDX0) + 1) % NUM_RX_DESC;
if (!(priv->rx[rx].rxd2 & RX_DMA_DONE))
break;
max_rx--;
+ rx_skb = priv->rx_skb[rx];
+ pktlen = RX_DMA_PLEN0(priv->rx[rx].rxd2);
+
new_skb = netdev_alloc_skb(dev, MAX_RX_LENGTH + NET_IP_ALIGN);
/* Reuse the buffer on allocation failures */
if (new_skb) {
- rx_skb = priv->rx_skb[rx];
- skb_put(rx_skb, RX_DMA_PLEN0(priv->rx[rx].rxd2));
+ skb_put(rx_skb, pktlen);
rx_skb->dev = dev;
rx_skb->protocol = eth_type_trans(rx_skb, dev);
rx_skb->ip_summed = CHECKSUM_NONE;
dev->stats.rx_packets++;
- dev->stats.rx_bytes += rx_skb->len;
+ dev->stats.rx_bytes += pktlen;
netif_rx(rx_skb);
priv->rx_skb[rx] = new_skb;