diff options
author | YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> | 2013-03-07 20:43:14 -0500 |
---|---|---|
committer | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2013-03-13 11:11:11 -0400 |
commit | 2fbd8dfee1dc50407eaf72e30333cf8ce1bba2cb (patch) | |
tree | 69a4b45da3aed0a6f90b0c3c6260b7ed666fa082 /drivers/firewire/net.c | |
parent | b9a8871ac2aab0cc87190f1ab870785b32cc24aa (diff) |
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) | |||
1156 | unsigned long offset; | 1156 | unsigned long offset; |
1157 | unsigned u; | 1157 | unsigned u; |
1158 | 1158 | ||
1159 | if (dev->broadcast_state != FWNET_BROADCAST_ERROR) | ||
1160 | return 0; | ||
1161 | |||
1159 | max_receive = 1U << (dev->card->max_receive + 1); | 1162 | max_receive = 1U << (dev->card->max_receive + 1); |
1160 | num_packets = (FWNET_ISO_PAGE_COUNT * PAGE_SIZE) / max_receive; | 1163 | num_packets = (FWNET_ISO_PAGE_COUNT * PAGE_SIZE) / max_receive; |
1161 | 1164 | ||
@@ -1258,11 +1261,10 @@ static int fwnet_open(struct net_device *net) | |||
1258 | if (ret) | 1261 | if (ret) |
1259 | return ret; | 1262 | return ret; |
1260 | 1263 | ||
1261 | if (dev->broadcast_state == FWNET_BROADCAST_ERROR) { | 1264 | ret = fwnet_broadcast_start(dev); |
1262 | ret = fwnet_broadcast_start(dev); | 1265 | if (ret) |
1263 | if (ret) | 1266 | goto out; |
1264 | goto out; | 1267 | |
1265 | } | ||
1266 | netif_start_queue(net); | 1268 | netif_start_queue(net); |
1267 | 1269 | ||
1268 | spin_lock_irq(&dev->lock); | 1270 | spin_lock_irq(&dev->lock); |