tehuti: Use net_device_stats from struct net_device
authorTobias Klauser <tklauser@distanz.ch>
Wed, 18 Aug 2010 22:11:25 +0000 (22:11 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 20 Aug 2010 00:19:05 +0000 (17:19 -0700)
struct net_device has its own struct net_device_stats member, so use
this one instead of a private copy in the bdx_priv struct.

Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/tehuti.c
drivers/net/tehuti.h

index 737df6032bbc1d4bd9635b78210a52bcfa7efea2..d808f95a87ca8d5f0d5488e21b52d1791ceb3e45 100644 (file)
@@ -927,13 +927,6 @@ static void bdx_update_stats(struct bdx_priv *priv)
        BDX_ASSERT((sizeof(struct bdx_stats) / sizeof(u64)) != i);
 }
 
-static struct net_device_stats *bdx_get_stats(struct net_device *ndev)
-{
-       struct bdx_priv *priv = netdev_priv(ndev);
-       struct net_device_stats *net_stat = &priv->net_stats;
-       return net_stat;
-}
-
 static void print_rxdd(struct rxd_desc *rxdd, u32 rxd_val1, u16 len,
                       u16 rxd_vlan);
 static void print_rxfd(struct rxf_desc *rxfd);
@@ -1220,6 +1213,7 @@ static void bdx_recycle_skb(struct bdx_priv *priv, struct rxd_desc *rxdd)
 
 static int bdx_rx_receive(struct bdx_priv *priv, struct rxd_fifo *f, int budget)
 {
+       struct net_device *ndev = priv->ndev;
        struct sk_buff *skb, *skb2;
        struct rxd_desc *rxdd;
        struct rx_map *dm;
@@ -1273,7 +1267,7 @@ static int bdx_rx_receive(struct bdx_priv *priv, struct rxd_fifo *f, int budget)
 
                if (unlikely(GET_RXD_ERR(rxd_val1))) {
                        DBG("rxd_err = 0x%x\n", GET_RXD_ERR(rxd_val1));
-                       priv->net_stats.rx_errors++;
+                       ndev->stats.rx_errors++;
                        bdx_recycle_skb(priv, rxdd);
                        continue;
                }
@@ -1300,11 +1294,11 @@ static int bdx_rx_receive(struct bdx_priv *priv, struct rxd_fifo *f, int budget)
                        bdx_rxdb_free_elem(db, rxdd->va_lo);
                }
 
-               priv->net_stats.rx_bytes += len;
+               ndev->stats.rx_bytes += len;
 
                skb_put(skb, len);
                skb->ip_summed = CHECKSUM_UNNECESSARY;
-               skb->protocol = eth_type_trans(skb, priv->ndev);
+               skb->protocol = eth_type_trans(skb, ndev);
 
                /* Non-IP packets aren't checksum-offloaded */
                if (GET_RXD_PKT_ID(rxd_val1) == 0)
@@ -1316,7 +1310,7 @@ static int bdx_rx_receive(struct bdx_priv *priv, struct rxd_fifo *f, int budget)
                        break;
        }
 
-       priv->net_stats.rx_packets += done;
+       ndev->stats.rx_packets += done;
 
        /* FIXME: do smth to minimize pci accesses    */
        WRITE_REG(priv, f->m.reg_RPTR, f->m.rptr & TXF_WPTR_WR_PTR);
@@ -1712,8 +1706,8 @@ static netdev_tx_t bdx_tx_transmit(struct sk_buff *skb,
 #ifdef BDX_LLTX
        ndev->trans_start = jiffies; /* NETIF_F_LLTX driver :( */
 #endif
-       priv->net_stats.tx_packets++;
-       priv->net_stats.tx_bytes += skb->len;
+       ndev->stats.tx_packets++;
+       ndev->stats.tx_bytes += skb->len;
 
        if (priv->tx_level < BDX_MIN_TX_LEVEL) {
                DBG("%s: %s: TX Q STOP level %d\n",
@@ -1888,7 +1882,6 @@ static const struct net_device_ops bdx_netdev_ops = {
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_do_ioctl           = bdx_ioctl,
        .ndo_set_multicast_list = bdx_setmulti,
-       .ndo_get_stats          = bdx_get_stats,
        .ndo_change_mtu         = bdx_change_mtu,
        .ndo_set_mac_address    = bdx_set_mac,
        .ndo_vlan_rx_register   = bdx_vlan_rx_register,
index 67e3b71bf7059de90cb861cc2f23e8d6ff252020..b6ba8601e2b538b70e892273a23107ca04192cc5 100644 (file)
@@ -269,7 +269,6 @@ struct bdx_priv {
        u32 msg_enable;
        int stats_flag;
        struct bdx_stats hw_stats;
-       struct net_device_stats net_stats;
        struct pci_dev *pdev;
 
        struct pci_nic *nic;