]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/net/ibmveth.c
drivers/net/wan: Add missing "space"
[linux-2.6-omap-h63xx.git] / drivers / net / ibmveth.c
index db908c40dbe1353753cdbb90592f1bfc89f1b558..57772bebff56336cb50c3bde81c0823d13210787 100644 (file)
@@ -87,7 +87,6 @@ static int ibmveth_close(struct net_device *dev);
 static int ibmveth_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd);
 static int ibmveth_poll(struct napi_struct *napi, int budget);
 static int ibmveth_start_xmit(struct sk_buff *skb, struct net_device *dev);
-static struct net_device_stats *ibmveth_get_stats(struct net_device *dev);
 static void ibmveth_set_multicast_list(struct net_device *dev);
 static int ibmveth_change_mtu(struct net_device *dev, int new_mtu);
 static void ibmveth_proc_register_driver(void);
@@ -803,9 +802,14 @@ static void ibmveth_get_strings(struct net_device *dev, u32 stringset, u8 *data)
                memcpy(data, ibmveth_stats[i].name, ETH_GSTRING_LEN);
 }
 
-static int ibmveth_get_stats_count(struct net_device *dev)
+static int ibmveth_get_sset_count(struct net_device *dev, int sset)
 {
-       return ARRAY_SIZE(ibmveth_stats);
+       switch (sset) {
+       case ETH_SS_STATS:
+               return ARRAY_SIZE(ibmveth_stats);
+       default:
+               return -EOPNOTSUPP;
+       }
 }
 
 static void ibmveth_get_ethtool_stats(struct net_device *dev,
@@ -822,15 +826,11 @@ static const struct ethtool_ops netdev_ethtool_ops = {
        .get_drvinfo            = netdev_get_drvinfo,
        .get_settings           = netdev_get_settings,
        .get_link               = netdev_get_link,
-       .get_sg                 = ethtool_op_get_sg,
-       .get_tx_csum            = ethtool_op_get_tx_csum,
        .set_tx_csum            = ibmveth_set_tx_csum,
        .get_rx_csum            = ibmveth_get_rx_csum,
        .set_rx_csum            = ibmveth_set_rx_csum,
-       .get_tso                        = ethtool_op_get_tso,
-       .get_ufo                        = ethtool_op_get_ufo,
        .get_strings            = ibmveth_get_strings,
-       .get_stats_count                = ibmveth_get_stats_count,
+       .get_sset_count         = ibmveth_get_sset_count,
        .get_ethtool_stats      = ibmveth_get_ethtool_stats,
 };
 
@@ -909,9 +909,9 @@ static int ibmveth_start_xmit(struct sk_buff *skb, struct net_device *netdev)
                         skb->len, DMA_TO_DEVICE);
 
 out:   spin_lock_irqsave(&adapter->stats_lock, flags);
-       adapter->stats.tx_dropped += tx_dropped;
-       adapter->stats.tx_bytes += tx_bytes;
-       adapter->stats.tx_packets += tx_packets;
+       netdev->stats.tx_dropped += tx_dropped;
+       netdev->stats.tx_bytes += tx_bytes;
+       netdev->stats.tx_packets += tx_packets;
        adapter->tx_send_failed += tx_send_failed;
        adapter->tx_map_failed += tx_map_failed;
        spin_unlock_irqrestore(&adapter->stats_lock, flags);
@@ -957,8 +957,8 @@ static int ibmveth_poll(struct napi_struct *napi, int budget)
 
                        netif_receive_skb(skb); /* send it up */
 
-                       adapter->stats.rx_packets++;
-                       adapter->stats.rx_bytes += length;
+                       netdev->stats.rx_packets++;
+                       netdev->stats.rx_bytes += length;
                        frames_processed++;
                        netdev->last_rx = jiffies;
                }
@@ -1003,12 +1003,6 @@ static irqreturn_t ibmveth_interrupt(int irq, void *dev_instance)
        return IRQ_HANDLED;
 }
 
-static struct net_device_stats *ibmveth_get_stats(struct net_device *dev)
-{
-       struct ibmveth_adapter *adapter = dev->priv;
-       return &adapter->stats;
-}
-
 static void ibmveth_set_multicast_list(struct net_device *netdev)
 {
        struct ibmveth_adapter *adapter = netdev->priv;
@@ -1170,7 +1164,6 @@ static int __devinit ibmveth_probe(struct vio_dev *dev, const struct vio_device_
        netdev->open               = ibmveth_open;
        netdev->stop               = ibmveth_close;
        netdev->hard_start_xmit    = ibmveth_start_xmit;
-       netdev->get_stats          = ibmveth_get_stats;
        netdev->set_multicast_list = ibmveth_set_multicast_list;
        netdev->do_ioctl           = ibmveth_ioctl;
        netdev->ethtool_ops           = &netdev_ethtool_ops;
@@ -1186,13 +1179,15 @@ static int __devinit ibmveth_probe(struct vio_dev *dev, const struct vio_device_
 
        for(i = 0; i<IbmVethNumBufferPools; i++) {
                struct kobject *kobj = &adapter->rx_buff_pool[i].kobj;
+               int error;
+
                ibmveth_init_buffer_pool(&adapter->rx_buff_pool[i], i,
                                         pool_count[i], pool_size[i],
                                         pool_active[i]);
-               kobj->parent = &dev->dev.kobj;
-               sprintf(kobj->name, "pool%d", i);
-               kobj->ktype = &ktype_veth_pool;
-               kobject_register(kobj);
+               error = kobject_init_and_add(kobj, &ktype_veth_pool,
+                                            &dev->dev.kobj, "pool%d", i);
+               if (!error)
+                       kobject_uevent(kobj, KOBJ_ADD);
        }
 
        ibmveth_debug_printk("adapter @ 0x%p\n", adapter);
@@ -1241,7 +1236,7 @@ static int __devexit ibmveth_remove(struct vio_dev *dev)
        int i;
 
        for(i = 0; i<IbmVethNumBufferPools; i++)
-               kobject_unregister(&adapter->rx_buff_pool[i].kobj);
+               kobject_put(&adapter->rx_buff_pool[i].kobj);
 
        unregister_netdev(netdev);
 
@@ -1288,16 +1283,13 @@ static int ibmveth_seq_show(struct seq_file *seq, void *v)
        struct ibmveth_adapter *adapter = seq->private;
        char *current_mac = ((char*) &adapter->netdev->dev_addr);
        char *firmware_mac = ((char*) &adapter->mac_addr) ;
+       DECLARE_MAC_BUF(mac);
 
        seq_printf(seq, "%s %s\n\n", ibmveth_driver_string, ibmveth_driver_version);
 
        seq_printf(seq, "Unit Address:    0x%x\n", adapter->vdev->unit_address);
-       seq_printf(seq, "Current MAC:     %02X:%02X:%02X:%02X:%02X:%02X\n",
-                  current_mac[0], current_mac[1], current_mac[2],
-                  current_mac[3], current_mac[4], current_mac[5]);
-       seq_printf(seq, "Firmware MAC:    %02X:%02X:%02X:%02X:%02X:%02X\n",
-                  firmware_mac[0], firmware_mac[1], firmware_mac[2],
-                  firmware_mac[3], firmware_mac[4], firmware_mac[5]);
+       seq_printf(seq, "Current MAC:     %s\n", print_mac(mac, current_mac));
+       seq_printf(seq, "Firmware MAC:    %s\n", print_mac(mac, firmware_mac));
 
        seq_printf(seq, "\nAdapter Statistics:\n");
        seq_printf(seq, "  TX:  vio_map_single failres:      %ld\n", adapter->tx_map_failed);