aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2008-11-04 00:11:17 -0500
committerDavid S. Miller <davem@davemloft.net>2008-11-04 00:11:17 -0500
commitbabcda74e9d96bb58fd9c6c5112dbdbff169e695 (patch)
treefcbe5e70f1fff01ad49504171e964c387a5ad7f8 /drivers
parentab2910921064b657610a3b501358a305e13087ea (diff)
drivers/net: Kill now superfluous ->last_rx stores.
The generic packet receive code takes care of setting netdev->last_rx when necessary, for the sake of the bonding ARP monitor. Drivers need not do it any more. Some cases had to be skipped over because the drivers were making use of the ->last_rx value themselves. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/3c501.c1
-rw-r--r--drivers/net/3c505.c1
-rw-r--r--drivers/net/3c507.c1
-rw-r--r--drivers/net/3c509.c1
-rw-r--r--drivers/net/3c515.c2
-rw-r--r--drivers/net/3c523.c1
-rw-r--r--drivers/net/3c527.c1
-rw-r--r--drivers/net/3c59x.c2
-rw-r--r--drivers/net/7990.c1
-rw-r--r--drivers/net/8139cp.c1
-rw-r--r--drivers/net/8139too.c1
-rw-r--r--drivers/net/82596.c1
-rw-r--r--drivers/net/a2065.c1
-rw-r--r--drivers/net/acenic.c1
-rw-r--r--drivers/net/amd8111e.c1
-rw-r--r--drivers/net/appletalk/cops.c1
-rw-r--r--drivers/net/appletalk/ltpc.c1
-rw-r--r--drivers/net/arcnet/arc-rawmode.c1
-rw-r--r--drivers/net/arcnet/capmode.c1
-rw-r--r--drivers/net/arcnet/rfc1051.c1
-rw-r--r--drivers/net/arcnet/rfc1201.c2
-rw-r--r--drivers/net/ariadne.c1
-rw-r--r--drivers/net/arm/am79c961a.c1
-rw-r--r--drivers/net/arm/at91_ether.c1
-rw-r--r--drivers/net/arm/ep93xx_eth.c2
-rw-r--r--drivers/net/arm/ixp4xx_eth.c1
-rw-r--r--drivers/net/at1700.c1
-rw-r--r--drivers/net/atarilance.c1
-rw-r--r--drivers/net/atl1e/atl1e_main.c1
-rw-r--r--drivers/net/atlx/atl1.c2
-rw-r--r--drivers/net/atlx/atl2.c1
-rw-r--r--drivers/net/au1000_eth.c1
-rw-r--r--drivers/net/b44.c1
-rw-r--r--drivers/net/bfin_mac.c1
-rw-r--r--drivers/net/bmac.c2
-rw-r--r--drivers/net/bnx2.c1
-rw-r--r--drivers/net/bnx2x_main.c3
-rw-r--r--drivers/net/cassini.c1
-rw-r--r--drivers/net/chelsio/sge.c1
-rw-r--r--drivers/net/cs89x0.c2
-rw-r--r--drivers/net/cxgb3/sge.c1
-rw-r--r--drivers/net/de600.c1
-rw-r--r--drivers/net/de620.c1
-rw-r--r--drivers/net/declance.c1
-rw-r--r--drivers/net/defxx.c1
-rw-r--r--drivers/net/depca.c1
-rw-r--r--drivers/net/dl2k.c1
-rw-r--r--drivers/net/e100.c1
-rw-r--r--drivers/net/e1000/e1000_main.c2
-rw-r--r--drivers/net/e1000e/netdev.c2
-rw-r--r--drivers/net/eepro.c1
-rw-r--r--drivers/net/eexpress.c1
-rw-r--r--drivers/net/ehea/ehea_main.c1
-rw-r--r--drivers/net/enc28j60.c1
-rw-r--r--drivers/net/enic/enic_main.c1
-rw-r--r--drivers/net/epic100.c1
-rw-r--r--drivers/net/eth16i.c1
-rw-r--r--drivers/net/ewrk3.c1
-rw-r--r--drivers/net/fealnx.c1
-rw-r--r--drivers/net/fec_mpc52xx.c1
-rw-r--r--drivers/net/forcedeth.c2
-rw-r--r--drivers/net/gianfar.c2
-rw-r--r--drivers/net/hamachi.c1
-rw-r--r--drivers/net/hamradio/6pack.c1
-rw-r--r--drivers/net/hamradio/baycom_epp.c1
-rw-r--r--drivers/net/hamradio/bpqether.c1
-rw-r--r--drivers/net/hamradio/dmascc.c1
-rw-r--r--drivers/net/hamradio/hdlcdrv.c1
-rw-r--r--drivers/net/hamradio/mkiss.c1
-rw-r--r--drivers/net/hamradio/scc.c1
-rw-r--r--drivers/net/hamradio/yam.c1
-rw-r--r--drivers/net/hp100.c2
-rw-r--r--drivers/net/ibmlana.c1
-rw-r--r--drivers/net/ibmveth.c1
-rw-r--r--drivers/net/igb/igb_main.c2
-rw-r--r--drivers/net/ioc3-eth.c1
-rw-r--r--drivers/net/ipg.c9
-rw-r--r--drivers/net/irda/ali-ircc.c1
-rw-r--r--drivers/net/irda/au1k_ir.c1
-rw-r--r--drivers/net/irda/irda-usb.c1
-rw-r--r--drivers/net/irda/kingsun-sir.c1
-rw-r--r--drivers/net/irda/ks959-sir.c1
-rw-r--r--drivers/net/irda/ksdazzle-sir.c1
-rw-r--r--drivers/net/irda/mcs7780.c1
-rw-r--r--drivers/net/irda/nsc-ircc.c1
-rw-r--r--drivers/net/irda/pxaficp_ir.c4
-rw-r--r--drivers/net/irda/sa1100_ir.c2
-rw-r--r--drivers/net/irda/stir4200.c1
-rw-r--r--drivers/net/irda/vlsi_ir.c1
-rw-r--r--drivers/net/irda/w83977af_ir.c1
-rw-r--r--drivers/net/isa-skeleton.c1
-rw-r--r--drivers/net/ixgb/ixgb_main.c1
-rw-r--r--drivers/net/ixgbe/ixgbe_main.c1
-rw-r--r--drivers/net/ixp2000/ixpdev.c2
-rw-r--r--drivers/net/jme.c1
-rw-r--r--drivers/net/korina.c1
-rw-r--r--drivers/net/lance.c1
-rw-r--r--drivers/net/lib82596.c1
-rw-r--r--drivers/net/lib8390.c1
-rw-r--r--drivers/net/loopback.c2
-rw-r--r--drivers/net/lp486e.c1
-rw-r--r--drivers/net/mac89x0.c1
-rw-r--r--drivers/net/macb.c1
-rw-r--r--drivers/net/mace.c1
-rw-r--r--drivers/net/macmace.c1
-rw-r--r--drivers/net/macvlan.c2
-rw-r--r--drivers/net/meth.c1
-rw-r--r--drivers/net/mlx4/en_rx.c2
-rw-r--r--drivers/net/mv643xx_eth.c2
-rw-r--r--drivers/net/myri10ge/myri10ge.c1
-rw-r--r--drivers/net/myri_sbus.c1
-rw-r--r--drivers/net/natsemi.c1
-rw-r--r--drivers/net/netx-eth.c1
-rw-r--r--drivers/net/netxen/netxen_nic_init.c2
-rw-r--r--drivers/net/ni5010.c1
-rw-r--r--drivers/net/ni52.c1
-rw-r--r--drivers/net/ni65.c1
-rw-r--r--drivers/net/niu.c2
-rw-r--r--drivers/net/pci-skeleton.c1
-rw-r--r--drivers/net/pcmcia/3c574_cs.c1
-rw-r--r--drivers/net/pcmcia/3c589_cs.c1
-rw-r--r--drivers/net/pcmcia/axnet_cs.c1
-rw-r--r--drivers/net/pcmcia/fmvj18x_cs.c1
-rw-r--r--drivers/net/pcmcia/nmclan_cs.c1
-rw-r--r--drivers/net/pcmcia/xirc2ps_cs.c1
-rw-r--r--drivers/net/pcnet32.c1
-rw-r--r--drivers/net/plip.c1
-rw-r--r--drivers/net/ppp_generic.c1
-rw-r--r--drivers/net/qla3xxx.c2
-rw-r--r--drivers/net/qlge/qlge_main.c1
-rw-r--r--drivers/net/r6040.c1
-rw-r--r--drivers/net/r8169.c1
-rw-r--r--drivers/net/rrunner.c1
-rw-r--r--drivers/net/s2io.c1
-rw-r--r--drivers/net/sb1000.c1
-rw-r--r--drivers/net/sc92031.c1
-rw-r--r--drivers/net/seeq8005.c1
-rw-r--r--drivers/net/sfc/rx.c2
-rw-r--r--drivers/net/sgiseeq.c1
-rw-r--r--drivers/net/sh_eth.c1
-rw-r--r--drivers/net/sis190.c1
-rw-r--r--drivers/net/sis900.c1
-rw-r--r--drivers/net/skfp/skfddi.c2
-rw-r--r--drivers/net/skge.c1
-rw-r--r--drivers/net/slip.c1
-rw-r--r--drivers/net/smc911x.c2
-rw-r--r--drivers/net/smc9194.c1
-rw-r--r--drivers/net/smc91x.c1
-rw-r--r--drivers/net/sonic.c1
-rw-r--r--drivers/net/starfire.c1
-rw-r--r--drivers/net/sun3lance.c1
-rw-r--r--drivers/net/sunbmac.c1
-rw-r--r--drivers/net/sundance.c1
-rw-r--r--drivers/net/sungem.c1
-rw-r--r--drivers/net/sunhme.c1
-rw-r--r--drivers/net/sunlance.c2
-rw-r--r--drivers/net/sunqe.c1
-rw-r--r--drivers/net/tc35815.c1
-rw-r--r--drivers/net/tehuti.c1
-rw-r--r--drivers/net/tg3.c1
-rw-r--r--drivers/net/tlan.c2
-rw-r--r--drivers/net/tokenring/3c359.c2
-rw-r--r--drivers/net/tokenring/ibmtr.c1
-rw-r--r--drivers/net/tokenring/lanstreamer.c1
-rw-r--r--drivers/net/tokenring/olympic.c2
-rw-r--r--drivers/net/tokenring/smctr.c2
-rw-r--r--drivers/net/tokenring/tms380tr.c1
-rw-r--r--drivers/net/tsi108_eth.c1
-rw-r--r--drivers/net/tulip/de2104x.c1
-rw-r--r--drivers/net/tulip/de4x5.c1
-rw-r--r--drivers/net/tulip/dmfe.c1
-rw-r--r--drivers/net/tulip/interrupt.c2
-rw-r--r--drivers/net/tulip/uli526x.c1
-rw-r--r--drivers/net/tulip/winbond-840.c1
-rw-r--r--drivers/net/tulip/xircom_cb.c1
-rw-r--r--drivers/net/tun.c1
-rw-r--r--drivers/net/typhoon.c1
-rw-r--r--drivers/net/ucc_geth.c2
-rw-r--r--drivers/net/usb/catc.c2
-rw-r--r--drivers/net/via-rhine.c1
-rw-r--r--drivers/net/via-velocity.c2
-rw-r--r--drivers/net/wan/cosa.c1
-rw-r--r--drivers/net/wan/cycx_x25.c2
-rw-r--r--drivers/net/wan/dlci.c1
-rw-r--r--drivers/net/wan/dscc4.c1
-rw-r--r--drivers/net/wan/farsync.c2
-rw-r--r--drivers/net/wan/hd6457x.c1
-rw-r--r--drivers/net/wan/hostess_sv11.c1
-rw-r--r--drivers/net/wan/lapbether.c3
-rw-r--r--drivers/net/wan/lmc/lmc_main.c1
-rw-r--r--drivers/net/wan/lmc/lmc_proto.c1
-rw-r--r--drivers/net/wan/sbni.c2
-rw-r--r--drivers/net/wan/sealevel.c1
-rw-r--r--drivers/net/wan/syncppp.c4
-rw-r--r--drivers/net/wan/wanxl.c1
-rw-r--r--drivers/net/wan/x25_asy.c4
-rw-r--r--drivers/net/wireless/airo.c3
-rw-r--r--drivers/net/wireless/arlan-main.c1
-rw-r--r--drivers/net/wireless/atmel.c2
-rw-r--r--drivers/net/wireless/hostap/hostap_80211_rx.c3
-rw-r--r--drivers/net/wireless/netwave_cs.c1
-rw-r--r--drivers/net/wireless/orinoco.c2
-rw-r--r--drivers/net/wireless/ray_cs.c1
-rw-r--r--drivers/net/wireless/strip.c2
-rw-r--r--drivers/net/wireless/wavelan.c1
-rw-r--r--drivers/net/wireless/wavelan_cs.c1
-rw-r--r--drivers/net/wireless/wl3501_cs.c1
-rw-r--r--drivers/net/wireless/zd1201.c2
-rw-r--r--drivers/net/xen-netfront.c1
-rw-r--r--drivers/net/yellowfin.c1
-rw-r--r--drivers/net/znet.c1
211 files changed, 1 insertions, 276 deletions
diff --git a/drivers/net/3c501.c b/drivers/net/3c501.c
index 7d15e7c6bca..3a44db1ed74 100644
--- a/drivers/net/3c501.c
+++ b/drivers/net/3c501.c
@@ -725,7 +725,6 @@ static void el_receive(struct net_device *dev)
725 insb(DATAPORT, skb_put(skb, pkt_len), pkt_len); 725 insb(DATAPORT, skb_put(skb, pkt_len), pkt_len);
726 skb->protocol = eth_type_trans(skb, dev); 726 skb->protocol = eth_type_trans(skb, dev);
727 netif_rx(skb); 727 netif_rx(skb);
728 dev->last_rx = jiffies;
729 dev->stats.rx_packets++; 728 dev->stats.rx_packets++;
730 dev->stats.rx_bytes += pkt_len; 729 dev->stats.rx_bytes += pkt_len;
731 } 730 }
diff --git a/drivers/net/3c505.c b/drivers/net/3c505.c
index 6ecb4188b45..e669da76ed0 100644
--- a/drivers/net/3c505.c
+++ b/drivers/net/3c505.c
@@ -672,7 +672,6 @@ static irqreturn_t elp_interrupt(int irq, void *dev_id)
672 skb->protocol = eth_type_trans(skb,dev); 672 skb->protocol = eth_type_trans(skb,dev);
673 dev->stats.rx_bytes += skb->len; 673 dev->stats.rx_bytes += skb->len;
674 netif_rx(skb); 674 netif_rx(skb);
675 dev->last_rx = jiffies;
676 } 675 }
677 } 676 }
678 adapter->dmaing = 0; 677 adapter->dmaing = 0;
diff --git a/drivers/net/3c507.c b/drivers/net/3c507.c
index 66fd505788f..b8585ecd1d7 100644
--- a/drivers/net/3c507.c
+++ b/drivers/net/3c507.c
@@ -865,7 +865,6 @@ static void el16_rx(struct net_device *dev)
865 865
866 skb->protocol=eth_type_trans(skb,dev); 866 skb->protocol=eth_type_trans(skb,dev);
867 netif_rx(skb); 867 netif_rx(skb);
868 dev->last_rx = jiffies;
869 dev->stats.rx_packets++; 868 dev->stats.rx_packets++;
870 dev->stats.rx_bytes += pkt_len; 869 dev->stats.rx_bytes += pkt_len;
871 } 870 }
diff --git a/drivers/net/3c509.c b/drivers/net/3c509.c
index cc970c49fb3..226a017a999 100644
--- a/drivers/net/3c509.c
+++ b/drivers/net/3c509.c
@@ -1074,7 +1074,6 @@ el3_rx(struct net_device *dev)
1074 outw(RxDiscard, ioaddr + EL3_CMD); /* Pop top Rx packet. */ 1074 outw(RxDiscard, ioaddr + EL3_CMD); /* Pop top Rx packet. */
1075 skb->protocol = eth_type_trans(skb,dev); 1075 skb->protocol = eth_type_trans(skb,dev);
1076 netif_rx(skb); 1076 netif_rx(skb);
1077 dev->last_rx = jiffies;
1078 dev->stats.rx_bytes += pkt_len; 1077 dev->stats.rx_bytes += pkt_len;
1079 dev->stats.rx_packets++; 1078 dev->stats.rx_packets++;
1080 continue; 1079 continue;
diff --git a/drivers/net/3c515.c b/drivers/net/3c515.c
index a2c24684a44..7f995008a45 100644
--- a/drivers/net/3c515.c
+++ b/drivers/net/3c515.c
@@ -1301,7 +1301,6 @@ static int corkscrew_rx(struct net_device *dev)
1301 outw(RxDiscard, ioaddr + EL3_CMD); /* Pop top Rx packet. */ 1301 outw(RxDiscard, ioaddr + EL3_CMD); /* Pop top Rx packet. */
1302 skb->protocol = eth_type_trans(skb, dev); 1302 skb->protocol = eth_type_trans(skb, dev);
1303 netif_rx(skb); 1303 netif_rx(skb);
1304 dev->last_rx = jiffies;
1305 dev->stats.rx_packets++; 1304 dev->stats.rx_packets++;
1306 dev->stats.rx_bytes += pkt_len; 1305 dev->stats.rx_bytes += pkt_len;
1307 /* Wait a limited time to go to next packet. */ 1306 /* Wait a limited time to go to next packet. */
@@ -1388,7 +1387,6 @@ static int boomerang_rx(struct net_device *dev)
1388 } 1387 }
1389 skb->protocol = eth_type_trans(skb, dev); 1388 skb->protocol = eth_type_trans(skb, dev);
1390 netif_rx(skb); 1389 netif_rx(skb);
1391 dev->last_rx = jiffies;
1392 dev->stats.rx_packets++; 1390 dev->stats.rx_packets++;
1393 } 1391 }
1394 entry = (++vp->cur_rx) % RX_RING_SIZE; 1392 entry = (++vp->cur_rx) % RX_RING_SIZE;
diff --git a/drivers/net/3c523.c b/drivers/net/3c523.c
index 23a31232326..0885aeeac98 100644
--- a/drivers/net/3c523.c
+++ b/drivers/net/3c523.c
@@ -983,7 +983,6 @@ static void elmc_rcv_int(struct net_device *dev)
983 skb_copy_to_linear_data(skb, (char *) p->base+(unsigned long) rbd->buffer,totlen); 983 skb_copy_to_linear_data(skb, (char *) p->base+(unsigned long) rbd->buffer,totlen);
984 skb->protocol = eth_type_trans(skb, dev); 984 skb->protocol = eth_type_trans(skb, dev);
985 netif_rx(skb); 985 netif_rx(skb);
986 dev->last_rx = jiffies;
987 dev->stats.rx_packets++; 986 dev->stats.rx_packets++;
988 dev->stats.rx_bytes += totlen; 987 dev->stats.rx_bytes += totlen;
989 } else { 988 } else {
diff --git a/drivers/net/3c527.c b/drivers/net/3c527.c
index 0f4cabb4cc2..2df3af3b9b2 100644
--- a/drivers/net/3c527.c
+++ b/drivers/net/3c527.c
@@ -1186,7 +1186,6 @@ static void mc32_rx_ring(struct net_device *dev)
1186 } 1186 }
1187 1187
1188 skb->protocol=eth_type_trans(skb,dev); 1188 skb->protocol=eth_type_trans(skb,dev);
1189 dev->last_rx = jiffies;
1190 dev->stats.rx_packets++; 1189 dev->stats.rx_packets++;
1191 dev->stats.rx_bytes += length; 1190 dev->stats.rx_bytes += length;
1192 netif_rx(skb); 1191 netif_rx(skb);
diff --git a/drivers/net/3c59x.c b/drivers/net/3c59x.c
index 38d58fd9c18..b4168dfd689 100644
--- a/drivers/net/3c59x.c
+++ b/drivers/net/3c59x.c
@@ -2446,7 +2446,6 @@ static int vortex_rx(struct net_device *dev)
2446 iowrite16(RxDiscard, ioaddr + EL3_CMD); /* Pop top Rx packet. */ 2446 iowrite16(RxDiscard, ioaddr + EL3_CMD); /* Pop top Rx packet. */
2447 skb->protocol = eth_type_trans(skb, dev); 2447 skb->protocol = eth_type_trans(skb, dev);
2448 netif_rx(skb); 2448 netif_rx(skb);
2449 dev->last_rx = jiffies;
2450 dev->stats.rx_packets++; 2449 dev->stats.rx_packets++;
2451 /* Wait a limited time to go to next packet. */ 2450 /* Wait a limited time to go to next packet. */
2452 for (i = 200; i >= 0; i--) 2451 for (i = 200; i >= 0; i--)
@@ -2529,7 +2528,6 @@ boomerang_rx(struct net_device *dev)
2529 } 2528 }
2530 } 2529 }
2531 netif_rx(skb); 2530 netif_rx(skb);
2532 dev->last_rx = jiffies;
2533 dev->stats.rx_packets++; 2531 dev->stats.rx_packets++;
2534 } 2532 }
2535 entry = (++vp->cur_rx) % RX_RING_SIZE; 2533 entry = (++vp->cur_rx) % RX_RING_SIZE;
diff --git a/drivers/net/7990.c b/drivers/net/7990.c
index ad6b8a5b657..7a331acc34a 100644
--- a/drivers/net/7990.c
+++ b/drivers/net/7990.c
@@ -336,7 +336,6 @@ static int lance_rx (struct net_device *dev)
336 len); 336 len);
337 skb->protocol = eth_type_trans (skb, dev); 337 skb->protocol = eth_type_trans (skb, dev);
338 netif_rx (skb); 338 netif_rx (skb);
339 dev->last_rx = jiffies;
340 dev->stats.rx_packets++; 339 dev->stats.rx_packets++;
341 dev->stats.rx_bytes += len; 340 dev->stats.rx_bytes += len;
342 } 341 }
diff --git a/drivers/net/8139cp.c b/drivers/net/8139cp.c
index 9e90d411e0a..664bd73645c 100644
--- a/drivers/net/8139cp.c
+++ b/drivers/net/8139cp.c
@@ -457,7 +457,6 @@ static inline void cp_rx_skb (struct cp_private *cp, struct sk_buff *skb,
457 457
458 cp->dev->stats.rx_packets++; 458 cp->dev->stats.rx_packets++;
459 cp->dev->stats.rx_bytes += skb->len; 459 cp->dev->stats.rx_bytes += skb->len;
460 cp->dev->last_rx = jiffies;
461 460
462#if CP_VLAN_TAG_USED 461#if CP_VLAN_TAG_USED
463 if (cp->vlgrp && (desc->opts2 & cpu_to_le32(RxVlanTagged))) { 462 if (cp->vlgrp && (desc->opts2 & cpu_to_le32(RxVlanTagged))) {
diff --git a/drivers/net/8139too.c b/drivers/net/8139too.c
index 96841e40bd4..37456ada44c 100644
--- a/drivers/net/8139too.c
+++ b/drivers/net/8139too.c
@@ -2025,7 +2025,6 @@ no_early_rx:
2025 2025
2026 skb->protocol = eth_type_trans (skb, dev); 2026 skb->protocol = eth_type_trans (skb, dev);
2027 2027
2028 dev->last_rx = jiffies;
2029 dev->stats.rx_bytes += pkt_size; 2028 dev->stats.rx_bytes += pkt_size;
2030 dev->stats.rx_packets++; 2029 dev->stats.rx_packets++;
2031 2030
diff --git a/drivers/net/82596.c b/drivers/net/82596.c
index 1d97bb5377a..717fe2f7c66 100644
--- a/drivers/net/82596.c
+++ b/drivers/net/82596.c
@@ -841,7 +841,6 @@ memory_squeeze:
841 pkt_len); 841 pkt_len);
842#endif 842#endif
843 netif_rx(skb); 843 netif_rx(skb);
844 dev->last_rx = jiffies;
845 dev->stats.rx_packets++; 844 dev->stats.rx_packets++;
846 dev->stats.rx_bytes+=pkt_len; 845 dev->stats.rx_bytes+=pkt_len;
847 } 846 }
diff --git a/drivers/net/a2065.c b/drivers/net/a2065.c
index 48965de794b..7a60bdd9a24 100644
--- a/drivers/net/a2065.c
+++ b/drivers/net/a2065.c
@@ -324,7 +324,6 @@ static int lance_rx (struct net_device *dev)
324 len); 324 len);
325 skb->protocol = eth_type_trans (skb, dev); 325 skb->protocol = eth_type_trans (skb, dev);
326 netif_rx (skb); 326 netif_rx (skb);
327 dev->last_rx = jiffies;
328 dev->stats.rx_packets++; 327 dev->stats.rx_packets++;
329 dev->stats.rx_bytes += len; 328 dev->stats.rx_bytes += len;
330 } 329 }
diff --git a/drivers/net/acenic.c b/drivers/net/acenic.c
index 6eefd93a08f..b9d35f6786b 100644
--- a/drivers/net/acenic.c
+++ b/drivers/net/acenic.c
@@ -2033,7 +2033,6 @@ static void ace_rx_int(struct net_device *dev, u32 rxretprd, u32 rxretcsm)
2033#endif 2033#endif
2034 netif_rx(skb); 2034 netif_rx(skb);
2035 2035
2036 dev->last_rx = jiffies;
2037 dev->stats.rx_packets++; 2036 dev->stats.rx_packets++;
2038 dev->stats.rx_bytes += retdesc->size; 2037 dev->stats.rx_bytes += retdesc->size;
2039 2038
diff --git a/drivers/net/amd8111e.c b/drivers/net/amd8111e.c
index 4a2ef838fed..0bc4f54d5db 100644
--- a/drivers/net/amd8111e.c
+++ b/drivers/net/amd8111e.c
@@ -809,7 +809,6 @@ static int amd8111e_rx_poll(struct napi_struct *napi, int budget)
809 lp->coal_conf.rx_packets++; 809 lp->coal_conf.rx_packets++;
810 lp->coal_conf.rx_bytes += pkt_len; 810 lp->coal_conf.rx_bytes += pkt_len;
811 num_rx_pkt++; 811 num_rx_pkt++;
812 dev->last_rx = jiffies;
813 812
814 err_next_pkt: 813 err_next_pkt:
815 lp->rx_ring[rx_index].buff_phy_addr 814 lp->rx_ring[rx_index].buff_phy_addr
diff --git a/drivers/net/appletalk/cops.c b/drivers/net/appletalk/cops.c
index 735fc947640..0c4e3c5ac49 100644
--- a/drivers/net/appletalk/cops.c
+++ b/drivers/net/appletalk/cops.c
@@ -851,7 +851,6 @@ static void cops_rx(struct net_device *dev)
851 851
852 /* Send packet to a higher place. */ 852 /* Send packet to a higher place. */
853 netif_rx(skb); 853 netif_rx(skb);
854 dev->last_rx = jiffies;
855} 854}
856 855
857static void cops_timeout(struct net_device *dev) 856static void cops_timeout(struct net_device *dev)
diff --git a/drivers/net/appletalk/ltpc.c b/drivers/net/appletalk/ltpc.c
index fef5560bc7a..8d109a5f557 100644
--- a/drivers/net/appletalk/ltpc.c
+++ b/drivers/net/appletalk/ltpc.c
@@ -783,7 +783,6 @@ static int sendup_buffer (struct net_device *dev)
783 783
784 /* toss it onwards */ 784 /* toss it onwards */
785 netif_rx(skb); 785 netif_rx(skb);
786 dev->last_rx = jiffies;
787 return 0; 786 return 0;
788} 787}
789 788
diff --git a/drivers/net/arcnet/arc-rawmode.c b/drivers/net/arcnet/arc-rawmode.c
index e0a18e7c73c..60088b3b61c 100644
--- a/drivers/net/arcnet/arc-rawmode.c
+++ b/drivers/net/arcnet/arc-rawmode.c
@@ -125,7 +125,6 @@ static void rx(struct net_device *dev, int bufnum,
125 skb->protocol = __constant_htons(ETH_P_ARCNET); 125 skb->protocol = __constant_htons(ETH_P_ARCNET);
126; 126;
127 netif_rx(skb); 127 netif_rx(skb);
128 dev->last_rx = jiffies;
129} 128}
130 129
131 130
diff --git a/drivers/net/arcnet/capmode.c b/drivers/net/arcnet/capmode.c
index 02cb8f1c114..67bc47aa690 100644
--- a/drivers/net/arcnet/capmode.c
+++ b/drivers/net/arcnet/capmode.c
@@ -151,7 +151,6 @@ static void rx(struct net_device *dev, int bufnum,
151 skb->protocol = __constant_htons(ETH_P_ARCNET); 151 skb->protocol = __constant_htons(ETH_P_ARCNET);
152; 152;
153 netif_rx(skb); 153 netif_rx(skb);
154 dev->last_rx = jiffies;
155} 154}
156 155
157 156
diff --git a/drivers/net/arcnet/rfc1051.c b/drivers/net/arcnet/rfc1051.c
index dab185bc51f..994be4970a5 100644
--- a/drivers/net/arcnet/rfc1051.c
+++ b/drivers/net/arcnet/rfc1051.c
@@ -159,7 +159,6 @@ static void rx(struct net_device *dev, int bufnum,
159 159
160 skb->protocol = type_trans(skb, dev); 160 skb->protocol = type_trans(skb, dev);
161 netif_rx(skb); 161 netif_rx(skb);
162 dev->last_rx = jiffies;
163} 162}
164 163
165 164
diff --git a/drivers/net/arcnet/rfc1201.c b/drivers/net/arcnet/rfc1201.c
index 6d6d95cc440..962641e9645 100644
--- a/drivers/net/arcnet/rfc1201.c
+++ b/drivers/net/arcnet/rfc1201.c
@@ -230,7 +230,6 @@ static void rx(struct net_device *dev, int bufnum,
230 230
231 skb->protocol = type_trans(skb, dev); 231 skb->protocol = type_trans(skb, dev);
232 netif_rx(skb); 232 netif_rx(skb);
233 dev->last_rx = jiffies;
234 } else { /* split packet */ 233 } else { /* split packet */
235 /* 234 /*
236 * NOTE: MSDOS ARP packet correction should only need to apply to 235 * NOTE: MSDOS ARP packet correction should only need to apply to
@@ -366,7 +365,6 @@ static void rx(struct net_device *dev, int bufnum,
366 365
367 skb->protocol = type_trans(skb, dev); 366 skb->protocol = type_trans(skb, dev);
368 netif_rx(skb); 367 netif_rx(skb);
369 dev->last_rx = jiffies;
370 } 368 }
371 } 369 }
372} 370}
diff --git a/drivers/net/ariadne.c b/drivers/net/ariadne.c
index 2903191f4b7..e1d72e06f3e 100644
--- a/drivers/net/ariadne.c
+++ b/drivers/net/ariadne.c
@@ -753,7 +753,6 @@ static int ariadne_rx(struct net_device *dev)
753#endif 753#endif
754 754
755 netif_rx(skb); 755 netif_rx(skb);
756 dev->last_rx = jiffies;
757 dev->stats.rx_packets++; 756 dev->stats.rx_packets++;
758 dev->stats.rx_bytes += pkt_len; 757 dev->stats.rx_bytes += pkt_len;
759 } 758 }
diff --git a/drivers/net/arm/am79c961a.c b/drivers/net/arm/am79c961a.c
index 64591555318..0c628a9e533 100644
--- a/drivers/net/arm/am79c961a.c
+++ b/drivers/net/arm/am79c961a.c
@@ -532,7 +532,6 @@ am79c961_rx(struct net_device *dev, struct dev_priv *priv)
532 am_writeword(dev, hdraddr + 2, RMD_OWN); 532 am_writeword(dev, hdraddr + 2, RMD_OWN);
533 skb->protocol = eth_type_trans(skb, dev); 533 skb->protocol = eth_type_trans(skb, dev);
534 netif_rx(skb); 534 netif_rx(skb);
535 dev->last_rx = jiffies;
536 priv->stats.rx_bytes += len; 535 priv->stats.rx_bytes += len;
537 priv->stats.rx_packets ++; 536 priv->stats.rx_packets ++;
538 } else { 537 } else {
diff --git a/drivers/net/arm/at91_ether.c b/drivers/net/arm/at91_ether.c
index e21dc2075ed..442938d5038 100644
--- a/drivers/net/arm/at91_ether.c
+++ b/drivers/net/arm/at91_ether.c
@@ -893,7 +893,6 @@ static void at91ether_rx(struct net_device *dev)
893 memcpy(skb_put(skb, pktlen), p_recv, pktlen); 893 memcpy(skb_put(skb, pktlen), p_recv, pktlen);
894 894
895 skb->protocol = eth_type_trans(skb, dev); 895 skb->protocol = eth_type_trans(skb, dev);
896 dev->last_rx = jiffies;
897 dev->stats.rx_bytes += pktlen; 896 dev->stats.rx_bytes += pktlen;
898 netif_rx(skb); 897 netif_rx(skb);
899 } 898 }
diff --git a/drivers/net/arm/ep93xx_eth.c b/drivers/net/arm/ep93xx_eth.c
index 1267444d79d..588c9739d13 100644
--- a/drivers/net/arm/ep93xx_eth.c
+++ b/drivers/net/arm/ep93xx_eth.c
@@ -259,8 +259,6 @@ static int ep93xx_rx(struct net_device *dev, int processed, int budget)
259 skb_put(skb, length); 259 skb_put(skb, length);
260 skb->protocol = eth_type_trans(skb, dev); 260 skb->protocol = eth_type_trans(skb, dev);
261 261
262 dev->last_rx = jiffies;
263
264 netif_receive_skb(skb); 262 netif_receive_skb(skb);
265 263
266 ep->stats.rx_packets++; 264 ep->stats.rx_packets++;
diff --git a/drivers/net/arm/ixp4xx_eth.c b/drivers/net/arm/ixp4xx_eth.c
index e2d702b8b2e..14ffa2a6189 100644
--- a/drivers/net/arm/ixp4xx_eth.c
+++ b/drivers/net/arm/ixp4xx_eth.c
@@ -588,7 +588,6 @@ static int eth_poll(struct napi_struct *napi, int budget)
588 debug_pkt(dev, "eth_poll", skb->data, skb->len); 588 debug_pkt(dev, "eth_poll", skb->data, skb->len);
589 589
590 skb->protocol = eth_type_trans(skb, dev); 590 skb->protocol = eth_type_trans(skb, dev);
591 dev->last_rx = jiffies;
592 port->stat.rx_packets++; 591 port->stat.rx_packets++;
593 port->stat.rx_bytes += skb->len; 592 port->stat.rx_bytes += skb->len;
594 netif_receive_skb(skb); 593 netif_receive_skb(skb);
diff --git a/drivers/net/at1700.c b/drivers/net/at1700.c
index 18f72458184..2d4b5c31652 100644
--- a/drivers/net/at1700.c
+++ b/drivers/net/at1700.c
@@ -767,7 +767,6 @@ net_rx(struct net_device *dev)
767 insw(ioaddr + DATAPORT, skb_put(skb,pkt_len), (pkt_len + 1) >> 1); 767 insw(ioaddr + DATAPORT, skb_put(skb,pkt_len), (pkt_len + 1) >> 1);
768 skb->protocol=eth_type_trans(skb, dev); 768 skb->protocol=eth_type_trans(skb, dev);
769 netif_rx(skb); 769 netif_rx(skb);
770 dev->last_rx = jiffies;
771 dev->stats.rx_packets++; 770 dev->stats.rx_packets++;
772 dev->stats.rx_bytes += pkt_len; 771 dev->stats.rx_bytes += pkt_len;
773 } 772 }
diff --git a/drivers/net/atarilance.c b/drivers/net/atarilance.c
index 5a94c49b4c4..701214b3b26 100644
--- a/drivers/net/atarilance.c
+++ b/drivers/net/atarilance.c
@@ -1030,7 +1030,6 @@ static int lance_rx( struct net_device *dev )
1030 lp->memcpy_f( skb->data, PKTBUF_ADDR(head), pkt_len ); 1030 lp->memcpy_f( skb->data, PKTBUF_ADDR(head), pkt_len );
1031 skb->protocol = eth_type_trans( skb, dev ); 1031 skb->protocol = eth_type_trans( skb, dev );
1032 netif_rx( skb ); 1032 netif_rx( skb );
1033 dev->last_rx = jiffies;
1034 dev->stats.rx_packets++; 1033 dev->stats.rx_packets++;
1035 dev->stats.rx_bytes += pkt_len; 1034 dev->stats.rx_bytes += pkt_len;
1036 } 1035 }
diff --git a/drivers/net/atl1e/atl1e_main.c b/drivers/net/atl1e/atl1e_main.c
index 9b603528143..0f8c7525620 100644
--- a/drivers/net/atl1e/atl1e_main.c
+++ b/drivers/net/atl1e/atl1e_main.c
@@ -1460,7 +1460,6 @@ static void atl1e_clean_rx_irq(struct atl1e_adapter *adapter, u8 que,
1460 netif_receive_skb(skb); 1460 netif_receive_skb(skb);
1461 } 1461 }
1462 1462
1463 netdev->last_rx = jiffies;
1464skip_pkt: 1463skip_pkt:
1465 /* skip current packet whether it's ok or not. */ 1464 /* skip current packet whether it's ok or not. */
1466 rx_page->read_offset += 1465 rx_page->read_offset +=
diff --git a/drivers/net/atlx/atl1.c b/drivers/net/atlx/atl1.c
index 3836e625ba5..09ed2fdd585 100644
--- a/drivers/net/atlx/atl1.c
+++ b/drivers/net/atlx/atl1.c
@@ -2028,8 +2028,6 @@ rrd_ok:
2028 buffer_info->skb = NULL; 2028 buffer_info->skb = NULL;
2029 buffer_info->alloced = 0; 2029 buffer_info->alloced = 0;
2030 rrd->xsz.valid = 0; 2030 rrd->xsz.valid = 0;
2031
2032 adapter->netdev->last_rx = jiffies;
2033 } 2031 }
2034 2032
2035 atomic_set(&rrd_ring->next_to_clean, rrd_next_to_clean); 2033 atomic_set(&rrd_ring->next_to_clean, rrd_next_to_clean);
diff --git a/drivers/net/atlx/atl2.c b/drivers/net/atlx/atl2.c
index 21ca6dd78b1..60c9e5375ee 100644
--- a/drivers/net/atlx/atl2.c
+++ b/drivers/net/atlx/atl2.c
@@ -437,7 +437,6 @@ static void atl2_intr_rx(struct atl2_adapter *adapter)
437 netif_rx(skb); 437 netif_rx(skb);
438 netdev->stats.rx_bytes += rx_size; 438 netdev->stats.rx_bytes += rx_size;
439 netdev->stats.rx_packets++; 439 netdev->stats.rx_packets++;
440 netdev->last_rx = jiffies;
441 } else { 440 } else {
442 netdev->stats.rx_errors++; 441 netdev->stats.rx_errors++;
443 442
diff --git a/drivers/net/au1000_eth.c b/drivers/net/au1000_eth.c
index 019b13c08ae..2b69b2bbd14 100644
--- a/drivers/net/au1000_eth.c
+++ b/drivers/net/au1000_eth.c
@@ -1240,7 +1240,6 @@ static int au1000_rx(struct net_device *dev)
1240 /* next descriptor */ 1240 /* next descriptor */
1241 prxd = aup->rx_dma_ring[aup->rx_head]; 1241 prxd = aup->rx_dma_ring[aup->rx_head];
1242 buff_stat = prxd->buff_stat; 1242 buff_stat = prxd->buff_stat;
1243 dev->last_rx = jiffies;
1244 } 1243 }
1245 return 0; 1244 return 0;
1246} 1245}
diff --git a/drivers/net/b44.c b/drivers/net/b44.c
index 1978d25920d..2c7a32eb92a 100644
--- a/drivers/net/b44.c
+++ b/drivers/net/b44.c
@@ -829,7 +829,6 @@ static int b44_rx(struct b44 *bp, int budget)
829 skb->ip_summed = CHECKSUM_NONE; 829 skb->ip_summed = CHECKSUM_NONE;
830 skb->protocol = eth_type_trans(skb, bp->dev); 830 skb->protocol = eth_type_trans(skb, bp->dev);
831 netif_receive_skb(skb); 831 netif_receive_skb(skb);
832 bp->dev->last_rx = jiffies;
833 received++; 832 received++;
834 budget--; 833 budget--;
835 next_pkt: 834 next_pkt:
diff --git a/drivers/net/bfin_mac.c b/drivers/net/bfin_mac.c
index b458d607a9c..78e31aa861e 100644
--- a/drivers/net/bfin_mac.c
+++ b/drivers/net/bfin_mac.c
@@ -741,7 +741,6 @@ static void bfin_mac_rx(struct net_device *dev)
741 blackfin_dcache_invalidate_range((unsigned long)skb->head, 741 blackfin_dcache_invalidate_range((unsigned long)skb->head,
742 (unsigned long)skb->tail); 742 (unsigned long)skb->tail);
743 743
744 dev->last_rx = jiffies;
745 skb->protocol = eth_type_trans(skb, dev); 744 skb->protocol = eth_type_trans(skb, dev);
746#if defined(BFIN_MAC_CSUM_OFFLOAD) 745#if defined(BFIN_MAC_CSUM_OFFLOAD)
747 skb->csum = current_rx_ptr->status.ip_payload_csum; 746 skb->csum = current_rx_ptr->status.ip_payload_csum;
diff --git a/drivers/net/bmac.c b/drivers/net/bmac.c
index b141d0234e2..8a546a33d58 100644
--- a/drivers/net/bmac.c
+++ b/drivers/net/bmac.c
@@ -716,13 +716,11 @@ static irqreturn_t bmac_rxdma_intr(int irq, void *dev_id)
716 skb_put(skb, nb); 716 skb_put(skb, nb);
717 skb->protocol = eth_type_trans(skb, dev); 717 skb->protocol = eth_type_trans(skb, dev);
718 netif_rx(skb); 718 netif_rx(skb);
719 dev->last_rx = jiffies;
720 ++dev->stats.rx_packets; 719 ++dev->stats.rx_packets;
721 dev->stats.rx_bytes += nb; 720 dev->stats.rx_bytes += nb;
722 } else { 721 } else {
723 ++dev->stats.rx_dropped; 722 ++dev->stats.rx_dropped;
724 } 723 }
725 dev->last_rx = jiffies;
726 if ((skb = bp->rx_bufs[i]) == NULL) { 724 if ((skb = bp->rx_bufs[i]) == NULL) {
727 bp->rx_bufs[i] = skb = dev_alloc_skb(RX_BUFLEN+2); 725 bp->rx_bufs[i] = skb = dev_alloc_skb(RX_BUFLEN+2);
728 if (skb != NULL) 726 if (skb != NULL)
diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c
index f2e8c3b3ee0..51b163a75ae 100644
--- a/drivers/net/bnx2.c
+++ b/drivers/net/bnx2.c
@@ -3000,7 +3000,6 @@ bnx2_rx_int(struct bnx2 *bp, struct bnx2_napi *bnapi, int budget)
3000#endif 3000#endif
3001 netif_receive_skb(skb); 3001 netif_receive_skb(skb);
3002 3002
3003 bp->dev->last_rx = jiffies;
3004 rx_pkt++; 3003 rx_pkt++;
3005 3004
3006next_rx: 3005next_rx:
diff --git a/drivers/net/bnx2x_main.c b/drivers/net/bnx2x_main.c
index 42965ad54f0..68d0ed3a50d 100644
--- a/drivers/net/bnx2x_main.c
+++ b/drivers/net/bnx2x_main.c
@@ -1328,7 +1328,6 @@ static void bnx2x_tpa_stop(struct bnx2x *bp, struct bnx2x_fastpath *fp,
1328 dev_kfree_skb(skb); 1328 dev_kfree_skb(skb);
1329 } 1329 }
1330 1330
1331 bp->dev->last_rx = jiffies;
1332 1331
1333 /* put new skb in bin */ 1332 /* put new skb in bin */
1334 fp->tpa_pool[queue].skb = new_skb; 1333 fp->tpa_pool[queue].skb = new_skb;
@@ -1557,7 +1556,6 @@ reuse_rx:
1557#endif 1556#endif
1558 netif_receive_skb(skb); 1557 netif_receive_skb(skb);
1559 1558
1560 bp->dev->last_rx = jiffies;
1561 1559
1562next_rx: 1560next_rx:
1563 rx_buf->skb = NULL; 1561 rx_buf->skb = NULL;
@@ -8767,7 +8765,6 @@ static int bnx2x_run_loopback(struct bnx2x *bp, int loopback_mode, u8 link_up)
8767 rc = 0; 8765 rc = 0;
8768 8766
8769test_loopback_rx_exit: 8767test_loopback_rx_exit:
8770 bp->dev->last_rx = jiffies;
8771 8768
8772 fp->rx_bd_cons = NEXT_RX_IDX(fp->rx_bd_cons); 8769 fp->rx_bd_cons = NEXT_RX_IDX(fp->rx_bd_cons);
8773 fp->rx_bd_prod = NEXT_RX_IDX(fp->rx_bd_prod); 8770 fp->rx_bd_prod = NEXT_RX_IDX(fp->rx_bd_prod);
diff --git a/drivers/net/cassini.c b/drivers/net/cassini.c
index a06931d76f9..bc84c4ca898 100644
--- a/drivers/net/cassini.c
+++ b/drivers/net/cassini.c
@@ -2405,7 +2405,6 @@ static int cas_rx_ringN(struct cas *cp, int ring, int budget)
2405 cp->net_stats[ring].rx_packets++; 2405 cp->net_stats[ring].rx_packets++;
2406 cp->net_stats[ring].rx_bytes += len; 2406 cp->net_stats[ring].rx_bytes += len;
2407 spin_unlock(&cp->stat_lock[ring]); 2407 spin_unlock(&cp->stat_lock[ring]);
2408 cp->dev->last_rx = jiffies;
2409 2408
2410 next: 2409 next:
2411 npackets++; 2410 npackets++;
diff --git a/drivers/net/chelsio/sge.c b/drivers/net/chelsio/sge.c
index d6c7d2aa761..fa0a1f129d3 100644
--- a/drivers/net/chelsio/sge.c
+++ b/drivers/net/chelsio/sge.c
@@ -1385,7 +1385,6 @@ static void sge_rx(struct sge *sge, struct freelQ *fl, unsigned int len)
1385 st = per_cpu_ptr(sge->port_stats[p->iff], smp_processor_id()); 1385 st = per_cpu_ptr(sge->port_stats[p->iff], smp_processor_id());
1386 1386
1387 skb->protocol = eth_type_trans(skb, adapter->port[p->iff].dev); 1387 skb->protocol = eth_type_trans(skb, adapter->port[p->iff].dev);
1388 skb->dev->last_rx = jiffies;
1389 if ((adapter->flags & RX_CSUM_ENABLED) && p->csum == 0xffff && 1388 if ((adapter->flags & RX_CSUM_ENABLED) && p->csum == 0xffff &&
1390 skb->protocol == htons(ETH_P_IP) && 1389 skb->protocol == htons(ETH_P_IP) &&
1391 (skb->data[9] == IPPROTO_TCP || skb->data[9] == IPPROTO_UDP)) { 1390 (skb->data[9] == IPPROTO_TCP || skb->data[9] == IPPROTO_UDP)) {
diff --git a/drivers/net/cs89x0.c b/drivers/net/cs89x0.c
index 65174d3b902..b063395c4a9 100644
--- a/drivers/net/cs89x0.c
+++ b/drivers/net/cs89x0.c
@@ -1024,7 +1024,6 @@ skip_this_frame:
1024 } 1024 }
1025 skb->protocol=eth_type_trans(skb,dev); 1025 skb->protocol=eth_type_trans(skb,dev);
1026 netif_rx(skb); 1026 netif_rx(skb);
1027 dev->last_rx = jiffies;
1028 lp->stats.rx_packets++; 1027 lp->stats.rx_packets++;
1029 lp->stats.rx_bytes += length; 1028 lp->stats.rx_bytes += length;
1030} 1029}
@@ -1718,7 +1717,6 @@ net_rx(struct net_device *dev)
1718 1717
1719 skb->protocol=eth_type_trans(skb,dev); 1718 skb->protocol=eth_type_trans(skb,dev);
1720 netif_rx(skb); 1719 netif_rx(skb);
1721 dev->last_rx = jiffies;
1722 lp->stats.rx_packets++; 1720 lp->stats.rx_packets++;
1723 lp->stats.rx_bytes += length; 1721 lp->stats.rx_bytes += length;
1724} 1722}
diff --git a/drivers/net/cxgb3/sge.c b/drivers/net/cxgb3/sge.c
index c6480be0bc1..268f15801ec 100644
--- a/drivers/net/cxgb3/sge.c
+++ b/drivers/net/cxgb3/sge.c
@@ -1876,7 +1876,6 @@ static void rx_eth(struct adapter *adap, struct sge_rspq *rq,
1876 1876
1877 skb_pull(skb, sizeof(*p) + pad); 1877 skb_pull(skb, sizeof(*p) + pad);
1878 skb->protocol = eth_type_trans(skb, adap->port[p->iff]); 1878 skb->protocol = eth_type_trans(skb, adap->port[p->iff]);
1879 skb->dev->last_rx = jiffies;
1880 pi = netdev_priv(skb->dev); 1879 pi = netdev_priv(skb->dev);
1881 if (pi->rx_csum_offload && p->csum_valid && p->csum == htons(0xffff) && 1880 if (pi->rx_csum_offload && p->csum_valid && p->csum == htons(0xffff) &&
1882 !p->fragment) { 1881 !p->fragment) {
diff --git a/drivers/net/de600.c b/drivers/net/de600.c
index 2826c7473e5..970f820ba81 100644
--- a/drivers/net/de600.c
+++ b/drivers/net/de600.c
@@ -369,7 +369,6 @@ static void de600_rx_intr(struct net_device *dev)
369 netif_rx(skb); 369 netif_rx(skb);
370 370
371 /* update stats */ 371 /* update stats */
372 dev->last_rx = jiffies;
373 dev->stats.rx_packets++; /* count all receives */ 372 dev->stats.rx_packets++; /* count all receives */
374 dev->stats.rx_bytes += size; /* count all received bytes */ 373 dev->stats.rx_bytes += size; /* count all received bytes */
375 374
diff --git a/drivers/net/de620.c b/drivers/net/de620.c
index 643b1ea0841..0d4b6acc11a 100644
--- a/drivers/net/de620.c
+++ b/drivers/net/de620.c
@@ -686,7 +686,6 @@ static int de620_rx_intr(struct net_device *dev)
686 PRINTK(("Read %d bytes\n", size)); 686 PRINTK(("Read %d bytes\n", size));
687 skb->protocol=eth_type_trans(skb,dev); 687 skb->protocol=eth_type_trans(skb,dev);
688 netif_rx(skb); /* deliver it "upstairs" */ 688 netif_rx(skb); /* deliver it "upstairs" */
689 dev->last_rx = jiffies;
690 /* count all receives */ 689 /* count all receives */
691 dev->stats.rx_packets++; 690 dev->stats.rx_packets++;
692 dev->stats.rx_bytes += size; 691 dev->stats.rx_bytes += size;
diff --git a/drivers/net/declance.c b/drivers/net/declance.c
index df01ad3e798..f6988d7fb61 100644
--- a/drivers/net/declance.c
+++ b/drivers/net/declance.c
@@ -622,7 +622,6 @@ static int lance_rx(struct net_device *dev)
622 622
623 skb->protocol = eth_type_trans(skb, dev); 623 skb->protocol = eth_type_trans(skb, dev);
624 netif_rx(skb); 624 netif_rx(skb);
625 dev->last_rx = jiffies;
626 dev->stats.rx_packets++; 625 dev->stats.rx_packets++;
627 } 626 }
628 627
diff --git a/drivers/net/defxx.c b/drivers/net/defxx.c
index c062aacf229..f0788743524 100644
--- a/drivers/net/defxx.c
+++ b/drivers/net/defxx.c
@@ -3103,7 +3103,6 @@ static void dfx_rcv_queue_process(
3103 netif_rx(skb); 3103 netif_rx(skb);
3104 3104
3105 /* Update the rcv counters */ 3105 /* Update the rcv counters */
3106 bp->dev->last_rx = jiffies;
3107 bp->rcv_total_frames++; 3106 bp->rcv_total_frames++;
3108 if (*(p_buff + RCV_BUFF_K_DA) & 0x01) 3107 if (*(p_buff + RCV_BUFF_K_DA) & 0x01)
3109 bp->rcv_multicast_frames++; 3108 bp->rcv_multicast_frames++;
diff --git a/drivers/net/depca.c b/drivers/net/depca.c
index bf6401f8d14..fda1226d8ec 100644
--- a/drivers/net/depca.c
+++ b/drivers/net/depca.c
@@ -1056,7 +1056,6 @@ static int depca_rx(struct net_device *dev)
1056 /* 1056 /*
1057 ** Update stats 1057 ** Update stats
1058 */ 1058 */
1059 dev->last_rx = jiffies;
1060 dev->stats.rx_packets++; 1059 dev->stats.rx_packets++;
1061 dev->stats.rx_bytes += pkt_len; 1060 dev->stats.rx_bytes += pkt_len;
1062 for (i = 1; i < DEPCA_PKT_STAT_SZ - 1; i++) { 1061 for (i = 1; i < DEPCA_PKT_STAT_SZ - 1; i++) {
diff --git a/drivers/net/dl2k.c b/drivers/net/dl2k.c
index f9e405a8a84..9ec9785a9fc 100644
--- a/drivers/net/dl2k.c
+++ b/drivers/net/dl2k.c
@@ -891,7 +891,6 @@ receive_packet (struct net_device *dev)
891 } 891 }
892#endif 892#endif
893 netif_rx (skb); 893 netif_rx (skb);
894 dev->last_rx = jiffies;
895 } 894 }
896 entry = (entry + 1) % RX_RING_SIZE; 895 entry = (entry + 1) % RX_RING_SIZE;
897 } 896 }
diff --git a/drivers/net/e100.c b/drivers/net/e100.c
index 084127fe081..62cdefa2a4f 100644
--- a/drivers/net/e100.c
+++ b/drivers/net/e100.c
@@ -1880,7 +1880,6 @@ static int e100_rx_indicate(struct nic *nic, struct rx *rx,
1880 } else { 1880 } else {
1881 dev->stats.rx_packets++; 1881 dev->stats.rx_packets++;
1882 dev->stats.rx_bytes += actual_size; 1882 dev->stats.rx_bytes += actual_size;
1883 nic->netdev->last_rx = jiffies;
1884 netif_receive_skb(skb); 1883 netif_receive_skb(skb);
1885 if(work_done) 1884 if(work_done)
1886 (*work_done)++; 1885 (*work_done)++;
diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c
index 07b38fbe4e0..78a4250e004 100644
--- a/drivers/net/e1000/e1000_main.c
+++ b/drivers/net/e1000/e1000_main.c
@@ -4099,8 +4099,6 @@ static bool e1000_clean_rx_irq(struct e1000_adapter *adapter,
4099 netif_receive_skb(skb); 4099 netif_receive_skb(skb);
4100 } 4100 }
4101 4101
4102 netdev->last_rx = jiffies;
4103
4104next_desc: 4102next_desc:
4105 rx_desc->status = 0; 4103 rx_desc->status = 0;
4106 4104
diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c
index a5c9266cd7c..63e5688011e 100644
--- a/drivers/net/e1000e/netdev.c
+++ b/drivers/net/e1000e/netdev.c
@@ -103,8 +103,6 @@ static void e1000_receive_skb(struct e1000_adapter *adapter,
103 le16_to_cpu(vlan)); 103 le16_to_cpu(vlan));
104 else 104 else
105 netif_receive_skb(skb); 105 netif_receive_skb(skb);
106
107 netdev->last_rx = jiffies;
108} 106}
109 107
110/** 108/**
diff --git a/drivers/net/eepro.c b/drivers/net/eepro.c
index 5f72362b782..93387f16c2e 100644
--- a/drivers/net/eepro.c
+++ b/drivers/net/eepro.c
@@ -1580,7 +1580,6 @@ eepro_rx(struct net_device *dev)
1580 1580
1581 skb->protocol = eth_type_trans(skb,dev); 1581 skb->protocol = eth_type_trans(skb,dev);
1582 netif_rx(skb); 1582 netif_rx(skb);
1583 dev->last_rx = jiffies;
1584 dev->stats.rx_packets++; 1583 dev->stats.rx_packets++;
1585 } 1584 }
1586 1585
diff --git a/drivers/net/eexpress.c b/drivers/net/eexpress.c
index b751c1b96cf..a125e41240f 100644
--- a/drivers/net/eexpress.c
+++ b/drivers/net/eexpress.c
@@ -967,7 +967,6 @@ static void eexp_hw_rx_pio(struct net_device *dev)
967 insw(ioaddr+DATAPORT, skb_put(skb,pkt_len),(pkt_len+1)>>1); 967 insw(ioaddr+DATAPORT, skb_put(skb,pkt_len),(pkt_len+1)>>1);
968 skb->protocol = eth_type_trans(skb,dev); 968 skb->protocol = eth_type_trans(skb,dev);
969 netif_rx(skb); 969 netif_rx(skb);
970 dev->last_rx = jiffies;
971 dev->stats.rx_packets++; 970 dev->stats.rx_packets++;
972 dev->stats.rx_bytes += pkt_len; 971 dev->stats.rx_bytes += pkt_len;
973 } 972 }
diff --git a/drivers/net/ehea/ehea_main.c b/drivers/net/ehea/ehea_main.c
index 422fcb93e2c..44c9ae18383 100644
--- a/drivers/net/ehea/ehea_main.c
+++ b/drivers/net/ehea/ehea_main.c
@@ -728,7 +728,6 @@ static int ehea_proc_rwqes(struct net_device *dev,
728 } 728 }
729 729
730 ehea_proc_skb(pr, cqe, skb); 730 ehea_proc_skb(pr, cqe, skb);
731 dev->last_rx = jiffies;
732 } else { 731 } else {
733 pr->p_stats.poll_receive_errors++; 732 pr->p_stats.poll_receive_errors++;
734 port_reset = ehea_treat_poll_error(pr, rq, cqe, 733 port_reset = ehea_treat_poll_error(pr, rq, cqe,
diff --git a/drivers/net/enc28j60.c b/drivers/net/enc28j60.c
index a5c7bd4532d..d186a52cdb6 100644
--- a/drivers/net/enc28j60.c
+++ b/drivers/net/enc28j60.c
@@ -944,7 +944,6 @@ static void enc28j60_hw_rx(struct net_device *ndev)
944 /* update statistics */ 944 /* update statistics */
945 ndev->stats.rx_packets++; 945 ndev->stats.rx_packets++;
946 ndev->stats.rx_bytes += len; 946 ndev->stats.rx_bytes += len;
947 ndev->last_rx = jiffies;
948 netif_rx(skb); 947 netif_rx(skb);
949 } 948 }
950 } 949 }
diff --git a/drivers/net/enic/enic_main.c b/drivers/net/enic/enic_main.c
index 180e968dc54..8594d7f8fe6 100644
--- a/drivers/net/enic/enic_main.c
+++ b/drivers/net/enic/enic_main.c
@@ -951,7 +951,6 @@ static void enic_rq_indicate_buf(struct vnic_rq *rq,
951 } 951 }
952 952
953 skb->dev = enic->netdev; 953 skb->dev = enic->netdev;
954 enic->netdev->last_rx = jiffies;
955 954
956 if (enic->vlan_group && vlan_stripped) { 955 if (enic->vlan_group && vlan_stripped) {
957 956
diff --git a/drivers/net/epic100.c b/drivers/net/epic100.c
index 65a404076ab..6f399bdc5f7 100644
--- a/drivers/net/epic100.c
+++ b/drivers/net/epic100.c
@@ -1222,7 +1222,6 @@ static int epic_rx(struct net_device *dev, int budget)
1222 } 1222 }
1223 skb->protocol = eth_type_trans(skb, dev); 1223 skb->protocol = eth_type_trans(skb, dev);
1224 netif_receive_skb(skb); 1224 netif_receive_skb(skb);
1225 dev->last_rx = jiffies;
1226 ep->stats.rx_packets++; 1225 ep->stats.rx_packets++;
1227 ep->stats.rx_bytes += pkt_len; 1226 ep->stats.rx_bytes += pkt_len;
1228 } 1227 }
diff --git a/drivers/net/eth16i.c b/drivers/net/eth16i.c
index bee8b3fbc56..88b1be05d42 100644
--- a/drivers/net/eth16i.c
+++ b/drivers/net/eth16i.c
@@ -1205,7 +1205,6 @@ static void eth16i_rx(struct net_device *dev)
1205 printk(KERN_DEBUG ".\n"); 1205 printk(KERN_DEBUG ".\n");
1206 } 1206 }
1207 netif_rx(skb); 1207 netif_rx(skb);
1208 dev->last_rx = jiffies;
1209 dev->stats.rx_packets++; 1208 dev->stats.rx_packets++;
1210 dev->stats.rx_bytes += pkt_len; 1209 dev->stats.rx_bytes += pkt_len;
1211 1210
diff --git a/drivers/net/ewrk3.c b/drivers/net/ewrk3.c
index 3ab2156905f..f3b664aafb8 100644
--- a/drivers/net/ewrk3.c
+++ b/drivers/net/ewrk3.c
@@ -1026,7 +1026,6 @@ static int ewrk3_rx(struct net_device *dev)
1026 /* 1026 /*
1027 ** Update stats 1027 ** Update stats
1028 */ 1028 */
1029 dev->last_rx = jiffies;
1030 dev->stats.rx_packets++; 1029 dev->stats.rx_packets++;
1031 dev->stats.rx_bytes += pkt_len; 1030 dev->stats.rx_bytes += pkt_len;
1032 } else { 1031 } else {
diff --git a/drivers/net/fealnx.c b/drivers/net/fealnx.c
index 61c7cbba88b..31ab1ff623f 100644
--- a/drivers/net/fealnx.c
+++ b/drivers/net/fealnx.c
@@ -1726,7 +1726,6 @@ static int netdev_rx(struct net_device *dev)
1726 } 1726 }
1727 skb->protocol = eth_type_trans(skb, dev); 1727 skb->protocol = eth_type_trans(skb, dev);
1728 netif_rx(skb); 1728 netif_rx(skb);
1729 dev->last_rx = jiffies;
1730 np->stats.rx_packets++; 1729 np->stats.rx_packets++;
1731 np->stats.rx_bytes += pkt_len; 1730 np->stats.rx_bytes += pkt_len;
1732 } 1731 }
diff --git a/drivers/net/fec_mpc52xx.c b/drivers/net/fec_mpc52xx.c
index aec3b97e794..94054b4981f 100644
--- a/drivers/net/fec_mpc52xx.c
+++ b/drivers/net/fec_mpc52xx.c
@@ -487,7 +487,6 @@ static irqreturn_t mpc52xx_fec_rx_interrupt(int irq, void *dev_id)
487 rskb->protocol = eth_type_trans(rskb, dev); 487 rskb->protocol = eth_type_trans(rskb, dev);
488 488
489 netif_rx(rskb); 489 netif_rx(rskb);
490 dev->last_rx = jiffies;
491 } else { 490 } else {
492 /* Can't get a new one : reuse the same & drop pkt */ 491 /* Can't get a new one : reuse the same & drop pkt */
493 dev_notice(&dev->dev, "Memory squeeze, dropping packet.\n"); 492 dev_notice(&dev->dev, "Memory squeeze, dropping packet.\n");
diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c
index 0b12e48d5f3..765210ea097 100644
--- a/drivers/net/forcedeth.c
+++ b/drivers/net/forcedeth.c
@@ -2735,7 +2735,6 @@ static int nv_rx_process(struct net_device *dev, int limit)
2735#else 2735#else
2736 netif_rx(skb); 2736 netif_rx(skb);
2737#endif 2737#endif
2738 dev->last_rx = jiffies;
2739 dev->stats.rx_packets++; 2738 dev->stats.rx_packets++;
2740 dev->stats.rx_bytes += len; 2739 dev->stats.rx_bytes += len;
2741next_pkt: 2740next_pkt:
@@ -2848,7 +2847,6 @@ static int nv_rx_process_optimized(struct net_device *dev, int limit)
2848 } 2847 }
2849 } 2848 }
2850 2849
2851 dev->last_rx = jiffies;
2852 dev->stats.rx_packets++; 2850 dev->stats.rx_packets++;
2853 dev->stats.rx_bytes += len; 2851 dev->stats.rx_bytes += len;
2854 } else { 2852 } else {
diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c
index 013525f3c3b..a091db39361 100644
--- a/drivers/net/gianfar.c
+++ b/drivers/net/gianfar.c
@@ -1693,8 +1693,6 @@ int gfar_clean_rx_ring(struct net_device *dev, int rx_work_limit)
1693 dev->stats.rx_bytes += pkt_len; 1693 dev->stats.rx_bytes += pkt_len;
1694 } 1694 }
1695 1695
1696 dev->last_rx = jiffies;
1697
1698 priv->rx_skbuff[priv->skb_currx] = newskb; 1696 priv->rx_skbuff[priv->skb_currx] = newskb;
1699 1697
1700 /* Setup the new bdp */ 1698 /* Setup the new bdp */
diff --git a/drivers/net/hamachi.c b/drivers/net/hamachi.c
index 1dc0fd061bf..77f2b2934e6 100644
--- a/drivers/net/hamachi.c
+++ b/drivers/net/hamachi.c
@@ -1645,7 +1645,6 @@ static int hamachi_rx(struct net_device *dev)
1645#endif /* RX_CHECKSUM */ 1645#endif /* RX_CHECKSUM */
1646 1646
1647 netif_rx(skb); 1647 netif_rx(skb);
1648 dev->last_rx = jiffies;
1649 hmp->stats.rx_packets++; 1648 hmp->stats.rx_packets++;
1650 } 1649 }
1651 entry = (++hmp->cur_rx) % RX_RING_SIZE; 1650 entry = (++hmp->cur_rx) % RX_RING_SIZE;
diff --git a/drivers/net/hamradio/6pack.c b/drivers/net/hamradio/6pack.c
index 0f501d2ca93..50f1e172ee8 100644
--- a/drivers/net/hamradio/6pack.c
+++ b/drivers/net/hamradio/6pack.c
@@ -373,7 +373,6 @@ static void sp_bump(struct sixpack *sp, char cmd)
373 memcpy(ptr, sp->cooked_buf + 1, count); 373 memcpy(ptr, sp->cooked_buf + 1, count);
374 skb->protocol = ax25_type_trans(skb, sp->dev); 374 skb->protocol = ax25_type_trans(skb, sp->dev);
375 netif_rx(skb); 375 netif_rx(skb);
376 sp->dev->last_rx = jiffies;
377 sp->dev->stats.rx_packets++; 376 sp->dev->stats.rx_packets++;
378 377
379 return; 378 return;
diff --git a/drivers/net/hamradio/baycom_epp.c b/drivers/net/hamradio/baycom_epp.c
index 00bc7fbb6b3..81a65e3a1c0 100644
--- a/drivers/net/hamradio/baycom_epp.c
+++ b/drivers/net/hamradio/baycom_epp.c
@@ -555,7 +555,6 @@ static void do_rxpacket(struct net_device *dev)
555 memcpy(cp, bc->hdlcrx.buf, pktlen - 1); 555 memcpy(cp, bc->hdlcrx.buf, pktlen - 1);
556 skb->protocol = ax25_type_trans(skb, dev); 556 skb->protocol = ax25_type_trans(skb, dev);
557 netif_rx(skb); 557 netif_rx(skb);
558 dev->last_rx = jiffies;
559 bc->stats.rx_packets++; 558 bc->stats.rx_packets++;
560} 559}
561 560
diff --git a/drivers/net/hamradio/bpqether.c b/drivers/net/hamradio/bpqether.c
index 74529c832ad..46f8f3390e7 100644
--- a/drivers/net/hamradio/bpqether.c
+++ b/drivers/net/hamradio/bpqether.c
@@ -230,7 +230,6 @@ static int bpq_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_ty
230 230
231 skb->protocol = ax25_type_trans(skb, dev); 231 skb->protocol = ax25_type_trans(skb, dev);
232 netif_rx(skb); 232 netif_rx(skb);
233 dev->last_rx = jiffies;
234unlock: 233unlock:
235 234
236 rcu_read_unlock(); 235 rcu_read_unlock();
diff --git a/drivers/net/hamradio/dmascc.c b/drivers/net/hamradio/dmascc.c
index e8cfadefa4b..7e461144223 100644
--- a/drivers/net/hamradio/dmascc.c
+++ b/drivers/net/hamradio/dmascc.c
@@ -1283,7 +1283,6 @@ static void rx_bh(struct work_struct *ugli_api)
1283 memcpy(&data[1], priv->rx_buf[i], cb); 1283 memcpy(&data[1], priv->rx_buf[i], cb);
1284 skb->protocol = ax25_type_trans(skb, priv->dev); 1284 skb->protocol = ax25_type_trans(skb, priv->dev);
1285 netif_rx(skb); 1285 netif_rx(skb);
1286 priv->dev->last_rx = jiffies;
1287 priv->stats.rx_packets++; 1286 priv->stats.rx_packets++;
1288 priv->stats.rx_bytes += cb; 1287 priv->stats.rx_bytes += cb;
1289 } 1288 }
diff --git a/drivers/net/hamradio/hdlcdrv.c b/drivers/net/hamradio/hdlcdrv.c
index c258a0586e6..8eba61a1d4a 100644
--- a/drivers/net/hamradio/hdlcdrv.c
+++ b/drivers/net/hamradio/hdlcdrv.c
@@ -162,7 +162,6 @@ static void hdlc_rx_flag(struct net_device *dev, struct hdlcdrv_state *s)
162 memcpy(cp, s->hdlcrx.buffer, pkt_len - 1); 162 memcpy(cp, s->hdlcrx.buffer, pkt_len - 1);
163 skb->protocol = ax25_type_trans(skb, dev); 163 skb->protocol = ax25_type_trans(skb, dev);
164 netif_rx(skb); 164 netif_rx(skb);
165 dev->last_rx = jiffies;
166 s->stats.rx_packets++; 165 s->stats.rx_packets++;
167} 166}
168 167
diff --git a/drivers/net/hamradio/mkiss.c b/drivers/net/hamradio/mkiss.c
index b8e25c4624d..7570c73f18c 100644
--- a/drivers/net/hamradio/mkiss.c
+++ b/drivers/net/hamradio/mkiss.c
@@ -303,7 +303,6 @@ static void ax_bump(struct mkiss *ax)
303 memcpy(skb_put(skb,count), ax->rbuff, count); 303 memcpy(skb_put(skb,count), ax->rbuff, count);
304 skb->protocol = ax25_type_trans(skb, ax->dev); 304 skb->protocol = ax25_type_trans(skb, ax->dev);
305 netif_rx(skb); 305 netif_rx(skb);
306 ax->dev->last_rx = jiffies;
307 ax->stats.rx_packets++; 306 ax->stats.rx_packets++;
308 ax->stats.rx_bytes += count; 307 ax->stats.rx_bytes += count;
309 spin_unlock_bh(&ax->buflock); 308 spin_unlock_bh(&ax->buflock);
diff --git a/drivers/net/hamradio/scc.c b/drivers/net/hamradio/scc.c
index c17e39bc546..802d1c7c4af 100644
--- a/drivers/net/hamradio/scc.c
+++ b/drivers/net/hamradio/scc.c
@@ -1627,7 +1627,6 @@ static void scc_net_rx(struct scc_channel *scc, struct sk_buff *skb)
1627 skb->protocol = ax25_type_trans(skb, scc->dev); 1627 skb->protocol = ax25_type_trans(skb, scc->dev);
1628 1628
1629 netif_rx(skb); 1629 netif_rx(skb);
1630 scc->dev->last_rx = jiffies;
1631 return; 1630 return;
1632} 1631}
1633 1632
diff --git a/drivers/net/hamradio/yam.c b/drivers/net/hamradio/yam.c
index 1c942862a3f..5407f7486c9 100644
--- a/drivers/net/hamradio/yam.c
+++ b/drivers/net/hamradio/yam.c
@@ -515,7 +515,6 @@ static inline void yam_rx_flag(struct net_device *dev, struct yam_port *yp)
515 memcpy(cp, yp->rx_buf, pkt_len - 1); 515 memcpy(cp, yp->rx_buf, pkt_len - 1);
516 skb->protocol = ax25_type_trans(skb, dev); 516 skb->protocol = ax25_type_trans(skb, dev);
517 netif_rx(skb); 517 netif_rx(skb);
518 dev->last_rx = jiffies;
519 ++yp->stats.rx_packets; 518 ++yp->stats.rx_packets;
520 } 519 }
521 } 520 }
diff --git a/drivers/net/hp100.c b/drivers/net/hp100.c
index fd34452c05b..4dda9b043b1 100644
--- a/drivers/net/hp100.c
+++ b/drivers/net/hp100.c
@@ -1834,7 +1834,6 @@ static void hp100_rx(struct net_device *dev)
1834 ptr[9], ptr[10], ptr[11]); 1834 ptr[9], ptr[10], ptr[11]);
1835#endif 1835#endif
1836 netif_rx(skb); 1836 netif_rx(skb);
1837 dev->last_rx = jiffies;
1838 lp->stats.rx_packets++; 1837 lp->stats.rx_packets++;
1839 lp->stats.rx_bytes += pkt_len; 1838 lp->stats.rx_bytes += pkt_len;
1840 } 1839 }
@@ -1925,7 +1924,6 @@ static void hp100_rx_bm(struct net_device *dev)
1925 1924
1926 netif_rx(ptr->skb); /* Up and away... */ 1925 netif_rx(ptr->skb); /* Up and away... */
1927 1926
1928 dev->last_rx = jiffies;
1929 lp->stats.rx_packets++; 1927 lp->stats.rx_packets++;
1930 lp->stats.rx_bytes += pkt_len; 1928 lp->stats.rx_bytes += pkt_len;
1931 } 1929 }
diff --git a/drivers/net/ibmlana.c b/drivers/net/ibmlana.c
index 0fad08c4ccd..5b5bf9f9861 100644
--- a/drivers/net/ibmlana.c
+++ b/drivers/net/ibmlana.c
@@ -605,7 +605,6 @@ static void irqrx_handler(struct net_device *dev)
605 skb->ip_summed = CHECKSUM_NONE; 605 skb->ip_summed = CHECKSUM_NONE;
606 606
607 /* bookkeeping */ 607 /* bookkeeping */
608 dev->last_rx = jiffies;
609 dev->stats.rx_packets++; 608 dev->stats.rx_packets++;
610 dev->stats.rx_bytes += rda.length; 609 dev->stats.rx_bytes += rda.length;
611 610
diff --git a/drivers/net/ibmveth.c b/drivers/net/ibmveth.c
index 9dc49588cba..2c409570c5d 100644
--- a/drivers/net/ibmveth.c
+++ b/drivers/net/ibmveth.c
@@ -1014,7 +1014,6 @@ static int ibmveth_poll(struct napi_struct *napi, int budget)
1014 netdev->stats.rx_packets++; 1014 netdev->stats.rx_packets++;
1015 netdev->stats.rx_bytes += length; 1015 netdev->stats.rx_bytes += length;
1016 frames_processed++; 1016 frames_processed++;
1017 netdev->last_rx = jiffies;
1018 } 1017 }
1019 } while (frames_processed < budget); 1018 } while (frames_processed < budget);
1020 1019
diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c
index 3b42665ef1d..89ffc0757e0 100644
--- a/drivers/net/igb/igb_main.c
+++ b/drivers/net/igb/igb_main.c
@@ -3940,8 +3940,6 @@ send_up:
3940 3940
3941 igb_receive_skb(rx_ring, staterr, rx_desc, skb); 3941 igb_receive_skb(rx_ring, staterr, rx_desc, skb);
3942 3942
3943 netdev->last_rx = jiffies;
3944
3945next_desc: 3943next_desc:
3946 rx_desc->wb.upper.status_error = 0; 3944 rx_desc->wb.upper.status_error = 0;
3947 3945
diff --git a/drivers/net/ioc3-eth.c b/drivers/net/ioc3-eth.c
index afac65e4677..170b12d1d70 100644
--- a/drivers/net/ioc3-eth.c
+++ b/drivers/net/ioc3-eth.c
@@ -621,7 +621,6 @@ static inline void ioc3_rx(struct ioc3_private *ip)
621 rxb = (struct ioc3_erxbuf *) new_skb->data; 621 rxb = (struct ioc3_erxbuf *) new_skb->data;
622 skb_reserve(new_skb, RX_OFFSET); 622 skb_reserve(new_skb, RX_OFFSET);
623 623
624 priv_netdev(ip)->last_rx = jiffies;
625 ip->stats.rx_packets++; /* Statistics */ 624 ip->stats.rx_packets++; /* Statistics */
626 ip->stats.rx_bytes += len; 625 ip->stats.rx_bytes += len;
627 } else { 626 } else {
diff --git a/drivers/net/ipg.c b/drivers/net/ipg.c
index 7373dafbb3f..24c777aff5c 100644
--- a/drivers/net/ipg.c
+++ b/drivers/net/ipg.c
@@ -1222,7 +1222,6 @@ static void ipg_nic_rx_with_start_and_end(struct net_device *dev,
1222 skb->protocol = eth_type_trans(skb, dev); 1222 skb->protocol = eth_type_trans(skb, dev);
1223 skb->ip_summed = CHECKSUM_NONE; 1223 skb->ip_summed = CHECKSUM_NONE;
1224 netif_rx(skb); 1224 netif_rx(skb);
1225 dev->last_rx = jiffies;
1226 sp->rx_buff[entry] = NULL; 1225 sp->rx_buff[entry] = NULL;
1227} 1226}
1228 1227
@@ -1256,7 +1255,6 @@ static void ipg_nic_rx_with_start(struct net_device *dev,
1256 jumbo->skb = skb; 1255 jumbo->skb = skb;
1257 1256
1258 sp->rx_buff[entry] = NULL; 1257 sp->rx_buff[entry] = NULL;
1259 dev->last_rx = jiffies;
1260} 1258}
1261 1259
1262static void ipg_nic_rx_with_end(struct net_device *dev, 1260static void ipg_nic_rx_with_end(struct net_device *dev,
@@ -1292,7 +1290,6 @@ static void ipg_nic_rx_with_end(struct net_device *dev,
1292 } 1290 }
1293 } 1291 }
1294 1292
1295 dev->last_rx = jiffies;
1296 jumbo->found_start = 0; 1293 jumbo->found_start = 0;
1297 jumbo->current_size = 0; 1294 jumbo->current_size = 0;
1298 jumbo->skb = NULL; 1295 jumbo->skb = NULL;
@@ -1325,7 +1322,6 @@ static void ipg_nic_rx_no_start_no_end(struct net_device *dev,
1325 skb->data, sp->rxfrag_size); 1322 skb->data, sp->rxfrag_size);
1326 } 1323 }
1327 } 1324 }
1328 dev->last_rx = jiffies;
1329 ipg_nic_rx_free_skb(dev); 1325 ipg_nic_rx_free_skb(dev);
1330 } 1326 }
1331 } else { 1327 } else {
@@ -1494,11 +1490,6 @@ static int ipg_nic_rx(struct net_device *dev)
1494 * when processing completes. 1490 * when processing completes.
1495 */ 1491 */
1496 netif_rx(skb); 1492 netif_rx(skb);
1497
1498 /* Record frame receive time (jiffies = Linux
1499 * kernel current time stamp).
1500 */
1501 dev->last_rx = jiffies;
1502 } 1493 }
1503 1494
1504 /* Assure RX buffer is not reused by IPG. */ 1495 /* Assure RX buffer is not reused by IPG. */
diff --git a/drivers/net/irda/ali-ircc.c b/drivers/net/irda/ali-ircc.c
index 2ff181861d2..9fde748c41f 100644
--- a/drivers/net/irda/ali-ircc.c
+++ b/drivers/net/irda/ali-ircc.c
@@ -1931,7 +1931,6 @@ static int ali_ircc_dma_receive_complete(struct ali_ircc_cb *self)
1931 skb_reset_mac_header(skb); 1931 skb_reset_mac_header(skb);
1932 skb->protocol = htons(ETH_P_IRDA); 1932 skb->protocol = htons(ETH_P_IRDA);
1933 netif_rx(skb); 1933 netif_rx(skb);
1934 self->netdev->last_rx = jiffies;
1935 } 1934 }
1936 } 1935 }
1937 1936
diff --git a/drivers/net/irda/au1k_ir.c b/drivers/net/irda/au1k_ir.c
index a1e4508717c..6c4b53ffbca 100644
--- a/drivers/net/irda/au1k_ir.c
+++ b/drivers/net/irda/au1k_ir.c
@@ -620,7 +620,6 @@ static int au1k_irda_rx(struct net_device *dev)
620 /* next descriptor */ 620 /* next descriptor */
621 prxd = aup->rx_ring[aup->rx_head]; 621 prxd = aup->rx_ring[aup->rx_head];
622 flags = prxd->flags; 622 flags = prxd->flags;
623 dev->last_rx = jiffies;
624 623
625 } 624 }
626 return 0; 625 return 0;
diff --git a/drivers/net/irda/irda-usb.c b/drivers/net/irda/irda-usb.c
index b5d6b9ac162..761ed8ca6e3 100644
--- a/drivers/net/irda/irda-usb.c
+++ b/drivers/net/irda/irda-usb.c
@@ -929,7 +929,6 @@ static void irda_usb_receive(struct urb *urb)
929 /* Keep stats up to date */ 929 /* Keep stats up to date */
930 self->stats.rx_bytes += len; 930 self->stats.rx_bytes += len;
931 self->stats.rx_packets++; 931 self->stats.rx_packets++;
932 self->netdev->last_rx = jiffies;
933 932
934done: 933done:
935 /* Note : at this point, the URB we've just received (urb) 934 /* Note : at this point, the URB we've just received (urb)
diff --git a/drivers/net/irda/kingsun-sir.c b/drivers/net/irda/kingsun-sir.c
index e1429fc6d05..c747c874d44 100644
--- a/drivers/net/irda/kingsun-sir.c
+++ b/drivers/net/irda/kingsun-sir.c
@@ -235,7 +235,6 @@ static void kingsun_rcv_irq(struct urb *urb)
235 &kingsun->stats, 235 &kingsun->stats,
236 &kingsun->rx_buff, bytes[i]); 236 &kingsun->rx_buff, bytes[i]);
237 } 237 }
238 kingsun->netdev->last_rx = jiffies;
239 do_gettimeofday(&kingsun->rx_time); 238 do_gettimeofday(&kingsun->rx_time);
240 kingsun->receiving = 239 kingsun->receiving =
241 (kingsun->rx_buff.state != OUTSIDE_FRAME) 240 (kingsun->rx_buff.state != OUTSIDE_FRAME)
diff --git a/drivers/net/irda/ks959-sir.c b/drivers/net/irda/ks959-sir.c
index 2482d61662a..f59d5b6b7bf 100644
--- a/drivers/net/irda/ks959-sir.c
+++ b/drivers/net/irda/ks959-sir.c
@@ -475,7 +475,6 @@ static void ks959_rcv_irq(struct urb *urb)
475 bytes[i]); 475 bytes[i]);
476 } 476 }
477 } 477 }
478 kingsun->netdev->last_rx = jiffies;
479 do_gettimeofday(&kingsun->rx_time); 478 do_gettimeofday(&kingsun->rx_time);
480 kingsun->receiving = 479 kingsun->receiving =
481 (kingsun->rx_unwrap_buff.state != OUTSIDE_FRAME) ? 1 : 0; 480 (kingsun->rx_unwrap_buff.state != OUTSIDE_FRAME) ? 1 : 0;
diff --git a/drivers/net/irda/ksdazzle-sir.c b/drivers/net/irda/ksdazzle-sir.c
index 1e0de93fd61..6c39f3f6d4e 100644
--- a/drivers/net/irda/ksdazzle-sir.c
+++ b/drivers/net/irda/ksdazzle-sir.c
@@ -372,7 +372,6 @@ static void ksdazzle_rcv_irq(struct urb *urb)
372 async_unwrap_char(kingsun->netdev, &kingsun->stats, 372 async_unwrap_char(kingsun->netdev, &kingsun->stats,
373 &kingsun->rx_unwrap_buff, bytes[i]); 373 &kingsun->rx_unwrap_buff, bytes[i]);
374 } 374 }
375 kingsun->netdev->last_rx = jiffies;
376 kingsun->receiving = 375 kingsun->receiving =
377 (kingsun->rx_unwrap_buff.state != OUTSIDE_FRAME) ? 1 : 0; 376 (kingsun->rx_unwrap_buff.state != OUTSIDE_FRAME) ? 1 : 0;
378 } 377 }
diff --git a/drivers/net/irda/mcs7780.c b/drivers/net/irda/mcs7780.c
index ad92d3ff1c4..904c9610c0d 100644
--- a/drivers/net/irda/mcs7780.c
+++ b/drivers/net/irda/mcs7780.c
@@ -806,7 +806,6 @@ static void mcs_receive_irq(struct urb *urb)
806 mcs_unwrap_fir(mcs, urb->transfer_buffer, 806 mcs_unwrap_fir(mcs, urb->transfer_buffer,
807 urb->actual_length); 807 urb->actual_length);
808 } 808 }
809 mcs->netdev->last_rx = jiffies;
810 do_gettimeofday(&mcs->rx_time); 809 do_gettimeofday(&mcs->rx_time);
811 } 810 }
812 811
diff --git a/drivers/net/irda/nsc-ircc.c b/drivers/net/irda/nsc-ircc.c
index 8583d951a6a..4e1bc08971a 100644
--- a/drivers/net/irda/nsc-ircc.c
+++ b/drivers/net/irda/nsc-ircc.c
@@ -1896,7 +1896,6 @@ static int nsc_ircc_dma_receive_complete(struct nsc_ircc_cb *self, int iobase)
1896 skb_reset_mac_header(skb); 1896 skb_reset_mac_header(skb);
1897 skb->protocol = htons(ETH_P_IRDA); 1897 skb->protocol = htons(ETH_P_IRDA);
1898 netif_rx(skb); 1898 netif_rx(skb);
1899 self->netdev->last_rx = jiffies;
1900 } 1899 }
1901 } 1900 }
1902 /* Restore bank register */ 1901 /* Restore bank register */
diff --git a/drivers/net/irda/pxaficp_ir.c b/drivers/net/irda/pxaficp_ir.c
index c5b02b66f75..a0ee0531815 100644
--- a/drivers/net/irda/pxaficp_ir.c
+++ b/drivers/net/irda/pxaficp_ir.c
@@ -225,7 +225,6 @@ static irqreturn_t pxa_irda_sir_irq(int irq, void *dev_id)
225 } 225 }
226 lsr = STLSR; 226 lsr = STLSR;
227 } 227 }
228 dev->last_rx = jiffies;
229 si->last_oscr = OSCR; 228 si->last_oscr = OSCR;
230 break; 229 break;
231 230
@@ -237,7 +236,6 @@ static irqreturn_t pxa_irda_sir_irq(int irq, void *dev_id)
237 si->stats.rx_bytes++; 236 si->stats.rx_bytes++;
238 async_unwrap_char(dev, &si->stats, &si->rx_buff, STRBR); 237 async_unwrap_char(dev, &si->stats, &si->rx_buff, STRBR);
239 } while (STLSR & LSR_DR); 238 } while (STLSR & LSR_DR);
240 dev->last_rx = jiffies;
241 si->last_oscr = OSCR; 239 si->last_oscr = OSCR;
242 break; 240 break;
243 241
@@ -397,8 +395,6 @@ static void pxa_irda_fir_irq_eif(struct pxa_irda *si, struct net_device *dev, in
397 395
398 si->stats.rx_packets++; 396 si->stats.rx_packets++;
399 si->stats.rx_bytes += len; 397 si->stats.rx_bytes += len;
400
401 dev->last_rx = jiffies;
402 } 398 }
403} 399}
404 400
diff --git a/drivers/net/irda/sa1100_ir.c b/drivers/net/irda/sa1100_ir.c
index a95188948de..aa6fef8ff13 100644
--- a/drivers/net/irda/sa1100_ir.c
+++ b/drivers/net/irda/sa1100_ir.c
@@ -410,7 +410,6 @@ static void sa1100_irda_hpsir_irq(struct net_device *dev)
410 Ser2UTDR); 410 Ser2UTDR);
411 } while (Ser2UTSR1 & UTSR1_RNE); 411 } while (Ser2UTSR1 & UTSR1_RNE);
412 412
413 dev->last_rx = jiffies;
414 } 413 }
415 414
416 if (status & UTSR0_TFS && si->tx_buff.len) { 415 if (status & UTSR0_TFS && si->tx_buff.len) {
@@ -515,7 +514,6 @@ static void sa1100_irda_fir_error(struct sa1100_irda *si, struct net_device *dev
515 sa1100_irda_rx_alloc(si); 514 sa1100_irda_rx_alloc(si);
516 515
517 netif_rx(skb); 516 netif_rx(skb);
518 dev->last_rx = jiffies;
519 } else { 517 } else {
520 /* 518 /*
521 * Remap the buffer. 519 * Remap the buffer.
diff --git a/drivers/net/irda/stir4200.c b/drivers/net/irda/stir4200.c
index 3575804fd7c..ca4cd9266e5 100644
--- a/drivers/net/irda/stir4200.c
+++ b/drivers/net/irda/stir4200.c
@@ -824,7 +824,6 @@ static void stir_rcv_irq(struct urb *urb)
824 unwrap_chars(stir, urb->transfer_buffer, 824 unwrap_chars(stir, urb->transfer_buffer,
825 urb->actual_length); 825 urb->actual_length);
826 826
827 stir->netdev->last_rx = jiffies;
828 do_gettimeofday(&stir->rx_time); 827 do_gettimeofday(&stir->rx_time);
829 } 828 }
830 829
diff --git a/drivers/net/irda/vlsi_ir.c b/drivers/net/irda/vlsi_ir.c
index 9c926d205de..a3d27d78fc8 100644
--- a/drivers/net/irda/vlsi_ir.c
+++ b/drivers/net/irda/vlsi_ir.c
@@ -600,7 +600,6 @@ static int vlsi_process_rx(struct vlsi_ring *r, struct ring_descr *rd)
600 netif_rx(skb); 600 netif_rx(skb);
601 else 601 else
602 netif_rx_ni(skb); 602 netif_rx_ni(skb);
603 ndev->last_rx = jiffies;
604 603
605done: 604done:
606 rd_set_status(rd, 0); 605 rd_set_status(rd, 0);
diff --git a/drivers/net/irda/w83977af_ir.c b/drivers/net/irda/w83977af_ir.c
index 002a6d769f2..fa600200ac0 100644
--- a/drivers/net/irda/w83977af_ir.c
+++ b/drivers/net/irda/w83977af_ir.c
@@ -923,7 +923,6 @@ int w83977af_dma_receive_complete(struct w83977af_ir *self)
923 skb_reset_mac_header(skb); 923 skb_reset_mac_header(skb);
924 skb->protocol = htons(ETH_P_IRDA); 924 skb->protocol = htons(ETH_P_IRDA);
925 netif_rx(skb); 925 netif_rx(skb);
926 self->netdev->last_rx = jiffies;
927 } 926 }
928 } 927 }
929 /* Restore set register */ 928 /* Restore set register */
diff --git a/drivers/net/isa-skeleton.c b/drivers/net/isa-skeleton.c
index 1c8d72b0124..15ebae9b98d 100644
--- a/drivers/net/isa-skeleton.c
+++ b/drivers/net/isa-skeleton.c
@@ -583,7 +583,6 @@ net_rx(struct net_device *dev)
583 insw(ioaddr, skb->data, (pkt_len + 1) >> 1); 583 insw(ioaddr, skb->data, (pkt_len + 1) >> 1);
584 584
585 netif_rx(skb); 585 netif_rx(skb);
586 dev->last_rx = jiffies;
587 lp->stats.rx_packets++; 586 lp->stats.rx_packets++;
588 lp->stats.rx_bytes += pkt_len; 587 lp->stats.rx_bytes += pkt_len;
589 } 588 }
diff --git a/drivers/net/ixgb/ixgb_main.c b/drivers/net/ixgb/ixgb_main.c
index 21995dff1fa..cb7d1a6d343 100644
--- a/drivers/net/ixgb/ixgb_main.c
+++ b/drivers/net/ixgb/ixgb_main.c
@@ -1980,7 +1980,6 @@ ixgb_clean_rx_irq(struct ixgb_adapter *adapter, int *work_done, int work_to_do)
1980 } else { 1980 } else {
1981 netif_receive_skb(skb); 1981 netif_receive_skb(skb);
1982 } 1982 }
1983 netdev->last_rx = jiffies;
1984 1983
1985rxdesc_done: 1984rxdesc_done:
1986 /* clean up descriptor, might be written over by hw */ 1985 /* clean up descriptor, might be written over by hw */
diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c
index 2a12e97d5ef..b3be579b47e 100644
--- a/drivers/net/ixgbe/ixgbe_main.c
+++ b/drivers/net/ixgbe/ixgbe_main.c
@@ -668,7 +668,6 @@ static bool ixgbe_clean_rx_irq(struct ixgbe_adapter *adapter,
668 668
669 skb->protocol = eth_type_trans(skb, adapter->netdev); 669 skb->protocol = eth_type_trans(skb, adapter->netdev);
670 ixgbe_receive_skb(adapter, skb, staterr, rx_ring, rx_desc); 670 ixgbe_receive_skb(adapter, skb, staterr, rx_ring, rx_desc);
671 adapter->netdev->last_rx = jiffies;
672 671
673next_desc: 672next_desc:
674 rx_desc->wb.upper.status_error = 0; 673 rx_desc->wb.upper.status_error = 0;
diff --git a/drivers/net/ixp2000/ixpdev.c b/drivers/net/ixp2000/ixpdev.c
index 7b70c66504a..bd96dbc8e02 100644
--- a/drivers/net/ixp2000/ixpdev.c
+++ b/drivers/net/ixp2000/ixpdev.c
@@ -114,8 +114,6 @@ static int ixpdev_rx(struct net_device *dev, int processed, int budget)
114 skb_put(skb, desc->pkt_length); 114 skb_put(skb, desc->pkt_length);
115 skb->protocol = eth_type_trans(skb, nds[desc->channel]); 115 skb->protocol = eth_type_trans(skb, nds[desc->channel]);
116 116
117 dev->last_rx = jiffies;
118
119 netif_receive_skb(skb); 117 netif_receive_skb(skb);
120 } 118 }
121 119
diff --git a/drivers/net/jme.c b/drivers/net/jme.c
index a10c68700e0..0796d0b0e33 100644
--- a/drivers/net/jme.c
+++ b/drivers/net/jme.c
@@ -931,7 +931,6 @@ jme_alloc_and_feed_skb(struct jme_adapter *jme, int idx)
931 RXWBFLAG_DEST_MUL) 931 RXWBFLAG_DEST_MUL)
932 ++(NET_STAT(jme).multicast); 932 ++(NET_STAT(jme).multicast);
933 933
934 jme->dev->last_rx = jiffies;
935 NET_STAT(jme).rx_bytes += framesize; 934 NET_STAT(jme).rx_bytes += framesize;
936 ++(NET_STAT(jme).rx_packets); 935 ++(NET_STAT(jme).rx_packets);
937 } 936 }
diff --git a/drivers/net/korina.c b/drivers/net/korina.c
index e18576316bd..63626953f07 100644
--- a/drivers/net/korina.c
+++ b/drivers/net/korina.c
@@ -409,7 +409,6 @@ static int korina_rx(struct net_device *dev, int limit)
409 409
410 /* Pass the packet to upper layers */ 410 /* Pass the packet to upper layers */
411 netif_receive_skb(skb); 411 netif_receive_skb(skb);
412 dev->last_rx = jiffies;
413 dev->stats.rx_packets++; 412 dev->stats.rx_packets++;
414 dev->stats.rx_bytes += pkt_len; 413 dev->stats.rx_bytes += pkt_len;
415 414
diff --git a/drivers/net/lance.c b/drivers/net/lance.c
index 4ab536de24a..f63789affb1 100644
--- a/drivers/net/lance.c
+++ b/drivers/net/lance.c
@@ -1190,7 +1190,6 @@ lance_rx(struct net_device *dev)
1190 pkt_len); 1190 pkt_len);
1191 skb->protocol=eth_type_trans(skb,dev); 1191 skb->protocol=eth_type_trans(skb,dev);
1192 netif_rx(skb); 1192 netif_rx(skb);
1193 dev->last_rx = jiffies;
1194 lp->stats.rx_packets++; 1193 lp->stats.rx_packets++;
1195 lp->stats.rx_bytes+=pkt_len; 1194 lp->stats.rx_bytes+=pkt_len;
1196 } 1195 }
diff --git a/drivers/net/lib82596.c b/drivers/net/lib82596.c
index cc8f64197a9..7415f517491 100644
--- a/drivers/net/lib82596.c
+++ b/drivers/net/lib82596.c
@@ -739,7 +739,6 @@ memory_squeeze:
739 skb->len = pkt_len; 739 skb->len = pkt_len;
740 skb->protocol = eth_type_trans(skb, dev); 740 skb->protocol = eth_type_trans(skb, dev);
741 netif_rx(skb); 741 netif_rx(skb);
742 dev->last_rx = jiffies;
743 dev->stats.rx_packets++; 742 dev->stats.rx_packets++;
744 dev->stats.rx_bytes += pkt_len; 743 dev->stats.rx_bytes += pkt_len;
745 } 744 }
diff --git a/drivers/net/lib8390.c b/drivers/net/lib8390.c
index f80dcc11fe2..9430167a3b1 100644
--- a/drivers/net/lib8390.c
+++ b/drivers/net/lib8390.c
@@ -764,7 +764,6 @@ static void ei_receive(struct net_device *dev)
764 ei_block_input(dev, pkt_len, skb, current_offset + sizeof(rx_frame)); 764 ei_block_input(dev, pkt_len, skb, current_offset + sizeof(rx_frame));
765 skb->protocol=eth_type_trans(skb,dev); 765 skb->protocol=eth_type_trans(skb,dev);
766 netif_rx(skb); 766 netif_rx(skb);
767 dev->last_rx = jiffies;
768 dev->stats.rx_packets++; 767 dev->stats.rx_packets++;
769 dev->stats.rx_bytes += pkt_len; 768 dev->stats.rx_bytes += pkt_len;
770 if (pkt_stat & ENRSR_PHY) 769 if (pkt_stat & ENRSR_PHY)
diff --git a/drivers/net/loopback.c b/drivers/net/loopback.c
index b1ac63ab8c1..91d08585a6d 100644
--- a/drivers/net/loopback.c
+++ b/drivers/net/loopback.c
@@ -76,8 +76,6 @@ static int loopback_xmit(struct sk_buff *skb, struct net_device *dev)
76 76
77 skb->protocol = eth_type_trans(skb,dev); 77 skb->protocol = eth_type_trans(skb,dev);
78 78
79 dev->last_rx = jiffies;
80
81 /* it's OK to use per_cpu_ptr() because BHs are off */ 79 /* it's OK to use per_cpu_ptr() because BHs are off */
82 pcpu_lstats = dev->ml_priv; 80 pcpu_lstats = dev->ml_priv;
83 lb_stats = per_cpu_ptr(pcpu_lstats, smp_processor_id()); 81 lb_stats = per_cpu_ptr(pcpu_lstats, smp_processor_id());
diff --git a/drivers/net/lp486e.c b/drivers/net/lp486e.c
index 83fa9d82a00..d6b0036abaf 100644
--- a/drivers/net/lp486e.c
+++ b/drivers/net/lp486e.c
@@ -676,7 +676,6 @@ i596_rx_one(struct net_device *dev, struct i596_private *lp,
676 676
677 skb->protocol = eth_type_trans(skb,dev); 677 skb->protocol = eth_type_trans(skb,dev);
678 netif_rx(skb); 678 netif_rx(skb);
679 dev->last_rx = jiffies;
680 dev->stats.rx_packets++; 679 dev->stats.rx_packets++;
681 } else { 680 } else {
682#if 0 681#if 0
diff --git a/drivers/net/mac89x0.c b/drivers/net/mac89x0.c
index ca9c5a85867..2ee477c84b0 100644
--- a/drivers/net/mac89x0.c
+++ b/drivers/net/mac89x0.c
@@ -516,7 +516,6 @@ net_rx(struct net_device *dev)
516 516
517 skb->protocol=eth_type_trans(skb,dev); 517 skb->protocol=eth_type_trans(skb,dev);
518 netif_rx(skb); 518 netif_rx(skb);
519 dev->last_rx = jiffies;
520 lp->stats.rx_packets++; 519 lp->stats.rx_packets++;
521 lp->stats.rx_bytes += length; 520 lp->stats.rx_bytes += length;
522} 521}
diff --git a/drivers/net/macb.c b/drivers/net/macb.c
index e00c896d0c9..261b9507124 100644
--- a/drivers/net/macb.c
+++ b/drivers/net/macb.c
@@ -435,7 +435,6 @@ static int macb_rx_frame(struct macb *bp, unsigned int first_frag,
435 435
436 bp->stats.rx_packets++; 436 bp->stats.rx_packets++;
437 bp->stats.rx_bytes += len; 437 bp->stats.rx_bytes += len;
438 bp->dev->last_rx = jiffies;
439 dev_dbg(&bp->pdev->dev, "received skb of length %u, csum: %08x\n", 438 dev_dbg(&bp->pdev->dev, "received skb of length %u, csum: %08x\n",
440 skb->len, skb->csum); 439 skb->len, skb->csum);
441 netif_receive_skb(skb); 440 netif_receive_skb(skb);
diff --git a/drivers/net/mace.c b/drivers/net/mace.c
index a2021c0103b..b52f0507845 100644
--- a/drivers/net/mace.c
+++ b/drivers/net/mace.c
@@ -928,7 +928,6 @@ static irqreturn_t mace_rxdma_intr(int irq, void *dev_id)
928 skb->protocol = eth_type_trans(skb, dev); 928 skb->protocol = eth_type_trans(skb, dev);
929 dev->stats.rx_bytes += skb->len; 929 dev->stats.rx_bytes += skb->len;
930 netif_rx(skb); 930 netif_rx(skb);
931 dev->last_rx = jiffies;
932 mp->rx_bufs[i] = NULL; 931 mp->rx_bufs[i] = NULL;
933 ++dev->stats.rx_packets; 932 ++dev->stats.rx_packets;
934 } 933 }
diff --git a/drivers/net/macmace.c b/drivers/net/macmace.c
index 0b28318789a..274e99bb63a 100644
--- a/drivers/net/macmace.c
+++ b/drivers/net/macmace.c
@@ -673,7 +673,6 @@ static void mace_dma_rx_frame(struct net_device *dev, struct mace_frame *mf)
673 673
674 skb->protocol = eth_type_trans(skb, dev); 674 skb->protocol = eth_type_trans(skb, dev);
675 netif_rx(skb); 675 netif_rx(skb);
676 dev->last_rx = jiffies;
677 dev->stats.rx_packets++; 676 dev->stats.rx_packets++;
678 dev->stats.rx_bytes += frame_length; 677 dev->stats.rx_bytes += frame_length;
679 } 678 }
diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c
index 1d2de0b77a2..cabde9ab0e4 100644
--- a/drivers/net/macvlan.c
+++ b/drivers/net/macvlan.c
@@ -84,7 +84,6 @@ static void macvlan_broadcast(struct sk_buff *skb,
84 dev->stats.rx_bytes += skb->len + ETH_HLEN; 84 dev->stats.rx_bytes += skb->len + ETH_HLEN;
85 dev->stats.rx_packets++; 85 dev->stats.rx_packets++;
86 dev->stats.multicast++; 86 dev->stats.multicast++;
87 dev->last_rx = jiffies;
88 87
89 nskb->dev = dev; 88 nskb->dev = dev;
90 if (!compare_ether_addr(eth->h_dest, dev->broadcast)) 89 if (!compare_ether_addr(eth->h_dest, dev->broadcast))
@@ -133,7 +132,6 @@ static struct sk_buff *macvlan_handle_frame(struct sk_buff *skb)
133 132
134 dev->stats.rx_bytes += skb->len + ETH_HLEN; 133 dev->stats.rx_bytes += skb->len + ETH_HLEN;
135 dev->stats.rx_packets++; 134 dev->stats.rx_packets++;
136 dev->last_rx = jiffies;
137 135
138 skb->dev = dev; 136 skb->dev = dev;
139 skb->pkt_type = PACKET_HOST; 137 skb->pkt_type = PACKET_HOST;
diff --git a/drivers/net/meth.c b/drivers/net/meth.c
index 621133b45f8..c336a1f4251 100644
--- a/drivers/net/meth.c
+++ b/drivers/net/meth.c
@@ -420,7 +420,6 @@ static void meth_rx(struct net_device* dev, unsigned long int_status)
420 skb_put(skb_c, len); 420 skb_put(skb_c, len);
421 priv->rx_skbs[priv->rx_write] = skb; 421 priv->rx_skbs[priv->rx_write] = skb;
422 skb_c->protocol = eth_type_trans(skb_c, dev); 422 skb_c->protocol = eth_type_trans(skb_c, dev);
423 dev->last_rx = jiffies;
424 dev->stats.rx_packets++; 423 dev->stats.rx_packets++;
425 dev->stats.rx_bytes += len; 424 dev->stats.rx_bytes += len;
426 netif_rx(skb_c); 425 netif_rx(skb_c);
diff --git a/drivers/net/mlx4/en_rx.c b/drivers/net/mlx4/en_rx.c
index 6232227f56c..944ad47c951 100644
--- a/drivers/net/mlx4/en_rx.c
+++ b/drivers/net/mlx4/en_rx.c
@@ -776,8 +776,6 @@ int mlx4_en_process_rx_cq(struct net_device *dev, struct mlx4_en_cq *cq, int bud
776 } else 776 } else
777 netif_receive_skb(skb); 777 netif_receive_skb(skb);
778 778
779 dev->last_rx = jiffies;
780
781next: 779next:
782 ++cq->mcq.cons_index; 780 ++cq->mcq.cons_index;
783 index = (cq->mcq.cons_index) & ring->size_mask; 781 index = (cq->mcq.cons_index) & ring->size_mask;
diff --git a/drivers/net/mv643xx_eth.c b/drivers/net/mv643xx_eth.c
index 3a759d0a7d1..e521d2cebad 100644
--- a/drivers/net/mv643xx_eth.c
+++ b/drivers/net/mv643xx_eth.c
@@ -557,8 +557,6 @@ static int rxq_process(struct rx_queue *rxq, int budget)
557 skb->protocol = eth_type_trans(skb, mp->dev); 557 skb->protocol = eth_type_trans(skb, mp->dev);
558 netif_receive_skb(skb); 558 netif_receive_skb(skb);
559 } 559 }
560
561 mp->dev->last_rx = jiffies;
562 } 560 }
563 561
564 if (rx < budget) 562 if (rx < budget)
diff --git a/drivers/net/myri10ge/myri10ge.c b/drivers/net/myri10ge/myri10ge.c
index d2cbc7d55b1..72afe0aa6ca 100644
--- a/drivers/net/myri10ge/myri10ge.c
+++ b/drivers/net/myri10ge/myri10ge.c
@@ -1334,7 +1334,6 @@ myri10ge_rx_done(struct myri10ge_slice_state *ss, struct myri10ge_rx_buf *rx,
1334 myri10ge_vlan_ip_csum(skb, csum); 1334 myri10ge_vlan_ip_csum(skb, csum);
1335 } 1335 }
1336 netif_receive_skb(skb); 1336 netif_receive_skb(skb);
1337 dev->last_rx = jiffies;
1338 return 1; 1337 return 1;
1339} 1338}
1340 1339
diff --git a/drivers/net/myri_sbus.c b/drivers/net/myri_sbus.c
index 1bbdde19922..a78d4b99261 100644
--- a/drivers/net/myri_sbus.c
+++ b/drivers/net/myri_sbus.c
@@ -525,7 +525,6 @@ static void myri_rx(struct myri_eth *mp, struct net_device *dev)
525 DRX(("prot[%04x] netif_rx ", skb->protocol)); 525 DRX(("prot[%04x] netif_rx ", skb->protocol));
526 netif_rx(skb); 526 netif_rx(skb);
527 527
528 dev->last_rx = jiffies;
529 dev->stats.rx_packets++; 528 dev->stats.rx_packets++;
530 dev->stats.rx_bytes += len; 529 dev->stats.rx_bytes += len;
531 next: 530 next:
diff --git a/drivers/net/natsemi.c b/drivers/net/natsemi.c
index 5f1de803fee..9f81fcb9688 100644
--- a/drivers/net/natsemi.c
+++ b/drivers/net/natsemi.c
@@ -2361,7 +2361,6 @@ static void netdev_rx(struct net_device *dev, int *work_done, int work_to_do)
2361 } 2361 }
2362 skb->protocol = eth_type_trans(skb, dev); 2362 skb->protocol = eth_type_trans(skb, dev);
2363 netif_receive_skb(skb); 2363 netif_receive_skb(skb);
2364 dev->last_rx = jiffies;
2365 np->stats.rx_packets++; 2364 np->stats.rx_packets++;
2366 np->stats.rx_bytes += pkt_len; 2365 np->stats.rx_bytes += pkt_len;
2367 } 2366 }
diff --git a/drivers/net/netx-eth.c b/drivers/net/netx-eth.c
index b9bed82e1d2..b418771f681 100644
--- a/drivers/net/netx-eth.c
+++ b/drivers/net/netx-eth.c
@@ -165,7 +165,6 @@ static void netx_eth_receive(struct net_device *ndev)
165 pfifo_push(EMPTY_PTR_FIFO(priv->id), 165 pfifo_push(EMPTY_PTR_FIFO(priv->id),
166 FIFO_PTR_SEGMENT(seg) | FIFO_PTR_FRAMENO(frameno)); 166 FIFO_PTR_SEGMENT(seg) | FIFO_PTR_FRAMENO(frameno));
167 167
168 ndev->last_rx = jiffies;
169 skb->protocol = eth_type_trans(skb, ndev); 168 skb->protocol = eth_type_trans(skb, ndev);
170 netif_rx(skb); 169 netif_rx(skb);
171 ndev->stats.rx_packets++; 170 ndev->stats.rx_packets++;
diff --git a/drivers/net/netxen/netxen_nic_init.c b/drivers/net/netxen/netxen_nic_init.c
index 5bba675d050..d924468e506 100644
--- a/drivers/net/netxen/netxen_nic_init.c
+++ b/drivers/net/netxen/netxen_nic_init.c
@@ -1285,9 +1285,7 @@ static void netxen_process_rcv(struct netxen_adapter *adapter, int ctxid,
1285 } 1285 }
1286 adapter->stats.rxdropped++; 1286 adapter->stats.rxdropped++;
1287 } else { 1287 } else {
1288
1289 netif_receive_skb(skb); 1288 netif_receive_skb(skb);
1290 netdev->last_rx = jiffies;
1291 1289
1292 adapter->stats.no_rcv++; 1290 adapter->stats.no_rcv++;
1293 adapter->stats.rxbytes += length; 1291 adapter->stats.rxbytes += length;
diff --git a/drivers/net/ni5010.c b/drivers/net/ni5010.c
index e88ec8a2f83..6c11557945b 100644
--- a/drivers/net/ni5010.c
+++ b/drivers/net/ni5010.c
@@ -569,7 +569,6 @@ static void ni5010_rx(struct net_device *dev)
569 569
570 skb->protocol = eth_type_trans(skb,dev); 570 skb->protocol = eth_type_trans(skb,dev);
571 netif_rx(skb); 571 netif_rx(skb);
572 dev->last_rx = jiffies;
573 dev->stats.rx_packets++; 572 dev->stats.rx_packets++;
574 dev->stats.rx_bytes += i_pkt_size; 573 dev->stats.rx_bytes += i_pkt_size;
575 574
diff --git a/drivers/net/ni52.c b/drivers/net/ni52.c
index b9a882d362d..6d7cf3c90fb 100644
--- a/drivers/net/ni52.c
+++ b/drivers/net/ni52.c
@@ -970,7 +970,6 @@ static void ni52_rcv_int(struct net_device *dev)
970 memcpy_fromio(skb->data, p->base + readl(&rbd->buffer), totlen); 970 memcpy_fromio(skb->data, p->base + readl(&rbd->buffer), totlen);
971 skb->protocol = eth_type_trans(skb, dev); 971 skb->protocol = eth_type_trans(skb, dev);
972 netif_rx(skb); 972 netif_rx(skb);
973 dev->last_rx = jiffies;
974 p->stats.rx_packets++; 973 p->stats.rx_packets++;
975 p->stats.rx_bytes += totlen; 974 p->stats.rx_bytes += totlen;
976 } else 975 } else
diff --git a/drivers/net/ni65.c b/drivers/net/ni65.c
index 3edc971d0ec..24e393b3e0b 100644
--- a/drivers/net/ni65.c
+++ b/drivers/net/ni65.c
@@ -1113,7 +1113,6 @@ static void ni65_recv_intr(struct net_device *dev,int csr0)
1113 p->stats.rx_bytes += len; 1113 p->stats.rx_bytes += len;
1114 skb->protocol=eth_type_trans(skb,dev); 1114 skb->protocol=eth_type_trans(skb,dev);
1115 netif_rx(skb); 1115 netif_rx(skb);
1116 dev->last_rx = jiffies;
1117 } 1116 }
1118 else 1117 else
1119 { 1118 {
diff --git a/drivers/net/niu.c b/drivers/net/niu.c
index f927bc06980..0d833845067 100644
--- a/drivers/net/niu.c
+++ b/drivers/net/niu.c
@@ -3139,8 +3139,6 @@ static int niu_process_rx_pkt(struct niu *np, struct rx_ring_info *rp)
3139 skb->protocol = eth_type_trans(skb, np->dev); 3139 skb->protocol = eth_type_trans(skb, np->dev);
3140 netif_receive_skb(skb); 3140 netif_receive_skb(skb);
3141 3141
3142 np->dev->last_rx = jiffies;
3143
3144 return num_rcr; 3142 return num_rcr;
3145} 3143}
3146 3144
diff --git a/drivers/net/pci-skeleton.c b/drivers/net/pci-skeleton.c
index bf952acee1f..b23b5c397b1 100644
--- a/drivers/net/pci-skeleton.c
+++ b/drivers/net/pci-skeleton.c
@@ -1565,7 +1565,6 @@ static void netdrv_rx_interrupt (struct net_device *dev,
1565 1565
1566 skb->protocol = eth_type_trans (skb, dev); 1566 skb->protocol = eth_type_trans (skb, dev);
1567 netif_rx (skb); 1567 netif_rx (skb);
1568 dev->last_rx = jiffies;
1569 dev->stats.rx_bytes += pkt_size; 1568 dev->stats.rx_bytes += pkt_size;
1570 dev->stats.rx_packets++; 1569 dev->stats.rx_packets++;
1571 } else { 1570 } else {
diff --git a/drivers/net/pcmcia/3c574_cs.c b/drivers/net/pcmcia/3c574_cs.c
index dcbb11ab98d..e5cb6b1f0eb 100644
--- a/drivers/net/pcmcia/3c574_cs.c
+++ b/drivers/net/pcmcia/3c574_cs.c
@@ -1061,7 +1061,6 @@ static int el3_rx(struct net_device *dev, int worklimit)
1061 ((pkt_len+3)>>2)); 1061 ((pkt_len+3)>>2));
1062 skb->protocol = eth_type_trans(skb, dev); 1062 skb->protocol = eth_type_trans(skb, dev);
1063 netif_rx(skb); 1063 netif_rx(skb);
1064 dev->last_rx = jiffies;
1065 dev->stats.rx_packets++; 1064 dev->stats.rx_packets++;
1066 dev->stats.rx_bytes += pkt_len; 1065 dev->stats.rx_bytes += pkt_len;
1067 } else { 1066 } else {
diff --git a/drivers/net/pcmcia/3c589_cs.c b/drivers/net/pcmcia/3c589_cs.c
index 5882109be77..73ecc657999 100644
--- a/drivers/net/pcmcia/3c589_cs.c
+++ b/drivers/net/pcmcia/3c589_cs.c
@@ -883,7 +883,6 @@ static int el3_rx(struct net_device *dev)
883 (pkt_len+3)>>2); 883 (pkt_len+3)>>2);
884 skb->protocol = eth_type_trans(skb, dev); 884 skb->protocol = eth_type_trans(skb, dev);
885 netif_rx(skb); 885 netif_rx(skb);
886 dev->last_rx = jiffies;
887 dev->stats.rx_packets++; 886 dev->stats.rx_packets++;
888 dev->stats.rx_bytes += pkt_len; 887 dev->stats.rx_bytes += pkt_len;
889 } else { 888 } else {
diff --git a/drivers/net/pcmcia/axnet_cs.c b/drivers/net/pcmcia/axnet_cs.c
index 889f1bdb085..2aca8df3497 100644
--- a/drivers/net/pcmcia/axnet_cs.c
+++ b/drivers/net/pcmcia/axnet_cs.c
@@ -1492,7 +1492,6 @@ static void ei_receive(struct net_device *dev)
1492 ei_block_input(dev, pkt_len, skb, current_offset + sizeof(rx_frame)); 1492 ei_block_input(dev, pkt_len, skb, current_offset + sizeof(rx_frame));
1493 skb->protocol=eth_type_trans(skb,dev); 1493 skb->protocol=eth_type_trans(skb,dev);
1494 netif_rx(skb); 1494 netif_rx(skb);
1495 dev->last_rx = jiffies;
1496 dev->stats.rx_packets++; 1495 dev->stats.rx_packets++;
1497 dev->stats.rx_bytes += pkt_len; 1496 dev->stats.rx_bytes += pkt_len;
1498 if (pkt_stat & ENRSR_PHY) 1497 if (pkt_stat & ENRSR_PHY)
diff --git a/drivers/net/pcmcia/fmvj18x_cs.c b/drivers/net/pcmcia/fmvj18x_cs.c
index 465e4ad363c..e4f8fe3c5da 100644
--- a/drivers/net/pcmcia/fmvj18x_cs.c
+++ b/drivers/net/pcmcia/fmvj18x_cs.c
@@ -1035,7 +1035,6 @@ static void fjn_rx(struct net_device *dev)
1035#endif 1035#endif
1036 1036
1037 netif_rx(skb); 1037 netif_rx(skb);
1038 dev->last_rx = jiffies;
1039 lp->stats.rx_packets++; 1038 lp->stats.rx_packets++;
1040 lp->stats.rx_bytes += pkt_len; 1039 lp->stats.rx_bytes += pkt_len;
1041 } 1040 }
diff --git a/drivers/net/pcmcia/nmclan_cs.c b/drivers/net/pcmcia/nmclan_cs.c
index 35a1d1024c5..ec7c588c9ae 100644
--- a/drivers/net/pcmcia/nmclan_cs.c
+++ b/drivers/net/pcmcia/nmclan_cs.c
@@ -1192,7 +1192,6 @@ static int mace_rx(struct net_device *dev, unsigned char RxCnt)
1192 1192
1193 netif_rx(skb); /* Send the packet to the upper (protocol) layers. */ 1193 netif_rx(skb); /* Send the packet to the upper (protocol) layers. */
1194 1194
1195 dev->last_rx = jiffies;
1196 lp->linux_stats.rx_packets++; 1195 lp->linux_stats.rx_packets++;
1197 lp->linux_stats.rx_bytes += pkt_len; 1196 lp->linux_stats.rx_bytes += pkt_len;
1198 outb(0xFF, ioaddr + AM2150_RCV_NEXT); /* skip to next frame */ 1197 outb(0xFF, ioaddr + AM2150_RCV_NEXT); /* skip to next frame */
diff --git a/drivers/net/pcmcia/xirc2ps_cs.c b/drivers/net/pcmcia/xirc2ps_cs.c
index c45c3064fee..fef7e1861d6 100644
--- a/drivers/net/pcmcia/xirc2ps_cs.c
+++ b/drivers/net/pcmcia/xirc2ps_cs.c
@@ -1242,7 +1242,6 @@ xirc2ps_interrupt(int irq, void *dev_id)
1242 } 1242 }
1243 skb->protocol = eth_type_trans(skb, dev); 1243 skb->protocol = eth_type_trans(skb, dev);
1244 netif_rx(skb); 1244 netif_rx(skb);
1245 dev->last_rx = jiffies;
1246 lp->stats.rx_packets++; 1245 lp->stats.rx_packets++;
1247 lp->stats.rx_bytes += pktlen; 1246 lp->stats.rx_bytes += pktlen;
1248 if (!(rsr & PhyPkt)) 1247 if (!(rsr & PhyPkt))
diff --git a/drivers/net/pcnet32.c b/drivers/net/pcnet32.c
index 15bf6fe8416..f2b192c80e1 100644
--- a/drivers/net/pcnet32.c
+++ b/drivers/net/pcnet32.c
@@ -1246,7 +1246,6 @@ static void pcnet32_rx_entry(struct net_device *dev,
1246 dev->stats.rx_bytes += skb->len; 1246 dev->stats.rx_bytes += skb->len;
1247 skb->protocol = eth_type_trans(skb, dev); 1247 skb->protocol = eth_type_trans(skb, dev);
1248 netif_receive_skb(skb); 1248 netif_receive_skb(skb);
1249 dev->last_rx = jiffies;
1250 dev->stats.rx_packets++; 1249 dev->stats.rx_packets++;
1251 return; 1250 return;
1252} 1251}
diff --git a/drivers/net/plip.c b/drivers/net/plip.c
index 1e965427b0e..2ea78e6b027 100644
--- a/drivers/net/plip.c
+++ b/drivers/net/plip.c
@@ -664,7 +664,6 @@ plip_receive_packet(struct net_device *dev, struct net_local *nl,
664 /* Inform the upper layer for the arrival of a packet. */ 664 /* Inform the upper layer for the arrival of a packet. */
665 rcv->skb->protocol=plip_type_trans(rcv->skb, dev); 665 rcv->skb->protocol=plip_type_trans(rcv->skb, dev);
666 netif_rx_ni(rcv->skb); 666 netif_rx_ni(rcv->skb);
667 dev->last_rx = jiffies;
668 dev->stats.rx_bytes += rcv->length.h; 667 dev->stats.rx_bytes += rcv->length.h;
669 dev->stats.rx_packets++; 668 dev->stats.rx_packets++;
670 rcv->skb = NULL; 669 rcv->skb = NULL;
diff --git a/drivers/net/ppp_generic.c b/drivers/net/ppp_generic.c
index 7e857e938ad..274d495a1c5 100644
--- a/drivers/net/ppp_generic.c
+++ b/drivers/net/ppp_generic.c
@@ -1684,7 +1684,6 @@ ppp_receive_nonmp_frame(struct ppp *ppp, struct sk_buff *skb)
1684 skb->protocol = htons(npindex_to_ethertype[npi]); 1684 skb->protocol = htons(npindex_to_ethertype[npi]);
1685 skb_reset_mac_header(skb); 1685 skb_reset_mac_header(skb);
1686 netif_rx(skb); 1686 netif_rx(skb);
1687 ppp->dev->last_rx = jiffies;
1688 } 1687 }
1689 } 1688 }
1690 return; 1689 return;
diff --git a/drivers/net/qla3xxx.c b/drivers/net/qla3xxx.c
index acf8dc55e2a..8b412426d61 100644
--- a/drivers/net/qla3xxx.c
+++ b/drivers/net/qla3xxx.c
@@ -2136,7 +2136,6 @@ static void ql_process_mac_rx_intr(struct ql3_adapter *qdev,
2136 skb->protocol = eth_type_trans(skb, qdev->ndev); 2136 skb->protocol = eth_type_trans(skb, qdev->ndev);
2137 2137
2138 netif_receive_skb(skb); 2138 netif_receive_skb(skb);
2139 qdev->ndev->last_rx = jiffies;
2140 lrg_buf_cb2->skb = NULL; 2139 lrg_buf_cb2->skb = NULL;
2141 2140
2142 if (qdev->device_id == QL3022_DEVICE_ID) 2141 if (qdev->device_id == QL3022_DEVICE_ID)
@@ -2210,7 +2209,6 @@ static void ql_process_macip_rx_intr(struct ql3_adapter *qdev,
2210 netif_receive_skb(skb2); 2209 netif_receive_skb(skb2);
2211 ndev->stats.rx_packets++; 2210 ndev->stats.rx_packets++;
2212 ndev->stats.rx_bytes += length; 2211 ndev->stats.rx_bytes += length;
2213 ndev->last_rx = jiffies;
2214 lrg_buf_cb2->skb = NULL; 2212 lrg_buf_cb2->skb = NULL;
2215 2213
2216 if (qdev->device_id == QL3022_DEVICE_ID) 2214 if (qdev->device_id == QL3022_DEVICE_ID)
diff --git a/drivers/net/qlge/qlge_main.c b/drivers/net/qlge/qlge_main.c
index 6445d2cb132..3a6d3ac25f1 100644
--- a/drivers/net/qlge/qlge_main.c
+++ b/drivers/net/qlge/qlge_main.c
@@ -1451,7 +1451,6 @@ static void ql_process_mac_rx_intr(struct ql_adapter *qdev,
1451 "Passing a normal packet upstream.\n"); 1451 "Passing a normal packet upstream.\n");
1452 netif_rx(skb); 1452 netif_rx(skb);
1453 } 1453 }
1454 ndev->last_rx = jiffies;
1455} 1454}
1456 1455
1457/* Process an outbound completion from an rx ring. */ 1456/* Process an outbound completion from an rx ring. */
diff --git a/drivers/net/r6040.c b/drivers/net/r6040.c
index 34fe7ef8e5e..d9a6e920fd6 100644
--- a/drivers/net/r6040.c
+++ b/drivers/net/r6040.c
@@ -598,7 +598,6 @@ static int r6040_rx(struct net_device *dev, int limit)
598 598
599 /* Send to upper layer */ 599 /* Send to upper layer */
600 netif_receive_skb(skb_ptr); 600 netif_receive_skb(skb_ptr);
601 dev->last_rx = jiffies;
602 dev->stats.rx_packets++; 601 dev->stats.rx_packets++;
603 dev->stats.rx_bytes += descptr->len - 4; 602 dev->stats.rx_bytes += descptr->len - 4;
604 603
diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c
index 4b7cb389dc4..cb5042ef6dc 100644
--- a/drivers/net/r8169.c
+++ b/drivers/net/r8169.c
@@ -3484,7 +3484,6 @@ static int rtl8169_rx_interrupt(struct net_device *dev,
3484 if (rtl8169_rx_vlan_skb(tp, desc, skb) < 0) 3484 if (rtl8169_rx_vlan_skb(tp, desc, skb) < 0)
3485 netif_receive_skb(skb); 3485 netif_receive_skb(skb);
3486 3486
3487 dev->last_rx = jiffies;
3488 dev->stats.rx_bytes += pkt_size; 3487 dev->stats.rx_bytes += pkt_size;
3489 dev->stats.rx_packets++; 3488 dev->stats.rx_packets++;
3490 } 3489 }
diff --git a/drivers/net/rrunner.c b/drivers/net/rrunner.c
index 7343291030c..6e4131f9a93 100644
--- a/drivers/net/rrunner.c
+++ b/drivers/net/rrunner.c
@@ -1005,7 +1005,6 @@ static void rx_int(struct net_device *dev, u32 rxlimit, u32 index)
1005 1005
1006 netif_rx(skb); /* send it up */ 1006 netif_rx(skb); /* send it up */
1007 1007
1008 dev->last_rx = jiffies;
1009 dev->stats.rx_packets++; 1008 dev->stats.rx_packets++;
1010 dev->stats.rx_bytes += pkt_len; 1009 dev->stats.rx_bytes += pkt_len;
1011 } 1010 }
diff --git a/drivers/net/s2io.c b/drivers/net/s2io.c
index 5663fa7aa3d..cec9fe0b113 100644
--- a/drivers/net/s2io.c
+++ b/drivers/net/s2io.c
@@ -7544,7 +7544,6 @@ static int rx_osm_handler(struct ring_info *ring_data, struct RxD_t * rxdp)
7544 sp->mac_control.stats_info->sw_stat.mem_freed += skb->truesize; 7544 sp->mac_control.stats_info->sw_stat.mem_freed += skb->truesize;
7545send_up: 7545send_up:
7546 queue_rx_frame(skb, RXD_GET_VLAN_TAG(rxdp->Control_2)); 7546 queue_rx_frame(skb, RXD_GET_VLAN_TAG(rxdp->Control_2));
7547 dev->last_rx = jiffies;
7548aggregate: 7547aggregate:
7549 sp->mac_control.rings[ring_no].rx_bufs_left -= 1; 7548 sp->mac_control.rings[ring_no].rx_bufs_left -= 1;
7550 return SUCCESS; 7549 return SUCCESS;
diff --git a/drivers/net/sb1000.c b/drivers/net/sb1000.c
index 5986cec17f1..be3025310e9 100644
--- a/drivers/net/sb1000.c
+++ b/drivers/net/sb1000.c
@@ -869,7 +869,6 @@ printk("cm0: IP identification: %02x%02x fragment offset: %02x%02x\n", buffer[3
869 /* datagram completed: send to upper level */ 869 /* datagram completed: send to upper level */
870 skb_trim(skb, dlen); 870 skb_trim(skb, dlen);
871 netif_rx(skb); 871 netif_rx(skb);
872 dev->last_rx = jiffies;
873 stats->rx_bytes+=dlen; 872 stats->rx_bytes+=dlen;
874 stats->rx_packets++; 873 stats->rx_packets++;
875 lp->rx_skb[ns] = NULL; 874 lp->rx_skb[ns] = NULL;
diff --git a/drivers/net/sc92031.c b/drivers/net/sc92031.c
index 61955f8d801..590f2175e9e 100644
--- a/drivers/net/sc92031.c
+++ b/drivers/net/sc92031.c
@@ -816,7 +816,6 @@ static void _sc92031_rx_tasklet(struct net_device *dev)
816 } 816 }
817 817
818 skb->protocol = eth_type_trans(skb, dev); 818 skb->protocol = eth_type_trans(skb, dev);
819 dev->last_rx = jiffies;
820 netif_rx(skb); 819 netif_rx(skb);
821 820
822 dev->stats.rx_bytes += pkt_size; 821 dev->stats.rx_bytes += pkt_size;
diff --git a/drivers/net/seeq8005.c b/drivers/net/seeq8005.c
index ad12e7fa06c..2fbc8f1e8b4 100644
--- a/drivers/net/seeq8005.c
+++ b/drivers/net/seeq8005.c
@@ -563,7 +563,6 @@ static void seeq8005_rx(struct net_device *dev)
563 563
564 skb->protocol=eth_type_trans(skb,dev); 564 skb->protocol=eth_type_trans(skb,dev);
565 netif_rx(skb); 565 netif_rx(skb);
566 dev->last_rx = jiffies;
567 dev->stats.rx_packets++; 566 dev->stats.rx_packets++;
568 dev->stats.rx_bytes += pkt_len; 567 dev->stats.rx_bytes += pkt_len;
569 } 568 }
diff --git a/drivers/net/sfc/rx.c b/drivers/net/sfc/rx.c
index 0f805da4ce5..b8ba4bbad88 100644
--- a/drivers/net/sfc/rx.c
+++ b/drivers/net/sfc/rx.c
@@ -752,7 +752,7 @@ void __efx_rx_packet(struct efx_channel *channel,
752 channel->rx_alloc_level += RX_ALLOC_FACTOR_SKB; 752 channel->rx_alloc_level += RX_ALLOC_FACTOR_SKB;
753 753
754done: 754done:
755 efx->net_dev->last_rx = jiffies; 755 ;
756} 756}
757 757
758void efx_rx_strategy(struct efx_channel *channel) 758void efx_rx_strategy(struct efx_channel *channel)
diff --git a/drivers/net/sgiseeq.c b/drivers/net/sgiseeq.c
index ffc700e4f16..cdffea6c7fa 100644
--- a/drivers/net/sgiseeq.c
+++ b/drivers/net/sgiseeq.c
@@ -377,7 +377,6 @@ memory_squeeze:
377 skb_put(skb, len); 377 skb_put(skb, len);
378 skb->protocol = eth_type_trans(skb, dev); 378 skb->protocol = eth_type_trans(skb, dev);
379 netif_rx(skb); 379 netif_rx(skb);
380 dev->last_rx = jiffies;
381 dev->stats.rx_packets++; 380 dev->stats.rx_packets++;
382 dev->stats.rx_bytes += len; 381 dev->stats.rx_bytes += len;
383 } else { 382 } else {
diff --git a/drivers/net/sh_eth.c b/drivers/net/sh_eth.c
index a24bb68887a..c51bfc57d40 100644
--- a/drivers/net/sh_eth.c
+++ b/drivers/net/sh_eth.c
@@ -540,7 +540,6 @@ static int sh_eth_rx(struct net_device *ndev)
540 skb_put(skb, pkt_len); 540 skb_put(skb, pkt_len);
541 skb->protocol = eth_type_trans(skb, ndev); 541 skb->protocol = eth_type_trans(skb, ndev);
542 netif_rx(skb); 542 netif_rx(skb);
543 ndev->last_rx = jiffies;
544 mdp->stats.rx_packets++; 543 mdp->stats.rx_packets++;
545 mdp->stats.rx_bytes += pkt_len; 544 mdp->stats.rx_bytes += pkt_len;
546 } 545 }
diff --git a/drivers/net/sis190.c b/drivers/net/sis190.c
index f6c8f70b405..83cc3c5f794 100644
--- a/drivers/net/sis190.c
+++ b/drivers/net/sis190.c
@@ -627,7 +627,6 @@ static int sis190_rx_interrupt(struct net_device *dev,
627 627
628 sis190_rx_skb(skb); 628 sis190_rx_skb(skb);
629 629
630 dev->last_rx = jiffies;
631 stats->rx_packets++; 630 stats->rx_packets++;
632 stats->rx_bytes += pkt_size; 631 stats->rx_bytes += pkt_size;
633 if ((status & BCAST) == MCAST) 632 if ((status & BCAST) == MCAST)
diff --git a/drivers/net/sis900.c b/drivers/net/sis900.c
index bb7056a897b..28f6c04a8ef 100644
--- a/drivers/net/sis900.c
+++ b/drivers/net/sis900.c
@@ -1789,7 +1789,6 @@ static int sis900_rx(struct net_device *net_dev)
1789 /* some network statistics */ 1789 /* some network statistics */
1790 if ((rx_status & BCAST) == MCAST) 1790 if ((rx_status & BCAST) == MCAST)
1791 net_dev->stats.multicast++; 1791 net_dev->stats.multicast++;
1792 net_dev->last_rx = jiffies;
1793 net_dev->stats.rx_bytes += rx_size; 1792 net_dev->stats.rx_bytes += rx_size;
1794 net_dev->stats.rx_packets++; 1793 net_dev->stats.rx_packets++;
1795 sis_priv->dirty_rx++; 1794 sis_priv->dirty_rx++;
diff --git a/drivers/net/skfp/skfddi.c b/drivers/net/skfp/skfddi.c
index a2b092bb362..282bb47decc 100644
--- a/drivers/net/skfp/skfddi.c
+++ b/drivers/net/skfp/skfddi.c
@@ -1680,7 +1680,6 @@ void mac_drv_rx_complete(struct s_smc *smc, volatile struct s_smt_fp_rxd *rxd,
1680 skb->protocol = fddi_type_trans(skb, bp->dev); 1680 skb->protocol = fddi_type_trans(skb, bp->dev);
1681 1681
1682 netif_rx(skb); 1682 netif_rx(skb);
1683 bp->dev->last_rx = jiffies;
1684 1683
1685 HWM_RX_CHECK(smc, RX_LOW_WATERMARK); 1684 HWM_RX_CHECK(smc, RX_LOW_WATERMARK);
1686 return; 1685 return;
@@ -1939,7 +1938,6 @@ int mac_drv_rx_init(struct s_smc *smc, int len, int fc,
1939 1938
1940 // deliver frame to system 1939 // deliver frame to system
1941 skb->protocol = fddi_type_trans(skb, smc->os.dev); 1940 skb->protocol = fddi_type_trans(skb, smc->os.dev);
1942 skb->dev->last_rx = jiffies;
1943 netif_rx(skb); 1941 netif_rx(skb);
1944 1942
1945 return (0); 1943 return (0);
diff --git a/drivers/net/skge.c b/drivers/net/skge.c
index 7911839f737..05f9d50d956 100644
--- a/drivers/net/skge.c
+++ b/drivers/net/skge.c
@@ -3186,7 +3186,6 @@ static int skge_poll(struct napi_struct *napi, int to_do)
3186 3186
3187 skb = skge_rx_get(dev, e, control, rd->status, rd->csum2); 3187 skb = skge_rx_get(dev, e, control, rd->status, rd->csum2);
3188 if (likely(skb)) { 3188 if (likely(skb)) {
3189 dev->last_rx = jiffies;
3190 netif_receive_skb(skb); 3189 netif_receive_skb(skb);
3191 3190
3192 ++work_done; 3191 ++work_done;
diff --git a/drivers/net/slip.c b/drivers/net/slip.c
index 1d58991d395..25cec06d6dc 100644
--- a/drivers/net/slip.c
+++ b/drivers/net/slip.c
@@ -365,7 +365,6 @@ static void sl_bump(struct slip *sl)
365 skb_reset_mac_header(skb); 365 skb_reset_mac_header(skb);
366 skb->protocol = htons(ETH_P_IP); 366 skb->protocol = htons(ETH_P_IP);
367 netif_rx(skb); 367 netif_rx(skb);
368 sl->dev->last_rx = jiffies;
369 sl->rx_packets++; 368 sl->rx_packets++;
370} 369}
371 370
diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c
index f59c7772f34..a8cf006c099 100644
--- a/drivers/net/smc911x.c
+++ b/drivers/net/smc911x.c
@@ -439,7 +439,6 @@ static inline void smc911x_rcv(struct net_device *dev)
439 439
440 DBG(SMC_DEBUG_PKTS, "%s: Received packet\n", dev->name); 440 DBG(SMC_DEBUG_PKTS, "%s: Received packet\n", dev->name);
441 PRINT_PKT(data, ((pkt_len - 4) <= 64) ? pkt_len - 4 : 64); 441 PRINT_PKT(data, ((pkt_len - 4) <= 64) ? pkt_len - 4 : 64);
442 dev->last_rx = jiffies;
443 skb->protocol = eth_type_trans(skb, dev); 442 skb->protocol = eth_type_trans(skb, dev);
444 netif_rx(skb); 443 netif_rx(skb);
445 dev->stats.rx_packets++; 444 dev->stats.rx_packets++;
@@ -1231,7 +1230,6 @@ smc911x_rx_dma_irq(int dma, void *data)
1231 BUG_ON(skb == NULL); 1230 BUG_ON(skb == NULL);
1232 lp->current_rx_skb = NULL; 1231 lp->current_rx_skb = NULL;
1233 PRINT_PKT(skb->data, skb->len); 1232 PRINT_PKT(skb->data, skb->len);
1234 dev->last_rx = jiffies;
1235 skb->protocol = eth_type_trans(skb, dev); 1233 skb->protocol = eth_type_trans(skb, dev);
1236 dev->stats.rx_packets++; 1234 dev->stats.rx_packets++;
1237 dev->stats.rx_bytes += skb->len; 1235 dev->stats.rx_bytes += skb->len;
diff --git a/drivers/net/smc9194.c b/drivers/net/smc9194.c
index 3bc733634a5..e35fab1da6a 100644
--- a/drivers/net/smc9194.c
+++ b/drivers/net/smc9194.c
@@ -1270,7 +1270,6 @@ static void smc_rcv(struct net_device *dev)
1270 1270
1271 skb->protocol = eth_type_trans(skb, dev ); 1271 skb->protocol = eth_type_trans(skb, dev );
1272 netif_rx(skb); 1272 netif_rx(skb);
1273 dev->last_rx = jiffies;
1274 dev->stats.rx_packets++; 1273 dev->stats.rx_packets++;
1275 dev->stats.rx_bytes += packet_length; 1274 dev->stats.rx_bytes += packet_length;
1276 } else { 1275 } else {
diff --git a/drivers/net/smc91x.c b/drivers/net/smc91x.c
index b5ff63268d8..2ca301d7190 100644
--- a/drivers/net/smc91x.c
+++ b/drivers/net/smc91x.c
@@ -518,7 +518,6 @@ static inline void smc_rcv(struct net_device *dev)
518 518
519 PRINT_PKT(data, packet_len - 4); 519 PRINT_PKT(data, packet_len - 4);
520 520
521 dev->last_rx = jiffies;
522 skb->protocol = eth_type_trans(skb, dev); 521 skb->protocol = eth_type_trans(skb, dev);
523 netif_rx(skb); 522 netif_rx(skb);
524 dev->stats.rx_packets++; 523 dev->stats.rx_packets++;
diff --git a/drivers/net/sonic.c b/drivers/net/sonic.c
index 8069f3e32d8..211e805c122 100644
--- a/drivers/net/sonic.c
+++ b/drivers/net/sonic.c
@@ -450,7 +450,6 @@ static void sonic_rx(struct net_device *dev)
450 skb_trim(used_skb, pkt_len); 450 skb_trim(used_skb, pkt_len);
451 used_skb->protocol = eth_type_trans(used_skb, dev); 451 used_skb->protocol = eth_type_trans(used_skb, dev);
452 netif_rx(used_skb); 452 netif_rx(used_skb);
453 dev->last_rx = jiffies;
454 lp->stats.rx_packets++; 453 lp->stats.rx_packets++;
455 lp->stats.rx_bytes += pkt_len; 454 lp->stats.rx_bytes += pkt_len;
456 455
diff --git a/drivers/net/starfire.c b/drivers/net/starfire.c
index 32814183d5a..0358809f409 100644
--- a/drivers/net/starfire.c
+++ b/drivers/net/starfire.c
@@ -1496,7 +1496,6 @@ static int __netdev_rx(struct net_device *dev, int *quota)
1496 } else 1496 } else
1497#endif /* VLAN_SUPPORT */ 1497#endif /* VLAN_SUPPORT */
1498 netif_receive_skb(skb); 1498 netif_receive_skb(skb);
1499 dev->last_rx = jiffies;
1500 np->stats.rx_packets++; 1499 np->stats.rx_packets++;
1501 1500
1502 next_rx: 1501 next_rx:
diff --git a/drivers/net/sun3lance.c b/drivers/net/sun3lance.c
index 608aa2f789d..4bb8f72c65c 100644
--- a/drivers/net/sun3lance.c
+++ b/drivers/net/sun3lance.c
@@ -849,7 +849,6 @@ static int lance_rx( struct net_device *dev )
849 849
850 skb->protocol = eth_type_trans( skb, dev ); 850 skb->protocol = eth_type_trans( skb, dev );
851 netif_rx( skb ); 851 netif_rx( skb );
852 dev->last_rx = jiffies;
853 dev->stats.rx_packets++; 852 dev->stats.rx_packets++;
854 dev->stats.rx_bytes += pkt_len; 853 dev->stats.rx_bytes += pkt_len;
855 } 854 }
diff --git a/drivers/net/sunbmac.c b/drivers/net/sunbmac.c
index e964395fcee..3f57ba0ed03 100644
--- a/drivers/net/sunbmac.c
+++ b/drivers/net/sunbmac.c
@@ -878,7 +878,6 @@ static void bigmac_rx(struct bigmac *bp)
878 /* No checksums done by the BigMAC ;-( */ 878 /* No checksums done by the BigMAC ;-( */
879 skb->protocol = eth_type_trans(skb, bp->dev); 879 skb->protocol = eth_type_trans(skb, bp->dev);
880 netif_rx(skb); 880 netif_rx(skb);
881 bp->dev->last_rx = jiffies;
882 bp->enet_stats.rx_packets++; 881 bp->enet_stats.rx_packets++;
883 bp->enet_stats.rx_bytes += len; 882 bp->enet_stats.rx_bytes += len;
884 next: 883 next:
diff --git a/drivers/net/sundance.c b/drivers/net/sundance.c
index 8c6a8941a05..698893b9200 100644
--- a/drivers/net/sundance.c
+++ b/drivers/net/sundance.c
@@ -1350,7 +1350,6 @@ static void rx_poll(unsigned long data)
1350 skb->protocol = eth_type_trans(skb, dev); 1350 skb->protocol = eth_type_trans(skb, dev);
1351 /* Note: checksum -> skb->ip_summed = CHECKSUM_UNNECESSARY; */ 1351 /* Note: checksum -> skb->ip_summed = CHECKSUM_UNNECESSARY; */
1352 netif_rx(skb); 1352 netif_rx(skb);
1353 dev->last_rx = jiffies;
1354 } 1353 }
1355 entry = (entry + 1) % RX_RING_SIZE; 1354 entry = (entry + 1) % RX_RING_SIZE;
1356 received++; 1355 received++;
diff --git a/drivers/net/sungem.c b/drivers/net/sungem.c
index 250f08687b7..deb114801da 100644
--- a/drivers/net/sungem.c
+++ b/drivers/net/sungem.c
@@ -863,7 +863,6 @@ static int gem_rx(struct gem *gp, int work_to_do)
863 863
864 gp->net_stats.rx_packets++; 864 gp->net_stats.rx_packets++;
865 gp->net_stats.rx_bytes += len; 865 gp->net_stats.rx_bytes += len;
866 gp->dev->last_rx = jiffies;
867 866
868 next: 867 next:
869 entry = NEXT_RX(entry); 868 entry = NEXT_RX(entry);
diff --git a/drivers/net/sunhme.c b/drivers/net/sunhme.c
index b55f7a4b52e..e55db660f76 100644
--- a/drivers/net/sunhme.c
+++ b/drivers/net/sunhme.c
@@ -2072,7 +2072,6 @@ static void happy_meal_rx(struct happy_meal *hp, struct net_device *dev)
2072 skb->protocol = eth_type_trans(skb, dev); 2072 skb->protocol = eth_type_trans(skb, dev);
2073 netif_rx(skb); 2073 netif_rx(skb);
2074 2074
2075 dev->last_rx = jiffies;
2076 hp->net_stats.rx_packets++; 2075 hp->net_stats.rx_packets++;
2077 hp->net_stats.rx_bytes += len; 2076 hp->net_stats.rx_bytes += len;
2078 next: 2077 next:
diff --git a/drivers/net/sunlance.c b/drivers/net/sunlance.c
index c67cf94b5bf..28137328175 100644
--- a/drivers/net/sunlance.c
+++ b/drivers/net/sunlance.c
@@ -555,7 +555,6 @@ static void lance_rx_dvma(struct net_device *dev)
555 len); 555 len);
556 skb->protocol = eth_type_trans(skb, dev); 556 skb->protocol = eth_type_trans(skb, dev);
557 netif_rx(skb); 557 netif_rx(skb);
558 dev->last_rx = jiffies;
559 dev->stats.rx_packets++; 558 dev->stats.rx_packets++;
560 } 559 }
561 560
@@ -726,7 +725,6 @@ static void lance_rx_pio(struct net_device *dev)
726 lance_piocopy_to_skb(skb, &(ib->rx_buf[entry][0]), len); 725 lance_piocopy_to_skb(skb, &(ib->rx_buf[entry][0]), len);
727 skb->protocol = eth_type_trans(skb, dev); 726 skb->protocol = eth_type_trans(skb, dev);
728 netif_rx(skb); 727 netif_rx(skb);
729 dev->last_rx = jiffies;
730 dev->stats.rx_packets++; 728 dev->stats.rx_packets++;
731 } 729 }
732 730
diff --git a/drivers/net/sunqe.c b/drivers/net/sunqe.c
index f63644744ff..8f1e7ffb4f2 100644
--- a/drivers/net/sunqe.c
+++ b/drivers/net/sunqe.c
@@ -446,7 +446,6 @@ static void qe_rx(struct sunqe *qep)
446 len); 446 len);
447 skb->protocol = eth_type_trans(skb, qep->dev); 447 skb->protocol = eth_type_trans(skb, qep->dev);
448 netif_rx(skb); 448 netif_rx(skb);
449 qep->dev->last_rx = jiffies;
450 dev->stats.rx_packets++; 449 dev->stats.rx_packets++;
451 dev->stats.rx_bytes += len; 450 dev->stats.rx_bytes += len;
452 } 451 }
diff --git a/drivers/net/tc35815.c b/drivers/net/tc35815.c
index 51de139491a..44126c463fa 100644
--- a/drivers/net/tc35815.c
+++ b/drivers/net/tc35815.c
@@ -1757,7 +1757,6 @@ tc35815_rx(struct net_device *dev)
1757#else 1757#else
1758 netif_rx(skb); 1758 netif_rx(skb);
1759#endif 1759#endif
1760 dev->last_rx = jiffies;
1761 dev->stats.rx_packets++; 1760 dev->stats.rx_packets++;
1762 dev->stats.rx_bytes += pkt_len; 1761 dev->stats.rx_bytes += pkt_len;
1763 } else { 1762 } else {
diff --git a/drivers/net/tehuti.c b/drivers/net/tehuti.c
index 91f9054a1d9..30d5065f816 100644
--- a/drivers/net/tehuti.c
+++ b/drivers/net/tehuti.c
@@ -1237,7 +1237,6 @@ static int bdx_rx_receive(struct bdx_priv *priv, struct rxd_fifo *f, int budget)
1237 ENTER; 1237 ENTER;
1238 max_done = budget; 1238 max_done = budget;
1239 1239
1240 priv->ndev->last_rx = jiffies;
1241 f->m.wptr = READ_REG(priv, f->m.reg_WPTR) & TXF_WPTR_WR_PTR; 1240 f->m.wptr = READ_REG(priv, f->m.reg_WPTR) & TXF_WPTR_WR_PTR;
1242 1241
1243 size = f->m.wptr - f->m.rptr; 1242 size = f->m.wptr - f->m.rptr;
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c
index babf83d3a52..546b9eeaa17 100644
--- a/drivers/net/tg3.c
+++ b/drivers/net/tg3.c
@@ -4288,7 +4288,6 @@ static int tg3_rx(struct tg3 *tp, int budget)
4288#endif 4288#endif
4289 netif_receive_skb(skb); 4289 netif_receive_skb(skb);
4290 4290
4291 tp->dev->last_rx = jiffies;
4292 received++; 4291 received++;
4293 budget--; 4292 budget--;
4294 4293
diff --git a/drivers/net/tlan.c b/drivers/net/tlan.c
index c41d6876136..055d3429851 100644
--- a/drivers/net/tlan.c
+++ b/drivers/net/tlan.c
@@ -1649,8 +1649,6 @@ drop_and_reuse:
1649 } 1649 }
1650 } 1650 }
1651 1651
1652 dev->last_rx = jiffies;
1653
1654 return ack; 1652 return ack;
1655 1653
1656} /* TLan_HandleRxEOF */ 1654} /* TLan_HandleRxEOF */
diff --git a/drivers/net/tokenring/3c359.c b/drivers/net/tokenring/3c359.c
index bf621328b60..87509a65b3b 100644
--- a/drivers/net/tokenring/3c359.c
+++ b/drivers/net/tokenring/3c359.c
@@ -974,7 +974,6 @@ static void xl_rx(struct net_device *dev)
974 974
975 netif_rx(skb2) ; 975 netif_rx(skb2) ;
976 } /* if multiple buffers */ 976 } /* if multiple buffers */
977 dev->last_rx = jiffies ;
978 } /* while packet to do */ 977 } /* while packet to do */
979 978
980 /* Clear the updComplete interrupt */ 979 /* Clear the updComplete interrupt */
@@ -1571,7 +1570,6 @@ static void xl_arb_cmd(struct net_device *dev)
1571 * anyway. 1570 * anyway.
1572 */ 1571 */
1573 1572
1574 dev->last_rx = jiffies ;
1575 /* Acknowledge interrupt, this tells nic we are done with the arb */ 1573 /* Acknowledge interrupt, this tells nic we are done with the arb */
1576 writel(ACK_INTERRUPT | ARBCACK | LATCH_ACK, xl_mmio + MMIO_COMMAND) ; 1574 writel(ACK_INTERRUPT | ARBCACK | LATCH_ACK, xl_mmio + MMIO_COMMAND) ;
1577 1575
diff --git a/drivers/net/tokenring/ibmtr.c b/drivers/net/tokenring/ibmtr.c
index ad978982eee..9fd09938d45 100644
--- a/drivers/net/tokenring/ibmtr.c
+++ b/drivers/net/tokenring/ibmtr.c
@@ -1822,7 +1822,6 @@ static void tr_rx(struct net_device *dev)
1822 skb->ip_summed = CHECKSUM_COMPLETE; 1822 skb->ip_summed = CHECKSUM_COMPLETE;
1823 } 1823 }
1824 netif_rx(skb); 1824 netif_rx(skb);
1825 dev->last_rx = jiffies;
1826} /*tr_rx */ 1825} /*tr_rx */
1827 1826
1828/*****************************************************************************/ 1827/*****************************************************************************/
diff --git a/drivers/net/tokenring/lanstreamer.c b/drivers/net/tokenring/lanstreamer.c
index bd70e818212..239c75217b1 100644
--- a/drivers/net/tokenring/lanstreamer.c
+++ b/drivers/net/tokenring/lanstreamer.c
@@ -1009,7 +1009,6 @@ static void streamer_rx(struct net_device *dev)
1009 /* send up to the protocol */ 1009 /* send up to the protocol */
1010 netif_rx(skb); 1010 netif_rx(skb);
1011 } 1011 }
1012 dev->last_rx = jiffies;
1013 streamer_priv->streamer_stats.rx_packets++; 1012 streamer_priv->streamer_stats.rx_packets++;
1014 streamer_priv->streamer_stats.rx_bytes += length; 1013 streamer_priv->streamer_stats.rx_bytes += length;
1015 } /* if skb == null */ 1014 } /* if skb == null */
diff --git a/drivers/net/tokenring/olympic.c b/drivers/net/tokenring/olympic.c
index f78bc5d4070..ecb5c7c9691 100644
--- a/drivers/net/tokenring/olympic.c
+++ b/drivers/net/tokenring/olympic.c
@@ -862,7 +862,6 @@ static void olympic_rx(struct net_device *dev)
862 skb->protocol = tr_type_trans(skb,dev); 862 skb->protocol = tr_type_trans(skb,dev);
863 netif_rx(skb) ; 863 netif_rx(skb) ;
864 } 864 }
865 dev->last_rx = jiffies ;
866 olympic_priv->olympic_stats.rx_packets++ ; 865 olympic_priv->olympic_stats.rx_packets++ ;
867 olympic_priv->olympic_stats.rx_bytes += length ; 866 olympic_priv->olympic_stats.rx_bytes += length ;
868 } /* if skb == null */ 867 } /* if skb == null */
@@ -1441,7 +1440,6 @@ static void olympic_arb_cmd(struct net_device *dev)
1441 dev->name, mac_hdr->saddr); 1440 dev->name, mac_hdr->saddr);
1442 } 1441 }
1443 netif_rx(mac_frame); 1442 netif_rx(mac_frame);
1444 dev->last_rx = jiffies;
1445 1443
1446drop_frame: 1444drop_frame:
1447 /* Now tell the card we have dealt with the received frame */ 1445 /* Now tell the card we have dealt with the received frame */
diff --git a/drivers/net/tokenring/smctr.c b/drivers/net/tokenring/smctr.c
index ed50d288e49..a011666342f 100644
--- a/drivers/net/tokenring/smctr.c
+++ b/drivers/net/tokenring/smctr.c
@@ -3910,7 +3910,6 @@ static int smctr_process_rx_packet(MAC_HEADER *rmf, __u16 size,
3910 /* Kick the packet on up. */ 3910 /* Kick the packet on up. */
3911 skb->protocol = tr_type_trans(skb, dev); 3911 skb->protocol = tr_type_trans(skb, dev);
3912 netif_rx(skb); 3912 netif_rx(skb);
3913 dev->last_rx = jiffies;
3914 err = 0; 3913 err = 0;
3915 } 3914 }
3916 3915
@@ -4496,7 +4495,6 @@ static int smctr_rx_frame(struct net_device *dev)
4496 /* Kick the packet on up. */ 4495 /* Kick the packet on up. */
4497 skb->protocol = tr_type_trans(skb, dev); 4496 skb->protocol = tr_type_trans(skb, dev);
4498 netif_rx(skb); 4497 netif_rx(skb);
4499 dev->last_rx = jiffies;
4500 } else { 4498 } else {
4501 } 4499 }
4502 } 4500 }
diff --git a/drivers/net/tokenring/tms380tr.c b/drivers/net/tokenring/tms380tr.c
index d07c4523c84..b408397c83e 100644
--- a/drivers/net/tokenring/tms380tr.c
+++ b/drivers/net/tokenring/tms380tr.c
@@ -2186,7 +2186,6 @@ static void tms380tr_rcv_status_irq(struct net_device *dev)
2186 skb_trim(skb,Length); 2186 skb_trim(skb,Length);
2187 skb->protocol = tr_type_trans(skb,dev); 2187 skb->protocol = tr_type_trans(skb,dev);
2188 netif_rx(skb); 2188 netif_rx(skb);
2189 dev->last_rx = jiffies;
2190 } 2189 }
2191 } 2190 }
2192 else /* Invalid frame */ 2191 else /* Invalid frame */
diff --git a/drivers/net/tsi108_eth.c b/drivers/net/tsi108_eth.c
index 6924805e765..271bc230c8a 100644
--- a/drivers/net/tsi108_eth.c
+++ b/drivers/net/tsi108_eth.c
@@ -788,7 +788,6 @@ static int tsi108_complete_rx(struct net_device *dev, int budget)
788 skb_put(skb, data->rxring[rx].len); 788 skb_put(skb, data->rxring[rx].len);
789 skb->protocol = eth_type_trans(skb, dev); 789 skb->protocol = eth_type_trans(skb, dev);
790 netif_receive_skb(skb); 790 netif_receive_skb(skb);
791 dev->last_rx = jiffies;
792 } 791 }
793 792
794 return done; 793 return done;
diff --git a/drivers/net/tulip/de2104x.c b/drivers/net/tulip/de2104x.c
index 08076182df7..e23a5084c6c 100644
--- a/drivers/net/tulip/de2104x.c
+++ b/drivers/net/tulip/de2104x.c
@@ -459,7 +459,6 @@ static void de_rx (struct de_private *de)
459 459
460 de->net_stats.rx_packets++; 460 de->net_stats.rx_packets++;
461 de->net_stats.rx_bytes += skb->len; 461 de->net_stats.rx_bytes += skb->len;
462 de->dev->last_rx = jiffies;
463 rc = netif_rx (skb); 462 rc = netif_rx (skb);
464 if (rc == NET_RX_DROP) 463 if (rc == NET_RX_DROP)
465 drop = 1; 464 drop = 1;
diff --git a/drivers/net/tulip/de4x5.c b/drivers/net/tulip/de4x5.c
index 1e7d5e29a5a..f8a45253eaf 100644
--- a/drivers/net/tulip/de4x5.c
+++ b/drivers/net/tulip/de4x5.c
@@ -1646,7 +1646,6 @@ de4x5_rx(struct net_device *dev)
1646 netif_rx(skb); 1646 netif_rx(skb);
1647 1647
1648 /* Update stats */ 1648 /* Update stats */
1649 dev->last_rx = jiffies;
1650 lp->stats.rx_packets++; 1649 lp->stats.rx_packets++;
1651 lp->stats.rx_bytes += pkt_len; 1650 lp->stats.rx_bytes += pkt_len;
1652 } 1651 }
diff --git a/drivers/net/tulip/dmfe.c b/drivers/net/tulip/dmfe.c
index 0ec3281529f..28a5c51b43a 100644
--- a/drivers/net/tulip/dmfe.c
+++ b/drivers/net/tulip/dmfe.c
@@ -1008,7 +1008,6 @@ static void dmfe_rx_packet(struct DEVICE *dev, struct dmfe_board_info * db)
1008 1008
1009 skb->protocol = eth_type_trans(skb, dev); 1009 skb->protocol = eth_type_trans(skb, dev);
1010 netif_rx(skb); 1010 netif_rx(skb);
1011 dev->last_rx = jiffies;
1012 db->stats.rx_packets++; 1011 db->stats.rx_packets++;
1013 db->stats.rx_bytes += rxlen; 1012 db->stats.rx_bytes += rxlen;
1014 } 1013 }
diff --git a/drivers/net/tulip/interrupt.c b/drivers/net/tulip/interrupt.c
index c6bad987d63..739d610d18c 100644
--- a/drivers/net/tulip/interrupt.c
+++ b/drivers/net/tulip/interrupt.c
@@ -231,7 +231,6 @@ int tulip_poll(struct napi_struct *napi, int budget)
231 231
232 netif_receive_skb(skb); 232 netif_receive_skb(skb);
233 233
234 dev->last_rx = jiffies;
235 tp->stats.rx_packets++; 234 tp->stats.rx_packets++;
236 tp->stats.rx_bytes += pkt_len; 235 tp->stats.rx_bytes += pkt_len;
237 } 236 }
@@ -444,7 +443,6 @@ static int tulip_rx(struct net_device *dev)
444 443
445 netif_rx(skb); 444 netif_rx(skb);
446 445
447 dev->last_rx = jiffies;
448 tp->stats.rx_packets++; 446 tp->stats.rx_packets++;
449 tp->stats.rx_bytes += pkt_len; 447 tp->stats.rx_bytes += pkt_len;
450 } 448 }
diff --git a/drivers/net/tulip/uli526x.c b/drivers/net/tulip/uli526x.c
index 298649a236c..35c57f6e630 100644
--- a/drivers/net/tulip/uli526x.c
+++ b/drivers/net/tulip/uli526x.c
@@ -854,7 +854,6 @@ static void uli526x_rx_packet(struct net_device *dev, struct uli526x_board_info
854 854
855 skb->protocol = eth_type_trans(skb, dev); 855 skb->protocol = eth_type_trans(skb, dev);
856 netif_rx(skb); 856 netif_rx(skb);
857 dev->last_rx = jiffies;
858 db->stats.rx_packets++; 857 db->stats.rx_packets++;
859 db->stats.rx_bytes += rxlen; 858 db->stats.rx_bytes += rxlen;
860 859
diff --git a/drivers/net/tulip/winbond-840.c b/drivers/net/tulip/winbond-840.c
index e4cb408a70f..022d99af864 100644
--- a/drivers/net/tulip/winbond-840.c
+++ b/drivers/net/tulip/winbond-840.c
@@ -1253,7 +1253,6 @@ static int netdev_rx(struct net_device *dev)
1253#endif 1253#endif
1254 skb->protocol = eth_type_trans(skb, dev); 1254 skb->protocol = eth_type_trans(skb, dev);
1255 netif_rx(skb); 1255 netif_rx(skb);
1256 dev->last_rx = jiffies;
1257 np->stats.rx_packets++; 1256 np->stats.rx_packets++;
1258 np->stats.rx_bytes += pkt_len; 1257 np->stats.rx_bytes += pkt_len;
1259 } 1258 }
diff --git a/drivers/net/tulip/xircom_cb.c b/drivers/net/tulip/xircom_cb.c
index 3c0b96b0e92..13c8703ecb9 100644
--- a/drivers/net/tulip/xircom_cb.c
+++ b/drivers/net/tulip/xircom_cb.c
@@ -1201,7 +1201,6 @@ static void investigate_read_descriptor(struct net_device *dev,struct xircom_pri
1201 skb_put(skb, pkt_len); 1201 skb_put(skb, pkt_len);
1202 skb->protocol = eth_type_trans(skb, dev); 1202 skb->protocol = eth_type_trans(skb, dev);
1203 netif_rx(skb); 1203 netif_rx(skb);
1204 dev->last_rx = jiffies;
1205 card->stats.rx_packets++; 1204 card->stats.rx_packets++;
1206 card->stats.rx_bytes += pkt_len; 1205 card->stats.rx_bytes += pkt_len;
1207 1206
diff --git a/drivers/net/tun.c b/drivers/net/tun.c
index 64c7fc7ff08..680d78e38f1 100644
--- a/drivers/net/tun.c
+++ b/drivers/net/tun.c
@@ -529,7 +529,6 @@ static __inline__ ssize_t tun_get_user(struct tun_struct *tun, struct iovec *iv,
529 } 529 }
530 530
531 netif_rx_ni(skb); 531 netif_rx_ni(skb);
532 tun->dev->last_rx = jiffies;
533 532
534 tun->dev->stats.rx_packets++; 533 tun->dev->stats.rx_packets++;
535 tun->dev->stats.rx_bytes += len; 534 tun->dev->stats.rx_bytes += len;
diff --git a/drivers/net/typhoon.c b/drivers/net/typhoon.c
index 6f191e9f610..876398724ba 100644
--- a/drivers/net/typhoon.c
+++ b/drivers/net/typhoon.c
@@ -1729,7 +1729,6 @@ typhoon_rx(struct typhoon *tp, struct basic_ring *rxRing, volatile __le32 * read
1729 netif_receive_skb(new_skb); 1729 netif_receive_skb(new_skb);
1730 spin_unlock(&tp->state_lock); 1730 spin_unlock(&tp->state_lock);
1731 1731
1732 tp->dev->last_rx = jiffies;
1733 received++; 1732 received++;
1734 budget--; 1733 budget--;
1735 } 1734 }
diff --git a/drivers/net/ucc_geth.c b/drivers/net/ucc_geth.c
index c87747bb24c..4931af73663 100644
--- a/drivers/net/ucc_geth.c
+++ b/drivers/net/ucc_geth.c
@@ -3502,8 +3502,6 @@ static int ucc_geth_rx(struct ucc_geth_private *ugeth, u8 rxQ, int rx_work_limit
3502 netif_receive_skb(skb); 3502 netif_receive_skb(skb);
3503 } 3503 }
3504 3504
3505 ugeth->dev->last_rx = jiffies;
3506
3507 skb = get_new_skb(ugeth, bd); 3505 skb = get_new_skb(ugeth, bd);
3508 if (!skb) { 3506 if (!skb) {
3509 if (netif_msg_rx_err(ugeth)) 3507 if (netif_msg_rx_err(ugeth))
diff --git a/drivers/net/usb/catc.c b/drivers/net/usb/catc.c
index 466a89e2444..d7621239059 100644
--- a/drivers/net/usb/catc.c
+++ b/drivers/net/usb/catc.c
@@ -271,8 +271,6 @@ static void catc_rx_done(struct urb *urb)
271 271
272 } while (pkt_start - (u8 *) urb->transfer_buffer < urb->actual_length); 272 } while (pkt_start - (u8 *) urb->transfer_buffer < urb->actual_length);
273 273
274 catc->netdev->last_rx = jiffies;
275
276 if (catc->is_f5u011) { 274 if (catc->is_f5u011) {
277 if (atomic_read(&catc->recq_sz)) { 275 if (atomic_read(&catc->recq_sz)) {
278 int status; 276 int status;
diff --git a/drivers/net/via-rhine.c b/drivers/net/via-rhine.c
index bb54a936a80..9a650d0a679 100644
--- a/drivers/net/via-rhine.c
+++ b/drivers/net/via-rhine.c
@@ -1504,7 +1504,6 @@ static int rhine_rx(struct net_device *dev, int limit)
1504 } 1504 }
1505 skb->protocol = eth_type_trans(skb, dev); 1505 skb->protocol = eth_type_trans(skb, dev);
1506 netif_receive_skb(skb); 1506 netif_receive_skb(skb);
1507 dev->last_rx = jiffies;
1508 rp->stats.rx_bytes += pkt_len; 1507 rp->stats.rx_bytes += pkt_len;
1509 rp->stats.rx_packets++; 1508 rp->stats.rx_packets++;
1510 } 1509 }
diff --git a/drivers/net/via-velocity.c b/drivers/net/via-velocity.c
index 3590ea5a902..448772f6cb3 100644
--- a/drivers/net/via-velocity.c
+++ b/drivers/net/via-velocity.c
@@ -1412,8 +1412,6 @@ static int velocity_rx_srv(struct velocity_info *vptr, int status)
1412 1412
1413 rd->size |= RX_INTEN; 1413 rd->size |= RX_INTEN;
1414 1414
1415 vptr->dev->last_rx = jiffies;
1416
1417 rd_curr++; 1415 rd_curr++;
1418 if (rd_curr >= vptr->options.numrx) 1416 if (rd_curr >= vptr->options.numrx)
1419 rd_curr = 0; 1417 rd_curr = 0;
diff --git a/drivers/net/wan/cosa.c b/drivers/net/wan/cosa.c
index 7f97f8d08c3..d80b72e22de 100644
--- a/drivers/net/wan/cosa.c
+++ b/drivers/net/wan/cosa.c
@@ -754,7 +754,6 @@ static int cosa_net_rx_done(struct channel_data *chan)
754 chan->netdev->stats.rx_bytes += chan->cosa->rxsize; 754 chan->netdev->stats.rx_bytes += chan->cosa->rxsize;
755 netif_rx(chan->rx_skb); 755 netif_rx(chan->rx_skb);
756 chan->rx_skb = NULL; 756 chan->rx_skb = NULL;
757 chan->netdev->last_rx = jiffies;
758 return 0; 757 return 0;
759} 758}
760 759
diff --git a/drivers/net/wan/cycx_x25.c b/drivers/net/wan/cycx_x25.c
index 5a7303dc096..aeea321e4a9 100644
--- a/drivers/net/wan/cycx_x25.c
+++ b/drivers/net/wan/cycx_x25.c
@@ -843,7 +843,6 @@ static void cycx_x25_irq_rx(struct cycx_device *card, struct cycx_x25_cmd *cmd)
843 843
844 skb_reset_mac_header(skb); 844 skb_reset_mac_header(skb);
845 netif_rx(skb); 845 netif_rx(skb);
846 dev->last_rx = jiffies; /* timestamp */
847} 846}
848 847
849/* Connect interrupt handler. */ 848/* Connect interrupt handler. */
@@ -1494,7 +1493,6 @@ static void cycx_x25_chan_send_event(struct net_device *dev, u8 event)
1494 1493
1495 skb->protocol = x25_type_trans(skb, dev); 1494 skb->protocol = x25_type_trans(skb, dev);
1496 netif_rx(skb); 1495 netif_rx(skb);
1497 dev->last_rx = jiffies; /* timestamp */
1498} 1496}
1499 1497
1500/* Convert line speed in bps to a number used by cyclom 2x code. */ 1498/* Convert line speed in bps to a number used by cyclom 2x code. */
diff --git a/drivers/net/wan/dlci.c b/drivers/net/wan/dlci.c
index b14242768fa..5d13832978e 100644
--- a/drivers/net/wan/dlci.c
+++ b/drivers/net/wan/dlci.c
@@ -181,7 +181,6 @@ static void dlci_receive(struct sk_buff *skb, struct net_device *dev)
181 dlp->stats.rx_bytes += skb->len; 181 dlp->stats.rx_bytes += skb->len;
182 netif_rx(skb); 182 netif_rx(skb);
183 dlp->stats.rx_packets++; 183 dlp->stats.rx_packets++;
184 dev->last_rx = jiffies;
185 } 184 }
186 else 185 else
187 dev_kfree_skb(skb); 186 dev_kfree_skb(skb);
diff --git a/drivers/net/wan/dscc4.c b/drivers/net/wan/dscc4.c
index 7d16ca3cb93..888025db2f0 100644
--- a/drivers/net/wan/dscc4.c
+++ b/drivers/net/wan/dscc4.c
@@ -659,7 +659,6 @@ static inline void dscc4_rx_skb(struct dscc4_dev_priv *dpriv,
659 skb_put(skb, pkt_len); 659 skb_put(skb, pkt_len);
660 if (netif_running(dev)) 660 if (netif_running(dev))
661 skb->protocol = hdlc_type_trans(skb, dev); 661 skb->protocol = hdlc_type_trans(skb, dev);
662 skb->dev->last_rx = jiffies;
663 netif_rx(skb); 662 netif_rx(skb);
664 } else { 663 } else {
665 if (skb->data[pkt_len] & FrameRdo) 664 if (skb->data[pkt_len] & FrameRdo)
diff --git a/drivers/net/wan/farsync.c b/drivers/net/wan/farsync.c
index 9557ad078ab..48a2c9d2895 100644
--- a/drivers/net/wan/farsync.c
+++ b/drivers/net/wan/farsync.c
@@ -896,7 +896,6 @@ fst_rx_dma_complete(struct fst_card_info *card, struct fst_port_info *port,
896 fst_process_rx_status(rx_status, port_to_dev(port)->name); 896 fst_process_rx_status(rx_status, port_to_dev(port)->name);
897 if (rx_status == NET_RX_DROP) 897 if (rx_status == NET_RX_DROP)
898 dev->stats.rx_dropped++; 898 dev->stats.rx_dropped++;
899 dev->last_rx = jiffies;
900} 899}
901 900
902/* 901/*
@@ -1322,7 +1321,6 @@ fst_intr_rx(struct fst_card_info *card, struct fst_port_info *port)
1322 fst_process_rx_status(rx_status, port_to_dev(port)->name); 1321 fst_process_rx_status(rx_status, port_to_dev(port)->name);
1323 if (rx_status == NET_RX_DROP) 1322 if (rx_status == NET_RX_DROP)
1324 dev->stats.rx_dropped++; 1323 dev->stats.rx_dropped++;
1325 dev->last_rx = jiffies;
1326 } else { 1324 } else {
1327 card->dma_skb_rx = skb; 1325 card->dma_skb_rx = skb;
1328 card->dma_port_rx = port; 1326 card->dma_port_rx = port;
diff --git a/drivers/net/wan/hd6457x.c b/drivers/net/wan/hd6457x.c
index 591fb45a7c6..434583a94b3 100644
--- a/drivers/net/wan/hd6457x.c
+++ b/drivers/net/wan/hd6457x.c
@@ -328,7 +328,6 @@ static inline void sca_rx(card_t *card, port_t *port, pkt_desc __iomem *desc, u1
328#endif 328#endif
329 dev->stats.rx_packets++; 329 dev->stats.rx_packets++;
330 dev->stats.rx_bytes += skb->len; 330 dev->stats.rx_bytes += skb->len;
331 dev->last_rx = jiffies;
332 skb->protocol = hdlc_type_trans(skb, dev); 331 skb->protocol = hdlc_type_trans(skb, dev);
333 netif_rx(skb); 332 netif_rx(skb);
334} 333}
diff --git a/drivers/net/wan/hostess_sv11.c b/drivers/net/wan/hostess_sv11.c
index e299313f828..af54f0cf1b3 100644
--- a/drivers/net/wan/hostess_sv11.c
+++ b/drivers/net/wan/hostess_sv11.c
@@ -66,7 +66,6 @@ static void hostess_input(struct z8530_channel *c, struct sk_buff *skb)
66 * it right now. 66 * it right now.
67 */ 67 */
68 netif_rx(skb); 68 netif_rx(skb);
69 c->netdevice->last_rx = jiffies;
70} 69}
71 70
72/* 71/*
diff --git a/drivers/net/wan/lapbether.c b/drivers/net/wan/lapbether.c
index 24fd613466b..5b61b3eef45 100644
--- a/drivers/net/wan/lapbether.c
+++ b/drivers/net/wan/lapbether.c
@@ -143,7 +143,6 @@ static int lapbeth_data_indication(struct net_device *dev, struct sk_buff *skb)
143 *ptr = 0x00; 143 *ptr = 0x00;
144 144
145 skb->protocol = x25_type_trans(skb, dev); 145 skb->protocol = x25_type_trans(skb, dev);
146 skb->dev->last_rx = jiffies;
147 return netif_rx(skb); 146 return netif_rx(skb);
148} 147}
149 148
@@ -235,7 +234,6 @@ static void lapbeth_connected(struct net_device *dev, int reason)
235 *ptr = 0x01; 234 *ptr = 0x01;
236 235
237 skb->protocol = x25_type_trans(skb, dev); 236 skb->protocol = x25_type_trans(skb, dev);
238 skb->dev->last_rx = jiffies;
239 netif_rx(skb); 237 netif_rx(skb);
240} 238}
241 239
@@ -253,7 +251,6 @@ static void lapbeth_disconnected(struct net_device *dev, int reason)
253 *ptr = 0x02; 251 *ptr = 0x02;
254 252
255 skb->protocol = x25_type_trans(skb, dev); 253 skb->protocol = x25_type_trans(skb, dev);
256 skb->dev->last_rx = jiffies;
257 netif_rx(skb); 254 netif_rx(skb);
258} 255}
259 256
diff --git a/drivers/net/wan/lmc/lmc_main.c b/drivers/net/wan/lmc/lmc_main.c
index d7bb63e616b..feac3b99f8f 100644
--- a/drivers/net/wan/lmc/lmc_main.c
+++ b/drivers/net/wan/lmc/lmc_main.c
@@ -1594,7 +1594,6 @@ static int lmc_rx(struct net_device *dev)
1594 goto skip_packet; 1594 goto skip_packet;
1595 } 1595 }
1596 1596
1597 dev->last_rx = jiffies;
1598 sc->lmc_device->stats.rx_packets++; 1597 sc->lmc_device->stats.rx_packets++;
1599 sc->lmc_device->stats.rx_bytes += len; 1598 sc->lmc_device->stats.rx_bytes += len;
1600 1599
diff --git a/drivers/net/wan/lmc/lmc_proto.c b/drivers/net/wan/lmc/lmc_proto.c
index be9877ff551..94b4c208b01 100644
--- a/drivers/net/wan/lmc/lmc_proto.c
+++ b/drivers/net/wan/lmc/lmc_proto.c
@@ -142,7 +142,6 @@ void lmc_proto_netif(lmc_softc_t *sc, struct sk_buff *skb) /*FOLD00*/
142 case LMC_PPP: 142 case LMC_PPP:
143 case LMC_NET: 143 case LMC_NET:
144 default: 144 default:
145 skb->dev->last_rx = jiffies;
146 netif_rx(skb); 145 netif_rx(skb);
147 break; 146 break;
148 case LMC_RAW: 147 case LMC_RAW:
diff --git a/drivers/net/wan/sbni.c b/drivers/net/wan/sbni.c
index ee51b6a5e60..6db063e2d5b 100644
--- a/drivers/net/wan/sbni.c
+++ b/drivers/net/wan/sbni.c
@@ -1013,13 +1013,11 @@ indicate_pkt( struct net_device *dev )
1013#ifdef CONFIG_SBNI_MULTILINE 1013#ifdef CONFIG_SBNI_MULTILINE
1014 skb->protocol = eth_type_trans( skb, nl->master ); 1014 skb->protocol = eth_type_trans( skb, nl->master );
1015 netif_rx( skb ); 1015 netif_rx( skb );
1016 dev->last_rx = jiffies;
1017 ++((struct net_local *) nl->master->priv)->stats.rx_packets; 1016 ++((struct net_local *) nl->master->priv)->stats.rx_packets;
1018 ((struct net_local *) nl->master->priv)->stats.rx_bytes += nl->inppos; 1017 ((struct net_local *) nl->master->priv)->stats.rx_bytes += nl->inppos;
1019#else 1018#else
1020 skb->protocol = eth_type_trans( skb, dev ); 1019 skb->protocol = eth_type_trans( skb, dev );
1021 netif_rx( skb ); 1020 netif_rx( skb );
1022 dev->last_rx = jiffies;
1023 ++nl->stats.rx_packets; 1021 ++nl->stats.rx_packets;
1024 nl->stats.rx_bytes += nl->inppos; 1022 nl->stats.rx_bytes += nl->inppos;
1025#endif 1023#endif
diff --git a/drivers/net/wan/sealevel.c b/drivers/net/wan/sealevel.c
index c0235844a4d..0941a26f6e3 100644
--- a/drivers/net/wan/sealevel.c
+++ b/drivers/net/wan/sealevel.c
@@ -68,7 +68,6 @@ static void sealevel_input(struct z8530_channel *c, struct sk_buff *skb)
68 skb_reset_mac_header(skb); 68 skb_reset_mac_header(skb);
69 skb->dev = c->netdevice; 69 skb->dev = c->netdevice;
70 netif_rx(skb); 70 netif_rx(skb);
71 c->netdevice->last_rx = jiffies;
72} 71}
73 72
74/* 73/*
diff --git a/drivers/net/wan/syncppp.c b/drivers/net/wan/syncppp.c
index 6e92f7b44b1..58ae8a2223a 100644
--- a/drivers/net/wan/syncppp.c
+++ b/drivers/net/wan/syncppp.c
@@ -284,7 +284,6 @@ static void sppp_input (struct net_device *dev, struct sk_buff *skb)
284 printk(KERN_DEBUG "Yow an IP frame.\n"); 284 printk(KERN_DEBUG "Yow an IP frame.\n");
285 skb->protocol=htons(ETH_P_IP); 285 skb->protocol=htons(ETH_P_IP);
286 netif_rx(skb); 286 netif_rx(skb);
287 dev->last_rx = jiffies;
288 goto done; 287 goto done;
289 } 288 }
290 break; 289 break;
@@ -294,7 +293,6 @@ static void sppp_input (struct net_device *dev, struct sk_buff *skb)
294 if (sp->lcp.state == LCP_STATE_OPENED) { 293 if (sp->lcp.state == LCP_STATE_OPENED) {
295 skb->protocol=htons(ETH_P_IPX); 294 skb->protocol=htons(ETH_P_IPX);
296 netif_rx(skb); 295 netif_rx(skb);
297 dev->last_rx = jiffies;
298 goto done; 296 goto done;
299 } 297 }
300 break; 298 break;
@@ -321,14 +319,12 @@ static void sppp_input (struct net_device *dev, struct sk_buff *skb)
321 case ETH_P_IP: 319 case ETH_P_IP:
322 skb->protocol=htons(ETH_P_IP); 320 skb->protocol=htons(ETH_P_IP);
323 netif_rx(skb); 321 netif_rx(skb);
324 dev->last_rx = jiffies;
325 goto done; 322 goto done;
326#endif 323#endif
327#ifdef CONFIG_IPX 324#ifdef CONFIG_IPX
328 case ETH_P_IPX: 325 case ETH_P_IPX:
329 skb->protocol=htons(ETH_P_IPX); 326 skb->protocol=htons(ETH_P_IPX);
330 netif_rx(skb); 327 netif_rx(skb);
331 dev->last_rx = jiffies;
332 goto done; 328 goto done;
333#endif 329#endif
334 } 330 }
diff --git a/drivers/net/wan/wanxl.c b/drivers/net/wan/wanxl.c
index a8a5ca0ee6c..88459490ecd 100644
--- a/drivers/net/wan/wanxl.c
+++ b/drivers/net/wan/wanxl.c
@@ -220,7 +220,6 @@ static inline void wanxl_rx_intr(card_t *card)
220#endif 220#endif
221 dev->stats.rx_packets++; 221 dev->stats.rx_packets++;
222 dev->stats.rx_bytes += skb->len; 222 dev->stats.rx_bytes += skb->len;
223 dev->last_rx = jiffies;
224 skb->protocol = hdlc_type_trans(skb, dev); 223 skb->protocol = hdlc_type_trans(skb, dev);
225 netif_rx(skb); 224 netif_rx(skb);
226 skb = NULL; 225 skb = NULL;
diff --git a/drivers/net/wan/x25_asy.c b/drivers/net/wan/x25_asy.c
index 2a6c7a60756..3b7bdfd2514 100644
--- a/drivers/net/wan/x25_asy.c
+++ b/drivers/net/wan/x25_asy.c
@@ -211,7 +211,6 @@ static void x25_asy_bump(struct x25_asy *sl)
211 printk(KERN_DEBUG "x25_asy: data received err - %d\n", err); 211 printk(KERN_DEBUG "x25_asy: data received err - %d\n", err);
212 } else { 212 } else {
213 netif_rx(skb); 213 netif_rx(skb);
214 sl->dev->last_rx = jiffies;
215 sl->stats.rx_packets++; 214 sl->stats.rx_packets++;
216 } 215 }
217} 216}
@@ -361,7 +360,6 @@ static int x25_asy_xmit(struct sk_buff *skb, struct net_device *dev)
361 360
362static int x25_asy_data_indication(struct net_device *dev, struct sk_buff *skb) 361static int x25_asy_data_indication(struct net_device *dev, struct sk_buff *skb)
363{ 362{
364 skb->dev->last_rx = jiffies;
365 return netif_rx(skb); 363 return netif_rx(skb);
366} 364}
367 365
@@ -413,7 +411,6 @@ static void x25_asy_connected(struct net_device *dev, int reason)
413 411
414 skb->protocol = x25_type_trans(skb, sl->dev); 412 skb->protocol = x25_type_trans(skb, sl->dev);
415 netif_rx(skb); 413 netif_rx(skb);
416 sl->dev->last_rx = jiffies;
417} 414}
418 415
419static void x25_asy_disconnected(struct net_device *dev, int reason) 416static void x25_asy_disconnected(struct net_device *dev, int reason)
@@ -433,7 +430,6 @@ static void x25_asy_disconnected(struct net_device *dev, int reason)
433 430
434 skb->protocol = x25_type_trans(skb, sl->dev); 431 skb->protocol = x25_type_trans(skb, sl->dev);
435 netif_rx(skb); 432 netif_rx(skb);
436 sl->dev->last_rx = jiffies;
437} 433}
438 434
439static struct lapb_register_struct x25_asy_callbacks = { 435static struct lapb_register_struct x25_asy_callbacks = {
diff --git a/drivers/net/wireless/airo.c b/drivers/net/wireless/airo.c
index d7388d2aee9..c8dc6568cec 100644
--- a/drivers/net/wireless/airo.c
+++ b/drivers/net/wireless/airo.c
@@ -3366,7 +3366,6 @@ badrx:
3366 skb->protocol = htons(ETH_P_802_2); 3366 skb->protocol = htons(ETH_P_802_2);
3367 } else 3367 } else
3368 skb->protocol = eth_type_trans(skb,dev); 3368 skb->protocol = eth_type_trans(skb,dev);
3369 skb->dev->last_rx = jiffies;
3370 skb->ip_summed = CHECKSUM_NONE; 3369 skb->ip_summed = CHECKSUM_NONE;
3371 3370
3372 netif_rx( skb ); 3371 netif_rx( skb );
@@ -3596,7 +3595,6 @@ badmic:
3596 3595
3597 skb->ip_summed = CHECKSUM_NONE; 3596 skb->ip_summed = CHECKSUM_NONE;
3598 skb->protocol = eth_type_trans(skb, ai->dev); 3597 skb->protocol = eth_type_trans(skb, ai->dev);
3599 skb->dev->last_rx = jiffies;
3600 netif_rx(skb); 3598 netif_rx(skb);
3601 } 3599 }
3602badrx: 3600badrx:
@@ -3690,7 +3688,6 @@ void mpi_receive_802_11 (struct airo_info *ai)
3690 skb->pkt_type = PACKET_OTHERHOST; 3688 skb->pkt_type = PACKET_OTHERHOST;
3691 skb->dev = ai->wifidev; 3689 skb->dev = ai->wifidev;
3692 skb->protocol = htons(ETH_P_802_2); 3690 skb->protocol = htons(ETH_P_802_2);
3693 skb->dev->last_rx = jiffies;
3694 skb->ip_summed = CHECKSUM_NONE; 3691 skb->ip_summed = CHECKSUM_NONE;
3695 netif_rx( skb ); 3692 netif_rx( skb );
3696badrx: 3693badrx:
diff --git a/drivers/net/wireless/arlan-main.c b/drivers/net/wireless/arlan-main.c
index b608643d5fc..bfca15da6f0 100644
--- a/drivers/net/wireless/arlan-main.c
+++ b/drivers/net/wireless/arlan-main.c
@@ -1529,7 +1529,6 @@ static void arlan_rx_interrupt(struct net_device *dev, u_char rxStatus, u_short
1529 printk(KERN_WARNING "arlan kernel pkt type trans %x \n", skb->protocol); 1529 printk(KERN_WARNING "arlan kernel pkt type trans %x \n", skb->protocol);
1530 } 1530 }
1531 netif_rx(skb); 1531 netif_rx(skb);
1532 dev->last_rx = jiffies;
1533 dev->stats.rx_packets++; 1532 dev->stats.rx_packets++;
1534 dev->stats.rx_bytes += pkt_len; 1533 dev->stats.rx_bytes += pkt_len;
1535 } 1534 }
diff --git a/drivers/net/wireless/atmel.c b/drivers/net/wireless/atmel.c
index 6e20552c188..d16931589f8 100644
--- a/drivers/net/wireless/atmel.c
+++ b/drivers/net/wireless/atmel.c
@@ -919,7 +919,6 @@ static void fast_rx_path(struct atmel_private *priv,
919 else 919 else
920 memcpy(&skbp[6], header->addr2, 6); /* source address */ 920 memcpy(&skbp[6], header->addr2, 6); /* source address */
921 921
922 priv->dev->last_rx = jiffies;
923 skb->protocol = eth_type_trans(skb, priv->dev); 922 skb->protocol = eth_type_trans(skb, priv->dev);
924 skb->ip_summed = CHECKSUM_NONE; 923 skb->ip_summed = CHECKSUM_NONE;
925 netif_rx(skb); 924 netif_rx(skb);
@@ -1026,7 +1025,6 @@ static void frag_rx_path(struct atmel_private *priv,
1026 memcpy(skb_put(skb, priv->frag_len + 12), 1025 memcpy(skb_put(skb, priv->frag_len + 12),
1027 priv->rx_buf, 1026 priv->rx_buf,
1028 priv->frag_len + 12); 1027 priv->frag_len + 12);
1029 priv->dev->last_rx = jiffies;
1030 skb->protocol = eth_type_trans(skb, priv->dev); 1028 skb->protocol = eth_type_trans(skb, priv->dev);
1031 skb->ip_summed = CHECKSUM_NONE; 1029 skb->ip_summed = CHECKSUM_NONE;
1032 netif_rx(skb); 1030 netif_rx(skb);
diff --git a/drivers/net/wireless/hostap/hostap_80211_rx.c b/drivers/net/wireless/hostap/hostap_80211_rx.c
index bbb8ec6683d..5f64461aa54 100644
--- a/drivers/net/wireless/hostap/hostap_80211_rx.c
+++ b/drivers/net/wireless/hostap/hostap_80211_rx.c
@@ -67,7 +67,6 @@ int prism2_rx_80211(struct net_device *dev, struct sk_buff *skb,
67 67
68 iface = netdev_priv(dev); 68 iface = netdev_priv(dev);
69 local = iface->local; 69 local = iface->local;
70 dev->last_rx = jiffies;
71 70
72 if (dev->type == ARPHRD_IEEE80211_PRISM) { 71 if (dev->type == ARPHRD_IEEE80211_PRISM) {
73 if (local->monitor_type == PRISM2_MONITOR_PRISM) { 72 if (local->monitor_type == PRISM2_MONITOR_PRISM) {
@@ -883,8 +882,6 @@ void hostap_80211_rx(struct net_device *dev, struct sk_buff *skb,
883 from_assoc_ap = 1; 882 from_assoc_ap = 1;
884 } 883 }
885 884
886 dev->last_rx = jiffies;
887
888 if ((local->iw_mode == IW_MODE_MASTER || 885 if ((local->iw_mode == IW_MODE_MASTER ||
889 local->iw_mode == IW_MODE_REPEAT) && 886 local->iw_mode == IW_MODE_REPEAT) &&
890 !from_assoc_ap) { 887 !from_assoc_ap) {
diff --git a/drivers/net/wireless/netwave_cs.c b/drivers/net/wireless/netwave_cs.c
index be80c0093b7..24caec6caf1 100644
--- a/drivers/net/wireless/netwave_cs.c
+++ b/drivers/net/wireless/netwave_cs.c
@@ -1307,7 +1307,6 @@ static int netwave_rx(struct net_device *dev)
1307 /* Queue packet for network layer */ 1307 /* Queue packet for network layer */
1308 netif_rx(skb); 1308 netif_rx(skb);
1309 1309
1310 dev->last_rx = jiffies;
1311 priv->stats.rx_packets++; 1310 priv->stats.rx_packets++;
1312 priv->stats.rx_bytes += rcvLen; 1311 priv->stats.rx_bytes += rcvLen;
1313 1312
diff --git a/drivers/net/wireless/orinoco.c b/drivers/net/wireless/orinoco.c
index 5a39166e2a0..b657a916b1d 100644
--- a/drivers/net/wireless/orinoco.c
+++ b/drivers/net/wireless/orinoco.c
@@ -1289,7 +1289,6 @@ static void orinoco_rx_monitor(struct net_device *dev, u16 rxfid,
1289 skb->pkt_type = PACKET_OTHERHOST; 1289 skb->pkt_type = PACKET_OTHERHOST;
1290 skb->protocol = __constant_htons(ETH_P_802_2); 1290 skb->protocol = __constant_htons(ETH_P_802_2);
1291 1291
1292 dev->last_rx = jiffies;
1293 stats->rx_packets++; 1292 stats->rx_packets++;
1294 stats->rx_bytes += skb->len; 1293 stats->rx_bytes += skb->len;
1295 1294
@@ -1538,7 +1537,6 @@ static void orinoco_rx(struct net_device *dev,
1538 else 1537 else
1539 memcpy(hdr->h_source, desc->addr2, ETH_ALEN); 1538 memcpy(hdr->h_source, desc->addr2, ETH_ALEN);
1540 1539
1541 dev->last_rx = jiffies;
1542 skb->protocol = eth_type_trans(skb, dev); 1540 skb->protocol = eth_type_trans(skb, dev);
1543 skb->ip_summed = CHECKSUM_NONE; 1541 skb->ip_summed = CHECKSUM_NONE;
1544 if (fc & IEEE80211_FCTL_TODS) 1542 if (fc & IEEE80211_FCTL_TODS)
diff --git a/drivers/net/wireless/ray_cs.c b/drivers/net/wireless/ray_cs.c
index bf0b9299b5d..81b71f07f5a 100644
--- a/drivers/net/wireless/ray_cs.c
+++ b/drivers/net/wireless/ray_cs.c
@@ -2284,7 +2284,6 @@ static void rx_data(struct net_device *dev, struct rcs __iomem *prcs, unsigned i
2284 2284
2285 skb->protocol = eth_type_trans(skb,dev); 2285 skb->protocol = eth_type_trans(skb,dev);
2286 netif_rx(skb); 2286 netif_rx(skb);
2287 dev->last_rx = jiffies;
2288 local->stats.rx_packets++; 2287 local->stats.rx_packets++;
2289 local->stats.rx_bytes += total_len; 2288 local->stats.rx_bytes += total_len;
2290 2289
diff --git a/drivers/net/wireless/strip.c b/drivers/net/wireless/strip.c
index 417e9e675fa..cf0d070ced1 100644
--- a/drivers/net/wireless/strip.c
+++ b/drivers/net/wireless/strip.c
@@ -1997,7 +1997,6 @@ static void deliver_packet(struct strip *strip_info, STRIP_Header * header,
1997#ifdef EXT_COUNTERS 1997#ifdef EXT_COUNTERS
1998 strip_info->rx_bytes += packetlen; 1998 strip_info->rx_bytes += packetlen;
1999#endif 1999#endif
2000 skb->dev->last_rx = jiffies;
2001 netif_rx(skb); 2000 netif_rx(skb);
2002 } 2001 }
2003} 2002}
@@ -2490,7 +2489,6 @@ static void strip_dev_setup(struct net_device *dev)
2490 */ 2489 */
2491 2490
2492 dev->trans_start = 0; 2491 dev->trans_start = 0;
2493 dev->last_rx = 0;
2494 dev->tx_queue_len = 30; /* Drop after 30 frames queued */ 2492 dev->tx_queue_len = 30; /* Drop after 30 frames queued */
2495 2493
2496 dev->flags = 0; 2494 dev->flags = 0;
diff --git a/drivers/net/wireless/wavelan.c b/drivers/net/wireless/wavelan.c
index 6fa3d792ae2..1ac37e86b9b 100644
--- a/drivers/net/wireless/wavelan.c
+++ b/drivers/net/wireless/wavelan.c
@@ -2528,7 +2528,6 @@ wv_packet_read(struct net_device * dev, u16 buf_off, int sksize)
2528 netif_rx(skb); 2528 netif_rx(skb);
2529 2529
2530 /* Keep statistics up to date */ 2530 /* Keep statistics up to date */
2531 dev->last_rx = jiffies;
2532 lp->stats.rx_packets++; 2531 lp->stats.rx_packets++;
2533 lp->stats.rx_bytes += sksize; 2532 lp->stats.rx_bytes += sksize;
2534 2533
diff --git a/drivers/net/wireless/wavelan_cs.c b/drivers/net/wireless/wavelan_cs.c
index 0a3bacc20d9..de717f8ffd6 100644
--- a/drivers/net/wireless/wavelan_cs.c
+++ b/drivers/net/wireless/wavelan_cs.c
@@ -2878,7 +2878,6 @@ wv_packet_read(struct net_device * dev,
2878 netif_rx(skb); 2878 netif_rx(skb);
2879 2879
2880 /* Keep stats up to date */ 2880 /* Keep stats up to date */
2881 dev->last_rx = jiffies;
2882 lp->stats.rx_packets++; 2881 lp->stats.rx_packets++;
2883 lp->stats.rx_bytes += sksize; 2882 lp->stats.rx_bytes += sksize;
2884 2883
diff --git a/drivers/net/wireless/wl3501_cs.c b/drivers/net/wireless/wl3501_cs.c
index 8b96f50d9c6..c99a1b6b948 100644
--- a/drivers/net/wireless/wl3501_cs.c
+++ b/drivers/net/wireless/wl3501_cs.c
@@ -1013,7 +1013,6 @@ static inline void wl3501_md_ind_interrupt(struct net_device *dev,
1013 wl3501_receive(this, skb->data, pkt_len); 1013 wl3501_receive(this, skb->data, pkt_len);
1014 skb_put(skb, pkt_len); 1014 skb_put(skb, pkt_len);
1015 skb->protocol = eth_type_trans(skb, dev); 1015 skb->protocol = eth_type_trans(skb, dev);
1016 dev->last_rx = jiffies;
1017 this->stats.rx_packets++; 1016 this->stats.rx_packets++;
1018 this->stats.rx_bytes += skb->len; 1017 this->stats.rx_bytes += skb->len;
1019 netif_rx(skb); 1018 netif_rx(skb);
diff --git a/drivers/net/wireless/zd1201.c b/drivers/net/wireless/zd1201.c
index b16ec6e5f0e..bf744c1f5b2 100644
--- a/drivers/net/wireless/zd1201.c
+++ b/drivers/net/wireless/zd1201.c
@@ -328,7 +328,6 @@ static void zd1201_usbrx(struct urb *urb)
328 memcpy(skb_put(skb, 2), &data[datalen-24], 2); 328 memcpy(skb_put(skb, 2), &data[datalen-24], 2);
329 memcpy(skb_put(skb, len), data, len); 329 memcpy(skb_put(skb, len), data, len);
330 skb->protocol = eth_type_trans(skb, zd->dev); 330 skb->protocol = eth_type_trans(skb, zd->dev);
331 skb->dev->last_rx = jiffies;
332 zd->stats.rx_packets++; 331 zd->stats.rx_packets++;
333 zd->stats.rx_bytes += skb->len; 332 zd->stats.rx_bytes += skb->len;
334 netif_rx(skb); 333 netif_rx(skb);
@@ -385,7 +384,6 @@ static void zd1201_usbrx(struct urb *urb)
385 memcpy(skb_put(skb, len), data+8, len); 384 memcpy(skb_put(skb, len), data+8, len);
386 } 385 }
387 skb->protocol = eth_type_trans(skb, zd->dev); 386 skb->protocol = eth_type_trans(skb, zd->dev);
388 skb->dev->last_rx = jiffies;
389 zd->stats.rx_packets++; 387 zd->stats.rx_packets++;
390 zd->stats.rx_bytes += skb->len; 388 zd->stats.rx_bytes += skb->len;
391 netif_rx(skb); 389 netif_rx(skb);
diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c
index c6948d8f53f..4b21bcf4af9 100644
--- a/drivers/net/xen-netfront.c
+++ b/drivers/net/xen-netfront.c
@@ -841,7 +841,6 @@ static int handle_incoming_queue(struct net_device *dev,
841 841
842 /* Pass it up. */ 842 /* Pass it up. */
843 netif_receive_skb(skb); 843 netif_receive_skb(skb);
844 dev->last_rx = jiffies;
845 } 844 }
846 845
847 return packets_dropped; 846 return packets_dropped;
diff --git a/drivers/net/yellowfin.c b/drivers/net/yellowfin.c
index 51106668881..d8dbc57f3e5 100644
--- a/drivers/net/yellowfin.c
+++ b/drivers/net/yellowfin.c
@@ -1138,7 +1138,6 @@ static int yellowfin_rx(struct net_device *dev)
1138 } 1138 }
1139 skb->protocol = eth_type_trans(skb, dev); 1139 skb->protocol = eth_type_trans(skb, dev);
1140 netif_rx(skb); 1140 netif_rx(skb);
1141 dev->last_rx = jiffies;
1142 dev->stats.rx_packets++; 1141 dev->stats.rx_packets++;
1143 dev->stats.rx_bytes += pkt_len; 1142 dev->stats.rx_bytes += pkt_len;
1144 } 1143 }
diff --git a/drivers/net/znet.c b/drivers/net/znet.c
index fc7a8849306..d7588bf6d6d 100644
--- a/drivers/net/znet.c
+++ b/drivers/net/znet.c
@@ -785,7 +785,6 @@ static void znet_rx(struct net_device *dev)
785 } 785 }
786 skb->protocol=eth_type_trans(skb,dev); 786 skb->protocol=eth_type_trans(skb,dev);
787 netif_rx(skb); 787 netif_rx(skb);
788 dev->last_rx = jiffies;
789 dev->stats.rx_packets++; 788 dev->stats.rx_packets++;
790 dev->stats.rx_bytes += pkt_len; 789 dev->stats.rx_bytes += pkt_len;
791 } 790 }