Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6
[safe/jmp/linux-2.6] / drivers / net / znet.c
index fc7a884..0a6992d 100644 (file)
@@ -167,7 +167,7 @@ static void znet_tx_timeout (struct net_device *dev);
 /* Request needed resources */
 static int znet_request_resources (struct net_device *dev)
 {
-       struct znet_private *znet = dev->priv;
+       struct znet_private *znet = netdev_priv(dev);
        unsigned long flags;
 
        if (request_irq (dev->irq, &znet_interrupt, 0, "ZNet", dev))
@@ -201,7 +201,7 @@ static int znet_request_resources (struct net_device *dev)
 
 static void znet_release_resources (struct net_device *dev)
 {
-       struct znet_private *znet = dev->priv;
+       struct znet_private *znet = netdev_priv(dev);
        unsigned long flags;
 
        release_region (znet->sia_base, znet->sia_size);
@@ -216,7 +216,7 @@ static void znet_release_resources (struct net_device *dev)
 /* Keep the magical SIA stuff in a single function... */
 static void znet_transceiver_power (struct net_device *dev, int on)
 {
-       struct znet_private *znet = dev->priv;
+       struct znet_private *znet = netdev_priv(dev);
        unsigned char v;
 
        /* Turn on/off the 82501 SIA, using zenith-specific magic. */
@@ -235,7 +235,7 @@ static void znet_transceiver_power (struct net_device *dev, int on)
    Also used from hardware_init. */
 static void znet_set_multicast_list (struct net_device *dev)
 {
-       struct znet_private *znet = dev->priv;
+       struct znet_private *znet = netdev_priv(dev);
        short ioaddr = dev->base_addr;
        struct i82593_conf_block *cfblk = &znet->i593_init;
 
@@ -358,6 +358,17 @@ static void znet_set_multicast_list (struct net_device *dev)
         * multicast address configured isn't equal to IFF_ALLMULTI */
 }
 
+static const struct net_device_ops znet_netdev_ops = {
+       .ndo_open               = znet_open,
+       .ndo_stop               = znet_close,
+       .ndo_start_xmit         = znet_send_packet,
+       .ndo_set_multicast_list = znet_set_multicast_list,
+       .ndo_tx_timeout         = znet_tx_timeout,
+       .ndo_change_mtu         = eth_change_mtu,
+       .ndo_set_mac_address    = eth_mac_addr,
+       .ndo_validate_addr      = eth_validate_addr,
+};
+
 /* The Z-Note probe is pretty easy.  The NETIDBLK exists in the safe-to-probe
    BIOS area.  We just scan for the signature, and pull the vital parameters
    out of the structure. */
@@ -386,7 +397,7 @@ static int __init znet_probe (void)
        if (!dev)
                return -ENOMEM;
 
-       znet = dev->priv;
+       znet = netdev_priv(dev);
 
        netinfo = (struct netidblk *)p;
        dev->base_addr = netinfo->iobase1;
@@ -440,11 +451,7 @@ static int __init znet_probe (void)
        znet->tx_end = znet->tx_start + znet->tx_buf_len;
 
        /* The ZNET-specific entries in the device structure. */
-       dev->open = &znet_open;
-       dev->hard_start_xmit = &znet_send_packet;
-       dev->stop = &znet_close;
-       dev->set_multicast_list = &znet_set_multicast_list;
-       dev->tx_timeout = znet_tx_timeout;
+       dev->netdev_ops = &znet_netdev_ops;
        dev->watchdog_timeo = TX_TIMEOUT;
        err = register_netdev(dev);
        if (err)
@@ -530,7 +537,7 @@ static void znet_tx_timeout (struct net_device *dev)
 static int znet_send_packet(struct sk_buff *skb, struct net_device *dev)
 {
        int ioaddr = dev->base_addr;
-       struct znet_private *znet = dev->priv;
+       struct znet_private *znet = netdev_priv(dev);
        unsigned long flags;
        short length = skb->len;
 
@@ -600,7 +607,7 @@ static int znet_send_packet(struct sk_buff *skb, struct net_device *dev)
 static irqreturn_t znet_interrupt(int irq, void *dev_id)
 {
        struct net_device *dev = dev_id;
-       struct znet_private *znet = dev->priv;
+       struct znet_private *znet = netdev_priv(dev);
        int ioaddr;
        int boguscnt = 20;
        int handled = 0;
@@ -678,7 +685,7 @@ static irqreturn_t znet_interrupt(int irq, void *dev_id)
 
 static void znet_rx(struct net_device *dev)
 {
-       struct znet_private *znet = dev->priv;
+       struct znet_private *znet = netdev_priv(dev);
        int ioaddr = dev->base_addr;
        int boguscount = 1;
        short next_frame_end_offset = 0;                /* Offset of next frame start. */
@@ -785,7 +792,6 @@ static void znet_rx(struct net_device *dev)
                  }
                  skb->protocol=eth_type_trans(skb,dev);
                  netif_rx(skb);
-                 dev->last_rx = jiffies;
                  dev->stats.rx_packets++;
                  dev->stats.rx_bytes += pkt_len;
                }
@@ -828,7 +834,7 @@ static void show_dma(struct net_device *dev)
 {
        short ioaddr = dev->base_addr;
        unsigned char stat = inb (ioaddr);
-       struct znet_private *znet = dev->priv;
+       struct znet_private *znet = netdev_priv(dev);
        unsigned long flags;
        short dma_port = ((znet->tx_dma&3)<<2) + IO_DMA2_BASE;
        unsigned addr = inb(dma_port);
@@ -851,7 +857,7 @@ static void hardware_init(struct net_device *dev)
 {
        unsigned long flags;
        short ioaddr = dev->base_addr;
-       struct znet_private *znet = dev->priv;
+       struct znet_private *znet = netdev_priv(dev);
 
        znet->rx_cur = znet->rx_start;
        znet->tx_cur = znet->tx_start;
@@ -913,7 +919,7 @@ static void update_stop_hit(short ioaddr, unsigned short rx_stop_offset)
 static __exit void znet_cleanup (void)
 {
        if (znet_dev) {
-               struct znet_private *znet = znet_dev->priv;
+               struct znet_private *znet = netdev_priv(znet_dev);
 
                unregister_netdev (znet_dev);
                kfree (znet->rx_start);