Merge branches 'msm-fixes' and 'msm-video' of git://codeaurora.org/quic/kernel/dwalke...
[pandora-kernel.git] / drivers / net / tehuti.c
index 737df60..8b3dc1e 100644 (file)
@@ -92,7 +92,7 @@ static void bdx_rx_free(struct bdx_priv *priv);
 static void bdx_tx_free(struct bdx_priv *priv);
 
 /* Definitions needed by bdx_probe */
-static void bdx_ethtool_ops(struct net_device *netdev);
+static void bdx_set_ethtool_ops(struct net_device *netdev);
 
 /*************************************************************************
  *    Print Info                                                         *
@@ -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,15 +1294,16 @@ 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)
-                       skb->ip_summed = CHECKSUM_NONE;
+                       skb_checksum_none_assert(skb);
+               else
+                       skb->ip_summed = CHECKSUM_UNNECESSARY;
 
                NETIF_RX_MUX(priv, rxd_val1, rxd_vlan, skb);
 
@@ -1316,7 +1311,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 +1707,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 +1883,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,
@@ -2012,7 +2006,7 @@ bdx_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
                ndev->netdev_ops = &bdx_netdev_ops;
                ndev->tx_queue_len = BDX_NDEV_TXQ_LEN;
 
-               bdx_ethtool_ops(ndev);  /* ethtool interface */
+               bdx_set_ethtool_ops(ndev);      /* ethtool interface */
 
                /* these fields are used for info purposes only
                 * so we can have them same for all ports of the board */
@@ -2417,10 +2411,10 @@ static void bdx_get_ethtool_stats(struct net_device *netdev,
 }
 
 /*
- * bdx_ethtool_ops - ethtool interface implementation
+ * bdx_set_ethtool_ops - ethtool interface implementation
  * @netdev
  */
-static void bdx_ethtool_ops(struct net_device *netdev)
+static void bdx_set_ethtool_ops(struct net_device *netdev)
 {
        static const struct ethtool_ops bdx_ethtool_ops = {
                .get_settings = bdx_get_settings,