pci_unregister_driver (&via_driver); 
 }
 
+static const struct net_device_ops via_ircc_sir_ops = {
+       .ndo_start_xmit = via_ircc_hard_xmit_sir,
+       .ndo_open = via_ircc_net_open,
+       .ndo_stop = via_ircc_net_close,
+       .ndo_do_ioctl = via_ircc_net_ioctl,
+};
+static const struct net_device_ops via_ircc_fir_ops = {
+       .ndo_start_xmit = via_ircc_hard_xmit_fir,
+       .ndo_open = via_ircc_net_open,
+       .ndo_stop = via_ircc_net_close,
+       .ndo_do_ioctl = via_ircc_net_ioctl,
+};
+
 /*
  * Function via_ircc_open (iobase, irq)
  *
        self->tx_fifo.tail = self->tx_buff.head;
 
        /* Override the network functions we need to use */
-       dev->hard_start_xmit = via_ircc_hard_xmit_sir;
-       dev->open = via_ircc_net_open;
-       dev->stop = via_ircc_net_close;
-       dev->do_ioctl = via_ircc_net_ioctl;
+       dev->netdev_ops = &via_ircc_sir_ops;
 
        err = register_netdev(dev);
        if (err)
 
        if (speed > 115200) {
                /* Install FIR xmit handler */
-               dev->hard_start_xmit = via_ircc_hard_xmit_fir;
+               dev->netdev_ops = &via_ircc_fir_ops;
                via_ircc_dma_receive(self);
        } else {
                /* Install SIR xmit handler */
-               dev->hard_start_xmit = via_ircc_hard_xmit_sir;
+               dev->netdev_ops = &via_ircc_sir_ops;
        }
        netif_wake_queue(dev);
 }