summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2012-02-14 22:55:48 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2012-02-14 23:57:07 +0100
commitf3d0cb7f7323a0e7c81cb1acaa459bd52c4846dc (patch)
treea59edbd1c391b9593d68f5be8f01375447526945 /net
parent4af196ebfce40749cef85ad2fb4bc37e4285dfa9 (diff)
downloadbarebox-f3d0cb7f7323a0e7c81cb1acaa459bd52c4846dc.tar.gz
barebox-f3d0cb7f7323a0e7c81cb1acaa459bd52c4846dc.tar.xz
net: fix eth device unregistration
We register a device in eth_register, thus we have to unregister it in eth_unregister. Also, if the device we unregister is the current device, we have to set the current eth_device to NULL so that it isn't used anymore. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'net')
-rw-r--r--net/eth.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/net/eth.c b/net/eth.c
index 621cb59351..20fdbf4102 100644
--- a/net/eth.c
+++ b/net/eth.c
@@ -244,8 +244,11 @@ int eth_register(struct eth_device *edev)
void eth_unregister(struct eth_device *edev)
{
- dev_remove_parameters(&edev->dev);
+ if (edev == eth_current)
+ eth_current = NULL;
+ dev_remove_parameters(&edev->dev);
+ unregister_device(&edev->dev);
list_del(&edev->list);
}