return 0;
 }
 
-
+static const struct net_device_ops arlan_netdev_ops = {
+       .ndo_open               = arlan_open,
+       .ndo_stop               = arlan_close,
+       .ndo_start_xmit         = arlan_tx,
+       .ndo_get_stats          = arlan_statistics,
+       .ndo_set_multicast_list = arlan_set_multicast,
+       .ndo_change_mtu         = arlan_change_mtu,
+       .ndo_set_mac_address    = arlan_mac_addr,
+       .ndo_tx_timeout         = arlan_tx_timeout,
+       .ndo_validate_addr      = eth_validate_addr,
+};
 
 static int __init arlan_setup_device(struct net_device *dev, int num)
 {
        ap->conf = (struct arlan_shmem *)(ap+1);
 
        dev->tx_queue_len = tx_queue_len;
-       dev->open = arlan_open;
-       dev->stop = arlan_close;
-       dev->hard_start_xmit = arlan_tx;
-       dev->get_stats = arlan_statistics;
-       dev->set_multicast_list = arlan_set_multicast;
-       dev->change_mtu = arlan_change_mtu;
-       dev->set_mac_address = arlan_mac_addr;
-       dev->tx_timeout = arlan_tx_timeout;
+       dev->netdev_ops = &arlan_netdev_ops;
        dev->watchdog_timeo = 3*HZ;
        
        ap->irq_test_done = 0;