aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/sunqe.c
diff options
context:
space:
mode:
authorMarcel van Nies <morcles@gmail.com>2007-04-21 18:31:58 -0400
committerDavid S. Miller <davem@davemloft.net>2007-04-21 18:31:58 -0400
commitd0dc1129c2e5a5a0e53940cad44333e6bd2f9af3 (patch)
treee86e9f19e704de5b670b6694356ad33968d51b23 /drivers/net/sunqe.c
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>
Diffstat (limited to 'drivers/net/sunqe.c')
-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 7874eb1ef043..f3bad56d476a 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)
845 if (!dev) 845 if (!dev)
846 return -ENOMEM; 846 return -ENOMEM;
847 847
848 memcpy(dev->dev_addr, idprom->id_ethaddr, 6);
849
848 qe = netdev_priv(dev); 850 qe = netdev_priv(dev);
849 851
850 i = of_getintprop_default(sdev->ofdev.node, "channel#", -1); 852 i = of_getintprop_default(sdev->ofdev.node, "channel#", -1);
@@ -960,7 +962,7 @@ static int __devexit qec_sbus_remove(struct of_device *dev)
960 struct sunqe *qp = dev_get_drvdata(&dev->dev); 962 struct sunqe *qp = dev_get_drvdata(&dev->dev);
961 struct net_device *net_dev = qp->dev; 963 struct net_device *net_dev = qp->dev;
962 964
963 unregister_netdevice(net_dev); 965 unregister_netdev(net_dev);
964 966
965 sbus_iounmap(qp->qcregs, CREG_REG_SIZE); 967 sbus_iounmap(qp->qcregs, CREG_REG_SIZE);
966 sbus_iounmap(qp->mregs, MREGS_REG_SIZE); 968 sbus_iounmap(qp->mregs, MREGS_REG_SIZE);