Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wirel...
[safe/jmp/linux-2.6] / drivers / net / atarilance.c
index 5a94c49..5425ab0 100644 (file)
@@ -453,6 +453,16 @@ static noinline int __init addr_accessible(volatile void *regp, int wordflag,
        return( ret );
 }
 
+static const struct net_device_ops lance_netdev_ops = {
+       .ndo_open               = lance_open,
+       .ndo_stop               = lance_close,
+       .ndo_start_xmit         = lance_start_xmit,
+       .ndo_set_multicast_list = set_multicast_list,
+       .ndo_set_mac_address    = lance_set_mac_address,
+       .ndo_tx_timeout         = lance_tx_timeout,
+       .ndo_validate_addr      = eth_validate_addr,
+       .ndo_change_mtu         = eth_change_mtu,
+};
 
 static unsigned long __init lance_probe1( struct net_device *dev,
                                           struct lance_addr *init_rec )
@@ -520,7 +530,7 @@ static unsigned long __init lance_probe1( struct net_device *dev,
        return( 0 );
 
   probe_ok:
-       lp = (struct lance_private *)dev->priv;
+       lp = netdev_priv(dev);
        MEM = (struct lance_memory *)memaddr;
        IO = lp->iobase = (struct lance_ioreg *)ioaddr;
        dev->base_addr = (unsigned long)ioaddr; /* informational only */
@@ -623,15 +633,9 @@ static unsigned long __init lance_probe1( struct net_device *dev,
        if (did_version++ == 0)
                DPRINTK( 1, ( version ));
 
-       /* The LANCE-specific entries in the device structure. */
-       dev->open = &lance_open;
-       dev->hard_start_xmit = &lance_start_xmit;
-       dev->stop = &lance_close;
-       dev->set_multicast_list = &set_multicast_list;
-       dev->set_mac_address = &lance_set_mac_address;
+       dev->netdev_ops = &lance_netdev_ops;
 
        /* XXX MSch */
-       dev->tx_timeout = lance_tx_timeout;
        dev->watchdog_timeo = TX_TIMEOUT;
 
        return( 1 );
@@ -639,8 +643,8 @@ static unsigned long __init lance_probe1( struct net_device *dev,
 
 
 static int lance_open( struct net_device *dev )
-
-{      struct lance_private *lp = (struct lance_private *)dev->priv;
+{
+       struct lance_private *lp = netdev_priv(dev);
        struct lance_ioreg       *IO = lp->iobase;
        int i;
 
@@ -680,8 +684,8 @@ static int lance_open( struct net_device *dev )
 /* Initialize the LANCE Rx and Tx rings. */
 
 static void lance_init_ring( struct net_device *dev )
-
-{      struct lance_private *lp = (struct lance_private *)dev->priv;
+{
+       struct lance_private *lp = netdev_priv(dev);
        int i;
        unsigned offset;
 
@@ -729,7 +733,7 @@ static void lance_init_ring( struct net_device *dev )
 
 static void lance_tx_timeout (struct net_device *dev)
 {
-       struct lance_private *lp = (struct lance_private *) dev->priv;
+       struct lance_private *lp = netdev_priv(dev);
        struct lance_ioreg       *IO = lp->iobase;
 
        AREG = CSR0;
@@ -771,8 +775,8 @@ static void lance_tx_timeout (struct net_device *dev)
 /* XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX */
 
 static int lance_start_xmit( struct sk_buff *skb, struct net_device *dev )
-
-{      struct lance_private *lp = (struct lance_private *)dev->priv;
+{
+       struct lance_private *lp = netdev_priv(dev);
        struct lance_ioreg       *IO = lp->iobase;
        int entry, len;
        struct lance_tx_head *head;
@@ -860,7 +864,7 @@ static irqreturn_t lance_interrupt( int irq, void *dev_id )
                return IRQ_NONE;
        }
 
-       lp = (struct lance_private *)dev->priv;
+       lp = netdev_priv(dev);
        IO = lp->iobase;
        spin_lock (&lp->devlock);
 
@@ -960,8 +964,8 @@ static irqreturn_t lance_interrupt( int irq, void *dev_id )
 
 
 static int lance_rx( struct net_device *dev )
-
-{      struct lance_private *lp = (struct lance_private *)dev->priv;
+{
+       struct lance_private *lp = netdev_priv(dev);
        int entry = lp->cur_rx & RX_RING_MOD_MASK;
        int i;
 
@@ -1030,7 +1034,6 @@ static int lance_rx( struct net_device *dev )
                                lp->memcpy_f( skb->data, PKTBUF_ADDR(head), pkt_len );
                                skb->protocol = eth_type_trans( skb, dev );
                                netif_rx( skb );
-                               dev->last_rx = jiffies;
                                dev->stats.rx_packets++;
                                dev->stats.rx_bytes += pkt_len;
                        }
@@ -1050,8 +1053,8 @@ static int lance_rx( struct net_device *dev )
 
 
 static int lance_close( struct net_device *dev )
-
-{      struct lance_private *lp = (struct lance_private *)dev->priv;
+{
+       struct lance_private *lp = netdev_priv(dev);
        struct lance_ioreg       *IO = lp->iobase;
 
        netif_stop_queue (dev);
@@ -1077,8 +1080,8 @@ static int lance_close( struct net_device *dev )
  */
 
 static void set_multicast_list( struct net_device *dev )
-
-{      struct lance_private *lp = (struct lance_private *)dev->priv;
+{
+       struct lance_private *lp = netdev_priv(dev);
        struct lance_ioreg       *IO = lp->iobase;
 
        if (netif_running(dev))
@@ -1119,8 +1122,8 @@ static void set_multicast_list( struct net_device *dev )
 /* This is needed for old RieblCards and possible for new RieblCards */
 
 static int lance_set_mac_address( struct net_device *dev, void *addr )
-
-{      struct lance_private *lp = (struct lance_private *)dev->priv;
+{
+       struct lance_private *lp = netdev_priv(dev);
        struct sockaddr *saddr = addr;
        int i;