diff options
author | YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> | 2013-03-07 20:45:57 -0500 |
---|---|---|
committer | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2013-03-13 11:11:12 -0400 |
commit | 8559e7f0694e3fb192aab00a495be5a510afc8c3 (patch) | |
tree | 56f62f2429cdcff407aed73e554d91c15ffa4665 /drivers/firewire/net.c | |
parent | 111534cd7a376b75e72ddea0c6d00ec956ce3343 (diff) |
firewire net: Release broadcast/fifo resources on ifdown.
Since those resources are allocated on ifup, relsase them on ifdown.
Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Diffstat (limited to 'drivers/firewire/net.c')
-rw-r--r-- | drivers/firewire/net.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/firewire/net.c b/drivers/firewire/net.c index ca41446d62f4..c1898adeb900 100644 --- a/drivers/firewire/net.c +++ b/drivers/firewire/net.c | |||
@@ -1295,9 +1295,12 @@ out: | |||
1295 | /* ifdown */ | 1295 | /* ifdown */ |
1296 | static int fwnet_stop(struct net_device *net) | 1296 | static int fwnet_stop(struct net_device *net) |
1297 | { | 1297 | { |
1298 | struct fwnet_device *dev = netdev_priv(net); | ||
1299 | |||
1298 | netif_stop_queue(net); | 1300 | netif_stop_queue(net); |
1299 | 1301 | ||
1300 | /* Deallocate iso context for use by other applications? */ | 1302 | fwnet_broadcast_stop(dev); |
1303 | fwnet_fifo_stop(dev); | ||
1301 | 1304 | ||
1302 | return 0; | 1305 | return 0; |
1303 | } | 1306 | } |
@@ -1638,9 +1641,6 @@ static int fwnet_remove(struct device *_dev) | |||
1638 | if (list_empty(&dev->peer_list)) { | 1641 | if (list_empty(&dev->peer_list)) { |
1639 | unregister_netdev(net); | 1642 | unregister_netdev(net); |
1640 | 1643 | ||
1641 | fwnet_fifo_stop(dev); | ||
1642 | fwnet_broadcast_stop(dev); | ||
1643 | |||
1644 | for (i = 0; dev->queued_datagrams && i < 5; i++) | 1644 | for (i = 0; dev->queued_datagrams && i < 5; i++) |
1645 | ssleep(1); | 1645 | ssleep(1); |
1646 | WARN_ON(dev->queued_datagrams); | 1646 | WARN_ON(dev->queued_datagrams); |