]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - net/ethernet/eth.c
[NET]: Validate device addr prior to interface-up
[linux-2.6-omap-h63xx.git] / net / ethernet / eth.c
index ed8a3d49487dd263282d90e0cc91659b3fea0b7a..6b2e454ae31301364b7e02ce646daa7a54201abb 100644 (file)
@@ -298,6 +298,14 @@ static int eth_change_mtu(struct net_device *dev, int new_mtu)
        return 0;
 }
 
+static int eth_validate_addr(struct net_device *dev)
+{
+       if (!is_valid_ether_addr(dev->dev_addr))
+               return -EINVAL;
+
+       return 0;
+}
+
 const struct header_ops eth_header_ops ____cacheline_aligned = {
        .create         = eth_header,
        .parse          = eth_header_parse,
@@ -317,6 +325,7 @@ void ether_setup(struct net_device *dev)
 
        dev->change_mtu         = eth_change_mtu;
        dev->set_mac_address    = eth_mac_addr;
+       dev->validate_addr      = eth_validate_addr;
 
        dev->type               = ARPHRD_ETHER;
        dev->hard_header_len    = ETH_HLEN;