net: use eth_hw_addr_random() and reset addr_assign_type
[deliverable/linux.git] / drivers / net / ethernet / micrel / ks8851.c
index 6b35e7da9a9c7a094f27ff725787865b7bd034e6..42a6a20efb15c0ab6fc7f28ff6fea38fbccc10a4 100644 (file)
@@ -1,4 +1,4 @@
-/* drivers/net/ks8851.c
+/* drivers/net/ethernet/micrel/ks8851.c
  *
  * Copyright 2009 Simtec Electronics
  *     http://www.simtec.co.uk/
@@ -439,13 +439,13 @@ static void ks8851_init_mac(struct ks8851_net *ks)
                                dev->dev_addr);
        }
 
-       random_ether_addr(dev->dev_addr);
+       eth_hw_addr_random(dev);
        ks8851_write_mac_addr(dev);
 }
 
 /**
  * ks8851_irq - device interrupt handler
- * @irq: Interrupt number passed from the IRQ hnalder.
+ * @irq: Interrupt number passed from the IRQ handler.
  * @pw: The private word passed to register_irq(), our struct ks8851_net.
  *
  * Disable the interrupt from happening again until we've processed the
@@ -1050,6 +1050,7 @@ static int ks8851_set_mac_address(struct net_device *dev, void *addr)
        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 ks8851_write_mac_addr(dev);
 }
@@ -1419,10 +1420,8 @@ static int __devinit ks8851_probe(struct spi_device *spi)
        int ret;
 
        ndev = alloc_etherdev(sizeof(struct ks8851_net));
-       if (!ndev) {
-               dev_err(&spi->dev, "failed to alloc ethernet device\n");
+       if (!ndev)
                return -ENOMEM;
-       }
 
        spi->bits_per_word = 8;
 
This page took 0.028228 seconds and 5 git commands to generate.