Merge branch 'davem-fixes' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik...
[pandora-kernel.git] / drivers / net / dummy.c
index 373ff70..84e14f3 100644 (file)
@@ -71,7 +71,6 @@ static void dummy_setup(struct net_device *dev)
        dev->change_mtu = NULL;
        dev->flags |= IFF_NOARP;
        dev->flags &= ~IFF_MULTICAST;
-       SET_MODULE_OWNER(dev);
        random_ether_addr(dev->dev_addr);
 }
 
@@ -84,9 +83,21 @@ static int dummy_xmit(struct sk_buff *skb, struct net_device *dev)
        return 0;
 }
 
+static int dummy_validate(struct nlattr *tb[], struct nlattr *data[])
+{
+       if (tb[IFLA_ADDRESS]) {
+               if (nla_len(tb[IFLA_ADDRESS]) != ETH_ALEN)
+                       return -EINVAL;
+               if (!is_valid_ether_addr(nla_data(tb[IFLA_ADDRESS])))
+                       return -EADDRNOTAVAIL;
+       }
+       return 0;
+}
+
 static struct rtnl_link_ops dummy_link_ops __read_mostly = {
        .kind           = "dummy",
        .setup          = dummy_setup,
+       .validate       = dummy_validate,
 };
 
 /* Number of dummy devices to be set up by this module. */