aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel van Nies <morcles@gmail.com>2007-04-21 15:31:58 -0700
committerDavid S. Miller <davem@davemloft.net>2007-04-21 15:31:58 -0700
commitd0dc1129c2e5a5a0e53940cad44333e6bd2f9af3 (patch)
treee86e9f19e704de5b670b6694356ad33968d51b23
parent2e6679a0aa352e6b74f6385c49cd4dca3dc7201f (diff)
[SUNQE]: Fix MAC address assignment.
The MAC address assignment at module loading is simply forgotten. The bug at module unloading is caused by an incorrect call. The bug at module unloading does not only happen for sunqe, sunlance and sunhme (sbus) suffer from it too. I've tested this on my SS20. Signed-off-by: Marcel van Nies <morcles@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/sunqe.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/net/sunqe.c b/drivers/net/sunqe.c
index 7874eb1ef04..f3bad56d476 100644
--- a/drivers/net/sunqe.c
+++ b/drivers/net/sunqe.c
@@ -845,6 +845,8 @@ static int __init qec_ether_init(struct sbus_dev *sdev)
if (!dev)
return -ENOMEM;
+ memcpy(dev->dev_addr, idprom->id_ethaddr, 6);
+
qe = netdev_priv(dev);
i = of_getintprop_default(sdev->ofdev.node, "channel#", -1);
@@ -960,7 +962,7 @@ static int __devexit qec_sbus_remove(struct of_device *dev)
struct sunqe *qp = dev_get_drvdata(&dev->dev);
struct net_device *net_dev = qp->dev;
- unregister_netdevice(net_dev);
+ unregister_netdev(net_dev);
sbus_iounmap(qp->qcregs, CREG_REG_SIZE);
sbus_iounmap(qp->mregs, MREGS_REG_SIZE);