Commit e3720418 authored by Alessandro Rubini's avatar Alessandro Rubini

kernel/wr_nic: bugfix: increment MAC address after using it

Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
parent a8710d02
......@@ -262,14 +262,17 @@ int wrn_endpoint_probe(struct net_device *dev)
wraddr[3] &= 0x7F;
}
/* Use sequential MAC */
val = get_unaligned_be32(wraddr + 2);
put_unaligned_be32(val + 1, wraddr + 2);
/* Use wraddr as MAC */
memcpy(dev->dev_addr, wraddr, ETH_ALEN);
pr_debug("wr_nic: assign MAC %pM to wr%d\n", dev->dev_addr, epnum);
/* Finally, register and succeed, or fail and undo */
err = register_netdev(dev);
/* Increment MAC address for next endpoint */
val = get_unaligned_be32(wraddr + 2);
put_unaligned_be32(val + 1, wraddr + 2);
if (err) {
printk(KERN_ERR DRV_NAME "Can't register dev %s\n",
dev->name);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment