]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - drivers/net/vxge/vxge-main.c
Merge branch 'for-rmk' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux...
[net-next-2.6.git] / drivers / net / vxge / vxge-main.c
index c7c5605b3728384069e0e3aa187a30b0e85bd512..a69542ecb68de8592e7f9791d4c627104caba046 100644 (file)
@@ -501,7 +501,7 @@ vxge_rx_1b_compl(struct __vxge_hw_ring *ringh, void *dtr,
                    ext_info.l4_cksum == VXGE_HW_L4_CKSUM_OK)
                        skb->ip_summed = CHECKSUM_UNNECESSARY;
                else
-                       skb->ip_summed = CHECKSUM_NONE;
+                       skb_checksum_none_assert(skb);
 
                vxge_rx_complete(ring, skb, ext_info.vlan,
                        pkt_length, &ext_info);
@@ -822,7 +822,7 @@ vxge_xmit(struct sk_buff *skb, struct net_device *dev)
                dev->name, __func__, __LINE__,
                fifo_hw, dtr, dtr_priv);
 
-       if (vdev->vlgrp && vlan_tx_tag_present(skb)) {
+       if (vlan_tx_tag_present(skb)) {
                u16 vlan_tag = vlan_tx_tag_get(skb);
                vxge_hw_fifo_txdl_vlan_set(dtr, vlan_tag);
        }
@@ -1862,7 +1862,7 @@ enum vxge_hw_status vxge_restore_vpath_vid_table(struct vxge_vpath *vpath)
 
        if (vdev->vlgrp && vpath->is_open) {
 
-               for (vid = 0; vid < VLAN_GROUP_ARRAY_LEN; vid++) {
+               for (vid = 0; vid < VLAN_N_VID; vid++) {
                        if (!vlan_group_get_device(vdev->vlgrp, vid))
                                continue;
                        /* Add these vlan to the vid table */
@@ -2159,8 +2159,8 @@ start:
        /* Alarm MSIX Vectors count */
        vdev->intr_cnt++;
 
-       vdev->entries = kzalloc(vdev->intr_cnt * sizeof(struct msix_entry),
-                                               GFP_KERNEL);
+       vdev->entries = kcalloc(vdev->intr_cnt, sizeof(struct msix_entry),
+                               GFP_KERNEL);
        if (!vdev->entries) {
                vxge_debug_init(VXGE_ERR,
                        "%s: memory allocation failed",
@@ -2169,9 +2169,9 @@ start:
                goto alloc_entries_failed;
        }
 
-       vdev->vxge_entries =
-               kzalloc(vdev->intr_cnt * sizeof(struct vxge_msix_entry),
-                               GFP_KERNEL);
+       vdev->vxge_entries = kcalloc(vdev->intr_cnt,
+                                    sizeof(struct vxge_msix_entry),
+                                    GFP_KERNEL);
        if (!vdev->vxge_entries) {
                vxge_debug_init(VXGE_ERR, "%s: memory allocation failed",
                        VXGE_DRIVER_NAME);
@@ -2914,26 +2914,18 @@ static int vxge_change_mtu(struct net_device *dev, int new_mtu)
 }
 
 /**
- * vxge_get_stats
+ * vxge_get_stats64
  * @dev: pointer to the device structure
+ * @stats: pointer to struct rtnl_link_stats64
  *
- * Updates the device statistics structure. This function updates the device
- * statistics structure in the net_device structure and returns a pointer
- * to the same.
  */
-static struct net_device_stats *
-vxge_get_stats(struct net_device *dev)
+static struct rtnl_link_stats64 *
+vxge_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *net_stats)
 {
-       struct vxgedev *vdev;
-       struct net_device_stats *net_stats;
+       struct vxgedev *vdev = netdev_priv(dev);
        int k;
 
-       vdev = netdev_priv(dev);
-
-       net_stats = &vdev->stats.net_stats;
-
-       memset(net_stats, 0, sizeof(struct net_device_stats));
-
+       /* net_stats already zeroed by caller */
        for (k = 0; k < vdev->no_of_vpath; k++) {
                net_stats->rx_packets += vdev->vpaths[k].ring.stats.rx_frms;
                net_stats->rx_bytes += vdev->vpaths[k].ring.stats.rx_bytes;
@@ -3102,7 +3094,7 @@ vxge_vlan_rx_kill_vid(struct net_device *dev, unsigned short vid)
 static const struct net_device_ops vxge_netdev_ops = {
        .ndo_open               = vxge_open,
        .ndo_stop               = vxge_close,
-       .ndo_get_stats          = vxge_get_stats,
+       .ndo_get_stats64        = vxge_get_stats64,
        .ndo_start_xmit         = vxge_xmit,
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_set_multicast_list = vxge_set_multicast,