aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/sky2.c
diff options
context:
space:
mode:
authorStephen Hemminger <shemminger@linux-foundation.org>2007-10-11 22:48:22 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2007-10-12 01:17:19 -0400
commit7138a0f591b0aac3b9117e68db46903606a97b0c (patch)
tree0a43923c7cba19c0a59599001051b76ffe383bf4 /drivers/net/sky2.c
parentdf3fe1f318b226453b8dc48622c2b6eb78d75dbb (diff)
[SKY2]: use netdevice stats struct
Use builtin statistics structure from net device. Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/sky2.c')
-rw-r--r--drivers/net/sky2.c33
1 files changed, 13 insertions, 20 deletions
diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c
index 55cda58bf59f..93655efae50b 100644
--- a/drivers/net/sky2.c
+++ b/drivers/net/sky2.c
@@ -1635,8 +1635,8 @@ static void sky2_tx_complete(struct sky2_port *sky2, u16 done)
1635 printk(KERN_DEBUG "%s: tx done %u\n", 1635 printk(KERN_DEBUG "%s: tx done %u\n",
1636 dev->name, idx); 1636 dev->name, idx);
1637 1637
1638 sky2->net_stats.tx_packets++; 1638 dev->stats.tx_packets++;
1639 sky2->net_stats.tx_bytes += re->skb->len; 1639 dev->stats.tx_bytes += re->skb->len;
1640 1640
1641 dev_kfree_skb_any(re->skb); 1641 dev_kfree_skb_any(re->skb);
1642 sky2->tx_next = RING_NEXT(idx, TX_RING_SIZE); 1642 sky2->tx_next = RING_NEXT(idx, TX_RING_SIZE);
@@ -2204,16 +2204,16 @@ resubmit:
2204len_error: 2204len_error:
2205 /* Truncation of overlength packets 2205 /* Truncation of overlength packets
2206 causes PHY length to not match MAC length */ 2206 causes PHY length to not match MAC length */
2207 ++sky2->net_stats.rx_length_errors; 2207 ++dev->stats.rx_length_errors;
2208 if (netif_msg_rx_err(sky2) && net_ratelimit()) 2208 if (netif_msg_rx_err(sky2) && net_ratelimit())
2209 pr_info(PFX "%s: rx length error: status %#x length %d\n", 2209 pr_info(PFX "%s: rx length error: status %#x length %d\n",
2210 dev->name, status, length); 2210 dev->name, status, length);
2211 goto resubmit; 2211 goto resubmit;
2212 2212
2213error: 2213error:
2214 ++sky2->net_stats.rx_errors; 2214 ++dev->stats.rx_errors;
2215 if (status & GMR_FS_RX_FF_OV) { 2215 if (status & GMR_FS_RX_FF_OV) {
2216 sky2->net_stats.rx_over_errors++; 2216 dev->stats.rx_over_errors++;
2217 goto resubmit; 2217 goto resubmit;
2218 } 2218 }
2219 2219
@@ -2222,11 +2222,11 @@ error:
2222 dev->name, status, length); 2222 dev->name, status, length);
2223 2223
2224 if (status & (GMR_FS_LONG_ERR | GMR_FS_UN_SIZE)) 2224 if (status & (GMR_FS_LONG_ERR | GMR_FS_UN_SIZE))
2225 sky2->net_stats.rx_length_errors++; 2225 dev->stats.rx_length_errors++;
2226 if (status & GMR_FS_FRAGMENT) 2226 if (status & GMR_FS_FRAGMENT)
2227 sky2->net_stats.rx_frame_errors++; 2227 dev->stats.rx_frame_errors++;
2228 if (status & GMR_FS_CRC_ERR) 2228 if (status & GMR_FS_CRC_ERR)
2229 sky2->net_stats.rx_crc_errors++; 2229 dev->stats.rx_crc_errors++;
2230 2230
2231 goto resubmit; 2231 goto resubmit;
2232} 2232}
@@ -2271,7 +2271,7 @@ static int sky2_status_intr(struct sky2_hw *hw, int to_do, u16 idx)
2271 ++rx[port]; 2271 ++rx[port];
2272 skb = sky2_receive(dev, length, status); 2272 skb = sky2_receive(dev, length, status);
2273 if (unlikely(!skb)) { 2273 if (unlikely(!skb)) {
2274 sky2->net_stats.rx_dropped++; 2274 dev->stats.rx_dropped++;
2275 break; 2275 break;
2276 } 2276 }
2277 2277
@@ -2286,8 +2286,8 @@ static int sky2_status_intr(struct sky2_hw *hw, int to_do, u16 idx)
2286 } 2286 }
2287 2287
2288 skb->protocol = eth_type_trans(skb, dev); 2288 skb->protocol = eth_type_trans(skb, dev);
2289 sky2->net_stats.rx_packets++; 2289 dev->stats.rx_packets++;
2290 sky2->net_stats.rx_bytes += skb->len; 2290 dev->stats.rx_bytes += skb->len;
2291 dev->last_rx = jiffies; 2291 dev->last_rx = jiffies;
2292 2292
2293#ifdef SKY2_VLAN_TAG_USED 2293#ifdef SKY2_VLAN_TAG_USED
@@ -2478,12 +2478,12 @@ static void sky2_mac_intr(struct sky2_hw *hw, unsigned port)
2478 gma_read16(hw, port, GM_TX_IRQ_SRC); 2478 gma_read16(hw, port, GM_TX_IRQ_SRC);
2479 2479
2480 if (status & GM_IS_RX_FF_OR) { 2480 if (status & GM_IS_RX_FF_OR) {
2481 ++sky2->net_stats.rx_fifo_errors; 2481 ++dev->stats.rx_fifo_errors;
2482 sky2_write8(hw, SK_REG(port, RX_GMF_CTRL_T), GMF_CLI_RX_FO); 2482 sky2_write8(hw, SK_REG(port, RX_GMF_CTRL_T), GMF_CLI_RX_FO);
2483 } 2483 }
2484 2484
2485 if (status & GM_IS_TX_FF_UR) { 2485 if (status & GM_IS_TX_FF_UR) {
2486 ++sky2->net_stats.tx_fifo_errors; 2486 ++dev->stats.tx_fifo_errors;
2487 sky2_write8(hw, SK_REG(port, TX_GMF_CTRL_T), GMF_CLI_TX_FU); 2487 sky2_write8(hw, SK_REG(port, TX_GMF_CTRL_T), GMF_CLI_TX_FU);
2488 } 2488 }
2489} 2489}
@@ -3222,12 +3222,6 @@ static void sky2_get_strings(struct net_device *dev, u32 stringset, u8 * data)
3222 } 3222 }
3223} 3223}
3224 3224
3225static struct net_device_stats *sky2_get_stats(struct net_device *dev)
3226{
3227 struct sky2_port *sky2 = netdev_priv(dev);
3228 return &sky2->net_stats;
3229}
3230
3231static int sky2_set_mac_address(struct net_device *dev, void *p) 3225static int sky2_set_mac_address(struct net_device *dev, void *p)
3232{ 3226{
3233 struct sky2_port *sky2 = netdev_priv(dev); 3227 struct sky2_port *sky2 = netdev_priv(dev);
@@ -3977,7 +3971,6 @@ static __devinit struct net_device *sky2_init_netdev(struct sky2_hw *hw,
3977 dev->stop = sky2_down; 3971 dev->stop = sky2_down;
3978 dev->do_ioctl = sky2_ioctl; 3972 dev->do_ioctl = sky2_ioctl;
3979 dev->hard_start_xmit = sky2_xmit_frame; 3973 dev->hard_start_xmit = sky2_xmit_frame;
3980 dev->get_stats = sky2_get_stats;
3981 dev->set_multicast_list = sky2_set_multicast; 3974 dev->set_multicast_list = sky2_set_multicast;
3982 dev->set_mac_address = sky2_set_mac_address; 3975 dev->set_mac_address = sky2_set_mac_address;
3983 dev->change_mtu = sky2_change_mtu; 3976 dev->change_mtu = sky2_change_mtu;