diff options
author | YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> | 2013-03-08 05:43:14 +0400 |
---|---|---|
committer | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2013-03-13 19:11:11 +0400 |
commit | 2fbd8dfee1dc50407eaf72e30333cf8ce1bba2cb (patch) | |
tree | 69a4b45da3aed0a6f90b0c3c6260b7ed666fa082 /drivers/firewire/net.c | |
parent | b9a8871ac2aab0cc87190f1ab870785b32cc24aa (diff) | |
download | linux-2fbd8dfee1dc50407eaf72e30333cf8ce1bba2cb.tar.xz |
firewire net: Check dev->broadcast_state inside fwnet_broadcast_start().
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 | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/firewire/net.c b/drivers/firewire/net.c index fbd07ebd3f5f..9a2634ad6426 100644 --- a/drivers/firewire/net.c +++ b/drivers/firewire/net.c @@ -1156,6 +1156,9 @@ static int fwnet_broadcast_start(struct fwnet_device *dev) unsigned long offset; unsigned u; + if (dev->broadcast_state != FWNET_BROADCAST_ERROR) + return 0; + max_receive = 1U << (dev->card->max_receive + 1); num_packets = (FWNET_ISO_PAGE_COUNT * PAGE_SIZE) / max_receive; @@ -1258,11 +1261,10 @@ static int fwnet_open(struct net_device *net) if (ret) return ret; - if (dev->broadcast_state == FWNET_BROADCAST_ERROR) { - ret = fwnet_broadcast_start(dev); - if (ret) - goto out; - } + ret = fwnet_broadcast_start(dev); + if (ret) + goto out; + netif_start_queue(net); spin_lock_irq(&dev->lock); |