Since those resources are allocated on ifup, relsase them on ifdown.
Signed-off-by: YOSHIFUJI Hideaki <redacted>
---
drivers/firewire/net.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/firewire/net.c b/drivers/firewire/net.c
index ca41446..c1898ad 100644
--- a/drivers/firewire/net.c
+++ b/drivers/firewire/net.c
@@ -1295,9 +1295,12 @@ out:
/* ifdown */
static int fwnet_stop(struct net_device *net)
{
+ struct fwnet_device *dev = netdev_priv(net);
+
netif_stop_queue(net);
- /* Deallocate iso context for use by other applications? */
+ fwnet_broadcast_stop(dev);
+ fwnet_fifo_stop(dev);
return 0;
}@@ -1638,9 +1641,6 @@ static int fwnet_remove(struct device *_dev)
if (list_empty(&dev->peer_list)) {
unregister_netdev(net);
- fwnet_fifo_stop(dev);
- fwnet_broadcast_stop(dev);
-
for (i = 0; dev->queued_datagrams && i < 5; i++)
ssleep(1);
WARN_ON(dev->queued_datagrams);--
1.7.9.5