fsl_pq_mdio: Fix iomem unmapping for non-eTSEC2.0 controllers
[safe/jmp/linux-2.6] / drivers / net / ibmlana.c
index 5b5bf9f..052c740 100644 (file)
@@ -87,6 +87,7 @@ History:
 #include <linux/module.h>
 #include <linux/netdevice.h>
 #include <linux/etherdevice.h>
+#include <linux/if_ether.h>
 #include <linux/skbuff.h>
 #include <linux/bitops.h>
 
@@ -812,10 +813,10 @@ static int ibmlana_close(struct net_device *dev)
 
 /* transmit a block. */
 
-static int ibmlana_tx(struct sk_buff *skb, struct net_device *dev)
+static netdev_tx_t ibmlana_tx(struct sk_buff *skb, struct net_device *dev)
 {
        ibmlana_priv *priv = netdev_priv(dev);
-       int retval = 0, tmplen, addr;
+       int tmplen, addr;
        unsigned long flags;
        tda_t tda;
        int baddr;
@@ -824,7 +825,6 @@ static int ibmlana_tx(struct sk_buff *skb, struct net_device *dev)
           the upper layer is in deep desperation and we simply ignore the frame. */
 
        if (priv->txusedcnt >= TXBUFCNT) {
-               retval = -EIO;
                dev->stats.tx_dropped++;
                goto tx_done;
        }
@@ -874,7 +874,7 @@ static int ibmlana_tx(struct sk_buff *skb, struct net_device *dev)
        spin_unlock_irqrestore(&priv->lock, flags);
 tx_done:
        dev_kfree_skb(skb);
-       return retval;
+       return NETDEV_TX_OK;
 }
 
 /* switch receiver mode. */
@@ -905,6 +905,17 @@ static char *ibmlana_adapter_names[] __devinitdata = {
        NULL
 };
 
+
+static const struct net_device_ops ibmlana_netdev_ops = {
+       .ndo_open               = ibmlana_open,
+       .ndo_stop               = ibmlana_close,
+       .ndo_start_xmit         = ibmlana_tx,
+       .ndo_set_multicast_list = ibmlana_set_multicast_list,
+       .ndo_change_mtu         = eth_change_mtu,
+       .ndo_set_mac_address    = eth_mac_addr,
+       .ndo_validate_addr      = eth_validate_addr,
+};
+
 static int __devinit ibmlana_init_one(struct device *kdev)
 {
        struct mca_device *mdev = to_mca_device(kdev);
@@ -973,16 +984,12 @@ static int __devinit ibmlana_init_one(struct device *kdev)
        mca_device_set_claim(mdev, 1);
 
        /* set methods */
-
-       dev->open = ibmlana_open;
-       dev->stop = ibmlana_close;
-       dev->hard_start_xmit = ibmlana_tx;
-       dev->set_multicast_list = ibmlana_set_multicast_list;
+       dev->netdev_ops = &ibmlana_netdev_ops;
        dev->flags |= IFF_MULTICAST;
 
        /* copy out MAC address */
 
-       for (z = 0; z < sizeof(dev->dev_addr); z++)
+       for (z = 0; z < ETH_ALEN; z++)
                dev->dev_addr[z] = inb(dev->base_addr + MACADDRPROM + z);
 
        /* print config */