dummy: Add ndo_uninit().
[pandora-kernel.git] / drivers / net / dummy.c
index 087648e..442d91a 100644 (file)
@@ -47,6 +47,7 @@ static int dummy_set_address(struct net_device *dev, void *p)
        if (!is_valid_ether_addr(sa->sa_data))
                return -EADDRNOTAVAIL;
 
+       dev->addr_assign_type &= ~NET_ADDR_RANDOM;
        memcpy(dev->dev_addr, sa->sa_data, ETH_ALEN);
        return 0;
 }
@@ -106,14 +107,14 @@ static int dummy_dev_init(struct net_device *dev)
        return 0;
 }
 
-static void dummy_dev_free(struct net_device *dev)
+static void dummy_dev_uninit(struct net_device *dev)
 {
        free_percpu(dev->dstats);
-       free_netdev(dev);
 }
 
 static const struct net_device_ops dummy_netdev_ops = {
        .ndo_init               = dummy_dev_init,
+       .ndo_uninit             = dummy_dev_uninit,
        .ndo_start_xmit         = dummy_xmit,
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_set_rx_mode        = set_multicast_list,
@@ -127,7 +128,7 @@ static void dummy_setup(struct net_device *dev)
 
        /* Initialize the device structure. */
        dev->netdev_ops = &dummy_netdev_ops;
-       dev->destructor = dummy_dev_free;
+       dev->destructor = free_netdev;
 
        /* Fill in device structure with ethernet-generic values. */
        dev->tx_queue_len = 0;
@@ -135,7 +136,7 @@ static void dummy_setup(struct net_device *dev)
        dev->flags &= ~IFF_MULTICAST;
        dev->features   |= NETIF_F_SG | NETIF_F_FRAGLIST | NETIF_F_TSO;
        dev->features   |= NETIF_F_HW_CSUM | NETIF_F_HIGHDMA | NETIF_F_LLTX;
-       random_ether_addr(dev->dev_addr);
+       eth_hw_addr_random(dev);
 }
 
 static int dummy_validate(struct nlattr *tb[], struct nlattr *data[])